🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@opencode-ai/cli-linux-arm64

Package Overview
Dependencies
Maintainers
2
Versions
1970
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@opencode-ai/cli-linux-arm64 - npm Package Compare versions

Comparing version
0.0.0-next-15608
to
0.0.0-next-15614
+9
bin/chunk-03kgg11y.js.map
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "D6312D2678D6B35564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/variant.shared.ts", "src/mini/session.shared.ts", "src/mini/theme.ts"],
"sourcesContent": [
"// Model variant resolution and persistence.\n//\n// Variants are provider-specific reasoning effort levels (e.g., \"high\", \"max\").\n// Resolution priority: CLI --variant flag > saved preference > session history.\n//\n// The saved variant persists across sessions in ~/.local/state/opencode/model.json\n// so your last-used variant sticks. Cycling (ctrl+t) updates both the active\n// variant and the persisted file.\nimport path from \"path\"\nimport { FSUtil } from \"@opencode-ai/core/fs-util\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { Context, Effect, Layer } from \"effect\"\nimport { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { makeGlobalNode } from \"@opencode-ai/core/effect/app-node\"\nimport { makeRuntime } from \"@opencode-ai/core/effect/runtime\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { createSession, sessionVariant, type RunSession, type SessionMessages } from \"./session.shared\"\nimport type { RunInput, RunProvider } from \"./types\"\n\nconst MODEL_FILE = path.join(Global.Path.state, \"model.json\")\n\ntype ModelState = Record<string, unknown> & {\n variant?: Record<string, string | undefined>\n}\ntype VariantService = {\n readonly resolveSavedVariant: (model: RunInput[\"model\"]) => Effect.Effect<string | undefined>\n readonly saveVariant: (model: RunInput[\"model\"], variant: string | undefined) => Effect.Effect<void>\n}\ntype VariantRuntime = {\n resolveSavedVariant(model: RunInput[\"model\"]): Promise<string | undefined>\n saveVariant(model: RunInput[\"model\"], variant: string | undefined): Promise<void>\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value)\n}\n\nclass Service extends Context.Service<Service, VariantService>()(\"@opencode/RunVariant\") {}\n\nfunction modelKey(provider: string, model: string): string {\n return `${provider}/${model}`\n}\n\nfunction variantKey(model: NonNullable<RunInput[\"model\"]>): string {\n return modelKey(model.providerID, model.modelID)\n}\n\nexport function modelInfo(providers: RunProvider[] | undefined, model: NonNullable<RunInput[\"model\"]>) {\n const provider = providers?.find((item) => item.id === model.providerID)\n return {\n provider: provider?.name ?? model.providerID,\n model: provider?.models[model.modelID]?.name ?? model.modelID,\n }\n}\n\nexport function formatModelLabel(\n model: NonNullable<RunInput[\"model\"]>,\n variant: string | undefined,\n providers?: RunProvider[],\n): string {\n const names = modelInfo(providers, model)\n const label = variant ? ` · ${variant}` : \"\"\n return `${names.model} · ${names.provider}${label}`\n}\n\nexport function cycleVariant(current: string | undefined, variants: string[]): string | undefined {\n if (variants.length === 0) {\n return undefined\n }\n\n if (!current) {\n return variants[0]\n }\n\n const idx = variants.indexOf(current)\n if (idx === -1 || idx === variants.length - 1) {\n return undefined\n }\n\n return variants[idx + 1]\n}\n\nexport function pickVariant(model: RunInput[\"model\"], input: RunSession | SessionMessages): string | undefined {\n return sessionVariant(Array.isArray(input) ? createSession(input) : input, model)\n}\n\nfunction fitVariant(value: string | undefined, variants: string[]): string | undefined {\n if (!value) {\n return undefined\n }\n\n if (variants.length === 0 || variants.includes(value)) {\n return value\n }\n\n return undefined\n}\n\n// Picks the active variant. CLI flag wins, then saved preference, then session\n// history. fitVariant() checks saved and session values against the available\n// variants list -- if the provider doesn't offer a variant, it drops.\nexport function resolveVariant(\n input: string | undefined,\n session: string | undefined,\n saved: string | undefined,\n variants: string[],\n): string | undefined {\n if (input !== undefined) {\n return input\n }\n\n const fallback = fitVariant(saved, variants)\n const current = fitVariant(session, variants)\n if (current !== undefined) {\n return current\n }\n\n return fallback\n}\n\nfunction state(value: unknown): ModelState {\n if (!isRecord(value)) {\n return {}\n }\n\n const variant = isRecord(value.variant)\n ? Object.fromEntries(\n Object.entries(value.variant).flatMap(([key, item]) => {\n if (typeof item !== \"string\") {\n return []\n }\n\n return [[key, item] as const]\n }),\n )\n : undefined\n\n return {\n ...value,\n variant,\n }\n}\n\nconst layer = Layer.fresh(\n Layer.effect(\n Service,\n Effect.gen(function* () {\n const file = yield* FSUtil.Service\n\n const read = Effect.fn(\"RunVariant.read\")(function* () {\n return yield* file.readJson(MODEL_FILE).pipe(\n Effect.map(state),\n Effect.catchCause(() => Effect.succeed(state(undefined))),\n )\n })\n\n const resolveSavedVariant = Effect.fn(\"RunVariant.resolveSavedVariant\")(function* (model: RunInput[\"model\"]) {\n if (!model) {\n return undefined\n }\n\n return (yield* read()).variant?.[variantKey(model)]\n })\n\n const saveVariant = Effect.fn(\"RunVariant.saveVariant\")(function* (\n model: RunInput[\"model\"],\n variant: string | undefined,\n ) {\n if (!model) {\n return\n }\n\n const current = yield* read()\n const next = {\n ...current.variant,\n }\n const key = variantKey(model)\n if (variant) {\n next[key] = variant\n }\n\n if (!variant) {\n delete next[key]\n }\n\n yield* file\n .writeJson(MODEL_FILE, {\n ...current,\n variant: next,\n })\n .pipe(Effect.orElseSucceed(() => undefined))\n })\n\n return Service.of({\n resolveSavedVariant,\n saveVariant,\n })\n }),\n ),\n)\n\nconst node = makeGlobalNode({ service: Service, layer, deps: [FSUtil.node] })\n\n/** @internal Exported for testing. */\nexport function createVariantRuntime(replacements?: readonly LayerNode.Replacement[]): VariantRuntime {\n const runtime = makeRuntime(Service, AppNodeBuilder.build(node, replacements))\n return {\n resolveSavedVariant: (model) => runtime.runPromise((svc) => svc.resolveSavedVariant(model)).catch(() => undefined),\n saveVariant: (model, variant) => runtime.runPromise((svc) => svc.saveVariant(model, variant)).catch(() => {}),\n }\n}\n\nconst runtime = createVariantRuntime()\n\nexport async function resolveSavedVariant(model: RunInput[\"model\"]): Promise<string | undefined> {\n return runtime.resolveSavedVariant(model)\n}\n\nexport function saveVariant(model: RunInput[\"model\"], variant: string | undefined): void {\n void runtime.saveVariant(model, variant)\n}\n",
"import type { SessionMessageInfo, SessionMessageUser } from \"@opencode-ai/client/promise\"\nimport { promptCopy, promptSame } from \"./prompt.shared\"\nimport type { RunInput, RunPrompt } from \"./types\"\n\nconst LIMIT = 200\n\nexport type SessionMessages = SessionMessageInfo[]\n\ntype Turn = {\n prompt: RunPrompt\n provider: string | undefined\n model: string | undefined\n variant: string | undefined\n}\n\nexport type RunSession = {\n first: boolean\n turns: Turn[]\n model?: NonNullable<RunInput[\"model\"]>\n variant?: string\n}\n\nfunction messagePrompt(message: SessionMessageUser): RunPrompt {\n return {\n text: message.text,\n parts: [\n ...(message.files ?? []).map((file) => ({\n type: \"file\" as const,\n url: file.source.type === \"uri\" ? file.source.uri : `data:${file.mime};base64,${file.data}`,\n mime: file.mime,\n filename: file.name,\n source: file.mention\n ? {\n type: \"file\",\n path: file.name ?? (file.source.type === \"uri\" ? file.source.uri : \"inline attachment\"),\n text: { start: file.mention.start, end: file.mention.end, value: file.mention.text },\n }\n : undefined,\n })),\n ...(message.agents ?? []).map((agent) => ({\n type: \"agent\" as const,\n name: agent.name,\n source: agent.mention\n ? { start: agent.mention.start, end: agent.mention.end, value: agent.mention.text }\n : undefined,\n })),\n ],\n }\n}\n\nexport function createSession(messages: SessionMessages): RunSession {\n return {\n first: messages.length === 0,\n turns: messages.flatMap((message) =>\n message.type === \"user\"\n ? [{ prompt: messagePrompt(message), provider: undefined, model: undefined, variant: undefined }]\n : [],\n ),\n }\n}\n\nexport async function resolveCurrentSession(\n sdk: RunInput[\"sdk\"],\n sessionID: string,\n limit = LIMIT,\n): Promise<RunSession> {\n const [response, session] = await Promise.all([\n sdk.message.list({ sessionID, limit, order: \"desc\" }),\n sdk.session.get({ sessionID }),\n ])\n const current = createSession(response.data.toReversed())\n return {\n ...current,\n turns: current.turns.map((turn) => ({\n ...turn,\n provider: session.model?.providerID,\n model: session.model?.id,\n variant: session.model?.variant,\n })),\n ...(session.model && {\n model: { providerID: session.model.providerID, modelID: session.model.id },\n variant: session.model.variant,\n }),\n }\n}\n\nexport function sessionHistory(session: RunSession, limit = LIMIT): RunPrompt[] {\n return session.turns\n .map((turn) => turn.prompt)\n .filter((prompt) => prompt.text.trim())\n .filter((prompt, index, prompts) => index === 0 || !promptSame(prompts[index - 1], prompt))\n .map(promptCopy)\n .slice(-limit)\n}\n\nexport function sessionVariant(session: RunSession, model: RunInput[\"model\"]): string | undefined {\n if (!model) return\n if (session.model?.providerID === model.providerID && session.model.modelID === model.modelID) return session.variant\n\n return session.turns.findLast((turn) => turn.provider === model.providerID && turn.model === model.modelID)?.variant\n}\n",
"// Theme resolution for direct interactive mode.\n//\n// Derives scrollback and footer colors from the terminal's actual palette.\n// resolveRunTheme() queries the renderer for the terminal's palette,\n// detects dark/light mode, builds a small system theme locally, and maps it to\n// the run footer + scrollback color model. Falls back to a hardcoded dark-mode\n// palette if detection fails.\nimport { RGBA, SyntaxStyle, type CliRenderer, type ColorInput, type TerminalColors } from \"@opentui/core\"\nimport type { TuiThemeCurrent } from \"@opencode-ai/plugin/tui\"\nimport type { EntryKind } from \"./types\"\n\ntype Tone = {\n body: ColorInput\n start?: ColorInput\n}\n\nexport type RunEntryTheme = Record<EntryKind, Tone>\n\nexport type RunSplashTheme = {\n left: ColorInput\n right: ColorInput\n leftShadow: ColorInput\n rightShadow: ColorInput\n}\n\nexport type RunFooterTheme = {\n highlight: ColorInput\n selected: ColorInput\n selectedText: ColorInput\n warning: ColorInput\n success: ColorInput\n error: ColorInput\n muted: ColorInput\n text: ColorInput\n status: ColorInput\n statusAccent: ColorInput\n shade: ColorInput\n surface: ColorInput\n pane: ColorInput\n border: ColorInput\n line: ColorInput\n}\n\nexport type RunBlockTheme = {\n highlight: ColorInput\n warning: ColorInput\n text: ColorInput\n muted: ColorInput\n syntax?: SyntaxStyle\n diffAdded: ColorInput\n diffRemoved: ColorInput\n diffAddedBg: ColorInput\n diffRemovedBg: ColorInput\n diffContextBg: ColorInput\n diffHighlightAdded: ColorInput\n diffHighlightRemoved: ColorInput\n diffLineNumber: ColorInput\n diffAddedLineNumberBg: ColorInput\n diffRemovedLineNumberBg: ColorInput\n}\n\nexport type RunTheme = {\n background: ColorInput\n footer: RunFooterTheme\n entry: RunEntryTheme\n splash: RunSplashTheme\n block: RunBlockTheme\n}\n\ntype ThemeColor = Exclude<keyof TuiThemeCurrent, \"thinkingOpacity\">\ntype HexColor = `#${string}`\ntype RefName = string\ntype Variant = {\n dark: HexColor | RefName\n light: HexColor | RefName\n}\ntype ColorValue = HexColor | RefName | Variant | RGBA | number\ntype ThemeJson = {\n defs?: Record<string, HexColor | RefName>\n theme: Omit<Record<ThemeColor, ColorValue>, \"selectedListItemText\" | \"backgroundMenu\"> & {\n selectedListItemText?: ColorValue\n backgroundMenu?: ColorValue\n thinkingOpacity?: number\n }\n}\n\ntype SharedSyntaxTheme = TuiThemeCurrent & {\n _hasSelectedListItemText: boolean\n}\n\nexport const transparent = RGBA.fromValues(0, 0, 0, 0)\n\nfunction alpha(color: RGBA, value: number): RGBA {\n return RGBA.fromValues(color.r, color.g, color.b, Math.max(0, Math.min(1, value)))\n}\n\nfunction rgba(hex: string, value?: number): RGBA {\n const color = RGBA.fromHex(hex)\n return value === undefined ? color : alpha(color, value)\n}\n\nfunction mode(bg: RGBA): \"dark\" | \"light\" {\n return luminance(bg) > 0.5 ? \"light\" : \"dark\"\n}\n\nfunction luminance(color: RGBA): number {\n return 0.299 * color.r + 0.587 * color.g + 0.114 * color.b\n}\n\nfunction fade(color: RGBA, base: RGBA, fallback: number, scale: number, limit: number): RGBA {\n if (color.a === 0) {\n return RGBA.fromValues(color.r, color.g, color.b, Math.max(0, Math.min(1, fallback)))\n }\n\n const target = Math.min(limit, color.a * scale)\n const mix = Math.min(1, target / color.a)\n\n return RGBA.fromValues(\n base.r + (color.r - base.r) * mix,\n base.g + (color.g - base.g) * mix,\n base.b + (color.b - base.b) * mix,\n color.a,\n )\n}\n\nfunction ansiToRgba(code: number): RGBA {\n if (code < 16) {\n const ansi = [\n \"#000000\",\n \"#800000\",\n \"#008000\",\n \"#808000\",\n \"#000080\",\n \"#800080\",\n \"#008080\",\n \"#c0c0c0\",\n \"#808080\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ffff00\",\n \"#0000ff\",\n \"#ff00ff\",\n \"#00ffff\",\n \"#ffffff\",\n ]\n return RGBA.fromHex(ansi[code] ?? \"#000000\")\n }\n\n if (code < 232) {\n const index = code - 16\n const b = index % 6\n const g = Math.floor(index / 6) % 6\n const r = Math.floor(index / 36)\n const value = (x: number) => (x === 0 ? 0 : x * 40 + 55)\n return RGBA.fromInts(value(r), value(g), value(b))\n }\n\n if (code < 256) {\n const gray = (code - 232) * 10 + 8\n return RGBA.fromInts(gray, gray, gray)\n }\n\n return RGBA.fromInts(0, 0, 0)\n}\n\nfunction tint(base: RGBA, overlay: RGBA, value: number): RGBA {\n return RGBA.fromInts(\n Math.round((base.r + (overlay.r - base.r) * value) * 255),\n Math.round((base.g + (overlay.g - base.g) * value) * 255),\n Math.round((base.b + (overlay.b - base.b) * value) * 255),\n )\n}\n\nfunction chroma(color: RGBA) {\n return Math.max(color.r, color.g, color.b) - Math.min(color.r, color.g, color.b)\n}\n\nfunction indexedPalette(colors: TerminalColors, size: number = Math.max(colors.palette.length, 16)): RGBA[] {\n return Array.from({ length: size }, (_, index) => {\n const value = colors.palette[index]\n return RGBA.fromIndex(index, value ? RGBA.fromHex(value) : ansiToRgba(index))\n })\n}\n\nfunction srgbToLinear(value: number): number {\n if (value <= 0.04045) {\n return value / 12.92\n }\n\n return ((value + 0.055) / 1.055) ** 2.4\n}\n\nfunction oklab(color: RGBA) {\n const r = srgbToLinear(color.r)\n const g = srgbToLinear(color.g)\n const b = srgbToLinear(color.b)\n\n const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b)\n const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b)\n const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b)\n\n return {\n l: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,\n }\n}\n\nfunction nearestIndexed(indexed: RGBA[], rgba: RGBA): RGBA {\n const target = oklab(rgba)\n const hit = indexed.reduce(\n (best, item) => {\n const sample = oklab(item)\n const dl = sample.l - target.l\n const da = sample.a - target.a\n const db = sample.b - target.b\n const dist = dl * dl * 2 + da * da + db * db\n if (dist >= best.dist) return best\n return {\n dist,\n item,\n }\n },\n {\n dist: Number.POSITIVE_INFINITY,\n item: indexed[0]!,\n },\n )\n\n return RGBA.clone(hit.item)\n}\n\nfunction paletteColor(colors: TerminalColors, index: number): RGBA {\n const value = colors.palette[index]\n return value ? RGBA.fromHex(value) : ansiToRgba(index)\n}\n\nfunction splashShadow(indexed: RGBA[], base: RGBA, overlay: RGBA, value: number): RGBA {\n const mixed = tint(base, overlay, value)\n return nearestIndexed(indexed, mixed)\n}\n\nexport function resolveTheme(theme: ThemeJson, pick: \"dark\" | \"light\"): TuiThemeCurrent {\n const defs = theme.defs ?? {}\n\n const resolveColor = (value: ColorValue, chain: string[] = []): RGBA => {\n if (value instanceof RGBA) return value\n\n if (typeof value === \"number\") {\n return RGBA.fromIndex(value, ansiToRgba(value))\n }\n\n if (typeof value !== \"string\") {\n return resolveColor(value[pick], chain)\n }\n\n if (value === \"transparent\" || value === \"none\") {\n return RGBA.fromInts(0, 0, 0, 0)\n }\n\n if (value.startsWith(\"#\")) {\n return RGBA.fromHex(value)\n }\n\n if (chain.includes(value)) {\n throw new Error(`Circular color reference: ${[...chain, value].join(\" -> \")}`)\n }\n\n const next = defs[value] ?? theme.theme[value as ThemeColor]\n if (next === undefined) {\n throw new Error(`Color reference \"${value}\" not found in defs or theme`)\n }\n\n return resolveColor(next, [...chain, value])\n }\n\n const resolved = Object.fromEntries(\n Object.entries(theme.theme)\n .filter(([key]) => key !== \"selectedListItemText\" && key !== \"backgroundMenu\" && key !== \"thinkingOpacity\")\n .map(([key, value]) => [key, resolveColor(value as ColorValue)]),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n return {\n ...(resolved as Record<ThemeColor, RGBA>),\n selectedListItemText:\n theme.theme.selectedListItemText === undefined\n ? resolved.background!\n : resolveColor(theme.theme.selectedListItemText),\n backgroundMenu:\n theme.theme.backgroundMenu === undefined ? resolved.backgroundElement! : resolveColor(theme.theme.backgroundMenu),\n thinkingOpacity: theme.theme.thinkingOpacity ?? 0.6,\n }\n}\n\nfunction generateGrayScale(bg: RGBA, isDark: boolean, map: (rgba: RGBA) => RGBA): Record<number, RGBA> {\n const r = bg.r * 255\n const g = bg.g * 255\n const b = bg.b * 255\n const lum = 0.299 * r + 0.587 * g + 0.114 * b\n const cast = 0.25 * (1 - chroma(bg)) ** 2\n\n const gray = (level: number) => {\n const factor = level / 12\n\n if (isDark && lum < 10) {\n const value = Math.floor(factor * 0.4 * 255)\n return map(RGBA.fromInts(value, value, value))\n }\n\n if (!isDark && lum > 245) {\n const value = Math.floor(255 - factor * 0.4 * 255)\n return map(RGBA.fromInts(value, value, value))\n }\n\n const value = isDark ? lum + (255 - lum) * factor * 0.4 : lum * (1 - factor * 0.4)\n const tone = RGBA.fromInts(Math.floor(value), Math.floor(value), Math.floor(value))\n if (cast === 0) return map(tone)\n\n const ratio = lum === 0 ? 0 : value / lum\n return map(\n tint(\n tone,\n RGBA.fromInts(\n Math.floor(Math.max(0, Math.min(r * ratio, 255))),\n Math.floor(Math.max(0, Math.min(g * ratio, 255))),\n Math.floor(Math.max(0, Math.min(b * ratio, 255))),\n ),\n cast,\n ),\n )\n }\n\n return Object.fromEntries(Array.from({ length: 12 }, (_, index) => [index + 1, gray(index + 1)]))\n}\n\nfunction generateMutedTextColor(bg: RGBA, isDark: boolean, map: (rgba: RGBA) => RGBA): RGBA {\n const lum = 0.299 * bg.r * 255 + 0.587 * bg.g * 255 + 0.114 * bg.b * 255\n const gray = isDark\n ? lum < 10\n ? 180\n : Math.min(Math.floor(160 + lum * 0.3), 200)\n : lum > 245\n ? 75\n : Math.max(Math.floor(100 - (255 - lum) * 0.2), 60)\n\n return map(RGBA.fromInts(gray, gray, gray))\n}\n\nexport function generateSystem(colors: TerminalColors, pick: \"dark\" | \"light\"): ThemeJson {\n const bg_snapshot = RGBA.fromHex(colors.defaultBackground ?? colors.palette[0]!)\n const fg_snapshot = RGBA.fromHex(colors.defaultForeground ?? colors.palette[7]!)\n const bg = RGBA.defaultBackground(bg_snapshot)\n const fg = RGBA.defaultForeground(fg_snapshot)\n const isDark = pick === \"dark\"\n\n const color = (index: number) => paletteColor(colors, index)\n\n const grays = generateGrayScale(bg_snapshot, isDark, (rgba) => rgba)\n const textMuted = generateMutedTextColor(bg_snapshot, isDark, (rgba) => rgba)\n\n const ansi = {\n red: color(1),\n green: color(2),\n yellow: color(3),\n blue: color(4),\n magenta: color(5),\n cyan: color(6),\n red_bright: color(9),\n green_bright: color(10),\n }\n\n const diff_alpha = isDark ? 0.22 : 0.14\n const diff_context_bg = grays[2]\n const primary = ansi.cyan\n const secondary = ansi.magenta\n\n return {\n theme: {\n primary,\n secondary,\n accent: primary,\n error: ansi.red,\n warning: ansi.yellow,\n success: ansi.green,\n info: ansi.cyan,\n text: fg,\n textMuted,\n selectedListItemText: bg,\n background: alpha(bg, 0),\n backgroundPanel: grays[2],\n backgroundElement: grays[3],\n backgroundMenu: grays[3],\n borderSubtle: grays[6],\n border: grays[7],\n borderActive: grays[8],\n diffAdded: ansi.green,\n diffRemoved: ansi.red,\n diffContext: grays[7],\n diffHunkHeader: grays[7],\n diffHighlightAdded: ansi.green_bright,\n diffHighlightRemoved: ansi.red_bright,\n diffAddedBg: tint(bg_snapshot, ansi.green, diff_alpha),\n diffRemovedBg: tint(bg_snapshot, ansi.red, diff_alpha),\n diffContextBg: diff_context_bg,\n diffLineNumber: textMuted,\n diffAddedLineNumberBg: tint(diff_context_bg, ansi.green, diff_alpha),\n diffRemovedLineNumberBg: tint(diff_context_bg, ansi.red, diff_alpha),\n markdownText: fg,\n markdownHeading: fg,\n markdownLink: ansi.blue,\n markdownLinkText: ansi.cyan,\n markdownCode: ansi.green,\n markdownBlockQuote: ansi.yellow,\n markdownEmph: ansi.yellow,\n markdownStrong: fg,\n markdownHorizontalRule: grays[7],\n markdownListItem: ansi.blue,\n markdownListEnumeration: ansi.cyan,\n markdownImage: ansi.blue,\n markdownImageText: ansi.cyan,\n markdownCodeBlock: fg,\n syntaxComment: textMuted,\n syntaxKeyword: ansi.magenta,\n syntaxFunction: ansi.blue,\n syntaxVariable: fg,\n syntaxString: ansi.green,\n syntaxNumber: ansi.yellow,\n syntaxType: ansi.cyan,\n syntaxOperator: ansi.cyan,\n syntaxPunctuation: fg,\n },\n }\n}\n\nfunction quantizeColor(indexed: RGBA[], rgba: RGBA): RGBA {\n if (rgba.a === 0 || rgba.intent === \"default\" || rgba.intent === \"indexed\") {\n return RGBA.clone(rgba)\n }\n\n return nearestIndexed(indexed, rgba)\n}\n\nfunction quantizeTheme(theme: TuiThemeCurrent, indexed: RGBA[]): TuiThemeCurrent {\n const resolved = Object.fromEntries(\n Object.entries(theme)\n .filter(([key]) => key !== \"thinkingOpacity\")\n .map(([key, value]) => [key, quantizeColor(indexed, value as RGBA)]),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n return {\n ...(resolved as Record<ThemeColor, RGBA>),\n thinkingOpacity: theme.thinkingOpacity,\n }\n}\n\nfunction splashTheme(theme: TuiThemeCurrent, indexed: RGBA[]): RunSplashTheme {\n const left = nearestIndexed(indexed, theme.textMuted)\n const right = nearestIndexed(indexed, theme.text)\n return {\n left,\n right,\n leftShadow: splashShadow(indexed, theme.background, left, 0.14),\n rightShadow: splashShadow(indexed, theme.background, right, 0.14),\n }\n}\n\nfunction map(\n footerTheme: TuiThemeCurrent,\n scrollbackTheme: TuiThemeCurrent,\n splash: RunSplashTheme,\n syntax?: SyntaxStyle,\n): RunTheme {\n const footerBackground = alpha(footerTheme.background, 1)\n const footerMode = mode(footerBackground)\n const shade = fade(footerTheme.backgroundMenu, footerTheme.background, 0.12, 0.56, 0.72)\n const surface = fade(footerTheme.backgroundMenu, footerTheme.background, 0.18, 0.76, 0.9)\n const line = fade(footerTheme.backgroundMenu, footerTheme.background, 0.24, 0.9, 0.98)\n const statusBase = tint(footerBackground, rgba(\"#000000\"), footerMode === \"dark\" ? 0.12 : 0.06)\n const statusAccentBase =\n footerMode === \"dark\" ? tint(footerBackground, rgba(\"#ffffff\"), 0.06) : tint(statusBase, rgba(\"#000000\"), 0.04)\n const collapsedStatus = footerMode === \"dark\" && luminance(statusBase) <= 0.04\n // Pure-black backgrounds need a slight lift or the row disappears into the terminal background.\n const status = collapsedStatus ? tint(statusBase, statusAccentBase, 0.7) : statusBase\n const statusAccent = collapsedStatus ? tint(status, rgba(\"#ffffff\"), 0.06) : statusAccentBase\n\n return {\n background: footerTheme.background,\n footer: {\n highlight: footerTheme.primary,\n selected: footerTheme.backgroundElement,\n selectedText: footerTheme.selectedListItemText,\n warning: footerTheme.warning,\n success: footerTheme.success,\n error: footerTheme.error,\n muted: footerTheme.textMuted,\n text: footerTheme.text,\n status,\n statusAccent,\n shade,\n surface,\n pane: footerTheme.backgroundMenu,\n border: footerTheme.border,\n line,\n },\n entry: {\n system: {\n body: scrollbackTheme.textMuted,\n },\n user: {\n body: scrollbackTheme.primary,\n },\n assistant: {\n body: scrollbackTheme.text,\n },\n reasoning: {\n body: scrollbackTheme.textMuted,\n },\n tool: {\n body: scrollbackTheme.text,\n start: scrollbackTheme.textMuted,\n },\n error: {\n body: scrollbackTheme.error,\n },\n },\n splash,\n block: {\n highlight: scrollbackTheme.primary,\n warning: scrollbackTheme.warning,\n text: scrollbackTheme.text,\n muted: scrollbackTheme.textMuted,\n syntax,\n diffAdded: scrollbackTheme.diffAdded,\n diffRemoved: scrollbackTheme.diffRemoved,\n diffAddedBg: transparent,\n diffRemovedBg: transparent,\n diffContextBg: transparent,\n diffHighlightAdded: scrollbackTheme.diffHighlightAdded,\n diffHighlightRemoved: scrollbackTheme.diffHighlightRemoved,\n diffLineNumber: scrollbackTheme.diffLineNumber,\n diffAddedLineNumberBg: scrollbackTheme.diffAddedLineNumberBg,\n diffRemovedLineNumberBg: scrollbackTheme.diffRemovedLineNumberBg,\n },\n }\n}\n\nconst seed = {\n highlight: RGBA.fromIndex(6, rgba(\"#38bdf8\")),\n muted: RGBA.fromIndex(8, rgba(\"#64748b\")),\n text: RGBA.defaultForeground(rgba(\"#f8fafc\")),\n panel: rgba(\"#0f172a\"),\n success: RGBA.fromIndex(2, rgba(\"#22c55e\")),\n warning: RGBA.fromIndex(3, rgba(\"#f59e0b\")),\n error: RGBA.fromIndex(1, rgba(\"#ef4444\")),\n}\n\nfunction tone(body: ColorInput, start?: ColorInput): Tone {\n return {\n body,\n start,\n }\n}\n\nconst fallbackSplashIndexed = Array.from({ length: 256 }, (_, index) => RGBA.fromIndex(index))\nconst fallbackSplashLeft = RGBA.fromIndex(67)\nconst fallbackSplashRight = RGBA.fromIndex(110)\n\nexport const RUN_THEME_FALLBACK: RunTheme = {\n background: RGBA.fromValues(0, 0, 0, 0),\n footer: {\n highlight: seed.highlight,\n selected: seed.text,\n selectedText: seed.panel,\n warning: seed.warning,\n success: seed.success,\n error: seed.error,\n muted: seed.muted,\n text: seed.text,\n status: tint(seed.panel, rgba(\"#000000\"), 0.12),\n statusAccent: tint(seed.panel, rgba(\"#ffffff\"), 0.06),\n shade: alpha(seed.panel, 0.68),\n surface: alpha(seed.panel, 0.86),\n pane: seed.panel,\n border: seed.muted,\n line: alpha(seed.panel, 0.96),\n },\n entry: {\n system: tone(seed.muted),\n user: tone(seed.highlight),\n assistant: tone(seed.text),\n reasoning: tone(seed.muted),\n tool: tone(seed.text, seed.muted),\n error: tone(seed.error),\n },\n splash: {\n left: fallbackSplashLeft,\n right: fallbackSplashRight,\n leftShadow: splashShadow(fallbackSplashIndexed, RGBA.fromValues(0, 0, 0, 0), fallbackSplashLeft, 0.14),\n rightShadow: splashShadow(fallbackSplashIndexed, RGBA.fromValues(0, 0, 0, 0), fallbackSplashRight, 0.14),\n },\n block: {\n highlight: seed.highlight,\n warning: seed.warning,\n text: seed.text,\n muted: seed.muted,\n diffAdded: seed.success,\n diffRemoved: seed.error,\n diffAddedBg: alpha(seed.success, 0.18),\n diffRemovedBg: alpha(seed.error, 0.18),\n diffContextBg: alpha(seed.panel, 0.72),\n diffHighlightAdded: seed.success,\n diffHighlightRemoved: seed.error,\n diffLineNumber: seed.muted,\n diffAddedLineNumberBg: alpha(seed.success, 0.12),\n diffRemovedLineNumberBg: alpha(seed.error, 0.12),\n },\n}\n\nexport async function resolveRunTheme(renderer: CliRenderer): Promise<RunTheme> {\n try {\n const colors = await renderer.getPalette({\n size: 256,\n })\n const bg = colors.defaultBackground ?? colors.palette[0]\n if (!bg) {\n return RUN_THEME_FALLBACK\n }\n\n // Palette-only terminal reloads can leave renderer.themeMode stale, but\n // ANSI slot zero is not the terminal background when OSC 11 is absent.\n const pick = colors.defaultBackground\n ? mode(RGBA.fromHex(colors.defaultBackground))\n : (renderer.themeMode ?? mode(RGBA.fromHex(bg)))\n const footerTheme = resolveTheme(generateSystem(colors, pick), pick)\n const indexed = indexedPalette(colors, 256)\n const scrollbackTheme = quantizeTheme(footerTheme, indexed)\n const shared = await import(\"@opencode-ai/tui/context/theme\")\n const syntaxTheme: SharedSyntaxTheme = {\n ...scrollbackTheme,\n _hasSelectedListItemText: true,\n }\n const syntax = shared.generateSyntax(syntaxTheme)\n return map(footerTheme, scrollbackTheme, splashTheme(scrollbackTheme, indexed), syntax)\n } catch {\n return RUN_THEME_FALLBACK\n }\n}\n"
],
"mappings": "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",
"debugId": "D5EB78A2E04CBEE164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260709190621_session_pending_table.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709190621_session_pending_table\",\n up(tx) {\n return Effect.gen(function* () {\n // Beta reset: session_input becomes the pending-only session_pending\n // table. Dropping the old table discards consumed ledger rows and any\n // in-flight pending work along with every historical index variant.\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`\n CREATE TABLE \\`session_pending\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_pending_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE INDEX \\`session_pending_session_delivery_seq_idx\\` ON \\`session_pending\\` (\\`session_id\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_pending_session_compaction_idx\\` ON \\`session_pending\\` (\\`session_id\\`) WHERE \"session_pending\".\"type\" = 'compaction';`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_pending_session_admitted_seq_idx\\` ON \\`session_pending\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAI7B,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,2cAWb,EACD,MAAO,EAAG,IACR,wHACF,EACA,MAAO,EAAG,IACR,mJACF,EACA,MAAO,EAAG,IACR,oHACF,EACD,EAEL",
"debugId": "31AA53907BA1AA5764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n try {\n const result = await (0, execAsync_1.execAsync)('ioreg -rd1 -c \"IOPlatformExpertDevice\"');\n const idLine = result.stdout\n .split('\\n')\n .find(line => line.includes('IOPlatformUUID'));\n if (!idLine) {\n return undefined;\n }\n const parts = idLine.split('\" = \"');\n if (parts.length === 2) {\n return parts[1].slice(0, -1);\n }\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-darwin.js.map"
],
"mappings": ";gKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,MACA,MACN,eAAe,CAAY,EAAG,CAC1B,GAAI,CAEA,IAAM,GADS,MAAO,EAAG,EAAY,WAAW,wCAAwC,GAClE,OACjB,MAAM;AAAA,CAAI,EACV,KAAK,KAAQ,EAAK,SAAS,gBAAgB,CAAC,EACjD,GAAI,CAAC,EACD,OAEJ,IAAM,EAAQ,EAAO,MAAM,OAAO,EAClC,GAAI,EAAM,SAAW,EACjB,OAAO,EAAM,GAAG,MAAM,EAAG,EAAE,EAGnC,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "9BF7D7154BA8521164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E65A84E831E5A6F764756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260603001617_session_message_projection_indexes.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603001617_session_message_projection_indexes\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_type_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`event_aggregate_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`seq\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`,\\`time_created\\`,\\`id\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,oDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAuD,EACrE,MAAO,EAAG,IAAI,0DAA4D,EAC1E,MAAO,EAAG,IAAI,2EAAmF,EACjG,MAAO,EAAG,IACR,qHACF,EACA,MAAO,EAAG,IACR,iIACF,EACD,EAEL",
"debugId": "E494ADF7F4A0E22664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../tui/src/editor.ts", "../tui/src/editor-zed.ts"],
"sourcesContent": [
"import type { CliRenderer } from \"@opentui/core\"\nimport { existsSync, readdirSync, readFileSync, statSync } from \"node:fs\"\nimport { readFile, rm, writeFile } from \"node:fs/promises\"\nimport os from \"node:os\"\nimport path from \"node:path\"\nimport { spawn } from \"node:child_process\"\nimport type { Stream } from \"node:stream\"\nimport { resolveZedDbPath, resolveZedSelection } from \"./editor-zed\"\n\nexport { normalizePromptContent } from \"./prompt/content\"\n\ntype EditorStdio = \"inherit\" | \"pipe\" | \"ignore\" | number | Stream\n\nexport async function openEditor(input: { value: string; renderer: CliRenderer; cwd?: string; stdin?: EditorStdio }) {\n const editor = process.env.VISUAL || process.env.EDITOR\n if (!editor) return\n const file = path.join(os.tmpdir(), `${Date.now()}.md`)\n await writeFile(file, input.value)\n input.renderer.suspend()\n input.renderer.currentRenderBuffer.clear()\n try {\n await new Promise<void>((resolve, reject) => {\n const parts = editor.split(\" \")\n const child = spawn(parts[0]!, [...parts.slice(1), file], {\n cwd: input.cwd && existsSync(input.cwd) ? input.cwd : process.cwd(),\n stdio: [input.stdin ?? \"inherit\", \"inherit\", \"inherit\"],\n shell: process.platform === \"win32\",\n })\n child.on(\"error\", reject)\n child.on(\"exit\", (code, signal) => {\n if (code === 0) return resolve()\n reject(new Error(`Editor exited with ${signal ? `signal ${signal}` : `code ${code}`}`))\n })\n })\n return (await readFile(file, \"utf8\")) || undefined\n } finally {\n await rm(file, { force: true }).catch(() => {})\n input.renderer.currentRenderBuffer.clear()\n input.renderer.resume()\n input.renderer.requestRender()\n }\n}\n\nexport function discoverEditorConnection(directory: string) {\n const root = path.join(os.homedir(), \".claude\", \"ide\")\n const contains = (parent: string) => {\n const resolved = path.resolve(parent)\n const relative = path.relative(resolved, path.resolve(directory))\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative)) ? resolved.length : 0\n }\n try {\n return readdirSync(root)\n .filter((entry) => entry.endsWith(\".lock\"))\n .flatMap((entry) => {\n const file = path.join(root, entry)\n const port = Number.parseInt(path.basename(file, \".lock\"), 10)\n if (!Number.isInteger(port) || port <= 0 || port > 65535) return []\n try {\n const value = JSON.parse(readFileSync(file, \"utf8\")) as Record<string, unknown>\n if (value.transport !== undefined && value.transport !== \"ws\") return []\n const folders = Array.isArray(value.workspaceFolders)\n ? value.workspaceFolders.filter((item): item is string => typeof item === \"string\")\n : []\n const score = Math.max(0, ...folders.map(contains))\n if (!score) return []\n return [\n {\n url: `ws://127.0.0.1:${port}`,\n authToken: typeof value.authToken === \"string\" ? value.authToken : undefined,\n source: `lock:${port}`,\n score,\n mtime: statSync(file).mtimeMs,\n },\n ]\n } catch {\n return []\n }\n })\n .sort((left, right) => right.score - left.score || right.mtime - left.mtime)\n .map(({ url, authToken, source }) => ({ url, authToken, source }))[0]\n } catch {\n return undefined\n }\n}\n\nexport const editorIntegration = {\n connection: discoverEditorConnection,\n selection: (directory: string) => resolveZedSelection(resolveZedDbPath() ?? \"\", directory),\n}\n",
"import { Database } from \"bun:sqlite\"\nimport { statSync } from \"node:fs\"\nimport { readFile as readFileAsync } from \"node:fs/promises\"\nimport os from \"node:os\"\nimport path from \"node:path\"\nimport { Option, Schema } from \"effect\"\nimport type { EditorSelection } from \"./context/editor\"\n\nconst ZedEditorRowSchema = Schema.Struct({\n item_kind: Schema.String,\n editor_id: Schema.NullOr(Schema.Number),\n workspace_id: Schema.Number,\n workspace_paths: Schema.NullOr(Schema.String),\n timestamp: Schema.String,\n buffer_path: Schema.NullOr(Schema.String),\n})\n\nconst ZedSelectionRowSchema = Schema.Struct({\n selection_start: Schema.NullOr(Schema.Number),\n selection_end: Schema.NullOr(Schema.Number),\n})\n\nconst ZedEditorContentsSchema = Schema.Struct({\n contents: Schema.NullOr(Schema.String),\n})\n\nconst decodeZedEditorRow = Schema.decodeUnknownOption(ZedEditorRowSchema)\nconst decodeZedSelectionRow = Schema.decodeUnknownOption(ZedSelectionRowSchema)\nconst decodeZedEditorContents = Schema.decodeUnknownOption(ZedEditorContentsSchema)\n\nconst utf8 = new TextEncoder()\n\ntype ZedEditorRow = Schema.Schema.Type<typeof ZedEditorRowSchema>\ntype ZedActiveEditorRow = ZedEditorRow & { item_kind: \"Editor\"; editor_id: number }\n\nexport type ZedSelectionResult =\n | { type: \"selection\"; selection: EditorSelection }\n | { type: \"empty\" }\n | { type: \"unavailable\" }\n\nexport async function resolveZedSelection(dbPath: string, cwd = process.cwd()): Promise<ZedSelectionResult> {\n const active = queryZedActiveEditor(dbPath, cwd)\n if (active.type !== \"row\") return active\n\n const row = active.row\n if (!row.buffer_path) return { type: \"empty\" }\n\n const selections = queryZedEditorSelections(dbPath, row)\n if (selections.type !== \"selections\") return selections\n const byteRanges = selections.selections\n .flatMap((selection) => {\n if (selection.selection_start == null || selection.selection_end == null) return []\n return [\n {\n start: Math.min(selection.selection_start, selection.selection_end),\n end: Math.max(selection.selection_start, selection.selection_end),\n },\n ]\n })\n .sort((left, right) => left.start - right.start || left.end - right.end)\n if (byteRanges.length === 0) return { type: \"unavailable\" }\n\n const contents = queryZedEditorContents(dbPath, row)\n const text =\n contents.type === \"contents\" && contents.contents != null\n ? contents.contents\n : await readFileAsync(row.buffer_path, \"utf8\").catch(() => undefined)\n if (text == null) return { type: \"unavailable\" }\n\n const ranges = byteRanges.map((range) => {\n const startOffset = utf8ByteOffsetToStringIndex(text, range.start)\n const endOffset = utf8ByteOffsetToStringIndex(text, range.end)\n return {\n text: text.slice(startOffset, endOffset),\n selection: offsetsToSelection(text, startOffset, endOffset),\n }\n })\n\n return {\n type: \"selection\",\n selection: {\n filePath: row.buffer_path,\n source: \"zed\",\n ranges,\n },\n }\n}\n\nfunction queryZedActiveEditor(dbPath: string, cwd: string) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const raw = db\n .query(\n `select\n i.kind as item_kind,\n e.item_id as editor_id,\n i.workspace_id as workspace_id,\n w.paths as workspace_paths,\n w.timestamp as timestamp,\n e.buffer_path as buffer_path\n from items i\n join panes p on p.pane_id = i.pane_id and p.workspace_id = i.workspace_id\n join workspaces w on w.workspace_id = i.workspace_id\n left join editors e on e.item_id = i.item_id and e.workspace_id = i.workspace_id\n where i.active = 1 and p.active = 1\n order by w.timestamp desc`,\n )\n .all()\n\n const rows = raw.flatMap((row) => {\n const parsed = decodeZedEditorRow(row)\n return Option.isSome(parsed) ? [parsed.value] : []\n })\n\n if (raw.length > 0 && rows.length === 0) return { type: \"unavailable\" as const }\n\n const row = rows\n .map((row) => ({ row, score: scoreZedWorkspace(row.workspace_paths, cwd) }))\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score || right.row.timestamp.localeCompare(left.row.timestamp))[0]?.row\n if (!row) return { type: \"empty\" as const }\n if (row.item_kind !== \"Editor\") return { type: \"unavailable\" as const }\n if (!isZedActiveEditorRow(row)) return { type: \"empty\" as const }\n return { type: \"row\" as const, row }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction queryZedEditorSelections(dbPath: string, row: ZedActiveEditorRow) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const raw = db\n .query(\n `select\n start as selection_start,\n end as selection_end\n from editor_selections\n where editor_id = $editorID and workspace_id = $workspaceID`,\n )\n .all({ $editorID: row.editor_id, $workspaceID: row.workspace_id })\n\n const selections = raw.flatMap((selection) => {\n const parsed = decodeZedSelectionRow(selection)\n return Option.isSome(parsed) ? [parsed.value] : []\n })\n\n if (raw.length > 0 && selections.length === 0) return { type: \"unavailable\" as const }\n return { type: \"selections\" as const, selections }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction queryZedEditorContents(dbPath: string, row: ZedActiveEditorRow) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const parsed = decodeZedEditorContents(\n db\n .query(\n `select contents\n from editors\n where item_id = $editorID and workspace_id = $workspaceID`,\n )\n .get({ $editorID: row.editor_id, $workspaceID: row.workspace_id }),\n )\n if (Option.isNone(parsed)) return { type: \"unavailable\" as const }\n return { type: \"contents\" as const, contents: parsed.value.contents }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction isZedActiveEditorRow(row: ZedEditorRow): row is ZedActiveEditorRow {\n return row.item_kind === \"Editor\" && row.editor_id != null\n}\n\nexport function resolveZedDbPath() {\n const candidates = [\n process.env.OPENCODE_ZED_DB,\n path.join(os.homedir(), \"Library\", \"Application Support\", \"Zed\", \"db\", \"0-stable\", \"db.sqlite\"),\n path.join(os.homedir(), \".local\", \"share\", \"zed\", \"db\", \"0-stable\", \"db.sqlite\"),\n ].filter((item): item is string => Boolean(item))\n\n return candidates.find((item) => isFile(item))\n}\n\nexport function isZedTerminal() {\n return process.env.ZED_TERM === \"true\" || process.env.TERM_PROGRAM?.toLowerCase() === \"zed\"\n}\n\nfunction isFile(item: string) {\n try {\n return statSync(item).isFile()\n } catch {\n return false\n }\n}\n\nfunction scoreZedWorkspace(workspacePaths: string | null, cwd: string) {\n return zedWorkspacePaths(workspacePaths).reduce((score, item) => {\n if (pathContains(item, cwd)) return Math.max(score, path.resolve(item).length)\n return score\n }, 0)\n}\n\nfunction zedWorkspacePaths(value: string | null) {\n if (!value) return []\n const parsed = parseJson(value)\n if (Array.isArray(parsed)) return parsed.filter((item): item is string => typeof item === \"string\")\n return value.split(/\\r?\\n/).filter(Boolean)\n}\n\nexport function offsetToPosition(text: string, offset: number) {\n const stringOffset = utf8ByteOffsetToStringIndex(text, offset)\n return offsetsToSelection(text, stringOffset, stringOffset).start\n}\n\nfunction utf8ByteOffsetToStringIndex(text: string, byteOffset: number) {\n if (byteOffset <= 0) return 0\n\n let bytes = 0\n for (let index = 0; index < text.length; ) {\n const codePoint = text.codePointAt(index)\n if (codePoint === undefined) return text.length\n\n const nextIndex = index + (codePoint > 0xffff ? 2 : 1)\n bytes += utf8.encode(text.slice(index, nextIndex)).length\n if (bytes >= byteOffset) return nextIndex\n index = nextIndex\n }\n\n return text.length\n}\n\nfunction offsetsToSelection(text: string, startOffset: number, endOffset: number) {\n const start = Math.max(0, Math.min(startOffset, text.length))\n const end = Math.max(0, Math.min(endOffset, text.length))\n let line = 1\n let lineStart = 0\n let startPosition = position(line, lineStart, start)\n let endPosition = position(line, lineStart, end)\n\n for (let index = 0; index <= end; index++) {\n if (index === start) startPosition = position(line, lineStart, index)\n if (index === end) {\n endPosition = position(line, lineStart, index)\n break\n }\n if (text[index] === \"\\n\") {\n line += 1\n lineStart = index + 1\n }\n }\n\n return { start: startPosition, end: endPosition }\n}\n\nfunction position(line: number, lineStart: number, offset: number) {\n return {\n line,\n character: offset - lineStart + 1,\n }\n}\n\nfunction pathContains(parent: string, child: string) {\n const relative = path.relative(path.resolve(parent), path.resolve(child))\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative))\n}\n\nfunction parseJson(value: string) {\n try {\n return JSON.parse(value) as unknown\n } catch {\n return\n }\n}\n"
],
"mappings": "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",
"debugId": "0DC0E7BFEDFAD1E464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "4E553B60EA372A1F64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/session-data.ts", "src/mini/stream-v2.transport.ts"],
"sourcesContent": [
"import type { PermissionV2Request, QuestionV2Request } from \"@opencode-ai/client/promise\"\nimport type { FooterView } from \"./types\"\n\nexport function pickBlockerView(input: {\n permission?: PermissionV2Request\n question?: QuestionV2Request\n}): FooterView {\n if (input.permission) return { type: \"permission\", request: input.permission }\n if (input.question) return { type: \"question\", request: input.question }\n return { type: \"prompt\" }\n}\n\nexport function blockerStatus(view: FooterView) {\n if (view.type === \"permission\") return \"awaiting permission\"\n if (view.type === \"question\") return \"awaiting answer\"\n return \"\"\n}\n",
"import type {\n EventSubscribeOutput,\n OpenCodeClient,\n PermissionV2Request,\n QuestionV2Request,\n SessionMessageAssistantTool,\n SessionMessageInfo,\n} from \"@opencode-ai/client/promise\"\nimport { Event } from \"@opencode-ai/schema/event\"\nimport { blockerStatus, pickBlockerView } from \"./session-data\"\nimport { writeSessionOutput } from \"./stream\"\nimport { createSubagentTracker, miniTool, toolCommit } from \"./stream-v2.subagent\"\nimport type {\n FooterApi,\n FooterView,\n LocalReplayAnchor,\n LocalReplayRow,\n RunFilePart,\n RunInput,\n RunPrompt,\n RunPromptPart,\n RunProvider,\n StreamCommit,\n} from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype StreamInput = {\n sdk: OpenCodeClient\n directory?: string\n sessionID: string\n thinking: boolean\n replay?: boolean\n replayLimit?: number\n limits: () => Record<string, number>\n providers?: () => RunProvider[]\n footer: FooterApi\n trace?: Trace\n signal?: AbortSignal\n onCatalogRefresh?: () => void\n}\n\nexport type SessionTurnInput = {\n agent: string | undefined\n model: RunInput[\"model\"]\n variant: string | undefined\n prompt: RunPrompt\n files: RunFilePart[]\n includeFiles: boolean\n onVisibleOutput?: (anchor: LocalReplayAnchor) => void\n signal?: AbortSignal\n}\n\nexport type SessionResizeReplayInput = {\n localRows: () => LocalReplayRow[]\n reset: () => Promise<void>\n}\n\nexport type SessionTransport = {\n runPromptTurn(input: SessionTurnInput): Promise<void>\n interruptActiveTurn(): Promise<void>\n selectSubagent(sessionID: string | undefined): void\n replayOnResize(input: SessionResizeReplayInput): Promise<boolean>\n close(): Promise<void>\n}\n\ntype Wait = {\n messageID: string\n promoted: boolean\n interrupted: boolean\n failureRendered: boolean\n resolve: () => void\n reject: (error: unknown) => void\n onVisibleOutput?: (anchor: LocalReplayAnchor) => void\n}\n\n// One active session.shell call. The HTTP response is the completion signal;\n// callID correlates the live shell events once shell.started is observed, and\n// abort cancels the blocking request when the user interrupts the turn.\ntype ShellWait = {\n eventID: string\n messageID: string\n callID?: string\n resolve: () => void\n abort: () => void\n}\n\ntype RunV2Event = EventSubscribeOutput\ntype PromptFilePart = Extract<RunPromptPart, { type: \"file\" }>\n\ntype ToolState = {\n messageID: string\n name: string\n input: Record<string, unknown>\n started: number\n running: boolean\n providerState?: Record<string, unknown>\n}\n\ntype State = {\n permissions: PermissionV2Request[]\n questions: QuestionV2Request[]\n view: FooterView\n messageIDs: Set<string>\n text: Map<string, string>\n projectedText: Map<string, string>\n reasoning: Map<string, string>\n projectedReasoning: Map<string, string>\n tools: Map<string, ToolState>\n finishedTools: Set<string>\n skillMessages: Set<string>\n shellCommands: Map<string, string>\n shellStarted: Set<string>\n shellEnded: Set<string>\n shellWait?: ShellWait\n wait?: Wait\n connected: boolean\n closed: boolean\n initial: boolean\n buffered?: RunV2Event[]\n errors: Set<string>\n}\n\nconst money = new Intl.NumberFormat(\"en-US\", { style: \"currency\", currency: \"USD\" })\n\nexport function formatUnknownError(error: unknown): string {\n if (typeof error === \"string\") return error\n if (error instanceof Error) return error.message || error.name\n if (error && typeof error === \"object\") {\n const message = Reflect.get(error, \"message\")\n if (typeof message === \"string\" && message.trim()) return message\n const tag = Reflect.get(error, \"_tag\")\n if (typeof tag === \"string\" && tag.trim()) return tag\n }\n return \"unknown error\"\n}\n\nfunction sessionID(event: RunV2Event) {\n return \"sessionID\" in event.data && typeof event.data.sessionID === \"string\" ? event.data.sessionID : undefined\n}\n\nfunction errorMessage(error: { message?: string; _tag?: string }) {\n return error.message || error._tag || \"Session execution failed\"\n}\n\nfunction wait(delay: number, signal: AbortSignal) {\n return new Promise<void>((resolve) => {\n const timer = setTimeout(done, delay)\n signal.addEventListener(\"abort\", done, { once: true })\n function done() {\n clearTimeout(timer)\n signal.removeEventListener(\"abort\", done)\n resolve()\n }\n })\n}\n\nasync function prepareFile(file: RunFilePart) {\n if (file.mime !== \"text/plain\") return { attachment: { uri: file.url, name: file.filename } }\n const content = file.url.startsWith(\"data:\")\n ? Buffer.from(file.url.slice(file.url.indexOf(\",\") + 1), \"base64\").toString(\"utf8\")\n : await Bun.file(new URL(file.url)).text()\n return { text: `<file name=\"${file.filename}\">\\n${content}\\n</file>` }\n}\n\nfunction promptFileMention(part: PromptFilePart) {\n if (!part.source?.text) return\n return {\n start: part.source.text.start,\n end: part.source.text.end,\n text: part.source.text.value,\n }\n}\n\nfunction promptFiles(next: SessionTurnInput) {\n return next.prompt.parts.flatMap((part) =>\n part.type === \"file\"\n ? [\n {\n uri: part.url,\n name: part.filename,\n mention: promptFileMention(part),\n },\n ]\n : [],\n )\n}\n\nfunction promptAgents(next: SessionTurnInput) {\n return next.prompt.parts.flatMap((part) =>\n part.type === \"agent\"\n ? [\n {\n name: part.name,\n mention: part.source\n ? { start: part.source.start, end: part.source.end, text: part.source.value }\n : undefined,\n },\n ]\n : [],\n )\n}\n\nfunction streamPartKey(messageID: string, partID: string) {\n return `${messageID}\\u0000${partID}`\n}\n\n// Direct shell calls use one \"start\" commit rendering `$ command` and one \"progress\"\n// commit rendering the merged output (see toolEntryBody in tool.ts).\nfunction shellCommit(\n callID: string,\n command: string,\n next: Pick<StreamCommit, \"text\" | \"phase\" | \"toolState\" | \"toolError\">,\n): StreamCommit {\n return {\n kind: \"tool\",\n source: \"tool\",\n partID: `shell:${callID}`,\n tool: \"shell\",\n shell: { callID, command },\n ...next,\n }\n}\n\nfunction shellTerminal(\n callID: string,\n command: string,\n shell: { status: string; exit?: number | string },\n output: { output: string; cursor: number; size: number; truncated: boolean },\n) {\n const incomplete = output.truncated || output.cursor < output.size\n const text = `${output.output}${incomplete ? `${output.output.endsWith(\"\\n\") || !output.output ? \"\" : \"\\n\"}[output truncated]` : \"\"}`\n const error =\n shell.status === \"exited\" && shell.exit === 0\n ? undefined\n : shell.status === \"exited\"\n ? `Shell exited with code ${shell.exit ?? \"unknown\"}`\n : `Shell ${shell.status}`\n if (!error) return [shellCommit(callID, command, { text, phase: \"progress\", toolState: \"completed\" })]\n return [\n ...(text ? [shellCommit(callID, command, { text, phase: \"progress\", toolState: \"running\" })] : []),\n shellCommit(callID, command, { text: error, phase: \"final\", toolState: \"error\", toolError: error }),\n ]\n}\n\nfunction messageIDFromEvent(id: string) {\n return id.replace(/^evt_/, \"msg_\")\n}\n\nconst catalogEvents = new Set([\n \"catalog.updated\",\n \"integration.updated\",\n \"agent.updated\",\n \"command.updated\",\n \"skill.updated\",\n \"reference.updated\",\n])\n\n// session.shell resolves after the command settled server-side; the matching\n// live shell.ended event usually lands within the same tick, but hold the turn\n// briefly so the output commit renders inside it.\nconst SHELL_OUTPUT_GRACE_MS = 1500\n\nfunction skillCommit(messageID: string, name: string): StreamCommit {\n return {\n kind: \"system\",\n source: \"system\",\n messageID,\n partID: `skill:${messageID}`,\n text: `→ Skill \"${name}\"`,\n phase: \"start\",\n }\n}\n\nasync function resolveSelectedModel(input: StreamInput, next: Pick<SessionTurnInput, \"model\" | \"variant\" | \"signal\">) {\n if (next.model) return { providerID: next.model.providerID, id: next.model.modelID, variant: next.variant }\n if (!next.variant) return\n\n const session = await input.sdk.session\n .get({ sessionID: input.sessionID }, { signal: next.signal })\n .then((response) => response.model)\n if (session) return { ...session, variant: next.variant }\n\n const fallback = await input.sdk.model.default(undefined, { signal: next.signal }).then((response) => response.data)\n if (!fallback) return\n return { providerID: fallback.providerID, id: fallback.id, variant: next.variant }\n}\n\nexport async function createSessionTransport(input: StreamInput): Promise<SessionTransport> {\n const controller = new AbortController()\n input.signal?.addEventListener(\"abort\", () => controller.abort(), { once: true })\n const state: State = {\n permissions: [],\n questions: [],\n view: { type: \"prompt\" },\n messageIDs: new Set(),\n text: new Map(),\n projectedText: new Map(),\n reasoning: new Map(),\n projectedReasoning: new Map(),\n tools: new Map(),\n finishedTools: new Set(),\n skillMessages: new Set(),\n shellCommands: new Map(),\n shellStarted: new Set(),\n shellEnded: new Set(),\n connected: false,\n closed: false,\n initial: true,\n errors: new Set(),\n }\n let readyResolve!: () => void\n let readyReject!: (error: unknown) => void\n const ready = new Promise<void>((resolve, reject) => {\n readyResolve = resolve\n readyReject = reject\n })\n const abortReady = () => readyReject(new Error(\"Mini closed before the event stream connected\"))\n controller.signal.addEventListener(\"abort\", abortReady, { once: true })\n const offFooterClose = input.footer.onClose(() => controller.abort())\n\n const subagents = createSubagentTracker({\n sdk: input.sdk,\n sessionID: input.sessionID,\n thinking: input.thinking,\n emit: () => {\n if (state.closed || input.footer.isClosed) return\n writeSessionOutput(\n { footer: input.footer, trace: input.trace },\n { commits: [], footer: { subagent: subagents.snapshot() } },\n )\n },\n })\n\n const write = (commits: StreamCommit[], patch?: { phase?: \"idle\" | \"running\"; status?: string; usage?: string }) => {\n const visible = commits.at(-1)\n if (visible) {\n state.wait?.onVisibleOutput?.({\n kind: visible.kind,\n text: visible.text,\n phase: visible.phase,\n messageID: visible.messageID,\n partID: visible.partID,\n toolState: visible.toolState,\n })\n }\n writeSessionOutput({ footer: input.footer, trace: input.trace }, { commits, footer: patch ? { patch } : undefined })\n }\n\n const syncBlockers = () => {\n const next = pickBlockerView({ permission: state.permissions[0], question: state.questions[0] })\n if (next.type === \"prompt\" && state.view.type === \"prompt\") return\n if (next.type !== \"prompt\" && state.view.type === next.type && next.request.id === state.view.request.id) return\n state.view = next\n writeSessionOutput(\n { footer: input.footer, trace: input.trace },\n { commits: [], footer: { view: next, patch: { status: blockerStatus(next) } } },\n )\n }\n\n const renderTool = (messageID: string, item: SessionMessageAssistantTool) => {\n const part = miniTool({\n sessionID: input.sessionID,\n messageID,\n tool: item,\n })\n if (item.state.status === \"streaming\") return\n if (item.state.status === \"running\") {\n if (state.tools.get(item.id)?.running) return\n state.tools.set(item.id, {\n messageID,\n name: item.name,\n input: item.state.input,\n started: item.time.ran ?? item.time.created,\n running: true,\n providerState: item.providerState,\n })\n write([toolCommit(part, \"start\")], { phase: \"running\", status: `running ${item.name}` })\n return\n }\n if (state.finishedTools.has(item.id)) return\n if (!state.tools.get(item.id)?.running) write([toolCommit(part, \"start\")])\n state.finishedTools.add(item.id)\n state.tools.delete(item.id)\n write([\n toolCommit(\n part,\n item.state.status === \"completed\" && part.state.status === \"completed\" && part.state.output\n ? \"progress\"\n : \"final\",\n ),\n ])\n }\n\n const renderMessage = (message: SessionMessageInfo, render: boolean, reuseVisibleWait: boolean) => {\n if (message.type === \"user\") {\n const waiting = state.wait?.messageID === message.id\n if (waiting && state.wait) state.wait.promoted = true\n if (!render || state.messageIDs.has(message.id)) return\n state.messageIDs.add(message.id)\n if (reuseVisibleWait && waiting) return\n write([{ kind: \"user\", source: \"system\", text: message.text, phase: \"start\", messageID: message.id }])\n return\n }\n if (message.type === \"skill\") {\n if (state.wait?.messageID === message.id) state.wait.promoted = true\n if (!render || state.skillMessages.has(message.id)) {\n state.skillMessages.add(message.id)\n return\n }\n state.skillMessages.add(message.id)\n write([skillCommit(message.id, message.name)])\n return\n }\n if (message.type === \"shell\") {\n state.shellCommands.set(message.shellID, message.command)\n if (state.shellWait?.messageID === message.id) state.shellWait.callID = message.shellID\n const completed = message.time.completed !== undefined\n if (!render) {\n // Suppressed history: mark settled shells rendered so live redelivery\n // stays silent. A still-running shell stays unmarked and renders in\n // full when its live shell.ended event arrives.\n if (completed) {\n state.shellStarted.add(message.shellID)\n state.shellEnded.add(message.shellID)\n }\n return\n }\n if (!state.shellStarted.has(message.shellID)) {\n state.shellStarted.add(message.shellID)\n write([\n shellCommit(message.shellID, message.command, {\n text: \"running shell\",\n phase: \"start\",\n toolState: \"running\",\n }),\n ])\n }\n if (completed && message.output && !state.shellEnded.has(message.shellID)) {\n state.shellEnded.add(message.shellID)\n write(shellTerminal(message.shellID, message.command, message, message.output))\n }\n if (completed && state.shellWait?.callID === message.shellID) state.shellWait.resolve()\n return\n }\n if (message.type !== \"assistant\") return\n state.messageIDs.add(message.id)\n let textOrdinal = 0\n let reasoningOrdinal = 0\n for (const item of message.content) {\n if (item.type === \"text\") {\n const id = `text:${textOrdinal++}`\n const key = streamPartKey(message.id, id)\n const sent = state.text.get(key)?.length ?? 0\n state.text.set(key, item.text)\n if (render) state.projectedText.set(key, item.text)\n if (render && item.text.length > sent)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: item.text.slice(sent),\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n },\n ])\n continue\n }\n if (item.type === \"reasoning\") {\n const id = `reasoning:${reasoningOrdinal++}`\n const key = streamPartKey(message.id, id)\n const sent = state.reasoning.get(key)?.length ?? 0\n state.reasoning.set(key, item.text)\n if (render) state.projectedReasoning.set(key, item.text)\n if (render && input.thinking && item.text.length > sent)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: sent === 0 ? `Thinking: ${item.text}` : item.text.slice(sent),\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n },\n ])\n continue\n }\n if (render) renderTool(message.id, item)\n }\n if (render && message.error && !state.errors.has(message.id)) {\n state.errors.add(message.id)\n write([\n {\n kind: \"error\",\n source: \"system\",\n text: errorMessage(message.error),\n phase: \"start\",\n messageID: message.id,\n },\n ])\n }\n }\n\n const hydrate = async (next: { render: boolean; reuseVisibleWait: boolean }) => {\n const [messages, permissions, questions, active] = await Promise.all([\n input.sdk.message.list({ sessionID: input.sessionID, limit: input.replayLimit ?? 200, order: \"desc\" }),\n input.sdk.permission.list({ sessionID: input.sessionID }),\n input.sdk.question.list({ sessionID: input.sessionID }),\n input.sdk.session.active(),\n ])\n const projected = structuredClone(messages.data).toReversed() as SessionMessageInfo[]\n for (const message of projected) renderMessage(message, next.render, next.reuseVisibleWait)\n state.permissions = permissions\n state.questions = questions\n syncBlockers()\n await subagents.hydrate({ messages: [...projected], active })\n const running = input.sessionID in active\n write([], { phase: running ? \"running\" : \"idle\", status: running ? \"assistant responding\" : \"\" })\n if (!running && state.wait && (state.wait.promoted || state.wait.interrupted)) {\n const current = state.wait\n state.wait = undefined\n current.resolve()\n }\n }\n\n const apply = (event: RunV2Event) => {\n if (catalogEvents.has(event.type)) {\n if (input.directory && event.location?.directory && event.location.directory !== input.directory) return\n input.onCatalogRefresh?.()\n return\n }\n const source = sessionID(event)\n if (source !== input.sessionID) {\n if (source) subagents.foreign(source, event)\n return\n }\n input.trace?.write(\"recv.event\", event)\n subagents.main(event)\n if (event.type === \"session.input.promoted\") {\n if (state.wait?.messageID === event.data.inputID) state.wait.promoted = true\n state.messageIDs.add(event.data.inputID)\n write([], { phase: \"running\", status: \"waiting for assistant\" })\n return\n }\n if (event.type === \"session.step.started\") {\n write([], { phase: \"running\", status: \"assistant responding\" })\n return\n }\n if (event.type === \"session.skill.activated\") {\n const messageID = messageIDFromEvent(event.id)\n if (state.wait?.messageID === messageID) state.wait.promoted = true\n if (state.skillMessages.has(messageID)) return\n state.skillMessages.add(messageID)\n write([skillCommit(messageID, event.data.name)])\n return\n }\n if (event.type === \"session.shell.started\") {\n state.shellCommands.set(event.data.shell.id, event.data.shell.command)\n const wait = state.shellWait\n if (wait?.eventID === event.id) wait.callID = event.data.shell.id\n if (state.shellStarted.has(event.data.shell.id)) return\n state.shellStarted.add(event.data.shell.id)\n write(\n [\n shellCommit(event.data.shell.id, event.data.shell.command, {\n text: \"running shell\",\n phase: \"start\",\n toolState: \"running\",\n }),\n ],\n {\n phase: \"running\",\n status: \"running shell\",\n },\n )\n return\n }\n if (event.type === \"session.shell.ended\") {\n const command = state.shellCommands.get(event.data.shell.id) ?? event.data.shell.command\n const commits: StreamCommit[] = []\n if (!state.shellStarted.has(event.data.shell.id)) {\n state.shellStarted.add(event.data.shell.id)\n if (command)\n commits.push(\n shellCommit(event.data.shell.id, command, { text: \"running shell\", phase: \"start\", toolState: \"running\" }),\n )\n }\n if (!state.shellEnded.has(event.data.shell.id)) {\n state.shellEnded.add(event.data.shell.id)\n commits.push(...shellTerminal(event.data.shell.id, command, event.data.shell, event.data.output))\n }\n const wait = state.shellWait\n const owned = wait?.callID === event.data.shell.id\n write(commits, owned || state.wait || state.shellWait ? undefined : { phase: \"idle\", status: \"\" })\n if (owned) wait.resolve()\n return\n }\n if (event.type === \"session.text.started\") {\n return\n }\n if (event.type === \"session.text.delta\") {\n const id = `text:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const projected = state.projectedText.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n state.projectedText.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const previous = state.text.get(key) ?? \"\"\n state.text.set(key, previous + event.data.delta)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.delta,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n return\n }\n if (event.type === \"session.text.ended\") {\n const id = `text:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const previous = state.text.get(key) ?? \"\"\n if (event.data.text.length > previous.length)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.text.slice(previous.length),\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n state.text.set(key, event.data.text)\n state.projectedText.delete(key)\n return\n }\n if (event.type === \"session.reasoning.started\") {\n return\n }\n if (event.type === \"session.reasoning.delta\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const projected = state.projectedReasoning.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n state.projectedReasoning.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const previous = state.reasoning.get(key) ?? \"\"\n state.reasoning.set(key, previous + event.data.delta)\n if (input.thinking)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: previous ? event.data.delta : `Thinking: ${event.data.delta}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n return\n }\n if (event.type === \"session.reasoning.ended\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const previous = state.reasoning.get(key) ?? \"\"\n if (input.thinking && event.data.text.length > previous.length)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: previous ? event.data.text.slice(previous.length) : `Thinking: ${event.data.text}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n state.reasoning.set(key, event.data.text)\n state.projectedReasoning.delete(key)\n return\n }\n if (event.type === \"session.tool.input.started\") {\n state.tools.set(event.data.callID, {\n messageID: event.data.assistantMessageID,\n name: event.data.name,\n input: {},\n started: event.created,\n running: false,\n })\n return\n }\n if (event.type === \"session.tool.called\") {\n if (state.finishedTools.has(event.data.callID)) return\n const current = state.tools.get(event.data.callID)\n const item = structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: event.data.state,\n state: { status: \"running\", input: event.data.input, structured: {}, content: [] },\n time: { created: current?.started ?? event.created, ran: event.created },\n }) as SessionMessageAssistantTool\n renderTool(event.data.assistantMessageID, item)\n return\n }\n if (event.type === \"session.tool.progress\") return\n if (event.type === \"session.tool.success\" || event.type === \"session.tool.failed\") {\n const current = state.tools.get(event.data.callID)\n const failed = event.type === \"session.tool.failed\"\n const item = structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: current?.providerState,\n providerResultState: event.data.resultState,\n state: failed\n ? {\n status: \"error\",\n input: current?.input ?? {},\n structured: {},\n content: [],\n error: event.data.error,\n result: event.data.result,\n }\n : {\n status: \"completed\",\n input: current?.input ?? {},\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n },\n time: { created: current?.started ?? event.created, ran: current?.started, completed: event.created },\n }) as SessionMessageAssistantTool\n renderTool(event.data.assistantMessageID, item)\n return\n }\n if (event.type === \"permission.v2.asked\") {\n if (!state.permissions.some((item) => item.id === event.data.id)) state.permissions.push(event.data)\n syncBlockers()\n return\n }\n if (event.type === \"permission.v2.replied\") {\n state.permissions = state.permissions.filter((item) => item.id !== event.data.requestID)\n syncBlockers()\n return\n }\n if (event.type === \"question.v2.asked\") {\n if (!state.questions.some((item) => item.id === event.data.id)) state.questions.push(event.data)\n syncBlockers()\n return\n }\n if (event.type === \"question.v2.replied\" || event.type === \"question.v2.rejected\") {\n state.questions = state.questions.filter((item) => item.id !== event.data.requestID)\n syncBlockers()\n return\n }\n if (event.type === \"session.step.ended\") {\n const total =\n event.data.tokens.input +\n event.data.tokens.output +\n event.data.tokens.reasoning +\n event.data.tokens.cache.read +\n event.data.tokens.cache.write\n const usage = total > 0 ? total.toLocaleString() : \"\"\n write([], {\n usage: event.data.cost ? `${usage} · ${money.format(event.data.cost)}` : usage,\n })\n return\n }\n if (event.type === \"session.step.failed\") {\n state.errors.add(event.data.assistantMessageID)\n if (state.wait) state.wait.failureRendered = true\n write([{ kind: \"error\", source: \"system\", text: errorMessage(event.data.error), phase: \"start\" }])\n return\n }\n if (event.type === \"session.execution.started\") {\n write([], { phase: \"running\" })\n return\n }\n if (\n event.type === \"session.execution.succeeded\" ||\n event.type === \"session.execution.failed\" ||\n event.type === \"session.execution.interrupted\"\n ) {\n write([], { phase: \"idle\", status: \"\" })\n const current = state.wait\n if (!current || (!current.promoted && !current.interrupted)) return\n state.wait = undefined\n if (current.interrupted && event.type === \"session.execution.interrupted\" && event.data.reason === \"user\") {\n current.resolve()\n return\n }\n if (event.type === \"session.execution.failed\") {\n if (current.failureRendered) {\n current.resolve()\n return\n }\n current.reject(new Error(errorMessage(event.data.error)))\n return\n }\n if (event.type === \"session.execution.interrupted\") {\n current.reject(new Error(`Session interrupted: ${event.data.reason}`))\n return\n }\n current.resolve()\n }\n }\n\n const receive = (event: RunV2Event) => {\n if (state.buffered) {\n state.buffered.push(event)\n return\n }\n apply(event)\n }\n\n const connect = async () => {\n while (!controller.signal.aborted && !input.footer.isClosed) {\n const error = await (async () => {\n const connection = new AbortController()\n const abortConnection = () => connection.abort()\n controller.signal.addEventListener(\"abort\", abortConnection, { once: true })\n const stream = input.sdk.event.subscribe({ signal: connection.signal })[Symbol.asyncIterator]()\n try {\n const first = await stream.next()\n if (first.done || first.value.type !== \"server.connected\") throw new Error(\"Event stream disconnected\")\n const buffered: RunV2Event[] = []\n let booting = true\n const consume = (async () => {\n while (!connection.signal.aborted) {\n const next = await stream.next()\n if (next.done) throw new Error(\"Event stream disconnected\")\n if (booting) buffered.push(next.value)\n else receive(next.value)\n }\n })()\n void consume.catch(() => {})\n await hydrate({ render: state.initial ? input.replay === true : true, reuseVisibleWait: !state.initial })\n input.onCatalogRefresh?.()\n state.initial = false\n booting = false\n for (const event of buffered.splice(0)) apply(event)\n state.connected = true\n readyResolve()\n await consume\n } finally {\n controller.signal.removeEventListener(\"abort\", abortConnection)\n connection.abort()\n void stream.return?.(undefined).catch(() => {})\n }\n })().catch((error) => error)\n state.connected = false\n if (controller.signal.aborted || input.footer.isClosed) return\n input.trace?.write(\"recv.reconnect\", { error: formatUnknownError(error) })\n write([], { phase: \"running\", status: \"reconnecting\" })\n await wait(250, controller.signal)\n }\n }\n const connection = connect()\n try {\n await ready\n } catch (error) {\n offFooterClose()\n throw error\n } finally {\n controller.signal.removeEventListener(\"abort\", abortReady)\n }\n\n const runShellTurn = async (next: SessionTurnInput) => {\n if (state.wait || state.shellWait) throw new Error(\"prompt already running\")\n if (!state.connected) throw new Error(\"Event stream is reconnecting\")\n const abort = new AbortController()\n const onAbort = () => abort.abort()\n next.signal?.addEventListener(\"abort\", onAbort, { once: true })\n let rendered!: () => void\n const output = new Promise<void>((resolve) => {\n rendered = resolve\n })\n const eventID = Event.ID.create()\n const active: ShellWait = {\n eventID,\n messageID: messageIDFromEvent(eventID),\n resolve: rendered,\n abort: () => abort.abort(),\n }\n state.shellWait = active\n input.trace?.write(\"send.shell\", { sessionID: input.sessionID, id: eventID, command: next.prompt.text })\n write([], { phase: \"running\", status: \"running shell\" })\n try {\n await input.sdk.session.shell(\n { sessionID: input.sessionID, id: eventID, command: next.prompt.text },\n { signal: abort.signal },\n )\n await Promise.race([output, wait(SHELL_OUTPUT_GRACE_MS, abort.signal)])\n } catch (error) {\n if (abort.signal.aborted) return\n throw error\n } finally {\n next.signal?.removeEventListener(\"abort\", onAbort)\n if (state.shellWait === active) state.shellWait = undefined\n }\n }\n\n // Shared settlement scaffolding for prompt-shaped turns: registers the wait,\n // wires interruption, sends, then blocks until the live settled event (or a\n // hydration pass over an idle session) resolves it.\n const runTurnWait = async (\n next: SessionTurnInput,\n messageID: string,\n turn: { promoted?: boolean; send: () => Promise<unknown> },\n ) => {\n let resolve!: () => void\n let reject!: (error: unknown) => void\n const done = new Promise<void>((ok, fail) => {\n resolve = ok\n reject = fail\n })\n const active: Wait = {\n messageID,\n promoted: turn.promoted === true,\n interrupted: false,\n failureRendered: false,\n resolve,\n reject,\n onVisibleOutput: next.onVisibleOutput,\n }\n state.wait = active\n const interrupt = () => {\n active.interrupted = true\n void input.sdk.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n next.signal?.addEventListener(\"abort\", interrupt, { once: true })\n try {\n await turn.send()\n await done\n } catch (error) {\n if (state.wait === active) state.wait = undefined\n if (next.signal?.aborted) return\n throw error\n } finally {\n next.signal?.removeEventListener(\"abort\", interrupt)\n }\n }\n\n return {\n async runPromptTurn(next) {\n if (next.prompt.mode === \"shell\") {\n await runShellTurn(next)\n return\n }\n if (state.wait || state.shellWait) throw new Error(\"prompt already running\")\n if (!state.connected) throw new Error(\"Event stream is reconnecting\")\n const messageID = next.prompt.messageID\n if (!messageID) throw new Error(\"Prompt message ID is required\")\n\n const command = next.prompt.command\n if (command?.source === \"skill\") {\n input.trace?.write(\"send.skill\", { sessionID: input.sessionID, messageID, skill: command.name })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.skill(\n { sessionID: input.sessionID, id: messageID, skill: command.name },\n { signal: next.signal },\n ),\n })\n return\n }\n if (command) {\n const selected = await resolveSelectedModel(input, next)\n if (next.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n // Agent and model ride the command payload; the server switches only\n // when the command itself does not pin them.\n const files = [\n ...(next.includeFiles ? next.files : []).map((file) => ({ uri: file.url, name: file.filename })),\n ...promptFiles(next),\n ]\n const agents = promptAgents(next)\n input.trace?.write(\"send.command\", { sessionID: input.sessionID, messageID, command: command.name })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.command(\n {\n sessionID: input.sessionID,\n id: messageID,\n command: command.name,\n arguments: command.arguments,\n agent: next.agent,\n model: selected,\n files: files.length ? files : undefined,\n agents: agents.length ? agents : undefined,\n delivery: \"steer\",\n },\n { signal: next.signal },\n ),\n })\n return\n }\n\n if (next.agent) {\n await input.sdk.session.switchAgent({ sessionID: input.sessionID, agent: next.agent }, { signal: next.signal })\n }\n const selected = await resolveSelectedModel(input, next)\n if (next.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n if (selected)\n await input.sdk.session.switchModel({ sessionID: input.sessionID, model: selected }, { signal: next.signal })\n\n const prepared = await Promise.all((next.includeFiles ? next.files : []).map(prepareFile))\n const attachments = [\n ...prepared.flatMap((file) => (file.attachment ? [file.attachment] : [])),\n ...promptFiles(next),\n ]\n const agents = promptAgents(next)\n input.trace?.write(\"send.prompt\", { sessionID: input.sessionID, messageID })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.prompt(\n {\n sessionID: input.sessionID,\n id: messageID,\n text: [next.prompt.text, ...prepared.flatMap((file) => (file.text ? [file.text] : []))].join(\"\\n\\n\"),\n files: attachments.length ? attachments : undefined,\n agents: agents.length ? agents : undefined,\n delivery: \"steer\",\n },\n { signal: next.signal },\n ),\n })\n },\n async interruptActiveTurn() {\n // A running shell holds no drain, so session.interrupt cannot reach it;\n // abort the blocking request instead. The server-side command keeps its\n // own lifecycle and simply loses its waiter.\n const shell = state.shellWait\n if (shell) {\n shell.abort()\n return\n }\n if (state.wait) state.wait.interrupted = true\n await input.sdk.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n },\n selectSubagent(sessionID) {\n subagents.select(sessionID)\n },\n async replayOnResize(next) {\n if (!input.replay || state.closed || input.footer.isClosed) return false\n const buffered: RunV2Event[] = []\n state.buffered = buffered\n try {\n await input.footer.idle()\n await next.reset()\n state.messageIDs.clear()\n state.text.clear()\n state.projectedText.clear()\n state.reasoning.clear()\n state.projectedReasoning.clear()\n state.tools.clear()\n state.finishedTools.clear()\n state.skillMessages.clear()\n state.shellCommands.clear()\n state.shellStarted.clear()\n state.shellEnded.clear()\n state.errors.clear()\n await hydrate({ render: true, reuseVisibleWait: false })\n } finally {\n state.buffered = undefined\n }\n for (const event of buffered) apply(event)\n for (const row of next.localRows()) {\n if (row.commit.messageID && state.messageIDs.has(row.commit.messageID)) continue\n input.footer.append(row.commit)\n }\n return true\n },\n async close() {\n state.closed = true\n offFooterClose()\n controller.abort()\n void connection.catch(() => {})\n },\n }\n}\n"
],
"mappings": ";iSAGO,cAAS,MAAe,MAAC,OAGjB,MACb,QAAI,EAAM,WAAY,MAAO,CAAE,KAAM,aAAc,QAAS,EAAM,UAAW,EAC7E,GAAI,EAAM,SAAU,MAAO,CAAE,KAAM,WAAY,QAAS,EAAM,QAAS,EACvE,MAAO,CAAE,KAAM,QAAS,EAGnB,SAAS,CAAa,CAAC,EAAkB,CAC9C,GAAI,EAAK,OAAS,aAAc,MAAO,sBACvC,GAAI,EAAK,OAAS,WAAY,MAAO,kBACrC,MAAO,GC8GT,IAAM,EAAQ,IAAI,KAAK,aAAa,QAAS,CAAE,MAAO,WAAY,SAAU,KAAM,CAAC,EAE5E,SAAS,CAAkB,CAAC,EAAwB,CACzD,GAAI,OAAO,IAAU,SAAU,OAAO,EACtC,GAAI,aAAiB,MAAO,OAAO,EAAM,SAAW,EAAM,KAC1D,GAAI,GAAS,OAAO,IAAU,SAAU,CACtC,IAAM,EAAU,QAAQ,IAAI,EAAO,SAAS,EAC5C,GAAI,OAAO,IAAY,UAAY,EAAQ,KAAK,EAAG,OAAO,EAC1D,IAAM,EAAM,QAAQ,IAAI,EAAO,MAAM,EACrC,GAAI,OAAO,IAAQ,UAAY,EAAI,KAAK,EAAG,OAAO,EAEpD,MAAO,gBAGT,SAAS,CAAS,CAAC,EAAmB,CACpC,MAAO,cAAe,EAAM,MAAQ,OAAO,EAAM,KAAK,YAAc,SAAW,EAAM,KAAK,UAAY,OAGxG,SAAS,CAAY,CAAC,EAA4C,CAChE,OAAO,EAAM,SAAW,EAAM,MAAQ,2BAGxC,SAAS,CAAI,CAAC,EAAe,EAAqB,CAChD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAQ,WAAW,EAAM,CAAK,EACpC,EAAO,iBAAiB,QAAS,EAAM,CAAE,KAAM,EAAK,CAAC,EACrD,SAAS,CAAI,EAAG,CACd,aAAa,CAAK,EAClB,EAAO,oBAAoB,QAAS,CAAI,EACxC,EAAQ,GAEX,EAGH,eAAe,CAAW,CAAC,EAAmB,CAC5C,GAAI,EAAK,OAAS,aAAc,MAAO,CAAE,WAAY,CAAE,IAAK,EAAK,IAAK,KAAM,EAAK,QAAS,CAAE,EAC5F,IAAM,EAAU,EAAK,IAAI,WAAW,OAAO,EACvC,OAAO,KAAK,EAAK,IAAI,MAAM,EAAK,IAAI,QAAQ,GAAG,EAAI,CAAC,EAAG,QAAQ,EAAE,SAAS,MAAM,EAChF,MAAM,IAAI,KAAK,IAAI,IAAI,EAAK,GAAG,CAAC,EAAE,KAAK,EAC3C,MAAO,CAAE,KAAM,eAAe,EAAK;AAAA,EAAe;AAAA,QAAmB,EAGvE,SAAS,CAAiB,CAAC,EAAsB,CAC/C,GAAI,CAAC,EAAK,QAAQ,KAAM,OACxB,MAAO,CACL,MAAO,EAAK,OAAO,KAAK,MACxB,IAAK,EAAK,OAAO,KAAK,IACtB,KAAM,EAAK,OAAO,KAAK,KACzB,EAGF,SAAS,CAAW,CAAC,EAAwB,CAC3C,OAAO,EAAK,OAAO,MAAM,QAAQ,CAAC,IAChC,EAAK,OAAS,OACV,CACE,CACE,IAAK,EAAK,IACV,KAAM,EAAK,SACX,QAAS,EAAkB,CAAI,CACjC,CACF,EACA,CAAC,CACP,EAGF,SAAS,CAAY,CAAC,EAAwB,CAC5C,OAAO,EAAK,OAAO,MAAM,QAAQ,CAAC,IAChC,EAAK,OAAS,QACV,CACE,CACE,KAAM,EAAK,KACX,QAAS,EAAK,OACV,CAAE,MAAO,EAAK,OAAO,MAAO,IAAK,EAAK,OAAO,IAAK,KAAM,EAAK,OAAO,KAAM,EAC1E,MACN,CACF,EACA,CAAC,CACP,EAGF,SAAS,CAAa,CAAC,EAAmB,EAAgB,CACxD,MAAO,GAAG,QAAkB,IAK9B,SAAS,CAAW,CAClB,EACA,EACA,EACc,CACd,MAAO,CACL,KAAM,OACN,OAAQ,OACR,OAAQ,SAAS,IACjB,KAAM,QACN,MAAO,CAAE,SAAQ,SAAQ,KACtB,CACL,EAGF,SAAS,CAAa,CACpB,EACA,EACA,EACA,EACA,CACA,IAAM,EAAa,EAAO,WAAa,EAAO,OAAS,EAAO,KACxD,EAAO,GAAG,EAAO,SAAS,EAAa,GAAG,EAAO,OAAO,SAAS;AAAA,CAAI,GAAK,CAAC,EAAO,OAAS,GAAK;AAAA,sBAA2B,KAC3H,EACJ,EAAM,SAAW,UAAY,EAAM,OAAS,EACxC,OACA,EAAM,SAAW,SACf,0BAA0B,EAAM,MAAQ,YACxC,SAAS,EAAM,SACvB,GAAI,CAAC,EAAO,MAAO,CAAC,EAAY,EAAQ,EAAS,CAAE,OAAM,MAAO,WAAY,UAAW,WAAY,CAAC,CAAC,EACrG,MAAO,CACL,GAAI,EAAO,CAAC,EAAY,EAAQ,EAAS,CAAE,OAAM,MAAO,WAAY,UAAW,SAAU,CAAC,CAAC,EAAI,CAAC,EAChG,EAAY,EAAQ,EAAS,CAAE,KAAM,EAAO,MAAO,QAAS,UAAW,QAAS,UAAW,CAAM,CAAC,CACpG,EAGF,SAAS,CAAkB,CAAC,EAAY,CACtC,OAAO,EAAG,QAAQ,QAAS,MAAM,EAGnC,IAAM,EAAgB,IAAI,IAAI,CAC5B,kBACA,sBACA,gBACA,kBACA,gBACA,mBACF,CAAC,EAKK,EAAwB,KAE9B,SAAS,CAAW,CAAC,EAAmB,EAA4B,CAClE,MAAO,CACL,KAAM,SACN,OAAQ,SACR,YACA,OAAQ,SAAS,IACjB,KAAM,iBAAW,KACjB,MAAO,OACT,EAGF,eAAe,CAAoB,CAAC,EAAoB,EAA8D,CACpH,GAAI,EAAK,MAAO,MAAO,CAAE,WAAY,EAAK,MAAM,WAAY,GAAI,EAAK,MAAM,QAAS,QAAS,EAAK,OAAQ,EAC1G,GAAI,CAAC,EAAK,QAAS,OAEnB,IAAM,EAAU,MAAM,EAAM,IAAI,QAC7B,IAAI,CAAE,UAAW,EAAM,SAAU,EAAG,CAAE,OAAQ,EAAK,MAAO,CAAC,EAC3D,KAAK,CAAC,IAAa,EAAS,KAAK,EACpC,GAAI,EAAS,MAAO,IAAK,EAAS,QAAS,EAAK,OAAQ,EAExD,IAAM,EAAW,MAAM,EAAM,IAAI,MAAM,QAAQ,OAAW,CAAE,OAAQ,EAAK,MAAO,CAAC,EAAE,KAAK,CAAC,IAAa,EAAS,IAAI,EACnH,GAAI,CAAC,EAAU,OACf,MAAO,CAAE,WAAY,EAAS,WAAY,GAAI,EAAS,GAAI,QAAS,EAAK,OAAQ,EAGnF,eAAsB,EAAsB,CAAC,EAA+C,CAC1F,IAAM,EAAa,IAAI,gBACvB,EAAM,QAAQ,iBAAiB,QAAS,IAAM,EAAW,MAAM,EAAG,CAAE,KAAM,EAAK,CAAC,EAChF,IAAM,EAAe,CACnB,YAAa,CAAC,EACd,UAAW,CAAC,EACZ,KAAM,CAAE,KAAM,QAAS,EACvB,WAAY,IAAI,IAChB,KAAM,IAAI,IACV,cAAe,IAAI,IACnB,UAAW,IAAI,IACf,mBAAoB,IAAI,IACxB,MAAO,IAAI,IACX,cAAe,IAAI,IACnB,cAAe,IAAI,IACnB,cAAe,IAAI,IACnB,aAAc,IAAI,IAClB,WAAY,IAAI,IAChB,UAAW,GACX,OAAQ,GACR,QAAS,GACT,OAAQ,IAAI,GACd,EACI,EACA,EACE,EAAQ,IAAI,QAAc,CAAC,EAAS,IAAW,CACnD,EAAe,EACf,EAAc,EACf,EACK,EAAa,IAAM,EAAgB,MAAM,+CAA+C,CAAC,EAC/F,EAAW,OAAO,iBAAiB,QAAS,EAAY,CAAE,KAAM,EAAK,CAAC,EACtE,IAAM,EAAiB,EAAM,OAAO,QAAQ,IAAM,EAAW,MAAM,CAAC,EAE9D,EAAY,EAAsB,CACtC,IAAK,EAAM,IACX,UAAW,EAAM,UACjB,SAAU,EAAM,SAChB,KAAM,IAAM,CACV,GAAI,EAAM,QAAU,EAAM,OAAO,SAAU,OAC3C,EACE,CAAE,OAAQ,EAAM,OAAQ,MAAO,EAAM,KAAM,EAC3C,CAAE,QAAS,CAAC,EAAG,OAAQ,CAAE,SAAU,EAAU,SAAS,CAAE,CAAE,CAC5D,EAEJ,CAAC,EAEK,EAAQ,CAAC,EAAyB,IAA4E,CAClH,IAAM,EAAU,EAAQ,GAAG,EAAE,EAC7B,GAAI,EACF,EAAM,MAAM,kBAAkB,CAC5B,KAAM,EAAQ,KACd,KAAM,EAAQ,KACd,MAAO,EAAQ,MACf,UAAW,EAAQ,UACnB,OAAQ,EAAQ,OAChB,UAAW,EAAQ,SACrB,CAAC,EAEH,EAAmB,CAAE,OAAQ,EAAM,OAAQ,MAAO,EAAM,KAAM,EAAG,CAAE,UAAS,OAAQ,EAAQ,CAAE,OAAM,EAAI,MAAU,CAAC,GAG/G,EAAe,IAAM,CACzB,IAAM,EAAO,EAAgB,CAAE,WAAY,EAAM,YAAY,GAAI,SAAU,EAAM,UAAU,EAAG,CAAC,EAC/F,GAAI,EAAK,OAAS,UAAY,EAAM,KAAK,OAAS,SAAU,OAC5D,GAAI,EAAK,OAAS,UAAY,EAAM,KAAK,OAAS,EAAK,MAAQ,EAAK,QAAQ,KAAO,EAAM,KAAK,QAAQ,GAAI,OAC1G,EAAM,KAAO,EACb,EACE,CAAE,OAAQ,EAAM,OAAQ,MAAO,EAAM,KAAM,EAC3C,CAAE,QAAS,CAAC,EAAG,OAAQ,CAAE,KAAM,EAAM,MAAO,CAAE,OAAQ,EAAc,CAAI,CAAE,CAAE,CAAE,CAChF,GAGI,EAAa,CAAC,EAAmB,IAAsC,CAC3E,IAAM,EAAO,EAAS,CACpB,UAAW,EAAM,UACjB,YACA,KAAM,CACR,CAAC,EACD,GAAI,EAAK,MAAM,SAAW,YAAa,OACvC,GAAI,EAAK,MAAM,SAAW,UAAW,CACnC,GAAI,EAAM,MAAM,IAAI,EAAK,EAAE,GAAG,QAAS,OACvC,EAAM,MAAM,IAAI,EAAK,GAAI,CACvB,YACA,KAAM,EAAK,KACX,MAAO,EAAK,MAAM,MAClB,QAAS,EAAK,KAAK,KAAO,EAAK,KAAK,QACpC,QAAS,GACT,cAAe,EAAK,aACtB,CAAC,EACD,EAAM,CAAC,EAAW,EAAM,OAAO,CAAC,EAAG,CAAE,MAAO,UAAW,OAAQ,WAAW,EAAK,MAAO,CAAC,EACvF,OAEF,GAAI,EAAM,cAAc,IAAI,EAAK,EAAE,EAAG,OACtC,GAAI,CAAC,EAAM,MAAM,IAAI,EAAK,EAAE,GAAG,QAAS,EAAM,CAAC,EAAW,EAAM,OAAO,CAAC,CAAC,EACzE,EAAM,cAAc,IAAI,EAAK,EAAE,EAC/B,EAAM,MAAM,OAAO,EAAK,EAAE,EAC1B,EAAM,CACJ,EACE,EACA,EAAK,MAAM,SAAW,aAAe,EAAK,MAAM,SAAW,aAAe,EAAK,MAAM,OACjF,WACA,OACN,CACF,CAAC,GAGG,EAAgB,CAAC,EAA6B,EAAiB,IAA8B,CACjG,GAAI,EAAQ,OAAS,OAAQ,CAC3B,IAAM,EAAU,EAAM,MAAM,YAAc,EAAQ,GAClD,GAAI,GAAW,EAAM,KAAM,EAAM,KAAK,SAAW,GACjD,GAAI,CAAC,GAAU,EAAM,WAAW,IAAI,EAAQ,EAAE,EAAG,OAEjD,GADA,EAAM,WAAW,IAAI,EAAQ,EAAE,EAC3B,GAAoB,EAAS,OACjC,EAAM,CAAC,CAAE,KAAM,OAAQ,OAAQ,SAAU,KAAM,EAAQ,KAAM,MAAO,QAAS,UAAW,EAAQ,EAAG,CAAC,CAAC,EACrG,OAEF,GAAI,EAAQ,OAAS,QAAS,CAC5B,GAAI,EAAM,MAAM,YAAc,EAAQ,GAAI,EAAM,KAAK,SAAW,GAChE,GAAI,CAAC,GAAU,EAAM,cAAc,IAAI,EAAQ,EAAE,EAAG,CAClD,EAAM,cAAc,IAAI,EAAQ,EAAE,EAClC,OAEF,EAAM,cAAc,IAAI,EAAQ,EAAE,EAClC,EAAM,CAAC,EAAY,EAAQ,GAAI,EAAQ,IAAI,CAAC,CAAC,EAC7C,OAEF,GAAI,EAAQ,OAAS,QAAS,CAE5B,GADA,EAAM,cAAc,IAAI,EAAQ,QAAS,EAAQ,OAAO,EACpD,EAAM,WAAW,YAAc,EAAQ,GAAI,EAAM,UAAU,OAAS,EAAQ,QAChF,IAAM,EAAY,EAAQ,KAAK,YAAc,OAC7C,GAAI,CAAC,EAAQ,CAIX,GAAI,EACF,EAAM,aAAa,IAAI,EAAQ,OAAO,EACtC,EAAM,WAAW,IAAI,EAAQ,OAAO,EAEtC,OAEF,GAAI,CAAC,EAAM,aAAa,IAAI,EAAQ,OAAO,EACzC,EAAM,aAAa,IAAI,EAAQ,OAAO,EACtC,EAAM,CACJ,EAAY,EAAQ,QAAS,EAAQ,QAAS,CAC5C,KAAM,gBACN,MAAO,QACP,UAAW,SACb,CAAC,CACH,CAAC,EAEH,GAAI,GAAa,EAAQ,QAAU,CAAC,EAAM,WAAW,IAAI,EAAQ,OAAO,EACtE,EAAM,WAAW,IAAI,EAAQ,OAAO,EACpC,EAAM,EAAc,EAAQ,QAAS,EAAQ,QAAS,EAAS,EAAQ,MAAM,CAAC,EAEhF,GAAI,GAAa,EAAM,WAAW,SAAW,EAAQ,QAAS,EAAM,UAAU,QAAQ,EACtF,OAEF,GAAI,EAAQ,OAAS,YAAa,OAClC,EAAM,WAAW,IAAI,EAAQ,EAAE,EAC/B,IAAI,EAAc,EACd,EAAmB,EACvB,QAAW,KAAQ,EAAQ,QAAS,CAClC,GAAI,EAAK,OAAS,OAAQ,CACxB,IAAM,EAAK,QAAQ,MACb,EAAM,EAAc,EAAQ,GAAI,CAAE,EAClC,EAAO,EAAM,KAAK,IAAI,CAAG,GAAG,QAAU,EAE5C,GADA,EAAM,KAAK,IAAI,EAAK,EAAK,IAAI,EACzB,EAAQ,EAAM,cAAc,IAAI,EAAK,EAAK,IAAI,EAClD,GAAI,GAAU,EAAK,KAAK,OAAS,EAC/B,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,EAAK,KAAK,MAAM,CAAI,EAC1B,MAAO,WACP,UAAW,EAAQ,GACnB,OAAQ,CACV,CACF,CAAC,EACH,SAEF,GAAI,EAAK,OAAS,YAAa,CAC7B,IAAM,EAAK,aAAa,MAClB,EAAM,EAAc,EAAQ,GAAI,CAAE,EAClC,EAAO,EAAM,UAAU,IAAI,CAAG,GAAG,QAAU,EAEjD,GADA,EAAM,UAAU,IAAI,EAAK,EAAK,IAAI,EAC9B,EAAQ,EAAM,mBAAmB,IAAI,EAAK,EAAK,IAAI,EACvD,GAAI,GAAU,EAAM,UAAY,EAAK,KAAK,OAAS,EACjD,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,IAAS,EAAI,aAAa,EAAK,OAAS,EAAK,KAAK,MAAM,CAAI,EAClE,MAAO,WACP,UAAW,EAAQ,GACnB,OAAQ,CACV,CACF,CAAC,EACH,SAEF,GAAI,EAAQ,EAAW,EAAQ,GAAI,CAAI,EAEzC,GAAI,GAAU,EAAQ,OAAS,CAAC,EAAM,OAAO,IAAI,EAAQ,EAAE,EACzD,EAAM,OAAO,IAAI,EAAQ,EAAE,EAC3B,EAAM,CACJ,CACE,KAAM,QACN,OAAQ,SACR,KAAM,EAAa,EAAQ,KAAK,EAChC,MAAO,QACP,UAAW,EAAQ,EACrB,CACF,CAAC,GAIC,EAAU,MAAO,IAAyD,CAC9E,IAAO,EAAU,EAAa,EAAW,GAAU,MAAM,QAAQ,IAAI,CACnE,EAAM,IAAI,QAAQ,KAAK,CAAE,UAAW,EAAM,UAAW,MAAO,EAAM,aAAe,IAAK,MAAO,MAAO,CAAC,EACrG,EAAM,IAAI,WAAW,KAAK,CAAE,UAAW,EAAM,SAAU,CAAC,EACxD,EAAM,IAAI,SAAS,KAAK,CAAE,UAAW,EAAM,SAAU,CAAC,EACtD,EAAM,IAAI,QAAQ,OAAO,CAC3B,CAAC,EACK,EAAY,gBAAgB,EAAS,IAAI,EAAE,WAAW,EAC5D,QAAW,KAAW,EAAW,EAAc,EAAS,EAAK,OAAQ,EAAK,gBAAgB,EAC1F,EAAM,YAAc,EACpB,EAAM,UAAY,EAClB,EAAa,EACb,MAAM,EAAU,QAAQ,CAAE,SAAU,CAAC,GAAG,CAAS,EAAG,QAAO,CAAC,EAC5D,IAAM,EAAU,EAAM,aAAa,EAEnC,GADA,EAAM,CAAC,EAAG,CAAE,MAAO,EAAU,UAAY,OAAQ,OAAQ,EAAU,uBAAyB,EAAG,CAAC,EAC5F,CAAC,GAAW,EAAM,OAAS,EAAM,KAAK,UAAY,EAAM,KAAK,aAAc,CAC7E,IAAM,EAAU,EAAM,KACtB,EAAM,KAAO,OACb,EAAQ,QAAQ,IAId,EAAQ,CAAC,IAAsB,CACnC,GAAI,EAAc,IAAI,EAAM,IAAI,EAAG,CACjC,GAAI,EAAM,WAAa,EAAM,UAAU,WAAa,EAAM,SAAS,YAAc,EAAM,UAAW,OAClG,EAAM,mBAAmB,EACzB,OAEF,IAAM,EAAS,EAAU,CAAK,EAC9B,GAAI,IAAW,EAAM,UAAW,CAC9B,GAAI,EAAQ,EAAU,QAAQ,EAAQ,CAAK,EAC3C,OAIF,GAFA,EAAM,OAAO,MAAM,aAAc,CAAK,EACtC,EAAU,KAAK,CAAK,EAChB,EAAM,OAAS,yBAA0B,CAC3C,GAAI,EAAM,MAAM,YAAc,EAAM,KAAK,QAAS,EAAM,KAAK,SAAW,GACxE,EAAM,WAAW,IAAI,EAAM,KAAK,OAAO,EACvC,EAAM,CAAC,EAAG,CAAE,MAAO,UAAW,OAAQ,uBAAwB,CAAC,EAC/D,OAEF,GAAI,EAAM,OAAS,uBAAwB,CACzC,EAAM,CAAC,EAAG,CAAE,MAAO,UAAW,OAAQ,sBAAuB,CAAC,EAC9D,OAEF,GAAI,EAAM,OAAS,0BAA2B,CAC5C,IAAM,EAAY,EAAmB,EAAM,EAAE,EAC7C,GAAI,EAAM,MAAM,YAAc,EAAW,EAAM,KAAK,SAAW,GAC/D,GAAI,EAAM,cAAc,IAAI,CAAS,EAAG,OACxC,EAAM,cAAc,IAAI,CAAS,EACjC,EAAM,CAAC,EAAY,EAAW,EAAM,KAAK,IAAI,CAAC,CAAC,EAC/C,OAEF,GAAI,EAAM,OAAS,wBAAyB,CAC1C,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,GAAI,EAAM,KAAK,MAAM,OAAO,EACrE,IAAM,EAAO,EAAM,UACnB,GAAI,GAAM,UAAY,EAAM,GAAI,EAAK,OAAS,EAAM,KAAK,MAAM,GAC/D,GAAI,EAAM,aAAa,IAAI,EAAM,KAAK,MAAM,EAAE,EAAG,OACjD,EAAM,aAAa,IAAI,EAAM,KAAK,MAAM,EAAE,EAC1C,EACE,CACE,EAAY,EAAM,KAAK,MAAM,GAAI,EAAM,KAAK,MAAM,QAAS,CACzD,KAAM,gBACN,MAAO,QACP,UAAW,SACb,CAAC,CACH,EACA,CACE,MAAO,UACP,OAAQ,eACV,CACF,EACA,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,IAAM,EAAU,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,EAAE,GAAK,EAAM,KAAK,MAAM,QAC3E,EAA0B,CAAC,EACjC,GAAI,CAAC,EAAM,aAAa,IAAI,EAAM,KAAK,MAAM,EAAE,GAE7C,GADA,EAAM,aAAa,IAAI,EAAM,KAAK,MAAM,EAAE,EACtC,EACF,EAAQ,KACN,EAAY,EAAM,KAAK,MAAM,GAAI,EAAS,CAAE,KAAM,gBAAiB,MAAO,QAAS,UAAW,SAAU,CAAC,CAC3G,EAEJ,GAAI,CAAC,EAAM,WAAW,IAAI,EAAM,KAAK,MAAM,EAAE,EAC3C,EAAM,WAAW,IAAI,EAAM,KAAK,MAAM,EAAE,EACxC,EAAQ,KAAK,GAAG,EAAc,EAAM,KAAK,MAAM,GAAI,EAAS,EAAM,KAAK,MAAO,EAAM,KAAK,MAAM,CAAC,EAElG,IAAM,EAAO,EAAM,UACb,EAAQ,GAAM,SAAW,EAAM,KAAK,MAAM,GAEhD,GADA,EAAM,EAAS,GAAS,EAAM,MAAQ,EAAM,UAAY,OAAY,CAAE,MAAO,OAAQ,OAAQ,EAAG,CAAC,EAC7F,EAAO,EAAK,QAAQ,EACxB,OAEF,GAAI,EAAM,OAAS,uBACjB,OAEF,GAAI,EAAM,OAAS,qBAAsB,CACvC,IAAM,EAAK,QAAQ,EAAM,KAAK,UACxB,EAAM,EAAc,EAAM,KAAK,mBAAoB,CAAE,EACrD,EAAY,EAAM,cAAc,IAAI,CAAG,EACvC,EAAU,GAAW,QAAQ,EAAM,KAAK,KAAK,GAAK,GACxD,GAAI,GAAa,GAAW,EAAG,CAC7B,EAAM,cAAc,IAAI,EAAK,EAAU,MAAM,EAAU,EAAM,KAAK,MAAM,MAAM,CAAC,EAC/E,OAEF,IAAM,EAAW,EAAM,KAAK,IAAI,CAAG,GAAK,GACxC,EAAM,KAAK,IAAI,EAAK,EAAW,EAAM,KAAK,KAAK,EAC/C,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,EAAM,KAAK,MACjB,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CACF,CAAC,EACD,OAEF,GAAI,EAAM,OAAS,qBAAsB,CACvC,IAAM,EAAK,QAAQ,EAAM,KAAK,UACxB,EAAM,EAAc,EAAM,KAAK,mBAAoB,CAAE,EACrD,EAAW,EAAM,KAAK,IAAI,CAAG,GAAK,GACxC,GAAI,EAAM,KAAK,KAAK,OAAS,EAAS,OACpC,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,EAAM,KAAK,KAAK,MAAM,EAAS,MAAM,EAC3C,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CACF,CAAC,EACH,EAAM,KAAK,IAAI,EAAK,EAAM,KAAK,IAAI,EACnC,EAAM,cAAc,OAAO,CAAG,EAC9B,OAEF,GAAI,EAAM,OAAS,4BACjB,OAEF,GAAI,EAAM,OAAS,0BAA2B,CAC5C,IAAM,EAAK,aAAa,EAAM,KAAK,UAC7B,EAAM,EAAc,EAAM,KAAK,mBAAoB,CAAE,EACrD,EAAY,EAAM,mBAAmB,IAAI,CAAG,EAC5C,EAAU,GAAW,QAAQ,EAAM,KAAK,KAAK,GAAK,GACxD,GAAI,GAAa,GAAW,EAAG,CAC7B,EAAM,mBAAmB,IAAI,EAAK,EAAU,MAAM,EAAU,EAAM,KAAK,MAAM,MAAM,CAAC,EACpF,OAEF,IAAM,EAAW,EAAM,UAAU,IAAI,CAAG,GAAK,GAE7C,GADA,EAAM,UAAU,IAAI,EAAK,EAAW,EAAM,KAAK,KAAK,EAChD,EAAM,SACR,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,EAAW,EAAM,KAAK,MAAQ,aAAa,EAAM,KAAK,QAC5D,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CACF,CAAC,EACH,OAEF,GAAI,EAAM,OAAS,0BAA2B,CAC5C,IAAM,EAAK,aAAa,EAAM,KAAK,UAC7B,EAAM,EAAc,EAAM,KAAK,mBAAoB,CAAE,EACrD,EAAW,EAAM,UAAU,IAAI,CAAG,GAAK,GAC7C,GAAI,EAAM,UAAY,EAAM,KAAK,KAAK,OAAS,EAAS,OACtD,EAAM,CACJ,CACE,KAAM,YACN,OAAQ,YACR,KAAM,EAAW,EAAM,KAAK,KAAK,MAAM,EAAS,MAAM,EAAI,aAAa,EAAM,KAAK,OAClF,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CACF,CAAC,EACH,EAAM,UAAU,IAAI,EAAK,EAAM,KAAK,IAAI,EACxC,EAAM,mBAAmB,OAAO,CAAG,EACnC,OAEF,GAAI,EAAM,OAAS,6BAA8B,CAC/C,EAAM,MAAM,IAAI,EAAM,KAAK,OAAQ,CACjC,UAAW,EAAM,KAAK,mBACtB,KAAM,EAAM,KAAK,KACjB,MAAO,CAAC,EACR,QAAS,EAAM,QACf,QAAS,EACX,CAAC,EACD,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,GAAI,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,EAAG,OAChD,IAAM,EAAU,EAAM,MAAM,IAAI,EAAM,KAAK,MAAM,EAC3C,EAAO,gBAAgB,CAC3B,KAAM,OACN,GAAI,EAAM,KAAK,OACf,KAAM,GAAS,MAAQ,OACvB,SAAU,EAAM,KAAK,SACrB,cAAe,EAAM,KAAK,MAC1B,MAAO,CAAE,OAAQ,UAAW,MAAO,EAAM,KAAK,MAAO,WAAY,CAAC,EAAG,QAAS,CAAC,CAAE,EACjF,KAAM,CAAE,QAAS,GAAS,SAAW,EAAM,QAAS,IAAK,EAAM,OAAQ,CACzE,CAAC,EACD,EAAW,EAAM,KAAK,mBAAoB,CAAI,EAC9C,OAEF,GAAI,EAAM,OAAS,wBAAyB,OAC5C,GAAI,EAAM,OAAS,wBAA0B,EAAM,OAAS,sBAAuB,CACjF,IAAM,EAAU,EAAM,MAAM,IAAI,EAAM,KAAK,MAAM,EAC3C,EAAS,EAAM,OAAS,sBACxB,EAAO,gBAAgB,CAC3B,KAAM,OACN,GAAI,EAAM,KAAK,OACf,KAAM,GAAS,MAAQ,OACvB,SAAU,EAAM,KAAK,SACrB,cAAe,GAAS,cACxB,oBAAqB,EAAM,KAAK,YAChC,MAAO,EACH,CACE,OAAQ,QACR,MAAO,GAAS,OAAS,CAAC,EAC1B,WAAY,CAAC,EACb,QAAS,CAAC,EACV,MAAO,EAAM,KAAK,MAClB,OAAQ,EAAM,KAAK,MACrB,EACA,CACE,OAAQ,YACR,MAAO,GAAS,OAAS,CAAC,EAC1B,WAAY,EAAM,KAAK,WACvB,QAAS,EAAM,KAAK,QACpB,OAAQ,EAAM,KAAK,MACrB,EACJ,KAAM,CAAE,QAAS,GAAS,SAAW,EAAM,QAAS,IAAK,GAAS,QAAS,UAAW,EAAM,OAAQ,CACtG,CAAC,EACD,EAAW,EAAM,KAAK,mBAAoB,CAAI,EAC9C,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,GAAI,CAAC,EAAM,YAAY,KAAK,CAAC,IAAS,EAAK,KAAO,EAAM,KAAK,EAAE,EAAG,EAAM,YAAY,KAAK,EAAM,IAAI,EACnG,EAAa,EACb,OAEF,GAAI,EAAM,OAAS,wBAAyB,CAC1C,EAAM,YAAc,EAAM,YAAY,OAAO,CAAC,IAAS,EAAK,KAAO,EAAM,KAAK,SAAS,EACvF,EAAa,EACb,OAEF,GAAI,EAAM,OAAS,oBAAqB,CACtC,GAAI,CAAC,EAAM,UAAU,KAAK,CAAC,IAAS,EAAK,KAAO,EAAM,KAAK,EAAE,EAAG,EAAM,UAAU,KAAK,EAAM,IAAI,EAC/F,EAAa,EACb,OAEF,GAAI,EAAM,OAAS,uBAAyB,EAAM,OAAS,uBAAwB,CACjF,EAAM,UAAY,EAAM,UAAU,OAAO,CAAC,IAAS,EAAK,KAAO,EAAM,KAAK,SAAS,EACnF,EAAa,EACb,OAEF,GAAI,EAAM,OAAS,qBAAsB,CACvC,IAAM,EACJ,EAAM,KAAK,OAAO,MAClB,EAAM,KAAK,OAAO,OAClB,EAAM,KAAK,OAAO,UAClB,EAAM,KAAK,OAAO,MAAM,KACxB,EAAM,KAAK,OAAO,MAAM,MACpB,EAAQ,EAAQ,EAAI,EAAM,eAAe,EAAI,GACnD,EAAM,CAAC,EAAG,CACR,MAAO,EAAM,KAAK,KAAO,GAAG,UAAU,EAAM,OAAO,EAAM,KAAK,IAAI,IAAM,CAC1E,CAAC,EACD,OAEF,GAAI,EAAM,OAAS,sBAAuB,CAExC,GADA,EAAM,OAAO,IAAI,EAAM,KAAK,kBAAkB,EAC1C,EAAM,KAAM,EAAM,KAAK,gBAAkB,GAC7C,EAAM,CAAC,CAAE,KAAM,QAAS,OAAQ,SAAU,KAAM,EAAa,EAAM,KAAK,KAAK,EAAG,MAAO,OAAQ,CAAC,CAAC,EACjG,OAEF,GAAI,EAAM,OAAS,4BAA6B,CAC9C,EAAM,CAAC,EAAG,CAAE,MAAO,SAAU,CAAC,EAC9B,OAEF,GACE,EAAM,OAAS,+BACf,EAAM,OAAS,4BACf,EAAM,OAAS,gCACf,CACA,EAAM,CAAC,EAAG,CAAE,MAAO,OAAQ,OAAQ,EAAG,CAAC,EACvC,IAAM,EAAU,EAAM,KACtB,GAAI,CAAC,GAAY,CAAC,EAAQ,UAAY,CAAC,EAAQ,YAAc,OAE7D,GADA,EAAM,KAAO,OACT,EAAQ,aAAe,EAAM,OAAS,iCAAmC,EAAM,KAAK,SAAW,OAAQ,CACzG,EAAQ,QAAQ,EAChB,OAEF,GAAI,EAAM,OAAS,2BAA4B,CAC7C,GAAI,EAAQ,gBAAiB,CAC3B,EAAQ,QAAQ,EAChB,OAEF,EAAQ,OAAW,MAAM,EAAa,EAAM,KAAK,KAAK,CAAC,CAAC,EACxD,OAEF,GAAI,EAAM,OAAS,gCAAiC,CAClD,EAAQ,OAAW,MAAM,wBAAwB,EAAM,KAAK,QAAQ,CAAC,EACrE,OAEF,EAAQ,QAAQ,IAId,EAAU,CAAC,IAAsB,CACrC,GAAI,EAAM,SAAU,CAClB,EAAM,SAAS,KAAK,CAAK,EACzB,OAEF,EAAM,CAAK,GA6CP,GA1CU,SAAY,CAC1B,MAAO,CAAC,EAAW,OAAO,SAAW,CAAC,EAAM,OAAO,SAAU,CAC3D,IAAM,EAAQ,MAAO,SAAY,CAC/B,IAAM,EAAa,IAAI,gBACjB,EAAkB,IAAM,EAAW,MAAM,EAC/C,EAAW,OAAO,iBAAiB,QAAS,EAAiB,CAAE,KAAM,EAAK,CAAC,EAC3E,IAAM,EAAS,EAAM,IAAI,MAAM,UAAU,CAAE,OAAQ,EAAW,MAAO,CAAC,EAAE,OAAO,eAAe,EAC9F,GAAI,CACF,IAAM,EAAQ,MAAM,EAAO,KAAK,EAChC,GAAI,EAAM,MAAQ,EAAM,MAAM,OAAS,mBAAoB,MAAU,MAAM,2BAA2B,EACtG,IAAM,EAAyB,CAAC,EAC5B,EAAU,GACR,GAAW,SAAY,CAC3B,MAAO,CAAC,EAAW,OAAO,QAAS,CACjC,IAAM,EAAO,MAAM,EAAO,KAAK,EAC/B,GAAI,EAAK,KAAM,MAAU,MAAM,2BAA2B,EAC1D,GAAI,EAAS,EAAS,KAAK,EAAK,KAAK,EAChC,OAAQ,EAAK,KAAK,KAExB,EACE,EAAQ,MAAM,IAAM,EAAE,EAC3B,MAAM,EAAQ,CAAE,OAAQ,EAAM,QAAU,EAAM,SAAW,GAAO,GAAM,iBAAkB,CAAC,EAAM,OAAQ,CAAC,EACxG,EAAM,mBAAmB,EACzB,EAAM,QAAU,GAChB,EAAU,GACV,QAAW,KAAS,EAAS,OAAO,CAAC,EAAG,EAAM,CAAK,EACnD,EAAM,UAAY,GAClB,EAAa,EACb,MAAM,SACN,CACA,EAAW,OAAO,oBAAoB,QAAS,CAAe,EAC9D,EAAW,MAAM,EACZ,EAAO,SAAS,MAAS,EAAE,MAAM,IAAM,EAAE,KAE/C,EAAE,MAAM,CAAC,IAAU,CAAK,EAE3B,GADA,EAAM,UAAY,GACd,EAAW,OAAO,SAAW,EAAM,OAAO,SAAU,OACxD,EAAM,OAAO,MAAM,iBAAkB,CAAE,MAAO,EAAmB,CAAK,CAAE,CAAC,EACzE,EAAM,CAAC,EAAG,CAAE,MAAO,UAAW,OAAQ,cAAe,CAAC,EACtD,MAAM,EAAK,IAAK,EAAW,MAAM,KAGV,EAC3B,GAAI,CACF,MAAM,EACN,MAAO,EAAO,CAEd,MADA,EAAe,EACT,SACN,CACA,EAAW,OAAO,oBAAoB,QAAS,CAAU,EAG3D,IAAM,EAAe,MAAO,IAA2B,CACrD,GAAI,EAAM,MAAQ,EAAM,UAAW,MAAU,MAAM,wBAAwB,EAC3E,GAAI,CAAC,EAAM,UAAW,MAAU,MAAM,8BAA8B,EACpE,IAAM,EAAQ,IAAI,gBACZ,EAAU,IAAM,EAAM,MAAM,EAClC,EAAK,QAAQ,iBAAiB,QAAS,EAAS,CAAE,KAAM,EAAK,CAAC,EAC9D,IAAI,EACE,EAAS,IAAI,QAAc,CAAC,IAAY,CAC5C,EAAW,EACZ,EACK,EAAU,EAAM,GAAG,OAAO,EAC1B,EAAoB,CACxB,UACA,UAAW,EAAmB,CAAO,EACrC,QAAS,EACT,MAAO,IAAM,EAAM,MAAM,CAC3B,EACA,EAAM,UAAY,EAClB,EAAM,OAAO,MAAM,aAAc,CAAE,UAAW,EAAM,UAAW,GAAI,EAAS,QAAS,EAAK,OAAO,IAAK,CAAC,EACvG,EAAM,CAAC,EAAG,CAAE,MAAO,UAAW,OAAQ,eAAgB,CAAC,EACvD,GAAI,CACF,MAAM,EAAM,IAAI,QAAQ,MACtB,CAAE,UAAW,EAAM,UAAW,GAAI,EAAS,QAAS,EAAK,OAAO,IAAK,EACrE,CAAE,OAAQ,EAAM,MAAO,CACzB,EACA,MAAM,QAAQ,KAAK,CAAC,EAAQ,EAAK,EAAuB,EAAM,MAAM,CAAC,CAAC,EACtE,MAAO,EAAO,CACd,GAAI,EAAM,OAAO,QAAS,OAC1B,MAAM,SACN,CAEA,GADA,EAAK,QAAQ,oBAAoB,QAAS,CAAO,EAC7C,EAAM,YAAc,EAAQ,EAAM,UAAY,SAOhD,EAAc,MAClB,EACA,EACA,IACG,CACH,IAAI,EACA,EACE,EAAO,IAAI,QAAc,CAAC,EAAI,IAAS,CAC3C,EAAU,EACV,EAAS,EACV,EACK,EAAe,CACnB,YACA,SAAU,EAAK,WAAa,GAC5B,YAAa,GACb,gBAAiB,GACjB,UACA,SACA,gBAAiB,EAAK,eACxB,EACA,EAAM,KAAO,EACb,IAAM,EAAY,IAAM,CACtB,EAAO,YAAc,GAChB,EAAM,IAAI,QAAQ,UAAU,CAAE,UAAW,EAAM,SAAU,CAAC,EAAE,MAAM,IAAM,EAAE,GAEjF,EAAK,QAAQ,iBAAiB,QAAS,EAAW,CAAE,KAAM,EAAK,CAAC,EAChE,GAAI,CACF,MAAM,EAAK,KAAK,EAChB,MAAM,EACN,MAAO,EAAO,CACd,GAAI,EAAM,OAAS,EAAQ,EAAM,KAAO,OACxC,GAAI,EAAK,QAAQ,QAAS,OAC1B,MAAM,SACN,CACA,EAAK,QAAQ,oBAAoB,QAAS,CAAS,IAIvD,MAAO,MACC,cAAa,CAAC,EAAM,CACxB,GAAI,EAAK,OAAO,OAAS,QAAS,CAChC,MAAM,EAAa,CAAI,EACvB,OAEF,GAAI,EAAM,MAAQ,EAAM,UAAW,MAAU,MAAM,wBAAwB,EAC3E,GAAI,CAAC,EAAM,UAAW,MAAU,MAAM,8BAA8B,EACpE,IAAM,EAAY,EAAK,OAAO,UAC9B,GAAI,CAAC,EAAW,MAAU,MAAM,+BAA+B,EAE/D,IAAM,EAAU,EAAK,OAAO,QAC5B,GAAI,GAAS,SAAW,QAAS,CAC/B,EAAM,OAAO,MAAM,aAAc,CAAE,UAAW,EAAM,UAAW,YAAW,MAAO,EAAQ,IAAK,CAAC,EAC/F,MAAM,EAAY,EAAM,EAAW,CACjC,KAAM,IACJ,EAAM,IAAI,QAAQ,MAChB,CAAE,UAAW,EAAM,UAAW,GAAI,EAAW,MAAO,EAAQ,IAAK,EACjE,CAAE,OAAQ,EAAK,MAAO,CACxB,CACJ,CAAC,EACD,OAEF,GAAI,EAAS,CACX,IAAM,EAAW,MAAM,EAAqB,EAAO,CAAI,EACvD,GAAI,EAAK,SAAW,CAAC,EAAU,MAAU,MAAM,kDAAkD,EAGjG,IAAM,EAAQ,CACZ,IAAI,EAAK,aAAe,EAAK,MAAQ,CAAC,GAAG,IAAI,CAAC,KAAU,CAAE,IAAK,EAAK,IAAK,KAAM,EAAK,QAAS,EAAE,EAC/F,GAAG,EAAY,CAAI,CACrB,EACM,EAAS,EAAa,CAAI,EAChC,EAAM,OAAO,MAAM,eAAgB,CAAE,UAAW,EAAM,UAAW,YAAW,QAAS,EAAQ,IAAK,CAAC,EACnG,MAAM,EAAY,EAAM,EAAW,CACjC,KAAM,IACJ,EAAM,IAAI,QAAQ,QAChB,CACE,UAAW,EAAM,UACjB,GAAI,EACJ,QAAS,EAAQ,KACjB,UAAW,EAAQ,UACnB,MAAO,EAAK,MACZ,MAAO,EACP,MAAO,EAAM,OAAS,EAAQ,OAC9B,OAAQ,EAAO,OAAS,EAAS,OACjC,SAAU,OACZ,EACA,CAAE,OAAQ,EAAK,MAAO,CACxB,CACJ,CAAC,EACD,OAGF,GAAI,EAAK,MACP,MAAM,EAAM,IAAI,QAAQ,YAAY,CAAE,UAAW,EAAM,UAAW,MAAO,EAAK,KAAM,EAAG,CAAE,OAAQ,EAAK,MAAO,CAAC,EAEhH,IAAM,EAAW,MAAM,EAAqB,EAAO,CAAI,EACvD,GAAI,EAAK,SAAW,CAAC,EAAU,MAAU,MAAM,kDAAkD,EACjG,GAAI,EACF,MAAM,EAAM,IAAI,QAAQ,YAAY,CAAE,UAAW,EAAM,UAAW,MAAO,CAAS,EAAG,CAAE,OAAQ,EAAK,MAAO,CAAC,EAE9G,IAAM,EAAW,MAAM,QAAQ,KAAK,EAAK,aAAe,EAAK,MAAQ,CAAC,GAAG,IAAI,CAAW,CAAC,EACnF,EAAc,CAClB,GAAG,EAAS,QAAQ,CAAC,IAAU,EAAK,WAAa,CAAC,EAAK,UAAU,EAAI,CAAC,CAAE,EACxE,GAAG,EAAY,CAAI,CACrB,EACM,EAAS,EAAa,CAAI,EAChC,EAAM,OAAO,MAAM,cAAe,CAAE,UAAW,EAAM,UAAW,WAAU,CAAC,EAC3E,MAAM,EAAY,EAAM,EAAW,CACjC,KAAM,IACJ,EAAM,IAAI,QAAQ,OAChB,CACE,UAAW,EAAM,UACjB,GAAI,EACJ,KAAM,CAAC,EAAK,OAAO,KAAM,GAAG,EAAS,QAAQ,CAAC,IAAU,EAAK,KAAO,CAAC,EAAK,IAAI,EAAI,CAAC,CAAE,CAAC,EAAE,KAAK;AAAA;AAAA,CAAM,EACnG,MAAO,EAAY,OAAS,EAAc,OAC1C,OAAQ,EAAO,OAAS,EAAS,OACjC,SAAU,OACZ,EACA,CAAE,OAAQ,EAAK,MAAO,CACxB,CACJ,CAAC,QAEG,oBAAmB,EAAG,CAI1B,IAAM,EAAQ,EAAM,UACpB,GAAI,EAAO,CACT,EAAM,MAAM,EACZ,OAEF,GAAI,EAAM,KAAM,EAAM,KAAK,YAAc,GACzC,MAAM,EAAM,IAAI,QAAQ,UAAU,CAAE,UAAW,EAAM,SAAU,CAAC,EAAE,MAAM,IAAM,EAAE,GAElF,cAAc,CAAC,EAAW,CACxB,EAAU,OAAO,CAAS,QAEtB,eAAc,CAAC,EAAM,CACzB,GAAI,CAAC,EAAM,QAAU,EAAM,QAAU,EAAM,OAAO,SAAU,MAAO,GACnE,IAAM,EAAyB,CAAC,EAChC,EAAM,SAAW,EACjB,GAAI,CACF,MAAM,EAAM,OAAO,KAAK,EACxB,MAAM,EAAK,MAAM,EACjB,EAAM,WAAW,MAAM,EACvB,EAAM,KAAK,MAAM,EACjB,EAAM,cAAc,MAAM,EAC1B,EAAM,UAAU,MAAM,EACtB,EAAM,mBAAmB,MAAM,EAC/B,EAAM,MAAM,MAAM,EAClB,EAAM,cAAc,MAAM,EAC1B,EAAM,cAAc,MAAM,EAC1B,EAAM,cAAc,MAAM,EAC1B,EAAM,aAAa,MAAM,EACzB,EAAM,WAAW,MAAM,EACvB,EAAM,OAAO,MAAM,EACnB,MAAM,EAAQ,CAAE,OAAQ,GAAM,iBAAkB,EAAM,CAAC,SACvD,CACA,EAAM,SAAW,OAEnB,QAAW,KAAS,EAAU,EAAM,CAAK,EACzC,QAAW,KAAO,EAAK,UAAU,EAAG,CAClC,GAAI,EAAI,OAAO,WAAa,EAAM,WAAW,IAAI,EAAI,OAAO,SAAS,EAAG,SACxE,EAAM,OAAO,OAAO,EAAI,MAAM,EAEhC,MAAO,SAEH,MAAK,EAAG,CACZ,EAAM,OAAS,GACf,EAAe,EACf,EAAW,MAAM,EACZ,EAAW,MAAM,IAAM,EAAE,EAElC",
"debugId": "5324CA4AD15BC19F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js"],
"sourcesContent": [
"'use strict';\n\nvar serde = require('@smithy/core/serde');\nvar schema = require('@smithy/core/schema');\nvar transport = require('@smithy/core/transport');\nvar types = require('@smithy/types');\n\nconst collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return serde.Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return serde.Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return serde.Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nclass SerdeContext {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass HttpProtocol extends SerdeContext {\n options;\n compositeErrorRegistry;\n constructor(options) {\n super();\n this.options = options;\n this.compositeErrorRegistry = schema.TypeRegistry.for(options.defaultNamespace);\n for (const etr of options.errorTypeRegistries ?? []) {\n this.compositeErrorRegistry.copyFrom(etr);\n }\n }\n getRequestType() {\n return transport.HttpRequest;\n }\n getResponseType() {\n return transport.HttpResponse;\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n if (this.getPayloadCodec()) {\n this.getPayloadCodec().setSerdeContext(serdeContext);\n }\n }\n updateServiceEndpoint(request, endpoint) {\n if (\"url\" in endpoint) {\n request.protocol = endpoint.url.protocol;\n request.hostname = endpoint.url.hostname;\n request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n request.path = endpoint.url.pathname;\n request.fragment = endpoint.url.hash || void 0;\n request.username = endpoint.url.username || void 0;\n request.password = endpoint.url.password || void 0;\n if (!request.query) {\n request.query = {};\n }\n for (const [k, v] of endpoint.url.searchParams.entries()) {\n request.query[k] = v;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name].join(\", \");\n }\n }\n return request;\n }\n else {\n request.protocol = endpoint.protocol;\n request.hostname = endpoint.hostname;\n request.port = endpoint.port ? Number(endpoint.port) : undefined;\n request.path = endpoint.path;\n request.query = {\n ...endpoint.query,\n };\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name];\n }\n }\n return request;\n }\n }\n setHostPrefix(request, operationSchema, input) {\n if (this.serdeContext?.disableHostPrefix) {\n return;\n }\n const inputNs = schema.NormalizedSchema.of(operationSchema.input);\n const opTraits = schema.translateTraits(operationSchema.traits ?? {});\n if (opTraits.endpoint) {\n let hostPrefix = opTraits.endpoint?.[0];\n if (typeof hostPrefix === \"string\") {\n for (const [name, member] of inputNs.structIterator()) {\n if (!member.getMergedTraits().hostLabel) {\n continue;\n }\n const replacement = input[name];\n if (typeof replacement !== \"string\") {\n throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n }\n hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n }\n request.hostname = hostPrefix + request.hostname;\n }\n }\n }\n deserializeMetadata(output) {\n return {\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n };\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.serializeEventStream({\n eventStream,\n requestSchema,\n initialRequest,\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.deserializeEventStream({\n response,\n responseSchema,\n initialResponseContainer,\n });\n }\n async loadEventStreamCapability() {\n const { EventStreamSerde } = await import('@smithy/core/event-streams');\n return new EventStreamSerde({\n marshaller: this.getEventStreamMarshaller(),\n serializer: this.serializer,\n deserializer: this.deserializer,\n serdeContext: this.serdeContext,\n defaultContentType: this.getDefaultContentType(),\n });\n }\n getDefaultContentType() {\n throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n }\n async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n return [];\n }\n getEventStreamMarshaller() {\n const context = this.serdeContext;\n if (!context.eventStreamMarshaller) {\n throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n }\n return context.eventStreamMarshaller;\n }\n}\n\nclass HttpBindingProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const input = _input && typeof _input === \"object\" ? _input : {};\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const payloadMemberNames = [];\n const payloadMemberSchemas = [];\n let hasNonHttpBindingMember = false;\n let payload;\n const request = new transport.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n const opTraits = schema.translateTraits(operationSchema.traits);\n if (opTraits.http) {\n request.method = opTraits.http[0];\n const [path, search] = opTraits.http[1].split(\"?\");\n if (request.path == \"/\") {\n request.path = path;\n }\n else {\n request.path += path;\n }\n const traitSearchParams = new URLSearchParams(search ?? \"\");\n for (const [key, value] of traitSearchParams) {\n query[key] = value;\n }\n }\n }\n for (const [memberName, memberNs] of ns.structIterator()) {\n const memberTraits = memberNs.getMergedTraits() ?? {};\n const inputMemberValue = input[memberName];\n if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {\n if (memberTraits.httpLabel) {\n if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {\n throw new Error(`No value provided for input HTTP label: ${memberName}.`);\n }\n }\n continue;\n }\n if (memberTraits.httpPayload) {\n const isStreaming = memberNs.isStreaming();\n if (isStreaming) {\n const isEventStream = memberNs.isStructSchema();\n if (isEventStream) {\n if (input[memberName]) {\n payload = await this.serializeEventStream({\n eventStream: input[memberName],\n requestSchema: ns,\n });\n }\n }\n else {\n payload = inputMemberValue;\n }\n }\n else {\n serializer.write(memberNs, inputMemberValue);\n payload = serializer.flush();\n }\n }\n else if (memberTraits.httpLabel) {\n serializer.write(memberNs, inputMemberValue);\n const replacement = serializer.flush();\n if (request.path.includes(`{${memberName}+}`)) {\n request.path = request.path.replace(`{${memberName}+}`, replacement.split(\"/\").map(extendedEncodeURIComponent).join(\"/\"));\n }\n else if (request.path.includes(`{${memberName}}`)) {\n request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement));\n }\n }\n else if (memberTraits.httpHeader) {\n serializer.write(memberNs, inputMemberValue);\n headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush());\n }\n else if (typeof memberTraits.httpPrefixHeaders === \"string\") {\n for (const key in inputMemberValue) {\n const val = inputMemberValue[key];\n const amalgam = memberTraits.httpPrefixHeaders + key;\n serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val);\n headers[amalgam.toLowerCase()] = serializer.flush();\n }\n }\n else if (memberTraits.httpQuery || memberTraits.httpQueryParams) {\n this.serializeQuery(memberNs, inputMemberValue, query);\n }\n else {\n hasNonHttpBindingMember = true;\n payloadMemberNames.push(memberName);\n payloadMemberSchemas.push(memberNs);\n }\n }\n if (hasNonHttpBindingMember && input) {\n const [namespace, name] = (ns.getName(true) ?? \"#Unknown\").split(\"#\");\n const requiredMembers = ns.getSchema()[6];\n const payloadSchema = [\n 3,\n namespace,\n name,\n ns.getMergedTraits(),\n payloadMemberNames,\n payloadMemberSchemas,\n undefined,\n ];\n if (requiredMembers) {\n payloadSchema[6] = requiredMembers;\n }\n else {\n payloadSchema.pop();\n }\n serializer.write(payloadSchema, input);\n payload = serializer.flush();\n }\n request.headers = headers;\n request.query = query;\n request.body = payload;\n return request;\n }\n serializeQuery(ns, data, query) {\n const serializer = this.serializer;\n const traits = ns.getMergedTraits();\n if (traits.httpQueryParams) {\n for (const key in data) {\n if (!(key in query)) {\n const val = data[key];\n const valueSchema = ns.getValueSchema();\n Object.assign(valueSchema.getMergedTraits(), {\n ...traits,\n httpQuery: key,\n httpQueryParams: undefined,\n });\n this.serializeQuery(valueSchema, val, query);\n }\n }\n return;\n }\n if (ns.isListSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n const buffer = [];\n for (const item of data) {\n serializer.write([ns.getValueSchema(), traits], item);\n const serializable = serializer.flush();\n if (sparse || serializable !== undefined) {\n buffer.push(serializable);\n }\n }\n query[traits.httpQuery] = buffer;\n }\n else {\n serializer.write([ns, traits], data);\n query[traits.httpQuery] = serializer.flush();\n }\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - HTTP Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject);\n if (nonHttpBindingMembers.length) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n const dataFromBody = await deserializer.read(ns, bytes);\n for (const member of nonHttpBindingMembers) {\n if (dataFromBody[member] != null) {\n dataObject[member] = dataFromBody[member];\n }\n }\n }\n }\n else if (nonHttpBindingMembers.discardResponseBody) {\n await collectBody(response.body, context);\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n async deserializeHttpMessage(schema$1, context, response, arg4, arg5) {\n let dataObject;\n if (arg4 instanceof Set) {\n dataObject = arg5;\n }\n else {\n dataObject = arg4;\n }\n let discardResponseBody = true;\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(schema$1);\n const nonHttpBindingMembers = [];\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMemberTraits();\n if (memberTraits.httpPayload) {\n discardResponseBody = false;\n const isStreaming = memberSchema.isStreaming();\n if (isStreaming) {\n const isEventStream = memberSchema.isStructSchema();\n if (isEventStream) {\n dataObject[memberName] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n });\n }\n else {\n dataObject[memberName] = serde.sdkStreamMixin(response.body);\n }\n }\n else if (response.body) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n dataObject[memberName] = await deserializer.read(memberSchema, bytes);\n }\n }\n }\n else if (memberTraits.httpHeader) {\n const key = String(memberTraits.httpHeader).toLowerCase();\n const value = response.headers[key];\n if (null != value) {\n if (memberSchema.isListSchema()) {\n const headerListValueSchema = memberSchema.getValueSchema();\n headerListValueSchema.getMergedTraits().httpHeader = key;\n let sections;\n if (headerListValueSchema.isTimestampSchema() &&\n headerListValueSchema.getSchema() === 4) {\n sections = serde.splitEvery(value, \",\", 2);\n }\n else {\n sections = serde.splitHeader(value);\n }\n const list = [];\n for (const section of sections) {\n list.push(await deserializer.read(headerListValueSchema, section.trim()));\n }\n dataObject[memberName] = list;\n }\n else {\n dataObject[memberName] = await deserializer.read(memberSchema, value);\n }\n }\n }\n else if (memberTraits.httpPrefixHeaders !== undefined) {\n dataObject[memberName] = {};\n for (const header in response.headers) {\n if (header.startsWith(memberTraits.httpPrefixHeaders)) {\n const value = response.headers[header];\n const valueSchema = memberSchema.getValueSchema();\n valueSchema.getMergedTraits().httpHeader = header;\n dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value);\n }\n }\n }\n else if (memberTraits.httpResponseCode) {\n dataObject[memberName] = response.statusCode;\n }\n else {\n nonHttpBindingMembers.push(memberName);\n }\n }\n nonHttpBindingMembers.discardResponseBody = discardResponseBody;\n return nonHttpBindingMembers;\n }\n}\n\nclass RpcProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const schema$1 = ns.getSchema();\n let payload;\n const input = _input && typeof _input === \"object\" ? _input : {};\n const request = new transport.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"/\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n }\n if (input) {\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n if (input[eventStreamMember]) {\n const initialRequest = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n if (memberName !== eventStreamMember && input[memberName]) {\n serializer.write(memberSchema, input[memberName]);\n initialRequest[memberName] = serializer.flush();\n }\n }\n payload = await this.serializeEventStream({\n eventStream: input[eventStreamMember],\n requestSchema: ns,\n initialRequest,\n });\n }\n }\n else {\n serializer.write(schema$1, input);\n payload = serializer.flush();\n }\n }\n request.headers = Object.assign(request.headers, headers);\n request.query = query;\n request.body = payload;\n request.method = \"POST\";\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - RPC Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n dataObject[eventStreamMember] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n initialResponseContainer: dataObject,\n });\n }\n else {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes));\n }\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n}\n\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue == null || labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n\nfunction requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\nclass RequestBuilder {\n input;\n context;\n query = {};\n method = \"\";\n headers = {};\n path = \"\";\n body = null;\n hostname = \"\";\n resolvePathStack = [];\n constructor(input, context) {\n this.input = input;\n this.context = context;\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new transport.HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers,\n });\n }\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n h(headers) {\n this.headers = headers;\n return this;\n }\n q(query) {\n this.query = query;\n return this;\n }\n b(body) {\n this.body = body;\n return this;\n }\n m(method) {\n this.method = method;\n return this;\n }\n}\n\nfunction determineTimestampFormat(ns, settings) {\n if (settings.timestampFormat.useTrait) {\n if (ns.isTimestampSchema() &&\n (ns.getSchema() === 5 ||\n ns.getSchema() === 6 ||\n ns.getSchema() === 7)) {\n return ns.getSchema();\n }\n }\n const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n const bindingFormat = settings.httpBindings\n ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n ? 6\n : Boolean(httpQuery) || Boolean(httpLabel)\n ? 5\n : undefined\n : undefined;\n return bindingFormat ?? settings.timestampFormat.default;\n}\n\nclass FromStringShapeDeserializer extends SerdeContext {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n read(_schema, data) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isListSchema()) {\n return serde.splitHeader(data).map((item) => this.read(ns.getValueSchema(), item));\n }\n if (ns.isBlobSchema()) {\n return (this.serdeContext?.base64Decoder ?? serde.fromBase64)(data);\n }\n if (ns.isTimestampSchema()) {\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde._parseRfc3339DateTimeWithOffset(data);\n case 6:\n return serde._parseRfc7231DateTime(data);\n case 7:\n return serde._parseEpochTimestamp(data);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", data);\n return new Date(data);\n }\n }\n if (ns.isStringSchema()) {\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = data;\n if (mediaType) {\n if (ns.getMergedTraits().httpHeader) {\n intermediateValue = this.base64ToUtf8(intermediateValue);\n }\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n return intermediateValue;\n }\n }\n if (ns.isNumericSchema()) {\n return Number(data);\n }\n if (ns.isBigIntegerSchema()) {\n return BigInt(data);\n }\n if (ns.isBigDecimalSchema()) {\n return new serde.NumericValue(data, \"bigDecimal\");\n }\n if (ns.isBooleanSchema()) {\n return String(data).toLowerCase() === \"true\";\n }\n return data;\n }\n base64ToUtf8(base64String) {\n return (this.serdeContext?.utf8Encoder ?? serde.toUtf8)((this.serdeContext?.base64Decoder ?? serde.fromBase64)(base64String));\n }\n}\n\nclass HttpInterceptingShapeDeserializer extends SerdeContext {\n codecDeserializer;\n stringDeserializer;\n constructor(codecDeserializer, codecSettings) {\n super();\n this.codecDeserializer = codecDeserializer;\n this.stringDeserializer = new FromStringShapeDeserializer(codecSettings);\n }\n setSerdeContext(serdeContext) {\n this.stringDeserializer.setSerdeContext(serdeContext);\n this.codecDeserializer.setSerdeContext(serdeContext);\n this.serdeContext = serdeContext;\n }\n read(schema$1, data) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n const toString = this.serdeContext?.utf8Encoder ?? serde.toUtf8;\n if (traits.httpHeader || traits.httpResponseCode) {\n return this.stringDeserializer.read(ns, toString(data));\n }\n if (traits.httpPayload) {\n if (ns.isBlobSchema()) {\n const toBytes = this.serdeContext?.utf8Decoder ?? serde.fromUtf8;\n if (typeof data === \"string\") {\n return toBytes(data);\n }\n return data;\n }\n else if (ns.isStringSchema()) {\n if (\"byteLength\" in data) {\n return toString(data);\n }\n return data;\n }\n }\n return this.codecDeserializer.read(ns, data);\n }\n}\n\nclass ToStringShapeSerializer extends SerdeContext {\n settings;\n stringBuffer = \"\";\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n switch (typeof value) {\n case \"object\":\n if (value === null) {\n this.stringBuffer = \"null\";\n return;\n }\n if (ns.isTimestampSchema()) {\n if (!(value instanceof Date)) {\n throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`);\n }\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.stringBuffer = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n this.stringBuffer = serde.dateToUtcString(value);\n break;\n case 7:\n this.stringBuffer = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n this.stringBuffer = String(value.getTime() / 1000);\n }\n return;\n }\n if (ns.isBlobSchema() && \"byteLength\" in value) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? serde.toBase64)(value);\n return;\n }\n if (ns.isListSchema() && Array.isArray(value)) {\n let buffer = \"\";\n for (const item of value) {\n this.write([ns.getValueSchema(), ns.getMergedTraits()], item);\n const headerItem = this.flush();\n const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : serde.quoteHeader(headerItem);\n if (buffer !== \"\") {\n buffer += \", \";\n }\n buffer += serialized;\n }\n this.stringBuffer = buffer;\n return;\n }\n this.stringBuffer = JSON.stringify(value, null, 2);\n break;\n case \"string\":\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = value;\n if (mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n if (ns.getMergedTraits().httpHeader) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? serde.toBase64)(intermediateValue.toString());\n return;\n }\n }\n this.stringBuffer = value;\n break;\n default:\n if (ns.isIdempotencyToken()) {\n this.stringBuffer = serde.generateIdempotencyToken();\n }\n else {\n this.stringBuffer = String(value);\n }\n }\n }\n flush() {\n const buffer = this.stringBuffer;\n this.stringBuffer = \"\";\n return buffer;\n }\n}\n\nclass HttpInterceptingShapeSerializer {\n codecSerializer;\n stringSerializer;\n buffer;\n constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) {\n this.codecSerializer = codecSerializer;\n this.stringSerializer = stringSerializer;\n }\n setSerdeContext(serdeContext) {\n this.codecSerializer.setSerdeContext(serdeContext);\n this.stringSerializer.setSerdeContext(serdeContext);\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n if (traits.httpHeader || traits.httpLabel || traits.httpQuery) {\n this.stringSerializer.write(ns, value);\n this.buffer = this.stringSerializer.flush();\n return;\n }\n return this.codecSerializer.write(ns, value);\n }\n flush() {\n if (this.buffer !== undefined) {\n const buffer = this.buffer;\n this.buffer = undefined;\n return buffer;\n }\n return this.codecSerializer.flush();\n }\n}\n\nclass Field {\n name;\n kind;\n values;\n constructor({ name, kind = types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n\nclass Fields {\n entries = {};\n encoding;\n constructor({ fields = [], encoding = \"utf-8\" }) {\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n\nconst getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nconst resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (transport.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nconst contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n\nexports.HttpRequest = transport.HttpRequest;\nexports.HttpResponse = transport.HttpResponse;\nexports.isValidHostname = transport.isValidHostname;\nexports.parseQueryString = transport.parseQueryString;\nexports.parseUrl = transport.parseUrl;\nexports.Field = Field;\nexports.Fields = Fields;\nexports.FromStringShapeDeserializer = FromStringShapeDeserializer;\nexports.HttpBindingProtocol = HttpBindingProtocol;\nexports.HttpInterceptingShapeDeserializer = HttpInterceptingShapeDeserializer;\nexports.HttpInterceptingShapeSerializer = HttpInterceptingShapeSerializer;\nexports.HttpProtocol = HttpProtocol;\nexports.RequestBuilder = RequestBuilder;\nexports.RpcProtocol = RpcProtocol;\nexports.SerdeContext = SerdeContext;\nexports.ToStringShapeSerializer = ToStringShapeSerializer;\nexports.buildQueryString = buildQueryString;\nexports.collectBody = collectBody;\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = contentLengthMiddlewareOptions;\nexports.determineTimestampFormat = determineTimestampFormat;\nexports.escapeUri = escapeUri;\nexports.escapeUriPath = escapeUriPath;\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\nexports.getContentLengthPlugin = getContentLengthPlugin;\nexports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;\nexports.requestBuilder = requestBuilder;\nexports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;\nexports.resolvedPath = resolvedPath;\n"
],
"mappings": "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",
"debugId": "48C89F743D7D51ED64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260323234822_events.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260323234822_events\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`event_sequence\\` (\n \\`aggregate_id\\` text PRIMARY KEY,\n \\`seq\\` integer NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`event\\` (\n \\`id\\` text PRIMARY KEY,\n \\`aggregate_id\\` text NOT NULL,\n \\`seq\\` integer NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_event_aggregate_id_event_sequence_aggregate_id_fk\\` FOREIGN KEY (\\`aggregate_id\\`) REFERENCES \\`event_sequence\\`(\\`aggregate_id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wBACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6IAKb,EACD,MAAO,EAAG,IAAI,8YASb,EACF,EAEL",
"debugId": "D4A98DE1A00A715864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260605042240_add_context_epoch_agent.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260605042240_add_context_epoch_agent\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` ADD \\`agent\\` text DEFAULT 'build' NOT NULL;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gFAAoF,EACnG,EAEL",
"debugId": "0C360D8E8BF989EC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/ui/timeline.tsx", "src/commands/handlers/console/login.ts"],
"sourcesContent": [
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { createTextNode as _$createTextNode } from \"@opentui/solid\";\nimport { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\n/** @jsxImportSource @opentui/solid */\nimport { createCliRenderer, RGBA } from \"@opentui/core\";\nimport { createScrollbackWriter, render, useKeyboard } from \"@opentui/solid\";\nimport { registerOpencodeSpinner } from \"@opencode-ai/tui/component/register-spinner\";\nimport { Show, createSignal } from \"solid-js\";\nregisterOpencodeSpinner();\nconst SPINNER_FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\nconst IDLE_TIMEOUT = 1_000;\nconst COLORS = {\n accent: RGBA.fromIndex(6),\n error: RGBA.fromIndex(1),\n foreground: RGBA.defaultForeground(),\n muted: RGBA.fromIndex(8),\n success: RGBA.fromIndex(2)\n};\nconst ROWS = {\n intro: {\n marker: \"┌\",\n color: COLORS.muted,\n connector: true\n },\n item: {\n marker: \"●\",\n color: COLORS.accent,\n connector: true\n },\n success: {\n marker: \"◇\",\n color: COLORS.success,\n connector: true\n },\n failure: {\n marker: \"■\",\n color: COLORS.error,\n connector: false\n },\n outro: {\n marker: \"└\",\n color: COLORS.muted,\n connector: false\n }\n};\nfunction row(kind, value) {\n const style = ROWS[kind];\n return createScrollbackWriter(() => (() => {\n var _el$ = _$createElement(\"box\"),\n _el$2 = _$createElement(\"box\"),\n _el$3 = _$createElement(\"text\"),\n _el$4 = _$createElement(\"text\");\n _$insertNode(_el$, _el$2);\n _$setProp(_el$, \"width\", \"100%\");\n _$setProp(_el$, \"minHeight\", 1);\n _$setProp(_el$, \"flexDirection\", \"column\");\n _$insertNode(_el$2, _el$3);\n _$insertNode(_el$2, _el$4);\n _$setProp(_el$2, \"width\", \"100%\");\n _$setProp(_el$2, \"minHeight\", 1);\n _$setProp(_el$2, \"flexDirection\", \"row\");\n _$setProp(_el$2, \"gap\", 1);\n _$setProp(_el$3, \"flexShrink\", 0);\n _$insert(_el$3, () => style.marker);\n _$setProp(_el$4, \"wrapMode\", \"word\");\n _$insert(_el$4, value);\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return style.connector;\n },\n get children() {\n var _el$5 = _$createElement(\"text\");\n _$insertNode(_el$5, _$createTextNode(`│`));\n _$effect(_$p => _$setProp(_el$5, \"fg\", COLORS.muted, _$p));\n return _el$5;\n }\n }), null);\n _$effect(_p$ => {\n var _v$ = style.color,\n _v$2 = COLORS.foreground;\n _v$ !== _p$.e && (_p$.e = _$setProp(_el$3, \"fg\", _v$, _p$.e));\n _v$2 !== _p$.t && (_p$.t = _$setProp(_el$4, \"fg\", _v$2, _p$.t));\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$;\n })(), {\n startOnNewLine: true,\n trailingNewline: !style.connector\n });\n}\nfunction TimelineFooter(props) {\n useKeyboard(event => {\n if (event.name !== \"escape\" && !(event.ctrl && event.name === \"c\")) return;\n event.preventDefault();\n props.cancel();\n });\n return (() => {\n var _el$7 = _$createElement(\"box\");\n _$setProp(_el$7, \"width\", \"100%\");\n _$setProp(_el$7, \"height\", 1);\n _$setProp(_el$7, \"flexDirection\", \"row\");\n _$setProp(_el$7, \"gap\", 1);\n _$insert(_el$7, _$createComponent(Show, {\n get when() {\n return props.pending();\n },\n children: text => [(() => {\n var _el$8 = _$createElement(\"spinner\");\n _$setProp(_el$8, \"frames\", SPINNER_FRAMES);\n _$setProp(_el$8, \"interval\", 80);\n _$effect(_$p => _$setProp(_el$8, \"color\", COLORS.accent, _$p));\n return _el$8;\n })(), (() => {\n var _el$9 = _$createElement(\"text\");\n _$setProp(_el$9, \"wrapMode\", \"none\");\n _$setProp(_el$9, \"truncate\", true);\n _$insert(_el$9, text);\n _$effect(_$p => _$setProp(_el$9, \"fg\", COLORS.foreground, _$p));\n return _el$9;\n })()]\n }));\n return _el$7;\n })();\n}\nfunction bounded(task) {\n return new Promise(resolve => {\n const timer = setTimeout(resolve, IDLE_TIMEOUT);\n timer.unref();\n const finish = () => {\n clearTimeout(timer);\n resolve();\n };\n void task.then(finish, finish);\n });\n}\nasync function shutdown(renderer) {\n await bounded(renderer.idle());\n try {\n renderer.externalOutputMode = \"passthrough\";\n } finally {\n try {\n renderer.screenMode = \"main-screen\";\n } finally {\n if (!renderer.isDestroyed) renderer.destroy();\n }\n }\n}\nexport async function createTimelineHost() {\n const stdout = process.stdout;\n const controller = new AbortController();\n const signals = [\"SIGINT\", \"SIGHUP\", \"SIGQUIT\"];\n const cancel = () => {\n if (!controller.signal.aborted) controller.abort();\n };\n signals.forEach(signal => process.on(signal, cancel));\n if (!stdout.isTTY || !process.stdin.isTTY) {\n let closed = false;\n let writing = false;\n let active;\n let closeTask;\n const write = async (kind, text) => {\n if (closed) throw new Error(\"timeline closed\");\n if (writing) throw new Error(\"timeline write already in progress\");\n writing = true;\n try {\n const style = kind === \"pending\" ? undefined : ROWS[kind];\n const marker = kind === \"pending\" ? \".\" : ROWS[kind].marker;\n const connector = style?.connector ? \"│\\n\" : \"\";\n active = new Promise((resolve, reject) => {\n stdout.write(`${marker} ${text}\\n${connector}`, error => error ? reject(error) : resolve());\n });\n await active;\n } finally {\n writing = false;\n active = undefined;\n }\n };\n const close = () => {\n if (closeTask) return closeTask;\n closed = true;\n closeTask = (async () => {\n await active?.catch(() => {});\n signals.forEach(signal => process.off(signal, cancel));\n })();\n return closeTask;\n };\n return {\n signal: controller.signal,\n intro: text => write(\"intro\", text),\n item: text => write(\"item\", text),\n pending: text => write(\"pending\", text),\n success: text => write(\"success\", text),\n failure: text => write(\"failure\", text),\n outro: text => write(\"outro\", text),\n close\n };\n }\n let renderer;\n try {\n // Start on a fresh row so delayed SSH cursor reports cannot make\n // split-footer overwrite the shell command.\n process.stdout.write(\"\\n\");\n renderer = await createCliRenderer({\n stdin: process.stdin,\n useMouse: false,\n autoFocus: false,\n openConsoleOnError: false,\n exitOnCtrlC: false,\n exitSignals: [],\n screenMode: \"split-footer\",\n footerHeight: 1,\n externalOutputMode: \"capture-stdout\",\n consoleMode: \"disabled\",\n clearOnShutdown: false\n });\n const activeRenderer = renderer;\n const [pending, setPending] = createSignal();\n const renderTask = render(() => _$createComponent(TimelineFooter, {\n pending: pending,\n cancel: cancel\n }), activeRenderer);\n void renderTask.catch(cancel);\n await bounded(activeRenderer.idle());\n let closed = false;\n let writing = false;\n let active;\n let closeTask;\n const write = (kind, text) => {\n if (closed) return Promise.reject(new Error(\"timeline closed\"));\n if (writing) return Promise.reject(new Error(\"timeline write already in progress\"));\n writing = true;\n active = (async () => {\n if (kind === \"pending\") {\n setPending(text);\n activeRenderer.requestRender();\n } else {\n if (kind === \"success\" || kind === \"failure\" || kind === \"outro\") setPending(undefined);\n activeRenderer.writeToScrollback(row(kind, text));\n activeRenderer.requestRender();\n }\n await bounded(activeRenderer.idle());\n })().finally(() => {\n writing = false;\n active = undefined;\n });\n return active;\n };\n const close = () => {\n if (closeTask) return closeTask;\n closed = true;\n closeTask = (async () => {\n await active?.catch(() => {});\n try {\n await shutdown(activeRenderer);\n await bounded(renderTask);\n } finally {\n signals.forEach(signal => process.off(signal, cancel));\n }\n })();\n return closeTask;\n };\n return {\n signal: controller.signal,\n intro: text => write(\"intro\", text),\n item: text => write(\"item\", text),\n pending: text => write(\"pending\", text),\n success: text => write(\"success\", text),\n failure: text => write(\"failure\", text),\n outro: text => write(\"outro\", text),\n close\n };\n } catch (error) {\n try {\n if (renderer) await shutdown(renderer);\n } finally {\n signals.forEach(signal => process.off(signal, cancel));\n }\n throw error;\n }\n}",
"import { Cause, Effect, Exit, Option } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { AppProcess } from \"@opencode-ai/core/process\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { createTimelineHost, type TimelineHost } from \"../../../ui/timeline\"\n\nconst integrationID = \"opencode\"\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.console.commands.login,\n Effect.fn(\"cli.console.login\")(function* (input) {\n const timeline = yield* Effect.acquireRelease(\n Effect.promise(() => createTimelineHost()),\n (value) => request(() => value.close()).pipe(Effect.ignore),\n )\n const exit = yield* login(timeline, Option.getOrUndefined(input.url)).pipe(\n Effect.raceFirst(AppProcess.waitForAbort(timeline.signal)),\n Effect.exit,\n )\n if (Exit.isSuccess(exit)) return\n\n const cancelled = timeline.signal.aborted\n yield* request(() => timeline.failure(cancelled ? \"Authorization cancelled\" : errorMessage(exit.cause))).pipe(\n Effect.ignore,\n )\n process.exitCode = cancelled ? 130 : 1\n }),\n)\n\nconst login = Effect.fn(\"cli.console.login.run\")(function* (timeline: TimelineHost, server?: string) {\n yield* request(() => timeline.intro(\"Log in\"))\n yield* request(() => timeline.pending(\"Connecting to OpenCode...\"))\n\n const endpoint = yield* Service.ensure(yield* ServiceConfig.options())\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const found = yield* request((signal) => client.integration.get({ integrationID, location }, { signal }))\n const integration = yield* required(found.data, \"OpenCode Console integration is unavailable\")\n const method = yield* required(\n integration.methods.find((candidate) => candidate.type === \"oauth\"),\n \"OpenCode Console login is unavailable\",\n )\n\n yield* request(() => timeline.pending(\"Starting authorization...\"))\n const started = yield* request((signal) =>\n client.integration.connect.oauth(\n {\n integrationID,\n methodID: method.id,\n inputs: server ? { server } : {},\n location,\n },\n { signal },\n ),\n )\n const attempt = started.data\n yield* Effect.addFinalizer(() =>\n request(() =>\n client.integration.attempt.cancel(\n { attemptID: attempt.attemptID, location },\n { signal: AbortSignal.timeout(5_000) },\n ),\n ).pipe(Effect.ignore),\n )\n if (attempt.mode !== \"auto\") yield* Effect.fail(new Error(\"OpenCode Console requires a device login\"))\n\n yield* request(() => timeline.item(`Go to: ${attempt.url}`))\n yield* request(() => timeline.item(attempt.instructions))\n yield* request(async () => {\n const { default: open } = await import(\"open\")\n await open(attempt.url)\n }).pipe(Effect.ignore)\n yield* request(() => timeline.pending(\"Waiting for authorization...\"))\n\n const status = yield* waitForConsoleLogin(client, attempt.attemptID)\n if (status.status === \"failed\") yield* Effect.fail(new Error(status.message))\n if (status.status === \"expired\") yield* Effect.fail(new Error(\"Device code expired\"))\n\n yield* request(() => timeline.success(\"Connected to OpenCode Console\"))\n yield* request(() => timeline.outro(\"Done\"))\n})\n\nconst waitForConsoleLogin = Effect.fn(\"cli.console.login.wait\")(function* (\n client: OpenCodeClient,\n attemptID: string,\n) {\n while (true) {\n const response = yield* request((signal) =>\n client.integration.attempt.status({ attemptID, location }, { signal }),\n )\n if (response.data.status !== \"pending\") return response.data\n yield* Effect.sleep(500)\n }\n})\n\nfunction request<A>(task: (signal: AbortSignal) => Promise<A>) {\n return Effect.tryPromise({\n try: task,\n catch: (cause) => cause,\n })\n}\n\nfunction required<A>(value: A | null | undefined, message: string) {\n return value === null || value === undefined ? Effect.fail(new Error(message)) : Effect.succeed(value)\n}\n\nfunction errorMessage(cause: Cause.Cause<unknown>) {\n const error = Cause.squash(cause)\n if (error instanceof Error) return error.message\n if (typeof error === \"object\" && error !== null && \"message\" in error && typeof error.message === \"string\") {\n return error.message\n }\n return String(error)\n}\n"
],
"mappings": "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",
"debugId": "E1A1193D9AFE5BE364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-web-identity@3.972.45/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-web-identity@3.972.45/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, externalDataInterceptor } from \"@smithy/core/config\";\nimport { readFileSync } from \"node:fs\";\nimport { fromWebToken } from \"./fromWebToken\";\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nexport const fromTokenFile = (init = {}) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await fromWebToken({\n ...init,\n webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ??\n readFileSync(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })(awsIdentityProperties);\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\n",
"export const fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await import(\"@aws-sdk/nested-clients/sts\");\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\n"
],
"mappings": ";kJAAA,oBACA,gBACA,uBAAS,WCFF,IAAM,EAAe,CAAC,IAAS,MAAO,IAA0B,CACnE,EAAK,QAAQ,MAAM,0DAA0D,EAC7E,IAAQ,UAAS,kBAAiB,mBAAkB,aAAY,aAAY,SAAQ,mBAAoB,GAClG,8BAA+B,EACrC,GAAI,CAAC,EAA4B,CAC7B,IAAQ,wCAAyC,KAAa,0CAC9D,EAA6B,EAAqC,IAC3D,EAAK,aACR,yBAA0B,EAAK,OAC/B,mBAAoB,IACb,GAAuB,sBACvB,EAAK,kBACZ,CACJ,EAAG,EAAK,aAAa,EAEzB,OAAO,EAA2B,CAC9B,QAAS,EACT,gBAAiB,GAAmB,sBAAsB,KAAK,IAAI,IACnE,iBAAkB,EAClB,WAAY,EACZ,WAAY,EACZ,OAAQ,EACR,gBAAiB,CACrB,CAAC,GDnBL,IAAM,EAAiB,8BACjB,EAAe,eACf,EAAwB,wBACjB,EAAgB,CAAC,EAAO,CAAC,IAAM,MAAO,IAA0B,CACzE,EAAK,QAAQ,MAAM,2DAA2D,EAC9E,IAAM,EAAuB,GAAM,sBAAwB,QAAQ,IAAI,GACjE,EAAU,GAAM,SAAW,QAAQ,IAAI,GACvC,EAAkB,GAAM,iBAAmB,QAAQ,IAAI,GAC7D,GAAI,CAAC,GAAwB,CAAC,EAC1B,MAAM,IAAI,2BAAyB,2CAA4C,CAC3E,OAAQ,EAAK,MACjB,CAAC,EAEL,IAAM,EAAc,MAAM,EAAa,IAChC,EACH,iBAAkB,2BAAyB,iBAAiB,EAAE,IAC1D,EAAa,EAAsB,CAAE,SAAU,OAAQ,CAAC,EAC5D,UACA,iBACJ,CAAC,EAAE,CAAqB,EACxB,GAAI,IAAyB,QAAQ,IAAI,GACrC,uBAAqB,EAAa,wCAAyC,GAAG,EAElF,OAAO",
"debugId": "11B339C050A1C16D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "21FEE880C8B5604364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/cli-spinners@3.4.0/node_modules/cli-spinners/index.js", "../../node_modules/.bun/opentui-spinner@0.0.7+d3ea10796c516e66/node_modules/opentui-spinner/dist/src-DjeqLSfu.mjs", "../../node_modules/.bun/opentui-spinner@0.0.7+d3ea10796c516e66/node_modules/opentui-spinner/dist/solid.mjs", "../tui/src/component/register-spinner.ts"],
"sourcesContent": [
"import spinners from './spinners.json' with {type: 'json'};\n\nexport default spinners;\n\nconst spinnersList = Object.keys(spinners);\n\nexport function randomSpinner() {\n\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\tconst spinnerName = spinnersList[randomIndex];\n\treturn spinners[spinnerName];\n}\n",
"import{Renderable as e,parseColor as t,resolveRenderLib as n}from\"@opentui/core\";import r from\"cli-spinners\";const i=1e3/60,a=1e3;function o(e){if(!Number.isFinite(e)||e<i||e>a)throw RangeError(`Spinner interval must be a finite number between ${i}ms and ${a}ms`);return e}const s={now:()=>performance.now(),setInterval:(e,t)=>{let n=setInterval(e,t);return n.unref(),n},clearInterval:e=>clearInterval(e)},c=new class{active=new Map;heap=[];timer=null;timerDueAt=0;generation=0;lastWakeAt=-1/0;clock;constructor(e=s,t=16){this.denseTickThreshold=t,this.clock=e}setClock(e){if(this.active.size>0||this.timer!==null)throw Error(`Cannot replace the spinner scheduler clock while active`);this.clock=e}start(e,t,n){if(this.active.has(e))return;let r={spinner:e,interval:t,nextDueAt:this.clock.now()+t,advance:n};this.active.set(e,r),this.push(r),this.armNext()}reschedule(e,t){let n=this.active.get(e);if(!n)return;let r={spinner:e,interval:t,nextDueAt:this.clock.now()+t,advance:n.advance};this.active.set(e,r),this.push(r),this.compactIfNeeded(),this.armNext()}stop(e){this.active.delete(e)&&(this.compactIfNeeded(),this.armNext())}armNext(){this.discardStaleRoots();let e=this.heap[0];if(!e){this.cancelTimer(),this.lastWakeAt=-1/0;return}let t=this.clock.now(),n=Math.max(e.nextDueAt,this.lastWakeAt+i);if(this.timer!==null&&this.timerDueAt===n)return;this.cancelTimer();let r=this.generation,a=Math.max(n-t,0);this.timerDueAt=n,this.timer=this.clock.setInterval(()=>this.tick(r),a)}cancelTimer(){this.timer!==null&&(this.generation++,this.clock.clearInterval(this.timer),this.timer=null)}tick(e){if(e!==this.generation||this.timer===null)return;let t=this.timer;this.generation++,this.timer=null,this.clock.clearInterval(t);let n=this.clock.now();this.discardStaleRoots();let r=!1,i=0,a=[];for(;this.heap[0]&&this.heap[0].nextDueAt<=n;){let e=this.pop();if(!(!e||!this.isCurrent(e))){try{e.advance()}catch(e){a.push(e)}if(r=!0,this.isCurrent(e)&&(e.nextDueAt=n+e.interval,this.push(e),i++,i===this.denseTickThreshold)){let e=this.heap;this.heap=[];for(let t of e)if(this.isCurrent(t)){if(t.nextDueAt<=n){try{t.advance()}catch(e){a.push(e)}if(r=!0,!this.isCurrent(t))continue;t.nextDueAt=n+t.interval}this.heap.push(t)}this.heapify();break}}}if(r&&(this.lastWakeAt=n),this.compactIfNeeded(),this.armNext(),a.length===1)throw a[0];if(a.length>1)throw AggregateError(a,`Multiple spinner callbacks failed`)}isCurrent(e){return this.active.get(e.spinner)===e}discardStaleRoots(){for(;this.heap[0]&&!this.isCurrent(this.heap[0]);)this.pop()}compactIfNeeded(){this.heap.length<=this.active.size*2+16||(this.heap=Array.from(this.active.values()),this.heapify())}heapify(){for(let e=Math.floor(this.heap.length/2)-1;e>=0;e--)this.siftDown(e)}push(e){this.heap.push(e);let t=this.heap.length-1;for(;t>0;){let n=Math.floor((t-1)/2);if(this.heap[n].nextDueAt<=e.nextDueAt)break;this.heap[t]=this.heap[n],t=n}this.heap[t]=e}pop(){let e=this.heap[0],t=this.heap.pop();return!e||!t||this.heap.length===0?e:(this.heap[0]=t,this.siftDown(0),e)}siftDown(e){let t=this.heap[e],n=e;for(;;){let e=n*2+1;if(e>=this.heap.length)break;let r=e+1,i=r<this.heap.length&&this.heap[r].nextDueAt<this.heap[e].nextDueAt?r:e;if(this.heap[i].nextDueAt>=t.nextDueAt)break;this.heap[n]=this.heap[i],n=i}this.heap[n]=t}};function l(e,t=1){if(e.length===0)throw RangeError(`createPulse requires at least one color`);return n=>e[Math.floor(n*t)%e.length]}function u(e){if(e.length===0)throw RangeError(`createWave requires at least one color`);return(t,n,r,i)=>{let a=(n+t)%i;return e[Math.floor(a/i*e.length)]??e[0]}}function d(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var f=class extends e{_name;_frames;_interval;_autoplay;_backgroundColor;_parsedBackgroundColor;_color;_parsedColor;_currentFrameIndex=0;_encodedFrames={};_lib=n();_isRunning=!1;_advanceFrame=()=>{!this._isRunning||this.isDestroyed||(this._currentFrameIndex=(this._currentFrameIndex+1)%this._frames.length,this.requestRender())};_defaultOptions={name:`dots`,frames:r.dots.frames,interval:r.dots.interval,autoplay:!0,backgroundColor:`transparent`,color:`white`};constructor(e,n){super(e,n),this._name=n.name,this._frames=n.frames?.length?n.frames:this._name?r[this._name].frames:this._defaultOptions.frames,this._interval=o(n.interval??(this._name?r[this._name].interval:this._defaultOptions.interval)),this._autoplay=n.autoplay??this._defaultOptions.autoplay,this._backgroundColor=n.backgroundColor??this._defaultOptions.backgroundColor,this._parsedBackgroundColor=t(this._backgroundColor),this._color=n.color??this._defaultOptions.color,this._parsedColor=typeof this._color==`function`?t(this._defaultOptions.color):t(this._color),this.height=1,this._encodeFrames(),this._autoplay&&this.start()}_encodeFrames(){let e=0;for(let t of this._frames){if(this._encodedFrames[t])continue;let n=this._lib.encodeUnicode(t,this.ctx.widthMethod);n&&(this._encodedFrames[t]=n,e=Math.max(e,n.data.reduce((e,t)=>e+t.width,0)))}this.width=e}_freeFrames(){for(let e in this._encodedFrames)this._encodedFrames[e]&&this._lib.freeUnicode(this._encodedFrames[e]);this._encodedFrames={}}get interval(){return this._interval}set interval(e){this._interval=o(e),this._isRunning&&c.reschedule(this,this._interval)}get name(){return this._name}set name(e){let t=e?r[e].frames:this._defaultOptions.frames,n=o(e?r[e].interval:this._defaultOptions.interval),i=!d(this._frames,t),a=this._interval!==n;this._name=e,this._interval=n,i&&(this._freeFrames(),this._frames=t,this._currentFrameIndex=0,this._encodeFrames(),this.visible&&this.requestRender()),this._isRunning&&a&&c.reschedule(this,n)}get frames(){return this._frames}set frames(e){let t=e.length===0?this._defaultOptions.frames:e;if(d(this._frames,t)){this._frames=t;return}this._freeFrames(),this._frames=t,this._currentFrameIndex=0,this._encodeFrames(),this.visible&&this.requestRender()}get color(){return this._color}set color(e){this._color=e,typeof e!=`function`&&(this._parsedColor=t(e)),this.visible&&this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){this._backgroundColor=e,this._parsedBackgroundColor=t(e),this.visible&&this.requestRender()}get visible(){return super.visible}set visible(e){e!==super.visible&&(super.visible=e,this._isRunning&&(e?c.start(this,this._interval,this._advanceFrame):c.stop(this)))}get autoplay(){return this._autoplay}set autoplay(e){this._autoplay=e,e?this.start():this.stop()}start(){this._isRunning||this.isDestroyed||(this._isRunning=!0,this.visible&&c.start(this,this._interval,this._advanceFrame))}stop(){this._isRunning&&(this._isRunning=!1,c.stop(this))}renderSelf(e){if(!this.visible)return;let n=this._frames[this._currentFrameIndex];if(!n)return;let r=this._encodedFrames[n];if(!r)return;let i=this.x;for(let n=0;n<r.data.length;n++){let a=typeof this._color==`function`?t(this._color(this._currentFrameIndex,n,this._frames.length,r.data.length)):this._parsedColor;e.drawChar(r.data[n].char,i,this.y,a,this._parsedBackgroundColor),i+=r.data[n].width}}destroySelf(){this.stop(),this._freeFrames(),super.destroySelf()}};export{l as n,u as r,f as t};",
"import{t as e}from\"./src-DjeqLSfu.mjs\";import{extend as t}from\"@opentui/solid/components\";function n(){t({spinner:e})}n();export{n as registerSpinner};",
"import { getComponentCatalogue } from \"@opentui/solid/components\"\nimport { registerSpinner } from \"opentui-spinner/solid\"\n\nexport function registerOpencodeSpinner() {\n if (!getComponentCatalogue().spinner) registerSpinner()\n}\n"
],
"mappings": "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",
"debugId": "BB7AF1F114FCF67964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260213144116_wakeful_the_professor.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260213144116_wakeful_the_professor\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`control_account\\` (\n \\`email\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`access_token\\` text NOT NULL,\n \\`refresh_token\\` text NOT NULL,\n \\`token_expiry\\` integer,\n \\`active\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`control_account_pk\\` PRIMARY KEY(\\`email\\`, \\`url\\`)\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6bAYb,EACF,EAEL",
"debugId": "70158B0E1FC8A9C964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260603040000_session_message_projection_order.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603040000_session_message_projection_order\",\n up(tx) {\n return Effect.gen(function* () {\n // Pre-launch Session projections were written before durable event persistence\n // became unconditional, so they cannot be assigned truthful aggregate order.\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_message\\` ADD COLUMN \\`seq\\` integer NOT NULL;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_type_time_created_id_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`session_message_session_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`seq\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`,\\`seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAG7B,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,kEAAsE,EACpF,MAAO,EAAG,IAAI,0EAA4E,EAC1F,MAAO,EAAG,IAAI,2FAAmG,EACjH,MAAO,EAAG,IACR,uGACF,EACD,EAEL",
"debugId": "4E5EF7E61F66533764756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260611192811_lush_chimera.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260611192811_lush_chimera\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`credential_connector_active_idx\\`;`)\n yield* tx.run(`DROP TABLE \\`credential\\`;`)\n yield* tx.run(`\n CREATE TABLE \\`credential\\` (\n \\`id\\` text PRIMARY KEY,\n \\`integration_id\\` text,\n \\`label\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`connector_id\\` text,\n \\`method_id\\` text,\n \\`active\\` integer,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,yDAA2D,EACzE,MAAO,EAAG,IAAI,0BAA4B,EAC1C,MAAO,EAAG,IAAI,oXAYb,EACF,EAEL",
"debugId": "FFC5BD67C2EB48AA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "FF2D7909A16697CB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "CD7F916C31A1902864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260707010146_durable_session_inbox.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260707010146_durable_session_inbox\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`prompt\\` text,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_session_input\\`(\\`id\\`, \\`session_id\\`, \\`type\\`, \\`prompt\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`) SELECT \\`id\\`, \\`session_id\\`, 'prompt', \\`prompt\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\` FROM \\`session_input\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_input_session_pending_delivery_seq_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_type_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`type\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_pending_compaction_idx\\` ON \\`session_input\\` (\\`session_id\\`) WHERE \"session_input\".\"type\" = 'compaction' and \"session_input\".\"promoted_seq\" is null;`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,yeAYb,EACD,MAAO,EAAG,IACR,qQACF,EACA,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IAAI,wEAA0E,EACxF,MAAO,EAAG,IACR,uJACF,EACA,MAAO,EAAG,IACR,gMACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACD,EAEL",
"debugId": "54CB46ACF51641A264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "B7F0882AB2659FDA64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260423070820_add_icon_url_override.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260423070820_add_icon_url_override\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n ALTER TABLE \\`project\\` ADD \\`icon_url_override\\` text;\n UPDATE \\`project\\` SET \\`icon_url_override\\` = \\`icon_url\\` WHERE \\`icon_url\\` IS NOT NULL;\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,oKAGb,EACF,EAEL",
"debugId": "BF39A7AF6F3F5A9464756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "482DBF980CF344FC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/util/locale.ts"],
"sourcesContent": [
"export function titlecase(str: string) {\n return str.replace(/\\b\\w/g, (c) => c.toUpperCase())\n}\n\nexport function time(input: number): string {\n const date = new Date(input)\n return date.toLocaleTimeString(undefined, { timeStyle: \"short\" })\n}\n\nexport function datetime(input: number): string {\n const date = new Date(input)\n const localTime = time(input)\n const localDate = date.toLocaleDateString()\n return `${localTime} · ${localDate}`\n}\n\nexport function todayTimeOrDateTime(input: number): string {\n const date = new Date(input)\n const now = new Date()\n const isToday =\n date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()\n\n if (isToday) {\n return time(input)\n } else {\n return datetime(input)\n }\n}\n\nexport function number(num: number): string {\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1) + \"M\"\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1) + \"K\"\n }\n return num.toString()\n}\n\nexport function duration(input: number) {\n if (input < 1000) {\n return `${input}ms`\n }\n if (input < 60000) {\n return `${(input / 1000).toFixed(1)}s`\n }\n if (input < 3600000) {\n const minutes = Math.floor(input / 60000)\n const seconds = Math.floor((input % 60000) / 1000)\n return `${minutes}m ${seconds}s`\n }\n if (input < 86400000) {\n const hours = Math.floor(input / 3600000)\n const minutes = Math.floor((input % 3600000) / 60000)\n return `${hours}h ${minutes}m`\n }\n const days = Math.floor(input / 86400000)\n const hours = Math.floor((input % 86400000) / 3600000)\n return `${days}d ${hours}h`\n}\n\nexport function truncate(str: string, len: number): string {\n if (str.length <= len) return str\n return str.slice(0, len - 1) + \"…\"\n}\n\nconst graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" })\n\nexport function truncateWidth(str: string, width: number): string {\n if (width <= 0) return \"\"\n if (Bun.stringWidth(str) <= width) return str\n if (width === 1) return \"…\"\n\n const result: string[] = []\n let used = 0\n for (const item of graphemeSegmenter.segment(str)) {\n const next = Bun.stringWidth(item.segment)\n if (used + next > width - 1) break\n result.push(item.segment)\n used += next\n }\n return result.join(\"\") + \"…\"\n}\n\nexport function truncateLeft(str: string, len: number): string {\n if (str.length <= len) return str\n return \"…\" + str.slice(-(len - 1))\n}\n\nexport function truncateMiddle(str: string, maxLength: number = 35): string {\n if (str.length <= maxLength) return str\n\n const ellipsis = \"…\"\n const keepStart = Math.ceil((maxLength - ellipsis.length) / 2)\n const keepEnd = Math.floor((maxLength - ellipsis.length) / 2)\n\n return str.slice(0, keepStart) + ellipsis + str.slice(-keepEnd)\n}\n\nexport function pluralize(count: number, singular: string, plural: string): string {\n const template = count === 1 ? singular : plural\n return template.replace(\"{}\", count.toString())\n}\n\nexport * as Locale from \"./locale\"\n"
],
"mappings": ";4QAAO,SAAS,CAAS,CAAC,EAAa,CACrC,OAAO,EAAI,QAAQ,QAAS,CAAC,IAAM,EAAE,YAAY,CAAC,EAG7C,SAAS,CAAI,CAAC,EAAuB,CAE1C,OADa,IAAI,KAAK,CAAK,EACf,mBAAmB,OAAW,CAAE,UAAW,OAAQ,CAAC,EAG3D,SAAS,CAAQ,CAAC,EAAuB,CAC9C,IAAM,EAAO,IAAI,KAAK,CAAK,EACrB,EAAY,EAAK,CAAK,EACtB,EAAY,EAAK,mBAAmB,EAC1C,MAAO,GAAG,UAAc,IAGnB,SAAS,CAAmB,CAAC,EAAuB,CACzD,IAAM,EAAO,IAAI,KAAK,CAAK,EACrB,EAAM,IAAI,KAIhB,GAFE,EAAK,YAAY,IAAM,EAAI,YAAY,GAAK,EAAK,SAAS,IAAM,EAAI,SAAS,GAAK,EAAK,QAAQ,IAAM,EAAI,QAAQ,EAGjH,OAAO,EAAK,CAAK,EAEjB,YAAO,EAAS,CAAK,EAIlB,SAAS,CAAM,CAAC,EAAqB,CAC1C,GAAI,GAAO,IACT,OAAQ,EAAM,KAAS,QAAQ,CAAC,EAAI,IAC/B,QAAI,GAAO,KAChB,OAAQ,EAAM,MAAM,QAAQ,CAAC,EAAI,IAEnC,OAAO,EAAI,SAAS,EAGf,SAAS,CAAQ,CAAC,EAAe,CACtC,GAAI,EAAQ,KACV,MAAO,GAAG,MAEZ,GAAI,EAAQ,MACV,MAAO,IAAI,EAAQ,MAAM,QAAQ,CAAC,KAEpC,GAAI,EAAQ,QAAS,CACnB,IAAM,EAAU,KAAK,MAAM,EAAQ,KAAK,EAClC,EAAU,KAAK,MAAO,EAAQ,MAAS,IAAI,EACjD,MAAO,GAAG,MAAY,KAExB,GAAI,EAAQ,SAAU,CACpB,IAAM,EAAQ,KAAK,MAAM,EAAQ,OAAO,EAClC,EAAU,KAAK,MAAO,EAAQ,QAAW,KAAK,EACpD,MAAO,GAAG,MAAU,KAEtB,IAAM,EAAO,KAAK,MAAM,EAAQ,QAAQ,EAClC,EAAQ,KAAK,MAAO,EAAQ,SAAY,OAAO,EACrD,MAAO,GAAG,MAAS,KAGd,SAAS,CAAQ,CAAC,EAAa,EAAqB,CACzD,GAAI,EAAI,QAAU,EAAK,OAAO,EAC9B,OAAO,EAAI,MAAM,EAAG,EAAM,CAAC,EAAI,SAGjC,IAAM,EAAoB,IAAI,KAAK,UAAU,OAAW,CAAE,YAAa,UAAW,CAAC,EAE5E,SAAS,CAAa,CAAC,EAAa,EAAuB,CAChE,GAAI,GAAS,EAAG,MAAO,GACvB,GAAI,IAAI,YAAY,CAAG,GAAK,EAAO,OAAO,EAC1C,GAAI,IAAU,EAAG,MAAO,SAExB,IAAM,EAAmB,CAAC,EACtB,EAAO,EACX,QAAW,KAAQ,EAAkB,QAAQ,CAAG,EAAG,CACjD,IAAM,EAAO,IAAI,YAAY,EAAK,OAAO,EACzC,GAAI,EAAO,EAAO,EAAQ,EAAG,MAC7B,EAAO,KAAK,EAAK,OAAO,EACxB,GAAQ,EAEV,OAAO,EAAO,KAAK,EAAE,EAAI,SAGpB,SAAS,CAAY,CAAC,EAAa,EAAqB,CAC7D,GAAI,EAAI,QAAU,EAAK,OAAO,EAC9B,MAAO,SAAK,EAAI,MAAM,EAAE,EAAM,EAAE,EAG3B,SAAS,CAAc,CAAC,EAAa,EAAoB,GAAY,CAC1E,GAAI,EAAI,QAAU,EAAW,OAAO,EAEpC,IAAM,EAAW,SACX,EAAY,KAAK,MAAM,EAAY,EAAS,QAAU,CAAC,EACvD,EAAU,KAAK,OAAO,EAAY,EAAS,QAAU,CAAC,EAE5D,OAAO,EAAI,MAAM,EAAG,CAAS,EAAI,EAAW,EAAI,MAAM,CAAC,CAAO,EAGzD,SAAS,CAAS,CAAC,EAAe,EAAkB,EAAwB,CAEjF,OADiB,IAAU,EAAI,EAAW,GAC1B,QAAQ,KAAM,EAAM,SAAS,CAAC",
"debugId": "D701E96F3672501264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/mini.ts", "src/mini/run.ts", "src/mini/noninteractive.ts", "src/mini/ui.ts"],
"sourcesContent": [
"import { Service } from \"@opencode-ai/client/effect/service\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { ServerConnection } from \"../services/server-connection\"\nimport { waitForCatalogReady } from \"./catalog.shared\"\nimport { INTERACTIVE_INPUT_ERROR, resolveInteractiveStdin } from \"./runtime.stdin\"\nimport type { RunInput, RunTuiConfig } from \"./types\"\n\nexport type MiniCommandInput = {\n server: ServerConnection.Resolved\n continue?: boolean\n session?: string\n fork?: boolean\n model?: string\n agent?: string\n prompt?: string\n replay?: boolean\n replayLimit?: number\n demo?: boolean\n tuiConfig?: RunTuiConfig | Promise<RunTuiConfig>\n}\n\ntype Session = Awaited<ReturnType<OpenCodeClient[\"session\"][\"get\"]>>\nexport async function runMini(input: MiniCommandInput) {\n validate(input)\n const initialInput = mergeInput(process.stdin.isTTY ? undefined : await Bun.stdin.text(), input.prompt)\n const runtimeTask = import(\"./runtime\")\n const directory = localDirectory()\n\n try {\n const sdk = OpenCode.make({\n baseUrl: input.server.endpoint.url,\n headers: Service.headers(input.server.endpoint),\n })\n const model = parseModel(input.model)\n let agentTask: Promise<string | undefined> | undefined\n const resolveAgent = () => {\n agentTask ??= validateAgent(sdk, directory, input.agent)\n return agentTask\n }\n const resolveSession = async () => {\n const [agent, selected] = await Promise.all([resolveAgent(), selectSession(sdk, directory, input)])\n const readyModel =\n model ?? (selected?.model ? { providerID: selected.model.providerID, modelID: selected.model.id } : undefined)\n if (readyModel) await waitForCatalogReady({ sdk, directory, model: readyModel })\n const session = selected ?? (await createSession(sdk, directory, agent, model))\n return { id: session.id, title: session.title, resume: selected !== undefined }\n }\n const create = (\n _sdk: OpenCodeClient,\n next: { agent: string | undefined; model: RunInput[\"model\"]; variant: string | undefined },\n ) => createSession(sdk, directory, next.agent, next.model, next.variant)\n const runtime = await runtimeTask\n await runtime.runInteractiveDeferredMode({\n sdk,\n directory,\n resolveAgent,\n session: resolveSession,\n createSession: create,\n agent: input.agent,\n model,\n variant: undefined,\n files: [],\n initialInput,\n thinking: true,\n replay: input.replay ?? true,\n replayLimit: input.replayLimit,\n demo: input.demo,\n tuiConfig: input.tuiConfig,\n })\n } catch (error) {\n if (error instanceof Error && error.message === INTERACTIVE_INPUT_ERROR) fail(error.message)\n throw error\n }\n}\n\nexport function validateMiniTerminal() {\n if (!process.stdout.isTTY) fail(\"opencode mini requires a TTY stdout\")\n}\n\n/** @internal Exported for testing. */\nexport function mergeInput(piped: string | undefined, prompt: string | undefined) {\n if (!prompt) return piped || undefined\n if (!piped) return prompt\n return piped + \"\\n\" + prompt\n}\n\nfunction validate(input: MiniCommandInput) {\n validateMiniTerminal()\n if (input.replayLimit !== undefined && (!Number.isInteger(input.replayLimit) || input.replayLimit <= 0)) {\n fail(\"--replay-limit must be a positive integer\")\n }\n if (input.fork && !input.continue && !input.session) fail(\"--fork requires --continue or --session\")\n resolveInteractiveStdin().cleanup?.()\n}\n\nfunction localDirectory(): string {\n const root = process.env.PWD ?? process.cwd()\n try {\n process.chdir(root)\n return process.cwd()\n } catch {\n fail(`Failed to change directory to ${root}`)\n }\n}\n\nfunction parseModel(value?: string): RunInput[\"model\"] {\n if (!value) return\n const [providerID, ...rest] = value.split(\"/\")\n const modelID = rest.join(\"/\")\n if (!providerID || !modelID) fail(\"--model must use the format provider/model\")\n return { providerID, modelID }\n}\n\nasync function validateAgent(sdk: OpenCodeClient, directory: string, name?: string) {\n if (!name) return\n const deadline = Date.now() + 5_000\n let agents: Awaited<ReturnType<OpenCodeClient[\"agent\"][\"list\"]>> | undefined\n while (Date.now() < deadline) {\n agents = await sdk.agent.list({ location: { directory } }).catch(() => undefined)\n const agent = agents?.data.find((item) => item.id === name)\n if (agent?.mode === \"subagent\") {\n warning(`agent \"${name}\" is a subagent, not a primary agent. Falling back to default agent`)\n return\n }\n if (agent) return name\n await Bun.sleep(25)\n }\n if (!agents) {\n warning(\"failed to list agents. Falling back to default agent\")\n return\n }\n warning(`agent \"${name}\" not found. Falling back to default agent`)\n}\n\nasync function selectSession(sdk: OpenCodeClient, directory: string, input: MiniCommandInput, preselected?: Session) {\n const selected =\n preselected ??\n (input.session\n ? await sdk.session.get({ sessionID: input.session }).catch(() => undefined)\n : input.continue\n ? await sdk.session\n .list({ directory, parentID: null, limit: 1, order: \"desc\" })\n .then((result) => result.data[0])\n : undefined)\n if (input.session && !selected) fail(\"Session not found\")\n if (!selected) return\n if (!input.fork) return selected\n return sdk.session.fork({ sessionID: selected.id })\n}\n\nasync function createSession(\n sdk: OpenCodeClient,\n directory: string,\n agent: string | undefined,\n model: RunInput[\"model\"],\n variant?: string,\n): Promise<Session> {\n if (model) await waitForCatalogReady({ sdk, directory, model })\n return sdk.session.create({\n agent,\n model: model ? { providerID: model.providerID, id: model.modelID, variant } : undefined,\n location: { directory },\n })\n}\n\nfunction warning(message: string) {\n process.stderr.write(`\\x1b[93m\\x1b[1m!\\x1b[0m ${message}\\n`)\n}\n\nfunction fail(message: string): never {\n process.stderr.write(`\\x1b[91m\\x1b[1mError: \\x1b[0m${message}\\n`)\n process.exit(1)\n}\n",
"import { Service, type Endpoint } from \"@opencode-ai/client/effect/service\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { FSUtil } from \"@opencode-ai/core/fs-util\"\nimport { Model } from \"@opencode-ai/schema/model\"\nimport { open } from \"node:fs/promises\"\nimport path from \"node:path\"\nimport { ServerConnection } from \"../services/server-connection\"\nimport { loadRunAgents, waitForCatalogReady } from \"./catalog.shared\"\nimport { runNonInteractivePrompt } from \"./noninteractive\"\nimport { toolInlineInfo } from \"./tool\"\nimport type { MiniToolPart } from \"./types\"\nimport { UI } from \"./ui\"\n\nexport type RunCommandInput = {\n server: ServerConnection.Resolved\n message: string[]\n continue?: boolean\n session?: string\n fork?: boolean\n model?: string\n agent?: string\n format: \"default\" | \"json\"\n file: string[]\n title?: string\n thinking?: boolean\n auto?: boolean\n}\n\ntype FilePart = {\n url: string\n filename: string\n mime: string\n}\n\ntype Prepared = {\n directory?: string\n message: string\n files: FilePart[]\n}\n\nconst ATTACH_FILE_MAX_BYTES = 10 * 1024 * 1024\n\nexport function runNonInteractive(input: RunCommandInput) {\n return run(input).catch((error) => reportError(input, error instanceof Error ? error.message : String(error)))\n}\n\nasync function run(input: RunCommandInput) {\n if (input.fork && !input.continue && !input.session) fail(\"--fork requires --continue or --session\")\n const root = process.env.PWD ?? process.cwd()\n const directory = localDirectory(root)\n const message = mergeInput(formatMessage(input.message), process.stdin.isTTY ? undefined : await Bun.stdin.text())\n if (!message?.trim()) fail(\"You must provide a message\")\n const files = await Promise.all(input.file.map((file) => prepareFile(file, root)))\n const prepared = { directory, message, files }\n return execute(input, prepared, input.server.endpoint)\n}\n\nasync function execute(input: RunCommandInput, prepared: Prepared, endpoint: Endpoint) {\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const requestedDirectory = prepared.directory ?? (await client.location.get()).directory\n if (!requestedDirectory) fail(\"Failed to resolve server directory\")\n const session = await selectSession(client, requestedDirectory, input)\n const cwd = session?.location.directory ?? requestedDirectory\n const workspace = session?.location.workspaceID\n const explicit = parseRunModel(input.model)\n const explicitModel = explicit?.model\n const variant = explicit?.variant\n const sessionModel = session?.model ? { providerID: session.model.providerID, modelID: session.model.id } : undefined\n const defaultModel =\n !explicitModel && !sessionModel\n ? await client.model\n .default({ location: { directory: cwd, workspace } })\n .then((result) => (result.data ? { providerID: result.data.providerID, modelID: result.data.id } : undefined))\n : undefined\n const model = pickRunModel(explicitModel, variant, sessionModel, defaultModel)\n if (variant && !model) return reportError(input, \"Cannot select a variant before selecting a model\", session?.id)\n if (model) {\n await waitForCatalogReady({ sdk: client, directory: cwd, workspace, model })\n const available = await client.model.list({ location: { directory: cwd, workspace } })\n if (!available.data.some((item) => item.providerID === model.providerID && item.id === model.modelID))\n return reportError(input, `Model unavailable: ${model.providerID}/${model.modelID}`, session?.id)\n }\n const agent = await validateAgent(client, cwd, input.agent)\n const selected =\n session ??\n (await client.session.create({\n agent,\n model: model ? { providerID: model.providerID, id: model.modelID, variant } : undefined,\n location: { directory: cwd },\n }))\n if (!session && input.title !== undefined) {\n await client.session.rename({\n sessionID: selected.id,\n title: input.title || prepared.message.slice(0, 50) + (prepared.message.length > 50 ? \"...\" : \"\"),\n })\n }\n\n await runNonInteractivePrompt({\n client,\n sessionID: selected.id,\n message: prepared.message,\n files: prepared.files,\n agent,\n model,\n variant,\n thinking: input.thinking ?? false,\n format: input.format,\n auto: input.auto ?? false,\n attached: true,\n renderTool,\n renderToolError,\n }).catch((error) => reportError(input, error instanceof Error ? error.message : String(error), selected.id))\n}\n\nexport function mergeInput(message: string | undefined, piped: string | undefined) {\n if (!message) return piped || undefined\n if (!piped) return message\n return message + \"\\n\" + piped\n}\n\nexport function pickRunModel(\n explicit: { providerID: string; modelID: string } | undefined,\n variant: string | undefined,\n session: { providerID: string; modelID: string } | undefined,\n fallback: { providerID: string; modelID: string } | undefined,\n) {\n if (explicit) return explicit\n if (!variant) return\n return session ?? fallback\n}\n\nfunction formatMessage(message: string[]) {\n const value = message.map((part) => (part.includes(\" \") ? `\"${part.replace(/\"/g, '\\\\\"')}\"` : part)).join(\" \")\n return value || undefined\n}\n\nfunction localDirectory(root: string) {\n try {\n process.chdir(root)\n return process.cwd()\n } catch {\n fail(`Failed to change directory to ${root}`)\n }\n}\n\nexport function parseRunModel(value?: string) {\n if (!value) return\n const ref = Model.Ref.parse(value)\n return {\n model: { providerID: ref.providerID, modelID: ref.id },\n variant: ref.variant,\n }\n}\n\nasync function validateAgent(client: OpenCodeClient, directory: string, name?: string) {\n if (!name) return\n const agents = await loadRunAgents(client, directory).catch(() => undefined)\n if (!agents) {\n warning(\"failed to list agents. Falling back to default agent\")\n return\n }\n const agent = agents.find((item) => item.id === name)\n if (!agent) {\n warning(`agent \"${name}\" not found. Falling back to default agent`)\n return\n }\n if (agent.mode === \"subagent\") {\n warning(`agent \"${name}\" is a subagent, not a primary agent. Falling back to default agent`)\n return\n }\n return name\n}\n\nasync function selectSession(client: OpenCodeClient, directory: string, input: RunCommandInput) {\n const selected = input.session\n ? await client.session.get({ sessionID: input.session }).catch(() => undefined)\n : input.continue\n ? await client.session\n .list({ directory, parentID: null, limit: 1, order: \"desc\" })\n .then((result) => result.data[0])\n : undefined\n if (input.session && !selected) fail(\"Session not found\")\n if (!selected || !input.fork) return selected\n return client.session.fork({ sessionID: selected.id })\n}\n\nasync function prepareFile(input: string, directory: string): Promise<FilePart> {\n const file = path.resolve(directory, input)\n const handle = await open(file, \"r\").catch(() => fail(`File not found: ${input}`))\n try {\n const stat = await handle.stat()\n if (!stat.isFile() || stat.size > ATTACH_FILE_MAX_BYTES)\n fail(`Cannot attach a directory, special file, or file larger than 10 MiB: ${input}`)\n const content = Buffer.alloc(Number(stat.size))\n let offset = 0\n while (offset < content.length) {\n const read = await handle.read(content, offset, content.length - offset, offset)\n if (read.bytesRead === 0) break\n offset += read.bytesRead\n }\n const bytes = content.subarray(0, offset)\n const detected = FSUtil.mimeType(file)\n const text = bytes.toString(\"utf8\")\n const mime =\n detected.startsWith(\"image/\") || detected === \"application/pdf\"\n ? detected\n : !isBinaryContent(bytes) && Buffer.from(text, \"utf8\").equals(bytes)\n ? \"text/plain\"\n : detected\n return {\n url: `data:${mime};base64,${bytes.toString(\"base64\")}`,\n filename: path.basename(file),\n mime,\n }\n } finally {\n await handle.close()\n }\n}\n\nfunction isBinaryContent(bytes: Uint8Array) {\n if (bytes.length === 0) return false\n if (bytes.includes(0)) return true\n return bytes.reduce((count, byte) => count + Number(byte < 9 || (byte > 13 && byte < 32)), 0) / bytes.length > 0.3\n}\n\nasync function renderTool(part: MiniToolPart) {\n const info = toolInlineInfo(part)\n if (info.mode === \"block\") {\n UI.empty()\n UI.println(UI.Style.TEXT_NORMAL + info.icon, UI.Style.TEXT_NORMAL + info.title)\n if (info.body?.trim()) UI.println(info.body)\n UI.empty()\n return\n }\n UI.println(\n UI.Style.TEXT_NORMAL + info.icon,\n UI.Style.TEXT_NORMAL + info.title,\n info.description ? UI.Style.TEXT_DIM + info.description + UI.Style.TEXT_NORMAL : \"\",\n )\n}\n\nasync function renderToolError(part: MiniToolPart) {\n const info = toolInlineInfo(part)\n UI.println(UI.Style.TEXT_NORMAL + \"✗\", UI.Style.TEXT_NORMAL + `${info.title} failed`)\n}\n\nfunction warning(message: string) {\n UI.println(UI.Style.TEXT_WARNING_BOLD + \"!\", UI.Style.TEXT_NORMAL, message)\n}\n\nfunction reportError(input: RunCommandInput, message: string, sessionID?: string) {\n process.exitCode = 1\n if (input.format === \"json\") {\n process.stdout.write(\n JSON.stringify({\n type: \"error\",\n timestamp: Date.now(),\n sessionID: sessionID ?? \"\",\n error: { type: \"unknown\", message },\n }) + \"\\n\",\n )\n return\n }\n UI.error(message)\n}\n\nfunction fail(message: string): never {\n throw new Error(message)\n}\n",
"import type { EventSubscribeOutput, OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { SessionMessage } from \"@opencode-ai/schema/session-message\"\nimport { EOL } from \"node:os\"\nimport { UI } from \"./ui\"\nimport type { MiniToolPart } from \"./types\"\n\ntype Model = {\n providerID: string\n modelID: string\n}\n\ntype File = {\n url: string\n filename: string\n mime: string\n}\n\ntype Input = {\n client: OpenCodeClient\n sessionID: string\n message: string\n files: File[]\n agent?: string\n model?: Model\n variant?: string\n thinking: boolean\n format: \"default\" | \"json\"\n auto: boolean\n /** True when the client is attached to a shared server rather than an exclusive in-process one. */\n attached: boolean\n renderTool: (part: MiniToolPart) => Promise<void>\n renderToolError: (part: MiniToolPart) => Promise<void>\n}\n\ntype StartedPart = {\n id: string\n timestamp: number\n}\n\ntype ToolState = StartedPart & {\n assistantMessageID: string\n tool: string\n input: Record<string, unknown>\n raw?: string\n provider?: unknown\n}\n\ntype V2Event = EventSubscribeOutput\ntype FormRequest = Extract<V2Event, { type: \"form.created\" }>[\"data\"][\"form\"]\n\n// MCP elicitations are temporarily owned by the \"global\" sentinel instead of a real\n// session. An exclusive local process may treat them as this run's blockers; an\n// attached client must not cancel input that may belong to another session.\nconst GLOBAL_FORM_SESSION_ID = \"global\"\n\nexport async function runNonInteractivePrompt(input: Input) {\n const controller = new AbortController()\n const stream = input.client.event.subscribe({ signal: controller.signal })[Symbol.asyncIterator]()\n const connected = await stream.next()\n if (connected.done) throw new Error(\"Event stream disconnected before prompt admission\")\n\n const messageID = SessionMessage.ID.create()\n const starts = new Map<string, StartedPart>()\n const tools = new Map<string, ToolState>()\n let submitted = false\n let promoted = false\n let emittedError = false\n let questionRejected = false\n let permissionRejected = false\n let formCancelled = false\n let interrupted = false\n let admission: AbortController | undefined\n\n const emit = (type: string, timestamp: number, data: Record<string, unknown>) => {\n if (input.format !== \"json\") return false\n process.stdout.write(JSON.stringify({ type, timestamp, sessionID: input.sessionID, ...data }) + EOL)\n return true\n }\n\n const writeText = (part: { text: string; [key: string]: unknown }, timestamp: number) => {\n if (emit(\"text\", timestamp, { part })) return\n const text = part.text.trim()\n if (!text) return\n if (!process.stdout.isTTY) {\n process.stdout.write(text + EOL)\n return\n }\n UI.empty()\n UI.println(text)\n UI.empty()\n }\n\n const replyPermission = async (request: { id: string; action: string; resources: ReadonlyArray<string> }) => {\n if (!input.auto) {\n permissionRejected = true\n UI.println(\n UI.Style.TEXT_WARNING_BOLD + \"!\",\n UI.Style.TEXT_NORMAL +\n `permission requested: ${request.action} (${request.resources.join(\", \")}); auto-rejecting`,\n )\n }\n await input.client.permission\n .reply({\n sessionID: input.sessionID,\n requestID: request.id,\n reply: input.auto ? \"once\" : \"reject\",\n })\n .catch(() => {})\n if (!input.auto) {\n await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n }\n\n const rejectQuestion = async (request: { id: string }) => {\n questionRejected = true\n await input.client.question.reject({ sessionID: input.sessionID, requestID: request.id }).catch(() => {})\n }\n\n const cancelForm = async (request: Pick<FormRequest, \"id\" | \"sessionID\">) => {\n formCancelled = true\n await input.client.form.cancel({ sessionID: request.sessionID, formID: request.id }).catch(() => {})\n }\n\n const consume = async () => {\n while (!controller.signal.aborted) {\n const next = await stream.next().catch((error) => {\n if (!emittedError) throw error\n return { done: true as const, value: undefined }\n })\n if (next.done) {\n if (emittedError) return\n throw new Error(\"Event stream disconnected during prompt execution\")\n }\n const event = next.value\n\n if (event.type === \"permission.v2.asked\" && submitted && event.data.sessionID === input.sessionID) {\n await replyPermission(event.data)\n continue\n }\n if (event.type === \"question.v2.asked\" && submitted && event.data.sessionID === input.sessionID) {\n await rejectQuestion(event.data)\n continue\n }\n if (\n event.type === \"form.created\" &&\n submitted &&\n (event.data.form.sessionID === input.sessionID ||\n (!input.attached && event.data.form.sessionID === GLOBAL_FORM_SESSION_ID))\n ) {\n await cancelForm(event.data.form)\n continue\n }\n if (!(\"sessionID\" in event.data) || event.data.sessionID !== input.sessionID) continue\n const time = toMillis(\"created\" in event ? event.created : undefined)\n\n if (event.type === \"session.input.promoted\") {\n if (event.data.inputID === messageID) {\n promoted = true\n continue\n }\n }\n if (\n event.type === \"session.execution.interrupted\" &&\n event.data.reason === \"user\" &&\n (interrupted || permissionRejected || questionRejected || formCancelled)\n ) {\n return\n }\n if (!promoted) continue\n\n if (event.type === \"session.step.started\") {\n const part = {\n id: partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"step-start\",\n snapshot: event.data.snapshot,\n }\n if (!emit(\"step_start\", time, { part }) && input.format !== \"json\") {\n UI.empty()\n UI.println(`> ${event.data.agent} · ${event.data.model.id}`)\n UI.empty()\n }\n continue\n }\n\n if (event.type === \"session.text.started\") {\n starts.set(\"text\", { id: partID(event.id), timestamp: time })\n continue\n }\n if (event.type === \"session.text.ended\") {\n const started = starts.get(\"text\")\n starts.delete(\"text\")\n const part = {\n id: started?.id ?? partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"text\",\n text: event.data.text,\n time: { start: started?.timestamp ?? time, end: time },\n }\n writeText(part, time)\n continue\n }\n\n if (event.type === \"session.reasoning.started\") {\n starts.set(\"reasoning\", { id: partID(event.id), timestamp: time })\n continue\n }\n if (event.type === \"session.reasoning.ended\" && input.thinking) {\n const started = starts.get(\"reasoning\")\n starts.delete(\"reasoning\")\n const part = {\n id: started?.id ?? partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"reasoning\",\n text: event.data.text,\n metadata: event.data.state,\n time: { start: started?.timestamp ?? time, end: time },\n }\n if (emit(\"reasoning\", time, { part })) continue\n const text = part.text.trim()\n if (!text) continue\n const line = `Thinking: ${text}`\n if (!process.stdout.isTTY) {\n process.stdout.write(line + EOL)\n continue\n }\n UI.empty()\n UI.println(`${UI.Style.TEXT_DIM}\\u001b[3m${line}\\u001b[0m${UI.Style.TEXT_NORMAL}`)\n UI.empty()\n continue\n }\n\n if (event.type === \"session.tool.input.started\") {\n tools.set(event.data.callID, {\n id: partID(event.id),\n timestamp: time,\n assistantMessageID: event.data.assistantMessageID,\n tool: event.data.name,\n input: {},\n })\n continue\n }\n if (event.type === \"session.tool.input.ended\") {\n const current = tools.get(event.data.callID)\n if (current) current.raw = event.data.text\n continue\n }\n if (event.type === \"session.tool.called\") {\n const current = tools.get(event.data.callID)\n tools.set(event.data.callID, {\n id: current?.id ?? partID(event.id),\n timestamp: current?.timestamp ?? time,\n assistantMessageID: event.data.assistantMessageID,\n tool: current?.tool ?? \"tool\",\n input: event.data.input,\n raw: current?.raw,\n provider: { executed: event.data.executed, state: event.data.state },\n })\n continue\n }\n if (event.type === \"session.tool.success\") {\n const current = tools.get(event.data.callID) ?? fallbackTool(event)\n const part: MiniToolPart = {\n id: current.id,\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"tool\",\n callID: event.data.callID,\n tool: current.tool,\n state: {\n status: \"completed\",\n input: current.input,\n output: event.data.content\n .filter((item) => item.type === \"text\")\n .map((item) => item.text)\n .join(\"\\n\"),\n title: current.tool,\n metadata: {\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n providerCall: current.provider,\n providerResult: { executed: event.data.executed, state: event.data.resultState },\n rawInput: current.raw,\n },\n time: { start: current.timestamp, end: time },\n },\n }\n tools.delete(event.data.callID)\n if (!emit(\"tool_use\", time, { part })) await input.renderTool(part)\n continue\n }\n if (event.type === \"session.tool.failed\") {\n const current = tools.get(event.data.callID) ?? fallbackTool(event)\n const error = event.data.error.message\n const part: MiniToolPart = {\n id: current.id,\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"tool\",\n callID: event.data.callID,\n tool: current.tool,\n state: {\n status: \"error\",\n input: current.input,\n error,\n metadata: {\n result: event.data.result,\n providerCall: current.provider,\n providerResult: { executed: event.data.executed, state: event.data.resultState },\n rawInput: current.raw,\n },\n time: { start: current.timestamp, end: time },\n },\n }\n tools.delete(event.data.callID)\n if (!emit(\"tool_use\", time, { part })) {\n await input.renderToolError(part)\n UI.error(error)\n }\n continue\n }\n\n if (event.type === \"session.step.ended\") {\n const part = {\n id: partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"step-finish\",\n reason: event.data.finish,\n snapshot: event.data.snapshot,\n cost: event.data.cost,\n tokens: event.data.tokens,\n }\n emit(\"step_finish\", time, { part })\n continue\n }\n if (event.type === \"session.step.failed\") {\n if (interrupted || permissionRejected || questionRejected || formCancelled) continue\n emittedError = true\n process.exitCode = 1\n if (!emit(\"error\", time, { error: event.data.error })) UI.error(event.data.error.message)\n continue\n }\n if (event.type === \"session.execution.failed\") {\n if (!emittedError && !questionRejected && !formCancelled) {\n emittedError = true\n process.exitCode = 1\n if (!emit(\"error\", time, { error: event.data.error })) UI.error(event.data.error.message)\n }\n return\n }\n if (event.type === \"session.execution.interrupted\") {\n if (event.data.reason === \"user\" && interrupted) process.exitCode = 130\n if (event.data.reason !== \"user\" && !emittedError) {\n emittedError = true\n process.exitCode = 1\n const error = { type: \"aborted\" as const, message: `Session interrupted: ${event.data.reason}` }\n if (!emit(\"error\", time, { error })) UI.error(error.message)\n }\n return\n }\n if (event.type === \"session.execution.succeeded\") return\n }\n }\n\n const interrupt = () => {\n if (interrupted) process.exit(130)\n interrupted = true\n process.exitCode = 130\n admission?.abort()\n void input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n process.on(\"SIGINT\", interrupt)\n\n let completed: Promise<void> | undefined\n try {\n if (input.agent) {\n await input.client.session.switchAgent({ sessionID: input.sessionID, agent: input.agent })\n }\n const selected = input.model\n ? { providerID: input.model.providerID, id: input.model.modelID, variant: input.variant }\n : input.variant\n ? await input.client.session\n .get({ sessionID: input.sessionID })\n .then((result) => result.model)\n .then(async (model) => {\n if (model) return { ...model, variant: input.variant }\n const result = await input.client.model.default()\n const fallback = result.data\n return fallback ? { providerID: fallback.providerID, id: fallback.id, variant: input.variant } : undefined\n })\n : undefined\n if (input.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n if (selected) {\n await input.client.session.switchModel({ sessionID: input.sessionID, model: selected })\n }\n\n const prepared = await Promise.all(input.files.map(prepareFile))\n if (interrupted) return\n submitted = true\n completed = consume()\n admission = new AbortController()\n const response = await input.client.session\n .prompt(\n {\n sessionID: input.sessionID,\n id: messageID,\n text: [input.message, ...prepared.flatMap((file) => (file.text ? [file.text] : []))].join(\"\\n\\n\"),\n files: prepared.flatMap((file) => (file.attachment ? [file.attachment] : [])),\n delivery: \"steer\",\n },\n { signal: admission.signal },\n )\n .catch(async (error) => {\n if (interrupted) {\n await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n controller.abort()\n await completed?.catch(() => {})\n if (interrupted || emittedError) return undefined\n throw error\n })\n admission = undefined\n if (!response) return\n if (interrupted) await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n\n const [permissions, questions, forms] = await Promise.all([\n input.client.permission.list({ sessionID: input.sessionID }).catch(() => undefined),\n input.client.question.list({ sessionID: input.sessionID }).catch(() => undefined),\n Promise.all(\n (input.attached ? [input.sessionID] : [input.sessionID, GLOBAL_FORM_SESSION_ID]).map((sessionID) =>\n input.client.form.list({ sessionID }).catch(() => undefined),\n ),\n ),\n ])\n await Promise.all([\n ...(permissions ?? []).map(replyPermission),\n ...(questions ?? []).map(rejectQuestion),\n ...forms.flatMap((response) => response ?? []).map(cancelForm),\n ])\n await completed\n } finally {\n process.off(\"SIGINT\", interrupt)\n controller.abort()\n await stream.return?.(undefined).catch(() => {})\n }\n}\n\nfunction partID(eventID: string) {\n return `prt_${eventID.replace(/^evt_/, \"\")}`\n}\n\nfunction fallbackTool(event: {\n id: string\n created: number\n data: { assistantMessageID: string; callID: string }\n}): ToolState {\n return {\n id: partID(event.id),\n timestamp: toMillis(event.created),\n assistantMessageID: event.data.assistantMessageID,\n tool: \"tool\",\n input: {},\n }\n}\n\nfunction toMillis(value: unknown) {\n if (typeof value === \"number\") return value\n if (typeof value === \"string\") return new Date(value).getTime()\n return Date.now()\n}\n\nasync function prepareFile(file: File) {\n if (file.mime !== \"text/plain\") {\n const uri = file.url.startsWith(\"data:\")\n ? file.url\n : `data:${file.mime};base64,${Buffer.from(await Bun.file(new URL(file.url)).arrayBuffer()).toString(\"base64\")}`\n return { attachment: { uri, mime: file.mime, name: file.filename } }\n }\n const content = file.url.startsWith(\"data:\")\n ? Buffer.from(file.url.slice(file.url.indexOf(\",\") + 1), \"base64\").toString(\"utf8\")\n : await Bun.file(new URL(file.url)).text()\n return { text: `<file name=\"${file.filename}\">\\n${content}\\n</file>` }\n}\n",
"import { EOL } from \"node:os\"\n\nexport const Style = {\n TEXT_DIM: \"\\x1b[90m\",\n TEXT_NORMAL: \"\\x1b[0m\",\n TEXT_WARNING_BOLD: \"\\x1b[93m\\x1b[1m\",\n TEXT_DANGER_BOLD: \"\\x1b[91m\\x1b[1m\",\n}\n\nexport function println(...message: string[]) {\n process.stderr.write(message.join(\" \") + EOL)\n}\n\nlet blank = false\n\nexport function empty() {\n if (blank) return\n println(Style.TEXT_NORMAL)\n blank = true\n}\n\nexport function error(message: string) {\n if (message.startsWith(\"Error: \")) message = message.slice(\"Error: \".length)\n println(Style.TEXT_DANGER_BOLD + \"Error: \" + Style.TEXT_NORMAL + message)\n}\n\nexport * as UI from \"./ui\"\n"
],
"mappings": "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",
"debugId": "9F855CE6CA039D0464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260602182828_add_project_directories.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260602182828_add_project_directories\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`project_directory\\` (\n \\`project_id\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`project_directory_pk\\` PRIMARY KEY(\\`project_id\\`, \\`directory\\`),\n CONSTRAINT \\`fk_project_directory_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+bASb,EACF,EAEL",
"debugId": "2FDC086806E03F1564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260622170816_reset_v2_session_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622170816_reset_v2_session_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_context_epoch\\`;`)\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL WHERE \\`workspace_id\\` IS NOT NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sCAAwC,EACtD,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,8EAAoF,EAClG,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "1C1120DE65F2A30764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+provider@3.0.8/node_modules/@ai-sdk/provider/dist/index.mjs"],
"sourcesContent": [
"// src/errors/ai-sdk-error.ts\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name14,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name14;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker15) {\n const markerSymbol = Symbol.for(marker15);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\n\n// src/errors/api-call-error.ts\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\n\n// src/errors/empty-response-body-error.ts\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\n\n// src/errors/get-error-message.ts\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\n\n// src/errors/invalid-argument-error.ts\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\n\n// src/errors/invalid-prompt-error.ts\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5, _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\n\n// src/errors/invalid-response-data-error.ts\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\n\n// src/errors/json-parse-error.ts\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\n\n// src/errors/load-api-key-error.ts\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8, _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\n\n// src/errors/load-setting-error.ts\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9, _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\n\n// src/errors/no-content-generated-error.ts\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10, _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\n\n// src/errors/no-such-model-error.ts\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11, _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\n\n// src/errors/too-many-embedding-values-for-call-error.ts\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12, _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\n\n// src/errors/type-validation-error.ts\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13, _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a15, _b15, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a15 = cause.context) == null ? void 0 : _a15.field) === (context == null ? void 0 : context.field) && ((_b15 = cause.context) == null ? void 0 : _b15.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\n\n// src/errors/unsupported-functionality-error.ts\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14, _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// src/json-value/is-json.ts\nfunction isJSONValue(value) {\n if (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n }\n return false;\n}\nfunction isJSONArray(value) {\n return Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n return value != null && typeof value === \"object\" && Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n}\nexport {\n AISDKError,\n APICallError,\n EmptyResponseBodyError,\n InvalidArgumentError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n LoadSettingError,\n NoContentGeneratedError,\n NoSuchModelError,\n TooManyEmbeddingValuesForCallError,\n TypeValidationError,\n UnsupportedFunctionalityError,\n getErrorMessage,\n isJSONArray,\n isJSONObject,\n isJSONValue\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "A918759CFDE8BA3564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260611035744_credential.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260611035744_credential\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`credential\\` (\n \\`id\\` text PRIMARY KEY,\n \\`connector_id\\` text NOT NULL,\n \\`method_id\\` text NOT NULL,\n \\`label\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`active\\` integer DEFAULT false NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`credential_connector_active_idx\\` ON \\`credential\\` (\\`connector_id\\`) WHERE \"credential\".\"active\" = 1;`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,4BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2XAWb,EACD,MAAO,EAAG,IACR,yHACF,EACD,EAEL",
"debugId": "642432E3E59483D264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260309230000_move_org_to_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260309230000_move_org_to_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`account_state\\` ADD \\`active_org_id\\` text;`)\n yield* tx.run(\n `UPDATE \\`account_state\\` SET \\`active_org_id\\` = (SELECT \\`selected_org_id\\` FROM \\`account\\` WHERE \\`account\\`.\\`id\\` = \\`account_state\\`.\\`active_account_id\\`);`,\n )\n yield* tx.run(`ALTER TABLE \\`account\\` DROP COLUMN \\`selected_org_id\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,mCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,uDAA2D,EACzE,MAAO,EAAG,IACR,oJACF,EACA,MAAO,EAAG,IAAI,sDAA0D,EACzE,EAEL",
"debugId": "D9473BD04974FFF264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/ai-gateway-provider@3.1.2+a6631614dda8d488/node_modules/ai-gateway-provider/dist/index.mjs"],
"sourcesContent": [
"var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/auth.ts\nvar CF_TEMP_TOKEN = \"CF_TEMP_TOKEN\";\n\n// src/providers.ts\nvar providers = [\n {\n name: \"openai\",\n regex: /^https:\\/\\/api\\.openai\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.openai\\.com\\//, \"\")\n },\n {\n name: \"deepseek\",\n regex: /^https:\\/\\/api\\.deepseek\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.deepseek\\.com\\//, \"\")\n },\n {\n name: \"anthropic\",\n regex: /^https:\\/\\/api\\.anthropic\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.anthropic\\.com\\//, \"\"),\n headerKey: \"x-api-key\"\n },\n {\n name: \"google-ai-studio\",\n regex: /^https:\\/\\/generativelanguage\\.googleapis\\.com\\//,\n headerKey: \"x-goog-api-key\",\n transformEndpoint: (url) => url.replace(/^https:\\/\\/generativelanguage\\.googleapis\\.com\\//, \"\")\n },\n {\n name: \"google-vertex-ai\",\n regex: /aiplatform\\.googleapis\\.com/,\n transformEndpoint: (url) => url.replace(/https:\\/\\/(.*)[-]?aiplatform\\.googleapis\\.com\\//, \"\")\n },\n {\n name: \"grok\",\n regex: /^https:\\/\\/api\\.x\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.x\\.ai\\//, \"\")\n },\n {\n name: \"mistral\",\n regex: /^https:\\/\\/api\\.mistral\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.mistral\\.ai\\//, \"\")\n },\n {\n name: \"perplexity-ai\",\n regex: /^https:\\/\\/api\\.perplexity\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.perplexity\\.ai\\//, \"\")\n },\n {\n name: \"replicate\",\n regex: /^https:\\/\\/api\\.replicate\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.replicate\\.com\\//, \"\")\n },\n {\n name: \"groq\",\n regex: /^https:\\/\\/api\\.groq\\.com\\/openai\\/v1\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.groq\\.com\\/openai\\/v1\\//, \"\")\n },\n {\n name: \"google-vertex-ai\",\n regex: /^https:\\/\\/(?:[a-z0-9]+-)*aiplatform\\.googleapis\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/(?:[a-z0-9]+-)*aiplatform\\.googleapis\\.com\\//, \"\"),\n headerKey: \"authorization\"\n },\n {\n name: \"azure-openai\",\n regex: /^https:\\/\\/(?<resource>[^.]+)\\.openai\\.azure\\.com\\/openai\\/deployments\\/(?<deployment>[^/]+)\\/(?<rest>.*)$/,\n transformEndpoint: (url) => {\n const match = url.match(\n /^https:\\/\\/(?<resource>[^.]+)\\.openai\\.azure\\.com\\/openai\\/deployments\\/(?<deployment>[^/]+)\\/(?<rest>.*)$/\n );\n if (!match || !match.groups) return url;\n const { resource, deployment, rest } = match.groups;\n if (!resource || !deployment || !rest) {\n throw new Error(\"Failed to parse Azure OpenAI endpoint URL.\");\n }\n return `${resource}/${deployment}/${rest}`;\n },\n headerKey: \"api-key\"\n },\n {\n name: \"openrouter\",\n regex: /^https:\\/\\/openrouter\\.ai\\/api\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/openrouter\\.ai\\/api\\//, \"\")\n },\n {\n name: \"compat\",\n regex: /^https:\\/\\/gateway\\.ai\\.cloudflare\\.com\\/v1\\/compat\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/gateway\\.ai\\.cloudflare\\.com\\/v1\\/compat\\//, \"\")\n }\n];\n\n// src/index.ts\nvar AiGatewayInternalFetchError = class extends Error {\n};\nvar AiGatewayDoesNotExist = class extends Error {\n};\nvar AiGatewayUnauthorizedError = class extends Error {\n};\nasync function streamToObject(stream) {\n const response = new Response(stream);\n return await response.json();\n}\nvar AiGatewayChatLanguageModel = class {\n constructor(models, config) {\n __publicField(this, \"specificationVersion\", \"v3\");\n __publicField(this, \"defaultObjectGenerationMode\", \"json\");\n __publicField(this, \"supportedUrls\", {\n // No URLS are supported for this language model\n });\n __publicField(this, \"models\");\n __publicField(this, \"config\");\n this.models = models;\n this.config = config;\n }\n get modelId() {\n if (!this.models[0]) {\n throw new Error(\"models cannot be empty array\");\n }\n return this.models[0].modelId;\n }\n get provider() {\n if (!this.models[0]) {\n throw new Error(\"models cannot be empty array\");\n }\n return this.models[0].provider;\n }\n async processModelRequest(options, modelMethod) {\n const requests = [];\n for (const model of this.models) {\n if (!model.config || !Object.keys(model.config).includes(\"fetch\")) {\n throw new Error(\n `Sorry, but provider \"${model.provider}\" is currently not supported, please open a issue in the github repo!`\n );\n }\n model.config.fetch = (url, request) => {\n requests.push({\n modelProvider: model.provider,\n request,\n url\n });\n throw new AiGatewayInternalFetchError(\"Stopping provider execution...\");\n };\n try {\n await model[modelMethod](options);\n } catch (e) {\n if (!(e instanceof AiGatewayInternalFetchError)) {\n throw e;\n }\n }\n }\n const body = await Promise.all(\n requests.map(async (req) => {\n let providerConfig = null;\n for (const provider of providers) {\n if (provider.regex.test(req.url)) {\n providerConfig = provider;\n }\n }\n if (!providerConfig) {\n throw new Error(\n `Sorry, but provider \"${req.modelProvider}\" is currently not supported, please open a issue in the github repo!`\n );\n }\n if (!req.request.body) {\n throw new Error(\"Ai Gateway provider received an unexpected empty body\");\n }\n const authHeader = providerConfig.headerKey ?? \"authorization\";\n const authValue = \"get\" in req.request.headers ? req.request.headers.get(authHeader) : req.request.headers[authHeader];\n if (authValue?.indexOf(CF_TEMP_TOKEN) !== -1) {\n if (\"delete\" in req.request.headers) {\n req.request.headers.delete(authHeader);\n } else {\n delete req.request.headers[authHeader];\n }\n }\n return {\n endpoint: providerConfig.transformEndpoint(req.url),\n headers: req.request.headers,\n provider: providerConfig.name,\n query: await streamToObject(req.request.body)\n };\n })\n );\n const headers = parseAiGatewayOptions(this.config.options ?? {});\n let resp;\n if (\"binding\" in this.config) {\n const updatedBody = body.map((obj) => ({\n ...obj,\n headers: {\n ...obj.headers ?? {},\n ...Object.fromEntries(headers.entries())\n }\n }));\n resp = await this.config.binding.run(updatedBody, {\n signal: options.abortSignal\n });\n } else {\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"cf-aig-authorization\", `Bearer ${this.config.apiKey}`);\n resp = await fetch(\n `https://gateway.ai.cloudflare.com/v1/${this.config.accountId}/${this.config.gateway}`,\n {\n body: JSON.stringify(body),\n headers,\n method: \"POST\",\n signal: options.abortSignal\n }\n );\n }\n if (resp.status === 400) {\n const cloneResp = resp.clone();\n const result = await cloneResp.json();\n if (result.success === false && result.error && result.error.length > 0 && result.error[0]?.code === 2001) {\n throw new AiGatewayDoesNotExist(\"This AI gateway does not exist\");\n }\n } else if (resp.status === 401) {\n const cloneResp = resp.clone();\n const result = await cloneResp.json();\n if (result.success === false && result.error && result.error.length > 0 && result.error[0]?.code === 2009) {\n throw new AiGatewayUnauthorizedError(\n \"Your AI Gateway has authentication active, but you didn't provide a valid apiKey\"\n );\n }\n }\n const step = Number.parseInt(resp.headers.get(\"cf-aig-step\") ?? \"0\", 10);\n if (!this.models[step]) {\n throw new Error(\"Unexpected AI Gateway Error\");\n }\n this.models[step].config = {\n ...this.models[step].config,\n fetch: (_url, _req) => resp\n };\n return this.models[step][modelMethod](options);\n }\n async doStream(options) {\n return this.processModelRequest(options, \"doStream\");\n }\n async doGenerate(options) {\n return this.processModelRequest(options, \"doGenerate\");\n }\n};\nfunction createAiGateway(options) {\n const createChatModel = (models) => {\n return new AiGatewayChatLanguageModel(Array.isArray(models) ? models : [models], options);\n };\n const provider = (models) => createChatModel(models);\n provider.chat = createChatModel;\n return provider;\n}\nfunction parseAiGatewayOptions(options) {\n const headers = new Headers();\n if (options.skipCache === true) {\n headers.set(\"cf-skip-cache\", \"true\");\n }\n if (options.cacheTtl) {\n headers.set(\"cf-cache-ttl\", options.cacheTtl.toString());\n }\n if (options.metadata) {\n headers.set(\"cf-aig-metadata\", JSON.stringify(options.metadata));\n }\n if (options.cacheKey) {\n headers.set(\"cf-aig-cache-key\", options.cacheKey);\n }\n if (options.collectLog !== void 0) {\n headers.set(\"cf-aig-collect-log\", options.collectLog === true ? \"true\" : \"false\");\n }\n if (options.eventId !== void 0) {\n headers.set(\"cf-aig-event-id\", options.eventId);\n }\n if (options.requestTimeoutMs !== void 0) {\n headers.set(\"cf-aig-request-timeout\", options.requestTimeoutMs.toString());\n }\n if (options.retries !== void 0) {\n if (options.retries.maxAttempts !== void 0) {\n headers.set(\"cf-aig-max-attempts\", options.retries.maxAttempts.toString());\n }\n if (options.retries.retryDelayMs !== void 0) {\n headers.set(\"cf-aig-retry-delay\", options.retries.retryDelayMs.toString());\n }\n if (options.retries.backoff !== void 0) {\n headers.set(\"cf-aig-backoff\", options.retries.backoff);\n }\n }\n return headers;\n}\nexport {\n AiGatewayChatLanguageModel,\n AiGatewayDoesNotExist,\n AiGatewayInternalFetchError,\n AiGatewayUnauthorizedError,\n createAiGateway,\n parseAiGatewayOptions\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "4A92B768FEBA117B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/env.ts"],
"sourcesContent": [
"import { Config } from \"effect\"\n\n// Every environment variable the CLI reads, in one place. Consumers yield\n// these instead of touching process.env so the full surface stays visible,\n// typed, and redacted where secret.\n\n// The opencode server password: sent by clients connecting to an explicit\n// --server, and adopted by a manually run or standalone server. The legacy\n// name is still honored.\nexport const password = Config.redacted(\"OPENCODE_PASSWORD\").pipe(\n Config.orElse(() => Config.redacted(\"OPENCODE_SERVER_PASSWORD\")),\n Config.withDefault(undefined),\n)\n\nexport * as Env from \"./env\"\n"
],
"mappings": ";4IASO,SAAM,EAAW,EAAO,SAAS,mBAAmB,EAAE,KAC3D,EAAO,OAAO,IAAM,EAAO,SAAS,0BAA0B,CAAC,EAC/D,EAAO,YAAY,MAAS,CAC9B",
"debugId": "6B81138EDC94D71864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/tool.ts"],
"sourcesContent": [
"// Per-tool display rules shared across `opencode run` output paths.\n//\n// Each known tool (shell, edit, write, task, etc.) has a ToolRule that controls\n// five display hooks:\n//\n// view → visibility policy for progress/final scrollback entries and\n// whether completed finals can render as structured snapshots\n// run → inline summary for the non-interactive `run` command output\n// scroll → text formatting for start/progress/final scrollback entries\n// permission → display info for the permission UI (icon, title, diff)\n// snap → structured snapshot (code block, diff, task card) for rich\n// scrollback entries\n//\n// Tools not in TOOL_RULES get fallback formatting.\nimport os from \"os\"\nimport path from \"path\"\nimport stripAnsi from \"strip-ansi\"\nimport { LANGUAGE_EXTENSIONS } from \"@opencode-ai/tui/util/filetype\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport type { MiniToolPart, RunEntryBody, StreamCommit, ToolSnapshot } from \"./types\"\n\nexport type ToolView = {\n output: boolean\n final: boolean\n snap?: \"code\" | \"diff\" | \"structured\"\n}\n\nexport type ToolPhase = \"start\" | \"progress\" | \"final\"\n\nexport type ToolDict = Record<string, unknown>\n\ntype PatchFile = {\n type?: string\n relativePath?: string\n filePath?: string\n movePath?: string\n patch?: string\n deletions?: number\n}\n\ntype ToolInput = ToolDict & {\n path?: string\n pattern?: string\n filePath?: string\n filepath?: string\n url?: string\n query?: string\n subagent_type?: string\n description?: string\n name?: string\n operation?: string\n line?: number\n character?: number\n content?: string\n command?: string\n workdir?: string\n questions?: Array<{ question?: string }>\n diff?: string\n}\n\ntype ToolMetadata = ToolDict & {\n count?: number\n matches?: number\n diff?: string\n provider?: unknown\n files?: PatchFile[]\n answers?: string[][]\n exit?: number\n}\n\nexport type ToolFrame = {\n raw: string\n name: string\n input: ToolDict\n meta: ToolDict\n state: ToolDict\n status: string\n error: string\n}\n\nexport type ToolInline = {\n icon: string\n title: string\n description?: string\n mode?: \"inline\" | \"block\"\n body?: string\n}\n\nexport type ToolPermissionInfo = {\n icon: string\n title: string\n lines: string[]\n diff?: string\n file?: string\n}\n\nexport type ToolProps = {\n input: ToolInput\n metadata: ToolMetadata\n frame: ToolFrame\n}\n\ntype ToolPermissionProps = {\n input: ToolInput\n metadata: ToolMetadata\n patterns: string[]\n}\n\ntype ToolPermissionCtx = {\n input: ToolDict\n meta: ToolDict\n patterns: string[]\n}\n\ntype ToolName =\n | \"invalid\"\n | \"shell\"\n | \"write\"\n | \"edit\"\n | \"patch\"\n | \"batch\"\n | \"task\"\n | \"question\"\n | \"read\"\n | \"glob\"\n | \"grep\"\n | \"list\"\n | \"lsp\"\n | \"webfetch\"\n | \"websearch\"\n | \"skill\"\n | \"plan_exit\"\n\ntype ToolRule = {\n view: ToolView\n run: (props: ToolProps) => ToolInline\n scroll?: Partial<Record<ToolPhase, (props: ToolProps) => string>>\n permission?: (props: ToolPermissionProps) => ToolPermissionInfo\n snap?: (props: ToolProps) => ToolSnapshot | undefined\n}\n\ntype ToolRegistry = Record<ToolName, ToolRule>\n\ntype AnyToolRule = ToolRule\n\nfunction dict(v: unknown): ToolDict {\n if (!v || typeof v !== \"object\" || Array.isArray(v)) {\n return {}\n }\n\n return { ...v }\n}\n\nfunction props(frame: ToolFrame): ToolProps {\n return {\n input: frame.input,\n metadata: frame.meta,\n frame,\n }\n}\n\nfunction permission(ctx: ToolPermissionCtx): ToolPermissionProps {\n return {\n input: ctx.input,\n metadata: ctx.meta,\n patterns: ctx.patterns,\n }\n}\n\nfunction webSearchProviderLabel(provider: unknown) {\n if (provider === \"parallel\") return \"Parallel Web Search\"\n if (provider === \"exa\") return \"Exa Web Search\"\n return \"Web Search\"\n}\n\nfunction text(v: unknown): string {\n return typeof v === \"string\" ? v : \"\"\n}\n\nfunction num(v: unknown): number | undefined {\n if (typeof v !== \"number\" || !Number.isFinite(v)) {\n return undefined\n }\n\n return v\n}\n\nfunction list<T>(v: unknown): T[] {\n if (!Array.isArray(v)) {\n return []\n }\n\n return v\n}\n\nfunction info(data: ToolDict, skip: string[] = []): string {\n const list = Object.entries(data).filter(([key, val]) => {\n if (skip.includes(key)) {\n return false\n }\n\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"boolean\"\n })\n\n if (list.length === 0) {\n return \"\"\n }\n\n return `[${list.map(([key, val]) => `${key}=${String(val)}`).join(\", \")}]`\n}\n\nfunction span(state: ToolDict): string {\n const time = dict(state.time)\n const start = num(time.start)\n const end = num(time.end)\n if (start === undefined || end === undefined || end <= start) {\n return \"\"\n }\n\n return Locale.duration(end - start)\n}\n\nfunction fail(ctx: ToolFrame): string {\n const error = toolError(ctx)\n if (error) {\n return `✖ ${ctx.name} failed: ${error}`\n }\n\n return `✖ ${ctx.name} failed`\n}\n\nfunction toolError(ctx: ToolFrame): string {\n if (ctx.error) {\n return ctx.error\n }\n\n const state = text(ctx.state.error).trim()\n if (state) {\n return state\n }\n\n return ctx.raw.trim()\n}\n\nfunction fallbackStart(ctx: ToolFrame): string {\n const extra = info(ctx.input)\n if (!extra) {\n return `⚙ ${ctx.name}`\n }\n\n return `⚙ ${ctx.name} ${extra}`\n}\n\nfunction fallbackFinal(ctx: ToolFrame): string {\n if (ctx.status === \"error\") {\n return fail(ctx)\n }\n\n if (ctx.status && ctx.status !== \"completed\") {\n return ctx.raw.trim()\n }\n\n const time = span(ctx.state)\n if (!time) {\n return `${ctx.name} completed`\n }\n\n return `${ctx.name} completed · ${time}`\n}\n\nexport function toolPath(input?: string, opts: { home?: boolean } = {}): string {\n if (!input) {\n return \"\"\n }\n\n const cwd = process.cwd()\n const home = os.homedir()\n const abs = path.isAbsolute(input) ? input : path.resolve(cwd, input)\n const rel = path.relative(cwd, abs)\n\n if (!rel) {\n return \".\"\n }\n\n if (!rel.startsWith(\"..\")) {\n return rel.replaceAll(\"\\\\\", \"/\")\n }\n\n if (opts.home && home && (abs === home || abs.startsWith(home + path.sep))) {\n return abs.replace(home, \"~\").replaceAll(\"\\\\\", \"/\")\n }\n\n return abs.replaceAll(\"\\\\\", \"/\")\n}\n\nfunction fallbackInline(ctx: ToolFrame): ToolInline {\n const title = text(ctx.state.title) || (Object.keys(ctx.input).length > 0 ? JSON.stringify(ctx.input) : \"Unknown\")\n\n return {\n icon: \"⚙\",\n title: `${ctx.name} ${title}`,\n }\n}\n\nfunction count(n: number, label: string): string {\n return `${n} ${label}${n === 1 ? \"\" : \"es\"}`\n}\n\nfunction runGlob(p: ToolProps): ToolInline {\n const root = p.input.path ?? \"\"\n const title = `Glob \"${p.input.pattern ?? \"\"}\"`\n const suffix = root ? `in ${toolPath(root)}` : \"\"\n const matches = p.metadata.count\n const description = matches === undefined ? suffix : `${suffix}${suffix ? \" · \" : \"\"}${count(matches, \"match\")}`\n return {\n icon: \"✱\",\n title,\n ...(description && { description }),\n }\n}\n\nfunction runGrep(p: ToolProps): ToolInline {\n const root = p.input.path ?? \"\"\n const title = `Grep \"${p.input.pattern ?? \"\"}\"`\n const suffix = root ? `in ${toolPath(root)}` : \"\"\n const matches = p.metadata.matches\n const description = matches === undefined ? suffix : `${suffix}${suffix ? \" · \" : \"\"}${count(matches, \"match\")}`\n return {\n icon: \"✱\",\n title,\n ...(description && { description }),\n }\n}\n\nfunction runList(p: ToolProps): ToolInline {\n const dir = text(dict(p.input).path)\n return {\n icon: \"→\",\n title: dir ? `List ${toolPath(dir)}` : \"List\",\n }\n}\n\nfunction runRead(p: ToolProps): ToolInline {\n const file = toolPath(p.input.filePath)\n const description = info(p.frame.input, [\"filePath\"]) || undefined\n return {\n icon: \"→\",\n title: `Read ${file}`,\n ...(description && { description }),\n }\n}\n\nfunction runWrite(p: ToolProps): ToolInline {\n return {\n icon: \"←\",\n title: `Write ${toolPath(p.input.filePath)}`,\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction runWebfetch(p: ToolProps): ToolInline {\n const url = p.input.url ?? \"\"\n return {\n icon: \"%\",\n title: url ? `WebFetch ${url}` : \"WebFetch\",\n }\n}\n\nfunction runEdit(p: ToolProps): ToolInline {\n return {\n icon: \"←\",\n title: `Edit ${toolPath(p.input.filePath)}`,\n mode: \"block\",\n body: p.metadata.diff,\n }\n}\n\nfunction runWebSearch(p: ToolProps): ToolInline {\n const title = webSearchProviderLabel(p.metadata.provider)\n return {\n icon: \"◈\",\n title: p.input.query ? `${title} \"${p.input.query}\"` : title,\n }\n}\n\nfunction runTask(p: ToolProps): ToolInline {\n const kind = Locale.titlecase(p.input.subagent_type || \"unknown\")\n const desc = p.input.description\n const icon = p.frame.status === \"error\" ? \"✗\" : p.frame.status === \"running\" ? \"•\" : \"✓\"\n return {\n icon,\n title: desc || `${kind} Task`,\n description: desc ? `${kind} Agent` : undefined,\n }\n}\n\nfunction runSkill(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: `Skill \"${p.input.name ?? \"\"}\"`,\n }\n}\n\nfunction runPatch(p: ToolProps): ToolInline {\n const files = p.metadata.files?.length ?? 0\n if (files === 0) {\n return {\n icon: \"%\",\n title: \"Patch\",\n }\n }\n\n return {\n icon: \"%\",\n title: `Patch ${files} file${files === 1 ? \"\" : \"s\"}`,\n }\n}\n\nfunction runQuestion(p: ToolProps): ToolInline {\n const total = list(p.frame.input.questions).length\n return {\n icon: \"→\",\n title: `Asked ${total} question${total === 1 ? \"\" : \"s\"}`,\n }\n}\n\nfunction runInvalid(p: ToolProps): ToolInline {\n return {\n icon: \"✗\",\n title: text(p.frame.state.title) || \"Invalid Tool\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction runBatch(p: ToolProps): ToolInline {\n const calls = list(dict(p.input).tool_calls).length\n return {\n icon: \"#\",\n title: text(p.frame.state.title) || (calls > 0 ? `Batch ${calls} tool${calls === 1 ? \"\" : \"s\"}` : \"Batch\"),\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction lspTitle(\n input: {\n operation?: string\n filePath?: string\n line?: number\n character?: number\n },\n opts: { home?: boolean } = {},\n): string {\n const op = input.operation || \"request\"\n const file = input.filePath ? toolPath(input.filePath, opts) : \"\"\n const line = typeof input.line === \"number\" ? input.line : undefined\n const char = typeof input.character === \"number\" ? input.character : undefined\n const pos = line !== undefined && char !== undefined ? `:${line}:${char}` : \"\"\n if (!file) {\n return `LSP ${op}`\n }\n\n return `LSP ${op} ${file}${pos}`\n}\n\nfunction runLsp(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: text(p.frame.state.title) || lspTitle(p.input),\n }\n}\n\nfunction runPlanExit(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: text(p.frame.state.title) || \"Switching to build agent\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction patchTitle(file: PatchFile): string {\n const rel = file.relativePath\n const from = file.filePath\n if (file.type === \"add\") {\n return `# Created ${rel || toolPath(from)}`\n }\n if (file.type === \"delete\") {\n return `# Deleted ${rel || toolPath(from)}`\n }\n if (file.type === \"move\") {\n return `# Moved ${toolPath(from)} -> ${rel || toolPath(file.movePath)}`\n }\n\n return `# Patched ${rel || toolPath(from)}`\n}\n\nfunction snapWrite(p: ToolProps): ToolSnapshot | undefined {\n const file = p.input.filePath || \"\"\n const content = p.input.content || \"\"\n if (!file && !content) {\n return undefined\n }\n\n return {\n kind: \"code\",\n title: `# Wrote ${toolPath(file)}`,\n content,\n file,\n }\n}\n\nfunction snapEdit(p: ToolProps): ToolSnapshot | undefined {\n const file = p.input.filePath || \"\"\n const diff = p.metadata.diff || \"\"\n if (!file || !diff.trim()) {\n return undefined\n }\n\n return {\n kind: \"diff\",\n items: [\n {\n title: `# Edited ${toolPath(file)}`,\n diff,\n file,\n },\n ],\n }\n}\n\nfunction snapPatch(p: ToolProps): ToolSnapshot | undefined {\n const files = list<PatchFile>(p.frame.meta.files)\n if (files.length === 0) {\n return undefined\n }\n\n const items = files.flatMap((file) => {\n if (!file || typeof file !== \"object\") {\n return []\n }\n\n const diff = typeof file.patch === \"string\" ? file.patch : \"\"\n if (!diff.trim()) {\n return []\n }\n\n const name = file.movePath || file.filePath || file.relativePath\n return [\n {\n title: patchTitle(file),\n diff,\n file: name,\n deletions: typeof file.deletions === \"number\" ? file.deletions : 0,\n },\n ]\n })\n\n if (items.length === 0) {\n return undefined\n }\n\n return {\n kind: \"diff\",\n items,\n }\n}\n\nfunction snapTask(p: ToolProps): ToolSnapshot {\n const kind = Locale.titlecase(p.input.subagent_type || \"general\")\n const desc = p.input.description\n const title = text(p.frame.state.title)\n const rows = [desc || title].filter((item): item is string => Boolean(item))\n\n return {\n kind: \"task\",\n title: `# ${kind} Task`,\n rows,\n tail: \"\",\n }\n}\n\nfunction snapQuestion(p: ToolProps): ToolSnapshot {\n const answers = list<unknown[]>(p.frame.meta.answers)\n const items = list<{ question?: string }>(p.frame.input.questions).map((item, i) => {\n const answer = list<string>(answers[i]).filter((entry) => typeof entry === \"string\")\n return {\n question: item.question || `Question ${i + 1}`,\n answer: answer.length > 0 ? answer.join(\", \") : \"(no answer)\",\n }\n })\n\n return {\n kind: \"question\",\n items,\n tail: \"\",\n }\n}\n\nfunction scrollBashStart(p: ToolProps): string {\n const cmd = p.input.command ?? \"\"\n const wd = p.input.workdir ?? \"\"\n const formatted = wd && wd !== \".\" ? toolPath(wd) : \"\"\n const dir = formatted === \".\" ? \"\" : formatted\n if (cmd && !dir) {\n return `$ ${cmd}`\n }\n\n if (!cmd) {\n return dir ? `# Running in ${dir}` : \"\"\n }\n\n return `# Running in ${dir}\\n$ ${cmd}`\n}\n\nfunction scrollBashProgress(p: ToolProps): string {\n const out = stripAnsi(p.frame.raw)\n const cmd = (p.input.command ?? \"\").trim()\n const fmt = (text: string) => {\n const body = text.replace(/^\\n+/, \"\").replace(/\\n+$/, \"\")\n return body ? `\\n${body}` : \"\"\n }\n\n if (!cmd) {\n return out.replace(/\\n+$/, \"\")\n }\n\n const wdRaw = (p.input.workdir ?? \"\").trim()\n const wd = wdRaw ? toolPath(wdRaw) : \"\"\n const lines = out.split(\"\\n\")\n const first = (lines[0] || \"\").trim()\n const second = (lines[1] || \"\").trim()\n\n if (wd && (first === wd || first === wdRaw) && second === cmd) {\n return fmt(lines.slice(2).join(\"\\n\"))\n }\n\n if (first === cmd || first === `$ ${cmd}`) {\n return fmt(lines.slice(1).join(\"\\n\"))\n }\n\n if (wd && (first === `${wd} ${cmd}` || first === `${wdRaw} ${cmd}`)) {\n return fmt(lines.slice(1).join(\"\\n\"))\n }\n\n return fmt(out)\n}\n\nfunction scrollShellFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const code = p.metadata.exit ?? num(p.frame.meta.exitCode) ?? num(p.frame.meta.exit_code)\n const time = span(p.frame.state)\n if (code === undefined) {\n if (!time) {\n return \"shell completed\"\n }\n\n return `shell completed · ${time}`\n }\n\n return `shell completed (exit ${code})${time ? ` · ${time}` : \"\"}`\n}\n\nfunction scrollReadStart(p: ToolProps): string {\n const file = toolPath(p.input.filePath)\n const extra = info(p.frame.input, [\"filePath\"])\n const tail = extra ? ` ${extra}` : \"\"\n return `→ Read ${file}${tail}`.trim()\n}\n\nfunction scrollWriteStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollEditStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollPatchStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction patchLine(file: PatchFile): string {\n const type = file.type\n const rel = file.relativePath\n const from = file.filePath\n\n if (type === \"add\") {\n return `+ Created ${rel || toolPath(from)}`\n }\n\n if (type === \"delete\") {\n return `- Deleted ${rel || toolPath(from)}`\n }\n\n if (type === \"move\") {\n return `→ Moved ${toolPath(from)} → ${rel || toolPath(file.movePath)}`\n }\n\n return `~ Patched ${rel || toolPath(from)}`\n}\n\nfunction scrollPatchFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const files = list<PatchFile>(p.frame.meta.files)\n if (files.length === 0) {\n const time = span(p.frame.state)\n if (!time) {\n return \"patch\"\n }\n\n return `patch · ${time}`\n }\n\n const show_updates = !files.some((file) => file?.type && file.type !== \"update\")\n const shown = files.filter((file) => show_updates || file.type !== \"update\")\n const rows = shown.slice(0, 6).map(patchLine)\n if (shown.length > 6) {\n rows.push(`... and ${shown.length - 6} more`)\n }\n\n if (rows.length > 0) {\n return rows.join(\"\\n\")\n }\n\n return patchLine(files[0]!)\n}\n\nfunction scrollTaskStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction taskResult(output: string): string | undefined {\n if (!output.trim()) {\n return undefined\n }\n\n const match = output.match(/<task_result>\\s*([\\s\\S]*?)\\s*<\\/task_result>/)\n if (match) {\n return match[1].trim() || undefined\n }\n\n const next = output\n .split(\"\\n\")\n .filter((line) => !line.startsWith(\"task_id:\"))\n .join(\"\\n\")\n .trim()\n return next || undefined\n}\n\nfunction scrollTaskFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const kind = Locale.titlecase(p.input.subagent_type || \"general\")\n const row = p.input.description || text(p.frame.state.title)\n if (!row) {\n return `# ${kind} Task`\n }\n\n return `# ${kind} Task\\n${row}`\n}\n\nfunction scrollQuestionStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollQuestionFinal(p: ToolProps): string {\n const q = p.input.questions ?? []\n const a = p.metadata.answers ?? []\n const time = span(p.frame.state)\n if (q.length === 0) {\n if (!time) {\n return \"0 questions\"\n }\n\n return `0 questions · ${time}`\n }\n\n const rows: string[] = []\n for (const [i, item] of q.slice(0, 4).entries()) {\n const prompt = item.question\n const reply = a[i] ?? []\n rows.push(`? ${prompt || `Question ${i + 1}`}`)\n rows.push(` ${reply.length > 0 ? reply.join(\", \") : \"(no answer)\"}`)\n }\n\n if (q.length > 4) {\n rows.push(`... and ${q.length - 4} more`)\n }\n\n return rows.join(\"\\n\")\n}\n\nfunction scrollLspStart(p: ToolProps): string {\n return `→ ${lspTitle(p.input)}`\n}\n\nfunction scrollSkillStart(p: ToolProps): string {\n return `→ Skill \"${p.input.name ?? \"\"}\"`\n}\n\nfunction scrollGlobStart(p: ToolProps): string {\n const pattern = p.input.pattern ?? \"\"\n const head = pattern ? `✱ Glob \"${pattern}\"` : \"✱ Glob\"\n const dir = p.input.path ?? \"\"\n if (!dir) {\n return head\n }\n\n return `${head} in ${toolPath(dir)}`\n}\n\nfunction scrollGlobFinal(p: ToolProps): string {\n return toolError(p.frame) || fail(p.frame)\n}\n\nfunction scrollGrepStart(p: ToolProps): string {\n const pattern = p.input.pattern ?? \"\"\n const head = pattern ? `✱ Grep \"${pattern}\"` : \"✱ Grep\"\n const dir = p.input.path ?? \"\"\n if (!dir) {\n return head\n }\n\n return `${head} in ${toolPath(dir)}`\n}\n\nfunction scrollListStart(p: ToolProps): string {\n const dir = text(dict(p.input).path)\n if (!dir) {\n return \"→ List\"\n }\n\n return `→ List ${toolPath(dir)}`\n}\n\nfunction scrollWebfetchStart(p: ToolProps): string {\n const url = p.input.url ?? \"\"\n if (!url) {\n return \"% WebFetch\"\n }\n\n return `% WebFetch ${url}`\n}\n\nfunction scrollWebSearchStart(p: ToolProps): string {\n const title = webSearchProviderLabel(p.metadata.provider)\n const query = p.input.query ?? \"\"\n if (!query) {\n return `◈ ${title}`\n }\n\n return `◈ ${title} \"${query}\"`\n}\n\nfunction permEdit(p: ToolPermissionProps): ToolPermissionInfo {\n const input = p.input as { filePath?: string; filepath?: string; diff?: string }\n const file = input.filePath || input.filepath || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `Edit ${toolPath(file, { home: true })}`,\n lines: [],\n diff: p.metadata.diff ?? input.diff,\n file,\n }\n}\n\nfunction permRead(p: ToolPermissionProps): ToolPermissionInfo {\n const file = p.input.filePath || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `Read ${toolPath(file, { home: true })}`,\n lines: file ? [`Path: ${toolPath(file, { home: true })}`] : [],\n }\n}\n\nfunction permGlob(p: ToolPermissionProps): ToolPermissionInfo {\n const pattern = p.input.pattern || p.patterns[0] || \"\"\n return {\n icon: \"✱\",\n title: `Glob \"${pattern}\"`,\n lines: pattern ? [`Pattern: ${pattern}`] : [],\n }\n}\n\nfunction permGrep(p: ToolPermissionProps): ToolPermissionInfo {\n const pattern = p.input.pattern || p.patterns[0] || \"\"\n return {\n icon: \"✱\",\n title: `Grep \"${pattern}\"`,\n lines: pattern ? [`Pattern: ${pattern}`] : [],\n }\n}\n\nfunction permList(p: ToolPermissionProps): ToolPermissionInfo {\n const dir = text(dict(p.input).path) || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `List ${toolPath(dir, { home: true })}`,\n lines: dir ? [`Path: ${toolPath(dir, { home: true })}`] : [],\n }\n}\n\nfunction permBash(p: ToolPermissionProps): ToolPermissionInfo {\n const cmd = p.input.command || \"\"\n return {\n icon: \"#\",\n title: \"Shell command\",\n lines: cmd ? [`$ ${cmd}`] : p.patterns.map((item) => `- ${item}`),\n }\n}\n\nfunction permTask(p: ToolPermissionProps): ToolPermissionInfo {\n const type = p.input.subagent_type || \"general\"\n const desc = p.input.description\n return {\n icon: \"#\",\n title: `${Locale.titlecase(type)} Task`,\n lines: desc ? [`◉ ${desc}`] : [],\n }\n}\n\nfunction permWebfetch(p: ToolPermissionProps): ToolPermissionInfo {\n const url = p.input.url || \"\"\n return {\n icon: \"%\",\n title: `WebFetch ${url}`,\n lines: url ? [`URL: ${url}`] : [],\n }\n}\n\nfunction permWebSearch(p: ToolPermissionProps): ToolPermissionInfo {\n const query = p.input.query || \"\"\n const title = webSearchProviderLabel(p.metadata.provider)\n return {\n icon: \"◈\",\n title: query ? `${title} \"${query}\"` : title,\n lines: query ? [`Query: ${query}`] : [],\n }\n}\n\nfunction permLsp(p: ToolPermissionProps): ToolPermissionInfo {\n const file = p.input.filePath || \"\"\n const line = typeof p.input.line === \"number\" ? p.input.line : undefined\n const char = typeof p.input.character === \"number\" ? p.input.character : undefined\n const pos = line !== undefined && char !== undefined ? `${line}:${char}` : undefined\n return {\n icon: \"→\",\n title: lspTitle(p.input, { home: true }),\n lines: [\n ...(p.input.operation ? [`Operation: ${p.input.operation}`] : []),\n ...(file ? [`Path: ${toolPath(file, { home: true })}`] : []),\n ...(pos ? [`Position: ${pos}`] : []),\n ],\n }\n}\n\nconst TOOL_RULES = {\n invalid: {\n view: {\n output: true,\n final: false,\n },\n run: runInvalid,\n scroll: {\n start: () => \"\",\n },\n },\n shell: {\n view: {\n output: true,\n final: false,\n },\n run: runShell,\n scroll: {\n start: scrollBashStart,\n progress: scrollBashProgress,\n final: scrollShellFinal,\n },\n permission: permBash,\n },\n write: {\n view: {\n output: false,\n final: true,\n snap: \"code\",\n },\n run: runWrite,\n snap: snapWrite,\n scroll: {\n start: scrollWriteStart,\n },\n },\n edit: {\n view: {\n output: false,\n final: true,\n snap: \"diff\",\n },\n run: runEdit,\n snap: snapEdit,\n scroll: {\n start: scrollEditStart,\n },\n permission: permEdit,\n },\n patch: {\n view: {\n output: false,\n final: true,\n snap: \"diff\",\n },\n run: runPatch,\n snap: snapPatch,\n scroll: {\n start: scrollPatchStart,\n final: scrollPatchFinal,\n },\n },\n batch: {\n view: {\n output: true,\n final: false,\n },\n run: runBatch,\n scroll: {\n start: () => \"\",\n },\n },\n task: {\n view: {\n output: false,\n final: true,\n snap: \"structured\",\n },\n run: runTask,\n snap: snapTask,\n scroll: {\n start: scrollTaskStart,\n final: scrollTaskFinal,\n },\n permission: permTask,\n },\n question: {\n view: {\n output: false,\n final: true,\n snap: \"structured\",\n },\n run: runQuestion,\n snap: snapQuestion,\n scroll: {\n start: scrollQuestionStart,\n final: scrollQuestionFinal,\n },\n },\n read: {\n view: {\n output: false,\n final: false,\n },\n run: runRead,\n scroll: {\n start: scrollReadStart,\n },\n permission: permRead,\n },\n glob: {\n view: {\n output: false,\n final: false,\n },\n run: runGlob,\n scroll: {\n start: scrollGlobStart,\n final: scrollGlobFinal,\n },\n permission: permGlob,\n },\n grep: {\n view: {\n output: false,\n final: false,\n },\n run: runGrep,\n scroll: {\n start: scrollGrepStart,\n },\n permission: permGrep,\n },\n list: {\n view: {\n output: false,\n final: false,\n },\n run: runList,\n scroll: {\n start: scrollListStart,\n },\n permission: permList,\n },\n lsp: {\n view: {\n output: false,\n final: false,\n },\n run: runLsp,\n scroll: {\n start: scrollLspStart,\n },\n permission: permLsp,\n },\n webfetch: {\n view: {\n output: false,\n final: false,\n },\n run: runWebfetch,\n scroll: {\n start: scrollWebfetchStart,\n },\n permission: permWebfetch,\n },\n websearch: {\n view: {\n output: false,\n final: false,\n },\n run: runWebSearch,\n scroll: {\n start: scrollWebSearchStart,\n },\n permission: permWebSearch,\n },\n skill: {\n view: {\n output: false,\n final: false,\n },\n run: runSkill,\n scroll: {\n start: scrollSkillStart,\n },\n },\n plan_exit: {\n view: {\n output: true,\n final: false,\n },\n run: runPlanExit,\n scroll: {\n start: () => \"\",\n },\n },\n} as const satisfies ToolRegistry\n\nfunction key(name: string): name is ToolName {\n return Object.prototype.hasOwnProperty.call(TOOL_RULES, name)\n}\n\nfunction rule(name?: string): AnyToolRule | undefined {\n if (!name || !key(name)) {\n return undefined\n }\n\n return TOOL_RULES[name]\n}\n\nfunction frame(part: MiniToolPart): ToolFrame {\n const state = dict(part.state)\n return {\n raw: \"\",\n name: part.tool,\n input: dict(state.input),\n meta: \"metadata\" in part.state ? dict(part.state.metadata) : {},\n state,\n status: text(state.status),\n error: text(state.error),\n }\n}\n\nexport function toolFrame(commit: StreamCommit, raw: string): ToolFrame {\n const state = dict(commit.part?.state)\n return {\n raw,\n name: commit.tool || commit.part?.tool || \"tool\",\n input: dict(state.input),\n meta: commit.part?.state && \"metadata\" in commit.part.state ? dict(commit.part.state.metadata) : {},\n state,\n status: commit.toolState ?? text(state.status),\n error: (commit.toolError ?? \"\").trim(),\n }\n}\n\nfunction runShell(p: ToolProps): ToolInline {\n return {\n icon: \"$\",\n title: p.input.command || \"\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output).trim() : undefined,\n }\n}\n\nexport function toolView(name?: string): ToolView {\n return (\n rule(name)?.view ?? {\n output: true,\n final: true,\n }\n )\n}\n\nexport function toolStructuredFinal(commit: StreamCommit): boolean {\n const state = commit.toolState ?? commit.part?.state.status\n return (\n commit.kind === \"tool\" &&\n commit.phase === \"final\" &&\n state === \"completed\" &&\n Boolean(toolView(commit.tool ?? commit.part?.tool).snap)\n )\n}\n\nexport function toolInlineInfo(part: MiniToolPart): ToolInline {\n const ctx = frame(part)\n const draw = rule(ctx.name)?.run\n try {\n if (draw) {\n return draw(props(ctx))\n }\n } catch {\n return fallbackInline(ctx)\n }\n\n return fallbackInline(ctx)\n}\n\nexport function toolScroll(phase: ToolPhase, ctx: ToolFrame): string {\n const draw = rule(ctx.name)?.scroll?.[phase]\n try {\n if (draw) {\n return draw(props(ctx))\n }\n } catch {\n if (phase === \"start\") {\n return fallbackStart(ctx)\n }\n if (phase === \"progress\") {\n return ctx.raw\n }\n return fallbackFinal(ctx)\n }\n\n if (phase === \"start\") {\n return fallbackStart(ctx)\n }\n\n if (phase === \"progress\") {\n return ctx.raw\n }\n\n return fallbackFinal(ctx)\n}\n\nexport function toolPermissionInfo(\n name: string,\n input: ToolDict,\n meta: ToolDict,\n patterns: string[],\n): ToolPermissionInfo | undefined {\n const draw = rule(name)?.permission\n if (!draw) {\n return undefined\n }\n\n try {\n return draw(permission({ input, meta, patterns }))\n } catch {\n return undefined\n }\n}\n\nexport function toolSnapshot(commit: StreamCommit, raw: string): ToolSnapshot | undefined {\n const ctx = toolFrame(commit, raw)\n const draw = rule(ctx.name)?.snap\n if (!draw) {\n return undefined\n }\n\n try {\n return draw(props(ctx))\n } catch {\n return undefined\n }\n}\n\nfunction textBody(content: string): RunEntryBody | undefined {\n if (!content) {\n return undefined\n }\n\n return {\n type: \"text\",\n content,\n }\n}\n\nfunction markdownBody(content: string): RunEntryBody | undefined {\n if (!content) {\n return undefined\n }\n\n return {\n type: \"markdown\",\n content,\n }\n}\n\nfunction structuredBody(commit: StreamCommit, raw: string): RunEntryBody | undefined {\n const snap = toolSnapshot(commit, raw)\n if (!snap) {\n return undefined\n }\n\n return {\n type: \"structured\",\n snapshot: snap,\n }\n}\n\nfunction shellOutput(command: string, raw: string): string | undefined {\n const body = stripAnsi(raw).replace(/^\\n+/, \"\").replace(/\\n+$/, \"\")\n if (!body) {\n return undefined\n }\n\n if (!command) {\n return body\n }\n\n return `\\n${body}`\n}\n\nexport function toolEntryBody(commit: StreamCommit, raw: string): RunEntryBody | undefined {\n if (commit.shell) {\n if (commit.phase === \"start\") {\n return textBody(`$ ${commit.shell.command}`)\n }\n\n if (commit.phase === \"progress\") {\n return textBody(shellOutput(commit.shell.command, raw) ?? \"\")\n }\n\n if (commit.toolState === \"error\") {\n const ctx = toolFrame(commit, raw)\n return textBody(toolScroll(\"final\", ctx))\n }\n\n return undefined\n }\n\n const ctx = toolFrame(commit, raw)\n const view = toolView(ctx.name)\n\n if (ctx.name === \"task\") {\n if (commit.phase === \"start\") {\n return undefined\n }\n\n if (commit.phase === \"final\" && ctx.status === \"completed\") {\n const result = taskResult(text(ctx.state.output))\n if (result) {\n return markdownBody(result)\n }\n }\n }\n\n if (commit.phase === \"progress\" && !view.output) {\n return undefined\n }\n\n if (commit.phase === \"final\") {\n if (ctx.status === \"error\") {\n return textBody(toolScroll(\"final\", ctx))\n }\n\n if (!view.final) {\n return undefined\n }\n\n if (ctx.status && ctx.status !== \"completed\") {\n return textBody(ctx.raw.trim())\n }\n\n if (toolStructuredFinal(commit)) {\n return structuredBody(commit, raw) ?? textBody(toolScroll(\"final\", ctx))\n }\n }\n\n return textBody(toolScroll(commit.phase, ctx))\n}\n\nexport function toolFiletype(input?: string): string | undefined {\n if (!input) {\n return undefined\n }\n\n const ext = path.extname(input)\n const lang = LANGUAGE_EXTENSIONS[ext]\n if ([\"typescriptreact\", \"javascriptreact\", \"javascript\"].includes(lang)) {\n return \"typescript\"\n }\n\n return lang\n}\n"
],
"mappings": "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",
"debugId": "AA8376CDD5660E8464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/image/photon.ts"],
"sourcesContent": [
"// @ts-ignore Bun's static file import is embedded by `bun build --compile`; some consumers also declare *.wasm.\nimport photonWasm from \"@silvia-odwyer/photon-node/photon_rs_bg.wasm\" with { type: \"file\" }\nimport { Effect } from \"effect\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { FileSystem } from \"../filesystem\"\nimport { DecodeError, ResizerUnavailableError, SizeError } from \"../image\"\n\nconst JPEG_QUALITIES = [80, 85, 70, 55, 40]\n\nexport const make = Effect.gen(function* () {\n ;(globalThis as typeof globalThis & { __OPENCODE_PHOTON_WASM_PATH?: string }).__OPENCODE_PHOTON_WASM_PATH =\n path.isAbsolute(photonWasm) ? photonWasm : fileURLToPath(new URL(photonWasm, import.meta.url))\n const loadPhoton = yield* Effect.cached(\n Effect.tryPromise({\n try: () => import(\"@silvia-odwyer/photon-node\"),\n catch: () => new ResizerUnavailableError(),\n }),\n )\n return Effect.fn(\"Image.Photon.normalize\")(function* (\n resource: string,\n content: FileSystem.Content & { readonly encoding: \"base64\" },\n limits: {\n readonly autoResize: boolean\n readonly maxWidth: number\n readonly maxHeight: number\n readonly maxBase64Bytes: number\n },\n ) {\n const photon = yield* loadPhoton\n const decoded = yield* Effect.try({\n try: () => photon.PhotonImage.new_from_byteslice(Buffer.from(content.content, \"base64\")),\n catch: () => new DecodeError({ resource }),\n })\n try {\n const width = decoded.get_width()\n const height = decoded.get_height()\n const bytes = Buffer.byteLength(content.content, \"utf-8\")\n if (width <= limits.maxWidth && height <= limits.maxHeight && bytes <= limits.maxBase64Bytes) return content\n if (!limits.autoResize)\n return yield* new SizeError({\n resource,\n width,\n height,\n bytes,\n maxWidth: limits.maxWidth,\n maxHeight: limits.maxHeight,\n maxBytes: limits.maxBase64Bytes,\n })\n const scale = Math.min(1, limits.maxWidth / width, limits.maxHeight / height)\n const sizes = Array.from({ length: 32 }).reduce<Array<{ width: number; height: number }>>((acc) => {\n const previous = acc.at(-1) ?? {\n width: Math.max(1, Math.round(width * scale)),\n height: Math.max(1, Math.round(height * scale)),\n }\n const next =\n acc.length === 0\n ? previous\n : {\n width: previous.width === 1 ? 1 : Math.max(1, Math.floor(previous.width * 0.75)),\n height: previous.height === 1 ? 1 : Math.max(1, Math.floor(previous.height * 0.75)),\n }\n return acc.some((item) => item.width === next.width && item.height === next.height) ? acc : [...acc, next]\n }, [])\n for (const size of sizes) {\n const resized = photon.resize(decoded, size.width, size.height, photon.SamplingFilter.Lanczos3)\n try {\n const encoders: Array<readonly [mime: string, encode: () => Uint8Array]> = [\n [\"image/png\", () => resized.get_bytes()],\n ...JPEG_QUALITIES.map((quality) => [\"image/jpeg\", () => resized.get_bytes_jpeg(quality)] as const),\n ]\n for (const [mime, encode] of encoders) {\n const candidate = Buffer.from(encode()).toString(\"base64\")\n if (Buffer.byteLength(candidate, \"utf-8\") <= limits.maxBase64Bytes)\n return { ...content, content: candidate, encoding: \"base64\" as const, mime }\n }\n } finally {\n resized.free()\n }\n }\n return yield* new SizeError({\n resource,\n width,\n height,\n bytes,\n maxWidth: limits.maxWidth,\n maxHeight: limits.maxHeight,\n maxBytes: limits.maxBase64Bytes,\n })\n } finally {\n decoded.free()\n }\n })\n})\n"
],
"mappings": ";yvBAGA,yBACA,6BAAS,iBAIT,SAAM,OAAiB,MAAC,QAAI,QAAI,QAAI,QAAI,OAAE,OAE7B,OAAO,OAAO,SAAI,cAAU,OAAG,MACxC,gBAA4E,0CAC5E,EAAK,WAAW,CAAU,EAAI,EAAa,EAAc,IAAI,IAAI,EAAY,YAAY,GAAG,CAAC,EAC/F,IAAM,EAAa,MAAO,EAAO,OAC/B,EAAO,WAAW,CAChB,IAAK,IAAa,yCAClB,MAAO,IAAM,IAAI,CACnB,CAAC,CACH,EACA,OAAO,EAAO,GAAG,wBAAwB,EAAE,SAAU,CACnD,EACA,EACA,EAMA,CACA,IAAM,EAAS,MAAO,EAChB,EAAU,MAAO,EAAO,IAAI,CAChC,IAAK,IAAM,EAAO,YAAY,mBAAmB,OAAO,KAAK,EAAQ,QAAS,QAAQ,CAAC,EACvF,MAAO,IAAM,IAAI,EAAY,CAAE,UAAS,CAAC,CAC3C,CAAC,EACD,GAAI,CACF,IAAM,EAAQ,EAAQ,UAAU,EAC1B,EAAS,EAAQ,WAAW,EAC5B,EAAQ,OAAO,WAAW,EAAQ,QAAS,OAAO,EACxD,GAAI,GAAS,EAAO,UAAY,GAAU,EAAO,WAAa,GAAS,EAAO,eAAgB,OAAO,EACrG,GAAI,CAAC,EAAO,WACV,OAAO,MAAO,IAAI,EAAU,CAC1B,WACA,QACA,SACA,QACA,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,SAAU,EAAO,cACnB,CAAC,EACH,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAO,SAAW,EAAO,EAAO,UAAY,CAAM,EACtE,EAAQ,MAAM,KAAK,CAAE,OAAQ,EAAG,CAAC,EAAE,OAAiD,CAAC,IAAQ,CACjG,IAAM,EAAW,EAAI,GAAG,EAAE,GAAK,CAC7B,MAAO,KAAK,IAAI,EAAG,KAAK,MAAM,EAAQ,CAAK,CAAC,EAC5C,OAAQ,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,CAAK,CAAC,CAChD,EACM,EACJ,EAAI,SAAW,EACX,EACA,CACE,MAAO,EAAS,QAAU,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,MAAQ,IAAI,CAAC,EAC/E,OAAQ,EAAS,SAAW,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,OAAS,IAAI,CAAC,CACpF,EACN,OAAO,EAAI,KAAK,CAAC,IAAS,EAAK,QAAU,EAAK,OAAS,EAAK,SAAW,EAAK,MAAM,EAAI,EAAM,CAAC,GAAG,EAAK,CAAI,GACxG,CAAC,CAAC,EACL,QAAW,KAAQ,EAAO,CACxB,IAAM,EAAU,EAAO,OAAO,EAAS,EAAK,MAAO,EAAK,OAAQ,EAAO,eAAe,QAAQ,EAC9F,GAAI,CACF,IAAM,EAAqE,CACzE,CAAC,YAAa,IAAM,EAAQ,UAAU,CAAC,EACvC,GAAG,EAAe,IAAI,CAAC,IAAY,CAAC,aAAc,IAAM,EAAQ,eAAe,CAAO,CAAC,CAAU,CACnG,EACA,QAAY,EAAM,KAAW,EAAU,CACrC,IAAM,EAAY,OAAO,KAAK,EAAO,CAAC,EAAE,SAAS,QAAQ,EACzD,GAAI,OAAO,WAAW,EAAW,OAAO,GAAK,EAAO,eAClD,MAAO,IAAK,EAAS,QAAS,EAAW,SAAU,SAAmB,MAAK,UAE/E,CACA,EAAQ,KAAK,GAGjB,OAAO,MAAO,IAAI,EAAU,CAC1B,WACA,QACA,SACA,QACA,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,SAAU,EAAO,cACnB,CAAC,SACD,CACA,EAAQ,KAAK,GAEhB,EACF",
"debugId": "40613DB8D830CC1B64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "0304F14B07D81DF064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/util/which.ts"],
"sourcesContent": [
"import whichPkg from \"which\"\nimport path from \"path\"\nimport { Global } from \"../global\"\n\nexport function which(cmd: string, env?: NodeJS.ProcessEnv) {\n const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? \"\"\n const full = base ? base + path.delimiter + Global.Path.bin : Global.Path.bin\n const result = whichPkg.sync(cmd, {\n nothrow: true,\n path: full,\n pathExt: env?.PATHEXT ?? env?.PathExt ?? process.env.PATHEXT ?? process.env.PathExt,\n })\n return typeof result === \"string\" ? result : null\n}\n"
],
"mappings": ";kJAAA,oBACA,yBAGO,SAAS,CAAK,CAAC,EAAa,EAAyB,CAC1D,IAAM,EAAO,GAAK,MAAQ,GAAK,MAAQ,QAAQ,IAAI,MAAQ,QAAQ,IAAI,MAAQ,GACzE,EAAO,EAAO,EAAO,EAAK,UAAY,EAAO,KAAK,IAAM,EAAO,KAAK,IACpE,EAAS,UAAS,KAAK,EAAK,CAChC,QAAS,GACT,KAAM,EACN,QAAS,GAAK,SAAW,GAAK,SAAW,QAAQ,IAAI,SAAW,QAAQ,IAAI,OAC9E,CAAC,EACD,OAAO,OAAO,IAAW,SAAW,EAAS",
"debugId": "D4A69A1C25F8C1E764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.js", "../../node_modules/.bun/@smithy+is-array-buffer@2.2.0/node_modules/@smithy/is-array-buffer/dist-cjs/index.js", "../../node_modules/.bun/@smithy+util-buffer-from@2.2.0/node_modules/@smithy/util-buffer-from/dist-cjs/index.js", "../../node_modules/.bun/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-cjs/index.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/convertToBuffer.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/isEmptyData.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/numToUint8.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/uint32ArrayFrom.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/index.js", "../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js", "../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/main/index.js"],
"sourcesContent": [
"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\nvar __addDisposableResource;\r\nvar __disposeResources;\r\nvar __rewriteRelativeImportExtension;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n var ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n __addDisposableResource = function (env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n };\r\n\r\n var _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n };\r\n\r\n __disposeResources = function (env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n };\r\n\r\n __rewriteRelativeImportExtension = function (path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n exporter(\"__addDisposableResource\", __addDisposableResource);\r\n exporter(\"__disposeResources\", __disposeResources);\r\n exporter(\"__rewriteRelativeImportExtension\", __rewriteRelativeImportExtension);\r\n});\r\n\r\n0 && (module.exports = {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __exportStar: __exportStar,\r\n __createBinding: __createBinding,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n});\r\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isArrayBuffer: () => isArrayBuffer\n});\nmodule.exports = __toCommonJS(src_exports);\nvar isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\", \"isArrayBuffer\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isArrayBuffer\n});\n\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromArrayBuffer: () => fromArrayBuffer,\n fromString: () => fromString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar import_buffer = require(\"buffer\");\nvar fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, import_is_array_buffer.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return import_buffer.Buffer.from(input, offset, length);\n}, \"fromArrayBuffer\");\nvar fromString = /* @__PURE__ */ __name((input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input);\n}, \"fromString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromArrayBuffer,\n fromString\n});\n\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromUtf8: () => fromUtf8,\n toUint8Array: () => toUint8Array,\n toUtf8: () => toUtf8\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fromUtf8.ts\nvar import_util_buffer_from = require(\"@smithy/util-buffer-from\");\nvar fromUtf8 = /* @__PURE__ */ __name((input) => {\n const buf = (0, import_util_buffer_from.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n}, \"fromUtf8\");\n\n// src/toUint8Array.ts\nvar toUint8Array = /* @__PURE__ */ __name((data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}, \"toUint8Array\");\n\n// src/toUtf8.ts\n\nvar toUtf8 = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n}, \"toUtf8\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromUtf8,\n toUint8Array,\n toUtf8\n});\n\n",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_1 = require(\"@smithy/util-utf8\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=aws_crc32.js.map",
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=index.js.map"
],
"mappings": "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",
"debugId": "69D095E8B8F3200964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260127222353_familiar_lady_ursula.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260127222353_familiar_lady_ursula\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`project\\` (\n \\`id\\` text PRIMARY KEY,\n \\`worktree\\` text NOT NULL,\n \\`vcs\\` text,\n \\`name\\` text,\n \\`icon_url\\` text,\n \\`icon_color\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_initialized\\` integer,\n \\`sandboxes\\` text NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`part\\` (\n \\`id\\` text PRIMARY KEY,\n \\`message_id\\` text NOT NULL,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_part_message_id_message_id_fk\\` FOREIGN KEY (\\`message_id\\`) REFERENCES \\`message\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`permission\\` (\n \\`project_id\\` text PRIMARY KEY,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_permission_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session\\` (\n \\`id\\` text PRIMARY KEY,\n \\`project_id\\` text NOT NULL,\n \\`parent_id\\` text,\n \\`slug\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`title\\` text NOT NULL,\n \\`version\\` text NOT NULL,\n \\`share_url\\` text,\n \\`summary_additions\\` integer,\n \\`summary_deletions\\` integer,\n \\`summary_files\\` integer,\n \\`summary_diffs\\` text,\n \\`revert\\` text,\n \\`permission\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_compacting\\` integer,\n \\`time_archived\\` integer,\n CONSTRAINT \\`fk_session_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`todo\\` (\n \\`session_id\\` text NOT NULL,\n \\`content\\` text NOT NULL,\n \\`status\\` text NOT NULL,\n \\`priority\\` text NOT NULL,\n \\`position\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`todo_pk\\` PRIMARY KEY(\\`session_id\\`, \\`position\\`),\n CONSTRAINT \\`fk_todo_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session_share\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`id\\` text NOT NULL,\n \\`secret\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_share_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`CREATE INDEX \\`message_session_idx\\` ON \\`message\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_message_idx\\` ON \\`part\\` (\\`message_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_session_idx\\` ON \\`part\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_project_idx\\` ON \\`session\\` (\\`project_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_parent_idx\\` ON \\`session\\` (\\`parent_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`todo_session_idx\\` ON \\`todo\\` (\\`session_id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4YAab,EACD,MAAO,EAAG,IAAI,8XASb,EACD,MAAO,EAAG,IAAI,+ZAUb,EACD,MAAO,EAAG,IAAI,qWAQb,EACD,MAAO,EAAG,IAAI,2zBAsBb,EACD,MAAO,EAAG,IAAI,ghBAYb,EACD,MAAO,EAAG,IAAI,4aAUb,EACD,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,+DAAqE,EACnF,MAAO,EAAG,IAAI,2DAAiE,EAChF,EAEL",
"debugId": "2EB3AD991D14EBD164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603160727_jittery_ezekiel_stane\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_input_session_pending_seq_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`event_aggregate_type_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`type\\`,\\`seq\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`seq\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`session_message_session_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+DAAiE,EAC/E,MAAO,EAAG,IACR,qGACF,EACA,MAAO,EAAG,IACR,gJACF,EACA,MAAO,EAAG,IACR,mIACF,EACD,EAEL",
"debugId": "38E90FDE7E73CCAA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "3E35E6DD87393F0564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js", "../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/getValidatedProcessCredentials.js"],
"sourcesContent": [
"import { getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { resolveProcessCredentials } from \"./resolveProcessCredentials\";\nexport const fromProcess = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await parseKnownFiles(init);\n return resolveProcessCredentials(getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n }), profiles, init.logger);\n};\n",
"import { CredentialsProviderError, externalDataInterceptor } from \"@smithy/core/config\";\nimport { exec } from \"node:child_process\";\nimport { promisify } from \"node:util\";\nimport { getValidatedProcessCredentials } from \"./getValidatedProcessCredentials\";\nexport const resolveProcessCredentials = async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== undefined) {\n const execPromise = promisify(externalDataInterceptor?.getTokenRecord?.().exec ?? exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n }\n catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n }\n catch (error) {\n throw new CredentialsProviderError(error.message, { logger });\n }\n }\n else {\n throw new CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n }\n else {\n throw new CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger,\n });\n }\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const getValidatedProcessCredentials = (profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === undefined || data.SecretAccessKey === undefined) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...(data.SessionToken && { sessionToken: data.SessionToken }),\n ...(data.Expiration && { expiration: new Date(data.Expiration) }),\n ...(data.CredentialScope && { credentialScope: data.CredentialScope }),\n ...(accountId && { accountId }),\n };\n setCredentialFeature(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n};\n"
],
"mappings": ";kJAAA,oBCAA,oBACA,eAAS,sBACT,oBAAS,aCFT,eACa,EAAiC,CAAC,EAAa,EAAM,IAAa,CAC3E,GAAI,EAAK,UAAY,EACjB,MAAM,MAAM,WAAW,gDAA0D,EAErF,GAAI,EAAK,cAAgB,QAAa,EAAK,kBAAoB,OAC3D,MAAM,MAAM,WAAW,oDAA8D,EAEzF,GAAI,EAAK,WAAY,CACjB,IAAM,EAAc,IAAI,KAExB,GADmB,IAAI,KAAK,EAAK,UAAU,EAC1B,EACb,MAAM,MAAM,WAAW,oDAA8D,EAG7F,IAAI,EAAY,EAAK,UACrB,GAAI,CAAC,GAAa,IAAW,IAAc,eACvC,EAAY,EAAS,GAAa,eAEtC,IAAM,EAAc,CAChB,YAAa,EAAK,YAClB,gBAAiB,EAAK,mBAClB,EAAK,cAAgB,CAAE,aAAc,EAAK,YAAa,KACvD,EAAK,YAAc,CAAE,WAAY,IAAI,KAAK,EAAK,UAAU,CAAE,KAC3D,EAAK,iBAAmB,CAAE,gBAAiB,EAAK,eAAgB,KAChE,GAAa,CAAE,WAAU,CACjC,EAEA,OADA,uBAAqB,EAAa,sBAAuB,GAAG,EACrD,GDxBJ,IAAM,EAA4B,MAAO,EAAa,EAAU,IAAW,CAC9E,IAAM,EAAU,EAAS,GACzB,GAAI,EAAS,GAAc,CACvB,IAAM,EAAoB,EAAQ,mBAClC,GAAI,IAAsB,OAAW,CACjC,IAAM,EAAc,EAAU,2BAAyB,iBAAiB,EAAE,MAAQ,CAAI,EACtF,GAAI,CACA,IAAQ,UAAW,MAAM,EAAY,CAAiB,EAClD,EACJ,GAAI,CACA,EAAO,KAAK,MAAM,EAAO,KAAK,CAAC,EAEnC,KAAM,CACF,MAAM,MAAM,WAAW,6CAAuD,EAElF,OAAO,EAA+B,EAAa,EAAM,CAAQ,EAErE,MAAO,EAAO,CACV,MAAM,IAAI,2BAAyB,EAAM,QAAS,CAAE,QAAO,CAAC,GAIhE,WAAM,IAAI,2BAAyB,WAAW,wCAAmD,CAAE,QAAO,CAAC,EAI/G,WAAM,IAAI,2BAAyB,WAAW,mDAA8D,CACxG,QACJ,CAAC,GD9BF,IAAM,EAAc,CAAC,EAAO,CAAC,IAAM,OAAS,sBAAuB,CAAC,IAAM,CAC7E,EAAK,QAAQ,MAAM,oDAAoD,EACvE,IAAM,EAAW,MAAM,kBAAgB,CAAI,EAC3C,OAAO,EAA0B,iBAAe,CAC5C,QAAS,EAAK,SAAW,GAAoB,OACjD,CAAC,EAAG,EAAU,EAAK,MAAM",
"debugId": "00D956E7394E922764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://portal.sso.{Region}.amazonaws.com\", i],\n [\"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 13,\n 3,\n 1,\n 4,\n r + 12,\n 2,\n 5,\n r + 12,\n 3,\n 8,\n 6,\n 4,\n 7,\n r + 11,\n 5,\n r + 9,\n r + 10,\n 4,\n 11,\n 9,\n 6,\n 10,\n r + 8,\n 7,\n r + 6,\n r + 7,\n 5,\n 12,\n r + 5,\n 6,\n r + 4,\n r + 5,\n 3,\n r + 1,\n 14,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SSOServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOServiceException.prototype);\n }\n}\n\nclass InvalidRequestException extends SSOServiceException {\n name = \"InvalidRequestException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n }\n}\nclass ResourceNotFoundException extends SSOServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nclass TooManyRequestsException extends SSOServiceException {\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nclass UnauthorizedException extends SSOServiceException {\n name = \"UnauthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\n\nconst _ATT = \"AccessTokenType\";\nconst _GRC = \"GetRoleCredentials\";\nconst _GRCR = \"GetRoleCredentialsRequest\";\nconst _GRCRe = \"GetRoleCredentialsResponse\";\nconst _IRE = \"InvalidRequestException\";\nconst _RC = \"RoleCredentials\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _SAKT = \"SecretAccessKeyType\";\nconst _STT = \"SessionTokenType\";\nconst _TMRE = \"TooManyRequestsException\";\nconst _UE = \"UnauthorizedException\";\nconst _aI = \"accountId\";\nconst _aKI = \"accessKeyId\";\nconst _aT = \"accessToken\";\nconst _ai = \"account_id\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _ex = \"expiration\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _hH = \"httpHeader\";\nconst _hQ = \"httpQuery\";\nconst _m = \"message\";\nconst _rC = \"roleCredentials\";\nconst _rN = \"roleName\";\nconst _rn = \"role_name\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.sso\";\nconst _sAK = \"secretAccessKey\";\nconst _sT = \"sessionToken\";\nconst _xasbt = \"x-amz-sso_bearer_token\";\nconst n0 = \"com.amazonaws.sso\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SSOServiceException$ = [-3, _s, \"SSOServiceException\", 0, [], []];\n_s_registry.registerError(SSOServiceException$, SSOServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar InvalidRequestException$ = [-3, n0, _IRE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(InvalidRequestException$, InvalidRequestException);\nvar ResourceNotFoundException$ = [-3, n0, _RNFE, { [_e]: _c, [_hE]: 404 }, [_m], [0]];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nvar TooManyRequestsException$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_m], [0]];\nn0_registry.registerError(TooManyRequestsException$, TooManyRequestsException);\nvar UnauthorizedException$ = [-3, n0, _UE, { [_e]: _c, [_hE]: 401 }, [_m], [0]];\nn0_registry.registerError(UnauthorizedException$, UnauthorizedException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar AccessTokenType = [0, n0, _ATT, 8, 0];\nvar SecretAccessKeyType = [0, n0, _SAKT, 8, 0];\nvar SessionTokenType = [0, n0, _STT, 8, 0];\nvar GetRoleCredentialsRequest$ = [\n 3,\n n0,\n _GRCR,\n 0,\n [_rN, _aI, _aT],\n [\n [0, { [_hQ]: _rn }],\n [0, { [_hQ]: _ai }],\n [() => AccessTokenType, { [_hH]: _xasbt }],\n ],\n 3,\n];\nvar GetRoleCredentialsResponse$ = [\n 3,\n n0,\n _GRCRe,\n 0,\n [_rC],\n [[() => RoleCredentials$, 0]],\n];\nvar RoleCredentials$ = [\n 3,\n n0,\n _RC,\n 0,\n [_aKI, _sAK, _sT, _ex],\n [0, [() => SecretAccessKeyType, 0], [() => SessionTokenType, 0], 1],\n];\nvar GetRoleCredentials$ = [\n 9,\n n0,\n _GRC,\n { [_h]: [\"GET\", \"/federation/credentials\", 200] },\n () => GetRoleCredentialsRequest$,\n () => GetRoleCredentialsResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.sso\",\n errorTypeRegistries,\n version: \"2019-06-10\",\n serviceTarget: \"SWBPortalService\",\n },\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SSOClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass GetRoleCredentialsCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"SWBPortalService\", \"GetRoleCredentials\", {})\n .n(\"SSOClient\", \"GetRoleCredentialsCommand\")\n .sc(GetRoleCredentials$)\n .build() {\n}\n\nconst commands = {\n GetRoleCredentialsCommand,\n};\nclass SSO extends SSOClient {\n}\nclient.createAggregatedClient(commands, SSO);\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.GetRoleCredentials$ = GetRoleCredentials$;\nexports.GetRoleCredentialsCommand = GetRoleCredentialsCommand;\nexports.GetRoleCredentialsRequest$ = GetRoleCredentialsRequest$;\nexports.GetRoleCredentialsResponse$ = GetRoleCredentialsResponse$;\nexports.InvalidRequestException = InvalidRequestException;\nexports.InvalidRequestException$ = InvalidRequestException$;\nexports.ResourceNotFoundException = ResourceNotFoundException;\nexports.ResourceNotFoundException$ = ResourceNotFoundException$;\nexports.RoleCredentials$ = RoleCredentials$;\nexports.SSO = SSO;\nexports.SSOClient = SSOClient;\nexports.SSOServiceException = SSOServiceException;\nexports.SSOServiceException$ = SSOServiceException$;\nexports.TooManyRequestsException = TooManyRequestsException;\nexports.TooManyRequestsException$ = TooManyRequestsException$;\nexports.UnauthorizedException = UnauthorizedException;\nexports.UnauthorizedException$ = UnauthorizedException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "39245837C912260364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "2C35FF81A6ED3E0664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/entity.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/column-common.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/column.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/table.utils.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/table.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/subquery.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/tracing-utils.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/tracing.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/view-common.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/sql.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/expressions/conditions.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/expressions/select.js"],
"sourcesContent": [
"//#region src/entity.ts\nconst entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n\tif (!value || typeof value !== \"object\") return false;\n\tif (value instanceof type) return true;\n\tif (!Object.prototype.hasOwnProperty.call(type, entityKind)) throw new Error(`Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);\n\tlet cls = Object.getPrototypeOf(value)?.constructor;\n\tif (cls) while (cls) {\n\t\tif (entityKind in cls && cls[entityKind] === type[entityKind]) return true;\n\t\tcls = Object.getPrototypeOf(cls);\n\t}\n\treturn false;\n}\n\n//#endregion\nexport { entityKind, hasOwnEntityKind, is };\n//# sourceMappingURL=entity.js.map",
"//#region src/column-common.ts\nconst OriginalColumn = Symbol.for(\"drizzle:OriginalColumn\");\n\n//#endregion\nexport { OriginalColumn };\n//# sourceMappingURL=column-common.js.map",
"import { entityKind } from \"./entity.js\";\nimport { OriginalColumn } from \"./column-common.js\";\n\n//#region src/column.ts\nconst noop = (v) => v;\nnoop.isNoop = true;\nvar Column = class {\n\tstatic [entityKind] = \"Column\";\n\t/** @internal */\n\tcodec;\n\tname;\n\tkeyAsName;\n\tprimary;\n\tnotNull;\n\tdefault;\n\tdefaultFn;\n\tonUpdateFn;\n\thasDefault;\n\tisUnique;\n\tuniqueName;\n\tuniqueType;\n\tdataType;\n\tcolumnType;\n\tenumValues = void 0;\n\tgenerated = void 0;\n\tgeneratedIdentity = void 0;\n\tlength;\n\tisLengthExact;\n\tisAlias;\n\t/** @internal */\n\tconfig;\n\t/** @internal */\n\ttable;\n\t/** @internal */\n\tonInit() {}\n\tconstructor(table, config) {\n\t\tthis.config = config;\n\t\tthis.onInit();\n\t\tthis.table = table;\n\t\tthis.name = config.name;\n\t\tthis.isAlias = false;\n\t\tthis.keyAsName = config.keyAsName;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.onUpdateFn = config.onUpdateFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType;\n\t\tthis.columnType = config.columnType;\n\t\tthis.generated = config.generated;\n\t\tthis.generatedIdentity = config.generatedIdentity;\n\t\tthis.length = config[\"length\"];\n\t\tthis.isLengthExact = config[\"isLengthExact\"];\n\t}\n\tmapFromDriverValue = noop;\n\tmapToDriverValue = noop;\n\t/** @internal */\n\tpostBuild() {\n\t\treturn this;\n\t}\n\t/** @internal */\n\tshouldDisableInsert() {\n\t\treturn this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n\t}\n\t/** @internal */\n\t[OriginalColumn]() {\n\t\treturn this;\n\t}\n};\nfunction getColumnTable(column) {\n\treturn column.table;\n}\n\n//#endregion\nexport { Column, getColumnTable };\n//# sourceMappingURL=column.js.map",
"//#region src/table.utils.ts\n/** @internal */\nconst TableName = Symbol.for(\"drizzle:Name\");\n\n//#endregion\nexport { TableName };\n//# sourceMappingURL=table.utils.js.map",
"import { entityKind } from \"./entity.js\";\nimport { TableName } from \"./table.utils.js\";\n\n//#region src/table.ts\n/** @internal */\nconst TableSchema = Symbol.for(\"drizzle:Schema\");\n/** @internal */\nconst TableColumns = Symbol.for(\"drizzle:Columns\");\n/** @internal */\nconst ExtraConfigColumns = Symbol.for(\"drizzle:ExtraConfigColumns\");\n/** @internal */\nconst OriginalName = Symbol.for(\"drizzle:OriginalName\");\n/** @internal */\nconst BaseName = Symbol.for(\"drizzle:BaseName\");\n/** @internal */\nconst IsAlias = Symbol.for(\"drizzle:IsAlias\");\n/** @internal */\nconst ExtraConfigBuilder = Symbol.for(\"drizzle:ExtraConfigBuilder\");\nconst IsDrizzleTable = Symbol.for(\"drizzle:IsDrizzleTable\");\nvar Table = class {\n\tstatic [entityKind] = \"Table\";\n\t/** @internal */\n\tstatic Symbol = {\n\t\tName: TableName,\n\t\tSchema: TableSchema,\n\t\tOriginalName,\n\t\tColumns: TableColumns,\n\t\tExtraConfigColumns,\n\t\tBaseName,\n\t\tIsAlias,\n\t\tExtraConfigBuilder\n\t};\n\t/**\n\t* @internal\n\t* Can be changed if the table is aliased.\n\t*/\n\t[TableName];\n\t/**\n\t* @internal\n\t* Used to store the original name of the table, before any aliasing.\n\t*/\n\t[OriginalName];\n\t/** @internal */\n\t[TableSchema];\n\t/** @internal */\n\t[TableColumns];\n\t/** @internal */\n\t[ExtraConfigColumns];\n\t/**\n\t* @internal\n\t* Used to store the table name before the transformation via the `tableCreator` functions.\n\t*/\n\t[BaseName];\n\t/** @internal */\n\t[IsAlias] = false;\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\t/** @internal */\n\t[ExtraConfigBuilder] = void 0;\n\tconstructor(name, schema, baseName) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[TableSchema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n};\nfunction isTable(table) {\n\treturn typeof table === \"object\" && table !== null && IsDrizzleTable in table;\n}\nfunction getTableName(table) {\n\treturn table[TableName];\n}\nfunction getTableUniqueName(table) {\n\treturn `${table[TableSchema] ?? \"public\"}.${table[TableName]}`;\n}\n\n//#endregion\nexport { BaseName, ExtraConfigBuilder, ExtraConfigColumns, IsAlias, OriginalName, Table, TableColumns, TableSchema, getTableName, getTableUniqueName, isTable };\n//# sourceMappingURL=table.js.map",
"import { entityKind } from \"./entity.js\";\n\n//#region src/subquery.ts\nvar Subquery = class {\n\tstatic [entityKind] = \"Subquery\";\n\tconstructor(sql, fields, alias, isWith = false, usedTables = []) {\n\t\tthis._ = {\n\t\t\tbrand: \"Subquery\",\n\t\t\tsql,\n\t\t\tselectedFields: fields,\n\t\t\talias,\n\t\t\tisWith,\n\t\t\tusedTables\n\t\t};\n\t}\n};\nvar WithSubquery = class extends Subquery {\n\tstatic [entityKind] = \"WithSubquery\";\n};\n\n//#endregion\nexport { Subquery, WithSubquery };\n//# sourceMappingURL=subquery.js.map",
"//#region src/tracing-utils.ts\nfunction iife(fn, ...args) {\n\treturn fn(...args);\n}\n\n//#endregion\nexport { iife };\n//# sourceMappingURL=tracing-utils.js.map",
"import { iife } from \"./tracing-utils.js\";\nimport { npmVersion } from \"./version.js\";\n\n//#region src/tracing.ts\nconst hasTelemetry = false;\n/** @internal */\nconst tracer = { startActiveSpan(name, fn) {\n\treturn fn();\n} };\n\n//#endregion\nexport { hasTelemetry, tracer };\n//# sourceMappingURL=tracing.js.map",
"//#region src/view-common.ts\nconst ViewBaseConfig = Symbol.for(\"drizzle:ViewBaseConfig\");\n\n//#endregion\nexport { ViewBaseConfig };\n//# sourceMappingURL=view-common.js.map",
"import { Column } from \"../column.js\";\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from \"../table.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { TableName } from \"../table.utils.js\";\nimport { tracer } from \"../tracing.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\n\n//#region src/sql/sql.ts\n/**\n* This class is used to indicate a primitive param value that is used in `sql` tag.\n* It is only used on type level and is never instantiated at runtime.\n* If you see a value of this type in the code, its runtime value is actually the primitive param value.\n*/\nvar FakePrimitiveParam = class {\n\tstatic [entityKind] = \"FakePrimitiveParam\";\n};\nfunction isSQLWrapper(value) {\n\treturn value !== null && value !== void 0 && typeof value.getSQL === \"function\";\n}\nfunction mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t}\n\treturn result;\n}\nfunction _mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tconst sqls = [];\n\tfor (const query of queries) {\n\t\tsqls.push(query.sql);\n\t\tresult.params.push(...query.params);\n\t}\n\tresult._sql = Object.assign(sqls, { raw: sqls });\n\treturn result;\n}\nvar StringChunk = class {\n\tstatic [entityKind] = \"StringChunk\";\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\nvar SQL = class SQL {\n\tstatic [entityKind] = \"SQL\";\n\t/** @internal */\n\tdecoder = noopDecoder;\n\t/** @internal */\n\tshouldInlineParams = false;\n\t/** @internal */\n\tusedTables = [];\n\tconstructor(queryChunks) {\n\t\tthis.queryChunks = queryChunks;\n\t\tfor (const chunk of queryChunks) if (is(chunk, Table)) {\n\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\tthis.usedTables.push(schemaName === void 0 ? chunk[Table.Symbol.Name] : schemaName + \".\" + chunk[Table.Symbol.Name]);\n\t\t}\n\t}\n\tappend(query) {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\ttoQuery(config) {\n\t\treturn tracer.startActiveSpan(\"drizzle.buildSQL\", (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t\"drizzle.query.text\": query.sql,\n\t\t\t\t\"drizzle.query.params\": JSON.stringify(query.params)\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\tbuildQueryFromSourceParams(chunks, _config) {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 }\n\t\t});\n\t\tconst { escapeName, escapeParam, codecs, inlineParams, paramStartIndex, invokeSource } = config;\n\t\tconst mappedChunks = chunks.map((chunk) => {\n\t\t\tif (is(chunk, StringChunk)) return {\n\t\t\t\tsql: chunk.value.join(\"\"),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Name)) return {\n\t\t\t\tsql: escapeName(chunk.value),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (chunk === void 0) return {\n\t\t\t\tsql: \"\",\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result = [new StringChunk(\"(\")];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) result.push(new StringChunk(\", \"));\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(\")\"));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\t\t\tif (is(chunk, SQL)) return this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t...config,\n\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams\n\t\t\t});\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\tif (invokeSource === \"mssql-view-with-schemabinding\") return {\n\t\t\t\t\tsql: (schemaName === void 0 ? escapeName(\"dbo\") : escapeName(schemaName)) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[IsAlias] ? escapeName(tableName) : escapeName(schemaName) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = chunk.name;\n\t\t\t\tif (_config.invokeSource === \"indexes\") return {\n\t\t\t\t\tsql: escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst schemaName = invokeSource === \"mssql-check\" ? void 0 : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === void 0 ? escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName) : escapeName(schemaName) + \".\" + escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[ViewBaseConfig].isAlias ? escapeName(viewName) : escapeName(schemaName) + \".\" + escapeName(viewName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, SQL)) return this.buildQueryFromSourceParams([chunk.value], config);\n\t\t\t\tconst useCodecs = codecs && is(chunk.encoder, Column);\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, chunk);\n\t\t\t\t\tchunk.codec = useCodecs ? (value) => codecs.apply(chunk.encoder, \"normalizeParam\", value) : void 0;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\t\tparams: [chunk]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tlet mappedValue;\n\t\t\t\tif (chunk.value === null) mappedValue = chunk.value;\n\t\t\t\telse {\n\t\t\t\t\tmappedValue = chunk.encoder.mapToDriverValue.isNoop ? chunk.value : chunk.encoder.mapToDriverValue(chunk.value);\n\t\t\t\t\tif (is(mappedValue, SQL)) return this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t\tif (useCodecs) mappedValue = codecs.apply(chunk.encoder, \"normalizeParam\", mappedValue);\n\t\t\t\t}\n\t\t\t\tif (inlineParams) return {\n\t\t\t\t\tsql: this.mapInlineParam(mappedValue, config),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, mappedValue);\n\t\t\t\treturn {\n\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\tparams: [mappedValue]\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Placeholder)) return {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== void 0) return {\n\t\t\t\tsql: (chunk.origin !== void 0 ? escapeName(chunk.origin) + \".\" : \"\") + escapeName(chunk.fieldAlias),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) return {\n\t\t\t\t\tsql: escapeName(chunk._.alias),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(\") \"),\n\t\t\t\t\tnew Name(chunk._.alias)\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (typeof chunk === \"function\" && \"enumName\" in chunk) {\n\t\t\t\tif (\"schema\" in chunk && chunk.schema) return {\n\t\t\t\t\tsql: escapeName(chunk.schema) + \".\" + escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) return this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(\")\")\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (inlineParams) return {\n\t\t\t\tsql: this.mapInlineParam(chunk, config),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t});\n\t\tif (_config.tagged) return _mergeQueries(mappedChunks);\n\t\treturn mergeQueries(mappedChunks);\n\t}\n\tmapInlineParam(chunk, { escapeString }) {\n\t\tif (chunk === null) return \"null\";\n\t\tif (typeof chunk === \"number\" || typeof chunk === \"boolean\" || typeof chunk === \"bigint\") return chunk.toString();\n\t\tif (typeof chunk === \"string\") return escapeString(chunk);\n\t\tif (typeof chunk === \"object\") {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === \"[object Object]\") return escapeString(JSON.stringify(chunk));\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error(\"Unexpected param value: \" + chunk);\n\t}\n\tgetSQL() {\n\t\treturn this;\n\t}\n\tas(alias) {\n\t\tif (alias === void 0) return this;\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\tmapWith(decoder) {\n\t\tthis.decoder = typeof decoder === \"function\" ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this;\n\t}\n\tinlineParams() {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\t/**\n\t* This method is used to conditionally include a part of the query.\n\t*\n\t* @param condition - Condition to check\n\t* @returns itself if the condition is `true`, otherwise `undefined`\n\t*/\n\tif(condition) {\n\t\treturn condition ? this : void 0;\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n*/\nvar Name = class {\n\tstatic [entityKind] = \"Name\";\n\tbrand;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n* @deprecated Use `sql.identifier` instead.\n*/\nfunction name(value) {\n\treturn new Name(value);\n}\nfunction isDriverValueEncoder(value) {\n\treturn typeof value === \"object\" && value !== null && \"mapToDriverValue\" in value && typeof value.mapToDriverValue === \"function\";\n}\nconst noopDecoder = { mapFromDriverValue: (value) => value };\nnoopDecoder.mapFromDriverValue.isNoop = true;\nconst noopEncoder = { mapToDriverValue: (value) => value };\nnoopEncoder.mapToDriverValue.isNoop = true;\nfunction isNoop(mapper) {\n\treturn mapper.isNoop;\n}\nconst noopMapper = {\n\t...noopDecoder,\n\t...noopEncoder\n};\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nvar Param = class {\n\tstatic [entityKind] = \"Param\";\n\tbrand;\n\t/**\n\t* @param value - Parameter value\n\t* @param encoder - Encoder to convert the value to a driver parameter\n\t*/\n\tconstructor(value, encoder = noopEncoder, codec) {\n\t\tthis.value = value;\n\t\tthis.encoder = encoder;\n\t\tthis.codec = codec;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.param` instead. */\nfunction param(value, encoder) {\n\treturn new Param(value, encoder);\n}\nfunction sql(strings, ...params) {\n\tconst queryChunks = [];\n\tif (params.length > 0 || strings.length > 0 && strings[0] !== \"\") queryChunks.push(new StringChunk(strings[0]));\n\tfor (const [paramIndex, param] of params.entries()) queryChunks.push(param, new StringChunk(strings[paramIndex + 1]));\n\treturn new SQL(queryChunks);\n}\n(function(_sql) {\n\tfunction empty() {\n\t\treturn new SQL([]);\n\t}\n\t_sql.empty = empty;\n\tfunction fromList(list) {\n\t\treturn new SQL(list);\n\t}\n\t_sql.fromList = fromList;\n\tfunction raw(str) {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\t_sql.raw = raw;\n\tfunction join(chunks, separator) {\n\t\tconst result = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== void 0) result.push(separator);\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\t_sql.join = join;\n\tfunction identifier(value) {\n\t\treturn new Name(value);\n\t}\n\t_sql.identifier = identifier;\n\tfunction placeholder(name) {\n\t\treturn new Placeholder(name);\n\t}\n\t_sql.placeholder = placeholder;\n\tfunction param(value, encoder) {\n\t\treturn new Param(value, encoder);\n\t}\n\t_sql.param = param;\n\tfunction comment(input) {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return void 0;\n\t\treturn sql.raw(encoded);\n\t}\n\t_sql.comment = comment;\n})(sql || (sql = {}));\nfunction sqlCommenter(input) {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return \"\";\n\treturn `/*${encoded}*/`;\n}\n(function(_sqlCommenter) {\n\tfunction merge(input1, input2) {\n\t\tlet encoded;\n\t\tif (typeof input1 === \"object\" && typeof input2 === \"object\") encoded = encodeInput({\n\t\t\t...input1,\n\t\t\t...input2\n\t\t});\n\t\telse if (input1 && input2) encoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(\",\");\n\t\telse if (input2) encoded = encodeInput(input2);\n\t\telse if (input1) encoded = encodeInput(input1);\n\t\telse return \"\";\n\t\tif (!encoded.length) return \"\";\n\t\treturn `/*${encoded}*/`;\n\t}\n\t_sqlCommenter.merge = merge;\n\tfunction encodeInput(input) {\n\t\tif (typeof input === \"string\") {\n\t\t\tif (!input.length) return input;\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\t\tconst parts = [];\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === void 0 || value === \"\") continue;\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\t\tif (!parts.length) return \"\";\n\t\treturn parts.sort().join(\",\");\n\t}\n\t_sqlCommenter.encodeInput = encodeInput;\n\tfunction sanitizeObjectElement(key) {\n\t\treturn encodeURIComponent(key).replace(/'/g, `\\\\'`);\n\t}\n\t_sqlCommenter.sanitizeObjectElement = sanitizeObjectElement;\n\tfunction sanitizeStringInput(input) {\n\t\treturn input.replace(/\\/\\*/g, \"/ *\").replace(/\\*\\//g, \"* /\");\n\t}\n\t_sqlCommenter.sanitizeStringInput = sanitizeStringInput;\n})(sqlCommenter || (sqlCommenter = {}));\n(function(_SQL) {\n\tclass Aliased {\n\t\tstatic [entityKind] = \"SQL.Aliased\";\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin;\n\t\tconstructor(sql, fieldAlias) {\n\t\t\tthis.sql = sql;\n\t\t\tthis.fieldAlias = fieldAlias;\n\t\t}\n\t\tgetSQL() {\n\t\t\treturn this.sql;\n\t\t}\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n\t_SQL.Aliased = Aliased;\n})(SQL || (SQL = {}));\nvar Placeholder = class {\n\tstatic [entityKind] = \"Placeholder\";\n\tconstructor(name) {\n\t\tthis.name = name;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.placeholder` instead. */\nfunction placeholder(name) {\n\treturn new Placeholder(name);\n}\nfunction fillPlaceholders(params, values) {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) throw new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\treturn values[p.name];\n\t\t}\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) throw new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\tif (values[p.value.name] === null) return values[p.value.name];\n\t\t\tconst mapped = p.encoder.mapToDriverValue.isNoop ? values[p.value.name] : p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t\treturn p.codec ? p.codec(mapped) : mapped;\n\t\t}\n\t\treturn p;\n\t});\n}\nconst IsDrizzleView = Symbol.for(\"drizzle:IsDrizzleView\");\nvar View = class {\n\tstatic [entityKind] = \"View\";\n\t/** @internal */\n\t[ViewBaseConfig];\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\t/** @internal */\n\tget [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\t/** @internal */\n\tget [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\t/** @internal */\n\tget [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\t/** @internal */\n\tget [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\t/** @internal */\n\tget [TableColumns]() {\n\t\treturn this[ViewBaseConfig].selectedFields;\n\t}\n\tconstructor({ name, schema, selectedFields, query }) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery,\n\t\t\tisExisting: !query,\n\t\t\tisAlias: false\n\t\t};\n\t}\n};\nfunction isView(view) {\n\treturn typeof view === \"object\" && view !== null && IsDrizzleView in view;\n}\nfunction getViewName(view) {\n\treturn view[ViewBaseConfig].name;\n}\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n//#endregion\nexport { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };\n//# sourceMappingURL=sql.js.map",
"import { Param, Placeholder, SQL, StringChunk, View, isDriverValueEncoder, isSQLWrapper, sql } from \"../sql.js\";\nimport { is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { Column } from \"../../column.js\";\n\n//#region src/sql/expressions/conditions.ts\nfunction bindIfParam(value, column) {\n\tif (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) return new Param(value, column);\n\treturn value;\n}\n/**\n* Test that two values are equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is null, you may want to use\n* `isNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made by Ford\n* db.select().from(cars)\n* .where(eq(cars.make, 'Ford'))\n* ```\n*\n* @see isNull for a way to test equality to NULL.\n*/\nconst eq = (left, right) => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n/**\n* Test that two values are not equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is not null, you may want to use\n* `isNotNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars not made by Ford\n* db.select().from(cars)\n* .where(ne(cars.make, 'Ford'))\n* ```\n*\n* @see isNotNull for a way to test whether a value is not null.\n*/\nconst ne = (left, right) => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" and \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\nfunction or(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" or \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\n/**\n* Negate the meaning of an expression using the `not` keyword.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars _not_ made by GM or Ford.\n* db.select().from(cars)\n* .where(not(inArray(cars.make, ['GM', 'Ford'])))\n* ```\n*/\nfunction not(condition) {\n\treturn is(condition, SQL) ? sql`not (${condition})` : sql`not ${condition}`;\n}\n/**\n* Test that the first expression passed is greater than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made after 2000.\n* db.select().from(cars)\n* .where(gt(cars.year, 2000))\n* ```\n*\n* @see gte for greater-than-or-equal\n*/\nconst gt = (left, right) => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is greater than\n* or equal to the second expression. Use `gt` to\n* test whether an expression is strictly greater\n* than another.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made on or after 2000.\n* db.select().from(cars)\n* .where(gte(cars.year, 2000))\n* ```\n*\n* @see gt for a strictly greater-than condition\n*/\nconst gte = (left, right) => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lt(cars.year, 2000))\n* ```\n*\n* @see lte for less-than-or-equal\n*/\nconst lt = (left, right) => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* or equal to the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lte(cars.year, 2000))\n* ```\n*\n* @see lt for a strictly less-than condition\n*/\nconst lte = (left, right) => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`false`;\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`true`;\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n/**\n* Test whether an expression is NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have no discontinuedAt date.\n* db.select().from(cars)\n* .where(isNull(cars.discontinuedAt))\n* ```\n*\n* @see isNotNull for the inverse of this test\n*/\nfunction isNull(value) {\n\treturn sql`(${value} is null)`;\n}\n/**\n* Test whether an expression is not NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have been discontinued.\n* db.select().from(cars)\n* .where(isNotNull(cars.discontinuedAt))\n* ```\n*\n* @see isNull for the inverse of this test\n*/\nfunction isNotNull(value) {\n\treturn sql`(${value} is not null)`;\n}\n/**\n* Test whether a subquery evaluates to have any rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column has a match in a cities\n* // table.\n* db\n* .select()\n* .from(users)\n* .where(\n* exists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see notExists for the inverse of this test\n*/\nfunction exists(subquery) {\n\treturn sql`exists ${subquery}`;\n}\n/**\n* Test whether a subquery doesn't include any result\n* rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column doesn't match\n* // a row in the cities table.\n* db\n* .select()\n* .from(users)\n* .where(\n* notExists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see exists for the inverse of this test\n*/\nfunction notExists(subquery) {\n\treturn sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction notBetween(column, min, max) {\n\treturn sql`${column} not between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\n/**\n* Compare a column to a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(like(cars.name, '%Turbo%'))\n* ```\n*\n* @see ilike for a case-insensitive version of this condition\n*/\nfunction like(column, value) {\n\treturn sql`${column} like ${value}`;\n}\n/**\n* The inverse of like - this tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"ROver\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see like for the inverse condition\n* @see notIlike for a case-insensitive version of this condition\n*/\nfunction notLike(column, value) {\n\treturn sql`${column} not like ${value}`;\n}\n/**\n* Case-insensitively compare a column to a pattern,\n* which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* Unlike like, this performs a case-insensitive comparison.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(ilike(cars.name, '%Turbo%'))\n* ```\n*\n* @see like for a case-sensitive version of this condition\n*/\nfunction ilike(column, value) {\n\treturn sql`${column} ilike ${value}`;\n}\n/**\n* The inverse of ilike - this case-insensitively tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"Rover\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see ilike for the inverse condition\n* @see notLike for a case-sensitive version of this condition\n*/\nfunction notIlike(column, value) {\n\treturn sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContains requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} @> ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContained requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} <@ ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayOverlaps requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} && ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n\n//#endregion\nexport { and, arrayContained, arrayContains, arrayOverlaps, between, bindIfParam, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or };\n//# sourceMappingURL=conditions.js.map",
"import { sql } from \"../sql.js\";\n\n//#region src/sql/expressions/select.ts\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in ascending\n* order. By the SQL standard, ascending order is the\n* default, so it is not usually necessary to specify\n* ascending sort order.\n*\n* ## Examples\n*\n* ```ts\n* // Return cars, starting with the oldest models\n* // and going in ascending order to the newest.\n* db.select().from(cars)\n* .orderBy(asc(cars.year));\n* ```\n*\n* @see desc to sort in descending order\n*/\nfunction asc(column) {\n\treturn sql`${column} asc`;\n}\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in descending\n* order.\n*\n* ## Examples\n*\n* ```ts\n* // Select users, with the most recently created\n* // records coming first.\n* db.select().from(users)\n* .orderBy(desc(users.createdAt));\n* ```\n*\n* @see asc to sort in ascending order\n*/\nfunction desc(column) {\n\treturn sql`${column} desc`;\n}\n\n//#endregion\nexport { asc, desc };\n//# sourceMappingURL=select.js.map"
],
"mappings": "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",
"debugId": "1CF1AD4A5BD31EE164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.execAsync = void 0;\nconst child_process = require(\"child_process\");\nconst util = require(\"util\");\nexports.execAsync = util.promisify(child_process.exec);\n//# sourceMappingURL=execAsync.js.map"
],
"mappings": ";0EAKA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,YAAiB,OACzB,IAAM,qBACA,YACE,YAAY,EAAK,UAAU,EAAc,IAAI",
"debugId": "1C273D57799C49AA64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+core-linux-arm64@0.4.3/node_modules/@opentui/core-linux-arm64/index.bun.js"],
"sourcesContent": [
"const module = await import(\"./libopentui.so\", { with: { type: \"file\" } })\n\nexport default module.default\n"
],
"mappings": ";oDAAA,IAAM,EAAS,KAAa,yCAAmB,CAAE,KAAM,CAAE,KAAM,MAAO,CAAE,GAEzD,IAAO",
"debugId": "334CCD130A8AEF5464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260603141458_session_input_inbox.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603141458_session_input_inbox\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_input\\` (\n \\`seq\\` integer PRIMARY KEY AUTOINCREMENT,\n \\`id\\` text NOT NULL UNIQUE,\n \\`session_id\\` text NOT NULL,\n \\`prompt\\` text NOT NULL,\n \\`delivery\\` text NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,qCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,geAWb,EACD,MAAO,EAAG,IACR,8GACF,EACD,EAEL",
"debugId": "2DF97CF5063F1C7564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../client/src/effect/service.ts"],
"sourcesContent": [
"import { ServiceStatus } from \"@opencode-ai/protocol/groups/health\"\nimport { Effect, FileSystem, Option, Schedule, Schema } from \"effect\"\nimport { spawn, type ChildProcess } from \"node:child_process\"\nimport { homedir } from \"node:os\"\nimport { join } from \"node:path\"\nimport type {\n DiscoverOptions,\n Endpoint,\n EnsureOptions,\n StopOptions,\n} from \"../service.js\"\n\nexport * from \"../service.js\"\n/** Contents of the local service registration file. */\nexport type Info = import(\"../service.js\").Info\n\n// Find, start, and stop the local opencode background service.\n//\n// The service daemon advertises itself through a registration file in the\n// user's state directory: url, pid, version, and the private password, with\n// 0600 permissions. That file is the complete discovery contract — reading it\n// is all a client needs to connect. The daemon's own configuration (port,\n// persisted password) is CLI-owned and never read here.\n\ntype Contender = {\n readonly child: ChildProcess\n readonly error: () => Error | undefined\n}\n\n// Read-only lookup: registration file plus health check and version gate.\n// Never spawns; escalation to ensure() is the caller's policy.\n/** Discover a healthy, compatible local service without starting one. */\nexport const discover = Effect.fn(\"service.discover\")(function* (options: DiscoverOptions = {}) {\n return (yield* discoverLocal(options))?.endpoint\n})\n\nconst discoverLocal = Effect.fnUntraced(function* (options: DiscoverOptions) {\n const found = (yield* registered(options.file)).service\n if (found?.state !== \"ready\") return undefined\n if (options.version !== undefined && found.version !== options.version) return undefined\n return found\n})\n\n// Idempotent ensure-running: reuses a healthy compatible server, replaces a\n// version-mismatched one, and otherwise spawns small contenders until a server\n// becomes discoverable. A contender is never killed merely for slow startup.\n/** Ensure a healthy, compatible local service is running. */\nexport const ensure = Effect.fn(\"service.ensure\")(function* (options: EnsureOptions = {}) {\n const contenders = new Set<Contender>()\n let announced = false\n let lastSpawn = 0\n let spawnDelay = 5_000\n let ownerHeld = false\n const announce = (reason: \"missing\" | \"version-mismatch\", previousVersion?: string) =>\n Effect.sync(() => {\n if (announced) return\n announced = true\n options.onStart?.(reason, previousVersion)\n })\n const spawnContender = Effect.gen(function* () {\n const [command, ...args] = options.command ?? [\"opencode\", \"serve\", \"--service\"]\n if (command === undefined) return yield* Effect.fail(new Error(\"Missing service command\"))\n return yield* Effect.try({\n try: () => {\n const child = spawn(command, args, { detached: true, stdio: \"ignore\" })\n let error: Error | undefined\n child.once(\"error\", (cause) => {\n error = new Error(\"Failed to start server\", { cause })\n })\n child.unref()\n return { child, error: () => error }\n },\n catch: (cause) => new Error(\"Failed to start server\", { cause }),\n })\n })\n const found = yield* Effect.gen(function* () {\n const registration = yield* registered(options.file, true)\n const info = registration.info\n const service = registration.service\n if (service !== undefined) {\n ownerHeld = false\n spawnDelay = 5_000\n const compatible = !service.legacy && (options.version === undefined || service.version === options.version)\n if (compatible && service.state === \"ready\") return Option.some(service)\n if (compatible && service.state === \"failed\") return yield* Effect.fail(new Error(\"Background service failed to start\"))\n if (compatible) return Option.none<LocalService>()\n yield* announce(\"version-mismatch\", service.version)\n yield* kill(service, options).pipe(Effect.ignore)\n lastSpawn = 0\n return Option.none<LocalService>()\n } else if (lastSpawn === 0 && info !== undefined) lastSpawn = Date.now()\n\n const failure = [...contenders].map(contenderFailure).find((error): error is Error => error !== undefined)\n if (failure !== undefined) return yield* Effect.fail(failure)\n const finished = [...contenders].filter(contenderFinished)\n if (finished.some((item) => item.child.exitCode === 0)) {\n ownerHeld = true\n spawnDelay = Math.min(spawnDelay * 2, 30_000)\n }\n finished.forEach((item) => contenders.delete(item))\n // Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery.\n if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {\n yield* announce(\"missing\")\n contenders.add(yield* spawnContender)\n lastSpawn = Date.now()\n }\n return Option.none<LocalService>()\n }).pipe(Effect.repeat({ until: Option.isSome, schedule: Schedule.spaced(\"1 second\") }))\n return Option.getOrThrow(found).endpoint\n})\n\nfunction contenderFailure(contender: Contender) {\n const error = contender.error()\n if (error !== undefined) return error\n if (contender.child.exitCode !== null && contender.child.exitCode !== 0)\n return new Error(`Server process exited with code ${contender.child.exitCode}`)\n if (contender.child.signalCode !== null)\n return new Error(`Server process terminated by ${contender.child.signalCode}`)\n return undefined\n}\n\nfunction contenderFinished(contender: Contender) {\n return contender.error() !== undefined || contender.child.exitCode !== null || contender.child.signalCode !== null\n}\n\n/** Stop the registered local service. */\nexport const stop = Effect.fn(\"service.stop\")(function* (options: StopOptions = {}) {\n const existing = yield* find(options)\n if (existing !== undefined) yield* kill(existing, options)\n})\n\nfunction fallback() {\n const state = process.env[\"XDG_STATE_HOME\"] ?? join(homedir(), \".local\", \"state\")\n return join(state, \"opencode\", \"service.json\")\n}\n\n/** Create HTTP authentication headers for a service endpoint. */\nexport function headers(endpoint: Endpoint) {\n if (endpoint.auth === undefined) return undefined\n return { authorization: \"Basic \" + btoa(endpoint.auth.username + \":\" + endpoint.auth.password) }\n}\n\n/** Schema for the local service registration file. */\nexport const Info = Schema.Struct({\n id: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n url: Schema.String,\n pid: Schema.Int.check(Schema.isGreaterThan(0)),\n password: Schema.optional(Schema.String),\n})\n\nconst decode = Schema.decodeUnknownEffect(Schema.fromJsonString(Info))\nconst decodeHealth = Schema.decodeUnknownOption(ServiceStatus.Health)\nconst decodeLegacyHealth = Schema.decodeUnknownOption(Schema.Struct({ healthy: Schema.Literal(true) }))\n\n// A missing or corrupt file means no valid info; callers treat both\n// the same (the registering server self-evicts, clients rediscover).\nconst read = Effect.fnUntraced(function* (file?: string) {\n const fs = yield* FileSystem.FileSystem\n const text = yield* fs.readFileString(file ?? fallback()).pipe(Effect.option)\n if (Option.isNone(text)) return undefined\n return yield* decode(text.value).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n})\n\ntype LocalService = {\n readonly info: Info\n readonly endpoint: Endpoint\n readonly version?: string\n readonly state: \"ready\" | \"waiting\" | \"failed\"\n readonly legacy: boolean\n}\n\nconst probe = Effect.fnUntraced(function* (info: Info, allowLegacy = false) {\n const endpoint = {\n url: info.url,\n auth:\n info.password === undefined\n ? undefined\n : { type: \"basic\" as const, username: \"opencode\", password: info.password },\n } satisfies Endpoint\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(\"/api/health\", info.url), {\n headers: headers(endpoint),\n signal: AbortSignal.timeout(2_000),\n }),\n ).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n if (response === undefined) return undefined\n const body = yield* Effect.tryPromise(() => response.json()).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n const health = decodeHealth(body)\n if (Option.isSome(health)) {\n if (health.value.pid !== info.pid) return undefined\n if (info.version !== undefined && health.value.version !== info.version) return undefined\n return {\n info,\n endpoint,\n version: health.value.version,\n state: response.ok ? \"ready\" : response.status === 500 ? \"failed\" : \"waiting\",\n legacy: false,\n } satisfies LocalService\n }\n if (\n !allowLegacy ||\n Option.isNone(decodeLegacyHealth(body)) ||\n (typeof body === \"object\" && body !== null && (\"version\" in body || \"pid\" in body))\n )\n return undefined\n return { info, endpoint, state: \"ready\", legacy: true } satisfies LocalService\n})\n\nconst registered = Effect.fnUntraced(function* (file?: string, allowLegacy = false) {\n const info = yield* read(file)\n if (info === undefined) return { info: undefined, service: undefined }\n return { info, service: yield* probe(info, allowLegacy) }\n})\n\n// Health-checked lookup without the version gate: lifecycle operations must be\n// able to see (and replace or stop) a server from a different version.\nconst find = Effect.fnUntraced(function* (options: { readonly file?: string }) {\n return (yield* registered(options.file, true)).service\n})\n\n// 50ms cadence bounded at ~5s, shared by stop escalation and each ensure\n// discovery window.\nconst poll = Schedule.spaced(\"50 millis\").pipe(Schedule.both(Schedule.recurs(100)))\n\nconst signal = (pid: number, name: NodeJS.Signals) =>\n Effect.try({ try: () => process.kill(pid, name), catch: (cause) => cause }).pipe(Effect.ignore)\n\nconst stopped = Effect.fnUntraced(function* (pid: number) {\n const running = yield* Effect.try({ try: () => process.kill(pid, 0), catch: () => false }).pipe(\n Effect.orElseSucceed(() => false),\n )\n if (!running) return true\n return yield* Effect.fail(new Error(`Server process ${pid} is still running`))\n})\n\nfunction same(left: Info, right: Info) {\n return left.id === right.id && left.version === right.version && left.url === right.url && left.pid === right.pid\n}\n\nconst kill = Effect.fnUntraced(function* (\n service: LocalService,\n options: { readonly file?: string },\n) {\n const requested = yield* requestStop(service)\n if (requested === \"rejected\") return\n if (requested === \"unsupported\") {\n // A stale registration may point at a reused PID. Authenticate again\n // immediately before the legacy signal fallback.\n const current = yield* find(options)\n if (current === undefined || !same(current.info, service.info)) return\n yield* signal(service.info.pid, \"SIGTERM\")\n }\n const done = yield* stopped(service.info.pid).pipe(Effect.retry(poll), Effect.option)\n if (Option.isSome(done)) return\n\n const latest = yield* find(options)\n if (latest === undefined || !same(latest.info, service.info)) return\n yield* signal(service.info.pid, \"SIGKILL\")\n yield* stopped(service.info.pid).pipe(Effect.retry(poll))\n})\n\nconst decodeStopResponse = Schema.decodeUnknownOption(ServiceStatus.StopResponse)\n\nconst requestStop = Effect.fnUntraced(function* (service: LocalService) {\n if (service.info.id === undefined || service.legacy) return \"unsupported\" as const\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(\"/api/service/stop\", service.info.url), {\n method: \"POST\",\n headers: { ...headers(service.endpoint), \"content-type\": \"application/json\" },\n body: JSON.stringify({ instanceID: service.info.id }),\n signal: AbortSignal.timeout(2_000),\n }),\n ).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n if (response === undefined || response.status === 404 || response.status === 405) return \"unsupported\" as const\n const body = yield* Effect.tryPromise(() => response.json()).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n const decoded = decodeStopResponse(body)\n if (!response.ok || Option.isNone(decoded) || !decoded.value.accepted) return \"rejected\" as const\n return \"accepted\" as const\n})\n\n/** Effect-based local service lifecycle operations. */\nexport const Service = { discover, ensure, stop, headers, Info }\n"
],
"mappings": ";mIAEA,qBAAS,sBACT,kBAAS,WACT,eAAS,aA4BF,IAAM,EAAW,EAAO,GAAG,kBAAkB,EAAE,SAAU,CAAC,EAA2B,CAAC,EAAG,CAC9F,OAAQ,MAAO,EAAc,CAAO,IAAI,SACzC,EAEK,EAAgB,EAAO,WAAW,SAAU,CAAC,EAA0B,CAC3E,IAAM,GAAS,MAAO,EAAW,EAAQ,IAAI,GAAG,QAChD,GAAI,GAAO,QAAU,QAAS,OAC9B,GAAI,EAAQ,UAAY,QAAa,EAAM,UAAY,EAAQ,QAAS,OACxE,OAAO,EACR,EAMY,EAAS,EAAO,GAAG,gBAAgB,EAAE,SAAU,CAAC,EAAyB,CAAC,EAAG,CACxF,IAAM,EAAa,IAAI,IACnB,EAAY,GACZ,EAAY,EACZ,EAAa,KACb,EAAY,GACV,EAAW,CAAC,EAAwC,IACxD,EAAO,KAAK,IAAM,CAChB,GAAI,EAAW,OACf,EAAY,GACZ,EAAQ,UAAU,EAAQ,CAAe,EAC1C,EACG,EAAiB,EAAO,IAAI,SAAU,EAAG,CAC7C,IAAO,KAAY,GAAQ,EAAQ,SAAW,CAAC,WAAY,QAAS,WAAW,EAC/E,GAAI,IAAY,OAAW,OAAO,MAAO,EAAO,KAAS,MAAM,yBAAyB,CAAC,EACzF,OAAO,MAAO,EAAO,IAAI,CACvB,IAAK,IAAM,CACT,IAAM,EAAQ,EAAM,EAAS,EAAM,CAAE,SAAU,GAAM,MAAO,QAAS,CAAC,EAClE,EAKJ,OAJA,EAAM,KAAK,QAAS,CAAC,IAAU,CAC7B,EAAY,MAAM,yBAA0B,CAAE,OAAM,CAAC,EACtD,EACD,EAAM,MAAM,EACL,CAAE,QAAO,MAAO,IAAM,CAAM,GAErC,MAAO,CAAC,IAAc,MAAM,yBAA0B,CAAE,OAAM,CAAC,CACjE,CAAC,EACF,EACK,EAAQ,MAAO,EAAO,IAAI,SAAU,EAAG,CAC3C,IAAM,EAAe,MAAO,EAAW,EAAQ,KAAM,EAAI,EACnD,EAAO,EAAa,KACpB,EAAU,EAAa,QAC7B,GAAI,IAAY,OAAW,CACzB,EAAY,GACZ,EAAa,KACb,IAAM,EAAa,CAAC,EAAQ,SAAW,EAAQ,UAAY,QAAa,EAAQ,UAAY,EAAQ,SACpG,GAAI,GAAc,EAAQ,QAAU,QAAS,OAAO,EAAO,KAAK,CAAO,EACvE,GAAI,GAAc,EAAQ,QAAU,SAAU,OAAO,MAAO,EAAO,KAAS,MAAM,oCAAoC,CAAC,EACvH,GAAI,EAAY,OAAO,EAAO,KAAmB,EAIjD,OAHA,MAAO,EAAS,mBAAoB,EAAQ,OAAO,EACnD,MAAO,EAAK,EAAS,CAAO,EAAE,KAAK,EAAO,MAAM,EAChD,EAAY,EACL,EAAO,KAAmB,EAC5B,QAAI,IAAc,GAAK,IAAS,OAAW,EAAY,KAAK,IAAI,EAEvE,IAAM,EAAU,CAAC,GAAG,CAAU,EAAE,IAAI,CAAgB,EAAE,KAAK,CAAC,IAA0B,IAAU,MAAS,EACzG,GAAI,IAAY,OAAW,OAAO,MAAO,EAAO,KAAK,CAAO,EAC5D,IAAM,EAAW,CAAC,GAAG,CAAU,EAAE,OAAO,CAAiB,EACzD,GAAI,EAAS,KAAK,CAAC,IAAS,EAAK,MAAM,WAAa,CAAC,EACnD,EAAY,GACZ,EAAa,KAAK,IAAI,EAAa,EAAG,KAAM,EAI9C,GAFA,EAAS,QAAQ,CAAC,IAAS,EAAW,OAAO,CAAI,CAAC,EAE9C,EAAW,KAAO,GAAK,KAAK,IAAI,EAAI,GAAa,EACnD,MAAO,EAAS,SAAS,EACzB,EAAW,IAAI,MAAO,CAAc,EACpC,EAAY,KAAK,IAAI,EAEvB,OAAO,EAAO,KAAmB,EAClC,EAAE,KAAK,EAAO,OAAO,CAAE,MAAO,EAAO,OAAQ,SAAU,EAAS,OAAO,UAAU,CAAE,CAAC,CAAC,EACtF,OAAO,EAAO,WAAW,CAAK,EAAE,SACjC,EAED,SAAS,CAAgB,CAAC,EAAsB,CAC9C,IAAM,EAAQ,EAAU,MAAM,EAC9B,GAAI,IAAU,OAAW,OAAO,EAChC,GAAI,EAAU,MAAM,WAAa,MAAQ,EAAU,MAAM,WAAa,EACpE,OAAW,MAAM,mCAAmC,EAAU,MAAM,UAAU,EAChF,GAAI,EAAU,MAAM,aAAe,KACjC,OAAW,MAAM,gCAAgC,EAAU,MAAM,YAAY,EAC/E,OAGF,SAAS,CAAiB,CAAC,EAAsB,CAC/C,OAAO,EAAU,MAAM,IAAM,QAAa,EAAU,MAAM,WAAa,MAAQ,EAAU,MAAM,aAAe,KAIzG,IAAM,EAAO,EAAO,GAAG,cAAc,EAAE,SAAU,CAAC,EAAuB,CAAC,EAAG,CAClF,IAAM,EAAW,MAAO,EAAK,CAAO,EACpC,GAAI,IAAa,OAAW,MAAO,EAAK,EAAU,CAAO,EAC1D,EAED,SAAS,CAAQ,EAAG,CAClB,IAAM,EAAQ,QAAQ,IAAI,gBAAqB,EAAK,EAAQ,EAAG,SAAU,OAAO,EAChF,OAAO,EAAK,EAAO,WAAY,cAAc,EAIxC,SAAS,CAAO,CAAC,EAAoB,CAC1C,GAAI,EAAS,OAAS,OAAW,OACjC,MAAO,CAAE,cAAe,SAAW,KAAK,EAAS,KAAK,SAAW,IAAM,EAAS,KAAK,QAAQ,CAAE,EAI1F,IAAM,EAAO,EAAO,OAAO,CAChC,GAAI,EAAO,SAAS,EAAO,MAAM,EACjC,QAAS,EAAO,SAAS,EAAO,MAAM,EACtC,IAAK,EAAO,OACZ,IAAK,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EAC7C,SAAU,EAAO,SAAS,EAAO,MAAM,CACzC,CAAC,EAEK,EAAS,EAAO,oBAAoB,EAAO,eAAe,CAAI,CAAC,EAC/D,EAAe,EAAO,oBAAoB,EAAc,MAAM,EAC9D,EAAqB,EAAO,oBAAoB,EAAO,OAAO,CAAE,QAAS,EAAO,QAAQ,EAAI,CAAE,CAAC,CAAC,EAIhG,EAAO,EAAO,WAAW,SAAU,CAAC,EAAe,CAEvD,IAAM,EAAO,OADF,MAAO,EAAW,YACN,eAAe,GAAQ,EAAS,CAAC,EAAE,KAAK,EAAO,MAAM,EAC5E,GAAI,EAAO,OAAO,CAAI,EAAG,OACzB,OAAO,MAAO,EAAO,EAAK,KAAK,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvF,EAUK,EAAQ,EAAO,WAAW,SAAU,CAAC,EAAY,EAAc,GAAO,CAC1E,IAAM,EAAW,CACf,IAAK,EAAK,IACV,KACE,EAAK,WAAa,OACd,OACA,CAAE,KAAM,QAAkB,SAAU,WAAY,SAAU,EAAK,QAAS,CAChF,EACM,EAAW,MAAO,EAAO,WAAW,IACxC,MAAM,IAAI,IAAI,cAAe,EAAK,GAAG,EAAG,CACtC,QAAS,EAAQ,CAAQ,EACzB,OAAQ,YAAY,QAAQ,IAAK,CACnC,CAAC,CACH,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvD,GAAI,IAAa,OAAW,OAC5B,IAAM,EAAO,MAAO,EAAO,WAAW,IAAM,EAAS,KAAK,CAAC,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EAC5G,EAAS,EAAa,CAAI,EAChC,GAAI,EAAO,OAAO,CAAM,EAAG,CACzB,GAAI,EAAO,MAAM,MAAQ,EAAK,IAAK,OACnC,GAAI,EAAK,UAAY,QAAa,EAAO,MAAM,UAAY,EAAK,QAAS,OACzE,MAAO,CACL,OACA,WACA,QAAS,EAAO,MAAM,QACtB,MAAO,EAAS,GAAK,QAAU,EAAS,SAAW,IAAM,SAAW,UACpE,OAAQ,EACV,EAEF,GACE,CAAC,GACD,EAAO,OAAO,EAAmB,CAAI,CAAC,GACrC,OAAO,IAAS,UAAY,IAAS,QAAS,YAAa,KAAQ,QAAS,IAE7E,OACF,MAAO,CAAE,OAAM,WAAU,MAAO,QAAS,OAAQ,EAAK,EACvD,EAEK,EAAa,EAAO,WAAW,SAAU,CAAC,EAAe,EAAc,GAAO,CAClF,IAAM,EAAO,MAAO,EAAK,CAAI,EAC7B,GAAI,IAAS,OAAW,MAAO,CAAE,KAAM,OAAW,QAAS,MAAU,EACrE,MAAO,CAAE,OAAM,QAAS,MAAO,EAAM,EAAM,CAAW,CAAE,EACzD,EAIK,EAAO,EAAO,WAAW,SAAU,CAAC,EAAqC,CAC7E,OAAQ,MAAO,EAAW,EAAQ,KAAM,EAAI,GAAG,QAChD,EAIK,EAAO,EAAS,OAAO,WAAW,EAAE,KAAK,EAAS,KAAK,EAAS,OAAO,GAAG,CAAC,CAAC,EAE5E,EAAS,CAAC,EAAa,IAC3B,EAAO,IAAI,CAAE,IAAK,IAAM,QAAQ,KAAK,EAAK,CAAI,EAAG,MAAO,CAAC,IAAU,CAAM,CAAC,EAAE,KAAK,EAAO,MAAM,EAE1F,EAAU,EAAO,WAAW,SAAU,CAAC,EAAa,CAIxD,GAAI,EAHY,MAAO,EAAO,IAAI,CAAE,IAAK,IAAM,QAAQ,KAAK,EAAK,CAAC,EAAG,MAAO,IAAM,EAAM,CAAC,EAAE,KACzF,EAAO,cAAc,IAAM,EAAK,CAClC,GACc,MAAO,GACrB,OAAO,MAAO,EAAO,KAAS,MAAM,kBAAkB,oBAAsB,CAAC,EAC9E,EAED,SAAS,CAAI,CAAC,EAAY,EAAa,CACrC,OAAO,EAAK,KAAO,EAAM,IAAM,EAAK,UAAY,EAAM,SAAW,EAAK,MAAQ,EAAM,KAAO,EAAK,MAAQ,EAAM,IAGhH,IAAM,EAAO,EAAO,WAAW,SAAU,CACvC,EACA,EACA,CACA,IAAM,EAAY,MAAO,EAAY,CAAO,EAC5C,GAAI,IAAc,WAAY,OAC9B,GAAI,IAAc,cAAe,CAG/B,IAAM,EAAU,MAAO,EAAK,CAAO,EACnC,GAAI,IAAY,QAAa,CAAC,EAAK,EAAQ,KAAM,EAAQ,IAAI,EAAG,OAChE,MAAO,EAAO,EAAQ,KAAK,IAAK,SAAS,EAE3C,IAAM,EAAO,MAAO,EAAQ,EAAQ,KAAK,GAAG,EAAE,KAAK,EAAO,MAAM,CAAI,EAAG,EAAO,MAAM,EACpF,GAAI,EAAO,OAAO,CAAI,EAAG,OAEzB,IAAM,EAAS,MAAO,EAAK,CAAO,EAClC,GAAI,IAAW,QAAa,CAAC,EAAK,EAAO,KAAM,EAAQ,IAAI,EAAG,OAC9D,MAAO,EAAO,EAAQ,KAAK,IAAK,SAAS,EACzC,MAAO,EAAQ,EAAQ,KAAK,GAAG,EAAE,KAAK,EAAO,MAAM,CAAI,CAAC,EACzD,EAEK,EAAqB,EAAO,oBAAoB,EAAc,YAAY,EAE1E,EAAc,EAAO,WAAW,SAAU,CAAC,EAAuB,CACtE,GAAI,EAAQ,KAAK,KAAO,QAAa,EAAQ,OAAQ,MAAO,cAC5D,IAAM,EAAW,MAAO,EAAO,WAAW,IACxC,MAAM,IAAI,IAAI,oBAAqB,EAAQ,KAAK,GAAG,EAAG,CACpD,OAAQ,OACR,QAAS,IAAK,EAAQ,EAAQ,QAAQ,EAAG,eAAgB,kBAAmB,EAC5E,KAAM,KAAK,UAAU,CAAE,WAAY,EAAQ,KAAK,EAAG,CAAC,EACpD,OAAQ,YAAY,QAAQ,IAAK,CACnC,CAAC,CACH,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvD,GAAI,IAAa,QAAa,EAAS,SAAW,KAAO,EAAS,SAAW,IAAK,MAAO,cACzF,IAAM,EAAO,MAAO,EAAO,WAAW,IAAM,EAAS,KAAK,CAAC,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EAC5G,EAAU,EAAmB,CAAI,EACvC,GAAI,CAAC,EAAS,IAAM,EAAO,OAAO,CAAO,GAAK,CAAC,EAAQ,MAAM,SAAU,MAAO,WAC9E,MAAO,WACR,EAGY,EAAU,CAAE,WAAU,SAAQ,OAAM,UAAS,MAAK",
"debugId": "007691B63A90C92F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/services/standalone.ts", "src/services/server-connection.ts"],
"sourcesContent": [
"import { Service, type Endpoint } from \"@opencode-ai/client/effect/service\"\nimport { CrossSpawnSpawner } from \"@opencode-ai/core/cross-spawn-spawner\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { Effect, Schema, Stream } from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/unstable/process\"\nimport { randomBytes } from \"node:crypto\"\nimport path from \"node:path\"\n\nconst Ready = Schema.Struct({ url: Schema.String })\nconst decodeReady = Schema.decodeUnknownPromise(Schema.fromJsonString(Ready))\n\ntype Options = {\n readonly command?: ReadonlyArray<string>\n}\n\nfunction command(password: string, options: Options) {\n const compiled = path.basename(process.execPath).replace(/\\.exe$/, \"\") !== \"bun\"\n const entrypoint = compiled ? [] : process.argv[1] ? [process.argv[1]] : []\n if (!compiled && entrypoint.length === 0) throw new Error(\"Failed to resolve CLI entrypoint\")\n const [executable, ...args] = options.command ?? [process.execPath, ...entrypoint, \"serve\"]\n if (!executable) throw new Error(\"Failed to resolve standalone server command\")\n return ChildProcess.make(executable, [...args, \"--stdio\", \"--port\", \"0\"], {\n cwd: process.cwd(),\n // Explicit entry wins over anything inherited, so a user-exported\n // OPENCODE_PASSWORD cannot shadow the child's lease credential.\n env: { OPENCODE_PASSWORD: password },\n extendEnv: true,\n // The server treats EOF on this pipe as the end of its ownership lease.\n // The OS closes it even when the TUI is killed before Effect finalizers run.\n stdin: \"pipe\",\n stderr: \"ignore\",\n killSignal: \"SIGTERM\",\n forceKillAfter: \"3 seconds\",\n })\n}\n\nconst makeEndpoint = Effect.fn(\"cli.standalone.endpoint\")(\n function* (options: Options) {\n const password = randomBytes(32).toString(\"base64url\")\n const spawner = yield* ChildProcessSpawner.ChildProcessSpawner\n const proc = yield* spawner.spawn(command(password, options))\n const output = yield* proc.stdout.pipe(Stream.decodeText(), Stream.splitLines, Stream.take(1), Stream.mkString)\n if (!output) return yield* Effect.fail(new Error(\"Standalone server exited before reporting readiness\"))\n const ready = yield* Effect.tryPromise(() => decodeReady(output))\n return {\n url: ready.url,\n auth: { type: \"basic\" as const, username: \"opencode\", password },\n pid: proc.pid,\n } satisfies Endpoint & { readonly pid: number }\n },\n Effect.provide(AppNodeBuilder.build(CrossSpawnSpawner.node)),\n)\n\nexport function start(options: Options = {}) {\n return makeEndpoint(options)\n}\n\nexport * as Standalone from \"./standalone\"\n",
"import { Service, type Endpoint, type EnsureOptions } from \"@opencode-ai/client/effect/service\"\nimport { ClientError, isUnauthorizedError, OpenCode } from \"@opencode-ai/client/promise\"\nimport { InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { Effect, Redacted } from \"effect\"\nimport { Env } from \"../env\"\nimport { ServiceConfig } from \"./service-config\"\nimport { Standalone } from \"./standalone\"\n\nexport type Args = {\n readonly server?: string\n readonly standalone?: boolean\n readonly mismatch?: \"replace\" | \"ignore\" | \"error\"\n readonly onStart?: EnsureOptions[\"onStart\"]\n}\n\nexport type Resolved = {\n readonly endpoint: Endpoint\n readonly service?: ReturnType<typeof managedService>\n}\n\nexport const resolve = Effect.fn(\"cli.server-connection.resolve\")(function* (args: Args) {\n if (args.server !== undefined && args.standalone)\n return yield* Effect.fail(new Error(\"--server and --standalone cannot be combined\"))\n if (args.server !== undefined) {\n const password = yield* Env.password\n const endpoint = {\n url: args.server,\n auth: password ? { type: \"basic\" as const, username: \"opencode\", password: Redacted.value(password) } : undefined,\n } satisfies Endpoint\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const health = yield* Effect.tryPromise({\n try: () => client.health.get({ signal: AbortSignal.timeout(5_000) }),\n catch: (cause) => connectError(endpoint, cause),\n })\n if (health.version !== InstallationVersion)\n process.stderr.write(\n `Warning: Server at ${endpoint.url} has version ${health.version}; this client is ${InstallationVersion}. Continuing anyway.\\n`,\n )\n return { endpoint } satisfies Resolved\n }\n if (args.standalone) {\n return { endpoint: yield* Standalone.start() } satisfies Resolved\n }\n\n const options = yield* ServiceConfig.options()\n return {\n endpoint: yield* resolveManaged({ ...options, onStart: args.onStart }, args.mismatch ?? \"replace\"),\n service: managedService(options),\n } satisfies Resolved\n})\n\nfunction managedService(options: EnsureOptions) {\n const reconnectOptions = { ...options, version: undefined }\n return {\n reconnect: () => Service.ensure(reconnectOptions),\n restart: () =>\n Effect.gen(function* () {\n yield* Service.stop(options)\n yield* Service.ensure(options)\n }),\n }\n}\n\nconst resolveManaged = Effect.fnUntraced(function* (\n options: EnsureOptions,\n mismatch: NonNullable<Args[\"mismatch\"]>,\n) {\n if (mismatch === \"replace\") return yield* Service.ensure(options)\n if (mismatch === \"ignore\") return yield* Service.ensure({ ...options, version: undefined })\n\n const compatible = yield* Service.discover(options)\n if (compatible !== undefined) return compatible\n const existing = yield* Service.discover({ ...options, version: undefined })\n if (existing !== undefined)\n return yield* Effect.fail(new Error(\"Background server version does not match this client\"))\n return yield* Service.ensure(options)\n})\n\nfunction connectError(endpoint: Endpoint, cause: unknown) {\n if (isUnauthorizedError(cause)) {\n return new Error(\n endpoint.auth === undefined\n ? `Server at ${endpoint.url} requires a password; set OPENCODE_PASSWORD`\n : `Server at ${endpoint.url} rejected the password`,\n { cause },\n )\n }\n if (cause instanceof ClientError && cause.reason === \"Transport\")\n return new Error(`Could not reach server at ${endpoint.url}`, { cause })\n return new Error(`Server at ${endpoint.url} did not provide a compatible V2 health response`, { cause })\n}\n\nexport * as ServerConnection from \"./server-connection\"\n"
],
"mappings": "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",
"debugId": "BA822F4F69BE290064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/flag/flag.ts", "../core/src/global.ts", "../../node_modules/.bun/xdg-basedir@5.1.0/node_modules/xdg-basedir/index.js", "../core/src/util/flock.ts", "../core/src/util/hash.ts"],
"sourcesContent": [
"import { Config } from \"effect\"\n\nexport function truthy(key: string) {\n const value = process.env[key]?.toLowerCase()\n return value === \"true\" || value === \"1\"\n}\n\nconst copy = process.env[\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"]\nconst fff = process.env[\"OPENCODE_DISABLE_FFF\"]\n\nfunction enabledByExperimental(key: string) {\n return process.env[key] === undefined ? truthy(\"OPENCODE_EXPERIMENTAL\") : truthy(key)\n}\n\nexport const Flag = {\n OTEL_EXPORTER_OTLP_ENDPOINT: process.env[\"OTEL_EXPORTER_OTLP_ENDPOINT\"],\n OTEL_EXPORTER_OTLP_HEADERS: process.env[\"OTEL_EXPORTER_OTLP_HEADERS\"],\n\n OPENCODE_AUTO_HEAP_SNAPSHOT: truthy(\"OPENCODE_AUTO_HEAP_SNAPSHOT\"),\n OPENCODE_GIT_BASH_PATH: process.env[\"OPENCODE_GIT_BASH_PATH\"],\n OPENCODE_CONFIG: process.env[\"OPENCODE_CONFIG\"],\n OPENCODE_CONFIG_CONTENT: process.env[\"OPENCODE_CONFIG_CONTENT\"],\n OPENCODE_DISABLE_AUTOUPDATE: truthy(\"OPENCODE_DISABLE_AUTOUPDATE\"),\n OPENCODE_ALWAYS_NOTIFY_UPDATE: truthy(\"OPENCODE_ALWAYS_NOTIFY_UPDATE\"),\n OPENCODE_DISABLE_PRUNE: truthy(\"OPENCODE_DISABLE_PRUNE\"),\n OPENCODE_DISABLE_TERMINAL_TITLE: truthy(\"OPENCODE_DISABLE_TERMINAL_TITLE\"),\n OPENCODE_SHOW_TTFD: truthy(\"OPENCODE_SHOW_TTFD\"),\n OPENCODE_DISABLE_AUTOCOMPACT: truthy(\"OPENCODE_DISABLE_AUTOCOMPACT\"),\n OPENCODE_DISABLE_MODELS_FETCH: truthy(\"OPENCODE_DISABLE_MODELS_FETCH\"),\n OPENCODE_DISABLE_MOUSE: truthy(\"OPENCODE_DISABLE_MOUSE\"),\n OPENCODE_FAKE_VCS: process.env[\"OPENCODE_FAKE_VCS\"],\n OPENCODE_SERVER_PASSWORD: process.env[\"OPENCODE_SERVER_PASSWORD\"],\n OPENCODE_SERVER_USERNAME: process.env[\"OPENCODE_SERVER_USERNAME\"],\n OPENCODE_DISABLE_FFF: fff === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_DISABLE_FFF\"),\n OPENCODE_DISABLE_FILEWATCHER: truthy(\"OPENCODE_DISABLE_FILEWATCHER\"),\n\n // Experimental\n OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:\n copy === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"),\n OPENCODE_MODELS_URL: process.env[\"OPENCODE_MODELS_URL\"],\n OPENCODE_MODELS_PATH: process.env[\"OPENCODE_MODELS_PATH\"],\n OPENCODE_DB: process.env[\"OPENCODE_DB\"],\n\n OPENCODE_WORKSPACE_ID: process.env[\"OPENCODE_WORKSPACE_ID\"],\n OPENCODE_EXPERIMENTAL_WORKSPACES: enabledByExperimental(\"OPENCODE_EXPERIMENTAL_WORKSPACES\"),\n\n // Evaluated at access time (not module load) because tests, the CLI, and\n // external tooling set these env vars at runtime.\n get OPENCODE_DISABLE_PROJECT_CONFIG() {\n return truthy(\"OPENCODE_DISABLE_PROJECT_CONFIG\")\n },\n get OPENCODE_EXPERIMENTAL_REFERENCES() {\n return enabledByExperimental(\"OPENCODE_EXPERIMENTAL_REFERENCES\")\n },\n get OPENCODE_TUI_CONFIG() {\n return process.env[\"OPENCODE_TUI_CONFIG\"]\n },\n get OPENCODE_CONFIG_DIR() {\n return process.env[\"OPENCODE_CONFIG_DIR\"]\n },\n get OPENCODE_PURE() {\n return truthy(\"OPENCODE_PURE\")\n },\n get OPENCODE_PERMISSION() {\n return process.env[\"OPENCODE_PERMISSION\"]\n },\n get OPENCODE_PLUGIN_META_FILE() {\n return process.env[\"OPENCODE_PLUGIN_META_FILE\"]\n },\n get OPENCODE_CLIENT() {\n return process.env[\"OPENCODE_CLIENT\"] ?? \"cli\"\n },\n}\n",
"import path from \"path\"\nimport fs from \"fs/promises\"\nimport { xdgData, xdgCache, xdgConfig, xdgState } from \"xdg-basedir\"\nimport os from \"os\"\nimport { Context, Effect, Layer } from \"effect\"\nimport { Flock } from \"./util/flock\"\nimport { Flag } from \"./flag/flag\"\nimport { makeGlobalNode } from \"./effect/app-node\"\n\nconst app = \"opencode\"\nconst data = path.join(xdgData!, app)\nconst cache = path.join(xdgCache!, app)\nconst config = path.join(xdgConfig!, app)\nconst state = path.join(xdgState!, app)\nconst tmp = path.join(os.tmpdir(), app)\n\nconst paths = {\n get home() {\n return process.env.OPENCODE_TEST_HOME ?? os.homedir()\n },\n data,\n bin: path.join(cache, \"bin\"),\n log: path.join(data, \"log\"),\n repos: path.join(data, \"repos\"),\n cache,\n config,\n state,\n tmp,\n}\n\nexport const Path = paths\n\nFlock.setGlobal({ state })\n\nawait Promise.all([\n fs.mkdir(Path.data, { recursive: true }),\n fs.mkdir(Path.config, { recursive: true }),\n fs.mkdir(Path.state, { recursive: true }),\n fs.mkdir(Path.tmp, { recursive: true }),\n fs.mkdir(Path.log, { recursive: true }),\n fs.mkdir(Path.bin, { recursive: true }),\n fs.mkdir(Path.repos, { recursive: true }),\n])\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/Global\") {}\n\nexport interface Interface {\n readonly home: string\n readonly data: string\n readonly cache: string\n readonly config: string\n readonly state: string\n readonly tmp: string\n readonly bin: string\n readonly log: string\n readonly repos: string\n}\n\nexport function make(input: Partial<Interface> = {}): Interface {\n return {\n home: Path.home,\n data: Path.data,\n cache: Path.cache,\n config: Flag.OPENCODE_CONFIG_DIR ?? Path.config,\n state: Path.state,\n tmp: Path.tmp,\n bin: Path.bin,\n log: Path.log,\n repos: Path.repos,\n ...input,\n }\n}\n\nconst layer = Layer.effect(\n Service,\n Effect.sync(() => Service.of(make())),\n)\n\nexport const node = makeGlobalNode({ service: Service, layer: layer, deps: [] })\n\nexport const layerWith = (input: Partial<Interface>) =>\n Layer.effect(\n Service,\n Effect.sync(() => Service.of(make(input))),\n )\n\nexport * as Global from \"./global\"\n",
"import os from 'os';\nimport path from 'path';\n\nconst homeDirectory = os.homedir();\nconst {env} = process;\n\nexport const xdgData = env.XDG_DATA_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined);\n\nexport const xdgConfig = env.XDG_CONFIG_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.config') : undefined);\n\nexport const xdgState = env.XDG_STATE_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'state') : undefined);\n\nexport const xdgCache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined);\n\nexport const xdgRuntime = env.XDG_RUNTIME_DIR || undefined;\n\nexport const xdgDataDirectories = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':');\n\nif (xdgData) {\n\txdgDataDirectories.unshift(xdgData);\n}\n\nexport const xdgConfigDirectories = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':');\n\nif (xdgConfig) {\n\txdgConfigDirectories.unshift(xdgConfig);\n}\n",
"import path from \"path\"\nimport os from \"os\"\nimport { randomBytes, randomUUID } from \"crypto\"\nimport { mkdir, readFile, rm, stat, utimes, writeFile } from \"fs/promises\"\nimport { Hash } from \"./hash\"\nimport { Effect } from \"effect\"\n\nexport type FlockGlobal = {\n state: string\n}\n\nexport namespace Flock {\n let global: FlockGlobal | undefined\n\n export function setGlobal(g: FlockGlobal) {\n global = g\n }\n\n const root = () => {\n if (!global) throw new Error(\"Flock global not set\")\n return path.join(global.state, \"locks\")\n }\n\n // Defaults for callers that do not provide timing options.\n const defaultOpts = {\n staleMs: 60_000,\n timeoutMs: 5 * 60_000,\n baseDelayMs: 100,\n maxDelayMs: 2_000,\n }\n\n export interface WaitEvent {\n key: string\n attempt: number\n delay: number\n waited: number\n }\n\n export type Wait = (input: WaitEvent) => void | Promise<void>\n\n export interface Options {\n dir?: string\n signal?: AbortSignal\n staleMs?: number\n timeoutMs?: number\n baseDelayMs?: number\n maxDelayMs?: number\n onWait?: Wait\n }\n\n type Opts = {\n staleMs: number\n timeoutMs: number\n baseDelayMs: number\n maxDelayMs: number\n }\n\n type Owned = {\n acquired: true\n startHeartbeat: (intervalMs?: number) => void\n release: () => Promise<void>\n }\n\n export interface Lease {\n release: () => Promise<void>\n [Symbol.asyncDispose]: () => Promise<void>\n }\n\n function code(err: unknown) {\n if (typeof err !== \"object\" || err === null || !(\"code\" in err)) return\n const value = err.code\n if (typeof value !== \"string\") return\n return value\n }\n\n function sleep(ms: number, signal?: AbortSignal) {\n return new Promise<void>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason ?? new Error(\"Aborted\"))\n return\n }\n\n let timer: NodeJS.Timeout | undefined\n\n const done = () => {\n signal?.removeEventListener(\"abort\", abort)\n resolve()\n }\n\n const abort = () => {\n if (timer) {\n clearTimeout(timer)\n }\n signal?.removeEventListener(\"abort\", abort)\n reject(signal?.reason ?? new Error(\"Aborted\"))\n }\n\n signal?.addEventListener(\"abort\", abort, { once: true })\n timer = setTimeout(done, ms)\n })\n }\n\n function jitter(ms: number) {\n const j = Math.floor(ms * 0.3)\n const d = Math.floor(Math.random() * (2 * j + 1)) - j\n return Math.max(0, ms + d)\n }\n\n function mono() {\n return performance.now()\n }\n\n function wall() {\n return performance.timeOrigin + mono()\n }\n\n async function stats(file: string) {\n try {\n return await stat(file)\n } catch (err) {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") return\n throw err\n }\n }\n\n async function stale(lockDir: string, heartbeatPath: string, metaPath: string, staleMs: number) {\n // Stale detection allows automatic recovery after crashed owners.\n const now = wall()\n const heartbeat = await stats(heartbeatPath)\n if (heartbeat) {\n return now - heartbeat.mtimeMs > staleMs\n }\n\n const meta = await stats(metaPath)\n if (meta) {\n return now - meta.mtimeMs > staleMs\n }\n\n const dir = await stats(lockDir)\n if (!dir) {\n return false\n }\n\n return now - dir.mtimeMs > staleMs\n }\n\n async function tryAcquireLockDir(lockDir: string, opts: Opts): Promise<Owned | { acquired: false }> {\n const token = randomUUID?.() ?? randomBytes(16).toString(\"hex\")\n const metaPath = path.join(lockDir, \"meta.json\")\n const heartbeatPath = path.join(lockDir, \"heartbeat\")\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (err) {\n if (code(err) !== \"EEXIST\") {\n throw err\n }\n\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n const breakerPath = lockDir + \".breaker\"\n try {\n await mkdir(breakerPath, { mode: 0o700 })\n } catch (claimErr) {\n const errCode = code(claimErr)\n if (errCode === \"EEXIST\") {\n const breaker = await stats(breakerPath)\n if (breaker && wall() - breaker.mtimeMs > opts.staleMs) {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n return { acquired: false }\n }\n\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n return { acquired: false }\n }\n\n throw claimErr\n }\n\n try {\n // Breaker ownership ensures only one contender performs stale cleanup.\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n await rm(lockDir, { recursive: true, force: true })\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (retryErr) {\n const errCode = code(retryErr)\n if (errCode === \"EEXIST\" || errCode === \"ENOTEMPTY\") {\n return { acquired: false }\n }\n throw retryErr\n }\n } finally {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n }\n\n const meta = {\n token,\n pid: process.pid,\n hostname: os.hostname(),\n createdAt: new Date().toISOString(),\n }\n\n await writeFile(heartbeatPath, \"\", { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but heartbeat already existed (possible compromise).\")\n })\n\n await writeFile(metaPath, JSON.stringify(meta, null, 2), { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but meta.json already existed (possible compromise).\")\n })\n\n let timer: NodeJS.Timeout | undefined\n\n const startHeartbeat = (intervalMs = Math.max(100, Math.floor(opts.staleMs / 3))) => {\n if (timer) return\n // Heartbeat prevents long critical sections from being evicted as stale.\n timer = setInterval(() => {\n const t = new Date()\n void utimes(heartbeatPath, t, t).catch(() => undefined)\n }, intervalMs)\n timer.unref?.()\n }\n\n const release = async () => {\n if (timer) {\n clearInterval(timer)\n timer = undefined\n }\n\n const current = await readFile(metaPath, \"utf8\")\n .then((raw) => {\n const parsed = JSON.parse(raw)\n if (!parsed || typeof parsed !== \"object\") return {}\n return {\n token: \"token\" in parsed && typeof parsed.token === \"string\" ? parsed.token : undefined,\n }\n })\n .catch((err) => {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n throw new Error(\"Refusing to release: lock is compromised (metadata missing).\")\n }\n if (err instanceof SyntaxError) {\n throw new Error(\"Refusing to release: lock is compromised (metadata invalid).\")\n }\n throw err\n })\n // Token check prevents deleting a lock that was re-acquired by another process.\n if (current.token !== token) {\n throw new Error(\"Refusing to release: lock token mismatch (not the owner).\")\n }\n\n await rm(lockDir, { recursive: true, force: true })\n }\n\n return {\n acquired: true,\n startHeartbeat,\n release,\n }\n }\n\n async function acquireLockDir(\n lockDir: string,\n input: { key: string; onWait?: Wait; signal?: AbortSignal },\n opts: Opts,\n ) {\n const stop = mono() + opts.timeoutMs\n let attempt = 0\n let waited = 0\n let delay = opts.baseDelayMs\n\n while (true) {\n input.signal?.throwIfAborted()\n\n const res = await tryAcquireLockDir(lockDir, opts)\n if (res.acquired) {\n return res\n }\n\n if (mono() > stop) {\n throw new Error(`Timed out waiting for lock: ${input.key}`)\n }\n\n attempt += 1\n const ms = jitter(delay)\n await input.onWait?.({\n key: input.key,\n attempt,\n delay: ms,\n waited,\n })\n await sleep(ms, input.signal)\n waited += ms\n delay = Math.min(opts.maxDelayMs, Math.floor(delay * 1.7))\n }\n }\n\n export async function acquire(key: string, input: Options = {}): Promise<Lease> {\n input.signal?.throwIfAborted()\n const cfg: Opts = {\n staleMs: input.staleMs ?? defaultOpts.staleMs,\n timeoutMs: input.timeoutMs ?? defaultOpts.timeoutMs,\n baseDelayMs: input.baseDelayMs ?? defaultOpts.baseDelayMs,\n maxDelayMs: input.maxDelayMs ?? defaultOpts.maxDelayMs,\n }\n const dir = input.dir ?? root()\n\n await mkdir(dir, { recursive: true })\n const lockfile = path.join(dir, Hash.fast(key) + \".lock\")\n const lock = await acquireLockDir(\n lockfile,\n {\n key,\n onWait: input.onWait,\n signal: input.signal,\n },\n cfg,\n )\n lock.startHeartbeat()\n\n const release = () => lock.release()\n return {\n release,\n [Symbol.asyncDispose]() {\n return release()\n },\n }\n }\n\n export async function withLock<T>(key: string, fn: () => Promise<T>, input: Options = {}) {\n await using _ = await acquire(key, input)\n input.signal?.throwIfAborted()\n return await fn()\n }\n\n export const effect = Effect.fn(\"Flock.effect\")(function* (key: string, input: Options = {}) {\n return yield* Effect.acquireRelease(\n Effect.promise((signal) => Flock.acquire(key, { ...input, signal })).pipe(\n Effect.withSpan(\"Flock.acquire\", {\n attributes: { key },\n }),\n ),\n (lock) => Effect.promise(() => lock.release()).pipe(Effect.withSpan(\"Flock.release\")),\n ).pipe(Effect.asVoid)\n })\n}\n",
"import { createHash } from \"crypto\"\n\nexport namespace Hash {\n export function fast(input: string | Buffer): string {\n return createHash(\"sha1\").update(input).digest(\"hex\")\n }\n\n export function sha256(input: string | Buffer): string {\n return createHash(\"sha256\").update(input).digest(\"hex\")\n }\n}\n"
],
"mappings": "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",
"debugId": "69DDB4A8206C1F4164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "5C1357249B3C04C864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../simulation/src/frontend/actions.ts", "../simulation/src/recording.ts", "../simulation/src/frontend/renderer.ts", "../simulation/src/frontend/server.ts", "../simulation/src/frontend/simulation.ts"],
"sourcesContent": [
"import { tmpdir } from \"node:os\"\nimport { extname, join, resolve } from \"node:path\"\nimport type { CliRenderer, Renderable } from \"@opentui/core\"\nimport { createMockKeys, createMockMouse, type MockInput, type MockMouse } from \"@opentui/core/testing\"\nimport { Config, Effect, FileSystem } from \"effect\"\nimport type { SimulationProtocol } from \"../protocol\"\nimport { SimulationRenderer } from \"./renderer\"\n\nexport type Action = SimulationProtocol.Frontend.Action\nexport type Element = SimulationProtocol.Frontend.Element\n\nexport interface Harness {\n readonly renderer: CliRenderer\n readonly mockInput: MockInput\n readonly mockMouse: MockMouse\n readonly resize: (cols: number, rows: number) => void\n readonly renderOnce: () => Promise<void>\n readonly screen: () => string\n}\n\ntype RenderBuffer = {\n readonly width: number\n readonly height: number\n getRealCharBytes(includeAnsi?: boolean): Uint8Array\n}\n\nconst decoder = new TextDecoder()\n\nfunction children(renderable: Renderable) {\n return renderable.getChildren().filter((child): child is Renderable => \"num\" in child)\n}\n\nfunction all(renderable: Renderable): Renderable[] {\n return [renderable, ...children(renderable).flatMap(all)]\n}\n\nfunction mouseListeners(renderable: Renderable) {\n const general = Reflect.get(renderable, \"_mouseListener\")\n const specific = Reflect.get(renderable, \"_mouseListeners\")\n return Boolean(general) || (specific && typeof specific === \"object\" && Object.keys(specific).length > 0)\n}\n\nfunction hit(renderer: CliRenderer, renderable: Renderable) {\n if (renderable.width <= 0 || renderable.height <= 0) return false\n const x = Math.floor(renderable.screenX + renderable.width / 2)\n const y = Math.floor(renderable.screenY + renderable.height / 2)\n return renderer.hitTest(x, y) === renderable.num\n}\n\n/**\n * Builds the harness the simulation server drives.\n *\n * When the renderer is the headless simulation renderer, its TestRendererSetup\n * provides the supported testing APIs. For the visible terminal renderer the\n * harness falls back to `requestRender` + `idle` and reading the private\n * `currentRenderBuffer`.\n */\nexport function createHarness(renderer: CliRenderer): Harness {\n const setup = SimulationRenderer.setupFor(renderer)\n return {\n renderer,\n mockInput: setup?.mockInput ?? createMockKeys(renderer),\n mockMouse: setup?.mockMouse ?? createMockMouse(renderer),\n resize: setup?.resize ?? ((cols, rows) => renderer.resize(cols, rows)),\n renderOnce:\n setup?.renderOnce ??\n (async () => {\n renderer.requestRender()\n await renderer.idle()\n }),\n // captureCharFrame follows the test renderer's output sink. Recording\n // redirects that sink to the timeline, so read the live render buffer\n // instead; it is also the source used by screenshots.\n screen: () => decoder.decode((Reflect.get(renderer, \"currentRenderBuffer\") as RenderBuffer).getRealCharBytes()),\n }\n}\n\nexport function elements(renderer: CliRenderer): Element[] {\n return all(renderer.root)\n .filter((renderable) => renderable.visible && !renderable.isDestroyed)\n .map((renderable) => {\n const clickable = mouseListeners(renderable) && hit(renderer, renderable)\n return {\n id: renderable.id,\n num: renderable.num,\n x: renderable.screenX,\n y: renderable.screenY,\n width: renderable.width,\n height: renderable.height,\n focusable: renderable.focusable,\n focused: renderable.focused,\n clickable,\n editor: renderer.currentFocusedEditor === renderable,\n } satisfies Element\n })\n .filter((element) => element.focusable || element.clickable || element.editor)\n}\n\nexport function state(harness: Harness) {\n return {\n focused: {\n renderable: harness.renderer.currentFocusedRenderable?.num,\n editor: Boolean(harness.renderer.currentFocusedEditor),\n },\n elements: elements(harness.renderer),\n }\n}\n\nexport function matches(harness: Pick<Harness, \"screen\">, text: string) {\n return harness.screen().includes(text)\n}\n\nexport const capture = Effect.fn(\"SimulationActions.capture\")(function* (harness: Harness) {\n yield* Effect.tryPromise(() => harness.renderOnce())\n const buffer = harness.renderer.currentRenderBuffer\n return {\n cols: buffer.width,\n rows: buffer.height,\n cursor: [0, 0] as const,\n lines: buffer.getSpanLines().map((line) => ({\n spans: line.spans.map((span) => ({\n text: span.text,\n fg: span.fg.toInts(),\n bg: span.bg.toInts(),\n attributes: span.attributes,\n width: span.width,\n })),\n })),\n } satisfies SimulationProtocol.Frontend.CapturedFrame\n})\n\nexport const screenshot = Effect.fn(\"SimulationActions.screenshot\")(function* (harness: Harness, name?: string) {\n const filename = name ?? `screenshot-${crypto.randomUUID()}`\n if (!filename || filename.includes(\"/\") || filename.includes(\"\\\\\") || extname(filename))\n return yield* Effect.fail(new Error(\"screenshot name must not contain a path or extension\"))\n yield* Effect.tryPromise(() => harness.renderOnce())\n const { SimulationPng } = yield* Effect.promise(() => import(\"./png\"))\n const image = SimulationPng.screenshot(harness.renderer)\n const directory = resolve(\n yield* Config.string(\"OPENCODE_DRIVE_MEDIA_DIR\").pipe(\n Config.withDefault(join(tmpdir(), \"opencode-drive\", \"output\")),\n ),\n )\n const fs = yield* FileSystem.FileSystem\n yield* fs.makeDirectory(directory, { recursive: true })\n const path = join(directory, `${filename}.png`)\n yield* fs.writeFile(path, image.data)\n return path\n})\n\nexport const execute = Effect.fn(\"SimulationActions.execute\")(function* (harness: Harness, action: Action) {\n switch (action.type) {\n case \"ui.type\":\n yield* Effect.tryPromise(() => harness.mockInput.typeText(action.text))\n break\n case \"ui.press\":\n harness.mockInput.pressKey(action.key, action.modifiers)\n break\n case \"ui.enter\":\n harness.mockInput.pressEnter()\n break\n case \"ui.arrow\":\n harness.mockInput.pressArrow(action.direction)\n break\n case \"ui.focus\":\n all(harness.renderer.root)\n .find((item) => item.num === action.target)\n ?.focus()\n break\n case \"ui.click\":\n yield* Effect.tryPromise(() => harness.mockMouse.click(action.x, action.y))\n break\n case \"ui.resize\":\n if (\n !Number.isSafeInteger(action.cols) ||\n action.cols <= 0 ||\n !Number.isSafeInteger(action.rows) ||\n action.rows <= 0\n ) {\n return yield* Effect.fail(new Error(\"resize cols and rows must be positive integers\"))\n }\n harness.resize(action.cols, action.rows)\n SimulationRenderer.recordResize(harness.renderer, action.cols, action.rows)\n break\n }\n yield* Effect.tryPromise(() => harness.renderOnce())\n return state(harness)\n})\n\nexport * as SimulationActions from \"./actions\"\n",
"import { createWriteStream, type WriteStream } from \"node:fs\"\nimport { mkdir } from \"node:fs/promises\"\nimport { dirname } from \"node:path\"\nimport { Writable } from \"node:stream\"\nimport { finished } from \"node:stream/promises\"\nimport { Schema } from \"effect\"\n\nexport const Header = Schema.Struct({\n type: Schema.Literal(\"header\"),\n version: Schema.Literal(1),\n cols: Schema.Number,\n rows: Schema.Number,\n encoding: Schema.Literal(\"base64\"),\n})\nexport interface Header extends Schema.Schema.Type<typeof Header> {}\n\nexport const Output = Schema.Struct({\n type: Schema.Literal(\"output\"),\n at_ms: Schema.Number,\n data: Schema.String,\n})\nexport interface Output extends Schema.Schema.Type<typeof Output> {}\n\nexport const Resize = Schema.Struct({\n type: Schema.Literal(\"resize\"),\n at_ms: Schema.Number,\n cols: Schema.Number,\n rows: Schema.Number,\n})\nexport interface Resize extends Schema.Schema.Type<typeof Resize> {}\n\nexport const Event = Schema.Union([Header, Output, Resize])\nexport type Event = Schema.Schema.Type<typeof Event>\n\nexport class Timeline extends Writable {\n readonly isTTY = true\n readonly path: string\n readonly columns: number\n readonly rows: number\n private readonly output: WriteStream\n private readonly started = performance.now()\n private readonly timestamps: number[] = []\n private done?: Promise<string>\n\n private constructor(path: string, cols: number, rows: number, output: WriteStream) {\n super()\n this.path = path\n this.columns = cols\n this.rows = rows\n this.output = output\n // finish() reports stream failures; keep Writable from also throwing them process-wide.\n this.on(\"error\", () => {})\n output.on(\"error\", (error) => this.destroy(error))\n }\n\n static async create(path: string, cols: number, rows: number) {\n await mkdir(dirname(path), { recursive: true })\n const output = createWriteStream(path)\n const timeline = new Timeline(path, cols, rows, output)\n await new Promise<void>((resolve, reject) => {\n output.write(\n `${JSON.stringify({ type: \"header\", version: 1, cols, rows, encoding: \"base64\" } satisfies Header)}\\n`,\n (error) => (error ? reject(error) : resolve()),\n )\n })\n return timeline\n }\n\n getColorDepth() {\n return 24\n }\n\n override write(chunk: unknown, callback?: (error?: Error | null) => void): boolean\n override write(chunk: unknown, encoding: BufferEncoding, callback?: (error?: Error | null) => void): boolean\n override write(\n chunk: unknown,\n encoding?: BufferEncoding | ((error?: Error | null) => void),\n callback?: (error?: Error | null) => void,\n ) {\n if (!this.writableEnded) {\n this.timestamps.push(this.elapsed())\n if (typeof encoding === \"function\") return super.write(chunk, encoding)\n if (encoding === undefined) return super.write(chunk, callback)\n return super.write(chunk, encoding, callback)\n }\n const done = typeof encoding === \"function\" ? encoding : callback\n queueMicrotask(() => done?.(null))\n return true\n }\n\n override _write(chunk: Buffer, _encoding: BufferEncoding, callback: (error?: Error | null) => void) {\n this.writeOutput(chunk, this.timestamps.shift() ?? this.elapsed(), callback)\n }\n\n override _final(callback: (error?: Error | null) => void) {\n this.writeOutput(Buffer.alloc(0), this.elapsed(), (error) => {\n if (error) return callback(error)\n this.output.end(callback)\n })\n }\n\n finish() {\n if (this.done) return this.done\n this.end()\n this.done = finished(this).then(() => this.path)\n return this.done\n }\n\n resize(cols: number, rows: number) {\n if (this.writableEnded) return\n const event = { type: \"resize\", at_ms: this.elapsed(), cols, rows } satisfies Resize\n this.output.write(`${JSON.stringify(event)}\\n`)\n }\n\n private elapsed() {\n return Math.max(0, Math.round(performance.now() - this.started))\n }\n\n private writeOutput(data: Buffer, at_ms: number, callback: (error?: Error | null) => void) {\n const event = {\n type: \"output\",\n at_ms,\n data: data.toString(\"base64\"),\n } satisfies Output\n this.output.write(`${JSON.stringify(event)}\\n`, callback)\n }\n}\n\nexport * as SimulationRecording from \"./recording\"\n",
"import type { CliRenderer, CliRendererConfig } from \"@opentui/core\"\nimport { createTestRenderer, type TestRendererSetup } from \"@opentui/core/testing\"\nimport { Effect } from \"effect\"\nimport { Timeline } from \"../recording\"\n\nconst setups = new WeakMap<CliRenderer, TestRendererSetup>()\nconst recordings = new WeakMap<CliRenderer, Timeline>()\n\n/**\n * Creates a headless renderer with optional recording: a real CliRenderer\n * backed by an in-memory screen buffer. The TestRendererSetup is kept\n * module-side so the harness can use supported testing APIs without app\n * code carrying it around.\n */\nexport interface Viewport {\n readonly cols: number\n readonly rows: number\n}\n\nexport const create = Effect.fn(\"SimulationRenderer.create\")(function* (\n options: CliRendererConfig,\n path?: string,\n viewport?: Viewport,\n) {\n const cols = viewport?.cols ?? 100\n const rows = viewport?.rows ?? 40\n const recording = path\n ? yield* Effect.acquireRelease(\n Effect.tryPromise(() => Timeline.create(path, cols, rows)),\n (recording) =>\n Effect.tryPromise(() => recording.finish()).pipe(\n Effect.catch((error) =>\n Effect.sync(() => process.stderr.write(`Failed to finish UI recording: ${error}\\n`)),\n ),\n ),\n )\n : undefined\n const setup = yield* Effect.acquireRelease(\n Effect.tryPromise(() =>\n createTestRenderer({\n ...options,\n width: cols,\n height: rows,\n ...(recording\n ? {\n stdout: recording as unknown as NodeJS.WriteStream,\n bufferedOutput: \"stdout\" as const,\n }\n : {}),\n }),\n ),\n (setup) =>\n Effect.sync(() => {\n if (!setup.renderer.isDestroyed) setup.renderer.destroy()\n }),\n )\n setups.set(setup.renderer, setup)\n if (recording) recordings.set(setup.renderer, recording)\n return setup.renderer\n})\n\nexport function recordResize(renderer: CliRenderer, cols: number, rows: number) {\n recordings.get(renderer)?.resize(cols, rows)\n}\n\nexport function setupFor(renderer: CliRenderer): TestRendererSetup | undefined {\n return setups.get(renderer)\n}\n\nexport function finish(renderer: CliRenderer) {\n const recording = recordings.get(renderer)\n if (!recording) return Effect.fail(new Error(\"UI recording is not available\"))\n return Effect.tryPromise(() => recording.finish())\n}\n\nexport * as SimulationRenderer from \"./renderer\"\n",
"import { Effect } from \"effect\"\nimport { SimulationControlServer } from \"../control-server\"\nimport { SimulationProtocol } from \"../protocol\"\nimport { SimulationActions, type Harness } from \"./actions\"\nimport { SimulationRenderer } from \"./renderer\"\n\nfunction handle(harness: Harness, request: SimulationProtocol.Frontend.Request) {\n switch (request.method) {\n case \"ui.capture\":\n return SimulationActions.capture(harness)\n case \"ui.screenshot\":\n return SimulationActions.screenshot(harness, request.params?.name)\n case \"ui.state\":\n return Effect.sync(() => SimulationActions.state(harness))\n case \"ui.matches\":\n return Effect.sync(() => SimulationActions.matches(harness, request.params.text))\n case \"ui.recording.finish\":\n return SimulationRenderer.finish(harness.renderer)\n case \"ui.type\":\n return SimulationActions.execute(harness, { type: \"ui.type\", text: request.params.text })\n case \"ui.enter\":\n return SimulationActions.execute(harness, { type: \"ui.enter\" })\n case \"ui.press\":\n return SimulationActions.execute(harness, {\n type: \"ui.press\",\n key: request.params.key,\n modifiers: request.params.modifiers,\n })\n case \"ui.arrow\":\n return SimulationActions.execute(harness, { type: \"ui.arrow\", direction: request.params.direction })\n case \"ui.focus\":\n return SimulationActions.execute(harness, { type: \"ui.focus\", target: request.params.target })\n case \"ui.click\":\n return SimulationActions.execute(harness, {\n type: \"ui.click\",\n target: request.params.target,\n x: request.params.x,\n y: request.params.y,\n })\n case \"ui.resize\":\n return SimulationActions.execute(harness, {\n type: \"ui.resize\",\n cols: request.params.cols,\n rows: request.params.rows,\n })\n }\n}\n\nexport const start = Effect.fn(\"SimulationServer.start\")(function* (harness: Harness, endpoint: string) {\n return yield* SimulationControlServer.start({\n endpoint,\n label: \"opencode drive ui websocket\",\n data: () => ({ drive: true as const }),\n decode: SimulationProtocol.Frontend.decodeRequestEffect,\n handle: (_socket, request) => handle(harness, request),\n })\n})\n\nexport * as SimulationServer from \"./server\"\n",
"import { createCliRenderer, type CliRendererConfig } from \"@opentui/core\"\nimport { Config, Effect } from \"effect\"\nimport { DriveManifest } from \"../manifest\"\nimport { SimulationActions } from \"./actions\"\nimport { SimulationRenderer } from \"./renderer\"\nimport { SimulationServer } from \"./server\"\n\n/** Drive-mode renderer and control-server acquisition. */\nexport const create = Effect.fn(\"Drive.create\")(function* (options: CliRendererConfig) {\n const headless = (yield* Config.string(\"OPENCODE_DRIVE_RENDERER\").pipe(Config.withDefault(\"visible\"))) === \"headless\"\n const manifest = yield* DriveManifest.resolve()\n const renderer = headless\n ? yield* SimulationRenderer.create(options, manifest.recording?.timeline, manifest.viewport)\n : yield* Effect.acquireRelease(\n Effect.tryPromise(() => createCliRenderer(options)),\n (renderer) =>\n Effect.sync(() => {\n if (!renderer.isDestroyed) renderer.destroy()\n }),\n )\n if (!headless && manifest.viewport) renderer.resize(manifest.viewport.cols, manifest.viewport.rows)\n const server = yield* SimulationServer.start(SimulationActions.createHarness(renderer), manifest.endpoints.ui)\n yield* Effect.sync(() => process.stderr.write(`opencode drive ui websocket: ${server.url}\\n`))\n return renderer\n})\n\nexport * as Drive from \"./simulation\"\n"
],
"mappings": "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",
"debugId": "034EEFEEBCBECB8864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260507164347_add_workspace_time.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260507164347_add_workspace_time\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`time_used\\` integer NOT NULL DEFAULT 0;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,oCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qEAAyE,EACxF,EAEL",
"debugId": "214E94AD20A7725C64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-error.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-io.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/auth-config.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/oauth.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/auth-errors.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-util.js"],
"sourcesContent": [
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_error_exports = {};\n__export(token_error_exports, {\n VercelOidcTokenError: () => VercelOidcTokenError\n});\nmodule.exports = __toCommonJS(token_error_exports);\nclass VercelOidcTokenError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = \"VercelOidcTokenError\";\n this.cause = cause;\n }\n toString() {\n if (this.cause) {\n return `${this.name}: ${this.message}: ${this.cause}`;\n }\n return `${this.name}: ${this.message}`;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n VercelOidcTokenError\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_io_exports = {};\n__export(token_io_exports, {\n findRootDir: () => findRootDir,\n getUserDataDir: () => getUserDataDir\n});\nmodule.exports = __toCommonJS(token_io_exports);\nvar import_path = __toESM(require(\"path\"));\nvar import_fs = __toESM(require(\"fs\"));\nvar import_os = __toESM(require(\"os\"));\nvar import_token_error = require(\"./token-error\");\nfunction findRootDir() {\n try {\n let dir = process.cwd();\n while (dir !== import_path.default.dirname(dir)) {\n const pkgPath = import_path.default.join(dir, \".vercel\");\n if (import_fs.default.existsSync(pkgPath)) {\n return dir;\n }\n dir = import_path.default.dirname(dir);\n }\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(\n \"Token refresh only supported in node server environments\"\n );\n }\n return null;\n}\nfunction getUserDataDir() {\n if (process.env.XDG_DATA_HOME) {\n return process.env.XDG_DATA_HOME;\n }\n switch (import_os.default.platform()) {\n case \"darwin\":\n return import_path.default.join(import_os.default.homedir(), \"Library/Application Support\");\n case \"linux\":\n return import_path.default.join(import_os.default.homedir(), \".local/share\");\n case \"win32\":\n if (process.env.LOCALAPPDATA) {\n return process.env.LOCALAPPDATA;\n }\n return null;\n default:\n return null;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n findRootDir,\n getUserDataDir\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar auth_config_exports = {};\n__export(auth_config_exports, {\n isValidAccessToken: () => isValidAccessToken,\n readAuthConfig: () => readAuthConfig,\n writeAuthConfig: () => writeAuthConfig\n});\nmodule.exports = __toCommonJS(auth_config_exports);\nvar fs = __toESM(require(\"fs\"));\nvar path = __toESM(require(\"path\"));\nvar import_token_util = require(\"./token-util\");\nfunction getAuthConfigPath() {\n const dataDir = (0, import_token_util.getVercelDataDir)();\n if (!dataDir) {\n throw new Error(\n `Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`\n );\n }\n return path.join(dataDir, \"auth.json\");\n}\nfunction readAuthConfig() {\n try {\n const authPath = getAuthConfigPath();\n if (!fs.existsSync(authPath)) {\n return null;\n }\n const content = fs.readFileSync(authPath, \"utf8\");\n if (!content) {\n return null;\n }\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n}\nfunction writeAuthConfig(config) {\n const authPath = getAuthConfigPath();\n const authDir = path.dirname(authPath);\n if (!fs.existsSync(authDir)) {\n fs.mkdirSync(authDir, { mode: 504, recursive: true });\n }\n fs.writeFileSync(authPath, JSON.stringify(config, null, 2), { mode: 384 });\n}\nfunction isValidAccessToken(authConfig, expirationBufferMs = 0) {\n if (!authConfig.token)\n return false;\n if (typeof authConfig.expiresAt !== \"number\")\n return true;\n const nowInSeconds = Math.floor(Date.now() / 1e3);\n const bufferInSeconds = expirationBufferMs / 1e3;\n return authConfig.expiresAt >= nowInSeconds + bufferInSeconds;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n isValidAccessToken,\n readAuthConfig,\n writeAuthConfig\n});\n",
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar oauth_exports = {};\n__export(oauth_exports, {\n processTokenResponse: () => processTokenResponse,\n refreshTokenRequest: () => refreshTokenRequest\n});\nmodule.exports = __toCommonJS(oauth_exports);\nvar import_os = require(\"os\");\nconst VERCEL_ISSUER = \"https://vercel.com\";\nconst VERCEL_CLI_CLIENT_ID = \"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp\";\nconst userAgent = `@vercel/oidc node-${process.version} ${(0, import_os.platform)()} (${(0, import_os.arch)()}) ${(0, import_os.hostname)()}`;\nlet _tokenEndpoint = null;\nasync function getTokenEndpoint() {\n if (_tokenEndpoint) {\n return _tokenEndpoint;\n }\n const discoveryUrl = `${VERCEL_ISSUER}/.well-known/openid-configuration`;\n const response = await fetch(discoveryUrl, {\n headers: { \"user-agent\": userAgent }\n });\n if (!response.ok) {\n throw new Error(\"Failed to discover OAuth endpoints\");\n }\n const metadata = await response.json();\n if (!metadata || typeof metadata.token_endpoint !== \"string\") {\n throw new Error(\"Invalid OAuth discovery response\");\n }\n const endpoint = metadata.token_endpoint;\n _tokenEndpoint = endpoint;\n return endpoint;\n}\nasync function refreshTokenRequest(options) {\n const tokenEndpoint = await getTokenEndpoint();\n return await fetch(tokenEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"user-agent\": userAgent\n },\n body: new URLSearchParams({\n client_id: VERCEL_CLI_CLIENT_ID,\n grant_type: \"refresh_token\",\n ...options\n })\n });\n}\nasync function processTokenResponse(response) {\n const json = await response.json();\n if (!response.ok) {\n const errorMsg = typeof json === \"object\" && json && \"error\" in json ? String(json.error) : \"Token refresh failed\";\n return [new Error(errorMsg)];\n }\n if (typeof json !== \"object\" || json === null) {\n return [new Error(\"Invalid token response\")];\n }\n if (typeof json.access_token !== \"string\") {\n return [new Error(\"Missing access_token in response\")];\n }\n if (json.token_type !== \"Bearer\") {\n return [new Error(\"Invalid token_type in response\")];\n }\n if (typeof json.expires_in !== \"number\") {\n return [new Error(\"Missing expires_in in response\")];\n }\n return [null, json];\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n processTokenResponse,\n refreshTokenRequest\n});\n",
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar auth_errors_exports = {};\n__export(auth_errors_exports, {\n AccessTokenMissingError: () => AccessTokenMissingError,\n RefreshAccessTokenFailedError: () => RefreshAccessTokenFailedError\n});\nmodule.exports = __toCommonJS(auth_errors_exports);\nclass AccessTokenMissingError extends Error {\n constructor() {\n super(\n \"No authentication found. Please log in with the Vercel CLI (vercel login).\"\n );\n this.name = \"AccessTokenMissingError\";\n }\n}\nclass RefreshAccessTokenFailedError extends Error {\n constructor(cause) {\n super(\"Failed to refresh authentication token.\", { cause });\n this.name = \"RefreshAccessTokenFailedError\";\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AccessTokenMissingError,\n RefreshAccessTokenFailedError\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_util_exports = {};\n__export(token_util_exports, {\n assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,\n findProjectInfo: () => findProjectInfo,\n getTokenPayload: () => getTokenPayload,\n getVercelDataDir: () => getVercelDataDir,\n getVercelOidcToken: () => getVercelOidcToken,\n getVercelToken: () => getVercelToken,\n isExpired: () => isExpired,\n loadToken: () => loadToken,\n saveToken: () => saveToken\n});\nmodule.exports = __toCommonJS(token_util_exports);\nvar path = __toESM(require(\"path\"));\nvar fs = __toESM(require(\"fs\"));\nvar import_token_error = require(\"./token-error\");\nvar import_token_io = require(\"./token-io\");\nvar import_auth_config = require(\"./auth-config\");\nvar import_oauth = require(\"./oauth\");\nvar import_auth_errors = require(\"./auth-errors\");\nfunction getVercelDataDir() {\n const vercelFolder = \"com.vercel.cli\";\n const dataDir = (0, import_token_io.getUserDataDir)();\n if (!dataDir) {\n return null;\n }\n return path.join(dataDir, vercelFolder);\n}\nasync function getVercelToken(options) {\n const authConfig = (0, import_auth_config.readAuthConfig)();\n if (!authConfig?.token) {\n throw new import_auth_errors.AccessTokenMissingError();\n }\n if ((0, import_auth_config.isValidAccessToken)(authConfig, options?.expirationBufferMs)) {\n return authConfig.token;\n }\n if (!authConfig.refreshToken) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(\"No refresh token available\");\n }\n try {\n const tokenResponse = await (0, import_oauth.refreshTokenRequest)({\n refresh_token: authConfig.refreshToken\n });\n const [tokensError, tokens] = await (0, import_oauth.processTokenResponse)(tokenResponse);\n if (tokensError || !tokens) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(tokensError);\n }\n const updatedConfig = {\n token: tokens.access_token,\n expiresAt: Math.floor(Date.now() / 1e3) + tokens.expires_in\n };\n if (tokens.refresh_token) {\n updatedConfig.refreshToken = tokens.refresh_token;\n }\n (0, import_auth_config.writeAuthConfig)(updatedConfig);\n return updatedConfig.token;\n } catch (error) {\n (0, import_auth_config.writeAuthConfig)({});\n if (error instanceof import_auth_errors.AccessTokenMissingError || error instanceof import_auth_errors.RefreshAccessTokenFailedError) {\n throw error;\n }\n throw new import_auth_errors.RefreshAccessTokenFailedError(error);\n }\n}\nasync function getVercelOidcToken(authToken, projectId, teamId) {\n const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : \"\"}`;\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${authToken}`\n }\n });\n if (!res.ok) {\n throw new import_token_error.VercelOidcTokenError(\n `Failed to refresh OIDC token: ${res.statusText}`\n );\n }\n const tokenRes = await res.json();\n assertVercelOidcTokenResponse(tokenRes);\n return tokenRes;\n}\nfunction assertVercelOidcTokenResponse(res) {\n if (!res || typeof res !== \"object\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again\"\n );\n }\n if (!(\"token\" in res) || typeof res.token !== \"string\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again\"\n );\n }\n}\nfunction findProjectInfo() {\n const dir = (0, import_token_io.findRootDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find project root directory. Have you linked your project with `vc link?`\"\n );\n }\n const prjPath = path.join(dir, \".vercel\", \"project.json\");\n if (!fs.existsSync(prjPath)) {\n throw new import_token_error.VercelOidcTokenError(\n \"project.json not found, have you linked your project with `vc link?`\"\n );\n }\n const prj = JSON.parse(fs.readFileSync(prjPath, \"utf8\"));\n if (typeof prj.projectId !== \"string\" && typeof prj.orgId !== \"string\") {\n throw new TypeError(\n \"Expected a string-valued projectId property. Try running `vc link` to re-link your project.\"\n );\n }\n return { projectId: prj.projectId, teamId: prj.orgId };\n}\nfunction saveToken(token, projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n const tokenJson = JSON.stringify(token);\n fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });\n fs.writeFileSync(tokenPath, tokenJson);\n fs.chmodSync(tokenPath, 432);\n return;\n}\nfunction loadToken(projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = JSON.parse(fs.readFileSync(tokenPath, \"utf8\"));\n assertVercelOidcTokenResponse(token);\n return token;\n}\nfunction getTokenPayload(token) {\n const tokenParts = token.split(\".\");\n if (tokenParts.length !== 3) {\n throw new import_token_error.VercelOidcTokenError(\n \"Invalid token. Please run `vc env pull` and try again\"\n );\n }\n const base64 = tokenParts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(\n base64.length + (4 - base64.length % 4) % 4,\n \"=\"\n );\n return JSON.parse(Buffer.from(padded, \"base64\").toString(\"utf8\"));\n}\nfunction isExpired(token, bufferMs = 0) {\n return token.exp * 1e3 < Date.now() + bufferMs;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n assertVercelOidcTokenResponse,\n findProjectInfo,\n getTokenPayload,\n getVercelDataDir,\n getVercelOidcToken,\n getVercelToken,\n isExpired,\n loadToken,\n saveToken\n});\n"
],
"mappings": ";6EACA,IAAuB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAEnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAe,CAAC,IAAQ,GAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAsB,CAAC,EAC3B,GAAS,EAAqB,CAC5B,qBAAsB,IAAM,CAC9B,CAAC,EACD,EAAO,QAAU,GAAa,CAAmB,EACjD,MAAM,UAA6B,KAAM,CACvC,WAAW,CAAC,EAAS,EAAO,CAC1B,MAAM,CAAO,EACb,KAAK,KAAO,uBACZ,KAAK,MAAQ,EAEf,QAAQ,EAAG,CACT,GAAI,KAAK,MACP,MAAO,GAAG,KAAK,SAAS,KAAK,YAAY,KAAK,QAEhD,MAAO,GAAG,KAAK,SAAS,KAAK,UAEjC,qBClCA,IAAsB,OAAlB,GACmB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,GACsB,eAAtB,IAHY,OAIZ,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAU,CAAC,EAAK,EAAY,KAAY,EAAS,GAAO,KAAO,GAAS,GAAa,CAAG,CAAC,EAAI,CAAC,EAAG,EAKnG,GAAc,CAAC,GAAO,CAAC,EAAI,WAAa,EAAU,EAAQ,UAAW,CAAE,MAAO,EAAK,WAAY,EAAK,CAAC,EAAI,EACzG,CACF,GACI,GAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAmB,CAAC,EACxB,GAAS,EAAkB,CACzB,YAAa,IAAM,GACnB,eAAgB,IAAM,EACxB,CAAC,EACD,EAAO,QAAU,GAAa,CAAgB,EAC9C,IAAI,EAAc,WAAuB,EACrC,GAAY,SAAqB,EACjC,EAAY,SAAqB,EACjC,OACJ,SAAS,EAAW,EAAG,CACrB,GAAI,CACF,IAAI,EAAM,QAAQ,IAAI,EACtB,MAAO,IAAQ,EAAY,QAAQ,QAAQ,CAAG,EAAG,CAC/C,IAAM,EAAU,EAAY,QAAQ,KAAK,EAAK,SAAS,EACvD,GAAI,GAAU,QAAQ,WAAW,CAAO,EACtC,OAAO,EAET,EAAM,EAAY,QAAQ,QAAQ,CAAG,GAEvC,MAAO,EAAG,CACV,MAAM,IAAI,GAAmB,qBAC3B,0DACF,EAEF,OAAO,KAET,SAAS,EAAc,EAAG,CACxB,GAAI,QAAQ,IAAI,cACd,OAAO,QAAQ,IAAI,cAErB,OAAQ,EAAU,QAAQ,SAAS,OAC5B,SACH,OAAO,EAAY,QAAQ,KAAK,EAAU,QAAQ,QAAQ,EAAG,6BAA6B,MACvF,QACH,OAAO,EAAY,QAAQ,KAAK,EAAU,QAAQ,QAAQ,EAAG,cAAc,MACxE,QACH,GAAI,QAAQ,IAAI,aACd,OAAO,QAAQ,IAAI,aAErB,OAAO,aAEP,OAAO,0BCrEb,IAAsB,OAAlB,GACmB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,GACsB,eAAtB,IAHY,OAIZ,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAU,CAAC,EAAK,EAAY,KAAY,EAAS,GAAO,KAAO,GAAS,GAAa,CAAG,CAAC,EAAI,CAAC,EAAG,EAKnG,GAAc,CAAC,GAAO,CAAC,EAAI,WAAa,EAAU,EAAQ,UAAW,CAAE,MAAO,EAAK,WAAY,EAAK,CAAC,EAAI,EACzG,CACF,GACI,GAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAsB,CAAC,EAC3B,GAAS,EAAqB,CAC5B,mBAAoB,IAAM,GAC1B,eAAgB,IAAM,GACtB,gBAAiB,IAAM,EACzB,CAAC,EACD,EAAO,QAAU,GAAa,CAAmB,EACjD,IAAI,EAAK,SAAqB,EAC1B,EAAO,WAAuB,EAC9B,OACJ,SAAS,CAAiB,EAAG,CAC3B,IAAM,GAAW,EAAG,GAAkB,kBAAkB,EACxD,GAAI,CAAC,EACH,MAAU,MACR,kGACF,EAEF,OAAO,EAAK,KAAK,EAAS,WAAW,EAEvC,SAAS,EAAc,EAAG,CACxB,GAAI,CACF,IAAM,EAAW,EAAkB,EACnC,GAAI,CAAC,EAAG,WAAW,CAAQ,EACzB,OAAO,KAET,IAAM,EAAU,EAAG,aAAa,EAAU,MAAM,EAChD,GAAI,CAAC,EACH,OAAO,KAET,OAAO,KAAK,MAAM,CAAO,EACzB,MAAO,EAAO,CACd,OAAO,MAGX,SAAS,EAAe,CAAC,EAAQ,CAC/B,IAAM,EAAW,EAAkB,EAC7B,EAAU,EAAK,QAAQ,CAAQ,EACrC,GAAI,CAAC,EAAG,WAAW,CAAO,EACxB,EAAG,UAAU,EAAS,CAAE,KAAM,IAAK,UAAW,EAAK,CAAC,EAEtD,EAAG,cAAc,EAAU,KAAK,UAAU,EAAQ,KAAM,CAAC,EAAG,CAAE,KAAM,GAAI,CAAC,EAE3E,SAAS,EAAkB,CAAC,EAAY,EAAqB,EAAG,CAC9D,GAAI,CAAC,EAAW,MACd,MAAO,GACT,GAAI,OAAO,EAAW,YAAc,SAClC,MAAO,GACT,IAAM,EAAe,KAAK,MAAM,KAAK,IAAI,EAAI,IAAG,EAC1C,EAAkB,EAAqB,KAC7C,OAAO,EAAW,WAAa,EAAe,sBC5EhD,IAAuB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAEnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAe,CAAC,IAAQ,GAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAgB,CAAC,EACrB,GAAS,EAAe,CACtB,qBAAsB,IAAM,GAC5B,oBAAqB,IAAM,EAC7B,CAAC,EACD,EAAO,QAAU,GAAa,CAAa,EAC3C,IAAI,UACE,GAAgB,qBAChB,GAAuB,sCACvB,EAAY,qBAAqB,QAAQ,YAAY,EAAG,EAAU,UAAU,OAAO,EAAG,EAAU,MAAM,OAAO,EAAG,EAAU,UAAU,IACtI,EAAiB,KACrB,eAAe,EAAgB,EAAG,CAChC,GAAI,EACF,OAAO,EAET,IAAM,EAAe,GAAG,sCAClB,EAAW,MAAM,MAAM,EAAc,CACzC,QAAS,CAAE,aAAc,CAAU,CACrC,CAAC,EACD,GAAI,CAAC,EAAS,GACZ,MAAU,MAAM,oCAAoC,EAEtD,IAAM,EAAW,MAAM,EAAS,KAAK,EACrC,GAAI,CAAC,GAAY,OAAO,EAAS,iBAAmB,SAClD,MAAU,MAAM,kCAAkC,EAEpD,IAAM,EAAW,EAAS,eAE1B,OADA,EAAiB,EACV,EAET,eAAe,EAAmB,CAAC,EAAS,CAC1C,IAAM,EAAgB,MAAM,GAAiB,EAC7C,OAAO,MAAM,MAAM,EAAe,CAChC,OAAQ,OACR,QAAS,CACP,eAAgB,oCAChB,aAAc,CAChB,EACA,KAAM,IAAI,gBAAgB,CACxB,UAAW,GACX,WAAY,mBACT,CACL,CAAC,CACH,CAAC,EAEH,eAAe,EAAoB,CAAC,EAAU,CAC5C,IAAM,EAAO,MAAM,EAAS,KAAK,EACjC,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAW,OAAO,IAAS,UAAY,GAAQ,UAAW,EAAO,OAAO,EAAK,KAAK,EAAI,uBAC5F,MAAO,CAAK,MAAM,CAAQ,CAAC,EAE7B,GAAI,OAAO,IAAS,UAAY,IAAS,KACvC,MAAO,CAAK,MAAM,wBAAwB,CAAC,EAE7C,GAAI,OAAO,EAAK,eAAiB,SAC/B,MAAO,CAAK,MAAM,kCAAkC,CAAC,EAEvD,GAAI,EAAK,aAAe,SACtB,MAAO,CAAK,MAAM,gCAAgC,CAAC,EAErD,GAAI,OAAO,EAAK,aAAe,SAC7B,MAAO,CAAK,MAAM,gCAAgC,CAAC,EAErD,MAAO,CAAC,KAAM,CAAI,sBChFpB,IAAuB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAEnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAe,CAAC,IAAQ,GAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAsB,CAAC,EAC3B,GAAS,EAAqB,CAC5B,wBAAyB,IAAM,EAC/B,8BAA+B,IAAM,CACvC,CAAC,EACD,EAAO,QAAU,GAAa,CAAmB,EACjD,MAAM,UAAgC,KAAM,CAC1C,WAAW,EAAG,CACZ,MACE,4EACF,EACA,KAAK,KAAO,0BAEhB,CACA,MAAM,UAAsC,KAAM,CAChD,WAAW,CAAC,EAAO,CACjB,MAAM,0CAA2C,CAAE,OAAM,CAAC,EAC1D,KAAK,KAAO,gCAEhB,sBCpCA,IAAsB,OAAlB,GACmB,eAAnB,EAC0B,yBAA1B,GAC2B,oBAA3B,GACsB,eAAtB,IAHY,OAIZ,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAU,CAAC,EAAK,EAAY,KAAY,EAAS,GAAO,KAAO,GAAS,GAAa,CAAG,CAAC,EAAI,CAAC,EAAG,EAKnG,GAAc,CAAC,GAAO,CAAC,EAAI,WAAa,EAAU,EAAQ,UAAW,CAAE,MAAO,EAAK,WAAY,EAAK,CAAC,EAAI,EACzG,CACF,GACI,GAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,GAAqB,CAAC,EAC1B,GAAS,GAAoB,CAC3B,8BAA+B,IAAM,EACrC,gBAAiB,IAAM,GACvB,gBAAiB,IAAM,GACvB,iBAAkB,IAAM,GACxB,mBAAoB,IAAM,GAC1B,eAAgB,IAAM,GACtB,UAAW,IAAM,GACjB,UAAW,IAAM,GACjB,UAAW,IAAM,EACnB,CAAC,EACD,GAAO,QAAU,GAAa,EAAkB,EAChD,IAAI,EAAO,YAAuB,EAC9B,EAAK,UAAqB,EAC1B,MACA,MACA,MACA,MACA,MACJ,SAAS,EAAgB,EAAG,CAE1B,IAAM,GAAW,EAAG,EAAgB,gBAAgB,EACpD,GAAI,CAAC,EACH,OAAO,KAET,OAAO,EAAK,KAAK,EALI,gBAKiB,EAExC,eAAe,EAAc,CAAC,EAAS,CACrC,IAAM,GAAc,EAAG,EAAmB,gBAAgB,EAC1D,GAAI,CAAC,GAAY,MACf,MAAM,IAAI,EAAmB,wBAE/B,IAAK,EAAG,EAAmB,oBAAoB,EAAY,GAAS,kBAAkB,EACpF,OAAO,EAAW,MAEpB,GAAI,CAAC,EAAW,aAEd,MADC,EAAG,EAAmB,iBAAiB,CAAC,CAAC,EACpC,IAAI,EAAmB,8BAA8B,4BAA4B,EAEzF,GAAI,CACF,IAAM,EAAgB,MAAO,EAAG,EAAa,qBAAqB,CAChE,cAAe,EAAW,YAC5B,CAAC,GACM,EAAa,GAAU,MAAO,EAAG,EAAa,sBAAsB,CAAa,EACxF,GAAI,GAAe,CAAC,EAElB,MADC,EAAG,EAAmB,iBAAiB,CAAC,CAAC,EACpC,IAAI,EAAmB,8BAA8B,CAAW,EAExE,IAAM,EAAgB,CACpB,MAAO,EAAO,aACd,UAAW,KAAK,MAAM,KAAK,IAAI,EAAI,IAAG,EAAI,EAAO,UACnD,EACA,GAAI,EAAO,cACT,EAAc,aAAe,EAAO,cAGtC,OADC,EAAG,EAAmB,iBAAiB,CAAa,EAC9C,EAAc,MACrB,MAAO,EAAO,CAEd,IADC,EAAG,EAAmB,iBAAiB,CAAC,CAAC,EACtC,aAAiB,EAAmB,yBAA2B,aAAiB,EAAmB,8BACrG,MAAM,EAER,MAAM,IAAI,EAAmB,8BAA8B,CAAK,GAGpE,eAAe,EAAkB,CAAC,EAAW,EAAW,EAAQ,CAC9D,IAAM,EAAM,sCAAsC,qCAA6C,EAAS,WAAW,IAAW,KACxH,EAAM,MAAM,MAAM,EAAK,CAC3B,OAAQ,OACR,QAAS,CACP,cAAe,UAAU,GAC3B,CACF,CAAC,EACD,GAAI,CAAC,EAAI,GACP,MAAM,IAAI,EAAmB,qBAC3B,iCAAiC,EAAI,YACvC,EAEF,IAAM,EAAW,MAAM,EAAI,KAAK,EAEhC,OADA,EAA8B,CAAQ,EAC/B,EAET,SAAS,CAA6B,CAAC,EAAK,CAC1C,GAAI,CAAC,GAAO,OAAO,IAAQ,SACzB,MAAU,UACR,4FACF,EAEF,GAAI,EAAE,UAAW,IAAQ,OAAO,EAAI,QAAU,SAC5C,MAAU,UACR,iHACF,EAGJ,SAAS,EAAe,EAAG,CACzB,IAAM,GAAO,EAAG,EAAgB,aAAa,EAC7C,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,qFACF,EAEF,IAAM,EAAU,EAAK,KAAK,EAAK,UAAW,cAAc,EACxD,GAAI,CAAC,EAAG,WAAW,CAAO,EACxB,MAAM,IAAI,EAAmB,qBAC3B,sEACF,EAEF,IAAM,EAAM,KAAK,MAAM,EAAG,aAAa,EAAS,MAAM,CAAC,EACvD,GAAI,OAAO,EAAI,YAAc,UAAY,OAAO,EAAI,QAAU,SAC5D,MAAU,UACR,6FACF,EAEF,MAAO,CAAE,UAAW,EAAI,UAAW,OAAQ,EAAI,KAAM,EAEvD,SAAS,EAAS,CAAC,EAAO,EAAW,CACnC,IAAM,GAAO,EAAG,EAAgB,gBAAgB,EAChD,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,yEACF,EAEF,IAAM,EAAY,EAAK,KAAK,EAAK,mBAAoB,GAAG,QAAgB,EAClE,EAAY,KAAK,UAAU,CAAK,EACtC,EAAG,UAAU,EAAK,QAAQ,CAAS,EAAG,CAAE,KAAM,IAAK,UAAW,EAAK,CAAC,EACpE,EAAG,cAAc,EAAW,CAAS,EACrC,EAAG,UAAU,EAAW,GAAG,EAC3B,OAEF,SAAS,EAAS,CAAC,EAAW,CAC5B,IAAM,GAAO,EAAG,EAAgB,gBAAgB,EAChD,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,yEACF,EAEF,IAAM,EAAY,EAAK,KAAK,EAAK,mBAAoB,GAAG,QAAgB,EACxE,GAAI,CAAC,EAAG,WAAW,CAAS,EAC1B,OAAO,KAET,IAAM,EAAQ,KAAK,MAAM,EAAG,aAAa,EAAW,MAAM,CAAC,EAE3D,OADA,EAA8B,CAAK,EAC5B,EAET,SAAS,EAAe,CAAC,EAAO,CAC9B,IAAM,EAAa,EAAM,MAAM,GAAG,EAClC,GAAI,EAAW,SAAW,EACxB,MAAM,IAAI,EAAmB,qBAC3B,uDACF,EAEF,IAAM,EAAS,EAAW,GAAG,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAC3D,EAAS,EAAO,OACpB,EAAO,QAAU,EAAI,EAAO,OAAS,GAAK,EAC1C,GACF,EACA,OAAO,KAAK,MAAM,OAAO,KAAK,EAAQ,QAAQ,EAAE,SAAS,MAAM,CAAC,EAElE,SAAS,EAAS,CAAC,EAAO,EAAW,EAAG,CACtC,OAAO,EAAM,IAAM,KAAM,KAAK,IAAI,EAAI",
"debugId": "501E9C724614B11164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/util/process-lock.ts", "src/server-process.ts", "src/commands/handlers/serve.ts"],
"sourcesContent": [
"import { dlopen, read, type Pointer } from \"bun:ffi\"\nimport { closeSync, existsSync, mkdirSync, openSync } from \"node:fs\"\nimport { connect, createServer, type Server, type Socket } from \"node:net\"\nimport path from \"node:path\"\nimport { Effect, Schema } from \"effect\"\nimport { Hash } from \"./hash\"\n\nexport namespace ProcessLock {\n export class HeldError extends Schema.TaggedErrorClass<HeldError>()(\"ProcessLockHeldError\", {\n file: Schema.String,\n }) {\n override get message() {\n return `Process lock is already held: ${this.file}`\n }\n }\n\n export class SystemError extends Schema.TaggedErrorClass<SystemError>()(\"ProcessLockSystemError\", {\n file: Schema.String,\n operation: Schema.Literals([\"open\", \"acquire\"]),\n code: Schema.String,\n }) {\n override get message() {\n return `Process lock ${this.operation} failed for ${this.file}: ${this.code}`\n }\n }\n\n export type LockError = HeldError | SystemError\n\n const acquirePosix = Effect.fnUntraced(function* (file: string) {\n const fd = yield* Effect.try({\n try: () => {\n mkdirSync(path.dirname(file), { recursive: true })\n return openSync(file, \"a+\", 0o600)\n },\n catch: (cause) =>\n new SystemError({\n file,\n operation: \"open\",\n code: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n const result = yield* Effect.try({\n try: () => lock(fd),\n catch: (cause) =>\n new SystemError({\n file,\n operation: \"acquire\",\n code: cause instanceof Error ? cause.message : String(cause),\n }),\n }).pipe(\n Effect.tapError(() =>\n Effect.sync(() => {\n closeSync(fd)\n }),\n ),\n )\n if (result.acquired) {\n return fd\n }\n closeSync(fd)\n return yield* result.held\n ? new HeldError({ file })\n : new SystemError({ file, operation: \"acquire\", code: String(result.code) })\n })\n\n export const acquire = Effect.fn(\"ProcessLock.acquire\")(function* (file: string) {\n if (process.platform === \"win32\") {\n yield* Effect.acquireRelease(acquireWindows(file), closeWindows)\n return\n }\n yield* Effect.acquireRelease(acquirePosix(file), (fd) =>\n Effect.sync(() => {\n closeSync(fd)\n }),\n )\n })\n}\n\ntype Result =\n | { readonly acquired: true }\n | { readonly acquired: false; readonly held: true }\n | { readonly acquired: false; readonly held: false; readonly code: number }\n\nconst LOCK_EX = 2\nconst LOCK_NB = 4\nconst DARWIN_EWOULDBLOCK = 35\nconst LINUX_EWOULDBLOCK = 11\n\nfunction lock(fd: number): Result {\n if (process.platform === \"darwin\") return lockDarwin(fd)\n if (process.platform === \"linux\") return lockLinux(fd)\n throw new Error(`Unsupported process lock platform: ${process.platform}`)\n}\n\nfunction lockDarwin(fd: number): Result {\n const library = dlopen(\"/usr/lib/libSystem.B.dylib\", {\n flock: { args: [\"i32\", \"i32\"], returns: \"i32\" },\n __error: { args: [], returns: \"ptr\" },\n })\n try {\n const result = library.symbols.flock(fd, LOCK_EX | LOCK_NB)\n const code = result === 0 ? 0 : errorCode(library.symbols.__error())\n if (result === 0) return { acquired: true }\n if (code === DARWIN_EWOULDBLOCK) return { acquired: false, held: true }\n return { acquired: false, held: false, code }\n } finally {\n library.close()\n }\n}\n\nfunction lockLinux(fd: number): Result {\n const musl = `/lib/libc.musl-${process.arch === \"arm64\" ? \"aarch64\" : \"x86_64\"}.so.1`\n const library = dlopen(existsSync(musl) ? musl : \"libc.so.6\", {\n flock: { args: [\"i32\", \"i32\"], returns: \"i32\" },\n __errno_location: { args: [], returns: \"ptr\" },\n })\n try {\n const result = library.symbols.flock(fd, LOCK_EX | LOCK_NB)\n const code = result === 0 ? 0 : errorCode(library.symbols.__errno_location())\n if (result === 0) return { acquired: true }\n if (code === LINUX_EWOULDBLOCK) return { acquired: false, held: true }\n return { acquired: false, held: false, code }\n } finally {\n library.close()\n }\n}\n\nfunction errorCode(pointer: Pointer | null) {\n if (pointer === null) throw new Error(\"Failed to read process lock error code\")\n return read.i32(pointer, 0)\n}\n\nfunction acquireWindows(file: string) {\n return Effect.callback<Server, ProcessLock.LockError>((resume) => {\n const server = createServer()\n let probe: Socket | undefined\n const pipe = `\\\\\\\\.\\\\pipe\\\\opencode-process-lock-${Hash.sha256(path.resolve(file).toLowerCase())}`\n const onError = (cause: NodeJS.ErrnoException) => {\n server.off(\"listening\", onListening)\n probe = connect(pipe)\n const onProbeError = () => {\n probe?.off(\"connect\", onConnect)\n resume(\n Effect.fail(\n new ProcessLock.SystemError({\n file,\n operation: \"acquire\",\n code: cause.code ?? cause.message,\n }),\n ),\n )\n }\n const onConnect = () => {\n probe?.off(\"error\", onProbeError)\n probe?.destroy()\n resume(Effect.fail(new ProcessLock.HeldError({ file })))\n }\n probe.once(\"connect\", onConnect)\n probe.once(\"error\", onProbeError)\n }\n const onListening = () => {\n server.off(\"error\", onError)\n resume(Effect.succeed(server))\n }\n server.once(\"error\", onError)\n server.once(\"listening\", onListening)\n server.on(\"connection\", (socket) => socket.destroy())\n server.listen(pipe)\n return Effect.sync(() => {\n probe?.destroy()\n server.close()\n })\n })\n}\n\nfunction closeWindows(server: Server) {\n return Effect.callback<void>((resume) => {\n if (!server.listening) return resume(Effect.void)\n server.close((error) => resume(error ? Effect.die(error) : Effect.void))\n })\n}\n",
"export * as ServerProcess from \"./server-process\"\n\nimport { NodeServices } from \"@effect/platform-node\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { AppProcess } from \"@opencode-ai/core/process\"\nimport { ProcessLock } from \"@opencode-ai/core/util/process-lock\"\nimport { randomBytes, randomUUID } from \"node:crypto\"\nimport path from \"node:path\"\nimport { Effect, FileSystem, Logger, Option, Redacted, Schedule, Schema } from \"effect\"\nimport { HttpServer } from \"effect/unstable/http\"\nimport { Env } from \"./env\"\nimport { ServiceConfig } from \"./services/service-config\"\nimport { Updater } from \"./services/updater\"\n\nexport type Mode = \"default\" | \"service\" | \"stdio\"\n\nexport type Options = {\n readonly mode: Mode\n readonly hostname?: string\n readonly port?: number\n}\n\nexport const run = Effect.fn(\"cli.server-process.run\")((options: Options) =>\n processEffect(options).pipe(\n Effect.provide(Updater.layer),\n Effect.provide(AppNodeBuilder.build(LayerNode.group([Global.node, AppProcess.node]))),\n Effect.provide(NodeServices.layer),\n ),\n)\n\nconst processEffect = Effect.fnUntraced(function* (options: Options) {\n if (options.mode === \"service\") yield* Effect.sync(() => process.chdir(Global.Path.home))\n return yield* Effect.scoped(\n Effect.gen(function* () {\n const serviceOptions = options.mode === \"service\" ? yield* ServiceConfig.options() : undefined\n if (serviceOptions !== undefined) {\n const acquired = yield* ProcessLock.acquire(serviceOptions.file + \".lock\").pipe(\n Effect.as(true),\n Effect.catchTag(\"ProcessLockHeldError\", () => Effect.succeed(false)),\n )\n if (!acquired) return yield* Effect.void\n if ((yield* Service.discover(serviceOptions)) !== undefined) return yield* Effect.void\n }\n const { start } = yield* Effect.promise(() => import(\"@opencode-ai/server/process\"))\n const environmentPassword = yield* Env.password\n // Keep the lease credential out of the environment inherited by tools.\n if (options.mode === \"stdio\") {\n delete process.env.OPENCODE_PASSWORD\n delete process.env.OPENCODE_SERVER_PASSWORD\n }\n const config = options.mode === \"service\" ? yield* ServiceConfig.read() : {}\n const password =\n options.mode === \"service\"\n ? yield* ServiceConfig.password()\n : environmentPassword\n ? Redacted.value(environmentPassword)\n : randomBytes(32).toString(\"base64url\")\n if (!password) return yield* Effect.fail(new Error(\"Missing server password\"))\n const instanceID = randomUUID()\n const server = yield* start({\n hostname: options.hostname ?? config.hostname ?? \"127.0.0.1\",\n port: Option.fromNullishOr(options.port ?? config.port),\n password,\n instanceID,\n service:\n serviceOptions === undefined\n ? undefined\n : { onListen: (address) => register(address, password, instanceID, serviceOptions.file) },\n }).pipe(Effect.provide(Logger.layer([], { mergeWithExisting: false })))\n const url = HttpServer.formatAddress(server.address)\n console.log(options.mode === \"stdio\" ? JSON.stringify({ url }) : `server listening on ${url}`)\n if (options.mode === \"default\" && !environmentPassword) console.log(`server password ${password}`)\n const updater = yield* Updater.Service\n yield* updater.check().pipe(Effect.schedule(Schedule.spaced(\"10 minutes\")), Effect.forkScoped)\n return yield* options.mode === \"service\"\n ? server.shutdown\n : options.mode === \"stdio\"\n ? waitForStdinClose()\n : Effect.never\n }).pipe(Effect.annotateLogs({ role: \"server\" })),\n )\n})\n\nconst infoJson = Schema.fromJsonString(Service.Info)\nconst encodeInfo = Schema.encodeEffect(infoJson)\nconst decodeInfo = Schema.decodeUnknownEffect(infoJson)\n\nconst register = Effect.fnUntraced(function* (\n address: HttpServer.Address,\n password: string,\n id: string,\n file: string,\n) {\n const fs = yield* FileSystem.FileSystem\n const temp = file + \".\" + id + \".tmp\"\n yield* fs.makeDirectory(path.dirname(file), { recursive: true })\n const info = {\n id,\n version: InstallationVersion,\n url: HttpServer.formatAddress(address),\n pid: process.pid,\n password,\n }\n const encoded = yield* encodeInfo(info)\n const publish = fs.writeFileString(temp, encoded, { mode: 0o600 }).pipe(Effect.andThen(fs.rename(temp, file)))\n yield* publish\n const current = fs.readFileString(file).pipe(\n Effect.flatMap(decodeInfo),\n Effect.orElseSucceed(() => undefined),\n )\n const assertRegistration = Effect.gen(function* () {\n const found = yield* current\n if (\n found !== undefined &&\n found.id === info.id &&\n found.version === info.version &&\n found.url === info.url &&\n found.pid === info.pid &&\n found.password === info.password\n )\n return\n yield* publish\n })\n yield* Effect.addFinalizer(() =>\n current.pipe(\n Effect.flatMap((current) => (current?.id === id ? fs.remove(file) : Effect.void)),\n Effect.ignore,\n ),\n )\n yield* assertRegistration.pipe(\n Effect.catchCause((cause) => Effect.logWarning(\"failed to reassert service registration\", { cause })),\n Effect.repeat(Schedule.spaced(\"5 seconds\")),\n Effect.forkScoped,\n )\n})\n\nfunction waitForStdinClose() {\n return Effect.callback<void>((resume) => {\n const close = () => resume(Effect.void)\n process.stdin.once(\"end\", close)\n process.stdin.once(\"close\", close)\n process.stdin.resume()\n if (process.stdin.readableEnded || process.stdin.destroyed) close()\n return Effect.sync(() => {\n process.stdin.off(\"end\", close)\n process.stdin.off(\"close\", close)\n process.stdin.pause()\n })\n })\n}\n",
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerProcess } from \"../../server-process\"\n\nexport default Runtime.handler(\n Commands.commands.serve,\n Effect.fn(\"cli.serve\")(function* (input) {\n if (input.service && input.stdio) return yield* Effect.fail(new Error(\"--service and --stdio cannot be combined\"))\n return yield* ServerProcess.run({\n mode: input.service ? \"service\" : input.stdio ? \"stdio\" : \"default\",\n hostname: Option.getOrUndefined(input.hostname),\n port: Option.getOrUndefined(input.port),\n })\n }),\n)\n"
],
"mappings": "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",
"debugId": "2DECB21882F3EAEA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token.js"],
"sourcesContent": [
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_exports = {};\n__export(token_exports, {\n refreshToken: () => refreshToken\n});\nmodule.exports = __toCommonJS(token_exports);\nvar import_token_error = require(\"./token-error\");\nvar import_token_util = require(\"./token-util\");\nasync function refreshToken(options) {\n let projectId = options?.project;\n let teamId = options?.team;\n if (!projectId && !teamId) {\n const projectInfo = (0, import_token_util.findProjectInfo)();\n projectId = projectInfo.projectId;\n teamId = projectInfo.teamId;\n } else if (!projectId || !teamId) {\n const projectInfo = (0, import_token_util.findProjectInfo)();\n projectId = projectId ?? projectInfo.projectId;\n teamId = teamId ?? projectInfo.teamId;\n }\n if (!projectId) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`\"\n );\n }\n let maybeToken = (0, import_token_util.loadToken)(projectId);\n if (!maybeToken || (0, import_token_util.isExpired)((0, import_token_util.getTokenPayload)(maybeToken.token), options?.expirationBufferMs)) {\n const authToken = await (0, import_token_util.getVercelToken)({\n expirationBufferMs: options?.expirationBufferMs\n });\n maybeToken = await (0, import_token_util.getVercelOidcToken)(authToken, projectId, teamId);\n if (!maybeToken) {\n throw new import_token_error.VercelOidcTokenError(\"Failed to refresh OIDC token\");\n }\n (0, import_token_util.saveToken)(maybeToken, projectId);\n }\n process.env.VERCEL_OIDC_TOKEN = maybeToken.token;\n return;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n refreshToken\n});\n"
],
"mappings": ";2HACA,SAAuB,eAAnB,EAC0B,yBAA1B,EAC2B,oBAA3B,GADmB,OAEnB,EAAe,OAAO,UAAU,eAChC,EAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,EAAkB,CAAI,EACpC,GAAI,CAAC,EAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,EAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAgB,CAAC,EACrB,EAAS,EAAe,CACtB,aAAc,IAAM,CACtB,CAAC,EACD,EAAO,QAAU,EAAa,CAAa,EAC3C,IAAI,MACA,MACJ,eAAe,CAAY,CAAC,EAAS,CACnC,IAAI,EAAY,GAAS,QACrB,EAAS,GAAS,KACtB,GAAI,CAAC,GAAa,CAAC,EAAQ,CACzB,IAAM,GAAe,EAAG,EAAkB,iBAAiB,EAC3D,EAAY,EAAY,UACxB,EAAS,EAAY,OAChB,QAAI,CAAC,GAAa,CAAC,EAAQ,CAChC,IAAM,GAAe,EAAG,EAAkB,iBAAiB,EAC3D,EAAY,GAAa,EAAY,UACrC,EAAS,GAAU,EAAY,OAEjC,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,gGACF,EAEF,IAAI,GAAc,EAAG,EAAkB,WAAW,CAAS,EAC3D,GAAI,CAAC,IAAe,EAAG,EAAkB,YAAY,EAAG,EAAkB,iBAAiB,EAAW,KAAK,EAAG,GAAS,kBAAkB,EAAG,CAC1I,IAAM,EAAY,MAAO,EAAG,EAAkB,gBAAgB,CAC5D,mBAAoB,GAAS,kBAC/B,CAAC,EAED,GADA,EAAa,MAAO,EAAG,EAAkB,oBAAoB,EAAW,EAAW,CAAM,EACrF,CAAC,EACH,MAAM,IAAI,EAAmB,qBAAqB,8BAA8B,GAEjF,EAAG,EAAkB,WAAW,EAAY,CAAS,EAExD,QAAQ,IAAI,kBAAoB,EAAW,MAC3C",
"debugId": "84AC788D0C995E3364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/runtime.queue.ts"],
"sourcesContent": [
"// Serial prompt queue for direct interactive mode.\n//\n// Prompts arrive from the footer (user types and hits enter) and queue up\n// here. The queue drains one turn at a time; ordinary prompts waiting behind\n// an active ordinary turn are exposed for edit/removal until they begin.\n//\n// The queue also handles /exit, /quit, and /new commands, empty-prompt rejection,\n// and tracks per-turn wall-clock duration for the footer status line.\n//\n// Resolves when the footer closes and all in-flight work finishes.\nimport { ascending } from \"@opencode-ai/schema/identifier\"\nimport { SessionMessage } from \"@opencode-ai/schema/session-message\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport { isExitCommand, isNewCommand } from \"./prompt.shared\"\nimport type { FooterApi, FooterEvent, FooterQueuedPrompt, RunPrompt } from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype Deferred<T = void> = {\n promise: Promise<T>\n resolve: (value: T | PromiseLike<T>) => void\n reject: (error?: unknown) => void\n}\n\nexport type QueueInput = {\n footer: FooterApi\n initialInput?: string\n trace?: Trace\n onSend?: (prompt: RunPrompt) => void\n onNewSession?: () => void | Promise<void>\n run: (prompt: RunPrompt, signal: AbortSignal) => Promise<void>\n}\n\ntype State = {\n queue: RunPrompt[]\n queued: FooterQueuedPrompt[]\n active?: RunPrompt\n ctrl?: AbortController\n closed: boolean\n}\n\nfunction defer<T = void>(): Deferred<T> {\n let resolve!: (value: T | PromiseLike<T>) => void\n let reject!: (error?: unknown) => void\n const promise = new Promise<T>((next, fail) => {\n resolve = next\n reject = fail\n })\n\n return { promise, resolve, reject }\n}\n\n// Runs the prompt queue until the footer closes.\n//\n// Subscribes to footer prompt events and drains operations through input.run().\n// Ordinary prompts submitted during an ordinary active turn remain local and\n// are exposed by the footer for edit/removal until their turn begins.\nexport async function runPromptQueue(input: QueueInput): Promise<void> {\n const stop = defer<{ type: \"closed\" }>()\n const done = defer()\n const state: State = {\n queue: [],\n queued: [],\n closed: input.footer.isClosed,\n }\n let draining: Promise<void> | undefined\n\n const emit = (next: FooterEvent, row: Record<string, unknown>) => {\n input.trace?.write(\"ui.patch\", row)\n input.footer.event(next)\n }\n\n const syncQueue = () => {\n const queue = state.queue.length\n emit({ type: \"queue\", queue }, { queue })\n emit(\n {\n type: \"queued.prompts\",\n prompts: [...state.queued],\n },\n { queued: state.queued.length },\n )\n }\n\n const removeLocalQueued = (queued: FooterQueuedPrompt) => {\n if (!state.queued.includes(queued)) return\n state.queued = state.queued.filter((item) => item !== queued)\n syncQueue()\n }\n\n const finish = () => {\n if (!state.closed || draining) {\n return\n }\n\n done.resolve()\n }\n\n const close = () => {\n if (state.closed) {\n return\n }\n\n state.closed = true\n state.queue.length = 0\n state.queued.length = 0\n state.ctrl?.abort()\n stop.resolve({ type: \"closed\" })\n finish()\n }\n\n const drain = () => {\n if (draining || state.closed || state.queue.length === 0) {\n return\n }\n\n draining = (async () => {\n try {\n while (!state.closed && state.queue.length > 0) {\n const prompt = state.queue.shift()\n if (!prompt) {\n continue\n }\n\n const queued = state.queued.find((item) => item.prompt === prompt)\n if (queued) removeLocalQueued(queued)\n\n if (prompt.mode !== \"shell\" && isNewCommand(prompt.text)) {\n syncQueue()\n if (!input.onNewSession) {\n emit(\n {\n type: \"stream.patch\",\n patch: {\n status: \"new sessions unavailable\",\n },\n },\n {\n status: \"new sessions unavailable\",\n },\n )\n continue\n }\n\n emit(\n {\n type: \"stream.patch\",\n patch: {\n phase: \"running\",\n status: \"starting new session\",\n queue: state.queue.length,\n },\n },\n {\n phase: \"running\",\n status: \"starting new session\",\n queue: state.queue.length,\n },\n )\n await input.onNewSession()\n continue\n }\n\n const sent =\n prompt.mode === \"shell\"\n ? prompt\n : {\n ...prompt,\n messageID: prompt.messageID ?? queued?.messageID ?? SessionMessage.ID.create(),\n }\n state.active = sent\n\n emit(\n {\n type: \"turn.send\",\n queue: state.queue.length,\n },\n {\n phase: \"running\",\n status: \"sending prompt\",\n queue: state.queue.length,\n },\n )\n const start = Date.now()\n const ctrl = new AbortController()\n state.ctrl = ctrl\n\n try {\n await input.footer.idle()\n if (state.closed) {\n break\n }\n\n if (sent.mode !== \"shell\") {\n const commit = {\n kind: \"user\",\n text: sent.text,\n phase: \"start\",\n source: \"system\",\n messageID: sent.messageID,\n } as const\n input.trace?.write(\"ui.commit\", commit)\n input.footer.append(commit)\n }\n input.onSend?.(sent)\n\n if (state.closed) {\n break\n }\n\n const task = input.run(sent, ctrl.signal).then(\n () => ({ type: \"done\" as const }),\n (error) => ({ type: \"error\" as const, error }),\n )\n\n const next = await Promise.race([task, stop.promise])\n if (next.type === \"closed\") {\n ctrl.abort()\n break\n }\n\n if (next.type === \"error\") {\n throw next.error\n }\n } finally {\n if (state.ctrl === ctrl) {\n state.ctrl = undefined\n }\n\n if (sent.mode !== \"shell\") {\n const duration = Locale.duration(Math.max(0, Date.now() - start))\n emit(\n {\n type: \"turn.duration\",\n duration,\n },\n {\n duration,\n },\n )\n }\n state.active = undefined\n }\n }\n } catch (error) {\n done.reject(error)\n return\n } finally {\n draining = undefined\n emit(\n {\n type: \"turn.idle\",\n queue: state.queue.length,\n },\n {\n phase: \"idle\",\n status: \"\",\n queue: state.queue.length,\n },\n )\n }\n\n finish()\n })()\n }\n\n const submit = (prompt: RunPrompt) => {\n if (!prompt.text.trim() || state.closed) {\n return\n }\n\n if (prompt.mode !== \"shell\" && isExitCommand(prompt.text)) {\n input.footer.close()\n return\n }\n\n const active = state.active\n if (\n active &&\n active.mode !== \"shell\" &&\n !active.command &&\n prompt.mode !== \"shell\" &&\n !prompt.command &&\n !isNewCommand(prompt.text)\n ) {\n const queued: FooterQueuedPrompt = {\n messageID: SessionMessage.ID.create(),\n partID: \"prt_\" + ascending(),\n prompt,\n }\n state.queued = [...state.queued, queued]\n state.queue.push(prompt)\n syncQueue()\n return\n }\n\n state.queue.push(prompt)\n syncQueue()\n if (prompt.mode !== \"shell\" && isNewCommand(prompt.text)) {\n drain()\n return\n }\n\n emit(\n {\n type: \"first\",\n first: false,\n },\n {\n first: false,\n },\n )\n drain()\n }\n\n const offPrompt = input.footer.onPrompt((prompt) => {\n submit(prompt)\n })\n const offClose = input.footer.onClose(() => {\n close()\n })\n const offRemoveQueued = input.footer.onQueuedRemove((messageID) => {\n const queued = state.queued.find((item) => item.messageID === messageID)\n if (!queued) return false\n state.queue = state.queue.filter((prompt) => prompt !== queued.prompt)\n removeLocalQueued(queued)\n return true\n })\n\n try {\n if (state.closed) {\n return\n }\n\n submit({\n text: input.initialInput ?? \"\",\n parts: [],\n })\n finish()\n await done.promise\n } finally {\n offPrompt()\n offClose()\n offRemoveQueued()\n close()\n await draining?.catch(() => {})\n }\n}\n"
],
"mappings": "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",
"debugId": "37BD80435F46305A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/createCredentialChain.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/resolveLogins.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentityPool.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/IndexedDbStorage.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/InMemoryStorage.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/localStorage.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentity.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentityPool.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromContainerMetadata.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromEnv.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromIni.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromInstanceMetadata.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromNodeProviderChain.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromProcess.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromSSO.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.base.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTokenFile.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromWebToken.js"],
"sourcesContent": [
"import { ProviderError } from \"@smithy/core/config\";\nexport const createCredentialChain = (...credentialProviders) => {\n let expireAfter = -1;\n const baseFunction = async (awsIdentityProperties) => {\n const credentials = await propertyProviderChain(...credentialProviders)(awsIdentityProperties);\n if (!credentials.expiration && expireAfter !== -1) {\n credentials.expiration = new Date(Date.now() + expireAfter);\n }\n return credentials;\n };\n const withOptions = Object.assign(baseFunction, {\n expireAfter(milliseconds) {\n if (milliseconds < 5 * 60_000) {\n throw new Error(\"@aws-sdk/credential-providers - createCredentialChain(...).expireAfter(ms) may not be called with a duration lower than five minutes.\");\n }\n expireAfter = milliseconds;\n return withOptions;\n },\n });\n return withOptions;\n};\nexport const propertyProviderChain = (...providers) => async (awsIdentityProperties) => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\", { tryNextLink: false });\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { resolveLogins } from \"./resolveLogins\";\nexport function fromCognitoIdentity(parameters) {\n return async (awsIdentityProperties) => {\n parameters.logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const { GetCredentialsForIdentityCommand, CognitoIdentityClient } = await import(\"./loadCognitoIdentity.js\");\n const fromConfigs = (property) => parameters.clientConfig?.[property] ??\n parameters.parentClientConfig?.[property] ??\n awsIdentityProperties?.callerClientConfig?.[property];\n const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(parameters.logger), Expiration, SecretKey = throwOnMissingSecretKey(parameters.logger), SessionToken, } = throwOnMissingCredentials(parameters.logger), } = await (parameters.client ??\n new CognitoIdentityClient(Object.assign({}, parameters.clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\"),\n userAgentAppId: fromConfigs(\"userAgentAppId\"),\n }))).send(new GetCredentialsForIdentityCommand({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await resolveLogins(parameters.logins) : undefined,\n }));\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n };\n };\n}\nfunction throwOnMissingAccessKeyId(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no access key ID\", { logger });\n}\nfunction throwOnMissingCredentials(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no credentials\", { logger });\n}\nfunction throwOnMissingSecretKey(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no secret key\", { logger });\n}\n",
"export function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce((arr, name) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then((token) => [name, token]));\n }\n return arr;\n }, [])).then((resolvedPairs) => resolvedPairs.reduce((logins, [key, value]) => {\n logins[key] = value;\n return logins;\n }, {}));\n}\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\nexport function fromCognitoIdentityPool({ accountId, cache = localStorage(), client, clientConfig, customRoleArn, identityPoolId, logins, userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined, logger, parentClientConfig, }) {\n logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const cacheKey = userIdentifier\n ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}`\n : undefined;\n let provider = async (awsIdentityProperties) => {\n const { GetIdCommand, CognitoIdentityClient } = await import(\"./loadCognitoIdentity.js\");\n const fromConfigs = (property) => clientConfig?.[property] ??\n parentClientConfig?.[property] ??\n awsIdentityProperties?.callerClientConfig?.[property];\n const _client = client ??\n new CognitoIdentityClient(Object.assign({}, clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\"),\n userAgentAppId: fromConfigs(\"userAgentAppId\"),\n }));\n let identityId = (cacheKey && (await cache.getItem(cacheKey)));\n if (!identityId) {\n const { IdentityId = throwOnMissingId(logger) } = await _client.send(new GetIdCommand({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await resolveLogins(logins) : undefined,\n }));\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => { });\n }\n }\n provider = fromCognitoIdentity({\n client: _client,\n customRoleArn,\n logins,\n identityId,\n });\n return provider(awsIdentityProperties);\n };\n return (awsIdentityProperties) => provider(awsIdentityProperties).catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => { });\n }\n throw err;\n });\n}\nfunction throwOnMissingId(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no identity ID\", { logger });\n}\n",
"const STORE_NAME = \"IdentityIds\";\nexport class IndexedDbStorage {\n dbName;\n constructor(dbName = \"aws:cognito-identity-ids\") {\n this.dbName = dbName;\n }\n getItem(key) {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n removeItem(key) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n setItem(id, value) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n getDb() {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n withObjectStore(mode, action) {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n}\n",
"export class InMemoryStorage {\n store;\n constructor(store = {}) {\n this.store = store;\n }\n getItem(key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n }\n removeItem(key) {\n delete this.store[key];\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n}\n",
"import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nconst inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n",
"import { fromCognitoIdentity as _fromCognitoIdentity } from \"@aws-sdk/credential-provider-cognito-identity\";\nexport const fromCognitoIdentity = (options) => _fromCognitoIdentity({\n ...options,\n});\n",
"import { fromCognitoIdentityPool as _fromCognitoIdentityPool } from \"@aws-sdk/credential-provider-cognito-identity\";\nexport const fromCognitoIdentityPool = (options) => _fromCognitoIdentityPool({\n ...options,\n});\n",
"import { fromContainerMetadata as _fromContainerMetadata } from \"@smithy/credential-provider-imds\";\nexport const fromContainerMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromContainerMetadata\");\n return _fromContainerMetadata(init);\n};\n",
"import { fromEnv as _fromEnv } from \"@aws-sdk/credential-provider-env\";\nexport const fromEnv = (init) => _fromEnv(init);\n",
"import { fromIni as _fromIni } from \"@aws-sdk/credential-provider-ini\";\nexport const fromIni = (init = {}) => _fromIni({\n ...init,\n});\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromInstanceMetadata as _fromInstanceMetadata } from \"@smithy/credential-provider-imds\";\nexport const fromInstanceMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromInstanceMetadata\");\n return async () => _fromInstanceMetadata(init)().then((creds) => setCredentialFeature(creds, \"CREDENTIALS_IMDS\", \"0\"));\n};\n",
"import { fromLoginCredentials as _fromLoginCredentials, } from \"@aws-sdk/credential-provider-login\";\nexport const fromLoginCredentials = (init) => _fromLoginCredentials({\n ...init,\n});\n",
"import { ENV_KEY, ENV_SECRET, fromEnv } from \"@aws-sdk/credential-provider-env\";\nimport { CredentialsProviderError, ENV_PROFILE } from \"@smithy/core/config\";\nimport { remoteProvider } from \"./remoteProvider\";\nimport { memoizeChain } from \"./runtime/memoize-chain\";\nlet multipleCredentialSourceWarningEmitted = false;\nexport const defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import(\"@aws-sdk/credential-provider-ini\");\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import(\"@aws-sdk/credential-provider-process\");\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import(\"@aws-sdk/credential-provider-web-identity\");\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nexport const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nexport const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n",
"import { chain, CredentialsProviderError } from \"@smithy/core/config\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n return chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n",
"export function memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nexport const internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n",
"import { defaultProvider } from \"@aws-sdk/credential-provider-node\";\nexport const fromNodeProviderChain = (init = {}) => defaultProvider({\n ...init,\n});\n",
"import { fromProcess as _fromProcess } from \"@aws-sdk/credential-provider-process\";\nexport const fromProcess = (init) => _fromProcess(init);\n",
"import { fromSSO as _fromSSO } from \"@aws-sdk/credential-provider-sso\";\nexport const fromSSO = (init = {}) => {\n return _fromSSO({ ...init });\n};\n",
"import { loadConfig, NODE_REGION_CONFIG_FILE_OPTIONS } from \"@smithy/core/config\";\nimport { fromNodeProviderChain } from \"./fromNodeProviderChain\";\nimport { fromTemporaryCredentials as fromTemporaryCredentialsBase } from \"./fromTemporaryCredentials.base\";\nexport const fromTemporaryCredentials = (options) => {\n return fromTemporaryCredentialsBase(options, fromNodeProviderChain, async ({ profile = process.env.AWS_PROFILE }) => loadConfig({\n environmentVariableSelector: (env) => env.AWS_REGION,\n configFileSelector: (profileData) => {\n return profileData.region;\n },\n default: () => undefined,\n }, { ...NODE_REGION_CONFIG_FILE_OPTIONS, profile })());\n};\n",
"import { normalizeProvider } from \"@smithy/core\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nconst ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nexport const fromTemporaryCredentials = (options, credentialDefaultProvider, regionProvider) => {\n let stsClient;\n return async (awsIdentityProperties = {}) => {\n const { callerClientConfig } = awsIdentityProperties;\n const profile = options.clientConfig?.profile ?? callerClientConfig?.profile;\n const logger = options.logger ?? callerClientConfig?.logger;\n logger?.debug(\"@aws-sdk/credential-providers - fromTemporaryCredentials (STS)\");\n const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? \"aws-sdk-js-\" + Date.now() };\n if (params?.SerialNumber) {\n if (!options.mfaCodeProvider) {\n throw new CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, {\n tryNextLink: false,\n logger,\n });\n }\n params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber);\n }\n const { AssumeRoleCommand, STSClient } = await import(\"./loadSts.js\");\n if (!stsClient) {\n const defaultCredentialsOrError = typeof credentialDefaultProvider === \"function\" ? credentialDefaultProvider() : undefined;\n const credentialSources = [\n options.masterCredentials,\n options.clientConfig?.credentials,\n void callerClientConfig?.credentials,\n callerClientConfig?.credentialDefaultProvider?.(),\n defaultCredentialsOrError,\n ];\n let credentialSource = \"STS client default credentials\";\n if (credentialSources[0]) {\n credentialSource = \"options.masterCredentials\";\n }\n else if (credentialSources[1]) {\n credentialSource = \"options.clientConfig.credentials\";\n }\n else if (credentialSources[2]) {\n credentialSource = \"caller client's credentials\";\n throw new Error(\"fromTemporaryCredentials recursion in callerClientConfig.credentials\");\n }\n else if (credentialSources[3]) {\n credentialSource = \"caller client's credentialDefaultProvider\";\n }\n else if (credentialSources[4]) {\n credentialSource = \"AWS SDK default credentials\";\n }\n const regionSources = [\n options.clientConfig?.region,\n callerClientConfig?.region,\n await regionProvider?.({\n profile,\n }),\n ASSUME_ROLE_DEFAULT_REGION,\n ];\n let regionSource = \"default partition's default region\";\n if (regionSources[0]) {\n regionSource = \"options.clientConfig.region\";\n }\n else if (regionSources[1]) {\n regionSource = \"caller client's region\";\n }\n else if (regionSources[2]) {\n regionSource = \"file or env region\";\n }\n const requestHandlerSources = [\n filterRequestHandler(options.clientConfig?.requestHandler),\n filterRequestHandler(callerClientConfig?.requestHandler),\n ];\n let requestHandlerSource = \"STS default requestHandler\";\n if (requestHandlerSources[0]) {\n requestHandlerSource = \"options.clientConfig.requestHandler\";\n }\n else if (requestHandlerSources[1]) {\n requestHandlerSource = \"caller client's requestHandler\";\n }\n logger?.debug?.(`@aws-sdk/credential-providers - fromTemporaryCredentials STS client init with ` +\n `${regionSource}=${await normalizeProvider(coalesce(regionSources))()}, ${credentialSource}, ${requestHandlerSource}.`);\n stsClient = new STSClient({\n userAgentAppId: callerClientConfig?.userAgentAppId,\n ...options.clientConfig,\n credentials: coalesce(credentialSources),\n logger,\n profile,\n region: coalesce(regionSources),\n requestHandler: coalesce(requestHandlerSources),\n });\n }\n if (options.clientPlugins) {\n for (const plugin of options.clientPlugins) {\n stsClient.middlewareStack.use(plugin);\n }\n }\n const { Credentials } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, {\n logger,\n });\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n credentialScope: Credentials.CredentialScope,\n };\n };\n};\nconst filterRequestHandler = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\" ? undefined : requestHandler;\n};\nconst coalesce = (args) => {\n for (const item of args) {\n if (item !== undefined) {\n return item;\n }\n }\n};\n",
"import { fromTokenFile as _fromTokenFile } from \"@aws-sdk/credential-provider-web-identity\";\nexport const fromTokenFile = (init = {}) => _fromTokenFile({\n ...init,\n});\n",
"import { fromWebToken as _fromWebToken } from \"@aws-sdk/credential-provider-web-identity\";\nexport const fromWebToken = (init) => _fromWebToken({\n ...init,\n});\n"
],
"mappings": ";4lBAAA,oBACa,QAAwB,SAAI,SAAwB,MAC7D,SAAI,OAAc,QAQZ,OAAc,YAAO,YAPN,MAAO,IAA0B,CAClD,IAAM,EAAc,MAAM,GAAsB,GAAG,CAAmB,EAAE,CAAqB,EAC7F,GAAI,CAAC,EAAY,YAAc,IAAgB,GAC3C,EAAY,WAAa,IAAI,KAAK,KAAK,IAAI,EAAI,CAAW,EAE9D,OAAO,GAEqC,CAC5C,WAAW,CAAC,EAAc,CACtB,GAAI,EAAe,OACf,MAAU,MAAM,uIAAuI,EAG3J,OADA,EAAc,EACP,EAEf,CAAC,EACD,OAAO,GAEE,GAAwB,IAAI,IAAc,MAAO,IAA0B,CACpF,GAAI,EAAU,SAAW,EACrB,MAAM,IAAI,gBAAc,wBAAyB,CAAE,YAAa,EAAM,CAAC,EAE3E,IAAI,EACJ,QAAW,KAAY,EACnB,GAAI,CACA,OAAO,MAAM,EAAS,CAAqB,EAE/C,MAAO,EAAK,CAER,GADA,EAAoB,EAChB,GAAK,YACL,SAEJ,MAAM,EAGd,MAAM,GCtCV,eCAO,SAAS,CAAa,CAAC,EAAQ,CAClC,OAAO,QAAQ,IAAI,OAAO,KAAK,CAAM,EAAE,OAAO,CAAC,EAAK,IAAS,CACzD,IAAM,EAAkB,EAAO,GAC/B,GAAI,OAAO,IAAoB,SAC3B,EAAI,KAAK,CAAC,EAAM,CAAe,CAAC,EAGhC,OAAI,KAAK,EAAgB,EAAE,KAAK,CAAC,IAAU,CAAC,EAAM,CAAK,CAAC,CAAC,EAE7D,OAAO,GACR,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAkB,EAAc,OAAO,CAAC,GAAS,EAAK,KAAW,CAE3E,OADA,EAAO,GAAO,EACP,GACR,CAAC,CAAC,CAAC,EDXH,SAAS,CAAmB,CAAC,EAAY,CAC5C,MAAO,OAAO,IAA0B,CACpC,EAAW,QAAQ,MAAM,qEAAqE,EAC9F,IAAQ,mCAAkC,yBAA0B,KAAa,0CAC3E,EAAc,CAAC,IAAa,EAAW,eAAe,IACxD,EAAW,qBAAqB,IAChC,GAAuB,qBAAqB,IACxC,aAAe,cAAc,GAA0B,EAAW,MAAM,EAAG,aAAY,YAAY,GAAwB,EAAW,MAAM,EAAG,gBAAkB,GAA0B,EAAW,MAAM,GAAO,MAAO,EAAW,QACzO,IAAI,EAAsB,OAAO,OAAO,CAAC,EAAG,EAAW,cAAgB,CAAC,EAAG,CACvE,OAAQ,EAAY,QAAQ,EAC5B,QAAS,EAAY,SAAS,EAC9B,eAAgB,EAAY,gBAAgB,CAChD,CAAC,CAAC,GAAG,KAAK,IAAI,EAAiC,CAC/C,cAAe,EAAW,cAC1B,WAAY,EAAW,WACvB,OAAQ,EAAW,OAAS,MAAM,EAAc,EAAW,MAAM,EAAI,MACzE,CAAC,CAAC,EACF,MAAO,CACH,WAAY,EAAW,WACvB,YAAa,EACb,gBAAiB,EACjB,aAAc,EACd,WAAY,CAChB,GAGR,SAAS,EAAyB,CAAC,EAAQ,CACvC,MAAM,IAAI,2BAAyB,0DAA2D,CAAE,QAAO,CAAC,EAE5G,SAAS,EAAyB,CAAC,EAAQ,CACvC,MAAM,IAAI,2BAAyB,wDAAyD,CAAE,QAAO,CAAC,EAE1G,SAAS,EAAuB,CAAC,EAAQ,CACrC,MAAM,IAAI,2BAAyB,uDAAwD,CAAE,QAAO,CAAC,EEnCzG,eCCO,MAAM,CAAiB,CAC1B,OACA,WAAW,CAAC,EAAS,2BAA4B,CAC7C,KAAK,OAAS,EAElB,OAAO,CAAC,EAAK,CACT,OAAO,KAAK,gBAAgB,WAAY,CAAC,IAAU,CAC/C,IAAM,EAAM,EAAM,IAAI,CAAG,EACzB,OAAO,IAAI,QAAQ,CAAC,IAAY,CAC5B,EAAI,QAAU,IAAM,EAAQ,IAAI,EAChC,EAAI,UAAY,IAAM,EAAQ,EAAI,OAAS,EAAI,OAAO,MAAQ,IAAI,EACrE,EACJ,EAAE,MAAM,IAAM,IAAI,EAEvB,UAAU,CAAC,EAAK,CACZ,OAAO,KAAK,gBAAgB,YAAa,CAAC,IAAU,CAChD,IAAM,EAAM,EAAM,OAAO,CAAG,EAC5B,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,EAAI,QAAU,IAAM,EAAO,EAAI,KAAK,EACpC,EAAI,UAAY,IAAM,EAAQ,EACjC,EACJ,EAEL,OAAO,CAAC,EAAI,EAAO,CACf,OAAO,KAAK,gBAAgB,YAAa,CAAC,IAAU,CAChD,IAAM,EAAM,EAAM,IAAI,CAAE,KAAI,OAAM,CAAC,EACnC,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,EAAI,QAAU,IAAM,EAAO,EAAI,KAAK,EACpC,EAAI,UAAY,IAAM,EAAQ,EACjC,EACJ,EAEL,KAAK,EAAG,CACJ,IAAM,EAAgB,KAAK,UAAU,KAAK,KAAK,OAAQ,CAAC,EACxD,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,EAAc,UAAY,IAAM,CAC5B,EAAQ,EAAc,MAAM,GAEhC,EAAc,QAAU,IAAM,CAC1B,EAAO,EAAc,KAAK,GAE9B,EAAc,UAAY,IAAM,CAC5B,EAAW,MAAM,qBAAqB,CAAC,GAE3C,EAAc,gBAAkB,IAAM,CAClC,IAAM,EAAK,EAAc,OACzB,EAAG,QAAU,IAAM,CACf,EAAW,MAAM,+BAA+B,CAAC,GAErD,EAAG,kBAlDA,cAkD8B,CAAE,QAAS,IAAK,CAAC,GAEzD,EAEL,eAAe,CAAC,EAAM,EAAQ,CAC1B,OAAO,KAAK,MAAM,EAAE,KAAK,CAAC,IAAO,CAC7B,IAAM,EAAK,EAAG,YAxDP,cAwD+B,CAAI,EAE1C,OADA,EAAG,WAAa,IAAM,EAAG,MAAM,EACxB,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,EAAG,QAAU,IAAM,EAAO,EAAG,KAAK,EAClC,EAAQ,EAAO,EAAG,YA5Df,aA4DqC,CAAC,CAAC,EAC7C,EAAE,MAAM,CAAC,IAAQ,CAEd,MADA,EAAG,MAAM,EACH,EACT,EACJ,EAET,CCnEO,MAAM,CAAgB,CACzB,MACA,WAAW,CAAC,EAAQ,CAAC,EAAG,CACpB,KAAK,MAAQ,EAEjB,OAAO,CAAC,EAAK,CACT,GAAI,KAAO,KAAK,MACZ,OAAO,KAAK,MAAM,GAEtB,OAAO,KAEX,UAAU,CAAC,EAAK,CACZ,OAAO,KAAK,MAAM,GAEtB,OAAO,CAAC,EAAK,EAAO,CAChB,KAAK,MAAM,GAAO,EAE1B,CCfA,IAAM,GAAkB,IAAI,EACrB,SAAS,CAAY,EAAG,CAC3B,GAAI,OAAO,OAAS,UAAY,KAAK,UACjC,OAAO,IAAI,EAEf,GAAI,OAAO,SAAW,UAAY,OAAO,aACrC,OAAO,OAAO,aAElB,OAAO,GHNJ,SAAS,CAAuB,EAAG,YAAW,QAAQ,EAAa,EAAG,SAAQ,eAAc,gBAAe,iBAAgB,SAAQ,iBAAiB,CAAC,GAAU,OAAO,KAAK,CAAM,EAAE,SAAW,EAAI,YAAc,OAAW,SAAQ,sBAAuB,CAC7P,GAAQ,MAAM,qEAAqE,EACnF,IAAM,EAAW,EACX,oCAAoC,KAAkB,IACtD,OACF,EAAW,MAAO,IAA0B,CAC5C,IAAQ,eAAc,yBAA0B,KAAa,0CACvD,EAAc,CAAC,IAAa,IAAe,IAC7C,IAAqB,IACrB,GAAuB,qBAAqB,GAC1C,EAAU,GACZ,IAAI,EAAsB,OAAO,OAAO,CAAC,EAAG,GAAgB,CAAC,EAAG,CAC5D,OAAQ,EAAY,QAAQ,EAC5B,QAAS,EAAY,SAAS,EAC9B,eAAgB,EAAY,gBAAgB,CAChD,CAAC,CAAC,EACF,EAAc,GAAa,MAAM,EAAM,QAAQ,CAAQ,EAC3D,GAAI,CAAC,EAAY,CACb,IAAQ,aAAa,GAAiB,CAAM,GAAM,MAAM,EAAQ,KAAK,IAAI,EAAa,CAClF,UAAW,EACX,eAAgB,EAChB,OAAQ,EAAS,MAAM,EAAc,CAAM,EAAI,MACnD,CAAC,CAAC,EAEF,GADA,EAAa,EACT,EACA,QAAQ,QAAQ,EAAM,QAAQ,EAAU,CAAU,CAAC,EAAE,MAAM,IAAM,EAAG,EAS5E,OANA,EAAW,EAAoB,CAC3B,OAAQ,EACR,gBACA,SACA,YACJ,CAAC,EACM,EAAS,CAAqB,GAEzC,MAAO,CAAC,IAA0B,EAAS,CAAqB,EAAE,MAAM,MAAO,IAAQ,CACnF,GAAI,EACA,QAAQ,QAAQ,EAAM,WAAW,CAAQ,CAAC,EAAE,MAAM,IAAM,EAAG,EAE/D,MAAM,EACT,EAEL,SAAS,EAAgB,CAAC,EAAQ,CAC9B,MAAM,IAAI,2BAAyB,wDAAyD,CAAE,QAAO,CAAC,EI/CnG,IAAM,GAAsB,CAAC,IAAY,EAAqB,IAC9D,CACP,CAAC,ECFM,IAAM,GAA0B,CAAC,IAAY,EAAyB,IACtE,CACP,CAAC,ECFM,IAAM,GAAwB,CAAC,IAAS,CAE3C,OADA,GAAM,QAAQ,MAAM,mCAAoC,uBAAuB,EACxE,EAAuB,CAAI,GCF/B,IAAM,GAAU,CAAC,IAAS,EAAS,CAAI,ECAvC,IAAM,GAAU,CAAC,EAAO,CAAC,IAAM,EAAS,IACxC,CACP,CAAC,ECHD,gBAEO,IAAM,GAAuB,CAAC,IAAS,CAE1C,OADA,GAAM,QAAQ,MAAM,mCAAoC,sBAAsB,EACvE,SAAY,EAAsB,CAAI,EAAE,EAAE,KAAK,CAAC,IAAU,uBAAqB,EAAO,mBAAoB,GAAG,CAAC,GCHlH,IAAM,GAAuB,CAAC,IAAS,EAAsB,IAC7D,CACP,CAAC,ECFD,eCDA,eACa,EAAoB,4BACpB,EAAiB,MAAO,IAAS,CAC1C,IAAQ,oBAAmB,wBAAuB,wBAAuB,wBAAyB,KAAa,0CAC/G,GAAI,QAAQ,IAAI,IAA0B,QAAQ,IAAI,GAAoB,CACtE,EAAK,QAAQ,MAAM,oFAAoF,EACvG,IAAQ,YAAa,KAAa,0CAClC,OAAO,QAAM,EAAS,CAAI,EAAG,EAAsB,CAAI,CAAC,EAE5D,GAAI,QAAQ,IAAI,IAAsB,QAAQ,IAAI,KAAuB,QACrE,MAAO,UAAY,CACf,MAAM,IAAI,2BAAyB,gDAAiD,CAAE,OAAQ,EAAK,MAAO,CAAC,GAInH,OADA,EAAK,QAAQ,MAAM,0EAA0E,EACtF,EAAqB,CAAI,GCf7B,SAAS,CAAY,CAAC,EAAW,EAAgB,CACpD,IAAM,EAAQ,GAAoB,CAAS,EACvC,EACA,EACA,EACE,EAAW,MAAO,IAAY,CAChC,GAAI,GAAS,aACT,OAAO,MAAM,EAAM,CAAO,EAE9B,GAAI,GAAa,YACb,GAAI,GAAa,YAAY,QAAQ,EAAI,KAAK,IAAI,EAC9C,EAAc,OAGtB,GAAI,EACA,MAAM,EAEL,QAAI,CAAC,GAAe,IAAiB,CAAW,EACjD,GAAI,GACA,GAAI,CAAC,EACD,EAAc,EAAM,CAAO,EACtB,KAAK,CAAC,IAAM,CACb,EAAc,EACjB,EACI,QAAQ,IAAM,CACf,EAAc,OACjB,EAWL,YAPA,EAAa,EAAM,CAAO,EACrB,KAAK,CAAC,IAAM,CACb,EAAc,EACjB,EACI,QAAQ,IAAM,CACf,EAAa,OAChB,EACM,EAAS,CAAO,EAG/B,OAAO,GAEX,OAAO,EAEJ,IAAM,GAAsB,CAAC,IAAc,MAAO,IAA0B,CAC/E,IAAI,EACJ,QAAW,KAAY,EACnB,GAAI,CACA,OAAO,MAAM,EAAS,CAAqB,EAE/C,MAAO,EAAK,CAER,GADA,EAAoB,EAChB,GAAK,YACL,SAEJ,MAAM,EAGd,MAAM,GFtDV,IAAI,EAAyC,GAChC,EAAkB,CAAC,EAAO,CAAC,IAAM,EAAa,CACvD,SAAY,CAER,GADgB,EAAK,SAAW,QAAQ,IAAI,eAC/B,CAET,GADmC,QAAQ,IAAI,IAAY,QAAQ,IAAI,IAEnE,GAAI,CAAC,GACc,EAAK,QAAQ,MAAQ,EAAK,QAAQ,aAAa,OAAS,aACjE,EAAK,OAAO,KAAK,KAAK,EAAK,MAAM,EACjC,QAAQ,MACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAQ1B,EACmB,EAAyC,GAGjD,MAAM,IAAI,2BAAyB,iDAAkD,CACjF,OAAQ,EAAK,OACb,YAAa,EACjB,CAAC,EAGL,OADA,EAAK,QAAQ,MAAM,8DAA8D,EAC1E,EAAQ,CAAI,EAAE,GAEzB,MAAO,IAA0B,CAC7B,EAAK,QAAQ,MAAM,8DAA8D,EACjF,IAAQ,cAAa,eAAc,YAAW,cAAa,cAAe,EAC1E,GAAI,CAAC,GAAe,CAAC,GAAgB,CAAC,GAAa,CAAC,GAAe,CAAC,EAChE,MAAM,IAAI,2BAAyB,6EAA8E,CAAE,OAAQ,EAAK,MAAO,CAAC,EAE5I,IAAQ,WAAY,KAAa,0CACjC,OAAO,EAAQ,CAAI,EAAE,CAAqB,GAE9C,MAAO,IAA0B,CAC7B,EAAK,QAAQ,MAAM,8DAA8D,EACjF,IAAQ,WAAY,KAAa,0CACjC,OAAO,EAAQ,CAAI,EAAE,CAAqB,GAE9C,MAAO,IAA0B,CAC7B,EAAK,QAAQ,MAAM,kEAAkE,EACrF,IAAQ,eAAgB,KAAa,0CACrC,OAAO,EAAY,CAAI,EAAE,CAAqB,GAElD,MAAO,IAA0B,CAC7B,EAAK,QAAQ,MAAM,oEAAoE,EACvF,IAAQ,iBAAkB,KAAa,0CACvC,OAAO,EAAc,CAAI,EAAE,CAAqB,GAEpD,SAAY,CAER,OADA,EAAK,QAAQ,MAAM,qEAAqE,GAChF,MAAM,EAAe,CAAI,GAAG,GAExC,SAAY,CACR,MAAM,IAAI,2BAAyB,gDAAiD,CAChF,YAAa,GACb,OAAQ,EAAK,MACjB,CAAC,EAET,EAAG,EAA2B,EAEvB,IAAM,GAA8B,CAAC,IAAgB,GAAa,aAAe,QAAa,EAAY,WAAW,QAAQ,EAAI,KAAK,IAAI,EAAI,OGtE9I,IAAM,EAAwB,CAAC,EAAO,CAAC,IAAM,EAAgB,IAC7D,CACP,CAAC,ECFM,IAAM,GAAc,CAAC,IAAS,EAAa,CAAI,ECA/C,IAAM,GAAU,CAAC,EAAO,CAAC,IAAM,CAClC,OAAO,EAAS,IAAK,CAAK,CAAC,GCF/B,eCAA,gBACA,WACM,GAA6B,YACtB,GAA2B,CAAC,EAAS,EAA2B,IAAmB,CAC5F,IAAI,EACJ,MAAO,OAAO,EAAwB,CAAC,IAAM,CACzC,IAAQ,sBAAuB,EACzB,EAAU,EAAQ,cAAc,SAAW,GAAoB,QAC/D,EAAS,EAAQ,QAAU,GAAoB,OACrD,GAAQ,MAAM,gEAAgE,EAC9E,IAAM,EAAS,IAAK,EAAQ,OAAQ,gBAAiB,EAAQ,OAAO,iBAAmB,cAAgB,KAAK,IAAI,CAAE,EAClH,GAAI,GAAQ,aAAc,CACtB,GAAI,CAAC,EAAQ,gBACT,MAAM,IAAI,2BAAyB,oGAAqG,CACpI,YAAa,GACb,QACJ,CAAC,EAEL,EAAO,UAAY,MAAM,EAAQ,gBAAgB,GAAQ,YAAY,EAEzE,IAAQ,oBAAmB,aAAc,KAAa,0CACtD,GAAI,CAAC,EAAW,CACZ,IAAM,EAA4B,OAAO,IAA8B,WAAa,EAA0B,EAAI,OAC5G,EAAoB,CACtB,EAAQ,kBACR,EAAQ,cAAc,YACtB,KAAK,GAAoB,YACzB,GAAoB,4BAA4B,EAChD,CACJ,EACI,EAAmB,iCACvB,GAAI,EAAkB,GAClB,EAAmB,4BAElB,QAAI,EAAkB,GACvB,EAAmB,mCAElB,QAAI,EAAkB,GAEvB,MADA,EAAmB,8BACT,MAAM,sEAAsE,EAErF,QAAI,EAAkB,GACvB,EAAmB,4CAElB,QAAI,EAAkB,GACvB,EAAmB,8BAEvB,IAAM,EAAgB,CAClB,EAAQ,cAAc,OACtB,GAAoB,OACpB,MAAM,IAAiB,CACnB,SACJ,CAAC,EACD,EACJ,EACI,EAAe,qCACnB,GAAI,EAAc,GACd,EAAe,8BAEd,QAAI,EAAc,GACnB,EAAe,yBAEd,QAAI,EAAc,GACnB,EAAe,qBAEnB,IAAM,EAAwB,CAC1B,EAAqB,EAAQ,cAAc,cAAc,EACzD,EAAqB,GAAoB,cAAc,CAC3D,EACI,EAAuB,6BAC3B,GAAI,EAAsB,GACtB,EAAuB,sCAEtB,QAAI,EAAsB,GAC3B,EAAuB,iCAE3B,GAAQ,QAAQ,iFACT,KAAgB,MAAM,oBAAkB,EAAS,CAAa,CAAC,EAAE,MAAM,MAAqB,IAAuB,EAC1H,EAAY,IAAI,EAAU,CACtB,eAAgB,GAAoB,kBACjC,EAAQ,aACX,YAAa,EAAS,CAAiB,EACvC,SACA,UACA,OAAQ,EAAS,CAAa,EAC9B,eAAgB,EAAS,CAAqB,CAClD,CAAC,EAEL,GAAI,EAAQ,cACR,QAAW,KAAU,EAAQ,cACzB,EAAU,gBAAgB,IAAI,CAAM,EAG5C,IAAQ,eAAgB,MAAM,EAAU,KAAK,IAAI,EAAkB,CAAM,CAAC,EAC1E,GAAI,CAAC,GAAe,CAAC,EAAY,aAAe,CAAC,EAAY,gBACzD,MAAM,IAAI,2BAAyB,uDAAuD,EAAO,UAAW,CACxG,QACJ,CAAC,EAEL,MAAO,CACH,YAAa,EAAY,YACzB,gBAAiB,EAAY,gBAC7B,aAAc,EAAY,aAC1B,WAAY,EAAY,WACxB,gBAAiB,EAAY,eACjC,IAGF,EAAuB,CAAC,IAAmB,CAC7C,OAAO,GAAgB,UAAU,kBAAoB,KAAO,OAAY,GAEtE,EAAW,CAAC,IAAS,CACvB,QAAW,KAAQ,EACf,GAAI,IAAS,OACT,OAAO,GD/GZ,IAAM,GAA2B,CAAC,IAAY,CACjD,OAAO,GAA6B,EAAS,EAAuB,OAAS,UAAU,QAAQ,IAAI,eAAkB,aAAW,CAC5H,4BAA6B,CAAC,IAAQ,EAAI,WAC1C,mBAAoB,CAAC,IAAgB,CACjC,OAAO,EAAY,QAEvB,QAAS,IAAG,CAAG,OACnB,EAAG,IAAK,kCAAiC,SAAQ,CAAC,EAAE,CAAC,GETlD,IAAM,GAAgB,CAAC,EAAO,CAAC,IAAM,GAAe,IACpD,CACP,CAAC,ECFM,IAAM,GAAe,CAAC,IAAS,GAAc,IAC7C,CACP,CAAC",
"debugId": "75AF77A626FC09C664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260427172553_slow_nightmare.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260427172553_slow_nightmare\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_session_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_type_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_time_created_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`session_message_session_idx\\` ON \\`session_message\\` (\\`session_id\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`);`,\n )\n yield* tx.run(`CREATE INDEX \\`session_message_time_created_idx\\` ON \\`session_message\\` (\\`time_created\\`);`)\n yield* tx.run(`DROP TABLE \\`session_entry\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+aAUb,EACD,MAAO,EAAG,IAAI,mDAAqD,EACnE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,iFAAuF,EACrG,MAAO,EAAG,IACR,6FACF,EACA,MAAO,EAAG,IAAI,wFAA8F,EAC5G,MAAO,EAAG,IAAI,6BAA+B,EAC9C,EAEL",
"debugId": "2B40F28F196D1FA164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+keymap@0.4.3+aeceedea454d57be/node_modules/@opentui/keymap/src/opentui.js", "../tui/src/util/session.ts", "../tui/src/logo.ts"],
"sourcesContent": [
"// @bun\nimport\"../chunks/index-p35cyhc4.js\";\n\n// src/opentui.ts\nimport { CliRenderEvents, KeyEvent, RenderableEvents } from \"@opentui/core\";\nimport { Keymap } from \"@opentui/keymap\";\nimport { registerDefaultKeys, registerEnabledFields, registerMetadataFields } from \"@opentui/keymap/addons\";\nfunction createSyntheticCommandEvent() {\n return new KeyEvent({\n name: \"command\",\n ctrl: false,\n meta: false,\n shift: false,\n option: false,\n sequence: \"\",\n number: false,\n raw: \"\",\n eventType: \"press\",\n source: \"raw\"\n });\n}\nfunction normalizeRuntimePlatform(platform) {\n if (platform === \"darwin\") {\n return \"macos\";\n }\n if (platform === \"win32\") {\n return \"windows\";\n }\n if (platform === \"linux\") {\n return \"linux\";\n }\n return \"unknown\";\n}\nfunction createOpenTuiHostMetadata(renderer) {\n const platform = normalizeRuntimePlatform(process.platform);\n const hasKittyKeyboard = renderer.capabilities?.kitty_keyboard === true;\n return {\n platform,\n primaryModifier: platform === \"macos\" ? \"super\" : platform === \"unknown\" ? \"unknown\" : \"ctrl\",\n modifiers: {\n ctrl: \"supported\",\n shift: \"supported\",\n meta: \"supported\",\n super: hasKittyKeyboard ? \"supported\" : \"unknown\",\n hyper: hasKittyKeyboard ? \"supported\" : \"unknown\"\n }\n };\n}\nfunction createOpenTuiKeymapHost(renderer) {\n return {\n get metadata() {\n return createOpenTuiHostMetadata(renderer);\n },\n rootTarget: renderer.root,\n get isDestroyed() {\n return renderer.isDestroyed;\n },\n getFocusedTarget() {\n const focused = renderer.currentFocusedRenderable;\n if (!focused || focused.isDestroyed || !focused.focused) {\n return null;\n }\n return focused;\n },\n getParentTarget(target) {\n return target.parent;\n },\n isTargetDestroyed(target) {\n return target.isDestroyed;\n },\n onKeyPress(listener) {\n renderer.keyInput.prependListener(\"keypress\", listener);\n return () => {\n renderer.keyInput.off(\"keypress\", listener);\n };\n },\n onKeyRelease(listener) {\n renderer.keyInput.prependListener(\"keyrelease\", listener);\n return () => {\n renderer.keyInput.off(\"keyrelease\", listener);\n };\n },\n onFocusChange(listener) {\n renderer.on(CliRenderEvents.FOCUSED_RENDERABLE, listener);\n return () => {\n renderer.off(CliRenderEvents.FOCUSED_RENDERABLE, listener);\n };\n },\n onDestroy(listener) {\n renderer.once(CliRenderEvents.DESTROY, listener);\n return () => {\n renderer.off(CliRenderEvents.DESTROY, listener);\n };\n },\n onTargetDestroy(target, listener) {\n target.once(RenderableEvents.DESTROYED, listener);\n return () => {\n target.off(RenderableEvents.DESTROYED, listener);\n };\n },\n onRawInput(listener) {\n renderer.prependInputHandler(listener);\n return () => {\n renderer.removeInputHandler(listener);\n };\n },\n createCommandEvent() {\n return createSyntheticCommandEvent();\n }\n };\n}\nfunction createOpenTuiKeymap(renderer) {\n if (renderer.isDestroyed) {\n throw new Error(\"Cannot create a keymap for a destroyed renderer\");\n }\n return new Keymap(createOpenTuiKeymapHost(renderer));\n}\nfunction createDefaultOpenTuiKeymap(renderer) {\n if (renderer.isDestroyed) {\n throw new Error(\"Cannot create a keymap for a destroyed renderer\");\n }\n const keymap = new Keymap(createOpenTuiKeymapHost(renderer));\n registerDefaultKeys(keymap);\n registerEnabledFields(keymap);\n registerMetadataFields(keymap);\n return keymap;\n}\nexport {\n createOpenTuiKeymapHost,\n createOpenTuiKeymap,\n createDefaultOpenTuiKeymap\n};\n\n//# debugId=3536CBBE2B01723A64756E2164756E21\n//# sourceMappingURL=opentui.js.map\n",
"import type { ModelInfo, SessionMessageAssistant, SessionMessageInfo } from \"@opencode-ai/client\"\n\nexport function isDefaultTitle(title: string) {\n return /^(New session - |Child session - )\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(title)\n}\n\nexport function lastAssistantWithUsage(messages: ReadonlyArray<SessionMessageInfo>, boundary?: string) {\n const boundaryIndex = boundary ? messages.findIndex((message) => message.id === boundary) : -1\n if (boundary && boundaryIndex === -1) return undefined\n const end = boundaryIndex === -1 ? messages.length : boundaryIndex\n const compactionIndex = messages.findLastIndex(\n (message, index) => message.type === \"compaction\" && message.status === \"completed\" && index < end,\n )\n return messages.findLast(\n (message, index): message is SessionMessageAssistant & { tokens: NonNullable<SessionMessageAssistant[\"tokens\"]> } =>\n message.type === \"assistant\" && message.tokens !== undefined && index > compactionIndex && index < end,\n )\n}\n\nexport function contextUsage(\n messages: ReadonlyArray<SessionMessageInfo>,\n models: ReadonlyArray<ModelInfo> | undefined,\n boundary?: string,\n) {\n const last = lastAssistantWithUsage(messages, boundary)\n if (!last) return\n const tokens =\n last.tokens.input + last.tokens.output + last.tokens.reasoning + last.tokens.cache.read + last.tokens.cache.write\n if (tokens <= 0) return\n const model = models?.find((model) => model.providerID === last.model.providerID && model.id === last.model.id)\n return {\n tokens,\n percent: model?.limit.context ? Math.round((tokens / model.limit.context) * 100) : undefined,\n }\n}\n",
"export const logo = {\n left: [\" \", \"█▀▀█ █▀▀█ █▀▀█ █▀▀▄\", \"█__█ █__█ █^^^ █__█\", \"▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀~~▀\"],\n right: [\" ▄ \", \"█▀▀▀ █▀▀█ █▀▀█ █▀▀█\", \"█___ █__█ █__█ █^^^\", \"▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀\"],\n}\n\nexport const go = {\n left: [\" \", \"█▀▀▀\", \"█_^█\", \"▀▀▀▀\"],\n right: [\" \", \"█▀▀█\", \"█__█\", \"▀▀▀▀\"],\n}\n\nexport const marks = \"_^~,\"\n"
],
"mappings": "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",
"debugId": "2ED7BD25553B65CA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+togetherai@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/togetherai/dist/index.mjs"],
"sourcesContent": [
"// src/togetherai-provider.ts\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-model.ts\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar togetheraiErrorSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n message: z.string()\n })\n })\n )\n);\nvar togetheraiRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number()\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number()\n })\n })\n )\n);\n\n// src/reranking/togetherai-reranking-options.ts\nimport { lazySchema as lazySchema2, zodSchema as zodSchema2 } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar togetheraiRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n rankFields: z2.array(z2.string()).optional()\n })\n )\n);\n\n// src/reranking/togetherai-reranking-model.ts\nvar TogetherAIRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a, _b;\n const rerankingOptions = await parseProviderOptions({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema\n });\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions == null ? void 0 : rerankingOptions.rankFields,\n return_documents: false\n // reduce response size\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n modelId: (_b = response.model) != null ? _b : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/togetherai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createJsonResponseHandler as createJsonResponseHandler2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n lazySchema as lazySchema3,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar TogetherAIImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c;\n const warnings = [];\n if (mask != null) {\n throw new Error(\n \"Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"This model does not support the `aspectRatio` option. Use `size` instead.\"\n });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const togetheraiOptions = await parseProviderOptions2({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiImageModelOptionsSchema\n });\n let imageUrl;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n if (files.length > 1) {\n warnings.push({\n type: \"other\",\n message: \"Together AI only supports a single input image. Additional images are ignored.\"\n });\n }\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n seed,\n ...n > 1 ? { n } : {},\n ...splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1])\n },\n ...imageUrl != null ? { image_url: imageUrl } : {},\n response_format: \"base64\",\n ...togetheraiOptions != null ? togetheraiOptions : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: togetheraiErrorSchema2,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler2(\n togetheraiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar togetheraiImageResponseSchema = z3.object({\n data: z3.array(\n z3.object({\n b64_json: z3.string()\n })\n )\n});\nvar togetheraiErrorSchema2 = z3.object({\n error: z3.object({\n message: z3.string()\n })\n});\nvar togetheraiImageModelOptionsSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z3.number().nullish(),\n /**\n * Guidance scale for image generation.\n */\n guidance: z3.number().nullish(),\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z3.string().nullish(),\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z3.boolean().nullish()\n }).passthrough()\n )\n);\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/togetherai-provider.ts\nfunction loadDeprecatedApiKey() {\n if (typeof process === \"undefined\") {\n return void 0;\n }\n if (typeof process.env.TOGETHER_API_KEY === \"string\") {\n return void 0;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === \"string\") {\n console.warn(\n \"TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.\"\n );\n }\n return key;\n}\nfunction createTogetherAI(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.together.xyz/v1/\"\n );\n const getHeaders = () => {\n var _a2;\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),\n environmentVariableName: \"TOGETHER_API_KEY\",\n description: \"TogetherAI\"\n })}`,\n ...options.headers\n },\n `ai-sdk/togetherai/${VERSION}`\n );\n };\n const getCommonModelConfig = (modelType) => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const createRerankingModel = (modelId) => new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig(\"reranking\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n return provider;\n}\nvar togetherai = createTogetherAI();\nexport {\n VERSION,\n createTogetherAI,\n togetherai\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "6051F8470EC7852E64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260707120000_migrate_prelaunch_v2_state.ts"],
"sourcesContent": [
"import { sql } from \"drizzle-orm\"\nimport { Effect, Schema } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nconst decodeJson = Schema.decodeUnknownSync(Schema.UnknownFromJsonString)\nconst isObject = Schema.is(Schema.Record(Schema.String, Schema.Unknown))\n\nexport default {\n id: \"20260707120000_migrate_prelaunch_v2_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(\n sql`DELETE FROM session_message WHERE type = 'compaction' AND json_extract(data, '$.status') = 'queued'`,\n )\n const messages = yield* tx.all<{ id: string; type: string; data: string }>(\n sql`SELECT id, type, data FROM session_message WHERE type IN ('skill', 'shell', 'assistant', 'compaction', 'synthetic')`,\n )\n for (const row of messages) {\n const data = object(decodeJson(row.data))\n yield* tx.run(\n sql`UPDATE session_message SET data = ${JSON.stringify(messageData(row.type, data))} WHERE id = ${row.id}`,\n )\n }\n\n yield* tx.run(sql`DELETE FROM event WHERE type = 'session.compaction.delta.1'`)\n const events = yield* tx.all<{ id: string; aggregateID: string; seq: number; type: string; data: string }>(sql`\n SELECT id, aggregate_id as aggregateID, seq, type, data\n FROM event\n WHERE type IN (\n 'session.skill.activated.1',\n 'session.skill.activated.2',\n 'session.compaction.started.1',\n 'session.compaction.started.2',\n 'session.compaction.ended.1',\n 'session.compaction.failed.1',\n 'session.compaction.failed.2',\n 'session.revert.staged.1',\n 'session.revert.staged.2'\n )\n ORDER BY aggregate_id, seq\n `)\n const compactionReasons = new Map<string, \"auto\" | \"manual\">()\n for (const row of events) {\n const data = object(decodeJson(row.data))\n if (row.type.startsWith(\"session.compaction.ended.\")) {\n compactionReasons.delete(row.aggregateID)\n continue\n }\n const event = eventData(row.type, data, compactionReasons.get(row.aggregateID))\n if (row.type.startsWith(\"session.compaction.started.\"))\n compactionReasons.set(row.aggregateID, event.data.reason === \"auto\" ? \"auto\" : \"manual\")\n if (row.type.startsWith(\"session.compaction.failed.\")) compactionReasons.delete(row.aggregateID)\n yield* tx.run(\n sql`UPDATE event SET type = ${event.type}, data = ${JSON.stringify(event.data)} WHERE id = ${row.id}`,\n )\n }\n })\n },\n} satisfies DatabaseMigration.Migration\n\nfunction messageData(type: string, data: Record<string, unknown>) {\n if (type === \"skill\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n skill: data.skill ?? data.id ?? data.name,\n name: data.name,\n text: data.text,\n })\n if (type === \"shell\") {\n const shell = object(data.shell)\n return defined({\n metadata: data.metadata,\n time: data.time,\n shellID: data.shellID ?? shell.id,\n command: data.command ?? shell.command,\n status: data.status ?? shell.status,\n exit: data.exit ?? shell.exit,\n output: data.output,\n })\n }\n if (type === \"assistant\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n agent: data.agent,\n model: data.model,\n content: Array.isArray(data.content) ? data.content.map(assistantContent) : data.content,\n snapshot: data.snapshot,\n finish: data.finish,\n cost: data.cost,\n tokens: data.tokens,\n error: data.error,\n retry: data.retry,\n })\n if (type === \"compaction\") {\n if (data.status === \"failed\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n status: data.status,\n reason: data.reason,\n error: data.error ?? genericCompactionError,\n })\n return defined({\n metadata: data.metadata,\n time: data.time,\n status: data.status,\n reason: data.reason,\n summary: data.summary,\n recent: data.recent,\n })\n }\n if (type === \"synthetic\")\n return defined({ metadata: data.metadata, time: data.time, text: data.text, description: data.description })\n const { sessionID: _, ...current } = data\n return current\n}\n\nfunction assistantContent(value: unknown) {\n const content = object(value)\n if (content.type === \"text\") return defined({ type: content.type, text: content.text })\n if (content.type === \"reasoning\")\n return defined({ type: content.type, text: content.text, state: content.state, time: content.time })\n if (content.type !== \"tool\") return content\n return defined({\n type: content.type,\n id: content.id,\n name: content.name,\n executed: content.executed,\n providerState: content.providerState,\n providerResultState: content.providerResultState,\n state: toolState(content.state),\n time: content.time,\n })\n}\n\nfunction toolState(value: unknown) {\n const state = object(value)\n if (state.status === \"pending\" || state.status === \"streaming\")\n return defined({ status: \"streaming\", input: state.input })\n if (state.status === \"running\")\n return defined({ status: state.status, input: state.input, structured: state.structured, content: state.content })\n if (state.status === \"completed\")\n return defined({\n status: state.status,\n input: state.input,\n structured: state.structured,\n content: state.content,\n result: state.result,\n })\n if (state.status === \"error\")\n return defined({\n status: state.status,\n input: state.input,\n structured: state.structured,\n content: state.content,\n error: state.error,\n result: state.result,\n })\n return state\n}\n\nfunction eventData(type: string, data: Record<string, unknown>, compactionReason?: \"auto\" | \"manual\") {\n if (type.startsWith(\"session.skill.activated.\"))\n return {\n type: \"session.skill.activated.1\",\n data: defined({ sessionID: data.sessionID, id: data.id ?? data.name, name: data.name, text: data.text }),\n }\n if (type.startsWith(\"session.compaction.started.\"))\n return {\n type: \"session.compaction.started.1\",\n data: defined({\n sessionID: data.sessionID,\n reason: data.reason,\n recent: data.recent ?? \"\",\n inputID: data.inputID,\n }),\n }\n if (type.startsWith(\"session.compaction.failed.\"))\n return {\n type: \"session.compaction.failed.1\",\n data: defined({\n sessionID: data.sessionID,\n reason: data.reason ?? compactionReason ?? \"manual\",\n error: data.error ?? genericCompactionError,\n inputID: data.inputID,\n }),\n }\n const revert = object(data.revert)\n return {\n type: \"session.revert.staged.1\",\n data: defined({\n sessionID: data.sessionID,\n revert: defined({\n messageID: revert.messageID,\n partID: revert.partID,\n snapshot: revert.snapshot,\n files: Array.isArray(revert.files)\n ? revert.files.map((value) => {\n const file = object(value)\n return defined({\n file: file.file ?? file.path,\n patch: file.patch,\n additions: file.additions,\n deletions: file.deletions,\n status: file.status,\n })\n })\n : undefined,\n }),\n }),\n }\n}\n\nconst genericCompactionError = {\n type: \"compaction.failed\",\n message: \"Compaction failed before recording an error\",\n}\n\nfunction object(value: unknown): Record<string, unknown> {\n return isObject(value) ? value : {}\n}\n\nfunction defined(value: Record<string, unknown>) {\n return Object.fromEntries(Object.entries(value).filter((entry) => entry[1] !== undefined))\n}\n"
],
"mappings": ";+KAIA,SAAM,OAAa,OAAO,kBAAkB,EAAO,qBAAqB,EAClE,EAAW,EAAO,GAAG,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,CAAC,EAExD,GACb,GAAI,4CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IACR,sGACF,EACA,IAAM,EAAW,MAAO,EAAG,IACzB,sHACF,EACA,QAAW,KAAO,EAAU,CAC1B,IAAM,EAAO,EAAO,EAAW,EAAI,IAAI,CAAC,EACxC,MAAO,EAAG,IACR,sCAAwC,KAAK,UAAU,EAAY,EAAI,KAAM,CAAI,CAAC,gBAAgB,EAAI,IACxG,EAGF,MAAO,EAAG,IAAI,8DAAgE,EAC9E,IAAM,EAAS,MAAO,EAAG,IAAkF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAe1G,EACK,EAAoB,IAAI,IAC9B,QAAW,KAAO,EAAQ,CACxB,IAAM,EAAO,EAAO,EAAW,EAAI,IAAI,CAAC,EACxC,GAAI,EAAI,KAAK,WAAW,2BAA2B,EAAG,CACpD,EAAkB,OAAO,EAAI,WAAW,EACxC,SAEF,IAAM,EAAQ,EAAU,EAAI,KAAM,EAAM,EAAkB,IAAI,EAAI,WAAW,CAAC,EAC9E,GAAI,EAAI,KAAK,WAAW,6BAA6B,EACnD,EAAkB,IAAI,EAAI,YAAa,EAAM,KAAK,SAAW,OAAS,OAAS,QAAQ,EACzF,GAAI,EAAI,KAAK,WAAW,4BAA4B,EAAG,EAAkB,OAAO,EAAI,WAAW,EAC/F,MAAO,EAAG,IACR,4BAA8B,EAAM,gBAAgB,KAAK,UAAU,EAAM,IAAI,gBAAgB,EAAI,IACnG,GAEH,EAEL,EAEA,SAAS,CAAW,CAAC,EAAc,EAA+B,CAChE,GAAI,IAAS,QACX,OAAO,EAAQ,CACb,SAAU,EAAK,SACf,KAAM,EAAK,KACX,MAAO,EAAK,OAAS,EAAK,IAAM,EAAK,KACrC,KAAM,EAAK,KACX,KAAM,EAAK,IACb,CAAC,EACH,GAAI,IAAS,QAAS,CACpB,IAAM,EAAQ,EAAO,EAAK,KAAK,EAC/B,OAAO,EAAQ,CACb,SAAU,EAAK,SACf,KAAM,EAAK,KACX,QAAS,EAAK,SAAW,EAAM,GAC/B,QAAS,EAAK,SAAW,EAAM,QAC/B,OAAQ,EAAK,QAAU,EAAM,OAC7B,KAAM,EAAK,MAAQ,EAAM,KACzB,OAAQ,EAAK,MACf,CAAC,EAEH,GAAI,IAAS,YACX,OAAO,EAAQ,CACb,SAAU,EAAK,SACf,KAAM,EAAK,KACX,MAAO,EAAK,MACZ,MAAO,EAAK,MACZ,QAAS,MAAM,QAAQ,EAAK,OAAO,EAAI,EAAK,QAAQ,IAAI,CAAgB,EAAI,EAAK,QACjF,SAAU,EAAK,SACf,OAAQ,EAAK,OACb,KAAM,EAAK,KACX,OAAQ,EAAK,OACb,MAAO,EAAK,MACZ,MAAO,EAAK,KACd,CAAC,EACH,GAAI,IAAS,aAAc,CACzB,GAAI,EAAK,SAAW,SAClB,OAAO,EAAQ,CACb,SAAU,EAAK,SACf,KAAM,EAAK,KACX,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,MAAO,EAAK,OAAS,CACvB,CAAC,EACH,OAAO,EAAQ,CACb,SAAU,EAAK,SACf,KAAM,EAAK,KACX,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,QAAS,EAAK,QACd,OAAQ,EAAK,MACf,CAAC,EAEH,GAAI,IAAS,YACX,OAAO,EAAQ,CAAE,SAAU,EAAK,SAAU,KAAM,EAAK,KAAM,KAAM,EAAK,KAAM,YAAa,EAAK,WAAY,CAAC,EAC7G,IAAQ,UAAW,KAAM,GAAY,EACrC,OAAO,EAGT,SAAS,CAAgB,CAAC,EAAgB,CACxC,IAAM,EAAU,EAAO,CAAK,EAC5B,GAAI,EAAQ,OAAS,OAAQ,OAAO,EAAQ,CAAE,KAAM,EAAQ,KAAM,KAAM,EAAQ,IAAK,CAAC,EACtF,GAAI,EAAQ,OAAS,YACnB,OAAO,EAAQ,CAAE,KAAM,EAAQ,KAAM,KAAM,EAAQ,KAAM,MAAO,EAAQ,MAAO,KAAM,EAAQ,IAAK,CAAC,EACrG,GAAI,EAAQ,OAAS,OAAQ,OAAO,EACpC,OAAO,EAAQ,CACb,KAAM,EAAQ,KACd,GAAI,EAAQ,GACZ,KAAM,EAAQ,KACd,SAAU,EAAQ,SAClB,cAAe,EAAQ,cACvB,oBAAqB,EAAQ,oBAC7B,MAAO,EAAU,EAAQ,KAAK,EAC9B,KAAM,EAAQ,IAChB,CAAC,EAGH,SAAS,CAAS,CAAC,EAAgB,CACjC,IAAM,EAAQ,EAAO,CAAK,EAC1B,GAAI,EAAM,SAAW,WAAa,EAAM,SAAW,YACjD,OAAO,EAAQ,CAAE,OAAQ,YAAa,MAAO,EAAM,KAAM,CAAC,EAC5D,GAAI,EAAM,SAAW,UACnB,OAAO,EAAQ,CAAE,OAAQ,EAAM,OAAQ,MAAO,EAAM,MAAO,WAAY,EAAM,WAAY,QAAS,EAAM,OAAQ,CAAC,EACnH,GAAI,EAAM,SAAW,YACnB,OAAO,EAAQ,CACb,OAAQ,EAAM,OACd,MAAO,EAAM,MACb,WAAY,EAAM,WAClB,QAAS,EAAM,QACf,OAAQ,EAAM,MAChB,CAAC,EACH,GAAI,EAAM,SAAW,QACnB,OAAO,EAAQ,CACb,OAAQ,EAAM,OACd,MAAO,EAAM,MACb,WAAY,EAAM,WAClB,QAAS,EAAM,QACf,MAAO,EAAM,MACb,OAAQ,EAAM,MAChB,CAAC,EACH,OAAO,EAGT,SAAS,CAAS,CAAC,EAAc,EAA+B,EAAsC,CACpG,GAAI,EAAK,WAAW,0BAA0B,EAC5C,MAAO,CACL,KAAM,4BACN,KAAM,EAAQ,CAAE,UAAW,EAAK,UAAW,GAAI,EAAK,IAAM,EAAK,KAAM,KAAM,EAAK,KAAM,KAAM,EAAK,IAAK,CAAC,CACzG,EACF,GAAI,EAAK,WAAW,6BAA6B,EAC/C,MAAO,CACL,KAAM,+BACN,KAAM,EAAQ,CACZ,UAAW,EAAK,UAChB,OAAQ,EAAK,OACb,OAAQ,EAAK,QAAU,GACvB,QAAS,EAAK,OAChB,CAAC,CACH,EACF,GAAI,EAAK,WAAW,4BAA4B,EAC9C,MAAO,CACL,KAAM,8BACN,KAAM,EAAQ,CACZ,UAAW,EAAK,UAChB,OAAQ,EAAK,QAAU,GAAoB,SAC3C,MAAO,EAAK,OAAS,EACrB,QAAS,EAAK,OAChB,CAAC,CACH,EACF,IAAM,EAAS,EAAO,EAAK,MAAM,EACjC,MAAO,CACL,KAAM,0BACN,KAAM,EAAQ,CACZ,UAAW,EAAK,UAChB,OAAQ,EAAQ,CACd,UAAW,EAAO,UAClB,OAAQ,EAAO,OACf,SAAU,EAAO,SACjB,MAAO,MAAM,QAAQ,EAAO,KAAK,EAC7B,EAAO,MAAM,IAAI,CAAC,IAAU,CAC1B,IAAM,EAAO,EAAO,CAAK,EACzB,OAAO,EAAQ,CACb,KAAM,EAAK,MAAQ,EAAK,KACxB,MAAO,EAAK,MACZ,UAAW,EAAK,UAChB,UAAW,EAAK,UAChB,OAAQ,EAAK,MACf,CAAC,EACF,EACD,MACN,CAAC,CACH,CAAC,CACH,EAGF,IAAM,EAAyB,CAC7B,KAAM,oBACN,QAAS,6CACX,EAEA,SAAS,CAAM,CAAC,EAAyC,CACvD,OAAO,EAAS,CAAK,EAAI,EAAQ,CAAC,EAGpC,SAAS,CAAO,CAAC,EAAgC,CAC/C,OAAO,OAAO,YAAY,OAAO,QAAQ,CAAK,EAAE,OAAO,CAAC,IAAU,EAAM,KAAO,MAAS,CAAC",
"debugId": "1AC59FB8F1E2CD2464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/migrate.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\n\nexport default Runtime.handler(Commands.commands.migrate, (_input) => Effect.log(\"No migrations to run.\"))\n"
],
"mappings": ";+sBAIA,SAAe,SAAQ,aAAQ,OAAS,cAAS,aAAS,MAAC,SAAW,OAAO,SAAI,4BAAuB,MAAC",
"debugId": "0CDCF3045C0170C664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703190000_reset_v2_shell_event_payloads.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703190000_reset_v2_shell_event_payloads\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,+CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAChD,EAEL",
"debugId": "8AB241908AD2629864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSigninHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"signin\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSigninHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateOAuth2Token\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"signin\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst m = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = \"stringEquals\", h = { [m]: \"Endpoint\" }, i = { [m]: d }, j = { fn: f, argv: [i, \"name\"] }, k = {}, l = [{ [m]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [h]],\n [c, l],\n [\"aws.partition\", l, d],\n [e, [{ [m]: \"UseFIPS\" }, b]],\n [e, [{ [m]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [i, \"supportsFIPS\"] }, b]],\n [g, [j, \"aws\"]],\n [g, [j, \"aws-cn\"]],\n [g, [j, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [h, k],\n [\"https://{Region}.signin.aws.amazon.com\", k],\n [\"https://{Region}.signin.amazonaws.cn\", k],\n [\"https://{Region}.signin.amazonaws-us-gov.com\", k],\n [\"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://signin.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 15,\n 3,\n 1,\n 4,\n r + 14,\n 2,\n 5,\n r + 14,\n 3,\n 11,\n 6,\n 4,\n 10,\n 7,\n 7,\n r + 4,\n 8,\n 8,\n r + 5,\n 9,\n 9,\n r + 6,\n r + 13,\n 5,\n r + 11,\n r + 12,\n 4,\n 13,\n 12,\n 6,\n r + 9,\n r + 10,\n 5,\n 14,\n r + 8,\n 6,\n r + 7,\n r + 8,\n 3,\n r + 1,\n 16,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SigninServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SigninServiceException.prototype);\n }\n}\n\nclass AccessDeniedException extends SigninServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n this.error = opts.error;\n }\n}\nclass InternalServerException extends SigninServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n error;\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.error = opts.error;\n }\n}\nclass TooManyRequestsError extends SigninServiceException {\n name = \"TooManyRequestsError\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"TooManyRequestsError\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsError.prototype);\n this.error = opts.error;\n }\n}\nclass ValidationException extends SigninServiceException {\n name = \"ValidationException\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ValidationException.prototype);\n this.error = opts.error;\n }\n}\n\nconst _ADE = \"AccessDeniedException\";\nconst _AT = \"AccessToken\";\nconst _COAT = \"CreateOAuth2Token\";\nconst _COATR = \"CreateOAuth2TokenRequest\";\nconst _COATRB = \"CreateOAuth2TokenRequestBody\";\nconst _COATRBr = \"CreateOAuth2TokenResponseBody\";\nconst _COATRr = \"CreateOAuth2TokenResponse\";\nconst _ISE = \"InternalServerException\";\nconst _RT = \"RefreshToken\";\nconst _TMRE = \"TooManyRequestsError\";\nconst _VE = \"ValidationException\";\nconst _aKI = \"accessKeyId\";\nconst _aT = \"accessToken\";\nconst _c = \"client\";\nconst _cI = \"clientId\";\nconst _cV = \"codeVerifier\";\nconst _co = \"code\";\nconst _e = \"error\";\nconst _eI = \"expiresIn\";\nconst _gT = \"grantType\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _iT = \"idToken\";\nconst _jN = \"jsonName\";\nconst _m = \"message\";\nconst _rT = \"refreshToken\";\nconst _rU = \"redirectUri\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.signin\";\nconst _sAK = \"secretAccessKey\";\nconst _sT = \"sessionToken\";\nconst _se = \"server\";\nconst _tI = \"tokenInput\";\nconst _tO = \"tokenOutput\";\nconst _tT = \"tokenType\";\nconst n0 = \"com.amazonaws.signin\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SigninServiceException$ = [-3, _s, \"SigninServiceException\", 0, [], []];\n_s_registry.registerError(SigninServiceException$, SigninServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar AccessDeniedException$ = [-3, n0, _ADE, { [_e]: _c }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(AccessDeniedException$, AccessDeniedException);\nvar InternalServerException$ = [-3, n0, _ISE, { [_e]: _se, [_hE]: 500 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(InternalServerException$, InternalServerException);\nvar TooManyRequestsError$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(TooManyRequestsError$, TooManyRequestsError);\nvar ValidationException$ = [-3, n0, _VE, { [_e]: _c, [_hE]: 400 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(ValidationException$, ValidationException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar RefreshToken = [0, n0, _RT, 8, 0];\nvar AccessToken$ = [\n 3,\n n0,\n _AT,\n 8,\n [_aKI, _sAK, _sT],\n [\n [0, { [_jN]: _aKI }],\n [0, { [_jN]: _sAK }],\n [0, { [_jN]: _sT }],\n ],\n 3,\n];\nvar CreateOAuth2TokenRequest$ = [\n 3,\n n0,\n _COATR,\n 0,\n [_tI],\n [[() => CreateOAuth2TokenRequestBody$, 16]],\n 1,\n];\nvar CreateOAuth2TokenRequestBody$ = [\n 3,\n n0,\n _COATRB,\n 0,\n [_cI, _gT, _co, _rU, _cV, _rT],\n [\n [0, { [_jN]: _cI }],\n [0, { [_jN]: _gT }],\n 0,\n [0, { [_jN]: _rU }],\n [0, { [_jN]: _cV }],\n [() => RefreshToken, { [_jN]: _rT }],\n ],\n 2,\n];\nvar CreateOAuth2TokenResponse$ = [\n 3,\n n0,\n _COATRr,\n 0,\n [_tO],\n [[() => CreateOAuth2TokenResponseBody$, 16]],\n 1,\n];\nvar CreateOAuth2TokenResponseBody$ = [\n 3,\n n0,\n _COATRBr,\n 0,\n [_aT, _tT, _eI, _rT, _iT],\n [\n [() => AccessToken$, { [_jN]: _aT }],\n [0, { [_jN]: _tT }],\n [1, { [_jN]: _eI }],\n [() => RefreshToken, { [_jN]: _rT }],\n [0, { [_jN]: _iT }],\n ],\n 4,\n];\nvar CreateOAuth2Token$ = [\n 9,\n n0,\n _COAT,\n { [_h]: [\"POST\", \"/v1/token\", 200] },\n () => CreateOAuth2TokenRequest$,\n () => CreateOAuth2TokenResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2023-01-01\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSigninHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.signin\",\n errorTypeRegistries,\n version: \"2023-01-01\",\n serviceTarget: \"Signin\",\n },\n serviceId: config?.serviceId ?? \"Signin\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SigninClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSigninHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateOAuth2TokenCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"Signin\", \"CreateOAuth2Token\", {})\n .n(\"SigninClient\", \"CreateOAuth2TokenCommand\")\n .sc(CreateOAuth2Token$)\n .build() {\n}\n\nconst commands = {\n CreateOAuth2TokenCommand,\n};\nclass Signin extends SigninClient {\n}\nclient.createAggregatedClient(commands, Signin);\n\nconst OAuth2ErrorCode = {\n AUTHCODE_EXPIRED: \"AUTHCODE_EXPIRED\",\n INSUFFICIENT_PERMISSIONS: \"INSUFFICIENT_PERMISSIONS\",\n INVALID_REQUEST: \"INVALID_REQUEST\",\n SERVER_ERROR: \"server_error\",\n TOKEN_EXPIRED: \"TOKEN_EXPIRED\",\n USER_CREDENTIALS_CHANGED: \"USER_CREDENTIALS_CHANGED\",\n};\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.AccessDeniedException = AccessDeniedException;\nexports.AccessDeniedException$ = AccessDeniedException$;\nexports.AccessToken$ = AccessToken$;\nexports.CreateOAuth2Token$ = CreateOAuth2Token$;\nexports.CreateOAuth2TokenCommand = CreateOAuth2TokenCommand;\nexports.CreateOAuth2TokenRequest$ = CreateOAuth2TokenRequest$;\nexports.CreateOAuth2TokenRequestBody$ = CreateOAuth2TokenRequestBody$;\nexports.CreateOAuth2TokenResponse$ = CreateOAuth2TokenResponse$;\nexports.CreateOAuth2TokenResponseBody$ = CreateOAuth2TokenResponseBody$;\nexports.InternalServerException = InternalServerException;\nexports.InternalServerException$ = InternalServerException$;\nexports.OAuth2ErrorCode = OAuth2ErrorCode;\nexports.Signin = Signin;\nexports.SigninClient = SigninClient;\nexports.SigninServiceException = SigninServiceException;\nexports.SigninServiceException$ = SigninServiceException$;\nexports.TooManyRequestsError = TooManyRequestsError;\nexports.TooManyRequestsError$ = TooManyRequestsError$;\nexports.ValidationException = ValidationException;\nexports.ValidationException$ = ValidationException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "E9804E62B382B08A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260605003541_add_session_context_snapshot.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260605003541_add_session_context_snapshot\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_context_epoch\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`baseline\\` text NOT NULL,\n \\`snapshot\\` text NOT NULL,\n \\`baseline_seq\\` integer NOT NULL,\n \\`replacement_seq\\` integer,\n \\`revision\\` integer DEFAULT 0 NOT NULL,\n CONSTRAINT \\`fk_session_context_epoch_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gdAUb,EACF,EAEL",
"debugId": "36B8CB1796E3B05864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/start.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.start,\n Effect.fn(\"cli.service.start\")(function* () {\n const transport = yield* Service.ensure(yield* ServiceConfig.options())\n process.stdout.write(transport.url + EOL)\n }),\n)\n"
],
"mappings": ";+0BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,WACnC,OAAO,QAAG,wBAAmB,OAAE,cAAU,OAAG,MAC1C,SAAM,OAAY,WAAO,OAAQ,YAAO,MAAO,EAAc,QAAQ,CAAC,EACtE,QAAQ,OAAO,MAAM,EAAU,IAAM,CAAG,EACzC,CACH",
"debugId": "2DBF0C40A4BDE07064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260706223930_add-session-fork.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260706223930_add-session-fork\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_session_id\\` text;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_message_id\\` text;`)\n yield* tx.run(`\n UPDATE \\`session\\`\n SET\n \\`parent_id\\` = NULL,\n \\`fork_session_id\\` = (\n SELECT json_extract(\\`event\\`.\\`data\\`, '$.parentID')\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n ORDER BY \\`event\\`.\\`seq\\`\n LIMIT 1\n ),\n \\`fork_message_id\\` = (\n SELECT json_extract(\\`event\\`.\\`data\\`, '$.from')\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n ORDER BY \\`event\\`.\\`seq\\`\n LIMIT 1\n )\n WHERE EXISTS (\n SELECT 1\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,y2BA0Bb,EACF,EAEL",
"debugId": "D970E79B9CA347A864756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260601202201_amazing_prowler.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260601202201_amazing_prowler\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP TABLE \\`permission\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,iCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "8049E49044D97B9364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/stream.ts", "src/mini/stream-v2.subagent.ts"],
"sourcesContent": [
"// Thin bridge between transport output and the footer API.\n//\n// Transports produce StreamCommit[] and an optional FooterOutput (patch +\n// view + subagent state). This module forwards them to footer.append() and\n// footer.event() respectively, adding trace writes along the way. It also\n// defaults status updates to phase \"running\" if the caller didn't set a\n// phase -- a convenience so transport code doesn't have to repeat that.\nimport type { FooterApi, FooterOutput, FooterPatch, FooterSubagentState, StreamCommit } from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype OutputInput = {\n footer: FooterApi\n trace?: Trace\n}\n\ntype StreamOutput = {\n commits: StreamCommit[]\n footer?: FooterOutput\n}\n\n// Default to \"running\" phase when a status string arrives without an explicit phase.\nfunction patch(next: FooterPatch): FooterPatch {\n if (typeof next.status === \"string\" && next.phase === undefined) {\n return {\n phase: \"running\",\n ...next,\n }\n }\n\n return next\n}\n\nfunction summarize(value: unknown): unknown {\n if (typeof value === \"string\") {\n if (value.length <= 160) {\n return value\n }\n\n return {\n type: \"string\",\n length: value.length,\n preview: `${value.slice(0, 160)}...`,\n }\n }\n\n if (Array.isArray(value)) {\n return {\n type: \"array\",\n length: value.length,\n }\n }\n\n if (!value || typeof value !== \"object\") {\n return value\n }\n\n return {\n type: \"object\",\n keys: Object.keys(value),\n }\n}\n\nfunction traceCommit(commit: StreamCommit) {\n return {\n ...commit,\n text: summarize(commit.text),\n textLength: commit.text.length,\n part: commit.part\n ? {\n id: commit.part.id,\n sessionID: commit.part.sessionID,\n messageID: commit.part.messageID,\n callID: commit.part.callID,\n tool: commit.part.tool,\n state: {\n status: commit.part.state.status,\n title: \"title\" in commit.part.state ? summarize(commit.part.state.title) : undefined,\n error: \"error\" in commit.part.state ? summarize(commit.part.state.error) : undefined,\n time: \"time\" in commit.part.state ? summarize(commit.part.state.time) : undefined,\n input: summarize(commit.part.state.input),\n metadata: \"metadata\" in commit.part.state ? summarize(commit.part.state.metadata) : undefined,\n },\n }\n : undefined,\n }\n}\n\nexport function traceSubagentState(state: FooterSubagentState) {\n return {\n tabs: state.tabs,\n details: Object.fromEntries(\n Object.entries(state.details).map(([sessionID, detail]) => [\n sessionID,\n {\n sessionID,\n commits: detail.commits.map(traceCommit),\n },\n ]),\n ),\n permissions: state.permissions.map((item) => ({\n id: item.id,\n sessionID: item.sessionID,\n action: item.action,\n resources: item.resources,\n source: item.source,\n metadata: item.metadata\n ? {\n keys: Object.keys(item.metadata),\n input: summarize(item.metadata.input),\n }\n : undefined,\n })),\n questions: state.questions.map((item) => ({\n id: item.id,\n sessionID: item.sessionID,\n questions: item.questions.map((question) => ({\n header: question.header,\n question: question.question,\n options: question.options.length,\n multiple: question.multiple,\n })),\n })),\n }\n}\n\nexport function traceFooterOutput(footer?: FooterOutput) {\n if (!footer?.subagent) {\n return footer\n }\n\n return {\n ...footer,\n subagent: traceSubagentState(footer.subagent),\n }\n}\n\n// Forwards transport output to the footer: commits go to scrollback, patches update the status bar.\nexport function writeSessionOutput(input: OutputInput, out: StreamOutput): void {\n for (const commit of out.commits) {\n input.trace?.write(\"ui.commit\", commit)\n input.footer.append(commit)\n }\n\n if (out.footer?.patch) {\n const next = patch(out.footer.patch)\n input.trace?.write(\"ui.patch\", next)\n input.footer.event({\n type: \"stream.patch\",\n patch: next,\n })\n }\n\n if (out.footer?.subagent) {\n input.trace?.write(\"ui.subagent\", traceSubagentState(out.footer.subagent))\n input.footer.event({\n type: \"stream.subagent\",\n state: out.footer.subagent,\n })\n }\n\n if (!out.footer?.view) {\n return\n }\n\n input.trace?.write(\"ui.patch\", {\n view: out.footer.view,\n })\n input.footer.event({\n type: \"stream.view\",\n view: out.footer.view,\n })\n}\n",
"// Current-native subagent (child Session) tracking for the mini transport.\n//\n// Discovers child Sessions of the active parent from four current sources:\n// 1. projected subagent tool output (`structured.sessionID`) during hydration\n// 2. the current session list filtered by `parentID` during hydration\n// 3. the process-local active-session map during hydration\n// 4. live events from unknown sessions whose `parentID` matches the parent\n//\n// Tracks one footer tab per child and a detail transcript for the selected\n// child, reduced from the same current live event stream the parent uses.\n// Detail transcripts rebuild from projected messages on discovery, selection,\n// and reconnect, then continue from live deltas using the same\n// projected-prefix dedup the parent transport uses.\n//\n// Per-child interruption uses `v2.session.interrupt(childID)`. Per-child\n// backgrounding is intentionally absent: subagent jobs block the parent\n// session, so only whole-session `v2.session.background(parentID)` exists.\nimport type {\n EventSubscribeOutput,\n OpenCodeClient,\n SessionMessageAssistantTool,\n SessionMessageInfo,\n} from \"@opencode-ai/client/promise\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport type { FooterSubagentDetail, FooterSubagentState, FooterSubagentTab, MiniToolPart, StreamCommit } from \"./types\"\n\nconst CHILD_MESSAGE_LIMIT = 80\nconst CHILD_FRAME_LIMIT = 80\nconst CHILD_EVENT_BUFFER_LIMIT = 64\nconst FAMILY_LIST_LIMIT = 100\nconst FALLBACK_LABEL = \"Subagent\"\n\ntype V2Event = EventSubscribeOutput\n\nexport function outputText(content: ReadonlyArray<{ type: string; text?: string }>) {\n return content.flatMap((item) => (item.type === \"text\" && item.text ? [item.text] : [])).join(\"\\n\")\n}\n\nexport function miniTool(input: {\n sessionID: string\n messageID: string\n tool: SessionMessageAssistantTool\n}): MiniToolPart {\n const tool = input.tool\n const providerCall =\n tool.executed === undefined && tool.providerState === undefined\n ? undefined\n : { executed: tool.executed, state: tool.providerState }\n const providerResult =\n tool.executed === undefined && tool.providerResultState === undefined\n ? undefined\n : { executed: tool.executed, state: tool.providerResultState }\n const base = {\n id: `prt_${tool.id}`,\n sessionID: input.sessionID,\n messageID: input.messageID,\n type: \"tool\" as const,\n callID: tool.id,\n tool: tool.name,\n }\n if (tool.state.status === \"streaming\") {\n return {\n ...base,\n state: { status: \"pending\", input: {}, raw: tool.state.input },\n }\n }\n if (tool.state.status === \"running\") {\n return {\n ...base,\n state: {\n status: \"running\",\n input: tool.state.input,\n title: tool.name,\n metadata: { structured: tool.state.structured, content: tool.state.content, providerCall },\n time: { start: tool.time.ran ?? tool.time.created },\n },\n }\n }\n if (tool.state.status === \"completed\") {\n return {\n ...base,\n state: {\n status: \"completed\",\n input: tool.state.input,\n output: outputText(tool.state.content),\n title: tool.name,\n metadata: {\n structured: tool.state.structured,\n content: tool.state.content,\n result: tool.state.result,\n providerCall,\n providerResult,\n },\n time: { start: tool.time.ran ?? tool.time.created, end: tool.time.completed ?? tool.time.created },\n },\n }\n }\n return {\n ...base,\n state: {\n status: \"error\",\n input: tool.state.input,\n error: tool.state.error.message,\n metadata: {\n structured: tool.state.structured,\n content: tool.state.content,\n result: tool.state.result,\n providerCall,\n providerResult,\n },\n time: { start: tool.time.ran ?? tool.time.created, end: tool.time.completed ?? tool.time.created },\n },\n }\n}\n\nexport function toolCommit(part: MiniToolPart, phase: \"start\" | \"progress\" | \"final\"): StreamCommit {\n const status = part.state.status\n const text =\n status === \"running\"\n ? part.tool === \"task\"\n ? \"running task\"\n : `running ${part.tool}`\n : status === \"completed\"\n ? part.state.output\n : status === \"error\"\n ? part.state.error\n : \"\"\n return {\n kind: \"tool\",\n source: \"tool\",\n text,\n phase,\n messageID: part.messageID,\n partID: part.id,\n tool: part.tool,\n part,\n toolState: status === \"error\" ? \"error\" : status === \"completed\" ? \"completed\" : \"running\",\n toolError: status === \"error\" ? part.state.error : undefined,\n }\n}\n\ntype Frame = {\n key: string\n commit: StreamCommit\n}\n\ntype ToolTrack = {\n name: string\n input: Record<string, unknown>\n started: number\n providerState?: Record<string, unknown>\n}\n\ntype ChildState = {\n sessionID: string\n label: string\n description: string\n status: FooterSubagentTab[\"status\"]\n background: boolean\n title?: string\n callIDs: Set<string>\n lastUpdatedAt: number\n frames: Frame[]\n text: Map<string, string>\n projectedText: Map<string, string>\n reasoning: Map<string, string>\n projectedReasoning: Map<string, string>\n tools: Map<string, ToolTrack>\n finishedTools: Set<string>\n messageIDs: Set<string>\n prompts: Map<string, string>\n hydrated: boolean\n}\n\nexport type SubagentTrackerInput = {\n sdk: OpenCodeClient\n sessionID: string\n thinking: boolean\n emit: () => void\n}\n\nexport type SubagentTracker = {\n main(event: V2Event): void\n foreign(sessionID: string, event: V2Event): void\n hydrate(next: { messages: SessionMessageInfo[]; active: Record<string, unknown> }): Promise<void>\n select(sessionID: string | undefined): void\n snapshot(): FooterSubagentState\n}\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) return value as Record<string, unknown>\n return undefined\n}\n\nfunction text(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined\n const next = value.trim()\n return next || undefined\n}\n\nfunction childSessionID(structured: Record<string, unknown> | undefined) {\n const sessionID = text(structured?.sessionID)\n if (!sessionID || !sessionID.startsWith(\"ses\")) return undefined\n const status = structured?.status\n if (status !== \"running\" && status !== \"completed\") return undefined\n return { sessionID, running: status === \"running\" }\n}\n\nfunction tab(child: ChildState): FooterSubagentTab {\n return {\n sessionID: child.sessionID,\n partID: `subagent:${child.sessionID}`,\n callID: `subagent:${child.sessionID}`,\n label: child.label,\n description: child.description || child.title || \"\",\n status: child.status,\n background: child.background ? true : undefined,\n title: child.title,\n toolCalls: child.callIDs.size > 0 ? child.callIDs.size : undefined,\n lastUpdatedAt: child.lastUpdatedAt,\n }\n}\n\nexport function createSubagentTracker(input: SubagentTrackerInput): SubagentTracker {\n const children = new Map<string, ChildState>()\n // Live subagent tool calls in the parent, so tool.success structured output\n // can be joined with the call's input metadata.\n const pendingCalls = new Map<string, Record<string, unknown>>()\n // Foreign sessions already resolved through session.get. Non-children stay\n // cached so unrelated concurrent sessions are checked at most once.\n const checked = new Set<string>()\n // Foreign events buffered while a session.get discovery is in flight, so a\n // fast child (including its settled event) is not lost mid-discovery.\n const pendingEvents = new Map<string, V2Event[]>()\n const hydrationEvents = new Map<string, V2Event[]>()\n const hydrationOverflow = new Set<string>()\n const hydrations = new Map<string, Promise<void>>()\n let selected: string | undefined\n const fragmentKey = (messageID: string, partID: string) => `${messageID}\\u0000${partID}`\n\n const ensureChild = (sessionID: string): ChildState => {\n const existing = children.get(sessionID)\n const child: ChildState = existing ?? {\n sessionID,\n label: FALLBACK_LABEL,\n description: \"\",\n status: \"running\",\n background: false,\n callIDs: new Set(),\n lastUpdatedAt: Date.now(),\n frames: [],\n text: new Map(),\n projectedText: new Map(),\n reasoning: new Map(),\n projectedReasoning: new Map(),\n tools: new Map(),\n finishedTools: new Set(),\n messageIDs: new Set(),\n prompts: new Map(),\n hydrated: false,\n }\n if (!existing) children.set(sessionID, child)\n // Adopting a child while its session.get discovery is still in flight:\n // drain the buffered events now. They arrived before whatever the caller\n // applies next, so replaying them first preserves bus order, and the\n // resolved discovery can no longer replay stale events (e.g. step.started)\n // after a terminal settled event was applied directly.\n const buffered = pendingEvents.get(sessionID)\n if (buffered) {\n pendingEvents.delete(sessionID)\n for (const event of buffered) reduce(child, event)\n }\n return child\n }\n\n const touch = (child: ChildState, timestamp?: number) => {\n child.lastUpdatedAt = Math.max(child.lastUpdatedAt, timestamp ?? Date.now())\n }\n\n const notifyDetail = (child: ChildState) => {\n if (child.sessionID === selected) input.emit()\n }\n\n const setFrame = (child: ChildState, key: string, commit: StreamCommit) => {\n const index = child.frames.findIndex((item) => item.key === key)\n if (index === -1) {\n child.frames.push({ key, commit })\n if (child.frames.length > CHILD_FRAME_LIMIT) child.frames.splice(0, child.frames.length - CHILD_FRAME_LIMIT)\n return\n }\n child.frames[index] = { key, commit }\n }\n\n const applyMeta = (child: ChildState, meta: Record<string, unknown> | undefined) => {\n if (!meta) return\n const agent = text(meta.agent)\n if (agent) child.label = Locale.titlecase(agent)\n const description = text(meta.description)\n if (description) child.description = description\n if (meta.background === true) child.background = true\n }\n\n const userFrame = (child: ChildState, messageID: string, value: string) => {\n if (child.messageIDs.has(messageID)) return false\n child.messageIDs.add(messageID)\n setFrame(child, `user:${messageID}`, {\n kind: \"user\",\n source: \"system\",\n text: value,\n phase: \"start\",\n messageID,\n })\n return true\n }\n\n const childTool = (child: ChildState, item: SessionMessageAssistantTool, messageID: string) => {\n const part = miniTool({\n sessionID: child.sessionID,\n messageID,\n tool: item,\n })\n if (item.state.status === \"streaming\") return\n child.callIDs.add(item.id)\n if (item.state.status === \"running\") {\n setFrame(child, `tool:${item.id}`, toolCommit(part, \"start\"))\n return\n }\n child.finishedTools.add(item.id)\n child.tools.delete(item.id)\n setFrame(child, `tool:${item.id}`, toolCommit(part, \"final\"))\n }\n\n const rebuild = (child: ChildState, messages: SessionMessageInfo[]) => {\n child.frames = []\n child.text.clear()\n child.projectedText.clear()\n child.reasoning.clear()\n child.projectedReasoning.clear()\n child.finishedTools.clear()\n child.messageIDs.clear()\n child.callIDs.clear()\n for (const message of messages) {\n if (message.type === \"user\") {\n child.prompts.delete(message.id)\n userFrame(child, message.id, message.text)\n continue\n }\n if (message.type !== \"assistant\") continue\n child.messageIDs.add(message.id)\n let textOrdinal = 0\n let reasoningOrdinal = 0\n for (const item of message.content) {\n if (item.type === \"text\") {\n const id = `text:${textOrdinal++}`\n const key = fragmentKey(message.id, id)\n child.text.set(key, item.text)\n child.projectedText.set(key, item.text)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: item.text,\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n })\n continue\n }\n if (item.type === \"reasoning\") {\n const id = `reasoning:${reasoningOrdinal++}`\n const key = fragmentKey(message.id, id)\n child.reasoning.set(key, item.text)\n child.projectedReasoning.set(key, item.text)\n if (input.thinking)\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${item.text}`,\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n })\n continue\n }\n childTool(child, item, message.id)\n }\n if (message.error) {\n setFrame(child, `error:${message.id}`, {\n kind: \"error\",\n source: \"system\",\n text: message.error.message,\n phase: \"start\",\n messageID: message.id,\n })\n }\n }\n }\n\n const hydrateChild = (child: ChildState): Promise<void> => {\n const existing = hydrations.get(child.sessionID)\n if (existing) return existing\n const pendingPrompts = new Map(child.prompts)\n const pendingTools = new Map(child.tools)\n let retry = false\n const task = input.sdk.message\n .list({ sessionID: child.sessionID, limit: CHILD_MESSAGE_LIMIT, order: \"desc\" })\n .then((response) => {\n const buffered = hydrationEvents.get(child.sessionID) ?? []\n hydrationEvents.delete(child.sessionID)\n if (hydrationOverflow.delete(child.sessionID)) {\n child.hydrated = false\n retry = true\n notifyDetail(child)\n return\n }\n for (const [id, prompt] of pendingPrompts) {\n if (!child.prompts.has(id)) child.prompts.set(id, prompt)\n }\n rebuild(child, structuredClone(response.data).toReversed() as SessionMessageInfo[])\n for (const [id, tool] of pendingTools) {\n if (!child.finishedTools.has(id) && !child.tools.has(id)) child.tools.set(id, tool)\n }\n for (const event of buffered) reduce(child, event)\n child.hydrated = true\n notifyDetail(child)\n })\n .catch(() => {\n hydrationEvents.delete(child.sessionID)\n hydrationOverflow.delete(child.sessionID)\n })\n .finally(() => {\n hydrations.delete(child.sessionID)\n if (retry) queueMicrotask(() => void hydrateChild(child))\n })\n hydrations.set(child.sessionID, task)\n return task\n }\n\n const discover = (sessionID: string) => {\n if (checked.has(sessionID) || children.has(sessionID) || sessionID === input.sessionID) return\n checked.add(sessionID)\n if (!pendingEvents.has(sessionID)) pendingEvents.set(sessionID, [])\n void input.sdk.session\n .get({ sessionID })\n .then((session) => {\n const buffered = pendingEvents.get(sessionID) ?? []\n pendingEvents.delete(sessionID)\n if (session.parentID !== input.sessionID) return\n const child = ensureChild(sessionID)\n if (session.agent) child.label = Locale.titlecase(session.agent)\n child.title = session.title\n for (const event of buffered) reduce(child, event)\n touch(child)\n input.emit()\n void hydrateChild(child)\n })\n .catch(() => {\n // Allow a later event to retry discovery after transient failures.\n pendingEvents.delete(sessionID)\n checked.delete(sessionID)\n })\n }\n\n const reduce = (child: ChildState, event: V2Event) => {\n if (event.type === \"session.input.admitted\") {\n if (event.data.input.type === \"user\") child.prompts.set(event.data.inputID, event.data.input.data.text)\n return\n }\n if (event.type === \"session.input.promoted\") {\n const prompt = child.prompts.get(event.data.inputID)\n if (prompt === undefined) return\n child.prompts.delete(event.data.inputID)\n if (userFrame(child, event.data.inputID, prompt)) {\n touch(child, event.created)\n notifyDetail(child)\n }\n return\n }\n if (event.type === \"session.step.started\") {\n touch(child, event.created)\n if (child.label === FALLBACK_LABEL && event.data.agent) child.label = Locale.titlecase(event.data.agent)\n if (child.status !== \"running\") child.status = \"running\"\n input.emit()\n return\n }\n if (event.type === \"session.text.started\") {\n return\n }\n if (event.type === \"session.text.delta\") {\n const id = `text:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n const projected = child.projectedText.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n child.projectedText.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const next = (child.text.get(key) ?? \"\") + event.data.delta\n child.text.set(key, next)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: next,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.text.ended\") {\n const id = `text:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n child.text.set(key, event.data.text)\n child.projectedText.delete(key)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.text,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.reasoning.started\") {\n return\n }\n if (event.type === \"session.reasoning.delta\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n const projected = child.projectedReasoning.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n child.projectedReasoning.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const next = (child.reasoning.get(key) ?? \"\") + event.data.delta\n child.reasoning.set(key, next)\n if (!input.thinking) return\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${next}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n notifyDetail(child)\n return\n }\n if (event.type === \"session.reasoning.ended\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n child.reasoning.set(key, event.data.text)\n child.projectedReasoning.delete(key)\n if (!input.thinking) return\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${event.data.text}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n notifyDetail(child)\n return\n }\n if (event.type === \"session.tool.input.started\") {\n if (child.finishedTools.has(event.data.callID)) return\n child.tools.set(event.data.callID, { name: event.data.name, input: {}, started: event.created })\n return\n }\n if (event.type === \"session.tool.called\") {\n if (child.finishedTools.has(event.data.callID)) return\n const current = child.tools.get(event.data.callID)\n child.tools.set(event.data.callID, {\n name: current?.name ?? \"tool\",\n input: event.data.input,\n started: current?.started ?? event.created,\n providerState: event.data.state,\n })\n childTool(\n child,\n structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: event.data.state,\n state: { status: \"running\", input: event.data.input, structured: {}, content: [] },\n time: { created: current?.started ?? event.created, ran: event.created },\n }) as SessionMessageAssistantTool,\n event.data.assistantMessageID,\n )\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.tool.success\" || event.type === \"session.tool.failed\") {\n if (child.finishedTools.has(event.data.callID)) return\n const current = child.tools.get(event.data.callID)\n const failed = event.type === \"session.tool.failed\"\n childTool(\n child,\n structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: current?.providerState,\n providerResultState: event.data.resultState,\n state: failed\n ? {\n status: \"error\",\n input: current?.input ?? {},\n structured: {},\n content: [],\n error: event.data.error,\n result: event.data.result,\n }\n : {\n status: \"completed\",\n input: current?.input ?? {},\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n },\n time: {\n created: current?.started ?? event.created,\n ran: current?.started,\n completed: event.created,\n },\n }) as SessionMessageAssistantTool,\n event.data.assistantMessageID,\n )\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.step.ended\") return\n if (event.type === \"session.step.failed\") {\n setFrame(child, `error:step:${event.data.assistantMessageID}`, {\n kind: \"error\",\n source: \"system\",\n text: event.data.error.message,\n phase: \"start\",\n messageID: event.data.assistantMessageID,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.execution.started\") {\n child.status = \"running\"\n touch(child, event.created)\n input.emit()\n return\n }\n if (\n event.type === \"session.execution.succeeded\" ||\n event.type === \"session.execution.failed\" ||\n event.type === \"session.execution.interrupted\"\n ) {\n child.status =\n event.type === \"session.execution.succeeded\"\n ? \"completed\"\n : event.type === \"session.execution.interrupted\"\n ? \"cancelled\"\n : \"error\"\n touch(child, event.created)\n input.emit()\n }\n }\n\n const mainTool = (item: SessionMessageAssistantTool, active?: Record<string, unknown>) => {\n if (item.name !== \"subagent\" || item.state.status !== \"completed\") return\n const found = childSessionID(record(item.state.structured))\n if (!found) return\n const child = ensureChild(found.sessionID)\n applyMeta(child, record(item.state.input))\n if (found.running) child.background = true\n if (child.status === \"running\") {\n const running = found.running && (!active || found.sessionID in active)\n child.status = running ? \"running\" : \"completed\"\n }\n touch(child, item.time.completed ?? item.time.created)\n }\n\n return {\n main(event) {\n if (event.type === \"session.tool.input.started\") {\n if (event.data.name === \"subagent\") pendingCalls.set(event.data.callID, {})\n return\n }\n if (event.type === \"session.tool.called\") {\n if (pendingCalls.has(event.data.callID)) pendingCalls.set(event.data.callID, event.data.input)\n return\n }\n if (event.type === \"session.tool.failed\") {\n pendingCalls.delete(event.data.callID)\n return\n }\n if (event.type !== \"session.tool.success\") return\n const pending = pendingCalls.get(event.data.callID)\n pendingCalls.delete(event.data.callID)\n const found = childSessionID(record(event.data.structured))\n if (!found) return\n const child = ensureChild(found.sessionID)\n applyMeta(child, pending)\n if (found.running) {\n child.background = true\n child.status = \"running\"\n }\n if (!found.running && child.status === \"running\") child.status = \"completed\"\n touch(child, event.created)\n input.emit()\n if (!child.hydrated) void hydrateChild(child)\n },\n foreign(sessionID, event) {\n const child = children.get(sessionID)\n if (child) {\n if (hydrations.has(sessionID)) {\n const buffered = hydrationEvents.get(sessionID) ?? []\n if (buffered.length < CHILD_EVENT_BUFFER_LIMIT) buffered.push(event)\n else hydrationOverflow.add(sessionID)\n hydrationEvents.set(sessionID, buffered)\n }\n reduce(child, event)\n return\n }\n discover(sessionID)\n const buffered = pendingEvents.get(sessionID)\n if (buffered && buffered.length < CHILD_EVENT_BUFFER_LIMIT) buffered.push(event)\n },\n async hydrate(next) {\n for (const message of next.messages) {\n if (message.type !== \"assistant\") continue\n for (const item of message.content) {\n if (item.type === \"tool\") mainTool(item, next.active)\n }\n }\n // Family index: adopt children directly from the current session list so\n // historical subagents beyond the projected message window still get tabs.\n const family = await input.sdk.session\n .list({ parentID: input.sessionID, limit: FAMILY_LIST_LIMIT, order: \"desc\" })\n .then((response) => response.data)\n .catch(() => [])\n for (const session of family) {\n const child = ensureChild(session.id)\n if (session.agent && child.label === FALLBACK_LABEL) child.label = Locale.titlecase(session.agent)\n if (!child.title) child.title = session.title\n touch(child, session.time.updated)\n }\n for (const sessionID of Object.keys(next.active)) discover(sessionID)\n for (const child of children.values()) {\n // Reconnect can miss a child's settled event; the active map is the\n // authoritative live signal for still-running children.\n if (child.status === \"running\" && !(child.sessionID in next.active)) child.status = \"completed\"\n }\n const current = selected ? children.get(selected) : undefined\n if (current) await hydrateChild(current)\n if (children.size > 0) input.emit()\n },\n select(sessionID) {\n selected = sessionID\n const child = sessionID ? children.get(sessionID) : undefined\n if (child && !child.hydrated) void hydrateChild(child)\n input.emit()\n },\n snapshot() {\n const tabs = [...children.values()].map(tab).toSorted((a, b) => {\n const active = Number(b.status === \"running\") - Number(a.status === \"running\")\n if (active !== 0) return active\n return b.lastUpdatedAt - a.lastUpdatedAt\n })\n const child = selected ? children.get(selected) : undefined\n const details: Record<string, FooterSubagentDetail> = child\n ? { [child.sessionID]: { sessionID: child.sessionID, commits: child.frames.map((item) => item.commit) } }\n : {}\n return { tabs, details, permissions: [], questions: [] }\n },\n }\n}\n"
],
"mappings": "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",
"debugId": "96D3B961682D191264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../simulation/src/backend/network.ts", "../simulation/src/backend/openai.ts", "../simulation/src/backend/simulated-provider.ts", "../simulation/src/backend/index.ts"],
"sourcesContent": [
"import { Clock, Effect, Layer, Ref } from \"effect\"\nimport { HttpClient, HttpClientResponse, type HttpMethod } from \"effect/unstable/http\"\nimport { HttpClientError, TransportError } from \"effect/unstable/http/HttpClientError\"\nimport type { HttpClientRequest } from \"effect/unstable/http\"\nimport { SimulationProtocol } from \"../protocol\"\n\n/**\n * Simulated network.\n *\n * Replaces the `HttpClient.HttpClient` platform node in simulation mode. All\n * outbound HTTP resolves against an in-memory route table; unknown\n * destinations fail loudly with a transport error so no simulation run can\n * silently reach the real network. The scripted LLM is one registered route,\n * not a separate mechanism.\n *\n * Each acquired run owns its routes and request log.\n */\n\nexport interface Route {\n /** Return a response effect to claim the request, undefined to pass. */\n readonly match: (\n request: HttpClientRequest.HttpClientRequest,\n url: URL,\n ) => Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError> | undefined\n}\n\nexport type LogEntry = SimulationProtocol.Backend.NetworkLogEntry\n\nconst LOG_LIMIT = 1000\n\n/** Static JSON route: exact method + origin/path match answered with a fixed body. */\nexport function json(method: HttpMethod.HttpMethod, url: string, body: unknown): Route {\n return {\n match: (request, requestUrl) => {\n if (request.method !== method) return undefined\n if (requestUrl.origin + requestUrl.pathname !== url) return undefined\n return Effect.sync(() =>\n HttpClientResponse.fromWeb(\n request,\n new Response(JSON.stringify(body), { status: 200, headers: { \"content-type\": \"application/json\" } }),\n ),\n )\n },\n }\n}\n\nexport interface Run {\n readonly client: HttpClient.HttpClient\n readonly log: () => Effect.Effect<readonly LogEntry[]>\n}\n\nexport const make = Effect.fn(\"SimulationNetwork.make\")(function* (routes: readonly Route[] = []) {\n const log = yield* Ref.make<readonly LogEntry[]>([])\n const client = HttpClient.make((request, url) =>\n Effect.gen(function* () {\n let matched: Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError> | undefined\n for (const route of routes) {\n matched = route.match(request, url)\n if (matched) break\n }\n const entry = {\n time: yield* Clock.currentTimeMillis,\n method: request.method,\n url: url.toString(),\n matched: matched !== undefined,\n }\n yield* Ref.update(log, (entries) => [...entries, entry].slice(-LOG_LIMIT))\n if (matched) return yield* matched\n return yield* Effect.fail(\n new HttpClientError({\n reason: new TransportError({\n request,\n description: `Simulation denied unregistered network destination: ${request.method} ${url}`,\n }),\n }),\n )\n }),\n )\n return { client, log: () => Ref.get(log) } satisfies Run\n})\n\nexport const layer = (routes: readonly Route[] = []) =>\n Layer.effect(HttpClient.HttpClient, make(routes).pipe(Effect.map((run) => run.client)))\n\nexport * as SimulationNetwork from \"./network\"\n",
"import { Effect, Schema, Stream } from \"effect\"\nimport { HttpClientResponse } from \"effect/unstable/http\"\nimport { HttpClientError, TransportError } from \"effect/unstable/http/HttpClientError\"\nimport { OpenAIChatEvent, DEFAULT_BASE_URL, PATH } from \"@opencode-ai/llm/protocols/openai-chat\"\nimport { SimulationNetwork } from \"./network\"\nimport { SimulatedProvider } from \"./simulated-provider\"\n\n/**\n * Driver-answered OpenAI endpoint for the simulated network.\n *\n * Claims `POST {DEFAULT_BASE_URL}{PATH}` (the real openai-chat route\n * endpoint), invokes the simulated provider, and streams the driver's events back as\n * an OpenAI Chat SSE response terminated by `[DONE]`. Everything downstream\n * of the response bytes is the real pipeline: SSE framing, the OpenAIChat\n * event schema, the protocol state machine, and Lifecycle grammar.\n */\n\nconst encodeChunk = Schema.encodeUnknownSync(OpenAIChatEvent)\n\nconst encoder = new TextEncoder()\nconst decodeBody = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Json))\n\n// The simulated model id is echoed back only in non-schema fields; the\n// protocol event schema ignores unknown fields, so id/object/model are\n// decorative wire realism.\ntype ProviderItem = Exclude<SimulatedProvider.ProviderResponseEvent, { readonly type: \"finish\" }>\ntype FinishReason = Extract<SimulatedProvider.ProviderResponseEvent, { readonly type: \"finish\" }>[\"reason\"]\n\nfunction chunkOf(item: ProviderItem): OpenAIChatEvent | unknown {\n if (item.type === \"textDelta\") return { choices: [{ delta: { content: item.text } }] }\n if (item.type === \"reasoningDelta\") return { choices: [{ delta: { reasoning_content: item.text } }] }\n if (item.type === \"toolCall\")\n return {\n choices: [\n {\n delta: {\n tool_calls: [\n {\n index: item.index,\n id: item.id,\n function: { name: item.name, arguments: JSON.stringify(item.input) },\n },\n ],\n },\n },\n ],\n }\n return item.chunk\n}\n\nconst finishReasonWire: Record<FinishReason, string> = {\n stop: \"stop\",\n \"tool-calls\": \"tool_calls\",\n length: \"length\",\n \"content-filter\": \"content_filter\",\n}\n\nfunction frame(payload: unknown): Uint8Array {\n return encoder.encode(`data: ${JSON.stringify(payload)}\\n\\n`)\n}\n\nfunction sseBody(\n events: Stream.Stream<SimulatedProvider.ProviderResponseEvent, SimulatedProvider.ProviderDisconnectedError>,\n): Stream.Stream<Uint8Array, SimulatedProvider.ProviderDisconnectedError> {\n return events.pipe(\n Stream.map((event) => {\n if (event.type === \"finish\")\n return frame(encodeChunk({ choices: [{ delta: {}, finish_reason: finishReasonWire[event.reason] }] }))\n if (event.type === \"raw\") return frame(event.chunk)\n return frame(encodeChunk(chunkOf(event)))\n }),\n Stream.concat(Stream.make(encoder.encode(\"data: [DONE]\\n\\n\"))),\n )\n}\n\nexport const route = (provider: SimulatedProvider.Interface): SimulationNetwork.Route => ({\n match: (request, url) => {\n if (request.method !== \"POST\") return undefined\n if (url.origin + url.pathname !== DEFAULT_BASE_URL + PATH) return undefined\n return Effect.gen(function* () {\n const body =\n request.body._tag === \"Uint8Array\"\n ? yield* decodeBody(new TextDecoder().decode(request.body.body)).pipe(\n Effect.mapError(\n (cause) =>\n new HttpClientError({\n reason: new TransportError({\n request,\n cause,\n description: \"Simulation received an invalid OpenAI request body\",\n }),\n }),\n ),\n )\n : {}\n return HttpClientResponse.fromWeb(\n request,\n new Response(Stream.toReadableStream(sseBody(provider.stream({ url: url.toString(), body }))), {\n status: 200,\n headers: { \"content-type\": \"text/event-stream\" },\n }),\n )\n })\n },\n})\n\nexport * as SimulationOpenAI from \"./openai\"\n",
"import { Cause, Context, Effect, Fiber, FiberSet, Layer, PubSub, Queue, Ref, Schema, Semaphore, Stream } from \"effect\"\nimport { SimulationControlServer } from \"../control-server\"\nimport { SimulationProtocol } from \"../protocol\"\n\nexport interface ProviderRequest {\n readonly url: string\n readonly body: unknown\n}\n\nexport type ProviderResponseEvent =\n | SimulationProtocol.Backend.Item\n | { readonly type: \"finish\"; readonly reason: SimulationProtocol.Backend.FinishReason }\n\nexport class ProviderDisconnectedError extends Schema.TaggedErrorClass<ProviderDisconnectedError>()(\n \"SimulatedProvider.ProviderDisconnectedError\",\n { message: Schema.String },\n) {}\n\nexport interface Interface {\n readonly stream: (request: ProviderRequest) => Stream.Stream<ProviderResponseEvent, ProviderDisconnectedError>\n}\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/simulation/SimulatedProvider\") {}\n\ninterface ProviderInvocation extends ProviderRequest {\n readonly id: string\n}\n\ninterface PendingInvocation extends ProviderInvocation {\n readonly responses: Queue.Queue<ProviderResponseEvent, ProviderDisconnectedError | Cause.Done>\n}\n\ninterface State {\n readonly counter: number\n readonly pending: ReadonlyMap<string, PendingInvocation>\n}\n\ninterface Driver {\n readonly requests: Stream.Stream<ProviderInvocation>\n readonly push: (\n id: string,\n items: readonly SimulationProtocol.Backend.Item[],\n ) => Effect.Effect<void, InvocationNotFoundError>\n readonly finish: (\n id: string,\n reason: SimulationProtocol.Backend.FinishReason,\n ) => Effect.Effect<void, InvocationNotFoundError>\n readonly disconnect: (id: string) => Effect.Effect<void, InvocationNotFoundError>\n readonly pending: () => Effect.Effect<readonly ProviderInvocation[]>\n}\n\nclass InvocationNotFoundError extends Schema.TaggedErrorClass<InvocationNotFoundError>()(\n \"SimulatedProvider.InvocationNotFoundError\",\n { id: Schema.String, message: Schema.String },\n) {}\n\nclass ControllerDisconnectedError extends Schema.TaggedErrorClass<ControllerDisconnectedError>()(\n \"SimulatedProvider.ControllerDisconnectedError\",\n { message: Schema.String },\n) {}\n\ntype ControlSocket = SimulationControlServer.Socket\n\nexport const layerDrive = (options: { readonly endpoint: string }) =>\n Layer.effect(\n Service,\n Effect.gen(function* () {\n const state = yield* Ref.make<State>({ counter: 0, pending: new Map() })\n const opened = yield* PubSub.unbounded<ProviderInvocation>()\n const lock = yield* Semaphore.make(1)\n\n const close = (invocation: PendingInvocation) =>\n Effect.gen(function* () {\n yield* Queue.shutdown(invocation.responses)\n yield* lock.withPermit(\n Ref.update(state, (current) =>\n current.pending.get(invocation.id) === invocation ? remove(current, invocation.id) : current,\n ),\n )\n })\n\n yield* Effect.addFinalizer(() =>\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n yield* Effect.forEach(current.pending.values(), (invocation) => Queue.shutdown(invocation.responses), {\n discard: true,\n })\n yield* PubSub.shutdown(opened)\n }),\n )\n\n const open = (request: ProviderRequest) =>\n lock.withPermit(\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n const id = `inv_${current.counter + 1}`\n const responses = yield* Queue.bounded<ProviderResponseEvent, ProviderDisconnectedError | Cause.Done>(256)\n const invocation: PendingInvocation = { id, ...request, responses }\n yield* Ref.set(state, {\n counter: current.counter + 1,\n pending: new Map(current.pending).set(id, invocation),\n })\n yield* PubSub.publish(opened, { id, ...request })\n return invocation\n }),\n )\n\n const requireInvocation = (id: string) =>\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n const invocation = current.pending.get(id)\n if (invocation) return invocation\n return yield* Effect.fail(\n new InvocationNotFoundError({\n id,\n message: `Simulated provider invocation not found or already finished: ${id}`,\n }),\n )\n })\n\n const remove = (current: State, id: string) => {\n const pending = new Map(current.pending)\n pending.delete(id)\n return { ...current, pending }\n }\n\n const driver: Driver = {\n requests: Stream.unwrap(\n lock.withPermit(\n Effect.gen(function* () {\n const subscription = yield* PubSub.subscribe(opened)\n const current = yield* Ref.get(state)\n const pending = Array.from(current.pending.values(), ({ id, url, body }) => ({ id, url, body }))\n return Stream.concat(Stream.fromIterable(pending), Stream.fromEffectRepeat(PubSub.take(subscription)))\n }),\n ),\n ),\n push: (id, items) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(requireInvocation(id))\n yield* Queue.offerAll(invocation.responses, items)\n }),\n finish: (id, reason) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(\n Effect.gen(function* () {\n const invocation = yield* requireInvocation(id)\n const current = yield* Ref.get(state)\n yield* Ref.set(state, remove(current, id))\n return invocation\n }),\n )\n yield* Queue.offer(invocation.responses, { type: \"finish\", reason })\n yield* Queue.end(invocation.responses)\n }),\n disconnect: (id) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(\n Effect.gen(function* () {\n const invocation = yield* requireInvocation(id)\n const current = yield* Ref.get(state)\n yield* Ref.set(state, remove(current, id))\n return invocation\n }),\n )\n yield* Queue.fail(\n invocation.responses,\n new ProviderDisconnectedError({ message: \"Simulated model provider disconnected\" }),\n )\n }),\n pending: () =>\n lock.withPermit(\n Ref.get(state).pipe(\n Effect.map((current) => Array.from(current.pending.values(), ({ id, url, body }) => ({ id, url, body }))),\n ),\n ),\n }\n\n const fibers = yield* FiberSet.make<void, unknown>()\n const activeController = yield* Ref.make<Fiber.Fiber<void> | undefined>(undefined)\n const controllerLock = yield* Semaphore.make(1)\n yield* SimulationControlServer.start({\n endpoint: options.endpoint,\n label: \"opencode drive backend websocket\",\n data: () => ({}),\n decode: SimulationProtocol.Backend.decodeRequestEffect,\n handle: (socket, request) => handle(driver, fibers, activeController, controllerLock, socket, request),\n close: (socket) => releaseController(activeController, controllerLock, socket),\n })\n yield* Effect.sync(() => process.stderr.write(`opencode drive backend websocket: ${options.endpoint}\\n`))\n\n return Service.of({\n stream: (request) =>\n Stream.unwrap(\n Effect.acquireRelease(open(request), close).pipe(\n Effect.map((invocation) =>\n Stream.fromQueue(invocation.responses).pipe(Stream.takeUntil((event) => event.type === \"finish\")),\n ),\n ),\n ),\n })\n }),\n )\n\nfunction handle(\n driver: Driver,\n fibers: FiberSet.FiberSet<void, unknown>,\n activeController: Ref.Ref<Fiber.Fiber<void> | undefined>,\n controllerLock: Semaphore.Semaphore,\n socket: ControlSocket,\n request: SimulationProtocol.Backend.Request,\n) {\n switch (request.method) {\n case \"llm.attach\":\n return controllerLock.withPermit(\n Effect.gen(function* () {\n if (socket.data.closed)\n return yield* Effect.fail(\n new ControllerDisconnectedError({ message: \"Drive controller disconnected before attachment\" }),\n )\n const previous = yield* Ref.get(activeController)\n if (previous) yield* Fiber.interrupt(previous)\n const attachment = yield* FiberSet.run(\n fibers,\n driver.requests.pipe(\n Stream.runForEach((invocation) =>\n Effect.sync(() => {\n socket.send(JSON.stringify({ jsonrpc: \"2.0\", method: \"llm.request\", params: invocation }))\n }),\n ),\n ),\n )\n if (socket.data.closed) {\n yield* Fiber.interrupt(attachment)\n return yield* Effect.fail(\n new ControllerDisconnectedError({ message: \"Drive controller disconnected during attachment\" }),\n )\n }\n socket.data.attachment = attachment\n yield* Ref.set(activeController, attachment)\n return { attached: true }\n }),\n )\n case \"llm.chunk\":\n return driver.push(request.params.id, request.params.items).pipe(Effect.as({ ok: true }))\n case \"llm.finish\":\n return driver.finish(request.params.id, request.params.reason).pipe(Effect.as({ ok: true }))\n case \"llm.disconnect\":\n return driver.disconnect(request.params.id).pipe(Effect.as({ ok: true }))\n case \"llm.pending\":\n return driver.pending().pipe(Effect.map((invocations) => ({ invocations })))\n }\n}\n\nfunction releaseController(\n activeController: Ref.Ref<Fiber.Fiber<void> | undefined>,\n controllerLock: Semaphore.Semaphore,\n socket: ControlSocket,\n) {\n return controllerLock.withPermit(\n Effect.gen(function* () {\n const attachment = socket.data.attachment\n if (!attachment) return\n yield* Fiber.interrupt(attachment)\n yield* Ref.update(activeController, (active) => (active === attachment ? undefined : active))\n }),\n )\n}\n\nexport * as SimulatedProvider from \"./simulated-provider\"\n",
"import { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { httpClient } from \"@opencode-ai/core/effect/app-node-platform\"\nimport { Config, Effect, Layer } from \"effect\"\nimport { HttpClient } from \"effect/unstable/http\"\nimport { DriveManifest } from \"../manifest\"\nimport { SimulationNetwork } from \"./network\"\nimport { SimulationOpenAI } from \"./openai\"\nimport { SimulatedProvider } from \"./simulated-provider\"\n\n/**\n * Layer replacements applied when the server is built in simulation mode.\n *\n * The server merges these into the app node build when `OPENCODE_SIMULATE`\n * is enabled, via a dynamic import so this module is never loaded eagerly.\n *\n * - Network: all outbound HTTP resolves against the simulated route table;\n * unknown destinations are denied. The driver-answered OpenAI endpoint is\n * registered here as the first route.\n *\n */\n\nexport const simulationReplacements = Effect.fn(\"Simulation.replacements\")(function* () {\n // ModelsDev dies when its catalog fetch fails, so simulation answers it with\n // an empty catalog; providers come from seeded config instead.\n const models = SimulationNetwork.json(\"GET\", \"https://models.dev/api.json\", {})\n const drive = yield* Config.string(\"OPENCODE_DRIVE\").pipe(Config.withDefault(undefined))\n if (!drive) return [[httpClient, SimulationNetwork.layer([models])]] satisfies LayerNode.Replacements\n\n const manifest = yield* DriveManifest.resolve()\n const networkLayer = Layer.effect(\n HttpClient.HttpClient,\n Effect.gen(function* () {\n const provider = yield* SimulatedProvider.Service\n const network = yield* SimulationNetwork.make([SimulationOpenAI.route(provider), models])\n return network.client\n }),\n ).pipe(\n Layer.provide(\n SimulatedProvider.layerDrive({\n endpoint: manifest.endpoints.backend,\n }),\n ),\n )\n return [[httpClient, networkLayer]] satisfies LayerNode.Replacements\n})\n\nexport * as Simulation from \"./index\"\n"
],
"mappings": "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",
"debugId": "E0E01370DE31E3E164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/identifier.ts", "../schema/src/project-id.ts", "../schema/src/workspace-id.ts", "../schema/src/location.ts", "../schema/src/event.ts"],
"sourcesContent": [
"const length = 26\nconst chars = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"\nlet lastTimestamp = 0\nlet counter = 0\n\nexport function ascending() {\n return create(false)\n}\n\nexport function descending() {\n return create(true)\n}\n\nexport function create(descending: boolean, timestamp = Date.now()) {\n if (timestamp !== lastTimestamp) {\n lastTimestamp = timestamp\n counter = 0\n }\n counter++\n\n const current = BigInt(timestamp) * 0x1000n + BigInt(counter)\n const value = descending ? ~current : current\n const time = Array.from({ length: 6 }, (_, index) =>\n Number((value >> BigInt(40 - 8 * index)) & 0xffn)\n .toString(16)\n .padStart(2, \"0\"),\n ).join(\"\")\n const bytes = crypto.getRandomValues(new Uint8Array(length - 12))\n return time + Array.from(bytes, (byte) => chars[byte % 62]).join(\"\")\n}\n",
"import { Schema } from \"effect\"\nimport { statics } from \"./schema.js\"\n\nexport const ProjectID = Schema.String.pipe(\n Schema.brand(\"Project.ID\"),\n statics((schema) => ({ global: schema.make(\"global\") })),\n)\nexport type ProjectID = typeof ProjectID.Type\n",
"import { Schema } from \"effect\"\nimport { ascending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\n\nexport const WorkspaceID = Schema.String.check(Schema.isStartsWith(\"wrk\")).pipe(\n Schema.brand(\"WorkspaceV2.ID\"),\n statics((schema) => {\n const create = () => schema.make(\"wrk_\" + ascending())\n return {\n ascending: (id?: string) => {\n if (!id) return create()\n if (!id.startsWith(\"wrk\")) throw new Error(`ID ${id} does not start with wrk`)\n return schema.make(id)\n },\n create,\n }\n }),\n)\nexport type WorkspaceID = typeof WorkspaceID.Type\n",
"export * as Location from \"./location.js\"\n\nimport { Schema } from \"effect\"\nimport { AbsolutePath, optional } from \"./schema.js\"\nimport { ProjectID } from \"./project-id.js\"\nimport { WorkspaceID } from \"./workspace-id.js\"\n\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\nexport const Ref = Schema.Struct({\n directory: AbsolutePath,\n workspaceID: optional(WorkspaceID),\n}).annotate({ identifier: \"Location.Ref\" })\n\nexport class Info extends Schema.Class<Info>(\"Location.Info\")({\n directory: AbsolutePath,\n workspaceID: optional(WorkspaceID),\n project: Schema.Struct({\n id: ProjectID,\n directory: AbsolutePath,\n }),\n}) {}\n\nexport function response<S extends Schema.Top>(data: S) {\n return Schema.Struct({ location: Info, data })\n}\n",
"export * as Event from \"./event.js\"\n\nimport { Schema, SchemaTransformation } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ascending } from \"./identifier.js\"\nimport { Location } from \"./location.js\"\nimport { DateTimeUtcFromMillis, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"evt_\")).pipe(\n Schema.brand(\"Event.ID\"),\n statics((schema) => ({ create: () => schema.make(\"evt_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\n/**\n * Position in one aggregate's durable log. Values originate from the durable\n * event envelope and synced markers;\n * `after` cursors accept only values that came from those sources.\n */\nexport const Seq = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)).pipe(Schema.brand(\"Event.Seq\"))\nexport type Seq = typeof Seq.Type\n\n/** Durable schema version of one event type, from the event definition that committed it. */\nexport const Version = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)).pipe(Schema.brand(\"Event.Version\"))\nexport type Version = typeof Version.Type\n\nconst DurableEnvelope = Schema.Struct({ aggregateID: Schema.String, seq: Seq, version: Version })\nexport type DurableEnvelope = typeof DurableEnvelope.Type\n\nexport type DurableDefinition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = Schema.Top & {\n readonly type: Type\n readonly durability: \"durable\"\n readonly durable: {\n readonly version: number\n readonly aggregate: string\n }\n readonly data: DataSchema\n}\n\nexport type EphemeralDefinition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = Schema.Top & {\n readonly type: Type\n readonly durability: \"ephemeral\"\n readonly durable?: never\n readonly data: DataSchema\n}\n\nexport type Definition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = DurableDefinition<Type, DataSchema> | EphemeralDefinition<Type, DataSchema>\n\nexport type Data<D extends Definition> = Schema.Schema.Type<D[\"data\"]>\n\ntype PayloadBase<D extends Definition> = {\n readonly id: ID\n readonly type: D[\"type\"]\n readonly created: typeof DateTimeUtcFromMillis.Type\n readonly data: Data<D>\n readonly location?: Location.Ref\n readonly metadata?: Record<string, unknown>\n}\n\nexport type Payload<D extends Definition = Definition> = D extends DurableDefinition\n ? PayloadBase<D> & { readonly durable: DurableEnvelope }\n : PayloadBase<D> & { readonly durable?: never }\n\ntype Input<Type extends string, Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>> = {\n readonly type: Type\n readonly identifier?: string\n readonly durable?: {\n readonly version: number\n readonly aggregate: string\n }\n readonly schema: Fields\n}\n\nexport function durable<\n const Type extends string,\n const Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>,\n>(input: Input<Type, Fields> & { readonly durable: NonNullable<Input<Type, Fields>[\"durable\"]> }) {\n const data = Schema.Struct(input.schema)\n const durable = Schema.Struct({\n aggregateID: DurableEnvelope.fields.aggregateID,\n seq: DurableEnvelope.fields.seq,\n version: Schema.Literal(input.durable.version).pipe(\n Schema.decodeTo(\n Schema.toType(Version),\n SchemaTransformation.transform({\n decode: () => Version.make(input.durable.version),\n encode: () => input.durable.version,\n }),\n ),\n ),\n })\n return Schema.Struct({\n id: ID,\n created: DateTimeUtcFromMillis,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n type: Schema.Literal(input.type),\n durable,\n location: optional(Location.Ref),\n data,\n })\n .annotate({ identifier: input.identifier ?? input.type })\n .pipe(\n statics(() => ({\n type: input.type,\n durability: \"durable\" as const,\n durable: input.durable,\n data,\n })),\n ) satisfies DurableDefinition<Type, typeof data>\n}\n\nexport function ephemeral<\n const Type extends string,\n const Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>,\n>(input: Omit<Input<Type, Fields>, \"durable\">) {\n const data = Schema.Struct(input.schema)\n return Schema.Struct({\n id: ID,\n created: DateTimeUtcFromMillis,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n type: Schema.Literal(input.type),\n location: optional(Location.Ref),\n data,\n })\n .annotate({ identifier: input.identifier ?? input.type })\n .pipe(\n statics(() => ({\n type: input.type,\n durability: \"ephemeral\" as const,\n durable: undefined,\n data,\n })),\n ) satisfies EphemeralDefinition<Type, typeof data>\n}\n\nexport function inventory<const Definitions extends ReadonlyArray<Definition>>(...definitions: Definitions) {\n return Object.freeze(definitions)\n}\n\nexport function latest(definitions: ReadonlyArray<Definition>) {\n return readonlyMap(\n definitions.reduce((result, definition) => {\n const existing = result.get(definition.type)\n if (!existing) {\n result.set(definition.type, definition)\n return result\n }\n if (definition.durable && existing.durable && definition.durable.version !== existing.durable.version) {\n if (definition.durable.version > existing.durable.version) result.set(definition.type, definition)\n return result\n }\n if (definition !== existing) throw new Error(`Duplicate latest event definition for ${definition.type}`)\n return result\n }, new Map<string, Definition>()),\n )\n}\n\nexport function versionedType(type: string, version: number) {\n return `${type}.${version}`\n}\n\nexport function durableMap<const Definitions extends ReadonlyArray<Definition>>(definitions: Definitions) {\n return readonlyMap(\n definitions.reduce((result, definition) => {\n if (definition.durability !== \"durable\") return result\n const key = versionedType(definition.type, definition.durable.version)\n if (result.has(key)) throw new Error(`Duplicate durable event definition for ${key}`)\n result.set(key, definition)\n return result\n }, new Map<string, DurableDefinition>()),\n )\n}\n\nfunction readonlyMap<Key, Value>(map: Map<Key, Value>): ReadonlyMap<Key, Value> {\n const result: ReadonlyMap<Key, Value> = Object.freeze({\n get size() {\n return map.size\n },\n entries: () => map.entries(),\n forEach: (callback: (value: Value, key: Key, map: ReadonlyMap<Key, Value>) => void, thisArg?: unknown) =>\n map.forEach((value, key) => callback.call(thisArg, value, key, result)),\n get: (key: Key) => map.get(key),\n has: (key: Key) => map.has(key),\n keys: () => map.keys(),\n values: () => map.values(),\n [Symbol.iterator]: () => map[Symbol.iterator](),\n })\n return result\n}\n"
],
"mappings": "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",
"debugId": "617DFE55DE3EBB1F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "AD62C3FB6A72832564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "802172186216958964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260504145000_add_sync_owner.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260504145000_add_sync_owner\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`event_sequence\\` ADD \\`owner_id\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACtE,EAEL",
"debugId": "150F92A8203D651164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260312043431_session_message_cursor.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260312043431_session_message_cursor\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`message_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`part_message_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX \\`message_session_time_created_id_idx\\` ON \\`message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n yield* tx.run(`CREATE INDEX \\`part_message_id_id_idx\\` ON \\`part\\` (\\`message_id\\`,\\`id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6CAA+C,EAC7D,MAAO,EAAG,IAAI,0CAA4C,EAC1D,MAAO,EAAG,IACR,qGACF,EACA,MAAO,EAAG,IAAI,sEAA8E,EAC7F,EAEL",
"debugId": "085B0E8F0CC4B94664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../schema/src/schema.ts"],
"sourcesContent": [
"import { DateTime, Option, Schema, SchemaGetter } from \"effect\"\n\nexport const PositiveInt = Schema.Int.check(Schema.isGreaterThan(0))\nexport const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))\n\nexport const RelativePath = Schema.String.pipe(Schema.brand(\"RelativePath\"))\nexport type RelativePath = typeof RelativePath.Type\n\nexport const AbsolutePath = Schema.String.pipe(Schema.brand(\"AbsolutePath\"))\nexport type AbsolutePath = typeof AbsolutePath.Type\n\nexport const optional = <S extends Schema.Top>(schema: S) =>\n Schema.optionalKey(schema).pipe(\n Schema.decodeTo(Schema.optional(Schema.toType(schema)), {\n decode: SchemaGetter.passthrough({ strict: false }),\n encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)),\n }),\n )\n\nexport const statics =\n <S extends object, M extends Record<string, unknown>>(methods: (schema: S) => M) =>\n (schema: S): S & M =>\n Object.assign(schema, methods(schema))\n\nexport const DateTimeUtcFromMillis = Schema.Finite.pipe(\n Schema.decodeTo(Schema.DateTimeUtc, {\n decode: SchemaGetter.transform((value) => DateTime.makeUnsafe(value)),\n encode: SchemaGetter.transform((value) => DateTime.toEpochMillis(value)),\n }),\n)\n"
],
"mappings": ";4EAEO,IAAM,EAAc,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EACtD,EAAiB,EAAO,IAAI,MAAM,EAAO,uBAAuB,CAAC,CAAC,EAElE,EAAe,EAAO,OAAO,KAAK,EAAO,MAAM,cAAc,CAAC,EAG9D,EAAe,EAAO,OAAO,KAAK,EAAO,MAAM,cAAc,CAAC,EAG9D,EAAW,CAAuB,IAC7C,EAAO,YAAY,CAAM,EAAE,KACzB,EAAO,SAAS,EAAO,SAAS,EAAO,OAAO,CAAM,CAAC,EAAG,CACtD,OAAQ,EAAa,YAAY,CAAE,OAAQ,EAAM,CAAC,EAClD,OAAQ,EAAa,kBAAkB,EAAO,OAAO,CAAC,IAAU,IAAU,MAAS,CAAC,CACtF,CAAC,CACH,EAEW,EACX,CAAsD,IACtD,CAAC,IACC,OAAO,OAAO,EAAQ,EAAQ,CAAM,CAAC,EAE5B,EAAwB,EAAO,OAAO,KACjD,EAAO,SAAS,EAAO,YAAa,CAClC,OAAQ,EAAa,UAAU,CAAC,IAAU,EAAS,WAAW,CAAK,CAAC,EACpE,OAAQ,EAAa,UAAU,CAAC,IAAU,EAAS,cAAc,CAAK,CAAC,CACzE,CAAC,CACH",
"debugId": "C4D3ABAD9C9E2C3564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "04D9D255E62DB47264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/p-map@7.0.4/node_modules/p-map/index.js"],
"sourcesContent": [
"export default async function pMap(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tstopOnError = true,\n\t\tsignal,\n\t} = {},\n) {\n\treturn new Promise((resolve_, reject_) => {\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t\t}\n\n\t\tif (typeof mapper !== 'function') {\n\t\t\tthrow new TypeError('Mapper function is required');\n\t\t}\n\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t\t}\n\n\t\tconst result = [];\n\t\tconst errors = [];\n\t\tconst skippedIndexesMap = new Map();\n\t\tlet isRejected = false;\n\t\tlet isResolved = false;\n\t\tlet isIterableDone = false;\n\t\tlet resolvingCount = 0;\n\t\tlet currentIndex = 0;\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n\n\t\tconst signalListener = () => {\n\t\t\treject(signal.reason);\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tsignal?.removeEventListener('abort', signalListener);\n\t\t};\n\n\t\tconst resolve = value => {\n\t\t\tresolve_(value);\n\t\t\tcleanup();\n\t\t};\n\n\t\tconst reject = reason => {\n\t\t\tisRejected = true;\n\t\t\tisResolved = true;\n\t\t\treject_(reason);\n\t\t\tcleanup();\n\t\t};\n\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\n\t\t}\n\n\t\tconst next = async () => {\n\t\t\tif (isResolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextItem = await iterator.next();\n\n\t\t\tconst index = currentIndex;\n\t\t\tcurrentIndex++;\n\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\n\t\t\t// This can cause multiple calls to this `next()` function to\n\t\t\t// receive a `nextItem` with `done === true`.\n\t\t\t// The shutdown logic that rejects/resolves must be protected\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\n\t\t\t// non-idempotent.\n\t\t\tif (nextItem.done) {\n\t\t\t\tisIterableDone = true;\n\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tisResolved = true;\n\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pureResult = [];\n\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpureResult.push(value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(pureResult);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolvingCount++;\n\n\t\t\t// Intentionally detached\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst element = await nextItem.value;\n\n\t\t\t\t\tif (isResolved) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst value = await mapper(element, index);\n\n\t\t\t\t\t// Use Map to stage the index of the element.\n\t\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\t\tskippedIndexesMap.set(index, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[index] = value;\n\n\t\t\t\t\tresolvingCount--;\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (stopOnError) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors.push(error);\n\t\t\t\t\t\tresolvingCount--;\n\n\t\t\t\t\t\t// In that case we can't really continue regardless of `stopOnError` state\n\t\t\t\t\t\t// since an iterable is likely to continue throwing after it throws once.\n\t\t\t\t\t\t// If we continue calling `next()` indefinitely we will likely end up\n\t\t\t\t\t\t// in an infinite loop of failed iteration.\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait next();\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t};\n\n\t\t// Create the concurrent runners in a detached (non-awaited)\n\t\t// promise. We need this so we can await the `next()` calls\n\t\t// to stop creating runners before hitting the concurrency limit\n\t\t// if the iterable has already been marked as done.\n\t\t// NOTE: We *must* do this for async iterators otherwise we'll spin up\n\t\t// infinite `next()` calls by default and never start the event loop.\n\t\t(async () => {\n\t\t\tfor (let index = 0; index < concurrency; index++) {\n\t\t\t\ttry {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIterableDone || isRejected) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t});\n}\n\nexport function pMapIterable(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tbackpressure = concurrency,\n\t} = {},\n) {\n\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t}\n\n\tif (typeof mapper !== 'function') {\n\t\tthrow new TypeError('Mapper function is required');\n\t}\n\n\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t}\n\n\tif (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`backpressure\\` to be an integer from \\`concurrency\\` (${concurrency}) and up or \\`Infinity\\`, got \\`${backpressure}\\` (${typeof backpressure})`);\n\t}\n\n\treturn {\n\t\tasync * [Symbol.asyncIterator]() {\n\t\t\tconst iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\n\n\t\t\tconst promises = [];\n\t\t\tlet pendingPromisesCount = 0;\n\t\t\tlet isDone = false;\n\t\t\tlet index = 0;\n\n\t\t\tfunction trySpawn() {\n\t\t\t\tif (isDone || !(pendingPromisesCount < concurrency && promises.length < backpressure)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tpendingPromisesCount++;\n\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tconst {done, value} = await iterator.next();\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tpendingPromisesCount--;\n\t\t\t\t\t\treturn {done: true};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Spawn if still below concurrency and backpressure limit\n\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst returnValue = await mapper(await value, index++);\n\n\t\t\t\t\t\tpendingPromisesCount--;\n\n\t\t\t\t\t\tif (returnValue === pMapSkip) {\n\t\t\t\t\t\t\tconst index = promises.indexOf(promise);\n\n\t\t\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t\t\tpromises.splice(index, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Spawn if still below backpressure limit and just dropped below concurrency limit\n\t\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\t\treturn {done: false, value: returnValue};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tpendingPromisesCount--;\n\t\t\t\t\t\tisDone = true;\n\t\t\t\t\t\treturn {error};\n\t\t\t\t\t}\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\n\t\t\ttrySpawn();\n\n\t\t\twhile (promises.length > 0) {\n\t\t\t\tconst {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop\n\n\t\t\t\tpromises.shift();\n\n\t\t\t\tif (error) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (done) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Spawn if just dropped below backpressure limit and below the concurrency limit\n\t\t\t\ttrySpawn();\n\n\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport const pMapSkip = Symbol('skip');\n"
],
"mappings": "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",
"debugId": "CA0B0CD43AAD91D864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-login@3.972.45/node_modules/@aws-sdk/credential-provider-login/dist-es/fromLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-login@3.972.45/node_modules/@aws-sdk/credential-provider-login/dist-es/LoginCredentialsFetcher.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveStaticCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js"],
"sourcesContent": [
"import { getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { resolveProfileData } from \"./resolveProfileData\";\nexport const fromIni = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await parseKnownFiles(init);\n return resolveProfileData(getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n }), profiles, init, callerClientConfig);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { isAssumeRoleProfile, resolveAssumeRoleCredentials } from \"./resolveAssumeRoleCredentials\";\nimport { isLoginProfile, resolveLoginCredentials } from \"./resolveLoginCredentials\";\nimport { isProcessProfile, resolveProcessCredentials } from \"./resolveProcessCredentials\";\nimport { isSsoProfile, resolveSsoCredentials } from \"./resolveSsoCredentials\";\nimport { isStaticCredsProfile, resolveStaticCredentials } from \"./resolveStaticCredentials\";\nimport { isWebIdentityProfile, resolveWebIdentityCredentials } from \"./resolveWebIdentityCredentials\";\nexport const resolveProfileData = async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, callerClientConfig, visitedProfiles, resolveProfileData);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options, callerClientConfig);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options, callerClientConfig);\n }\n if (isLoginProfile(data)) {\n return resolveLoginCredentials(profileName, options, callerClientConfig);\n }\n throw new CredentialsProviderError(`Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, { logger: options.logger });\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, getProfileName } from \"@smithy/core/config\";\nimport { resolveCredentialSource } from \"./resolveCredentialSource\";\nexport const isAssumeRoleProfile = (arg, { profile = \"default\", logger } = {}) => {\n return (Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 &&\n (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })));\n};\nconst isAssumeRoleWithSourceProfile = (arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n};\nconst isCredentialSourceProfile = (arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n};\nexport const resolveAssumeRoleCredentials = async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, resolveProfileData) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await import(\"@aws-sdk/nested-clients/sts\");\n options.roleAssumer = getDefaultRoleAssumer({\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...callerClientConfig,\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region ?? callerClientConfig?.region,\n },\n }, options.clientPlugins);\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile` +\n ` ${getProfileName(options)}. Profiles visited: ` +\n Object.keys(visitedProfiles).join(\", \"), { logger: options.logger });\n }\n options.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`);\n const sourceCredsProvider = source_profile\n ? resolveProfileData(source_profile, profiles, options, callerClientConfig, {\n ...visitedProfiles,\n [source_profile]: true,\n }, isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}))\n : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n }\n else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10),\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, { logger: options.logger, tryNextLink: false });\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n }\n};\nconst isCredentialSourceWithoutRoleArn = (section) => {\n return !section.role_arn && !!section.credential_source;\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { chain, CredentialsProviderError } from \"@smithy/core/config\";\nexport const resolveCredentialSource = (credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: async (options) => {\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n const { fromContainerMetadata } = await import(\"@smithy/credential-provider-imds\");\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => chain(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n },\n Ec2InstanceMetadata: async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n },\n Environment: async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await import(\"@aws-sdk/credential-provider-env\");\n return async () => fromEnv(options)().then(setNamedProvider);\n },\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n }\n else {\n throw new CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +\n `expected EcsContainer or Ec2InstanceMetadata or Environment.`, { logger });\n }\n};\nconst setNamedProvider = (creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromLoginCredentials } from \"@aws-sdk/credential-provider-login\";\nexport const isLoginProfile = (data) => {\n return Boolean(data && data.login_session);\n};\nexport const resolveLoginCredentials = async (profileName, options, callerClientConfig) => {\n const credentials = await fromLoginCredentials({\n ...options,\n profile: profileName,\n })({ callerClientConfig });\n return setCredentialFeature(credentials, \"CREDENTIALS_PROFILE_LOGIN\", \"AC\");\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { LoginCredentialsFetcher } from \"./LoginCredentialsFetcher\";\nexport const fromLoginCredentials = (init) => async ({ callerClientConfig } = {}) => {\n init?.logger?.debug?.(\"@aws-sdk/credential-providers - fromLoginCredentials\");\n const profiles = await parseKnownFiles(init || {});\n const profileName = getProfileName({\n profile: init?.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile?.login_session) {\n throw new CredentialsProviderError(`Profile ${profileName} does not contain login_session.`, {\n tryNextLink: true,\n logger: init?.logger,\n });\n }\n const fetcher = new LoginCredentialsFetcher(profile, init, callerClientConfig);\n const credentials = await fetcher.loadCredentials();\n return setCredentialFeature(credentials, \"CREDENTIALS_LOGIN\", \"AD\");\n};\n",
"import { CredentialsProviderError, readFile } from \"@smithy/core/config\";\nimport { HttpRequest } from \"@smithy/core/protocols\";\nimport { createHash, createPrivateKey, createPublicKey, sign } from \"node:crypto\";\nimport { promises as fs } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nexport class LoginCredentialsFetcher {\n profileData;\n init;\n callerClientConfig;\n static REFRESH_THRESHOLD = 5 * 60 * 1000;\n constructor(profileData, init, callerClientConfig) {\n this.profileData = profileData;\n this.init = init;\n this.callerClientConfig = callerClientConfig;\n }\n async loadCredentials() {\n const token = await this.loadToken();\n if (!token) {\n throw new CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`, { tryNextLink: false, logger: this.logger });\n }\n const accessToken = token.accessToken;\n const now = Date.now();\n const expiryTime = new Date(accessToken.expiresAt).getTime();\n const timeUntilExpiry = expiryTime - now;\n if (timeUntilExpiry <= LoginCredentialsFetcher.REFRESH_THRESHOLD) {\n return this.refresh(token);\n }\n return {\n accessKeyId: accessToken.accessKeyId,\n secretAccessKey: accessToken.secretAccessKey,\n sessionToken: accessToken.sessionToken,\n accountId: accessToken.accountId,\n expiration: new Date(accessToken.expiresAt),\n };\n }\n get logger() {\n return this.init?.logger;\n }\n get loginSession() {\n return this.profileData.login_session;\n }\n async refresh(token) {\n const { SigninClient, CreateOAuth2TokenCommand } = await import(\"@aws-sdk/nested-clients/signin\");\n const { logger, userAgentAppId } = this.callerClientConfig ?? {};\n const isH2 = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n };\n const requestHandler = isH2(this.callerClientConfig?.requestHandler)\n ? undefined\n : this.callerClientConfig?.requestHandler;\n const region = this.profileData.region ?? (await this.callerClientConfig?.region?.()) ?? process.env.AWS_REGION;\n const client = new SigninClient({\n credentials: {\n accessKeyId: \"\",\n secretAccessKey: \"\",\n },\n region,\n requestHandler,\n logger,\n userAgentAppId,\n ...this.init?.clientConfig,\n });\n this.createDPoPInterceptor(client.middlewareStack);\n const commandInput = {\n tokenInput: {\n clientId: token.clientId,\n refreshToken: token.refreshToken,\n grantType: \"refresh_token\",\n },\n };\n try {\n const response = await client.send(new CreateOAuth2TokenCommand(commandInput));\n const { accessKeyId, secretAccessKey, sessionToken } = response.tokenOutput?.accessToken ?? {};\n const { refreshToken, expiresIn } = response.tokenOutput ?? {};\n if (!accessKeyId || !secretAccessKey || !sessionToken || !refreshToken) {\n throw new CredentialsProviderError(\"Token refresh response missing required fields\", {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n const expiresInMs = (expiresIn ?? 900) * 1000;\n const expiration = new Date(Date.now() + expiresInMs);\n const updatedToken = {\n ...token,\n accessToken: {\n ...token.accessToken,\n accessKeyId: accessKeyId,\n secretAccessKey: secretAccessKey,\n sessionToken: sessionToken,\n expiresAt: expiration.toISOString(),\n },\n refreshToken: refreshToken,\n };\n await this.saveToken(updatedToken);\n const newAccessToken = updatedToken.accessToken;\n return {\n accessKeyId: newAccessToken.accessKeyId,\n secretAccessKey: newAccessToken.secretAccessKey,\n sessionToken: newAccessToken.sessionToken,\n accountId: newAccessToken.accountId,\n expiration,\n };\n }\n catch (error) {\n if (error.name === \"AccessDeniedException\") {\n const errorType = error.error;\n let message;\n switch (errorType) {\n case \"TOKEN_EXPIRED\":\n message = \"Your session has expired. Please reauthenticate.\";\n break;\n case \"USER_CREDENTIALS_CHANGED\":\n message =\n \"Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.\";\n break;\n case \"INSUFFICIENT_PERMISSIONS\":\n message =\n \"Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.\";\n break;\n default:\n message = `Failed to refresh token: ${String(error)}. Please re-authenticate using \\`aws login\\``;\n }\n throw new CredentialsProviderError(message, { logger: this.logger, tryNextLink: false });\n }\n throw new CredentialsProviderError(`Failed to refresh token: ${String(error)}. Please re-authenticate using aws login`, { logger: this.logger });\n }\n }\n async loadToken() {\n const tokenFilePath = this.getTokenFilePath();\n try {\n let tokenData;\n try {\n tokenData = await readFile(tokenFilePath, { ignoreCache: this.init?.ignoreCache });\n }\n catch {\n tokenData = await fs.readFile(tokenFilePath, \"utf8\");\n }\n const token = JSON.parse(tokenData);\n const missingFields = [\"accessToken\", \"clientId\", \"refreshToken\", \"dpopKey\"].filter((k) => !token[k]);\n if (!token.accessToken?.accountId) {\n missingFields.push(\"accountId\");\n }\n if (missingFields.length > 0) {\n throw new CredentialsProviderError(`Token validation failed, missing fields: ${missingFields.join(\", \")}`, {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n return token;\n }\n catch (error) {\n throw new CredentialsProviderError(`Failed to load token from ${tokenFilePath}: ${String(error)}`, {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n }\n async saveToken(token) {\n const tokenFilePath = this.getTokenFilePath();\n const directory = dirname(tokenFilePath);\n try {\n await fs.mkdir(directory, { recursive: true });\n }\n catch (error) {\n }\n await fs.writeFile(tokenFilePath, JSON.stringify(token, null, 2), \"utf8\");\n }\n getTokenFilePath() {\n const directory = process.env.AWS_LOGIN_CACHE_DIRECTORY ?? join(homedir(), \".aws\", \"login\", \"cache\");\n const loginSessionBytes = Buffer.from(this.loginSession, \"utf8\");\n const loginSessionSha256 = createHash(\"sha256\").update(loginSessionBytes).digest(\"hex\");\n return join(directory, `${loginSessionSha256}.json`);\n }\n derToRawSignature(derSignature) {\n let offset = 2;\n if (derSignature[offset] !== 0x02) {\n throw new Error(\"Invalid DER signature\");\n }\n offset++;\n const rLength = derSignature[offset++];\n let r = derSignature.subarray(offset, offset + rLength);\n offset += rLength;\n if (derSignature[offset] !== 0x02) {\n throw new Error(\"Invalid DER signature\");\n }\n offset++;\n const sLength = derSignature[offset++];\n let s = derSignature.subarray(offset, offset + sLength);\n r = r[0] === 0x00 ? r.subarray(1) : r;\n s = s[0] === 0x00 ? s.subarray(1) : s;\n const rPadded = Buffer.concat([Buffer.alloc(32 - r.length), r]);\n const sPadded = Buffer.concat([Buffer.alloc(32 - s.length), s]);\n return Buffer.concat([rPadded, sPadded]);\n }\n createDPoPInterceptor(middlewareStack) {\n middlewareStack.add((next) => async (args) => {\n if (HttpRequest.isInstance(args.request)) {\n const request = args.request;\n const actualEndpoint = `${request.protocol}//${request.hostname}${request.port ? `:${request.port}` : \"\"}${request.path}`;\n const dpop = await this.generateDpop(request.method, actualEndpoint);\n request.headers = {\n ...request.headers,\n DPoP: dpop,\n };\n }\n return next(args);\n }, {\n step: \"finalizeRequest\",\n name: \"dpopInterceptor\",\n override: true,\n });\n }\n async generateDpop(method = \"POST\", endpoint) {\n const token = await this.loadToken();\n try {\n const privateKey = createPrivateKey({\n key: token.dpopKey,\n format: \"pem\",\n type: \"sec1\",\n });\n const publicKey = createPublicKey(privateKey);\n const publicDer = publicKey.export({ format: \"der\", type: \"spki\" });\n let pointStart = -1;\n for (let i = 0; i < publicDer.length; i++) {\n if (publicDer[i] === 0x04) {\n pointStart = i;\n break;\n }\n }\n const x = publicDer.slice(pointStart + 1, pointStart + 33);\n const y = publicDer.slice(pointStart + 33, pointStart + 65);\n const header = {\n alg: \"ES256\",\n typ: \"dpop+jwt\",\n jwk: {\n kty: \"EC\",\n crv: \"P-256\",\n x: x.toString(\"base64url\"),\n y: y.toString(\"base64url\"),\n },\n };\n const payload = {\n jti: crypto.randomUUID(),\n htm: method,\n htu: endpoint,\n iat: Math.floor(Date.now() / 1000),\n };\n const headerB64 = Buffer.from(JSON.stringify(header)).toString(\"base64url\");\n const payloadB64 = Buffer.from(JSON.stringify(payload)).toString(\"base64url\");\n const message = `${headerB64}.${payloadB64}`;\n const asn1Signature = sign(\"sha256\", Buffer.from(message), privateKey);\n const rawSignature = this.derToRawSignature(asn1Signature);\n const signatureB64 = rawSignature.toString(\"base64url\");\n return `${message}.${signatureB64}`;\n }\n catch (error) {\n throw new CredentialsProviderError(`Failed to generate Dpop proof: ${error instanceof Error ? error.message : String(error)}`, { logger: this.logger, tryNextLink: false });\n }\n }\n}\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isProcessProfile = (arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\";\nexport const resolveProcessCredentials = async (options, profile) => import(\"@aws-sdk/credential-provider-process\").then(({ fromProcess }) => fromProcess({\n ...options,\n profile,\n})().then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\")));\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const resolveSsoCredentials = async (profile, profileData, options = {}, callerClientConfig) => {\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig,\n })({\n callerClientConfig,\n }).then((creds) => {\n if (profileData.sso_session) {\n return setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n }\n else {\n return setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n};\nexport const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isStaticCredsProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.aws_access_key_id === \"string\" &&\n typeof arg.aws_secret_access_key === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1;\nexport const resolveStaticCredentials = async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...(profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }),\n ...(profile.aws_account_id && { accountId: profile.aws_account_id }),\n };\n return setCredentialFeature(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexport const resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import(\"@aws-sdk/credential-provider-web-identity\").then(({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n})({\n callerClientConfig,\n}).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\")));\n"
],
"mappings": "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",
"debugId": "C120E10668FE497D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260225215848_workspace.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260225215848_workspace\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`workspace\\` (\n \\`id\\` text PRIMARY KEY,\n \\`branch\\` text,\n \\`project_id\\` text NOT NULL,\n \\`config\\` text NOT NULL,\n CONSTRAINT \\`fk_workspace_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sUAQb,EACF,EAEL",
"debugId": "3F391E182A857EDE64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mini.ts"],
"sourcesContent": [
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nexport default Runtime.handler(Commands.commands.mini, (input) =>\n Effect.gen(function* () {\n const { runMini, validateMiniTerminal } = yield* Effect.promise(() => import(\"../../mini\"))\n yield* Effect.promise(async () => validateMiniTerminal())\n const serverURL = Option.getOrUndefined(input.server)\n const server = yield* ServerConnection.resolve({ server: serverURL, standalone: input.standalone })\n yield* Effect.promise(() =>\n runMini({\n server,\n continue: input.continue,\n session: Option.getOrUndefined(input.session),\n fork: input.fork,\n model: Option.getOrUndefined(input.model),\n agent: Option.getOrUndefined(input.agent),\n prompt: Option.getOrUndefined(input.prompt),\n replay: input.replay,\n replayLimit: Option.getOrUndefined(input.replayLimit),\n demo: input.demo,\n }),\n )\n }),\n)\n"
],
"mappings": ";+uCAKA,SAAe,SAAQ,aAAQ,OAAS,cAAS,UAAM,MAAC,SACtD,OAAO,SAAI,cAAU,OAAG,MACtB,SAAQ,eAAS,6BAAyB,WAAO,OAAO,aAAQ,SAAa,wCAAa,OAC1F,WAAO,OAAO,aAAQ,cAAY,OAAqB,MAAC,OACxD,SAAM,OAAY,OAAO,oBAAe,OAAM,WAAM,EAC9C,EAAS,MAAO,EAAiB,QAAQ,CAAE,OAAQ,EAAW,WAAY,EAAM,UAAW,CAAC,EAClG,MAAO,EAAO,QAAQ,IACpB,EAAQ,CACN,SACA,SAAU,EAAM,SAChB,QAAS,EAAO,eAAe,EAAM,OAAO,EAC5C,KAAM,EAAM,KACZ,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,OAAQ,EAAO,eAAe,EAAM,MAAM,EAC1C,OAAQ,EAAM,OACd,YAAa,EAAO,eAAe,EAAM,WAAW,EACpD,KAAM,EAAM,IACd,CAAC,CACH,EACD,CACH",
"debugId": "A547F1F6415682CA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../simulation/src/manifest.ts", "../simulation/src/protocol/index.ts", "../simulation/src/control-server.ts"],
"sourcesContent": [
"import { homedir } from \"node:os\"\nimport { isAbsolute, join } from \"node:path\"\nimport { Config, Effect, FileSystem, Schema } from \"effect\"\nimport { PositiveInt } from \"@opencode-ai/core/schema\"\n\nconst InstanceName = Schema.String.check(\n Schema.makeFilter((value) =>\n /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/.test(value) ? undefined : \"a valid Drive instance name\",\n ),\n)\n\nconst Endpoint = Schema.String.check(\n Schema.makeFilter((value) => {\n if (!URL.canParse(value)) return \"a loopback WebSocket endpoint with an explicit port\"\n const endpoint = new URL(value)\n const port = Number(endpoint.port)\n return endpoint.protocol === \"ws:\" && endpoint.hostname === \"127.0.0.1\" && Number.isInteger(port) && port >= 1\n ? undefined\n : \"a loopback WebSocket endpoint with an explicit port\"\n }),\n)\n\nconst AbsolutePath = Schema.String.check(\n Schema.makeFilter((value) => (isAbsolute(value) ? undefined : \"an absolute path\")),\n)\n\nexport const Manifest = Schema.Struct({\n endpoints: Schema.Struct({\n ui: Endpoint,\n backend: Endpoint,\n }),\n viewport: Schema.optionalKey(\n Schema.Struct({\n cols: PositiveInt,\n rows: PositiveInt,\n }),\n ),\n recording: Schema.optionalKey(\n Schema.Struct({\n timeline: AbsolutePath,\n }),\n ),\n})\nexport interface Manifest extends Schema.Schema.Type<typeof Manifest> {}\n\nexport class ResolveError extends Schema.TaggedErrorClass<ResolveError>()(\"DriveManifest.ResolveError\", {\n reason: Schema.Literals([\"config\", \"not-found\", \"read\", \"decode\"]),\n path: Schema.optionalKey(Schema.String),\n message: Schema.String,\n cause: Schema.Defect(),\n}) {}\n\nexport const defaults: Manifest = {\n endpoints: {\n ui: \"ws://127.0.0.1:40900\",\n backend: \"ws://127.0.0.1:40950\",\n },\n}\n\nconst decode = Schema.decodeUnknownEffect(Schema.fromJsonString(Manifest))\n\nconst configError = (cause: unknown) =>\n new ResolveError({\n reason: \"config\",\n message: `Invalid Drive configuration: ${String(cause)}`,\n cause,\n })\n\nexport const resolve = Effect.fn(\"DriveManifest.resolve\")(function* () {\n const name = yield* Config.schema(InstanceName, \"OPENCODE_DRIVE\").pipe(Effect.mapError(configError))\n if (name === \"1\") return defaults\n\n const state = yield* Config.string(\"XDG_STATE_HOME\").pipe(\n Config.withDefault(join(homedir(), \".local\", \"state\")),\n Effect.mapError(configError),\n )\n const directory = yield* Config.string(\"DRIVE_REGISTRY_DIR\").pipe(\n Config.withDefault(join(state, \"opencode-drive\", \"instances\")),\n Effect.mapError(configError),\n )\n const file = join(directory, `${name}.json`)\n const fs = yield* FileSystem.FileSystem\n const contents = yield* fs.readFileString(file).pipe(\n Effect.mapError(\n (cause) =>\n new ResolveError({\n reason: cause.reason._tag === \"NotFound\" ? \"not-found\" : \"read\",\n path: file,\n message:\n cause.reason._tag === \"NotFound\"\n ? `Drive manifest not found: ${file}`\n : `Failed to read Drive manifest: ${file}: ${cause.message}`,\n cause,\n }),\n ),\n )\n return yield* decode(contents).pipe(\n Effect.mapError(\n (cause) =>\n new ResolveError({\n reason: \"decode\",\n path: file,\n message: `Invalid Drive manifest: ${file}: ${cause.message}`,\n cause,\n }),\n ),\n )\n})\n\nexport * as DriveManifest from \"./manifest\"\n",
"import { Effect, Schema } from \"effect\"\n\nconst JsonRpcID = Schema.Union([Schema.String, Schema.Number, Schema.Null])\ntype Json = Schema.Schema.Type<typeof Schema.Json>\n\nexport namespace JsonRpc {\n export const RequestFields = {\n jsonrpc: Schema.Literal(\"2.0\"),\n id: Schema.optional(JsonRpcID),\n }\n export const Request = Schema.Struct({\n ...RequestFields,\n method: Schema.String,\n params: Schema.optional(Schema.Json),\n })\n export interface Request extends Schema.Schema.Type<typeof Request> {}\n\n export const ErrorObject = Schema.Struct({\n code: Schema.Number,\n message: Schema.String,\n data: Schema.optional(Schema.Json),\n })\n\n export const Response = Schema.Struct({\n jsonrpc: Schema.Literal(\"2.0\"),\n id: JsonRpcID,\n result: Schema.optional(Schema.Json),\n error: Schema.optional(ErrorObject),\n })\n export interface Response extends Schema.Schema.Type<typeof Response> {}\n\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n\n export function success(id: Request[\"id\"], result: unknown): Response | undefined {\n if (id === undefined) return undefined\n return { jsonrpc: \"2.0\", id, result: result as Json }\n }\n\n export function failure(id: Request[\"id\"], error: unknown): Response {\n return {\n jsonrpc: \"2.0\",\n id: id ?? null,\n error: {\n code: -32000,\n message: error instanceof Error ? error.message : String(error),\n },\n }\n }\n}\n\nexport namespace Frontend {\n export const KeyModifiers = Schema.Struct({\n ctrl: Schema.optional(Schema.Boolean),\n shift: Schema.optional(Schema.Boolean),\n meta: Schema.optional(Schema.Boolean),\n super: Schema.optional(Schema.Boolean),\n hyper: Schema.optional(Schema.Boolean),\n })\n export interface KeyModifiers extends Schema.Schema.Type<typeof KeyModifiers> {}\n\n export const Action = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"ui.type\"), text: Schema.String }),\n Schema.Struct({ type: Schema.Literal(\"ui.press\"), key: Schema.String, modifiers: Schema.optional(KeyModifiers) }),\n Schema.Struct({ type: Schema.Literal(\"ui.enter\") }),\n Schema.Struct({ type: Schema.Literal(\"ui.arrow\"), direction: Schema.Literals([\"up\", \"down\", \"left\", \"right\"]) }),\n Schema.Struct({ type: Schema.Literal(\"ui.focus\"), target: Schema.Number }),\n Schema.Struct({ type: Schema.Literal(\"ui.click\"), target: Schema.Number, x: Schema.Number, y: Schema.Number }),\n Schema.Struct({ type: Schema.Literal(\"ui.resize\"), cols: Schema.Number, rows: Schema.Number }),\n ])\n export type Action = Schema.Schema.Type<typeof Action>\n\n export const Element = Schema.Struct({\n id: Schema.String,\n num: Schema.Number,\n x: Schema.Number,\n y: Schema.Number,\n width: Schema.Number,\n height: Schema.Number,\n focusable: Schema.Boolean,\n focused: Schema.Boolean,\n clickable: Schema.Boolean,\n editor: Schema.Boolean,\n })\n export interface Element extends Schema.Schema.Type<typeof Element> {}\n\n export const State = Schema.Struct({\n focused: Schema.Struct({\n renderable: Schema.optional(Schema.Number),\n editor: Schema.Boolean,\n }),\n elements: Schema.Array(Element),\n })\n export interface State extends Schema.Schema.Type<typeof State> {}\n\n export const Screenshot = Schema.String\n export type Screenshot = Schema.Schema.Type<typeof Screenshot>\n\n export const Color = Schema.Tuple([Schema.Number, Schema.Number, Schema.Number, Schema.Number])\n export type Color = Schema.Schema.Type<typeof Color>\n\n export const CapturedFrame = Schema.Struct({\n cols: Schema.Number,\n rows: Schema.Number,\n cursor: Schema.Tuple([Schema.Number, Schema.Number]),\n lines: Schema.Array(\n Schema.Struct({\n spans: Schema.Array(\n Schema.Struct({\n text: Schema.String,\n fg: Color,\n bg: Color,\n attributes: Schema.Number,\n width: Schema.Number,\n }),\n ),\n }),\n ),\n })\n export interface CapturedFrame extends Schema.Schema.Type<typeof CapturedFrame> {}\n\n export const RecordingFinish = Schema.String\n export type RecordingFinish = Schema.Schema.Type<typeof RecordingFinish>\n\n export const Matches = Schema.Boolean\n export type Matches = Schema.Schema.Type<typeof Matches>\n\n export const ScreenshotParams = Schema.Struct({ name: Schema.optional(Schema.String) })\n export interface ScreenshotParams extends Schema.Schema.Type<typeof ScreenshotParams> {}\n\n export const TypeParams = Schema.Struct({ text: Schema.String })\n export interface TypeParams extends Schema.Schema.Type<typeof TypeParams> {}\n\n export const MatchesParams = Schema.Struct({ text: Schema.String })\n export interface MatchesParams extends Schema.Schema.Type<typeof MatchesParams> {}\n\n export const PressParams = Schema.Struct({ key: Schema.String, modifiers: Schema.optional(KeyModifiers) })\n export interface PressParams extends Schema.Schema.Type<typeof PressParams> {}\n\n export const ArrowParams = Schema.Struct({ direction: Schema.Literals([\"up\", \"down\", \"left\", \"right\"]) })\n export interface ArrowParams extends Schema.Schema.Type<typeof ArrowParams> {}\n\n export const FocusParams = Schema.Struct({ target: Schema.Number })\n export interface FocusParams extends Schema.Schema.Type<typeof FocusParams> {}\n\n export const ClickParams = Schema.Struct({ target: Schema.Number, x: Schema.Number, y: Schema.Number })\n export interface ClickParams extends Schema.Schema.Type<typeof ClickParams> {}\n\n export const ResizeParams = Schema.Struct({ cols: Schema.Number, rows: Schema.Number })\n export interface ResizeParams extends Schema.Schema.Type<typeof ResizeParams> {}\n\n export const Request = Schema.Union([\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.type\"), params: TypeParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.press\"), params: PressParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.arrow\"), params: ArrowParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.focus\"), params: FocusParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.click\"), params: ClickParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.resize\"), params: ResizeParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.matches\"), params: MatchesParams }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literal(\"ui.screenshot\"),\n params: Schema.optional(ScreenshotParams),\n }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literals([\"ui.enter\", \"ui.state\", \"ui.recording.finish\"]),\n }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.capture\") }),\n ])\n export type Request = Schema.Schema.Type<typeof Request>\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n export const decodeRequestEffect = Schema.decodeUnknownEffect(Schema.fromJsonString(Request))\n}\n\nexport namespace Backend {\n export const Item = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"textDelta\"), text: Schema.String }),\n Schema.Struct({ type: Schema.Literal(\"reasoningDelta\"), text: Schema.String }),\n Schema.Struct({\n type: Schema.Literal(\"toolCall\"),\n index: Schema.Number,\n id: Schema.String,\n name: Schema.String,\n input: Schema.Json,\n }),\n Schema.Struct({ type: Schema.Literal(\"raw\"), chunk: Schema.Json }),\n ])\n export type Item = Schema.Schema.Type<typeof Item>\n\n export const FinishReason = Schema.Literals([\"stop\", \"tool-calls\", \"length\", \"content-filter\"])\n export type FinishReason = Schema.Schema.Type<typeof FinishReason>\n\n export const ChunkParams = Schema.Struct({ id: Schema.String, items: Schema.Array(Item) })\n export interface ChunkParams extends Schema.Schema.Type<typeof ChunkParams> {}\n\n export const FinishParams = Schema.Struct({\n id: Schema.String,\n reason: FinishReason.pipe(Schema.withDecodingDefault(Effect.succeed(\"stop\" as const))),\n })\n export interface FinishParams extends Schema.Schema.Type<typeof FinishParams> {}\n\n export const DisconnectParams = Schema.Struct({ id: Schema.String })\n export interface DisconnectParams extends Schema.Schema.Type<typeof DisconnectParams> {}\n\n export const Request = Schema.Union([\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.chunk\"), params: ChunkParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.finish\"), params: FinishParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.disconnect\"), params: DisconnectParams }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literals([\"llm.attach\", \"llm.pending\"]),\n }),\n ])\n export type Request = Schema.Schema.Type<typeof Request>\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n export const decodeRequestEffect = Schema.decodeUnknownEffect(Schema.fromJsonString(Request))\n\n export const ProviderInvocation = Schema.Struct({ id: Schema.String, url: Schema.String, body: Schema.Json })\n export interface ProviderInvocation extends Schema.Schema.Type<typeof ProviderInvocation> {}\n\n export const NetworkLogEntry = Schema.Struct({\n time: Schema.Number,\n method: Schema.String,\n url: Schema.String,\n matched: Schema.Boolean,\n })\n export interface NetworkLogEntry extends Schema.Schema.Type<typeof NetworkLogEntry> {}\n}\n\nexport * as SimulationProtocol from \"./index\"\n",
"import { Effect, Fiber, Queue, Stream } from \"effect\"\nimport { SimulationProtocol } from \"./protocol\"\n\nexport interface Server {\n readonly url: string\n}\n\ninterface Request {\n readonly id?: string | number | null\n}\n\nexport interface SocketData {\n readonly drive?: true\n attachment?: Fiber.Fiber<void>\n closed?: true\n}\n\nexport type Socket = Bun.ServerWebSocket<SocketData>\n\nexport function start<RequestType extends Request, Error, Services>(options: {\n readonly endpoint: string\n readonly label: string\n readonly data: () => SocketData\n readonly decode: (input: string) => Effect.Effect<RequestType, Error>\n readonly handle: (socket: Socket, request: RequestType) => Effect.Effect<unknown, unknown, Services>\n readonly close?: (socket: Socket) => Effect.Effect<void, never, Services>\n}) {\n return Effect.gen(function* () {\n const messages = yield* Queue.bounded<{ readonly socket: Socket; readonly input: string }>(256)\n const closures = yield* Queue.unbounded<Socket>()\n yield* Stream.fromQueue(messages).pipe(\n Stream.runForEach((message) =>\n options.decode(message.input).pipe(\n Effect.flatMap((request) =>\n options.handle(message.socket, request).pipe(\n Effect.matchEffect({\n onFailure: (error) => send(message.socket, SimulationProtocol.JsonRpc.failure(request.id, error)),\n onSuccess: (result) => send(message.socket, SimulationProtocol.JsonRpc.success(request.id, result)),\n }),\n ),\n ),\n Effect.catch((error) => send(message.socket, SimulationProtocol.JsonRpc.failure(undefined, error))),\n ),\n ),\n Effect.forkScoped,\n )\n yield* Stream.fromQueue(closures).pipe(\n Stream.runForEach((socket) => options.close?.(socket) ?? Effect.void),\n Effect.forkScoped,\n )\n const url = yield* Effect.try({ try: () => new URL(options.endpoint), catch: (cause) => cause })\n yield* Effect.acquireRelease(\n Effect.sync(() =>\n Bun.serve<SocketData>({\n hostname: url.hostname,\n port: Number(url.port),\n fetch(request, server) {\n if (server.upgrade(request, { data: options.data() })) return undefined\n return new Response(options.label, { status: 426 })\n },\n websocket: {\n close(socket) {\n socket.data.closed = true\n Queue.offerUnsafe(closures, socket)\n },\n message(socket, message) {\n const input = typeof message === \"string\" ? message : message.toString()\n if (Queue.offerUnsafe(messages, { socket, input })) return\n socket.send(\n JSON.stringify(\n SimulationProtocol.JsonRpc.failure(undefined, new Error(\"Simulation control queue is full\")),\n ),\n )\n },\n },\n }),\n ),\n (server) => Effect.promise(() => server.stop(true)),\n )\n return { url: options.endpoint } satisfies Server\n })\n}\n\nfunction send(socket: Socket, response: SimulationProtocol.JsonRpc.Response | undefined) {\n if (!response) return Effect.void\n return Effect.sync(() => {\n socket.send(JSON.stringify(response))\n })\n}\n\nexport * as SimulationControlServer from \"./control-server\"\n"
],
"mappings": "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",
"debugId": "8B6E9947891C626664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js"],
"sourcesContent": [
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { fromImdsCredentials, isImdsCredentials } from \"./remoteProvider/ImdsCredentials\";\nimport { providerConfigFromInit } from \"./remoteProvider/RemoteProviderInit\";\nimport { httpRequest } from \"./remoteProvider/httpRequest\";\nimport { retry } from \"./remoteProvider/retry\";\nexport const ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nexport const ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nexport const ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nexport const fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = providerConfigFromInit(init);\n return () => retry(async () => {\n const requestOptions = await getCmdsUri({ logger: init.logger });\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!isImdsCredentials(credsResponse)) {\n throw new CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credsResponse);\n }, maxRetries);\n};\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await httpRequest({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = new Set([\"localhost\", \"127.0.0.1\"]);\nconst GREENGRASS_PROTOCOLS = new Set([\"http:\", \"https:\"]);\nconst getCmdsUri = async ({ logger }) => {\n if (process.env[ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[ENV_CMDS_FULL_URI]) {\n let parsed;\n try {\n parsed = new URL(process.env[ENV_CMDS_FULL_URI]);\n }\n catch {\n throw new CredentialsProviderError(`${process.env[ENV_CMDS_FULL_URI]} is not a valid container metadata service URL`, { tryNextLink: false, logger });\n }\n if (!parsed.hostname || !GREENGRASS_HOSTS.has(parsed.hostname)) {\n throw new CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {\n tryNextLink: false,\n logger,\n });\n }\n if (!parsed.protocol || !GREENGRASS_PROTOCOLS.has(parsed.protocol)) {\n throw new CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {\n tryNextLink: false,\n logger,\n });\n }\n return {\n protocol: parsed.protocol,\n hostname: parsed.hostname,\n path: parsed.pathname + parsed.search,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", {\n tryNextLink: false,\n logger,\n });\n};\n",
"export const isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nexport const fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n ...(creds.AccountId && { accountId: creds.AccountId }),\n});\n",
"export const DEFAULT_TIMEOUT = 1000;\nexport const DEFAULT_MAX_RETRIES = 0;\nexport const providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\n",
"import { request } from \"node:http\";\nimport { ProviderError } from \"@smithy/core/config\";\nexport function httpRequest(options) {\n return new Promise((resolve, reject) => {\n const req = request({\n method: \"GET\",\n ...options,\n hostname: options.hostname?.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\n",
"export const retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\n",
"import { CredentialsProviderError, loadConfig } from \"@smithy/core/config\";\nimport { InstanceMetadataV1FallbackError } from \"./error/InstanceMetadataV1FallbackError\";\nimport { fromImdsCredentials, isImdsCredentials } from \"./remoteProvider/ImdsCredentials\";\nimport { providerConfigFromInit } from \"./remoteProvider/RemoteProviderInit\";\nimport { httpRequest } from \"./remoteProvider/httpRequest\";\nimport { retry } from \"./remoteProvider/retry\";\nimport { getInstanceMetadataEndpoint } from \"./utils/getInstanceMetadataEndpoint\";\nimport { staticStabilityProvider } from \"./utils/staticStabilityProvider\";\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nconst PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nconst X_AWS_EC2_METADATA_TOKEN = \"x-aws-ec2-metadata-token\";\nexport const fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });\nconst getInstanceMetadataProvider = (init = {}) => {\n let disableFetchToken = false;\n const { logger, profile } = init;\n const { timeout, maxRetries } = providerConfigFromInit(init);\n const getCredentials = async (maxRetries, options) => {\n const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;\n if (isImdsV1Fallback) {\n let fallbackBlockedFromProfile = false;\n let fallbackBlockedFromProcessEnv = false;\n const configValue = await loadConfig({\n environmentVariableSelector: (env) => {\n const envValue = env[AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProcessEnv = !!envValue && envValue !== \"false\";\n if (envValue === undefined) {\n throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });\n }\n return fallbackBlockedFromProcessEnv;\n },\n configFileSelector: (profile) => {\n const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProfile = !!profileValue && profileValue !== \"false\";\n return fallbackBlockedFromProfile;\n },\n default: false,\n }, {\n profile,\n })();\n if (init.ec2MetadataV1Disabled || configValue) {\n const causes = [];\n if (init.ec2MetadataV1Disabled)\n causes.push(\"credential provider initialization (runtime option ec2MetadataV1Disabled)\");\n if (fallbackBlockedFromProfile)\n causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);\n if (fallbackBlockedFromProcessEnv)\n causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);\n throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(\", \")}].`);\n }\n }\n const imdsProfile = (await retry(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return retry(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(imdsProfile, options, init);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await getInstanceMetadataEndpoint();\n if (disableFetchToken) {\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (no token fetch)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if (error?.statusCode === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (initial)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n [X_AWS_EC2_METADATA_TOKEN]: token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => httpRequest({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options, init) => {\n const credentialsResponse = JSON.parse((await httpRequest({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!isImdsCredentials(credentialsResponse)) {\n throw new CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credentialsResponse);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nexport class InstanceMetadataV1FallbackError extends CredentialsProviderError {\n tryNextLink;\n name = \"InstanceMetadataV1FallbackError\";\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);\n }\n}\n",
"import { loadConfig } from \"@smithy/core/config\";\nimport { parseUrl } from \"@smithy/core/protocols\";\nimport { Endpoint as InstanceMetadataEndpoint } from \"../config/Endpoint\";\nimport { ENDPOINT_CONFIG_OPTIONS } from \"../config/EndpointConfigOptions\";\nimport { EndpointMode } from \"../config/EndpointMode\";\nimport { ENDPOINT_MODE_CONFIG_OPTIONS, } from \"../config/EndpointModeConfigOptions\";\nexport const getInstanceMetadataEndpoint = async () => parseUrl((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nconst getFromEndpointConfig = async () => loadConfig(ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode.IPv4:\n return InstanceMetadataEndpoint.IPv4;\n case EndpointMode.IPv6:\n return InstanceMetadataEndpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);\n }\n};\n",
"export var Endpoint;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(Endpoint || (Endpoint = {}));\n",
"export const ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nexport const CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nexport const ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n",
"export var EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode || (EndpointMode = {}));\n",
"import { EndpointMode } from \"./EndpointMode\";\nexport const ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nexport const CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nexport const ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode.IPv4,\n};\n",
"const STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nexport const getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n `credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: ` +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = credentials.originalExpiration ?? credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\n",
"import { getExtendedInstanceMetadataCredentials } from \"./getExtendedInstanceMetadataCredentials\";\nexport const staticStabilityProvider = (provider, options = {}) => {\n const logger = options?.logger || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = getExtendedInstanceMetadataCredentials(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\n"
],
"mappings": "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",
"debugId": "EEC88F4CB7E17AC264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703090000_reset_v2_event_rename_sweep.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703090000_reset_v2_event_rename_sweep\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n // `created` column is added by the generated 20260703181610_event_created_column\n // migration, which runs after this wipe (NOT NULL without default is safe on the\n // emptied table).\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,6CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAIhD,EAEL",
"debugId": "D9D526262A65B7D164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+core@0.4.3+2240c214a0f33214/node_modules/@opentui/core/testing.js"],
"sourcesContent": [
"import {\n ANSI,\n CliRenderer\n} from \"./index-xt9f071j.js\";\nimport {\n SystemClock,\n TreeSitterClient\n} from \"./index-d5xqskty.js\";\n\n// src/testing/mock-keys.ts\nimport { Buffer as Buffer2 } from \"node:buffer\";\nfunction pasteBytes(text) {\n return Uint8Array.from(Buffer2.from(text));\n}\nvar KeyCodes = {\n RETURN: \"\\r\",\n LINEFEED: `\n`,\n TAB: \"\\t\",\n BACKSPACE: \"\\b\",\n DELETE: \"\\x1B[3~\",\n HOME: \"\\x1B[H\",\n END: \"\\x1B[F\",\n ESCAPE: \"\\x1B\",\n ARROW_UP: \"\\x1B[A\",\n ARROW_DOWN: \"\\x1B[B\",\n ARROW_RIGHT: \"\\x1B[C\",\n ARROW_LEFT: \"\\x1B[D\",\n F1: \"\\x1BOP\",\n F2: \"\\x1BOQ\",\n F3: \"\\x1BOR\",\n F4: \"\\x1BOS\",\n F5: \"\\x1B[15~\",\n F6: \"\\x1B[17~\",\n F7: \"\\x1B[18~\",\n F8: \"\\x1B[19~\",\n F9: \"\\x1B[20~\",\n F10: \"\\x1B[21~\",\n F11: \"\\x1B[23~\",\n F12: \"\\x1B[24~\"\n};\nvar kittyKeyCodeMap = {\n escape: 27,\n tab: 9,\n return: 13,\n backspace: 127,\n insert: 57348,\n delete: 57349,\n left: 57350,\n right: 57351,\n up: 57352,\n down: 57353,\n pageup: 57354,\n pagedown: 57355,\n home: 57356,\n end: 57357,\n f1: 57364,\n f2: 57365,\n f3: 57366,\n f4: 57367,\n f5: 57368,\n f6: 57369,\n f7: 57370,\n f8: 57371,\n f9: 57372,\n f10: 57373,\n f11: 57374,\n f12: 57375\n};\nfunction encodeKittySequence(codepoint, modifiers) {\n let modMask = 0;\n if (modifiers?.shift)\n modMask |= 1;\n if (modifiers?.meta)\n modMask |= 2;\n if (modifiers?.ctrl)\n modMask |= 4;\n if (modifiers?.super)\n modMask |= 8;\n if (modifiers?.hyper)\n modMask |= 16;\n if (modMask === 0) {\n return `\\x1B[${codepoint}u`;\n } else {\n return `\\x1B[${codepoint};${modMask + 1}u`;\n }\n}\nfunction encodeModifyOtherKeysSequence(charCode, modifiers) {\n let modMask = 0;\n if (modifiers?.shift)\n modMask |= 1;\n if (modifiers?.meta)\n modMask |= 2;\n if (modifiers?.ctrl)\n modMask |= 4;\n if (modifiers?.super)\n modMask |= 8;\n if (modifiers?.hyper)\n modMask |= 16;\n if (modMask === 0) {\n return String.fromCharCode(charCode);\n }\n return `\\x1B[27;${modMask + 1};${charCode}~`;\n}\nfunction resolveKeyInput(key) {\n let keyValue;\n let keyName;\n if (typeof key === \"string\") {\n if (key in KeyCodes) {\n keyValue = KeyCodes[key];\n keyName = key.toLowerCase();\n } else {\n keyValue = key;\n keyName = undefined;\n }\n } else {\n keyValue = KeyCodes[key];\n if (!keyValue) {\n throw new Error(`Unknown key: ${key}`);\n }\n keyName = String(key).toLowerCase();\n }\n return { keyValue, keyName };\n}\nfunction createMockKeys(renderer, options) {\n const useKittyKeyboard = options?.kittyKeyboard ?? false;\n const useOtherModifiersMode = options?.otherModifiersMode ?? false;\n const effectiveOtherModifiersMode = useOtherModifiersMode && !useKittyKeyboard;\n const pressKeys = async (keys, delayMs = 0) => {\n for (const key of keys) {\n const { keyValue: keyCode } = resolveKeyInput(key);\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n };\n const pressKey = (key, modifiers) => {\n if (useKittyKeyboard) {\n let { keyValue, keyName } = resolveKeyInput(key);\n const valueToKeyNameMap = {\n \"\\b\": \"backspace\",\n \"\\r\": \"return\",\n \"\\n\": \"return\",\n \"\\t\": \"tab\",\n \"\\x1B\": \"escape\",\n \"\\x1B[A\": \"up\",\n \"\\x1B[B\": \"down\",\n \"\\x1B[C\": \"right\",\n \"\\x1B[D\": \"left\",\n \"\\x1B[H\": \"home\",\n \"\\x1B[F\": \"end\",\n \"\\x1B[3~\": \"delete\"\n };\n if (keyValue && valueToKeyNameMap[keyValue]) {\n keyName = valueToKeyNameMap[keyValue];\n }\n if (keyName && keyName.startsWith(\"arrow_\")) {\n keyName = keyName.substring(6);\n }\n if (keyName && kittyKeyCodeMap[keyName]) {\n const kittyCode = kittyKeyCodeMap[keyName];\n const sequence = encodeKittySequence(kittyCode, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n if (keyValue && keyValue.length === 1 && !keyValue.startsWith(\"\\x1B\")) {\n const codepoint = keyValue.codePointAt(0);\n if (codepoint) {\n const sequence = encodeKittySequence(codepoint, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n }\n }\n if (effectiveOtherModifiersMode && modifiers) {\n let { keyValue, keyName } = resolveKeyInput(key);\n const valueToCharCodeMap = {\n \"\\b\": 127,\n \"\\r\": 13,\n \"\\n\": 13,\n \"\\t\": 9,\n \"\\x1B\": 27,\n \" \": 32\n };\n let charCode;\n if (keyValue && valueToCharCodeMap[keyValue] !== undefined) {\n charCode = valueToCharCodeMap[keyValue];\n } else if (keyValue && keyValue.length === 1 && !keyValue.startsWith(\"\\x1B\")) {\n charCode = keyValue.charCodeAt(0);\n }\n if (charCode !== undefined) {\n const sequence = encodeModifyOtherKeysSequence(charCode, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n }\n let keyCode = resolveKeyInput(key).keyValue;\n if (modifiers) {\n if (keyCode.startsWith(\"\\x1B[\") && keyCode.length > 2) {\n const modifier = 1 + (modifiers.shift ? 1 : 0) + (modifiers.meta ? 2 : 0) + (modifiers.ctrl ? 4 : 0) + (modifiers.super ? 8 : 0) + (modifiers.hyper ? 16 : 0);\n if (modifier > 1) {\n const tildeMatch = keyCode.match(/^\\x1b\\[(\\d+)~$/);\n if (tildeMatch) {\n keyCode = `\\x1B[${tildeMatch[1]};${modifier}~`;\n } else {\n const ending = keyCode.slice(-1);\n keyCode = `\\x1B[1;${modifier}${ending}`;\n }\n }\n } else if (keyCode.length === 1) {\n let char = keyCode;\n if (char === \"\\t\" && modifiers.shift) {\n keyCode = modifiers.meta ? \"\\x1B\\x1B[Z\" : \"\\x1B[Z\";\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n return;\n }\n if (char === \"\\b\" && (modifiers.ctrl || modifiers.super || modifiers.hyper)) {\n const modifier = 1 + (modifiers.shift ? 1 : 0) + (modifiers.meta ? 2 : 0) + (modifiers.ctrl ? 4 : 0) + (modifiers.super ? 8 : 0) + (modifiers.hyper ? 16 : 0);\n keyCode = `\\x1B[27;${modifier};127~`;\n } else if (modifiers.ctrl) {\n if (char >= \"a\" && char <= \"z\") {\n keyCode = String.fromCharCode(char.charCodeAt(0) - 96);\n } else if (char >= \"A\" && char <= \"Z\") {\n keyCode = String.fromCharCode(char.charCodeAt(0) - 64);\n } else {\n const specialCtrlMap = {\n \"[\": \"\\x1B\",\n \"\\\\\": \"\\x1C\",\n \"]\": \"\\x1D\",\n \"^\": \"\\x1E\",\n _: \"\\x1F\",\n \"?\": \"\",\n \"/\": \"\\x1F\",\n \"-\": \"\\x1F\",\n \".\": \"\\x1E\",\n \",\": \"\\x1C\",\n \"@\": \"\\x00\",\n \" \": \"\\x00\"\n };\n if (char in specialCtrlMap) {\n keyCode = specialCtrlMap[char];\n }\n }\n if (modifiers.meta) {\n keyCode = `\\x1B${keyCode}`;\n }\n } else {\n if (modifiers.shift && char >= \"a\" && char <= \"z\") {\n char = char.toUpperCase();\n }\n if (modifiers.meta) {\n keyCode = `\\x1B${char}`;\n } else {\n keyCode = char;\n }\n }\n } else if (modifiers.meta && !keyCode.startsWith(\"\\x1B\")) {\n keyCode = `\\x1B${keyCode}`;\n }\n }\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n };\n const typeText = async (text, delayMs = 0) => {\n const keys = text.split(\"\");\n await pressKeys(keys, delayMs);\n };\n const pressReturn = (modifiers) => {\n pressKey(KeyCodes.RETURN, modifiers);\n };\n const pressEscape = (modifiers) => {\n pressKey(KeyCodes.ESCAPE, modifiers);\n };\n const pressTab = (modifiers) => {\n pressKey(KeyCodes.TAB, modifiers);\n };\n const pressBackspace = (modifiers) => {\n pressKey(KeyCodes.BACKSPACE, modifiers);\n };\n const pressArrow = (direction, modifiers) => {\n const keyMap = {\n up: KeyCodes.ARROW_UP,\n down: KeyCodes.ARROW_DOWN,\n left: KeyCodes.ARROW_LEFT,\n right: KeyCodes.ARROW_RIGHT\n };\n pressKey(keyMap[direction], modifiers);\n };\n const pressCtrlC = () => {\n pressKey(\"c\", { ctrl: true });\n };\n const pasteBracketedText = (text) => {\n return pressKeys([ANSI.bracketedPasteStart, text, ANSI.bracketedPasteEnd]);\n };\n return {\n pressKeys,\n pressKey,\n typeText,\n pressEnter: pressReturn,\n pressEscape,\n pressTab,\n pressBackspace,\n pressArrow,\n pressCtrlC,\n pasteBracketedText\n };\n}\n\n// src/testing/mock-mouse.ts\nvar MouseButtons = {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n WHEEL_UP: 64,\n WHEEL_DOWN: 65,\n WHEEL_LEFT: 66,\n WHEEL_RIGHT: 67\n};\nfunction createMockMouse(renderer) {\n let currentPosition = { x: 0, y: 0 };\n let buttonsPressed = new Set;\n const generateMouseEvent = (type, x, y, button = MouseButtons.LEFT, modifiers = {}) => {\n let buttonCode = button;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n switch (type) {\n case \"move\":\n buttonCode = 32 | 3;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n break;\n case \"drag\":\n buttonCode = (buttonsPressed.size > 0 ? Array.from(buttonsPressed)[0] : button) | 32;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n break;\n case \"scroll\":\n break;\n }\n const ansiX = x + 1;\n const ansiY = y + 1;\n let pressRelease = \"M\";\n if (type === \"up\" || type === \"move\" || type === \"drag\") {\n pressRelease = \"m\";\n }\n return `\\x1B[<${buttonCode};${ansiX};${ansiY}${pressRelease}`;\n };\n const emitMouseEvent = async (type, x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n const eventSequence = generateMouseEvent(type, x, y, button, modifiers);\n renderer.stdin.emit(\"data\", Buffer.from(eventSequence));\n currentPosition = { x, y };\n if (type === \"down\" && button < 64) {\n buttonsPressed.add(button);\n } else if (type === \"up\") {\n buttonsPressed.delete(button);\n }\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n };\n const moveTo = async (x, y, options = {}) => {\n const { button = MouseButtons.LEFT, delayMs = 0, modifiers = {} } = options;\n if (buttonsPressed.size > 0) {\n await emitMouseEvent(\"drag\", x, y, Array.from(buttonsPressed)[0], { modifiers, delayMs });\n } else {\n await emitMouseEvent(\"move\", x, y, button, { modifiers, delayMs });\n }\n currentPosition = { x, y };\n };\n const click = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await emitMouseEvent(\"down\", x, y, button, { modifiers, delayMs });\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n await emitMouseEvent(\"up\", x, y, button, { modifiers, delayMs });\n };\n const doubleClick = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await click(x, y, button, { modifiers, delayMs });\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n await click(x, y, button, { modifiers, delayMs });\n };\n const pressDown = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n await emitMouseEvent(\"down\", x, y, button, { modifiers, delayMs });\n };\n const release = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n await emitMouseEvent(\"up\", x, y, button, { modifiers, delayMs });\n };\n const drag = async (startX, startY, endX, endY, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await pressDown(startX, startY, button, { modifiers });\n const steps = 5;\n const dx = (endX - startX) / steps;\n const dy = (endY - startY) / steps;\n for (let i = 1;i <= steps; i++) {\n const currentX = Math.round(startX + dx * i);\n const currentY = Math.round(startY + dy * i);\n await emitMouseEvent(\"drag\", currentX, currentY, button, { modifiers, delayMs });\n }\n await release(endX, endY, button, { modifiers });\n };\n const scroll = async (x, y, direction, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n let button;\n switch (direction) {\n case \"up\":\n button = MouseButtons.WHEEL_UP;\n break;\n case \"down\":\n button = MouseButtons.WHEEL_DOWN;\n break;\n case \"left\":\n button = MouseButtons.WHEEL_LEFT;\n break;\n case \"right\":\n button = MouseButtons.WHEEL_RIGHT;\n break;\n }\n await emitMouseEvent(\"scroll\", x, y, button, { modifiers, delayMs });\n };\n const getCurrentPosition = () => {\n return { ...currentPosition };\n };\n const getPressedButtons = () => {\n return Array.from(buttonsPressed);\n };\n return {\n moveTo,\n click,\n doubleClick,\n pressDown,\n release,\n drag,\n scroll,\n getCurrentPosition,\n getPressedButtons,\n emitMouseEvent\n };\n}\n\n// src/testing/test-streams.ts\nimport { Readable, Writable } from \"stream\";\n\nclass TestWriteStream extends Writable {\n isTTY = true;\n columns;\n rows;\n constructor(columns = 80, rows = 24) {\n super();\n this.columns = columns;\n this.rows = rows;\n }\n _write(_chunk, _encoding, callback) {\n callback();\n }\n getColorDepth() {\n return 24;\n }\n}\nfunction createTestStdin() {\n return new Readable({ read() {} });\n}\nfunction createTestStdout(columns = 80, rows = 24) {\n return new TestWriteStream(columns, rows);\n}\n\n// src/testing/test-renderer.ts\nvar decoder = new TextDecoder;\nvar DEFAULT_MAX_PASSES = 20;\nvar DEFAULT_MAX_VISUAL_IDLE_FRAMES = 20;\nvar DEFAULT_QUIET_FRAMES = 1;\nasync function drainImmediateWork() {\n await Promise.resolve();\n await new Promise((resolve) => process.nextTick(resolve));\n await Promise.resolve();\n}\nfunction normalizePositiveInteger(value, fallback) {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n return fallback;\n }\n return Math.floor(value);\n}\nfunction createWaitError(renderer, message, frame) {\n const stats = renderer.getStats();\n const scheduler = renderer.getSchedulerState();\n const details = [\n message,\n `frameId: ${renderer.frameId}`,\n `nativeFrameCount: ${stats.nativeFrameCount}`,\n `cellsUpdated: ${stats.cellsUpdated}`,\n `isRunning: ${scheduler.isRunning}`,\n `isRendering: ${scheduler.isRendering}`,\n `hasScheduledRender: ${scheduler.hasScheduledRender}`\n ];\n if (frame !== undefined) {\n details.push(`lastFrame:\n${frame}`);\n }\n return new Error(details.join(`\n`));\n}\n\nclass TestExternalOutputRecorder {\n commits = [];\n constructor(renderer) {\n renderer.on(\"external_output\" /* EXTERNAL_OUTPUT */, this.record);\n renderer.once(\"destroy\" /* DESTROY */, () => {\n renderer.off(\"external_output\" /* EXTERNAL_OUTPUT */, this.record);\n });\n }\n record = (event) => {\n const raw = decoder.decode(event.snapshot.getRealCharBytes(false));\n const rows = Array.from({ length: event.snapshot.height }, (_, index) => raw.slice(index * event.snapshot.width, (index + 1) * event.snapshot.width).trimEnd());\n this.commits.push({\n text: rows.join(`\n`),\n rows,\n width: event.snapshot.width,\n height: event.snapshot.height,\n rowColumns: event.rowColumns,\n startOnNewLine: event.startOnNewLine,\n trailingNewline: event.trailingNewline\n });\n };\n take() {\n const commits = this.commits;\n this.commits = [];\n return commits;\n }\n takeText() {\n return this.take().flatMap((commit) => commit.rows).join(`\n`);\n }\n clear() {\n this.commits = [];\n }\n}\nfunction waitForNextFrameOrIdle(renderer) {\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return Promise.resolve(null);\n }\n return new Promise((resolve) => {\n let settled = false;\n const cleanup = () => {\n renderer.off(\"frame\" /* FRAME */, onFrame);\n renderer.off(\"destroy\" /* DESTROY */, onDestroy);\n };\n const finish = (event) => {\n if (settled)\n return;\n settled = true;\n cleanup();\n resolve(event);\n };\n const onFrame = (event) => {\n finish(event);\n };\n const onDestroy = () => {\n finish(null);\n };\n renderer.on(\"frame\" /* FRAME */, onFrame);\n renderer.once(\"destroy\" /* DESTROY */, onDestroy);\n if (!scheduler.isRunning) {\n renderer.idle().then(() => finish(null));\n }\n });\n}\nasync function createTestRenderer(options) {\n const useKittyKeyboard = options.kittyKeyboard ? { events: true } : options.useKittyKeyboard;\n const renderer = await setupTestRenderer({\n ...options,\n useKittyKeyboard,\n screenMode: options.screenMode ?? \"main-screen\",\n footerHeight: options.footerHeight ?? 12,\n consoleMode: options.consoleMode ?? \"disabled\",\n externalOutputMode: options.externalOutputMode ?? \"passthrough\"\n });\n const externalOutput = new TestExternalOutputRecorder(renderer);\n const mockInput = createMockKeys(renderer, {\n kittyKeyboard: options.kittyKeyboard,\n otherModifiersMode: options.otherModifiersMode\n });\n const mockMouse = createMockMouse(renderer);\n const renderOnce = async () => {\n const feed = renderer._feed;\n if (feed?.isBackpressured()) {\n await feed.idle();\n }\n await renderer.loop();\n };\n const captureCharFrame = () => {\n const currentBuffer = renderer.currentRenderBuffer;\n const frameBytes = currentBuffer.getRealCharBytes(true);\n return decoder.decode(frameBytes);\n };\n const waitForVisualIdle = async (waitOptions = {}) => {\n const maxFrames = normalizePositiveInteger(waitOptions.maxFrames, DEFAULT_MAX_VISUAL_IDLE_FRAMES);\n const quietFrames = normalizePositiveInteger(waitOptions.quietFrames, DEFAULT_QUIET_FRAMES);\n let consecutiveQuietFrames = 0;\n for (let frame = 0;frame < maxFrames; frame++) {\n await drainImmediateWork();\n const scheduler2 = renderer.getSchedulerState();\n if (!scheduler2.isRunning && !scheduler2.isRendering && !scheduler2.hasScheduledRender) {\n return;\n }\n const event = await waitForNextFrameOrIdle(renderer);\n if (!event) {\n return;\n }\n if (renderer.getNativeStats().cellsUpdated === 0) {\n consecutiveQuietFrames++;\n if (consecutiveQuietFrames >= quietFrames) {\n return;\n }\n } else {\n consecutiveQuietFrames = 0;\n }\n }\n await drainImmediateWork();\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return;\n }\n throw createWaitError(renderer, `Timed out waiting for visual idle after ${maxFrames} frames`);\n };\n const flush = async (flushOptions = {}) => {\n await waitForVisualIdle({ maxFrames: normalizePositiveInteger(flushOptions.maxPasses, DEFAULT_MAX_PASSES) });\n };\n const waitFor = async (predicate, waitOptions = {}) => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES);\n for (let pass = 0;pass <= maxPasses; pass++) {\n await drainImmediateWork();\n if (await predicate()) {\n return;\n }\n if (pass === maxPasses) {\n break;\n }\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break;\n }\n await waitForNextFrameOrIdle(renderer);\n }\n throw createWaitError(renderer, `Timed out waiting for predicate after ${maxPasses} passes`);\n };\n const waitForFrame = async (predicate, waitOptions = {}) => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES);\n let frame = captureCharFrame();\n for (let pass = 0;pass <= maxPasses; pass++) {\n await drainImmediateWork();\n frame = captureCharFrame();\n if (await predicate(frame)) {\n return frame;\n }\n if (pass === maxPasses) {\n break;\n }\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break;\n }\n await waitForNextFrameOrIdle(renderer);\n }\n frame = captureCharFrame();\n throw createWaitError(renderer, `Timed out waiting for frame predicate after ${maxPasses} passes`, frame);\n };\n return {\n renderer,\n mockInput,\n mockMouse,\n renderOnce,\n flush,\n waitFor,\n waitForFrame,\n waitForVisualIdle,\n externalOutput,\n getNativeStats: () => renderer.getNativeStats(),\n captureCharFrame,\n captureSpans: () => {\n const currentBuffer = renderer.currentRenderBuffer;\n const lines = currentBuffer.getSpanLines();\n const cursorState = renderer.getCursorState();\n return {\n cols: currentBuffer.width,\n rows: currentBuffer.height,\n cursor: [cursorState.x, cursorState.y],\n lines\n };\n },\n resize: (width, height) => {\n renderer.processResize(width, height);\n }\n };\n}\nasync function setupTestRenderer(config) {\n const stdin = config.stdin || createTestStdin();\n const width = config.width || config.stdout?.columns || process.stdout.columns || 80;\n const height = config.height || config.stdout?.rows || process.stdout.rows || 24;\n const stdout = config.stdout || createTestStdout(width, height);\n return new CliRenderer(stdin, stdout, width, height, {\n ...config,\n bufferedOutput: config.bufferedOutput ?? \"memory\"\n });\n}\n// src/testing/mock-tree-sitter-client.ts\nclass MockTreeSitterClient extends TreeSitterClient {\n _highlightPromises = [];\n _mockResult = { highlights: [] };\n _autoResolveTimeout;\n _clock;\n constructor(options) {\n super({ dataPath: \"/tmp/mock\" }, { autoStartWorker: false });\n this._autoResolveTimeout = options?.autoResolveTimeout;\n this._clock = options?.clock ?? new SystemClock;\n }\n async destroy() {\n this.resolveAllHighlightOnce();\n await super.destroy();\n }\n async highlightOnce(content, filetype) {\n const { promise, resolve } = Promise.withResolvers();\n let timeout;\n if (this._autoResolveTimeout !== undefined) {\n timeout = this._clock.setTimeout(() => {\n const index = this._highlightPromises.findIndex((p) => p.promise === promise);\n if (index !== -1) {\n resolve(this._mockResult);\n this._highlightPromises.splice(index, 1);\n }\n }, this._autoResolveTimeout);\n }\n this._highlightPromises.push({ promise, resolve, timeout });\n return promise;\n }\n setMockResult(result) {\n this._mockResult = result;\n }\n resolveHighlightOnce(index = 0) {\n if (index >= 0 && index < this._highlightPromises.length) {\n const item = this._highlightPromises[index];\n if (item.timeout) {\n this._clock.clearTimeout(item.timeout);\n }\n item.resolve(this._mockResult);\n this._highlightPromises.splice(index, 1);\n }\n }\n resolveAllHighlightOnce() {\n for (const { resolve, timeout } of this._highlightPromises) {\n if (timeout) {\n this._clock.clearTimeout(timeout);\n }\n resolve(this._mockResult);\n }\n this._highlightPromises = [];\n }\n isHighlighting() {\n return this._highlightPromises.length > 0;\n }\n}\n// src/testing/terminal-capabilities.ts\nfunction createTerminalCapabilities(overrides = {}) {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal\n }\n };\n}\nfunction setRendererCapabilities(renderer, overrides = {}) {\n const capabilities = createTerminalCapabilities(overrides);\n renderer._capabilities = capabilities;\n return capabilities;\n}\n// src/testing/spy.ts\nfunction createSpy() {\n const calls = [];\n const spy = (...args) => {\n calls.push(args);\n };\n spy.calls = calls;\n spy.callCount = () => calls.length;\n spy.calledWith = (...expected) => {\n return calls.some((call) => JSON.stringify(call) === JSON.stringify(expected));\n };\n spy.reset = () => calls.length = 0;\n return spy;\n}\n// src/testing/manual-clock.ts\nfunction compareTimers(left, right) {\n if (left.fireAt !== right.fireAt) {\n return left.fireAt - right.fireAt;\n }\n return left.order - right.order;\n}\n\nclass ManualClock {\n time = 0;\n nextId = 1;\n nextOrder = 0;\n timers = new Map;\n now() {\n return this.time;\n }\n setTime(time) {\n const targetTime = Math.floor(time);\n if (targetTime >= this.time) {\n this.advance(targetTime - this.time);\n return;\n }\n this.time = targetTime;\n }\n setTimeout(fn, delayMs) {\n return this.schedule(fn, delayMs, false);\n }\n clearTimeout(handle) {\n this.timers.delete(Number(handle));\n }\n setInterval(fn, delayMs) {\n return this.schedule(fn, delayMs, true);\n }\n clearInterval(handle) {\n this.clearTimeout(handle);\n }\n advance(delayMs) {\n const targetTime = this.time + Math.max(0, Math.floor(delayMs));\n while (true) {\n const nextTimer = this.peekNextTimer();\n if (!nextTimer || nextTimer.fireAt > targetTime) {\n break;\n }\n this.timers.delete(nextTimer.id);\n this.time = nextTimer.fireAt;\n nextTimer.fn();\n if (nextTimer.repeat && !this.timers.has(nextTimer.id)) {\n this.timers.set(nextTimer.id, {\n ...nextTimer,\n fireAt: this.time + nextTimer.delayMs,\n order: this.nextOrder++\n });\n }\n }\n this.time = targetTime;\n }\n runAll() {\n while (true) {\n const nextTimer = this.peekNextTimer();\n if (!nextTimer) {\n return;\n }\n this.advance(nextTimer.fireAt - this.time);\n }\n }\n schedule(fn, delayMs, repeat) {\n const id = this.nextId++;\n const normalizedDelay = Math.max(0, Math.floor(delayMs));\n this.timers.set(id, {\n id,\n fireAt: this.time + normalizedDelay,\n order: this.nextOrder++,\n delayMs: normalizedDelay,\n repeat,\n fn\n });\n return id;\n }\n peekNextTimer() {\n let nextTimer = null;\n for (const timer of this.timers.values()) {\n if (!nextTimer || compareTimers(timer, nextTimer) < 0) {\n nextTimer = timer;\n }\n }\n return nextTimer;\n }\n}\n// src/testing/test-recorder.ts\nclass TestRecorder {\n renderer;\n frames = [];\n recording = false;\n frameNumber = 0;\n startTime = 0;\n decoder = new TextDecoder;\n recordBuffers;\n now;\n onFrame = () => {\n if (!this.recording)\n return;\n this.captureFrame();\n };\n constructor(renderer, options) {\n this.renderer = renderer;\n this.recordBuffers = options?.recordBuffers || {};\n this.now = options?.now ?? (() => performance.now());\n }\n rec() {\n if (this.recording) {\n return;\n }\n this.recording = true;\n this.frames = [];\n this.frameNumber = 0;\n this.startTime = this.now();\n this.renderer.on(\"frame\" /* FRAME */, this.onFrame);\n }\n stop() {\n if (!this.recording) {\n return;\n }\n this.recording = false;\n this.renderer.off(\"frame\" /* FRAME */, this.onFrame);\n }\n get recordedFrames() {\n return [...this.frames];\n }\n clear() {\n this.frames = [];\n this.frameNumber = 0;\n }\n get isRecording() {\n return this.recording;\n }\n captureFrame() {\n const currentBuffer = this.renderer.currentRenderBuffer;\n const frameBytes = currentBuffer.getRealCharBytes(true);\n const frame = this.decoder.decode(frameBytes);\n const recordedFrame = {\n frame,\n timestamp: this.now() - this.startTime,\n frameNumber: this.frameNumber++\n };\n if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {\n const buffers = currentBuffer.buffers;\n recordedFrame.buffers = {};\n if (this.recordBuffers.fg) {\n recordedFrame.buffers.fg = new Uint16Array(buffers.fg);\n }\n if (this.recordBuffers.bg) {\n recordedFrame.buffers.bg = new Uint16Array(buffers.bg);\n }\n if (this.recordBuffers.attributes) {\n recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes);\n }\n }\n this.frames.push(recordedFrame);\n }\n}\nexport {\n setRendererCapabilities,\n pasteBytes,\n createTestRenderer,\n createTerminalCapabilities,\n createSpy,\n createMockMouse,\n createMockKeys,\n TestRecorder,\n MouseButtons,\n MockTreeSitterClient,\n ManualClock,\n KeyCodes\n};\n\n//# debugId=08D19767EB8430A064756E2164756E21\n//# sourceMappingURL=testing.js.map\n"
],
"mappings": "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",
"debugId": "798B40BB6DC1AA4564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+provider@3.0.10/node_modules/@ai-sdk/provider/dist/index.mjs"],
"sourcesContent": [
"// src/errors/ai-sdk-error.ts\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name14,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name14;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker15) {\n const markerSymbol = Symbol.for(marker15);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\n\n// src/errors/api-call-error.ts\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\n\n// src/errors/empty-response-body-error.ts\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\n\n// src/errors/get-error-message.ts\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\n\n// src/errors/invalid-argument-error.ts\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\n\n// src/errors/invalid-prompt-error.ts\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5, _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\n\n// src/errors/invalid-response-data-error.ts\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\n\n// src/errors/json-parse-error.ts\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\n\n// src/errors/load-api-key-error.ts\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8, _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\n\n// src/errors/load-setting-error.ts\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9, _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\n\n// src/errors/no-content-generated-error.ts\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10, _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\n\n// src/errors/no-such-model-error.ts\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11, _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\n\n// src/errors/too-many-embedding-values-for-call-error.ts\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12, _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\n\n// src/errors/type-validation-error.ts\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13, _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a15, _b15, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a15 = cause.context) == null ? void 0 : _a15.field) === (context == null ? void 0 : context.field) && ((_b15 = cause.context) == null ? void 0 : _b15.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\n\n// src/errors/unsupported-functionality-error.ts\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14, _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// src/json-value/is-json.ts\nfunction isJSONValue(value) {\n if (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n }\n return false;\n}\nfunction isJSONArray(value) {\n return Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n return value != null && typeof value === \"object\" && Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n}\nexport {\n AISDKError,\n APICallError,\n EmptyResponseBodyError,\n InvalidArgumentError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n LoadSettingError,\n NoContentGeneratedError,\n NoSuchModelError,\n TooManyEmbeddingValuesForCallError,\n TypeValidationError,\n UnsupportedFunctionalityError,\n getErrorMessage,\n isJSONArray,\n isJSONObject,\n isJSONValue\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "26302F19BD283A7464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/constants.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js"],
"sourcesContent": [
"import { CredentialsProviderError, getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/core/config\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n};\n",
"export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError, getSSOTokenFromFile } from \"@smithy/core/config\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({\n profile,\n filepath,\n configFilepath,\n ignoreCache,\n })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso.js\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n",
"import { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, TokenProviderError, } from \"@smithy/core/config\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTime = new Date(0);\nexport const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n",
"export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n",
"export const getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: coalesce(\"logger\"),\n userAgentAppId: coalesce(\"userAgentAppId\"),\n }));\n return ssoOidcClient;\n};\n",
"import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n",
"import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n",
"import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n",
"import { getSSOTokenFilepath } from \"@smithy/core/config\";\nimport { promises as fsPromises } from \"node:fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n"
],
"mappings": ";4JAAA,oBCAO,SAAM,EAAe,CAAC,IAAQ,IAChC,OAAO,EAAI,gBAAkB,UAC1B,OAAO,EAAI,iBAAmB,UAC9B,OAAO,EAAI,cAAgB,UAC3B,OAAO,EAAI,aAAe,UAC1B,OAAO,EAAI,gBAAkB,UCLrC,gBCAA,eCAO,IAAM,EAAmB,OACnB,EAAkB,kFCDxB,IAAM,EAAmB,MAAO,EAAW,EAAO,CAAC,EAAG,IAAuB,CAChF,IAAQ,iBAAkB,KAAa,0CACjC,EAAW,CAAC,IAAS,EAAK,eAAe,IAAS,EAAK,qBAAqB,IAAS,IAAqB,GAMhH,OALsB,IAAI,EAAc,OAAO,OAAO,CAAC,EAAG,EAAK,cAAgB,CAAC,EAAG,CAC/E,OAAQ,GAAa,EAAK,cAAc,OACxC,OAAQ,EAAS,QAAQ,EACzB,eAAgB,EAAS,gBAAgB,CAC7C,CAAC,CAAC,GCNC,IAAM,EAAqB,MAAO,EAAU,EAAW,EAAO,CAAC,EAAG,IAAuB,CAC5F,IAAQ,sBAAuB,KAAa,0CAE5C,OADsB,MAAM,EAAiB,EAAW,EAAM,CAAkB,GAC3D,KAAK,IAAI,EAAmB,CAC7C,SAAU,EAAS,SACnB,aAAc,EAAS,aACvB,aAAc,EAAS,aACvB,UAAW,eACf,CAAC,CAAC,GCTN,eAEO,IAAM,EAAsB,CAAC,IAAU,CAC1C,GAAI,EAAM,YAAc,EAAM,WAAW,QAAQ,EAAI,KAAK,IAAI,EAC1D,MAAM,IAAI,qBAAmB,qBAAqB,IAAmB,EAAK,GCJlF,eAEO,IAAM,EAAmB,CAAC,EAAK,EAAO,EAAa,KAAU,CAChE,GAAI,OAAO,EAAU,IACjB,MAAM,IAAI,qBAAmB,0BAA0B,kBAAoB,EAAa,mBAAqB,OAAO,IAAmB,EAAK,GCJpJ,eACA,mBAAS,WACT,IAAQ,aAAc,EACT,EAAsB,CAAC,EAAI,IAAa,CACjD,IAAM,EAAgB,sBAAoB,CAAE,EACtC,EAAc,KAAK,UAAU,EAAU,KAAM,CAAC,EACpD,OAAO,EAAU,EAAe,CAAW,GNA/C,IAAM,EAAyB,IAAI,KAAK,CAAC,EAC5B,EAAU,CAAC,EAAO,CAAC,IAAM,OAAS,sBAAuB,CAAC,IAAM,CACzE,EAAK,QAAQ,MAAM,oCAAoC,EACvD,IAAM,EAAW,MAAM,kBAAgB,CAAI,EACrC,EAAc,iBAAe,CAC/B,QAAS,EAAK,SAAW,GAAoB,OACjD,CAAC,EACK,EAAU,EAAS,GACzB,GAAI,CAAC,EACD,MAAM,IAAI,qBAAmB,YAAY,oDAA+D,EAAK,EAE5G,QAAI,CAAC,EAAQ,YACd,MAAM,IAAI,qBAAmB,YAAY,gDAA0D,EAEvG,IAAM,EAAiB,EAAQ,YAEzB,GADc,MAAM,qBAAmB,CAAI,GAClB,GAC/B,GAAI,CAAC,EACD,MAAM,IAAI,qBAAmB,gBAAgB,oDAAkE,EAAK,EAExH,QAAW,IAAyB,CAAC,gBAAiB,YAAY,EAC9D,GAAI,CAAC,EAAW,GACZ,MAAM,IAAI,qBAAmB,gBAAgB,oCAAiD,MAA2B,EAAK,EAGtI,IAA+B,cAAzB,EACuB,WAAvB,GAAY,EACd,EACJ,GAAI,CACA,EAAW,MAAM,sBAAoB,CAAc,EAEvD,MAAO,EAAG,CACN,MAAM,IAAI,qBAAmB,iDAAiD,kCAA4C,IAAmB,EAAK,EAEtJ,EAAiB,cAAe,EAAS,WAAW,EACpD,EAAiB,YAAa,EAAS,SAAS,EAChD,IAAQ,cAAa,aAAc,EAC7B,EAAgB,CAAE,MAAO,EAAa,WAAY,IAAI,KAAK,CAAS,CAAE,EAC5E,GAAI,EAAc,WAAW,QAAQ,EAAI,KAAK,IAAI,EAAI,EAClD,OAAO,EAEX,GAAI,KAAK,IAAI,EAAI,EAAuB,QAAQ,EAAI,MAEhD,OADA,EAAoB,CAAa,EAC1B,EAEX,EAAiB,WAAY,EAAS,SAAU,EAAI,EACpD,EAAiB,eAAgB,EAAS,aAAc,EAAI,EAC5D,EAAiB,eAAgB,EAAS,aAAc,EAAI,EAC5D,GAAI,CACA,EAAuB,QAAQ,KAAK,IAAI,CAAC,EACzC,IAAM,EAAkB,MAAM,EAAmB,EAAU,EAAW,EAAM,CAAkB,EAC9F,EAAiB,cAAe,EAAgB,WAAW,EAC3D,EAAiB,YAAa,EAAgB,SAAS,EACvD,IAAM,EAAqB,IAAI,KAAK,KAAK,IAAI,EAAI,EAAgB,UAAY,IAAI,EACjF,GAAI,CACA,MAAM,EAAoB,EAAgB,IACnC,EACH,YAAa,EAAgB,YAC7B,UAAW,EAAmB,YAAY,EAC1C,aAAc,EAAgB,YAClC,CAAC,EAEL,MAAO,EAAO,EAEd,MAAO,CACH,MAAO,EAAgB,YACvB,WAAY,CAChB,EAEJ,MAAO,EAAO,CAEV,OADA,EAAoB,CAAa,EAC1B,ID3Ef,eACM,EAA+B,GACxB,EAAwB,OAAS,cAAa,aAAY,eAAc,YAAW,cAAa,YAAW,eAAc,qBAAoB,qBAAoB,UAAS,WAAU,iBAAgB,cAAa,YAAc,CACxO,IAAI,EACE,EAAiB,gFACvB,GAAI,EACA,GAAI,CACA,IAAM,EAAS,MAAM,EAAoB,CACrC,UACA,WACA,iBACA,aACJ,CAAC,EAAE,EACH,EAAQ,CACJ,YAAa,EAAO,MACpB,UAAW,IAAI,KAAK,EAAO,UAAU,EAAE,YAAY,CACvD,EAEJ,MAAO,EAAG,CACN,MAAM,IAAI,2BAAyB,EAAE,QAAS,CAC1C,YAAa,EACb,QACJ,CAAC,EAIL,QAAI,CACA,EAAQ,MAAM,sBAAoB,CAAW,EAEjD,MAAO,EAAG,CACN,MAAM,IAAI,2BAAyB,yIAA8E,CAC7G,YAAa,EACb,QACJ,CAAC,EAGT,GAAI,IAAI,KAAK,EAAM,SAAS,EAAE,QAAQ,EAAI,KAAK,IAAI,GAAK,EACpD,MAAM,IAAI,2BAAyB,0IAA+E,CAC9G,YAAa,EACb,QACJ,CAAC,EAEL,IAAQ,eAAgB,GAChB,YAAW,6BAA8B,KAAa,0CACxD,EAAM,GACR,IAAI,EAAU,OAAO,OAAO,CAAC,EAAG,GAAgB,CAAC,EAAG,CAChD,OAAQ,GAAc,QAAU,GAAoB,QAAU,GAAoB,OAClF,OAAQ,GAAc,QAAU,EAChC,eAAgB,GAAc,gBAAkB,GAAoB,gBAAkB,GAAoB,cAC9G,CAAC,CAAC,EACF,EACJ,GAAI,CACA,EAAU,MAAM,EAAI,KAAK,IAAI,EAA0B,CACnD,UAAW,EACX,SAAU,EACV,aACJ,CAAC,CAAC,EAEN,MAAO,EAAG,CACN,MAAM,IAAI,2BAAyB,EAAG,CAClC,YAAa,EACb,QACJ,CAAC,EAEL,IAAQ,iBAAmB,cAAa,kBAAiB,eAAc,aAAY,kBAAiB,aAAc,CAAC,GAAO,EAC1H,GAAI,CAAC,GAAe,CAAC,GAAmB,CAAC,GAAgB,CAAC,EACtD,MAAM,IAAI,2BAAyB,+CAAgD,CAC/E,YAAa,EACb,QACJ,CAAC,EAEL,IAAM,EAAc,CAChB,cACA,kBACA,eACA,WAAY,IAAI,KAAK,CAAU,KAC3B,GAAmB,CAAE,iBAAgB,KACrC,GAAa,CAAE,WAAU,CACjC,EACA,GAAI,EACA,uBAAqB,EAAa,kBAAmB,GAAG,EAGxD,4BAAqB,EAAa,yBAA0B,GAAG,EAEnE,OAAO,GQvFX,eACa,EAAqB,CAAC,EAAS,IAAW,CACnD,IAAQ,gBAAe,iBAAgB,aAAY,iBAAkB,EACrE,GAAI,CAAC,GAAiB,CAAC,GAAkB,CAAC,GAAc,CAAC,EACrD,MAAM,IAAI,2BAAyB,iJACwB,OAAO,KAAK,CAAO,EAAE,KAAK,IAAI;AAAA,oFAAyF,CAAE,YAAa,GAAO,QAAO,CAAC,EAEpN,OAAO,GVHJ,IAAM,GAAU,CAAC,EAAO,CAAC,IAAM,OAAS,sBAAuB,CAAC,IAAM,CACzE,EAAK,QAAQ,MAAM,4CAA4C,EAC/D,IAAQ,cAAa,eAAc,YAAW,cAAa,cAAe,GAClE,aAAc,EAChB,EAAc,iBAAe,CAC/B,QAAS,EAAK,SAAW,GAAoB,OACjD,CAAC,EACD,GAAI,CAAC,GAAe,CAAC,GAAgB,CAAC,GAAa,CAAC,GAAe,CAAC,EAAY,CAE5E,IAAM,GADW,MAAM,kBAAgB,CAAI,GAClB,GACzB,GAAI,CAAC,EACD,MAAM,IAAI,2BAAyB,WAAW,mBAA8B,CAAE,OAAQ,EAAK,MAAO,CAAC,EAEvG,GAAI,CAAC,EAAa,CAAO,EACrB,MAAM,IAAI,2BAAyB,WAAW,4CAAuD,CACjG,OAAQ,EAAK,MACjB,CAAC,EAEL,GAAI,GAAS,YAAa,CAEtB,IAAM,GADc,MAAM,qBAAmB,CAAI,GACrB,EAAQ,aAC9B,EAAc,8BAA8B,qBAA+B,EAAQ,cACzF,GAAI,GAAa,IAAc,EAAQ,WACnC,MAAM,IAAI,2BAAyB,yBAA2B,EAAa,CACvE,YAAa,GACb,OAAQ,EAAK,MACjB,CAAC,EAEL,GAAI,GAAe,IAAgB,EAAQ,cACvC,MAAM,IAAI,2BAAyB,4BAA8B,EAAa,CAC1E,YAAa,GACb,OAAQ,EAAK,MACjB,CAAC,EAEL,EAAQ,WAAa,EAAQ,WAC7B,EAAQ,cAAgB,EAAQ,cAEpC,IAAQ,gBAAe,iBAAgB,aAAY,gBAAe,eAAgB,EAAmB,EAAS,EAAK,MAAM,EACzH,OAAO,EAAsB,CACzB,YAAa,EACb,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,EACb,UAAW,EACX,aAAc,EAAK,aACnB,mBAAoB,EAAK,mBACzB,mBAAoB,EAAK,mBACzB,QAAS,EACT,SAAU,EAAK,SACf,eAAgB,EAAK,eACrB,YAAa,EAAK,YAClB,OAAQ,EAAK,MACjB,CAAC,EAEA,QAAI,CAAC,GAAe,CAAC,GAAgB,CAAC,GAAa,CAAC,EACrD,MAAM,IAAI,2BAAyB,+HAC8B,CAAE,YAAa,GAAO,OAAQ,EAAK,MAAO,CAAC,EAG5G,YAAO,EAAsB,CACzB,cACA,aACA,eACA,YACA,cACA,YACA,aAAc,EAAK,aACnB,mBAAoB,EAAK,mBACzB,mBAAoB,EAAK,mBACzB,QAAS,EACT,SAAU,EAAK,SACf,eAAgB,EAAK,eACrB,YAAa,EAAK,YAClB,OAAQ,EAAK,MACjB,CAAC",
"debugId": "359F3484A09C735664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/api.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { Service, type Endpoint } from \"@opencode-ai/client/effect/service\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nconst methods = new Set([\"delete\", \"get\", \"head\", \"options\", \"patch\", \"post\", \"put\"])\n\ntype Operation = {\n operationId?: string\n}\n\ntype OpenApi = {\n paths?: Record<string, Record<string, Operation>>\n}\n\nexport default Runtime.handler(\n Commands.commands.api,\n Effect.fn(\"cli.api\")(function* (input) {\n const server = yield* ServerConnection.resolve({\n server: Option.getOrUndefined(input.server),\n standalone: input.standalone,\n mismatch: \"ignore\",\n })\n const endpoint = server.endpoint\n const params = Option.getOrElse(input.param, () => ({}))\n const request = yield* resolveRequest(endpoint, input.request, params)\n const headers = new Headers(Service.headers(endpoint))\n for (const header of input.header) {\n const index = header.indexOf(\":\")\n if (index < 1) return yield* Effect.fail(new Error(`Invalid header, expected name:value: ${header}`))\n headers.set(header.slice(0, index).trim(), header.slice(index + 1).trim())\n }\n const body = Option.getOrUndefined(input.data)\n if (body !== undefined && !headers.has(\"content-type\")) headers.set(\"content-type\", \"application/json\")\n\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(request.path, endpoint.url), {\n method: request.method,\n headers,\n body,\n }),\n )\n const output = yield* Effect.promise(() => response.text())\n if (output) process.stdout.write(output + (output.endsWith(EOL) ? \"\" : EOL))\n }),\n)\n\nexport function resolveOperation(spec: OpenApi, operationID: string, params: Record<string, string>) {\n for (const [path, operations] of Object.entries(spec.paths ?? {})) {\n for (const [method, operation] of Object.entries(operations)) {\n if (!methods.has(method) || operation.operationId !== operationID) continue\n return { method: method.toUpperCase(), path: interpolate(path, params) }\n }\n }\n throw new Error(`Operation not found: ${operationID}`)\n}\n\nexport function rawRequest(input: readonly string[]) {\n if (input.length !== 2 || !methods.has(input[0].toLowerCase()) || !input[1].startsWith(\"/\")) return\n return { method: input[0].toUpperCase(), path: input[1] }\n}\n\nfunction resolveRequest(endpoint: Endpoint, input: readonly string[], params: Record<string, string>) {\n const raw = rawRequest(input)\n if (raw) return Effect.succeed(raw)\n if (input.length !== 1) return Effect.fail(new Error(\"Expected an operation name or an HTTP method and path\"))\n return Effect.tryPromise(async () => {\n const response = await fetch(new URL(\"/openapi.json\", endpoint.url), { headers: Service.headers(endpoint) })\n if (!response.ok) throw new Error(`Failed to load OpenAPI document: HTTP ${response.status}`)\n return resolveOperation((await response.json()) as OpenApi, input[0], params)\n })\n}\n\nfunction interpolate(path: string, params: Record<string, string>) {\n const used = new Set<string>()\n const pathname = path.replaceAll(/\\{([^}]+)\\}/g, (_, name: string) => {\n const value = params[name]\n if (value === undefined) throw new Error(`Missing path parameter: ${name}`)\n used.add(name)\n return encodeURIComponent(value)\n })\n const query = new URLSearchParams(Object.entries(params).filter(([name]) => !used.has(name))).toString()\n return query ? `${pathname}?${query}` : pathname\n}\n"
],
"mappings": "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",
"debugId": "EFE42F8AE6803A2564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "D6F7ABD61E38621D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/llm.ts"],
"sourcesContent": [
"export * as LLM from \"./llm.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\n\nexport const ProviderMetadata = Schema.Record(Schema.String, Schema.Record(Schema.String, Schema.Unknown)).annotate({\n identifier: \"LLM.ProviderMetadata\",\n})\nexport type ProviderMetadata = Schema.Schema.Type<typeof ProviderMetadata>\n\nexport const FinishReason = Schema.Literals([\"stop\", \"length\", \"tool-calls\", \"content-filter\", \"error\", \"unknown\"])\nexport type FinishReason = typeof FinishReason.Type\n\nexport interface ToolTextContent extends Schema.Schema.Type<typeof ToolTextContent> {}\nexport const ToolTextContent = Schema.Struct({\n type: Schema.Literal(\"text\"),\n text: Schema.String,\n}).annotate({ identifier: \"Tool.TextContent\" })\n\nexport interface ToolFileContent extends Schema.Schema.Type<typeof ToolFileContent> {}\nexport const ToolFileContent = Schema.Struct({\n type: Schema.Literal(\"file\"),\n uri: Schema.String,\n mime: Schema.String,\n name: optional(Schema.String),\n}).annotate({ identifier: \"Tool.FileContent\" })\n\nexport const ToolContent = Schema.Union([ToolTextContent, ToolFileContent])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"LLM.ToolContent\" })\nexport type ToolContent = Schema.Schema.Type<typeof ToolContent>\n"
],
"mappings": ";oRAKO,SAAM,OAAmB,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,CAAC,EAAE,SAAS,CAClH,WAAY,sBACd,CAAC,EAGY,EAAe,EAAO,SAAS,CAAC,OAAQ,SAAU,aAAc,iBAAkB,QAAS,SAAS,CAAC,EAIrG,EAAkB,EAAO,OAAO,CAC3C,KAAM,EAAO,QAAQ,MAAM,EAC3B,KAAM,EAAO,MACf,CAAC,EAAE,SAAS,CAAE,WAAY,kBAAmB,CAAC,EAGjC,EAAkB,EAAO,OAAO,CAC3C,KAAM,EAAO,QAAQ,MAAM,EAC3B,IAAK,EAAO,OACZ,KAAM,EAAO,OACb,KAAM,EAAS,EAAO,MAAM,CAC9B,CAAC,EAAE,SAAS,CAAE,WAAY,kBAAmB,CAAC,EAEjC,EAAc,EAAO,MAAM,CAAC,EAAiB,CAAe,CAAC,EACvE,KAAK,EAAO,cAAc,MAAM,CAAC,EACjC,SAAS,CAAE,WAAY,iBAAkB,CAAC",
"debugId": "BD7FEAA97AFEDD2364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js"],
"sourcesContent": [
"'use strict';\n\nvar crc32 = require('@aws-crypto/crc32');\nvar serde = require('@smithy/core/serde');\nvar node_stream = require('node:stream');\n\nclass Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(serde.toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n\nclass HeaderMarshaller {\n toUtf8;\n fromUtf8;\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(serde.fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${serde.toHex(uuidBytes.subarray(0, 4))}-${serde.toHex(uuidBytes.subarray(4, 6))}-${serde.toHex(uuidBytes.subarray(6, 8))}-${serde.toHex(uuidBytes.subarray(8, 10))}-${serde.toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nfunction splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new crc32.Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n\nclass EventStreamCodec {\n headerMarshaller;\n messageBuffer;\n isEndOfStream;\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new crc32.Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n\nclass MessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n\nclass MessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n\nclass SmithyMessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n\nclass SmithyMessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n\nfunction getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n\nfunction getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nfunction getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n\nlet EventStreamMarshaller$1 = class EventStreamMarshaller {\n eventStreamCodec;\n utfEncoder;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n};\nconst eventStreamSerdeProvider$1 = (options) => new EventStreamMarshaller$1(options);\n\nclass EventStreamMarshaller {\n universalMarshaller;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new EventStreamMarshaller$1({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : readableToIterable(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return node_stream.Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n}\nconst eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\nasync function* readableToIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\n\nconst readableStreamToIterable = (readableStream) => ({\n [Symbol.asyncIterator]: async function* () {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n }\n finally {\n reader.releaseLock();\n }\n },\n});\nconst iterableToReadableStream = (asyncIterable) => {\n const iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n return controller.close();\n }\n controller.enqueue(value);\n },\n });\n};\n\nconst resolveEventStreamSerdeConfig = (input) => Object.assign(input, {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n\nclass EventStreamSerde {\n marshaller;\n serializer;\n deserializer;\n serdeContext;\n defaultContentType;\n constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType, }) {\n this.marshaller = marshaller;\n this.serializer = serializer;\n this.deserializer = deserializer;\n this.serdeContext = serdeContext;\n this.defaultContentType = defaultContentType;\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = requestSchema.getEventStreamMember();\n const unionSchema = requestSchema.getMemberSchema(eventStreamMember);\n const serializer = this.serializer;\n const defaultContentType = this.defaultContentType;\n const initialRequestMarker = Symbol(\"initialRequestMarker\");\n const eventStreamIterable = {\n async *[Symbol.asyncIterator]() {\n if (initialRequest) {\n const headers = {\n \":event-type\": { type: \"string\", value: \"initial-request\" },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: defaultContentType },\n };\n serializer.write(requestSchema, initialRequest);\n const body = serializer.flush();\n yield {\n [initialRequestMarker]: true,\n headers,\n body,\n };\n }\n for await (const page of eventStream) {\n yield page;\n }\n },\n };\n return marshaller.serialize(eventStreamIterable, (event) => {\n if (event[initialRequestMarker]) {\n return {\n headers: event.headers,\n body: event.body,\n };\n }\n let unionMember = \"\";\n for (const key in event) {\n if (key !== \"__type\") {\n unionMember = key;\n break;\n }\n }\n const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);\n const headers = {\n \":event-type\": { type: \"string\", value: eventType },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: explicitPayloadContentType ?? defaultContentType },\n ...additionalHeaders,\n };\n return {\n headers,\n body,\n };\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = responseSchema.getEventStreamMember();\n const unionSchema = responseSchema.getMemberSchema(eventStreamMember);\n const memberSchemas = unionSchema.getMemberSchemas();\n const initialResponseMarker = Symbol(\"initialResponseMarker\");\n const asyncIterable = marshaller.deserialize(response.body, async (event) => {\n let unionMember = \"\";\n for (const key in event) {\n if (key !== \"__type\") {\n unionMember = key;\n break;\n }\n }\n const body = event[unionMember].body;\n if (unionMember === \"initial-response\") {\n const dataObject = await this.deserializer.read(responseSchema, body);\n delete dataObject[eventStreamMember];\n return {\n [initialResponseMarker]: true,\n ...dataObject,\n };\n }\n else if (unionMember in memberSchemas) {\n const eventStreamSchema = memberSchemas[unionMember];\n if (eventStreamSchema.isStructSchema()) {\n const out = {};\n let hasBindings = false;\n for (const [name, member] of eventStreamSchema.structIterator()) {\n const { eventHeader, eventPayload } = member.getMergedTraits();\n hasBindings = hasBindings || Boolean(eventHeader || eventPayload);\n if (eventPayload) {\n if (member.isBlobSchema()) {\n out[name] = body;\n }\n else if (member.isStringSchema()) {\n out[name] = (this.serdeContext?.utf8Encoder ?? serde.toUtf8)(body);\n }\n else if (member.isStructSchema()) {\n out[name] = await this.deserializer.read(member, body);\n }\n }\n else if (eventHeader) {\n const value = event[unionMember].headers[name]?.value;\n if (value != null) {\n if (member.isNumericSchema()) {\n if (value && typeof value === \"object\" && \"bytes\" in value) {\n out[name] = BigInt(value.toString());\n }\n else {\n out[name] = Number(value);\n }\n }\n else {\n out[name] = value;\n }\n }\n }\n }\n if (hasBindings) {\n return {\n [unionMember]: out,\n };\n }\n if (body.byteLength === 0) {\n return {\n [unionMember]: {},\n };\n }\n }\n return {\n [unionMember]: await this.deserializer.read(eventStreamSchema, body),\n };\n }\n else {\n return {\n $unknown: event,\n };\n }\n });\n const asyncIterator = asyncIterable[Symbol.asyncIterator]();\n const firstEvent = await asyncIterator.next();\n if (firstEvent.done) {\n return asyncIterable;\n }\n if (firstEvent.value?.[initialResponseMarker]) {\n if (!responseSchema) {\n throw new Error(\"@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.\");\n }\n for (const key in firstEvent.value) {\n initialResponseContainer[key] = firstEvent.value[key];\n }\n }\n return {\n async *[Symbol.asyncIterator]() {\n if (!firstEvent?.value?.[initialResponseMarker]) {\n yield firstEvent.value;\n }\n while (true) {\n const { done, value } = await asyncIterator.next();\n if (done) {\n break;\n }\n yield value;\n }\n },\n };\n }\n writeEventBody(unionMember, unionSchema, event) {\n const serializer = this.serializer;\n let eventType = unionMember;\n let explicitPayloadMember = null;\n let explicitPayloadContentType;\n const isKnownSchema = (() => {\n const struct = unionSchema.getSchema();\n return struct[4].includes(unionMember);\n })();\n const additionalHeaders = {};\n if (!isKnownSchema) {\n const [type, value] = event[unionMember];\n eventType = type;\n serializer.write(15, value);\n }\n else {\n const eventSchema = unionSchema.getMemberSchema(unionMember);\n if (eventSchema.isStructSchema()) {\n for (const [memberName, memberSchema] of eventSchema.structIterator()) {\n const { eventHeader, eventPayload } = memberSchema.getMergedTraits();\n if (eventPayload) {\n explicitPayloadMember = memberName;\n }\n else if (eventHeader) {\n const value = event[unionMember][memberName];\n let type = \"binary\";\n if (memberSchema.isNumericSchema()) {\n if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) {\n type = \"integer\";\n }\n else {\n type = \"long\";\n }\n }\n else if (memberSchema.isTimestampSchema()) {\n type = \"timestamp\";\n }\n else if (memberSchema.isStringSchema()) {\n type = \"string\";\n }\n else if (memberSchema.isBooleanSchema()) {\n type = \"boolean\";\n }\n if (value != null) {\n additionalHeaders[memberName] = {\n type,\n value,\n };\n delete event[unionMember][memberName];\n }\n }\n }\n if (explicitPayloadMember !== null) {\n const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);\n if (payloadSchema.isBlobSchema()) {\n explicitPayloadContentType = \"application/octet-stream\";\n }\n else if (payloadSchema.isStringSchema()) {\n explicitPayloadContentType = \"text/plain\";\n }\n serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);\n }\n else {\n serializer.write(eventSchema, event[unionMember]);\n }\n }\n else if (eventSchema.isUnitSchema()) {\n serializer.write(eventSchema, {});\n }\n else {\n throw new Error(\"@smithy/core/event-streams - non-struct member not supported in event stream union.\");\n }\n }\n const messageSerialization = serializer.flush() ?? new Uint8Array();\n const body = typeof messageSerialization === \"string\"\n ? (this.serdeContext?.utf8Decoder ?? serde.fromUtf8)(messageSerialization)\n : messageSerialization;\n return {\n body,\n eventType,\n explicitPayloadContentType,\n additionalHeaders,\n };\n }\n}\n\nexports.EventStreamCodec = EventStreamCodec;\nexports.EventStreamMarshaller = EventStreamMarshaller;\nexports.EventStreamSerde = EventStreamSerde;\nexports.HeaderMarshaller = HeaderMarshaller;\nexports.Int64 = Int64;\nexports.MessageDecoderStream = MessageDecoderStream;\nexports.MessageEncoderStream = MessageEncoderStream;\nexports.SmithyMessageDecoderStream = SmithyMessageDecoderStream;\nexports.SmithyMessageEncoderStream = SmithyMessageEncoderStream;\nexports.UniversalEventStreamMarshaller = EventStreamMarshaller$1;\nexports.eventStreamSerdeProvider = eventStreamSerdeProvider;\nexports.getChunkedStream = getChunkedStream;\nexports.getMessageUnmarshaller = getMessageUnmarshaller;\nexports.getUnmarshalledStream = getUnmarshalledStream;\nexports.iterableToReadableStream = iterableToReadableStream;\nexports.readableStreamToIterable = readableStreamToIterable;\nexports.resolveEventStreamSerdeConfig = resolveEventStreamSerdeConfig;\nexports.universalEventStreamSerdeProvider = eventStreamSerdeProvider$1;\n"
],
"mappings": "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",
"debugId": "3FBEA8132E49DEF264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260413175956_chief_energizer.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260413175956_chief_energizer\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_entry\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_session_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`CREATE INDEX \\`session_entry_session_idx\\` ON \\`session_entry\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_entry_session_type_idx\\` ON \\`session_entry\\` (\\`session_id\\`,\\`type\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_entry_time_created_idx\\` ON \\`session_entry\\` (\\`time_created\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,iCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2aAUb,EACD,MAAO,EAAG,IAAI,6EAAmF,EACjG,MAAO,EAAG,IAAI,yFAAiG,EAC/G,MAAO,EAAG,IAAI,oFAA0F,EACzG,EAEL",
"debugId": "674D2C06438EEB5564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/mcp/add.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport path from \"node:path\"\nimport { Effect, Option } from \"effect\"\nimport { applyEdits, modify } from \"jsonc-parser\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.add,\n Effect.fn(\"cli.mcp.add\")(function* (input) {\n const url = Option.getOrUndefined(input.url)\n const headers = Option.getOrUndefined(input.header)\n const environment = Option.getOrUndefined(input.env)\n // The CLI framework strands `--` operands on the root command, so read the local server command\n // straight from argv after `--`. This also lets the command carry its own flags (e.g. `npx -y`).\n const dash = process.argv.indexOf(\"--\")\n const command = dash === -1 ? [...input.command] : process.argv.slice(dash + 1)\n\n const hasCommand = command.length > 0\n if (url && hasCommand)\n return yield* Effect.fail(new Error(\"Provide either --url <url> or a command after --, not both\"))\n if (!url && !hasCommand) return yield* Effect.fail(new Error(\"Provide either --url <url> or a command after --\"))\n if (url && !URL.canParse(url)) return yield* Effect.fail(new Error(`Invalid URL: ${url}`))\n if (url && environment) return yield* Effect.fail(new Error(\"--env is only valid for local MCP servers\"))\n if (hasCommand && headers) return yield* Effect.fail(new Error(\"--header is only valid for remote MCP servers\"))\n\n const server = url\n ? { type: \"remote\" as const, url, ...(headers ? { headers } : {}) }\n : { type: \"local\" as const, command, ...(environment ? { environment } : {}) }\n\n const configPath = yield* Effect.promise(() => resolveConfigPath(input.global ? Global.Path.config : process.cwd()))\n yield* Effect.promise(() => write(configPath, input.name, server))\n process.stdout.write(`MCP server \"${input.name}\" added to ${configPath}` + EOL)\n }),\n)\n\nasync function resolveConfigPath(directory: string) {\n const candidates = [\n path.join(directory, \"opencode.json\"),\n path.join(directory, \"opencode.jsonc\"),\n path.join(directory, \".opencode\", \"opencode.json\"),\n path.join(directory, \".opencode\", \"opencode.jsonc\"),\n ]\n for (const candidate of candidates) {\n if (await Bun.file(candidate).exists()) return candidate\n }\n return candidates[0]\n}\n\nasync function write(configPath: string, name: string, server: unknown) {\n const file = Bun.file(configPath)\n const text = (await file.exists()) ? await file.text() : \"{}\"\n const edits = modify(text, [\"mcp\", \"servers\", name], server, {\n formattingOptions: { tabSize: 2, insertSpaces: true },\n })\n await Bun.write(configPath, applyEdits(text, edits))\n}\n"
],
"mappings": ";yvBAAA,mBAAS,gBACT,yBAOA,SAAe,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,SAC/B,OAAO,QAAG,kBAAa,OAAE,cAAU,MAAC,OAAO,MACzC,IAAM,EAAM,EAAO,eAAe,EAAM,GAAG,EACrC,EAAU,EAAO,eAAe,EAAM,MAAM,EAC5C,EAAc,EAAO,eAAe,EAAM,GAAG,EAG7C,EAAO,QAAQ,KAAK,QAAQ,IAAI,EAChC,EAAU,IAAS,GAAK,CAAC,GAAG,EAAM,OAAO,EAAI,QAAQ,KAAK,MAAM,EAAO,CAAC,EAExE,EAAa,EAAQ,OAAS,EACpC,GAAI,GAAO,EACT,OAAO,MAAO,EAAO,KAAS,MAAM,4DAA4D,CAAC,EACnG,GAAI,CAAC,GAAO,CAAC,EAAY,OAAO,MAAO,EAAO,KAAS,MAAM,kDAAkD,CAAC,EAChH,GAAI,GAAO,CAAC,IAAI,SAAS,CAAG,EAAG,OAAO,MAAO,EAAO,KAAS,MAAM,gBAAgB,GAAK,CAAC,EACzF,GAAI,GAAO,EAAa,OAAO,MAAO,EAAO,KAAS,MAAM,2CAA2C,CAAC,EACxG,GAAI,GAAc,EAAS,OAAO,MAAO,EAAO,KAAS,MAAM,+CAA+C,CAAC,EAE/G,IAAM,EAAS,EACX,CAAE,KAAM,SAAmB,SAAS,EAAU,CAAE,SAAQ,EAAI,CAAC,CAAG,EAChE,CAAE,KAAM,QAAkB,aAAa,EAAc,CAAE,aAAY,EAAI,CAAC,CAAG,EAEzE,EAAa,MAAO,EAAO,QAAQ,IAAM,EAAkB,EAAM,OAAS,EAAO,KAAK,OAAS,QAAQ,IAAI,CAAC,CAAC,EACnH,MAAO,EAAO,QAAQ,IAAM,EAAM,EAAY,EAAM,KAAM,CAAM,CAAC,EACjE,QAAQ,OAAO,MAAM,eAAe,EAAM,kBAAkB,IAAe,CAAG,EAC/E,CACH,EAEA,eAAe,CAAiB,CAAC,EAAmB,CAClD,IAAM,EAAa,CACjB,EAAK,KAAK,EAAW,eAAe,EACpC,EAAK,KAAK,EAAW,gBAAgB,EACrC,EAAK,KAAK,EAAW,YAAa,eAAe,EACjD,EAAK,KAAK,EAAW,YAAa,gBAAgB,CACpD,EACA,QAAW,KAAa,EACtB,GAAI,MAAM,IAAI,KAAK,CAAS,EAAE,OAAO,EAAG,OAAO,EAEjD,OAAO,EAAW,GAGpB,eAAe,CAAK,CAAC,EAAoB,EAAc,EAAiB,CACtE,IAAM,EAAO,IAAI,KAAK,CAAU,EAC1B,EAAQ,MAAM,EAAK,OAAO,EAAK,MAAM,EAAK,KAAK,EAAI,KACnD,EAAQ,EAAO,EAAM,CAAC,MAAO,UAAW,CAAI,EAAG,EAAQ,CAC3D,kBAAmB,CAAE,QAAS,EAAG,aAAc,EAAK,CACtD,CAAC,EACD,MAAM,IAAI,MAAM,EAAY,EAAW,EAAM,CAAK,CAAC",
"debugId": "2F63DD6101EF281264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "7850CC4D8970D0EB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260622202450_simplify_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622202450_simplify_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_context_epoch\\`;`)\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL WHERE \\`workspace_id\\` IS NOT NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sCAAwC,EACtD,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,8EAAoF,EAClG,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "3C087D4EF50741C964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "C12335D2112B8E6564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703181610_event_created_column.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703181610_event_created_column\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`event\\` ADD \\`created\\` integer NOT NULL;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAyD,EACxE,EAEL",
"debugId": "B4E3DFD09E52A4EB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+groq@3.0.31+d6123d32214422cb/node_modules/@ai-sdk/groq/dist/index.mjs"],
"sourcesContent": [
"// src/groq-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/groq-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n isParsableJson,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-groq-usage.ts\nfunction convertGroqUsage(usage) {\n var _a, _b, _c, _d;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.completion_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : void 0;\n const textTokens = reasoningTokens != null ? completionTokens - reasoningTokens : completionTokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: textTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-groq-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToGroqChatMessages(prompt) {\n var _a;\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (!part.mediaType.startsWith(\"image/\")) {\n throw new UnsupportedFunctionalityError({\n functionality: \"Non-image file content parts\"\n });\n }\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n }\n };\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n // groq supports reasoning for tool-calls in multi-turn conversations\n // https://github.com/vercel/ai/issues/7860\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n ...reasoning.length > 0 ? { reasoning } : null,\n ...toolCalls.length > 0 ? { tool_calls: toolCalls } : null\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/groq-chat-options.ts\nimport { z } from \"zod/v4\";\nvar groqLanguageModelOptions = z.object({\n reasoningFormat: z.enum([\"parsed\", \"raw\", \"hidden\"]).optional(),\n /**\n * Specifies the reasoning effort level for model inference.\n * @see https://console.groq.com/docs/reasoning#reasoning-effort\n */\n reasoningEffort: z.enum([\"none\", \"default\", \"low\", \"medium\", \"high\"]).optional(),\n /**\n * Whether to enable parallel function calling during tool use. Default to true.\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse. Learn more.\n */\n user: z.string().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n * When true, the model uses constrained decoding to guarantee schema compliance.\n * Only used when structured outputs are enabled and a schema is provided.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Service tier for the request.\n * - 'on_demand': Default tier with consistent performance and fairness\n * - 'flex': Higher throughput tier optimized for workloads that can handle occasional request failures\n * - 'auto': Uses on_demand rate limits, then falls back to flex tier if exceeded\n *\n * @default 'on_demand'\n */\n serviceTier: z.enum([\"on_demand\", \"flex\", \"auto\"]).optional()\n});\n\n// src/groq-error.ts\nimport { z as z2 } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar groqErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n type: z2.string()\n })\n});\nvar groqFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: groqErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/groq-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/groq-browser-search-models.ts\nvar BROWSER_SEARCH_SUPPORTED_MODELS = [\n \"openai/gpt-oss-20b\",\n \"openai/gpt-oss-120b\"\n];\nfunction isBrowserSearchSupportedModel(modelId) {\n return BROWSER_SEARCH_SUPPORTED_MODELS.includes(modelId);\n}\nfunction getSupportedModelsString() {\n return BROWSER_SEARCH_SUPPORTED_MODELS.join(\", \");\n}\n\n// src/groq-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice,\n modelId\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const groqTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n if (tool.id === \"groq.browser_search\") {\n if (!isBrowserSearchSupportedModel(modelId)) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: `Browser search is only supported on the following models: ${getSupportedModelsString()}. Current model: ${modelId}`\n });\n } else {\n groqTools2.push({\n type: \"browser_search\"\n });\n }\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n }\n } else {\n groqTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: groqTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: groqTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: groqTools2,\n toolChoice: {\n type: \"function\",\n function: {\n name: toolChoice.toolName\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/map-groq-finish-reason.ts\nfunction mapGroqFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/groq-chat-language-model.ts\nvar GroqChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n stream,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c;\n const warnings = [];\n const groqOptions = await parseProviderOptions({\n provider: \"groq\",\n providerOptions,\n schema: groqLanguageModelOptions\n });\n const structuredOutputs = (_a = groqOptions == null ? void 0 : groqOptions.structuredOutputs) != null ? _a : true;\n const strictJsonSchema = (_b = groqOptions == null ? void 0 : groqOptions.strictJsonSchema) != null ? _b : true;\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !structuredOutputs) {\n warnings.push({\n type: \"unsupported\",\n feature: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const {\n tools: groqTools2,\n toolChoice: groqToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n user: groqOptions == null ? void 0 : groqOptions.user,\n parallel_tool_calls: groqOptions == null ? void 0 : groqOptions.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_c = responseFormat.name) != null ? _c : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // provider options:\n reasoning_format: groqOptions == null ? void 0 : groqOptions.reasoningFormat,\n reasoning_effort: groqOptions == null ? void 0 : groqOptions.reasoningEffort,\n service_tier: groqOptions == null ? void 0 : groqOptions.serviceTier,\n // messages:\n messages: convertToGroqChatMessages(prompt),\n // tools:\n tools: groqTools2,\n tool_choice: groqToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args, warnings } = await this.getArgs({\n ...options,\n stream: false\n });\n const body = JSON.stringify(args);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n groqChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertGroqUsage(response.usage),\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n request: { body }\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options, stream: true });\n const body = JSON.stringify({ ...args, stream: true });\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...args,\n stream: true\n },\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(groqChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let isActiveText = false;\n let isActiveReasoning = false;\n let providerMetadata;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (((_a = value.x_groq) == null ? void 0 : _a.usage) != null) {\n usage = value.x_groq.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n if (delta.reasoning != null && delta.reasoning.length > 0) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: delta.reasoning\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_d = toolCall2.function) == null ? void 0 : _d.name) != null && ((_e = toolCall2.function) == null ? void 0 : _e.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n if (isParsableJson(toolCall2.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_f = toolCall2.id) != null ? _f : generateId(),\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments\n });\n toolCall2.hasFinished = true;\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_g = toolCallDelta.function) == null ? void 0 : _g.arguments) != null) {\n toolCall.function.arguments += (_i = (_h = toolCallDelta.function) == null ? void 0 : _h.arguments) != null ? _i : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_j = toolCallDelta.function.arguments) != null ? _j : \"\"\n });\n if (((_k = toolCall.function) == null ? void 0 : _k.name) != null && ((_l = toolCall.function) == null ? void 0 : _l.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_m = toolCall.id) != null ? _m : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n }\n },\n flush(controller) {\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGroqUsage(usage),\n ...providerMetadata != null ? { providerMetadata } : {}\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar groqChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string().nullish(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n});\nvar groqChatChunkSchema = z3.union([\n z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n index: z3.number(),\n id: z3.string().nullish(),\n type: z3.literal(\"function\").optional(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z3.string().nullable().optional(),\n index: z3.number()\n })\n ),\n x_groq: z3.object({\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n }).nullish()\n }),\n groqErrorDataSchema\n]);\n\n// src/groq-transcription-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertBase64ToUint8Array,\n createJsonResponseHandler as createJsonResponseHandler2,\n mediaTypeToExtension,\n parseProviderOptions as parseProviderOptions2,\n postFormDataToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/groq-transcription-options.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar groqTranscriptionModelOptions = lazySchema(\n () => zodSchema(\n z4.object({\n language: z4.string().nullish(),\n prompt: z4.string().nullish(),\n responseFormat: z4.string().nullish(),\n temperature: z4.number().min(0).max(1).nullish(),\n timestampGranularities: z4.array(z4.string()).nullish()\n })\n )\n);\n\n// src/groq-transcription-model.ts\nvar GroqTranscriptionModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n audio,\n mediaType,\n providerOptions\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const groqOptions = await parseProviderOptions2({\n provider: \"groq\",\n providerOptions,\n schema: groqTranscriptionModelOptions\n });\n const formData = new FormData();\n const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);\n formData.append(\"model\", this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n \"file\",\n new File([blob], \"audio\", { type: mediaType }),\n `audio.${fileExtension}`\n );\n if (groqOptions) {\n const transcriptionModelOptions = {\n language: (_a = groqOptions.language) != null ? _a : void 0,\n prompt: (_b = groqOptions.prompt) != null ? _b : void 0,\n response_format: (_c = groqOptions.responseFormat) != null ? _c : void 0,\n temperature: (_d = groqOptions.temperature) != null ? _d : void 0,\n timestamp_granularities: (_e = groqOptions.timestampGranularities) != null ? _e : void 0\n };\n for (const key in transcriptionModelOptions) {\n const value = transcriptionModelOptions[key];\n if (value !== void 0) {\n if (Array.isArray(value)) {\n for (const item of value) {\n formData.append(`${key}[]`, String(item));\n }\n } else {\n formData.append(key, String(value));\n }\n }\n }\n }\n return {\n formData,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { formData, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postFormDataToApi({\n url: this.config.url({\n path: \"/audio/transcriptions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n groqTranscriptionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n text: response.text,\n segments: (_e = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n text: segment.text,\n startSecond: segment.start,\n endSecond: segment.end\n }))) != null ? _e : [],\n language: (_f = response.language) != null ? _f : void 0,\n durationInSeconds: (_g = response.duration) != null ? _g : void 0,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar groqTranscriptionResponseSchema = z5.object({\n text: z5.string(),\n x_groq: z5.object({\n id: z5.string()\n }),\n // additional properties are returned when `response_format: 'verbose_json'` is\n task: z5.string().nullish(),\n language: z5.string().nullish(),\n duration: z5.number().nullish(),\n segments: z5.array(\n z5.object({\n id: z5.number(),\n seek: z5.number(),\n start: z5.number(),\n end: z5.number(),\n text: z5.string(),\n tokens: z5.array(z5.number()),\n temperature: z5.number(),\n avg_logprob: z5.number(),\n compression_ratio: z5.number(),\n no_speech_prob: z5.number()\n })\n ).nullish()\n});\n\n// src/tool/browser-search.ts\nimport { createProviderToolFactory } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar browserSearch = createProviderToolFactory({\n id: \"groq.browser_search\",\n inputSchema: z6.object({})\n});\n\n// src/groq-tools.ts\nvar groqTools = {\n browserSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.31\" : \"0.0.0-test\";\n\n// src/groq-provider.ts\nfunction createGroq(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.groq.com/openai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GROQ_API_KEY\",\n description: \"Groq\"\n })}`,\n ...options.headers\n },\n `ai-sdk/groq/${VERSION}`\n );\n const createChatModel = (modelId) => new GroqChatLanguageModel(modelId, {\n provider: \"groq.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => {\n if (new.target) {\n throw new Error(\n \"The Groq model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n const createTranscriptionModel = (modelId) => {\n return new GroqTranscriptionModel(modelId, {\n provider: \"groq.transcription\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = function(modelId) {\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.tools = groqTools;\n return provider;\n}\nvar groq = createGroq();\nexport {\n VERSION,\n browserSearch,\n createGroq,\n groq\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "84E145D110C1EB2C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/unset.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.unset,\n Effect.fn(\"cli.service.unset\")(function* (input) {\n yield* ServiceConfig.unset(input.key)\n }),\n)\n"
],
"mappings": ";k0BAKA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,WACnC,OAAO,QAAG,wBAAmB,OAAE,cAAU,MAAC,OAAO,MAC/C,WAAO,OAAc,WAAM,OAAM,QAAG,OACrC,CACH",
"debugId": "32D692CA46C9E83964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260428004200_add_session_path.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260428004200_add_session_path\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`path\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,wCAA4C,EAC3D,EAEL",
"debugId": "EF05E0A3DB6C594864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/run.ts"],
"sourcesContent": [
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nexport default Runtime.handler(Commands.commands.run, (input) =>\n Effect.gen(function* () {\n const { runNonInteractive } = yield* Effect.promise(() => import(\"../../mini\"))\n const separator = process.argv.indexOf(\"--\", 2)\n const server = yield* ServerConnection.resolve({\n server: Option.getOrUndefined(input.server),\n standalone: input.standalone,\n })\n yield* Effect.promise(() =>\n runNonInteractive({\n server,\n message: [...input.message, ...(separator === -1 ? [] : process.argv.slice(separator + 1))],\n continue: input.continue,\n session: Option.getOrUndefined(input.session),\n fork: input.fork,\n model: Option.getOrUndefined(input.model),\n agent: Option.getOrUndefined(input.agent),\n format: input.format,\n file: [...input.file],\n title: Option.getOrUndefined(input.title),\n thinking: input.thinking,\n auto: input.auto || input.yolo,\n }),\n )\n }),\n)\n"
],
"mappings": ";+uCAKA,SAAe,SAAQ,aAAQ,OAAS,cAAS,SAAK,MAAC,SACrD,OAAO,SAAI,cAAU,OAAG,MACtB,SAAQ,0BAAsB,WAAO,OAAO,aAAQ,SAAa,wCAAa,OACxE,OAAY,aAAQ,UAAK,aAAQ,UAAM,MAAC,OACxC,OAAS,WAAO,OAAiB,aAAQ,MAC7C,YAAQ,OAAO,eAAe,EAAM,MAAM,EAC1C,WAAY,EAAM,UACpB,CAAC,EACD,MAAO,EAAO,QAAQ,IACpB,EAAkB,CAChB,SACA,QAAS,CAAC,GAAG,EAAM,QAAS,GAAI,IAAc,GAAK,CAAC,EAAI,QAAQ,KAAK,MAAM,EAAY,CAAC,CAAE,EAC1F,SAAU,EAAM,SAChB,QAAS,EAAO,eAAe,EAAM,OAAO,EAC5C,KAAM,EAAM,KACZ,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,OAAQ,EAAM,OACd,KAAM,CAAC,GAAG,EAAM,IAAI,EACpB,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,SAAU,EAAM,SAChB,KAAM,EAAM,MAAQ,EAAM,IAC5B,CAAC,CACH,EACD,CACH",
"debugId": "4FD7BD468F0220DB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "01E048B6C5EEE92A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "50763591F1487D0364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260705180000_rename_instructions.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260705180000_rename_instructions\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_entry\\` RENAME TO \\`instruction_entry\\``)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` RENAME TO \\`instruction_checkpoint\\``)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET \\`type\\` = 'session.instructions.updated.1'\n WHERE \\`type\\` = 'session.context.updated.1'\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,qCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mEAAuE,EACrF,MAAO,EAAG,IAAI,wEAA4E,EAC1F,MAAO,EAAG,IAAI,6IAIb,EACF,EAEL",
"debugId": "B6FFBA95012CFF1D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+deepinfra@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/deepinfra/dist/index.mjs"],
"sourcesContent": [
"// src/deepinfra-provider.ts\nimport {\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/deepinfra-image-model.ts\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n convertToFormData,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n downloadBlob,\n postFormDataToApi,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar DeepInfraImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n if (files != null && files.length > 0) {\n const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n url: this.getEditUrl(),\n headers: combineHeaders(this.config.headers(), headers),\n formData: convertToFormData(\n {\n model: this.modelId,\n prompt,\n image: await Promise.all(files.map((file) => fileToBlob(file))),\n mask: mask != null ? await fileToBlob(mask) : void 0,\n n,\n size,\n ...(_d = providerOptions.deepinfra) != null ? _d : {}\n },\n { useArrayBrackets: false }\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraEditErrorSchema,\n errorToMessage: (error) => {\n var _a2, _b2;\n return (_b2 = (_a2 = error.error) == null ? void 0 : _a2.message) != null ? _b2 : \"Unknown error\";\n }\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraEditResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response2.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders2\n }\n };\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/${this.modelId}`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n num_images: n,\n ...aspectRatio && { aspect_ratio: aspectRatio },\n ...splitSize && { width: splitSize[0], height: splitSize[1] },\n ...seed != null && { seed },\n ...(_e = providerOptions.deepinfra) != null ? _e : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraErrorSchema,\n errorToMessage: (error) => error.detail.error\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.images.map(\n (image) => image.replace(/^data:image\\/\\w+;base64,/, \"\")\n ),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n getEditUrl() {\n const baseUrl = this.config.baseURL.replace(\"/inference\", \"/openai\");\n return `${baseUrl}/images/edits`;\n }\n};\nvar deepInfraErrorSchema = z.object({\n detail: z.object({\n error: z.string()\n })\n});\nvar deepInfraImageResponseSchema = z.object({\n images: z.array(z.string())\n});\nvar deepInfraEditErrorSchema = z.object({\n error: z.object({\n message: z.string()\n }).optional()\n});\nvar deepInfraEditResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() }))\n});\nasync function fileToBlob(file) {\n if (file.type === \"url\") {\n return downloadBlob(file.url);\n }\n const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array(file.data);\n return new Blob([data], { type: file.mediaType });\n}\n\n// src/deepinfra-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nvar DeepInfraChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n constructor(modelId, config) {\n super(modelId, config);\n }\n /**\n * Fixes incorrect token usage for Gemini/Gemma models from DeepInfra.\n *\n * DeepInfra's API returns completion_tokens that don't include reasoning_tokens\n * for Gemini/Gemma models, which violates the OpenAI-compatible spec.\n * According to the spec, completion_tokens should include reasoning_tokens.\n *\n * Example of incorrect data from DeepInfra:\n * {\n * \"completion_tokens\": 84, // text-only tokens\n * \"completion_tokens_details\": {\n * \"reasoning_tokens\": 1081 // reasoning tokens not included above\n * }\n * }\n *\n * This would result in negative text tokens: 84 - 1081 = -997\n *\n * The fix: If reasoning_tokens > completion_tokens, add reasoning_tokens\n * to completion_tokens: 84 + 1081 = 1165\n */\n fixUsageForGeminiModels(usage) {\n var _a, _b;\n if (!usage || !((_a = usage.completion_tokens_details) == null ? void 0 : _a.reasoning_tokens)) {\n return usage;\n }\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = usage.completion_tokens_details.reasoning_tokens;\n if (reasoningTokens > completionTokens) {\n const correctedCompletionTokens = completionTokens + reasoningTokens;\n return {\n ...usage,\n // Add reasoning_tokens to completion_tokens to get the correct total\n completion_tokens: correctedCompletionTokens,\n // Update total_tokens if present\n total_tokens: usage.total_tokens != null ? usage.total_tokens + reasoningTokens : void 0\n };\n }\n return usage;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = await super.doGenerate(options);\n if ((_a = result.usage) == null ? void 0 : _a.raw) {\n const fixedRawUsage = this.fixUsageForGeminiModels(result.usage.raw);\n if (fixedRawUsage !== result.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n return {\n ...result,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n };\n }\n }\n return result;\n }\n async doStream(options) {\n const result = await super.doStream(options);\n const originalStream = result.stream;\n const fixUsage = this.fixUsageForGeminiModels.bind(this);\n const transformedStream = new ReadableStream({\n async start(controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n const reader = originalStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\" && ((_a = value.usage) == null ? void 0 : _a.raw)) {\n const fixedRawUsage = fixUsage(value.usage.raw);\n if (fixedRawUsage !== value.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n controller.enqueue({\n ...value,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n });\n } else {\n controller.enqueue(value);\n }\n } else {\n controller.enqueue(value);\n }\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n }\n });\n return {\n ...result,\n stream: transformedStream\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/deepinfra-provider.ts\nfunction createDeepInfra(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepinfra.com/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPINFRA_API_KEY\",\n description: \"DeepInfra's API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepinfra/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `deepinfra.${modelType}`,\n url: ({ path }) => `${baseURL}/openai${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new DeepInfraChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new DeepInfraImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL ? `${baseURL}/inference` : \"https://api.deepinfra.com/v1/inference\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.languageModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n return provider;\n}\nvar deepinfra = createDeepInfra();\nexport {\n VERSION,\n createDeepInfra,\n deepinfra\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "5D9A4B9C91D3BA9864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+cerebras@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/cerebras/dist/index.mjs"],
"sourcesContent": [
"// src/cerebras-provider.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/cerebras-provider.ts\nvar cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string()\n});\nvar cerebrasErrorStructure = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: (data) => data.message\n};\nfunction createCerebras(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.cerebras.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"CEREBRAS_API_KEY\",\n description: \"Cerebras API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cerebras/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cerebras = createCerebras();\nexport {\n VERSION,\n cerebras,\n createCerebras\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";qRAaA,SAAI,OAAiB,cAGjB,OAAsB,OAAE,OAAO,CACjC,QAAS,EAAE,OAAO,EAClB,KAAM,EAAE,OAAO,EACf,MAAO,EAAE,OAAO,EAChB,KAAM,EAAE,OAAO,CACjB,CAAC,EACG,EAAyB,CAC3B,YAAa,EACb,eAAgB,CAAC,IAAS,EAAK,OACjC,EACA,SAAS,CAAc,CAAC,EAAU,CAAC,EAAG,CACpC,IAAI,EACJ,IAAM,EAAU,GACb,EAAK,EAAQ,UAAY,KAAO,EAAK,4BACxC,EACM,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,mBACzB,YAAa,kBACf,CAAC,OACE,EAAQ,OACb,EACA,mBAAmB,GACrB,EACM,EAAsB,CAAC,IAAY,CACvC,OAAO,IAAI,EAAkC,EAAS,CACpD,SAAU,gBACV,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,MACf,eAAgB,EAChB,0BAA2B,EAC7B,CAAC,GAEG,EAAW,CAAC,IAAY,EAAoB,CAAO,EAWzD,OAVA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,KAAO,EAChB,EAAS,eAAiB,CAAC,IAAY,CACrC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,gBAAiB,CAAC,GAErE,EAAS,mBAAqB,EAAS,eACvC,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAE1D,EAET,IAAI,EAAW,EAAe",
"debugId": "C5F086B2EDC1D91264756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "508B8A2EF684408E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260510033149_session_usage.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260510033149_session_usage\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`cost\\` real DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_input\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_output\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_reasoning\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_read\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_write\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`\n UPDATE session\n SET\n cost = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.cost'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_input = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.input'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_output = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.output'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_reasoning = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.reasoning'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_read = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.read'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_write = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.write'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0)\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,+BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2DAA+D,EAC7E,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,uEAA2E,EACzF,MAAO,EAAG,IAAI,0EAA8E,EAC5F,MAAO,EAAG,IAAI,2EAA+E,EAC7F,MAAO,EAAG,IAAI,4EAAgF,EAC9F,MAAO,EAAG,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAuCb,EACF,EAEL",
"debugId": "F6513E3F2728DD7364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/services/service-config.ts"],
"sourcesContent": [
"import { Global } from \"@opencode-ai/core/global\"\nimport { InstallationChannel, InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { Hash } from \"@opencode-ai/core/util/hash\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { Effect, FileSystem, Option, Schema } from \"effect\"\nimport { randomBytes } from \"crypto\"\nimport path from \"path\"\n\n// The CLI's service configuration file, plus the Service.EnsureOptions binding that\n// points the client package's service operations at this CLI: which\n// registration file (by channel), which version, and how to spawn opencode.\n\nexport const Info = Schema.Struct({\n hostname: Schema.optional(Schema.String),\n port: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(65_535))),\n password: Schema.optional(Schema.String),\n})\nexport type Info = typeof Info.Type\n\nconst keys = [\"hostname\", \"port\", \"password\"] as const\ntype Key = (typeof keys)[number]\n\nconst decodeInfo = Schema.decodeUnknownEffect(Schema.fromJsonString(Info))\nconst decodeRegistration = Schema.decodeUnknownEffect(Schema.fromJsonString(Service.Info))\n\nexport function filename(channel = InstallationChannel) {\n if (channel === \"latest\") return \"service.json\"\n if (channel === \"local\") return \"service-local.json\"\n return `service-${Hash.fast(channel)}.json`\n}\n\nexport function versionBelongsToChannel(\n version: string | undefined,\n channel = InstallationChannel,\n installedVersion = InstallationVersion,\n) {\n if (version === undefined) return false\n if (version === installedVersion) return true\n const prefix = `0.0.0-${channel}-`\n if (!version.startsWith(prefix)) return false\n return /^\\d+(?:\\.\\d+)?$/.test(version.slice(prefix.length))\n}\n\nexport const migrateRegistration = Effect.fnUntraced(function* (\n legacy: string,\n file: string,\n channel = InstallationChannel,\n installedVersion = InstallationVersion,\n) {\n if (channel === \"latest\" || channel === \"local\") return\n const fs = yield* FileSystem.FileSystem\n const text = yield* fs.readFileString(legacy).pipe(Effect.option)\n if (Option.isNone(text)) return\n const registration = yield* decodeRegistration(text.value).pipe(Effect.option)\n if (Option.isNone(registration)) return\n if (!versionBelongsToChannel(registration.value.version, channel, installedVersion)) return\n yield* fs.writeFileString(file, text.value, { flag: \"wx\", mode: 0o600 }).pipe(Effect.ignore)\n})\n\nfunction configKey(key: string): Key {\n if (key === \"hostname\" || key === \"port\" || key === \"password\") return key\n throw new Error(`Unknown service config key: ${key}`)\n}\n\nconst paths = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n const global = yield* Global.Service\n const name = filename()\n const file = path.join(global.state, name)\n return {\n fs,\n file,\n legacyFile: path.join(global.state, \"service.json\"),\n configFile: path.join(global.config, name),\n }\n})\n\nexport const options = Effect.fnUntraced(function* () {\n const { file, legacyFile } = yield* paths\n yield* migrateRegistration(legacyFile, file)\n const compiled = path.basename(process.execPath).replace(/\\.exe$/, \"\") !== \"bun\"\n const entrypoint = compiled ? undefined : process.argv[1]\n if (!compiled && entrypoint === undefined) return yield* Effect.fail(new Error(\"Failed to resolve CLI entrypoint\"))\n return {\n file,\n version: InstallationVersion,\n command: [process.execPath, ...(entrypoint ? [entrypoint] : []), \"serve\", \"--service\"],\n }\n})\n\nexport const read = Effect.fn(\"cli.service-config.read\")(function* () {\n const { fs, configFile } = yield* paths\n return yield* fs.readFileString(configFile).pipe(\n Effect.flatMap(decodeInfo),\n Effect.catch(() => Effect.succeed({} as Info)),\n )\n})\n\nconst write = Effect.fn(\"cli.service-config.write\")(function* (value: Info) {\n const { fs, configFile } = yield* paths\n const temp = configFile + \".tmp\"\n yield* fs.makeDirectory(path.dirname(configFile), { recursive: true })\n yield* fs.writeFileString(temp, JSON.stringify(value, null, 2) + \"\\n\", { mode: 0o600 })\n yield* fs.rename(temp, configFile)\n})\n\nexport const password = Effect.fn(\"cli.service-config.password\")(function* (value?: string) {\n const existing = yield* read()\n if (value === undefined && existing.password) return existing.password\n const next = value ?? randomBytes(32).toString(\"base64url\")\n\n // Keep one private credential across server restarts so discovered clients\n // can reconnect without exposing a password flag or environment variable.\n yield* write({ ...existing, password: next })\n return next\n})\n\nexport const get = Effect.fn(\"cli.service-config.get\")(function* (key?: string) {\n if (key === undefined) {\n const { password: _password, ...safe } = yield* read()\n return JSON.stringify(safe, null, 2)\n }\n switch (configKey(key)) {\n case \"hostname\": {\n return (yield* read()).hostname ?? \"\"\n }\n case \"port\": {\n const port = (yield* read()).port\n return port === undefined ? \"\" : String(port)\n }\n case \"password\": {\n return yield* password()\n }\n }\n throw new Error(`Unknown service config key: ${key}`)\n})\n\nexport const set = Effect.fn(\"cli.service-config.set\")(function* (key: string, value: string) {\n switch (configKey(key)) {\n case \"hostname\": {\n yield* Service.stop(yield* options())\n yield* write({ ...(yield* read()), hostname: value })\n return\n }\n case \"port\": {\n const port = Number(value)\n if (!Number.isInteger(port) || port < 1 || port > 65_535) throw new Error(\"Port must be between 1 and 65535\")\n yield* Service.stop(yield* options())\n yield* write({ ...(yield* read()), port })\n return\n }\n case \"password\": {\n yield* Service.stop(yield* options())\n yield* password(value)\n return\n }\n }\n})\n\nexport const unset = Effect.fn(\"cli.service-config.unset\")(function* (key: string) {\n switch (configKey(key)) {\n case \"hostname\": {\n yield* Service.stop(yield* options())\n const { hostname: _hostname, ...next } = yield* read()\n yield* write(next)\n return\n }\n case \"port\": {\n yield* Service.stop(yield* options())\n const { port: _port, ...next } = yield* read()\n yield* write(next)\n return\n }\n case \"password\": {\n yield* Service.stop(yield* options())\n const { password: _password, ...next } = yield* read()\n yield* write(next)\n return\n }\n }\n})\n\nexport * as ServiceConfig from \"./service-config\"\n"
],
"mappings": "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",
"debugId": "342C32E4F719ABAB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/terminal.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/interfaces.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/index.ts", "../core/src/pty/pty.bun.ts"],
"sourcesContent": [
"// terminal.ts — JS/TS front-end (final fixed version)\n\nimport { dlopen, FFIType, ptr } from \"bun:ffi\";\nimport { Buffer } from \"node:buffer\";\nimport { EventEmitter } from \"./interfaces\";\nimport type { IPty, IPtyForkOptions, IExitEvent } from \"./interfaces\";\nimport { join, dirname, basename } from \"node:path\";\nimport { existsSync } from \"node:fs\";\n\nexport const DEFAULT_COLS = 80;\nexport const DEFAULT_ROWS = 24;\nexport const DEFAULT_FILE = \"sh\";\nexport const DEFAULT_NAME = \"xterm\";\n\n/**\n * Quote a string for shell-words compatible splitting on the Rust side.\n * We are not invoking a shell; quoting is only to preserve token boundaries\n * when Rust parses the command line with shell_words::split.\n * \n * @param s - The string to quote\n * @returns The quoted string\n */\nfunction shQuote(s: string): string {\n\tif (s.length === 0) return \"''\";\n\t// Replace ' with '\\'' (close-quote, escaped ', reopen)\n\treturn `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n\n// terminal.ts – loader fragment only\n\nfunction resolveLibPath(): string {\n\tconst env = process.env.BUN_PTY_LIB;\n\tif (env && existsSync(env)) return env;\n\n\t// For bun compile: use statically analyzable require with inline ternary.\n\t// Bun evaluates process.platform and process.arch at compile time and only\n\t// bundles the file for the target platform. The ternary MUST be inline\n\t// in the template literal for Bun's static analysis to work.\n\t// See: https://github.com/sursaone/bun-pty/issues/19\n\ttry {\n\t\t// @ts-ignore - require returns path for binary files in Bun\n\t\tconst embeddedPath = require(`../rust-pty/target/release/${process.platform === \"win32\" ? \"rust_pty.dll\" : process.platform === \"darwin\" ? (process.arch === \"arm64\" ? \"librust_pty_arm64.dylib\" : \"librust_pty.dylib\") : process.arch === \"arm64\" ? \"librust_pty_arm64.so\" : \"librust_pty.so\"}`);\n\t\tif (embeddedPath) return embeddedPath;\n\t} catch {\n\t\t// Not running as compiled binary, fall through to dynamic resolution\n\t}\n\n\t// Fallback: dynamic resolution for development scenarios\n\tconst platform = process.platform;\n\tconst arch = process.arch;\n\n\t// Try both architecture-specific and generic filenames\n\tconst filenames =\n\t\tplatform === \"darwin\"\n\t\t\t? arch === \"arm64\"\n\t\t\t\t? [\"librust_pty_arm64.dylib\", \"librust_pty.dylib\"]\n\t\t\t\t: [\"librust_pty.dylib\"]\n\t\t\t: platform === \"win32\"\n\t\t\t? [\"rust_pty.dll\"]\n\t\t\t: arch === \"arm64\"\n\t\t\t? [\"librust_pty_arm64.so\", \"librust_pty.so\"]\n\t\t\t: [\"librust_pty.so\"];\n\n\t// Start from the current module's location\n\tconst base = Bun.fileURLToPath(import.meta.url);\n\tconst fileDir = dirname(base);\n\tconst dirName = basename(fileDir);\n\t\n\t// Handle both development (src/terminal.ts) and production (dist/terminal.js) cases\n\t// If we're in src/ or dist/, go up one level to get the project root\n\tconst here = (dirName === \"src\" || dirName === \"dist\")\n\t\t? dirname(fileDir) // Go up one level from src/ or dist/\n\t\t: fileDir; // Otherwise use the directory as-is\n\n\tconst basePaths = [\n\t\tjoin(here, \"rust-pty\", \"target\", \"release\"), // Direct path from project root\n\t\tjoin(here, \"..\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"), // monorepo setups\n\t\tjoin(process.cwd(), \"node_modules\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"),\n\t];\n\n\tconst fallbackPaths = [];\n\tfor (const basePath of basePaths) {\n\t\tfor (const filename of filenames) {\n\t\t\tfallbackPaths.push(join(basePath, filename));\n\t\t}\n\t}\n\n\tfor (const path of fallbackPaths) {\n\t\tif (existsSync(path)) return path;\n\t}\n\n\tthrow new Error(\n\t\t`librust_pty shared library not found.\\nChecked:\\n - BUN_PTY_LIB=${env ?? \"<unset>\"}\\n - ${fallbackPaths.join(\"\\n - \")}\\n\\nSet BUN_PTY_LIB or ensure one of these paths contains the file.`\n\t);\n}\n\nconst libPath = resolveLibPath();\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nlet lib: any;\n\n// try to load the lib, if it fails log the error\ntry {\n\tlib = dlopen(libPath, {\n\t\tbun_pty_spawn: {\n\t\t\targs: [FFIType.cstring, FFIType.cstring, FFIType.cstring, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_write: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_read: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_resize: {\n\t\t\targs: [FFIType.i32, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_kill: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_pid: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_exit_code: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_close: { args: [FFIType.i32], returns: FFIType.void },\n\t});\n} catch (error) {\n\tconsole.error(\"Failed to load lib\", error);\n}\n\nexport class Terminal implements IPty {\n\tprivate handle = -1;\n\tprivate _pid = -1;\n\tprivate _cols = DEFAULT_COLS;\n\tprivate _rows = DEFAULT_ROWS;\n\tprivate readonly _name = DEFAULT_NAME;\n\n\tprivate _readLoop = false;\n\tprivate _closing = false;\n\n\t// TextDecoder with streaming mode to properly handle UTF-8 across chunk boundaries\n\t// Without this, multi-byte characters (like box-drawing ─) that span chunks become �\n\tprivate readonly _decoder = new TextDecoder(\"utf-8\");\n\n\tprivate readonly _onData = new EventEmitter<string>();\n\tprivate readonly _onExit = new EventEmitter<IExitEvent>();\n\n\tconstructor(\n\t\tfile = DEFAULT_FILE,\n\t\targs: string[] = [],\n\t\topts: IPtyForkOptions = { name: DEFAULT_NAME },\n\t) {\n\t\tthis._cols = opts.cols ?? DEFAULT_COLS;\n\t\tthis._rows = opts.rows ?? DEFAULT_ROWS;\n\t\tconst cwd = opts.cwd ?? process.cwd();\n\t\t// Properly quote file and arguments to preserve spaces and special characters\n\t\tconst cmdline = [shQuote(file), ...args.map(shQuote)].join(\" \");\n\n\t\t// Format environment variables as null-terminated string\n\t\tlet envStr = \"\";\n\t\tif (opts.env) {\n\t\t\tconst envPairs = Object.entries(opts.env).map(([k, v]) => `${k}=${v}`);\n\t\t\tenvStr = envPairs.join(\"\\0\") + \"\\0\";\n\t\t}\n\n\t\tthis.handle = lib.symbols.bun_pty_spawn(\n\t\t\tBuffer.from(`${cmdline}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${cwd}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${envStr}\\0`, \"utf8\"),\n\t\t\tthis._cols,\n\t\t\tthis._rows,\n\t\t);\n\t\tif (this.handle < 0) throw new Error(\"PTY spawn failed\");\n\n\t\tthis._pid = lib.symbols.bun_pty_get_pid(this.handle);\n\t\tthis._startReadLoop();\n\t}\n\n\t/* ------------- accessors ------------- */\n\n\tget pid() {\n\t\treturn this._pid;\n\t}\n\tget cols() {\n\t\treturn this._cols;\n\t}\n\tget rows() {\n\t\treturn this._rows;\n\t}\n\tget process() {\n\t\treturn \"shell\";\n\t}\n\n\tget onData() {\n\t\treturn this._onData.event;\n\t}\n\tget onExit() {\n\t\treturn this._onExit.event;\n\t}\n\n\t/* ------------- IO methods ------------- */\n\n\twrite(data: string) {\n\t\tif (this._closing) return;\n\t\tconst buf = Buffer.from(data, \"utf8\");\n\t\tlib.symbols.bun_pty_write(this.handle, ptr(buf), buf.length);\n\t}\n\n\tresize(cols: number, rows: number) {\n\t\tif (this._closing) return;\n\t\tthis._cols = cols;\n\t\tthis._rows = rows;\n\t\tlib.symbols.bun_pty_resize(this.handle, cols, rows);\n\t}\n\n\tkill(signal = \"SIGTERM\") {\n\t\tif (this._closing) return;\n\t\tthis._closing = true;\n\t\tlib.symbols.bun_pty_kill(this.handle);\n\t\tlib.symbols.bun_pty_close(this.handle);\n\t\tthis._onExit.fire({ exitCode: 0, signal });\n\t}\n\n\t/* ------------- read-loop ------------- */\n\n\tprivate async _startReadLoop() {\n\t\tif (this._readLoop) return;\n\t\tthis._readLoop = true;\n\n\t\tconst buf = Buffer.allocUnsafe(4096);\n\n\t\twhile (this._readLoop && !this._closing) {\n\t\t\tconst n = lib.symbols.bun_pty_read(this.handle, ptr(buf), buf.length);\n\t\t\tif (n > 0) {\n\t\t\t\t// Use streaming mode to buffer incomplete UTF-8 sequences across chunks\n\t\t\t\t// This prevents corruption when multi-byte chars span chunk boundaries\n\t\t\t\tconst decoded = this._decoder.decode(buf.subarray(0, n), { stream: true });\n\t\t\t\tif (decoded) {\n\t\t\t\t\tthis._onData.fire(decoded);\n\t\t\t\t}\n\t\t\t} else if (n === -2) {\n\t\t\t\t// CHILD_EXITED - flush any remaining bytes in the decoder\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tconst exitCode = lib.symbols.bun_pty_get_exit_code(this.handle);\n\t\t\t\tthis._onExit.fire({ exitCode });\n\t\t\t\tbreak;\n\t\t\t} else if (n < 0) {\n\t\t\t\t// error - flush decoder before breaking\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// 0 bytes: wait\n\t\t\t\tawait new Promise((r) => setTimeout(r, 8));\n\t\t\t}\n\t\t}\n\t}\n}\n",
"import { Buffer } from \"node:buffer\";\n\n/**\n * Interface for disposable resources.\n */\nexport interface IDisposable {\n /**\n * Disposes the resource, performing any necessary cleanup.\n */\n dispose(): void;\n}\n\n/**\n * Event implementation for the terminal.\n */\nexport class EventEmitter<T> {\n private listeners: ((data: T) => void)[] = [];\n\n public event = (listener: (e: T) => void): IDisposable => {\n this.listeners.push(listener);\n return {\n dispose: () => {\n const i = this.listeners.indexOf(listener);\n if (i !== -1) {\n this.listeners.splice(i, 1);\n }\n }\n };\n };\n\n public fire(data: T): void {\n for (const listener of this.listeners) {\n listener(data);\n }\n }\n}\n\n/**\n * Options for spawning a new PTY process.\n */\nexport interface IPtyForkOptions {\n /**\n * The name of the terminal to be set in environment variables.\n */\n name: string;\n\n /**\n * The number of columns in the PTY.\n */\n cols?: number;\n\n /**\n * The number of rows in the PTY.\n */\n rows?: number;\n\n /**\n * The current working directory of the process.\n * Defaults to the current working directory of the parent process.\n */\n cwd?: string;\n\n /**\n * Environment variables to set for the process.\n */\n env?: Record<string, string>;\n}\n\n/**\n * Exit data for PTY process.\n */\nexport interface IExitEvent {\n /**\n * The process exit code.\n */\n exitCode: number;\n\n /**\n * The signal that caused the process to exit, if any.\n */\n signal?: number | string;\n}\n\n/**\n * Interface for interacting with a pseudo-terminal (PTY) instance.\n */\nexport interface IPty {\n /**\n * The PID of the process running in the PTY.\n */\n readonly pid: number;\n\n /**\n * The column size in characters.\n */\n readonly cols: number;\n\n /**\n * The row size in characters.\n */\n readonly rows: number;\n\n /**\n * The title of the active process.\n */\n readonly process: string;\n\n /**\n * Set a callback for when data is received from the PTY.\n */\n readonly onData: (listener: (data: string) => void) => IDisposable;\n\n /**\n * Event emitted when the PTY process exits.\n */\n readonly onExit: (listener: (event: IExitEvent) => void) => IDisposable;\n\n /**\n * Write data to the PTY.\n *\n * @param data - The data to write.\n */\n write(data: string): void;\n\n /**\n * Resize the PTY.\n *\n * @param columns - Number of columns (character width).\n * @param rows - Number of rows (character height).\n */\n resize(columns: number, rows: number): void;\n\n /**\n * Kill the process running in the PTY.\n *\n * @param signal - The signal to send to the process.\n * Defaults to \"SIGTERM\".\n */\n kill(signal?: string): void;\n} ",
"/**\n * The main export module for bun-pty.\n * Provides a cross-platform PTY interface for Bun runtime.\n */\n\nimport { Terminal } from './terminal';\nimport type { IPty, IPtyForkOptions, IExitEvent, IDisposable } from './interfaces';\n\n/**\n * Creates and spawns a new PTY with the given command and arguments.\n * \n * @param file - Path to the executable to run.\n * @param args - Arguments for the executable.\n * @param options - Options for the PTY.\n * @returns A new PTY instance.\n */\nexport function spawn(file: string, args: string[], options: IPtyForkOptions): IPty {\n return new Terminal(file, args, options);\n}\n\n// Export interfaces and implementations\nexport type { IPty, IPtyForkOptions, IExitEvent, IDisposable };\nexport { Terminal } from './terminal'; ",
"import { spawn } from \"bun-pty\"\nimport type { Opts, Proc } from \"./pty\"\n\nexport type { Disp, Exit, Opts, Proc } from \"./pty\"\n\nfunction spawnPty(file: string, args: string[], opts: Opts): Proc {\n const pty = spawn(file, args, opts)\n return {\n pid: pty.pid,\n onData(listener) {\n return pty.onData(listener)\n },\n onExit(listener) {\n return pty.onExit(listener)\n },\n write(data) {\n pty.write(data)\n },\n resize(cols, rows) {\n pty.resize(cols, rows)\n },\n kill(signal) {\n pty.kill(signal)\n },\n }\n}\n\nexport { spawnPty as spawn }\n"
],
"mappings": "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",
"debugId": "84095E0563B47B6F64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E50775C9C888BA6B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260511000411_data_migration_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260511000411_data_migration_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`data_migration\\` (\n \\`name\\` text PRIMARY KEY,\n \\`time_completed\\` integer NOT NULL\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gJAKb,EACF,EAEL",
"debugId": "7E5608D36DE896F364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/effect/layer-node.ts", "../core/src/effect/app-node.ts"],
"sourcesContent": [
"import { Brand, Context, Layer } from \"effect\"\n\ntype AnyNode = Node<unknown, unknown, any>\ntype RuntimeLayer = Layer.Layer<never, unknown, unknown>\ntype NodeList<Item extends AnyNode = AnyNode> = readonly [] | readonly [Item, ...Item[]]\nexport type Output<Item> = [Item] extends [never] ? never : Item extends Node<infer A, unknown, any> ? A : never\nexport type Error<Item> = [Item] extends [never] ? never : Item extends Node<unknown, infer E, any> ? E : never\ntype NodeTag<Item> = [Item] extends [never] ? undefined : Item extends Node<unknown, unknown, infer T> ? T : never\ntype Missing<Required, Dependencies extends NodeList> = Exclude<Required, Output<Dependencies[number]>>\ntype CheckDependencies<Implementation extends Layer.Any, Dependencies extends NodeList> = [\n Missing<Layer.Services<Implementation>, Dependencies>,\n] extends [never]\n ? unknown\n : { readonly \"Missing dependencies\": Missing<Layer.Services<Implementation>, Dependencies> }\ndeclare const $OutputType: unique symbol\ndeclare const $ErrorType: unique symbol\n\nexport type Tag<Name extends string = string> = Name & Brand.Brand<\"LayerNode.Tag\">\n\nconst makeTag = Brand.nominal<Tag>()\n\nexport interface Node<A, E = never, T extends Tag | undefined = undefined> {\n readonly kind: \"layer\" | \"unbound\" | \"group\"\n readonly name: string\n readonly service?: Context.Service.Any\n readonly implementation?: Layer.Any\n readonly dependencies: readonly AnyNode[]\n readonly tag?: T\n readonly [$OutputType]?: () => A\n readonly [$ErrorType]?: () => E\n}\n\ntype NodeIdentity =\n | { readonly service: Context.Service.Any; readonly name?: never }\n | { readonly name: string; readonly service?: never }\ntype DistributiveOmit<A, K extends PropertyKey> = A extends unknown ? Omit<A, K> : never\n\nexport type TagConfig = Readonly<Record<string, readonly string[]>>\ntype TagNames<Config extends TagConfig> = keyof Config & string\ntype NodeInTags<Names extends string> = Node<unknown, unknown, Tag<Names> | undefined>\ntype CheckTags<Items extends NodeList, Names extends string> = [Exclude<Items[number], NodeInTags<Names>>] extends [\n never,\n]\n ? unknown\n : { readonly \"Invalid tag dependencies\": Exclude<Items[number], NodeInTags<Names>> }\n\nexport interface Tags<Config extends TagConfig> {\n readonly values: { readonly [Name in TagNames<Config>]: Tag<Name> }\n readonly make: <Name extends TagNames<Config>>(\n name: Name,\n ) => <const Implementation extends Layer.Any, const Items extends NodeList>(\n input: DistributiveOmit<MakeInput<Implementation, Items, Tag<Name>>, \"tag\"> &\n CheckTags<Items, Name | Extract<Config[Name][number], string>>,\n ) => Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, Tag<Name>>\n}\n\nexport function tags<const Config extends { readonly [Name in keyof Config]: readonly (keyof Config & string)[] }>(\n config: Config,\n): Tags<Config> {\n const names = Object.keys(config) as TagNames<Config>[]\n const values = Object.fromEntries(names.map((name) => [name, makeTag(name)])) as Tags<Config>[\"values\"]\n return {\n values,\n make: ((name: TagNames<Config>) => (input: DistributiveOmit<MakeInput<Layer.Any, NodeList, Tag>, \"tag\">) =>\n make({ ...input, tag: values[name] })) as Tags<Config>[\"make\"],\n }\n}\n\n// Nodes ---------------------------------------------------------------------\n\ntype MakeInput<\n Implementation extends Layer.Any,\n Items extends NodeList,\n T extends Tag | undefined = undefined,\n> = NodeIdentity & {\n readonly layer: Implementation\n readonly deps: Items & CheckDependencies<Implementation, NoInfer<Items>>\n readonly tag?: T\n}\n\nexport function make<\n const Implementation extends Layer.Any,\n const Items extends NodeList,\n const T extends Tag | undefined = undefined,\n>(\n input: MakeInput<Implementation, Items, T>,\n): Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, T> {\n return {\n kind: \"layer\",\n name: input.service !== undefined ? input.service.key : input.name,\n service: input.service,\n implementation: input.layer,\n dependencies: input.deps,\n tag: input.tag,\n }\n}\n\nexport function unbound<R, Shape, const T extends Tag>(service: Context.Key<R, Shape>, tag: T): Node<R, never, T> {\n return {\n kind: \"unbound\",\n name: service.key,\n service,\n dependencies: [],\n tag,\n }\n}\n\nexport function group<const Items extends readonly AnyNode[]>(\n dependencies: Items,\n): Node<Output<Items[number]>, Error<Items[number]>, NodeTag<Items[number]>> {\n return { kind: \"group\", name: \"group\", dependencies }\n}\n\nexport type Replacement = readonly [source: AnyNode, replacement: AnyNode | Layer.Any]\nexport type Replacements = readonly Replacement[]\n\ntype CheckReplacementErrors<SourceError, ReplacementError> = [Exclude<ReplacementError, SourceError>] extends [never]\n ? unknown\n : { readonly \"New replacement errors\": Exclude<ReplacementError, SourceError> }\n\ntype CheckReplacement<Item> = Item extends readonly [Node<infer A, infer E, infer T>, infer Replacement]\n ? Replacement extends Node<NoInfer<A>, infer E2, T>\n ? CheckReplacementErrors<E, NoInfer<E2>>\n : Replacement extends Layer.Layer<NoInfer<A>, infer E2, never>\n ? CheckReplacementErrors<E, NoInfer<E2>>\n : { readonly \"Invalid replacement\": Replacement }\n : { readonly \"Invalid replacement\": Item }\n\ntype CheckReplacements<Items extends Replacements> = {\n readonly [K in keyof Items]: CheckReplacement<Items[K]>\n}\n\ntype ValidReplacements<Items extends Replacements> = Items & CheckReplacements<Items>\n\nfunction replacementNode(source: AnyNode, replacement: AnyNode | Layer.Any) {\n const replacementNode = isNode(replacement)\n ? replacement\n : make({\n ...nodeMakeIdentity(source),\n layer: replacement as Layer.Layer<unknown, unknown>,\n deps: [],\n tag: source.tag,\n })\n if (source.name !== replacementNode.name) {\n throw new Error(`Cannot replace ${source.name} with ${replacementNode.name}`)\n }\n if (source.tag !== replacementNode.tag) {\n throw new Error(`Cannot replace ${source.name} across tags`)\n }\n return replacementNode\n}\n\nfunction nodeMakeIdentity(node: AnyNode): NodeIdentity {\n if (node.service !== undefined) return { service: node.service }\n return { name: node.name }\n}\n\nfunction isNode(input: Layer.Any | AnyNode): input is AnyNode {\n return \"kind\" in input && \"dependencies\" in input\n}\n\n// Tree -----------------------------------------------------------------------\n\ntype Visit<Result> = (node: AnyNode, context: VisitContext<Result>) => Result\n\ntype VisitContext<Result> = {\n readonly cache: Map<AnyNode, Result>\n readonly visit: (node: AnyNode) => Result\n}\n\nfunction walk<Result>(\n root: AnyNode,\n visit: Visit<Result>,\n options: {\n readonly cache?: Map<AnyNode, Result>\n readonly resolve?: (node: AnyNode) => AnyNode\n readonly detectCycles?: boolean\n } = {},\n) {\n const cache = options.cache ?? new Map<AnyNode, Result>()\n const visiting = new Set<AnyNode>()\n const stack: AnyNode[] = []\n\n const recur = (node: AnyNode): Result => {\n const target = options.resolve?.(node) ?? node\n const cached = cache.get(target)\n if (cached !== undefined || cache.has(target)) return cached!\n\n if (options.detectCycles !== false && visiting.has(target)) {\n const start = stack.indexOf(target)\n throw new Error(\n `Cycle detected in layer tree: ${[...stack.slice(start), target].map((item) => item.name).join(\" -> \")}`,\n )\n }\n\n visiting.add(target)\n stack.push(target)\n try {\n const result = visit(target, { cache, visit: recur })\n if (!cache.has(target)) cache.set(target, result)\n return result\n } finally {\n stack.pop()\n visiting.delete(target)\n }\n }\n\n return recur(root)\n}\n\nexport function hoist<A, E, T extends Tag, const Items extends Replacements = readonly []>(\n root: Node<A, E, any>,\n tag: T,\n replacements?: ValidReplacements<Items>,\n): {\n readonly node: Node<A, E>\n readonly hoisted: Node<unknown, E>\n} {\n const hoisted = new Map<string, AnyNode>()\n const replacementMap = replacementMapFrom(replacements)\n\n const node = walk<AnyNode>(\n root,\n (node, context) => {\n if (node.kind === \"group\") {\n return { ...node, dependencies: node.dependencies.map(context.visit) }\n }\n if (node.tag === tag) {\n const existing = hoisted.get(node.name)\n if (existing && existing.implementation !== node.implementation) {\n throw new Error(`Tag ${tag} has conflicting implementations for ${node.name}`)\n }\n hoisted.set(node.name, rewriteReplacementDependencies(node, replacementMap))\n return group([])\n }\n if (node.kind === \"unbound\") {\n return node\n }\n return { ...node, dependencies: node.dependencies.map(context.visit) }\n },\n { resolve: (node) => replacementMap.get(node.name) ?? node },\n )\n\n return {\n node: node as Node<A, E>,\n hoisted: group(Array.from(hoisted.values())) as Node<unknown, E>,\n }\n}\n\nexport function compile<A, E, const Items extends Replacements = readonly []>(\n root: Node<A, E, any>,\n replacements?: ValidReplacements<Items>,\n): Layer.Layer<A, E> {\n const replacementMap = replacementMapFrom(replacements)\n const cache = new Map<AnyNode, RuntimeLayer>()\n const compileNode = (node: AnyNode) =>\n walk<RuntimeLayer>(\n node,\n (node, context) => {\n if (node.kind === \"unbound\") throw new Error(`Unbound layer node: ${node.name}`)\n const dependencies = node.dependencies.flatMap(flatten).map(context.visit)\n const implementation = node.implementation! as RuntimeLayer\n return dependencies.length === 0\n ? implementation\n : implementation.pipe(Layer.provide(dependencies as [RuntimeLayer, ...RuntimeLayer[]]))\n },\n { cache, resolve: (node) => replacementMap.get(node.name) ?? node },\n )\n const layers = flatten(root).map((node) => compileNode(node))\n const layer = layers.reduce<RuntimeLayer>((result, layer) => layer.pipe(Layer.provideMerge(result)), Layer.empty)\n return layer as Layer.Layer<A, E>\n}\n\nfunction replacementMapFrom(replacements?: Replacements) {\n return (\n replacements?.reduce((map, [source, replacement]) => {\n const normalized = rewriteReplacementDependencies(replacementNode(source, replacement), map)\n const current = new Map([[source.name, normalized]])\n for (const [name, node] of map) map.set(name, rewriteReplacementDependencies(node, current))\n map.set(source.name, normalized)\n return map\n }, new Map<string, AnyNode>()) ?? new Map<string, AnyNode>()\n )\n}\n\nfunction rewriteReplacementDependencies(root: AnyNode, replacements: ReadonlyMap<string, AnyNode>) {\n if (replacements.size === 0) return root\n const cache = new Map<AnyNode, AnyNode>()\n const visiting = new Set<AnyNode>()\n const stack: AnyNode[] = []\n\n const recur = (node: AnyNode, isRoot = false): AnyNode => {\n const target = isRoot ? node : (replacements.get(node.name) ?? node)\n const cached = cache.get(target)\n if (cached !== undefined || cache.has(target)) return cached!\n if (visiting.has(target)) {\n const start = stack.indexOf(target)\n throw new Error(\n `Cycle detected in layer tree: ${[...stack.slice(start), target].map((item) => item.name).join(\" -> \")}`,\n )\n }\n\n visiting.add(target)\n stack.push(target)\n try {\n const dependencies = target.dependencies.map((dependency) => recur(dependency))\n const result = dependencies.every((dependency, index) => dependency === target.dependencies[index])\n ? target\n : { ...target, dependencies }\n cache.set(target, result)\n return result\n } finally {\n stack.pop()\n visiting.delete(target)\n }\n }\n\n return recur(root, true)\n}\n\nexport function hasUnbound(root: Node<unknown, unknown, any>, source: AnyNode): boolean {\n if (source.kind !== \"unbound\") throw new Error(`Cannot check non-unbound layer node: ${source.name}`)\n return walk<boolean>(root, (node, context) => {\n if (node === source) return true\n return node.dependencies.some(context.visit)\n })\n}\n\nfunction flatten(node: AnyNode): readonly AnyNode[] {\n return node.kind === \"group\" ? node.dependencies.flatMap(flatten) : [node]\n}\n\nexport * as LayerNode from \"./layer-node\"\n",
"import { LayerNode } from \"./layer-node\"\n\nexport const tags = LayerNode.tags({\n location: [\"global\"],\n global: [],\n})\n\nexport type GlobalNode<A, E = never> = LayerNode.Node<A, E, (typeof tags.values)[\"global\"]>\nexport type LocationNode<A, E = never> = LayerNode.Node<A, E, (typeof tags.values)[\"location\"]>\n\nexport const makeGlobalNode = tags.make(\"global\")\nexport const makeLocationNode = tags.make(\"location\")\n\nexport * as Node from \"./app-node\"\n"
],
"mappings": "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",
"debugId": "12C9E58D592FFF1964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "88140C4C6297AB4864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260410174513_workspace-name.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260410174513_workspace-name\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_workspace\\` (\n \\`id\\` text PRIMARY KEY,\n \\`type\\` text NOT NULL,\n \\`name\\` text DEFAULT '' NOT NULL,\n \\`branch\\` text,\n \\`directory\\` text,\n \\`extra\\` text,\n \\`project_id\\` text NOT NULL,\n CONSTRAINT \\`fk_workspace_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_workspace\\`(\\`id\\`, \\`type\\`, \\`branch\\`, \\`name\\`, \\`directory\\`, \\`extra\\`, \\`project_id\\`) SELECT \\`id\\`, \\`type\\`, \\`branch\\`, \\`name\\`, \\`directory\\`, \\`extra\\`, \\`project_id\\` FROM \\`workspace\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`workspace\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_workspace\\` RENAME TO \\`workspace\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,4aAWb,EACD,MAAO,EAAG,IACR,+LACF,EACA,MAAO,EAAG,IAAI,yBAA2B,EACzC,MAAO,EAAG,IAAI,sDAA0D,EACxE,MAAO,EAAG,IAAI,yBAAyB,EACxC,EAEL",
"debugId": "2CF60F8B17C0A23F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260511173437_session-metadata.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260511173437_session-metadata\",\n up(tx) {\n return Effect.gen(function* () {\n // This column briefly shipped again under 20260530232709_lovely_romulus.\n if (\n (yield* tx.all<{ name: string }>(`PRAGMA table_info(\\`session\\`)`)).some((column) => column.name === \"metadata\")\n )\n return\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`metadata\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAE7B,IACG,MAAO,EAAG,IAAsB,8BAAgC,GAAG,KAAK,CAAC,IAAW,EAAO,OAAS,UAAU,EAE/G,OACF,MAAO,EAAG,IAAI,4CAAgD,EAC/D,EAEL",
"debugId": "6F99BFE1D30CF4BD64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/mcp/list.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport { OpenCode, type McpServer } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.list,\n Effect.fn(\"cli.mcp.list\")(function* () {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.ensure(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const response = yield* Effect.promise(() => client.mcp.list({ location: { directory: process.cwd() } }))\n const servers = response.data.toSorted((a, b) => a.name.localeCompare(b.name))\n if (servers.length === 0) {\n process.stdout.write(\"No MCP servers configured\" + EOL)\n return\n }\n const width = Math.max(...servers.map((server) => server.name.length))\n const lines = servers.map(\n (server) => `${icon(server.status)} ${server.name.padEnd(width)} ${describe(server.status)}`,\n )\n process.stdout.write(lines.join(EOL) + EOL)\n }),\n)\n\nfunction icon(status: McpServer[\"status\"]) {\n switch (status.status) {\n case \"connected\":\n return \"✓\"\n case \"needs_auth\":\n return \"⚠\"\n case \"failed\":\n case \"needs_client_registration\":\n return \"✗\"\n default:\n return \"○\"\n }\n}\n\nfunction describe(status: McpServer[\"status\"]) {\n switch (status.status) {\n case \"needs_auth\":\n return \"needs authentication\"\n case \"needs_client_registration\":\n return `needs client registration: ${status.error}`\n case \"failed\":\n return `failed: ${status.error}`\n default:\n return status.status\n }\n}\n"
],
"mappings": ";83BAAA,mBAAS,gBAQT,SAAe,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,UAC/B,OAAO,QAAG,mBAAc,OAAE,cAAU,OAAG,MACrC,SAAM,OAAU,WAAO,OAAc,aAAQ,OAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,OAAO,CAAO,GAClD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,GADW,MAAO,EAAO,QAAQ,IAAM,EAAO,IAAI,KAAK,CAAE,SAAU,CAAE,UAAW,QAAQ,IAAI,CAAE,CAAE,CAAC,CAAC,GAC/E,KAAK,SAAS,CAAC,EAAG,IAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC,EAC7E,GAAI,EAAQ,SAAW,EAAG,CACxB,QAAQ,OAAO,MAAM,4BAA8B,CAAG,EACtD,OAEF,IAAM,EAAQ,KAAK,IAAI,GAAG,EAAQ,IAAI,CAAC,IAAW,EAAO,KAAK,MAAM,CAAC,EAC/D,EAAQ,EAAQ,IACpB,CAAC,IAAW,GAAG,EAAK,EAAO,MAAM,KAAK,EAAO,KAAK,OAAO,CAAK,MAAM,EAAS,EAAO,MAAM,GAC5F,EACA,QAAQ,OAAO,MAAM,EAAM,KAAK,CAAG,EAAI,CAAG,EAC3C,CACH,EAEA,SAAS,CAAI,CAAC,EAA6B,CACzC,OAAQ,EAAO,YACR,YACH,MAAO,aACJ,aACH,MAAO,aACJ,aACA,4BACH,MAAO,iBAEP,MAAO,UAIb,SAAS,CAAQ,CAAC,EAA6B,CAC7C,OAAQ,EAAO,YACR,aACH,MAAO,2BACJ,4BACH,MAAO,8BAA8B,EAAO,YACzC,SACH,MAAO,WAAW,EAAO,gBAEzB,OAAO,EAAO",
"debugId": "5577B2D4F97EA30064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/theme/color.ts", "../tui/src/theme/v1.ts", "../tui/src/theme/index.ts", "../tui/src/theme/system.ts", "../tui/src/context/helper.tsx", "../tui/src/context/theme.tsx"],
"sourcesContent": [
"import { RGBA } from \"@opentui/core\"\n\nexport function ansiToRgba(code: number): RGBA {\n if (code < 16) {\n const ansiColors = [\n \"#000000\",\n \"#800000\",\n \"#008000\",\n \"#808000\",\n \"#000080\",\n \"#800080\",\n \"#008080\",\n \"#c0c0c0\",\n \"#808080\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ffff00\",\n \"#0000ff\",\n \"#ff00ff\",\n \"#00ffff\",\n \"#ffffff\",\n ]\n return RGBA.fromHex(ansiColors[code] ?? \"#000000\")\n }\n\n if (code < 232) {\n const index = code - 16\n const b = index % 6\n const g = Math.floor(index / 6) % 6\n const r = Math.floor(index / 36)\n const val = (x: number) => (x === 0 ? 0 : x * 40 + 55)\n return RGBA.fromInts(val(r), val(g), val(b))\n }\n\n if (code < 256) {\n const gray = (code - 232) * 10 + 8\n return RGBA.fromInts(gray, gray, gray)\n }\n\n return RGBA.fromInts(0, 0, 0)\n}\n\nexport function tint(base: RGBA, overlay: RGBA, alpha: number): RGBA {\n const r = base.r + (overlay.r - base.r) * alpha\n const g = base.g + (overlay.g - base.g) * alpha\n const b = base.b + (overlay.b - base.b) * alpha\n return RGBA.fromInts(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n",
"import { RGBA, SyntaxStyle } from \"@opentui/core\"\nimport aura from \"./assets/aura.json\" with { type: \"json\" }\nimport ayu from \"./assets/ayu.json\" with { type: \"json\" }\nimport carbonfox from \"./assets/carbonfox.json\" with { type: \"json\" }\nimport catppuccinFrappe from \"./assets/catppuccin-frappe.json\" with { type: \"json\" }\nimport catppuccinMacchiato from \"./assets/catppuccin-macchiato.json\" with { type: \"json\" }\nimport catppuccin from \"./assets/catppuccin.json\" with { type: \"json\" }\nimport cobalt2 from \"./assets/cobalt2.json\" with { type: \"json\" }\nimport cursor from \"./assets/cursor.json\" with { type: \"json\" }\nimport dracula from \"./assets/dracula.json\" with { type: \"json\" }\nimport everforest from \"./assets/everforest.json\" with { type: \"json\" }\nimport flexoki from \"./assets/flexoki.json\" with { type: \"json\" }\nimport github from \"./assets/github.json\" with { type: \"json\" }\nimport gruvbox from \"./assets/gruvbox.json\" with { type: \"json\" }\nimport kanagawa from \"./assets/kanagawa.json\" with { type: \"json\" }\nimport lucentOrng from \"./assets/lucent-orng.json\" with { type: \"json\" }\nimport material from \"./assets/material.json\" with { type: \"json\" }\nimport matrix from \"./assets/matrix.json\" with { type: \"json\" }\nimport mercury from \"./assets/mercury.json\" with { type: \"json\" }\nimport monokai from \"./assets/monokai.json\" with { type: \"json\" }\nimport nightowl from \"./assets/nightowl.json\" with { type: \"json\" }\nimport nord from \"./assets/nord.json\" with { type: \"json\" }\nimport onedark from \"./assets/one-dark.json\" with { type: \"json\" }\nimport opencode from \"./assets/opencode.json\" with { type: \"json\" }\nimport orng from \"./assets/orng.json\" with { type: \"json\" }\nimport osakaJade from \"./assets/osaka-jade.json\" with { type: \"json\" }\nimport palenight from \"./assets/palenight.json\" with { type: \"json\" }\nimport rosepine from \"./assets/rosepine.json\" with { type: \"json\" }\nimport solarized from \"./assets/solarized.json\" with { type: \"json\" }\nimport synthwave84 from \"./assets/synthwave84.json\" with { type: \"json\" }\nimport tokyonight from \"./assets/tokyonight.json\" with { type: \"json\" }\nimport vercel from \"./assets/vercel.json\" with { type: \"json\" }\nimport vesper from \"./assets/vesper.json\" with { type: \"json\" }\nimport zenburn from \"./assets/zenburn.json\" with { type: \"json\" }\n\nexport type Theme = {\n readonly primary: RGBA\n readonly secondary: RGBA\n readonly accent: RGBA\n readonly error: RGBA\n readonly warning: RGBA\n readonly success: RGBA\n readonly info: RGBA\n readonly text: RGBA\n readonly textMuted: RGBA\n readonly selectedListItemText: RGBA\n readonly background: RGBA\n readonly backgroundPanel: RGBA\n readonly backgroundElement: RGBA\n readonly backgroundMenu: RGBA\n readonly border: RGBA\n readonly borderActive: RGBA\n readonly borderSubtle: RGBA\n readonly diffAdded: RGBA\n readonly diffRemoved: RGBA\n readonly diffContext: RGBA\n readonly diffHunkHeader: RGBA\n readonly diffHighlightAdded: RGBA\n readonly diffHighlightRemoved: RGBA\n readonly diffAddedBg: RGBA\n readonly diffRemovedBg: RGBA\n readonly diffContextBg: RGBA\n readonly diffLineNumber: RGBA\n readonly diffAddedLineNumberBg: RGBA\n readonly diffRemovedLineNumberBg: RGBA\n readonly markdownText: RGBA\n readonly markdownHeading: RGBA\n readonly markdownLink: RGBA\n readonly markdownLinkText: RGBA\n readonly markdownCode: RGBA\n readonly markdownBlockQuote: RGBA\n readonly markdownEmph: RGBA\n readonly markdownStrong: RGBA\n readonly markdownHorizontalRule: RGBA\n readonly markdownListItem: RGBA\n readonly markdownListEnumeration: RGBA\n readonly markdownImage: RGBA\n readonly markdownImageText: RGBA\n readonly markdownCodeBlock: RGBA\n readonly syntaxComment: RGBA\n readonly syntaxKeyword: RGBA\n readonly syntaxFunction: RGBA\n readonly syntaxVariable: RGBA\n readonly syntaxString: RGBA\n readonly syntaxNumber: RGBA\n readonly syntaxType: RGBA\n readonly syntaxOperator: RGBA\n readonly syntaxPunctuation: RGBA\n readonly thinkingOpacity: number\n _hasSelectedListItemText: boolean\n}\n\nexport type ThemeColor = Exclude<keyof Theme, \"thinkingOpacity\" | \"_hasSelectedListItemText\">\nexport type HexColor = `#${string}`\nexport type RefName = string\nexport type Variant = {\n dark: HexColor | RefName\n light: HexColor | RefName\n}\nexport type ColorValue = HexColor | RefName | Variant | RGBA\nexport type ThemeJson = {\n $schema?: string\n defs?: Record<string, HexColor | RefName>\n theme: Omit<Record<ThemeColor, ColorValue>, \"selectedListItemText\" | \"backgroundMenu\"> & {\n selectedListItemText?: ColorValue\n backgroundMenu?: ColorValue\n thinkingOpacity?: number\n }\n}\n\nexport const DEFAULT_THEMES: Record<string, ThemeJson> = {\n aura,\n ayu,\n catppuccin,\n [\"catppuccin-frappe\"]: catppuccinFrappe,\n [\"catppuccin-macchiato\"]: catppuccinMacchiato,\n cobalt2,\n cursor,\n dracula,\n everforest,\n flexoki,\n github,\n gruvbox,\n kanagawa,\n material,\n matrix,\n mercury,\n monokai,\n nightowl,\n nord,\n [\"one-dark\"]: onedark,\n [\"osaka-jade\"]: osakaJade,\n opencode,\n orng,\n [\"lucent-orng\"]: lucentOrng,\n palenight,\n rosepine,\n solarized,\n synthwave84,\n tokyonight,\n vesper,\n vercel,\n zenburn,\n carbonfox,\n}\n\nexport function selectedForeground(theme: Theme, bg?: RGBA): RGBA {\n if (theme._hasSelectedListItemText) return theme.selectedListItemText\n\n if (theme.background.a === 0) {\n const targetColor = bg ?? theme.primary\n const { r, g, b } = targetColor\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b\n return luminance > 0.5 ? RGBA.fromInts(0, 0, 0) : RGBA.fromInts(255, 255, 255)\n }\n\n return theme.background\n}\n\nexport function generateSyntax(theme: Theme) {\n return SyntaxStyle.fromTheme(getSyntaxRules(theme))\n}\n\nfunction getSyntaxRules(theme: Theme) {\n return [\n {\n scope: [\"default\"],\n style: {\n foreground: theme.text,\n },\n },\n {\n scope: [\"prompt\"],\n style: {\n foreground: theme.accent,\n },\n },\n {\n scope: [\"extmark.file\"],\n style: {\n foreground: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"extmark.agent\"],\n style: {\n foreground: theme.secondary,\n bold: true,\n },\n },\n {\n scope: [\"extmark.paste\"],\n style: {\n foreground: selectedForeground(theme, theme.warning),\n background: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"comment\"],\n style: {\n foreground: theme.syntaxComment,\n italic: true,\n },\n },\n {\n scope: [\"comment.documentation\"],\n style: {\n foreground: theme.syntaxComment,\n italic: true,\n },\n },\n {\n scope: [\"string\", \"symbol\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"number\", \"boolean\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"character.special\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"keyword.return\", \"keyword.conditional\", \"keyword.repeat\", \"keyword.coroutine\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.type\"],\n style: {\n foreground: theme.syntaxType,\n bold: true,\n italic: true,\n },\n },\n {\n scope: [\"keyword.function\", \"function.method\"],\n style: {\n foreground: theme.syntaxFunction,\n },\n },\n {\n scope: [\"keyword\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.import\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"operator\", \"keyword.operator\", \"punctuation.delimiter\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"keyword.conditional.ternary\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"variable\", \"variable.parameter\", \"function.method.call\", \"function.call\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"variable.member\", \"function\", \"constructor\"],\n style: {\n foreground: theme.syntaxFunction,\n },\n },\n {\n scope: [\"type\", \"module\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"constant\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"property\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"class\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"parameter\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"punctuation\", \"punctuation.bracket\"],\n style: {\n foreground: theme.syntaxPunctuation,\n },\n },\n {\n scope: [\"variable.builtin\", \"type.builtin\", \"function.builtin\", \"module.builtin\", \"constant.builtin\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"variable.super\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"string.escape\", \"string.regexp\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"keyword.directive\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"punctuation.special\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"keyword.modifier\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.exception\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n // Markdown specific styles\n {\n scope: [\"markup.heading\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.1\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n underline: true,\n },\n },\n {\n scope: [\"markup.heading.2\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.3\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.4\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.5\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.6\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.bold\", \"markup.strong\"],\n style: {\n foreground: theme.markdownStrong,\n bold: true,\n },\n },\n {\n scope: [\"markup.italic\"],\n style: {\n foreground: theme.markdownEmph,\n italic: true,\n },\n },\n {\n scope: [\"markup.list\"],\n style: {\n foreground: theme.markdownListItem,\n },\n },\n {\n scope: [\"markup.quote\"],\n style: {\n foreground: theme.markdownBlockQuote,\n italic: true,\n },\n },\n {\n scope: [\"markup.raw\", \"markup.raw.block\"],\n style: {\n foreground: theme.markdownCode,\n },\n },\n {\n scope: [\"markup.raw.inline\"],\n style: {\n foreground: theme.markdownCode,\n background: theme.background,\n },\n },\n {\n scope: [\"markup.link\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"markup.link.label\"],\n style: {\n foreground: theme.markdownLinkText,\n underline: true,\n },\n },\n {\n scope: [\"markup.link.url\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"label\"],\n style: {\n foreground: theme.markdownLinkText,\n },\n },\n {\n scope: [\"spell\", \"nospell\"],\n style: {\n foreground: theme.text,\n },\n },\n // Additional common highlight groups\n {\n scope: [\"string.special\", \"string.special.url\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"character\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"float\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"comment.error\"],\n style: {\n foreground: theme.error,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"comment.warning\"],\n style: {\n foreground: theme.warning,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"comment.todo\", \"comment.note\"],\n style: {\n foreground: theme.info,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"namespace\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"field\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"type.definition\"],\n style: {\n foreground: theme.syntaxType,\n bold: true,\n },\n },\n {\n scope: [\"keyword.export\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"attribute\", \"annotation\"],\n style: {\n foreground: theme.warning,\n },\n },\n {\n scope: [\"tag\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"tag.attribute\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"tag.delimiter\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"markup.strikethrough\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n {\n scope: [\"markup.underline\"],\n style: {\n foreground: theme.text,\n underline: true,\n },\n },\n {\n scope: [\"markup.list.checked\"],\n style: {\n foreground: theme.success,\n },\n },\n {\n scope: [\"markup.list.unchecked\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n {\n scope: [\"diff.plus\"],\n style: {\n foreground: theme.diffAdded,\n background: theme.diffAddedBg,\n },\n },\n {\n scope: [\"diff.minus\"],\n style: {\n foreground: theme.diffRemoved,\n background: theme.diffRemovedBg,\n },\n },\n {\n scope: [\"diff.delta\"],\n style: {\n foreground: theme.diffContext,\n background: theme.diffContextBg,\n },\n },\n {\n scope: [\"error\"],\n style: {\n foreground: theme.error,\n bold: true,\n },\n },\n {\n scope: [\"warning\"],\n style: {\n foreground: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"info\"],\n style: {\n foreground: theme.info,\n },\n },\n {\n scope: [\"debug\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n ]\n}\n",
"import { RGBA } from \"@opentui/core\"\nimport { ansiToRgba } from \"./color\"\nimport { DEFAULT_THEMES, type ColorValue, type Theme, type ThemeColor, type ThemeJson } from \"./v1\"\n\nexport { DEFAULT_THEMES, generateSyntax, selectedForeground, type Theme, type ThemeJson } from \"./v1\"\n\nconst pluginThemes: Record<string, ThemeJson> = {}\nlet customThemes: Record<string, ThemeJson> = {}\nlet systemTheme: ThemeJson | undefined\nconst listeners = new Set<(themes: Record<string, ThemeJson>) => void>()\n\nfunction listThemes() {\n // Priority: defaults < plugin installs < custom files < generated system.\n const themes = {\n ...DEFAULT_THEMES,\n ...pluginThemes,\n ...customThemes,\n }\n if (!systemTheme) return themes\n return {\n ...themes,\n system: systemTheme,\n }\n}\n\nfunction syncThemes() {\n const themes = listThemes()\n for (const listener of listeners) listener(themes)\n}\n\nexport function allThemes() {\n return listThemes()\n}\n\nexport function isTheme(theme: unknown): theme is ThemeJson {\n if (typeof theme !== \"object\" || theme === null || Array.isArray(theme)) return false\n const value = Reflect.get(theme, \"theme\")\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nexport function subscribeThemes(listener: (themes: Record<string, ThemeJson>) => void) {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n\nexport function setCustomThemes(themes: Record<string, ThemeJson>) {\n customThemes = themes\n syncThemes()\n}\n\nexport function setSystemTheme(theme: ThemeJson | undefined) {\n systemTheme = theme\n syncThemes()\n}\n\nexport function hasTheme(name: string) {\n if (!name) return false\n return allThemes()[name] !== undefined\n}\n\nexport function addTheme(name: string, theme: unknown) {\n if (!name) return false\n if (!isTheme(theme)) return false\n if (hasTheme(name)) return false\n pluginThemes[name] = theme\n syncThemes()\n return true\n}\n\nexport function upsertTheme(name: string, theme: unknown) {\n if (!name) return false\n if (!isTheme(theme)) return false\n if (customThemes[name] !== undefined) {\n customThemes[name] = theme\n } else {\n pluginThemes[name] = theme\n }\n syncThemes()\n return true\n}\n\nexport function resolveTheme(theme: ThemeJson, mode: \"dark\" | \"light\") {\n const defs = theme.defs ?? {}\n function resolveColor(c: ColorValue, chain: string[] = []): RGBA {\n if (c instanceof RGBA) return c\n if (typeof c === \"string\") {\n if (c === \"transparent\" || c === \"none\") return RGBA.fromInts(0, 0, 0, 0)\n\n if (c.startsWith(\"#\")) return RGBA.fromHex(c)\n\n if (chain.includes(c)) {\n throw new Error(`Circular color reference: ${[...chain, c].join(\" -> \")}`)\n }\n\n const next = defs[c] ?? theme.theme[c as ThemeColor]\n if (next === undefined) {\n throw new Error(`Color reference \"${c}\" not found in defs or theme`)\n }\n return resolveColor(next, [...chain, c])\n }\n if (typeof c === \"number\") {\n return ansiToRgba(c)\n }\n return resolveColor(c[mode], chain)\n }\n\n const resolved = Object.fromEntries(\n Object.entries(theme.theme)\n .filter(([key]) => key !== \"selectedListItemText\" && key !== \"backgroundMenu\" && key !== \"thinkingOpacity\")\n .map(([key, value]) => {\n return [key, resolveColor(value as ColorValue)]\n }),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n // Handle selectedListItemText separately since it's optional\n const hasSelectedListItemText = theme.theme.selectedListItemText !== undefined\n if (hasSelectedListItemText) {\n resolved.selectedListItemText = resolveColor(theme.theme.selectedListItemText!)\n } else {\n // Backward compatibility: if selectedListItemText is not defined, use background color\n // This preserves the current behavior for all existing themes\n resolved.selectedListItemText = resolved.background\n }\n\n // Handle backgroundMenu - optional with fallback to backgroundElement\n if (theme.theme.backgroundMenu !== undefined) {\n resolved.backgroundMenu = resolveColor(theme.theme.backgroundMenu)\n } else {\n resolved.backgroundMenu = resolved.backgroundElement\n }\n\n // Handle thinkingOpacity - optional with default of 0.6\n const thinkingOpacity = theme.theme.thinkingOpacity ?? 0.6\n\n return {\n ...resolved,\n _hasSelectedListItemText: hasSelectedListItemText,\n thinkingOpacity,\n } as Theme\n}\n",
"import { RGBA, type TerminalColors } from \"@opentui/core\"\nimport { ansiToRgba, tint } from \"./color\"\n\nexport function terminalMode(colors: TerminalColors): \"dark\" | \"light\" | undefined {\n const bg = colors.defaultBackground\n if (!bg) return\n const { r, g, b } = RGBA.fromHex(bg)\n return 0.299 * r + 0.587 * g + 0.114 * b > 0.5 ? \"light\" : \"dark\"\n}\n\nexport function generateSystem(colors: TerminalColors, mode: \"dark\" | \"light\") {\n const bg = RGBA.fromHex(colors.defaultBackground ?? colors.palette[0]!)\n const fg = RGBA.fromHex(colors.defaultForeground ?? colors.palette[7]!)\n const transparent = RGBA.fromValues(bg.r, bg.g, bg.b, 0)\n const isDark = mode === \"dark\"\n\n const col = (index: number) => {\n const value = colors.palette[index]\n if (value) return RGBA.fromHex(value)\n return ansiToRgba(index)\n }\n\n const grays = generateGrayScale(bg, isDark)\n const textMuted = generateMutedTextColor(bg, isDark)\n const ansiColors = {\n red: col(1),\n green: col(2),\n yellow: col(3),\n blue: col(4),\n magenta: col(5),\n cyan: col(6),\n redBright: col(9),\n greenBright: col(10),\n }\n\n const diffAlpha = isDark ? 0.22 : 0.14\n const diffAddedBg = tint(bg, ansiColors.green, diffAlpha)\n const diffRemovedBg = tint(bg, ansiColors.red, diffAlpha)\n const diffContextBg = grays[2]\n const diffAddedLineNumberBg = tint(diffContextBg, ansiColors.green, diffAlpha)\n const diffRemovedLineNumberBg = tint(diffContextBg, ansiColors.red, diffAlpha)\n\n return {\n theme: {\n primary: ansiColors.cyan,\n secondary: ansiColors.magenta,\n accent: ansiColors.cyan,\n error: ansiColors.red,\n warning: ansiColors.yellow,\n success: ansiColors.green,\n info: ansiColors.cyan,\n text: fg,\n textMuted,\n selectedListItemText: bg,\n background: transparent,\n backgroundPanel: grays[2],\n backgroundElement: grays[3],\n backgroundMenu: grays[3],\n borderSubtle: grays[6],\n border: grays[7],\n borderActive: grays[8],\n diffAdded: ansiColors.green,\n diffRemoved: ansiColors.red,\n diffContext: grays[7],\n diffHunkHeader: grays[7],\n diffHighlightAdded: ansiColors.greenBright,\n diffHighlightRemoved: ansiColors.redBright,\n diffAddedBg,\n diffRemovedBg,\n diffContextBg,\n diffLineNumber: textMuted,\n diffAddedLineNumberBg,\n diffRemovedLineNumberBg,\n markdownText: fg,\n markdownHeading: fg,\n markdownLink: ansiColors.blue,\n markdownLinkText: ansiColors.cyan,\n markdownCode: ansiColors.green,\n markdownBlockQuote: ansiColors.yellow,\n markdownEmph: ansiColors.yellow,\n markdownStrong: fg,\n markdownHorizontalRule: grays[7],\n markdownListItem: ansiColors.blue,\n markdownListEnumeration: ansiColors.cyan,\n markdownImage: ansiColors.blue,\n markdownImageText: ansiColors.cyan,\n markdownCodeBlock: fg,\n syntaxComment: textMuted,\n syntaxKeyword: ansiColors.magenta,\n syntaxFunction: ansiColors.blue,\n syntaxVariable: fg,\n syntaxString: ansiColors.green,\n syntaxNumber: ansiColors.yellow,\n syntaxType: ansiColors.cyan,\n syntaxOperator: ansiColors.cyan,\n syntaxPunctuation: fg,\n },\n }\n}\n\nfunction generateGrayScale(bg: RGBA, isDark: boolean): Record<number, RGBA> {\n const grays: Record<number, RGBA> = {}\n const bgR = bg.r * 255\n const bgG = bg.g * 255\n const bgB = bg.b * 255\n const luminance = 0.299 * bgR + 0.587 * bgG + 0.114 * bgB\n\n for (let i = 1; i <= 12; i++) {\n const factor = i / 12\n\n if (isDark && luminance < 10) {\n const gray = Math.floor(factor * 0.4 * 255)\n grays[i] = RGBA.fromInts(gray, gray, gray)\n continue\n }\n\n if (!isDark && luminance > 245) {\n const gray = Math.floor(255 - factor * 0.4 * 255)\n grays[i] = RGBA.fromInts(gray, gray, gray)\n continue\n }\n\n const next = isDark ? luminance + (255 - luminance) * factor * 0.4 : luminance * (1 - factor * 0.4)\n const ratio = next / luminance\n grays[i] = RGBA.fromInts(\n Math.floor(Math.min(Math.max(bgR * ratio, 0), 255)),\n Math.floor(Math.min(Math.max(bgG * ratio, 0), 255)),\n Math.floor(Math.min(Math.max(bgB * ratio, 0), 255)),\n )\n }\n\n return grays\n}\n\nfunction generateMutedTextColor(bg: RGBA, isDark: boolean): RGBA {\n const luminance = 0.299 * bg.r * 255 + 0.587 * bg.g * 255 + 0.114 * bg.b * 255\n if (isDark) {\n const gray = luminance < 10 ? 180 : Math.min(Math.floor(160 + luminance * 0.3), 200)\n return RGBA.fromInts(gray, gray, gray)\n }\n\n const gray = luminance > 245 ? 75 : Math.max(Math.floor(100 - (255 - luminance) * 0.2), 60)\n return RGBA.fromInts(gray, gray, gray)\n}\n",
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { memo as _$memo } from \"@opentui/solid\";\nimport { createContext, Show, useContext } from \"solid-js\";\nexport function createSimpleContext(input) {\n const ctx = createContext();\n return {\n context: ctx,\n provider: props => {\n const init = input.init(props);\n return (// @ts-expect-error\n _$createComponent(Show, {\n get when() {\n return init.ready === undefined || init.ready === true;\n },\n get children() {\n return _$createComponent(ctx.Provider, {\n value: init,\n get children() {\n return props.children;\n }\n });\n }\n })\n );\n },\n use() {\n const value = useContext(ctx);\n if (!value) throw new Error(`${input.name} context must be used within a context provider`);\n return value;\n }\n };\n}",
"import { CliRenderEvents } from \"@opentui/core\";\nimport { useRenderer } from \"@opentui/solid\";\nimport { allThemes, generateSyntax, hasTheme, isTheme, resolveTheme, setCustomThemes, setSystemTheme, subscribeThemes } from \"../theme\";\nimport { generateSystem, terminalMode } from \"../theme/system\";\nimport { createEffect, createMemo, onCleanup, onMount } from \"solid-js\";\nimport { createStore, produce } from \"solid-js/store\";\nimport { createSimpleContext } from \"./helper\";\nimport { useConfig } from \"../config\";\nimport { Global } from \"@opencode-ai/core/global\";\nimport { Glob } from \"@opencode-ai/core/util/glob\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nconst themeSource = {\n async discover() {\n const directories = [Global.Path.config];\n for (let current = process.cwd();; current = path.dirname(current)) {\n directories.push(path.join(current, \".opencode\"));\n if (path.dirname(current) === current) break;\n }\n return discoverThemes(directories);\n },\n subscribeRefresh(refresh) {\n process.on(\"SIGUSR2\", refresh);\n return () => process.off(\"SIGUSR2\", refresh);\n }\n};\nexport async function discoverThemes(directories) {\n const result = {};\n for (const directory of directories) {\n const files = await Glob.scan(\"themes/*.json\", {\n cwd: directory,\n absolute: true,\n dot: true,\n symlink: true\n });\n for (const file of files) {\n result[path.basename(file, \".json\")] = JSON.parse(await readFile(file, \"utf8\"));\n }\n }\n return result;\n}\nexport { DEFAULT_THEMES, addTheme, allThemes, generateSyntax, hasTheme, selectedForeground, upsertTheme } from \"../theme\";\nconst THEME_REFRESH_DELAYS = [250, 1000];\nconst [store, setStore] = createStore({\n themes: allThemes(),\n mode: \"dark\",\n lock: undefined,\n active: \"opencode\",\n ready: false\n});\nsubscribeThemes(themes => setStore(\"themes\", themes));\nexport const {\n use: useTheme,\n provider: ThemeProvider\n} = createSimpleContext({\n name: \"Theme\",\n init: props => {\n const renderer = useRenderer();\n const configState = useConfig();\n const config = configState.data;\n const themes = props.source ?? themeSource;\n const pick = value => {\n if (value === \"dark\" || value === \"light\") return value;\n return;\n };\n setStore(produce(draft => {\n const lock = pick(config.theme?.mode);\n const mode = lock ?? pick(renderer.themeMode) ?? props.mode;\n draft.mode = mode;\n draft.lock = lock;\n const active = config.theme?.name ?? \"opencode\";\n draft.active = typeof active === \"string\" ? active : \"opencode\";\n draft.ready = false;\n }));\n createEffect(() => {\n const theme = config.theme?.name;\n if (theme) setStore(\"active\", theme);\n });\n createEffect(() => {\n const mode = config.theme?.mode;\n if (mode === \"dark\" || mode === \"light\") {\n pin(mode, false);\n return;\n }\n if (mode === \"system\" && store.lock !== undefined) free(false);\n });\n function syncCustomThemes() {\n return themes.discover().then(themes => {\n setCustomThemes(Object.entries(themes).reduce((result, [name, theme]) => {\n if (isTheme(theme)) result[name] = theme;\n return result;\n }, {}));\n }).catch(() => setStore(\"active\", \"opencode\"));\n }\n onMount(() => {\n void Promise.allSettled([resolveSystemTheme(store.mode), syncCustomThemes()]).finally(() => {\n setStore(\"ready\", true);\n });\n });\n let systemThemeSignature;\n let systemThemeMode;\n let hasResolvedSystemTheme = false;\n function resolveSystemTheme(mode = store.mode) {\n return renderer.getPalette({\n size: 16\n }).then(colors => {\n if (!colors.palette[0]) {\n if (hasResolvedSystemTheme) return;\n setSystemTheme(undefined);\n if (store.active === \"system\") setStore(\"active\", \"opencode\");\n return;\n }\n const next = store.lock ?? terminalMode(colors) ?? mode;\n if (store.mode !== next) setStore(\"mode\", next);\n const signature = JSON.stringify(colors);\n hasResolvedSystemTheme = true;\n if (store.themes.system && systemThemeSignature === signature && systemThemeMode === next) return;\n systemThemeSignature = signature;\n systemThemeMode = next;\n setSystemTheme(generateSystem(colors, next));\n }).catch(() => {\n if (hasResolvedSystemTheme) return;\n setSystemTheme(undefined);\n if (store.active === \"system\") setStore(\"active\", \"opencode\");\n });\n }\n let systemRefreshRunning = false;\n let systemRefreshQueued = false;\n let systemRefreshMode = store.mode;\n function refreshSystemTheme(mode = store.mode) {\n systemRefreshMode = mode;\n if (systemRefreshRunning) {\n systemRefreshQueued = true;\n return;\n }\n systemRefreshRunning = true;\n const retry = renderer.paletteDetectionStatus === \"detecting\";\n renderer.clearPaletteCache();\n void resolveSystemTheme(mode).finally(() => {\n systemRefreshRunning = false;\n if (!retry && !systemRefreshQueued) return;\n systemRefreshQueued = false;\n refreshSystemTheme(systemRefreshMode);\n });\n }\n function apply(mode) {\n if (store.mode === mode) return;\n setStore(\"mode\", mode);\n refreshSystemTheme(mode);\n }\n function pin(mode = store.mode, persist = true) {\n setStore(\"lock\", mode);\n apply(mode);\n if (!persist) return;\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n mode\n };\n }).catch(() => {});\n }\n function free(persist = true) {\n setStore(\"lock\", undefined);\n refreshSystemTheme(renderer.themeMode ?? store.mode);\n if (!persist) return;\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n mode: \"system\"\n };\n }).catch(() => {});\n }\n const handle = mode => {\n if (store.lock) return;\n apply(mode);\n };\n renderer.on(CliRenderEvents.THEME_MODE, handle);\n const handleThemeNotification = sequence => {\n if (sequence !== \"\\x1b[?997;1n\" && sequence !== \"\\x1b[?997;2n\") return false;\n queueMicrotask(() => refreshSystemTheme());\n return false;\n };\n renderer.prependInputHandler(handleThemeNotification);\n let themeRefreshTimeouts = [];\n const refresh = () => {\n for (const timeout of themeRefreshTimeouts) clearTimeout(timeout);\n themeRefreshTimeouts = THEME_REFRESH_DELAYS.map(delay => setTimeout(() => {\n refreshSystemTheme();\n if (delay === THEME_REFRESH_DELAYS[THEME_REFRESH_DELAYS.length - 1]) void syncCustomThemes();\n }, delay));\n };\n let unsubscribeRefresh;\n unsubscribeRefresh = themes.subscribeRefresh?.(refresh);\n onCleanup(() => {\n renderer.off(CliRenderEvents.THEME_MODE, handle);\n renderer.removeInputHandler(handleThemeNotification);\n unsubscribeRefresh?.();\n for (const timeout of themeRefreshTimeouts) clearTimeout(timeout);\n themeRefreshTimeouts.length = 0;\n });\n const values = createMemo(() => {\n const active = store.themes[store.active];\n if (active) return resolveTheme(active, store.mode);\n return resolveTheme(store.themes.opencode, store.mode);\n });\n createEffect(() => renderer.setBackgroundColor(values().background));\n const syntax = createSyntaxStyleMemo(() => generateSyntax(values()));\n return {\n theme: new Proxy(values(), {\n get(_target, prop) {\n // @ts-expect-error Properties are forwarded to the current reactive value.\n return values()[prop];\n }\n }),\n get selected() {\n return store.active;\n },\n all: allThemes,\n has: hasTheme,\n syntax,\n mode: () => store.mode,\n locked: () => store.lock !== undefined,\n lock: () => pin(store.mode),\n unlock: free,\n setMode: pin,\n set(theme) {\n if (!hasTheme(theme)) return false;\n setStore(\"active\", theme);\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n name: theme\n };\n }).catch(() => {});\n return true;\n },\n get ready() {\n return store.ready;\n }\n };\n }\n});\nexport function createSyntaxStyleMemo(factory) {\n const renderer = useRenderer();\n const retained = new Set();\n let current;\n const release = style => {\n retained.add(style);\n void renderer.idle().catch(() => {}).finally(() => {\n if (!retained.delete(style)) return;\n style.destroy();\n });\n };\n onCleanup(() => {\n if (current) release(current);\n });\n return createMemo(() => {\n const previous = current;\n current = factory();\n if (previous) release(previous);\n return current;\n });\n}"
],
"mappings": ";mTAEO,cAAS,MAAU,MAAC,EAAoB,CAC7C,GAAI,EAAO,GAAI,CACb,IAAM,EAAa,CACjB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,OAAO,EAAK,QAAQ,EAAW,IAAS,SAAS,EAGnD,GAAI,EAAO,IAAK,CACd,IAAM,EAAQ,EAAO,GACf,EAAI,EAAQ,EACZ,EAAI,KAAK,MAAM,EAAQ,CAAC,EAAI,EAC5B,EAAI,KAAK,MAAM,EAAQ,EAAE,EACzB,EAAM,CAAC,IAAe,IAAM,EAAI,EAAI,EAAI,GAAK,GACnD,OAAO,EAAK,SAAS,EAAI,CAAC,EAAG,EAAI,CAAC,EAAG,EAAI,CAAC,CAAC,EAG7C,GAAI,EAAO,IAAK,CACd,IAAM,GAAQ,EAAO,KAAO,GAAK,EACjC,OAAO,EAAK,SAAS,EAAM,EAAM,CAAI,EAGvC,OAAO,EAAK,SAAS,EAAG,EAAG,CAAC,EAGvB,SAAS,CAAI,CAAC,EAAY,EAAe,EAAqB,CACnE,IAAM,EAAI,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,EACpC,EAAI,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,EACpC,EAAI,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,EAC1C,OAAO,EAAK,SAAS,KAAK,MAAM,EAAI,GAAG,EAAG,KAAK,MAAM,EAAI,GAAG,EAAG,KAAK,MAAM,EAAI,GAAG,CAAC,29gGCgE7E,IAAM,EAA4C,CACvD,OACA,OACA,eACC,qBAAsB,IACtB,wBAAyB,GAC1B,WACA,UACA,WACA,cACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,SACC,YAAa,IACb,cAAe,GAChB,YACA,SACC,eAAgB,GACjB,aACA,YACA,aACA,eACA,cACA,UACA,UACA,WACA,YACF,EAEO,SAAS,CAAkB,CAAC,EAAc,EAAiB,CAChE,GAAI,EAAM,yBAA0B,OAAO,EAAM,qBAEjD,GAAI,EAAM,WAAW,IAAM,EAAG,CAC5B,IAAM,EAAc,GAAM,EAAM,SACxB,IAAG,IAAG,KAAM,EAEpB,MADkB,OAAQ,EAAI,MAAQ,EAAI,MAAQ,EAC/B,IAAM,EAAK,SAAS,EAAG,EAAG,CAAC,EAAI,EAAK,SAAS,IAAK,IAAK,GAAG,EAG/E,OAAO,EAAM,WAGR,SAAS,CAAc,CAAC,EAAc,CAC3C,OAAO,GAAY,UAAU,GAAe,CAAK,CAAC,EAGpD,SAAS,EAAc,CAAC,EAAc,CACpC,MAAO,CACL,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,WAAY,EAAM,IACpB,CACF,EACA,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,WAAY,EAAM,MACpB,CACF,EACA,CACE,MAAO,CAAC,cAAc,EACtB,MAAO,CACL,WAAY,EAAM,QAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAM,UAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAmB,EAAO,EAAM,OAAO,EACnD,WAAY,EAAM,QAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,uBAAuB,EAC/B,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,SAAU,QAAQ,EAC1B,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,SAAU,SAAS,EAC3B,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,iBAAkB,sBAAuB,iBAAkB,mBAAmB,EACtF,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,cAAc,EACtB,MAAO,CACL,WAAY,EAAM,WAClB,KAAM,GACN,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,mBAAoB,iBAAiB,EAC7C,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,gBAAgB,EACxB,MAAO,CACL,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,WAAY,mBAAoB,uBAAuB,EAC/D,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,6BAA6B,EACrC,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,WAAY,qBAAsB,uBAAwB,eAAe,EACjF,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,kBAAmB,WAAY,aAAa,EACpD,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,OAAQ,QAAQ,EACxB,MAAO,CACL,WAAY,EAAM,UACpB,CACF,EACA,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,UACpB,CACF,EACA,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,cAAe,qBAAqB,EAC5C,MAAO,CACL,WAAY,EAAM,iBACpB,CACF,EACA,CACE,MAAO,CAAC,mBAAoB,eAAgB,mBAAoB,iBAAkB,kBAAkB,EACpG,MAAO,CACL,WAAY,EAAM,KACpB,CACF,EACA,CACE,MAAO,CAAC,gBAAgB,EACxB,MAAO,CACL,WAAY,EAAM,KACpB,CACF,EACA,CACE,MAAO,CAAC,gBAAiB,eAAe,EACxC,MAAO,CACL,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,qBAAqB,EAC7B,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,WAAY,EAAM,cAClB,OAAQ,EACV,CACF,EAEA,CACE,MAAO,CAAC,gBAAgB,EACxB,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,GACN,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,gBAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,cAAe,eAAe,EACtC,MAAO,CACL,WAAY,EAAM,eAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAM,aAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,WAAY,EAAM,gBACpB,CACF,EACA,CACE,MAAO,CAAC,cAAc,EACtB,MAAO,CACL,WAAY,EAAM,mBAClB,OAAQ,EACV,CACF,EACA,CACE,MAAO,CAAC,aAAc,kBAAkB,EACxC,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,WAAY,EAAM,aAClB,WAAY,EAAM,UACpB,CACF,EACA,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,WAAY,EAAM,aAClB,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,WAAY,EAAM,iBAClB,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,WAAY,EAAM,aAClB,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,gBACpB,CACF,EACA,CACE,MAAO,CAAC,QAAS,SAAS,EAC1B,MAAO,CACL,WAAY,EAAM,IACpB,CACF,EAEA,CACE,MAAO,CAAC,iBAAkB,oBAAoB,EAC9C,MAAO,CACL,WAAY,EAAM,aAClB,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,YACpB,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAM,MAClB,OAAQ,GACR,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,WAAY,EAAM,QAClB,OAAQ,GACR,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,eAAgB,cAAc,EACtC,MAAO,CACL,WAAY,EAAM,KAClB,OAAQ,GACR,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,EAAM,UACpB,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,WAAY,EAAM,WAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,gBAAgB,EACxB,MAAO,CACL,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,YAAa,YAAY,EACjC,MAAO,CACL,WAAY,EAAM,OACpB,CACF,EACA,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,WAAY,EAAM,KACpB,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,eAAe,EACvB,MAAO,CACL,WAAY,EAAM,cACpB,CACF,EACA,CACE,MAAO,CAAC,sBAAsB,EAC9B,MAAO,CACL,WAAY,EAAM,SACpB,CACF,EACA,CACE,MAAO,CAAC,kBAAkB,EAC1B,MAAO,CACL,WAAY,EAAM,KAClB,UAAW,EACb,CACF,EACA,CACE,MAAO,CAAC,qBAAqB,EAC7B,MAAO,CACL,WAAY,EAAM,OACpB,CACF,EACA,CACE,MAAO,CAAC,uBAAuB,EAC/B,MAAO,CACL,WAAY,EAAM,SACpB,CACF,EACA,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,EAAM,UAClB,WAAY,EAAM,WACpB,CACF,EACA,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,WAAY,EAAM,YAClB,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,WAAY,EAAM,YAClB,WAAY,EAAM,aACpB,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,MAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,WAAY,EAAM,QAClB,KAAM,EACR,CACF,EACA,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,WAAY,EAAM,IACpB,CACF,EACA,CACE,MAAO,CAAC,OAAO,EACf,MAAO,CACL,WAAY,EAAM,SACpB,CACF,CACF,EC7oBF,IAAM,EAA0C,CAAC,EAC7C,EAA0C,CAAC,EAC3C,EACE,EAAY,IAAI,IAEtB,SAAS,EAAU,EAAG,CAEpB,IAAM,EAAS,IACV,KACA,KACA,CACL,EACA,GAAI,CAAC,EAAa,OAAO,EACzB,MAAO,IACF,EACH,OAAQ,CACV,EAGF,SAAS,CAAU,EAAG,CACpB,IAAM,EAAS,GAAW,EAC1B,QAAW,KAAY,EAAW,EAAS,CAAM,EAG5C,SAAS,CAAS,EAAG,CAC1B,OAAO,GAAW,EAGb,SAAS,CAAO,CAAC,EAAoC,CAC1D,GAAI,OAAO,IAAU,UAAY,IAAU,MAAQ,MAAM,QAAQ,CAAK,EAAG,MAAO,GAChF,IAAM,EAAQ,QAAQ,IAAI,EAAO,OAAO,EACxC,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,CAAC,MAAM,QAAQ,CAAK,EAGrE,SAAS,EAAe,CAAC,EAAuD,CAErF,OADA,EAAU,IAAI,CAAQ,EACf,IAAM,EAAU,OAAO,CAAQ,EAGjC,SAAS,EAAe,CAAC,EAAmC,CACjE,EAAe,EACf,EAAW,EAGN,SAAS,CAAc,CAAC,EAA8B,CAC3D,EAAc,EACd,EAAW,EAGN,SAAS,CAAQ,CAAC,EAAc,CACrC,GAAI,CAAC,EAAM,MAAO,GAClB,OAAO,EAAU,EAAE,KAAU,OAGxB,SAAS,EAAQ,CAAC,EAAc,EAAgB,CACrD,GAAI,CAAC,EAAM,MAAO,GAClB,GAAI,CAAC,EAAQ,CAAK,EAAG,MAAO,GAC5B,GAAI,EAAS,CAAI,EAAG,MAAO,GAG3B,OAFA,EAAa,GAAQ,EACrB,EAAW,EACJ,GAGF,SAAS,EAAW,CAAC,EAAc,EAAgB,CACxD,GAAI,CAAC,EAAM,MAAO,GAClB,GAAI,CAAC,EAAQ,CAAK,EAAG,MAAO,GAC5B,GAAI,EAAa,KAAU,OACzB,EAAa,GAAQ,EAErB,OAAa,GAAQ,EAGvB,OADA,EAAW,EACJ,GAGF,SAAS,CAAY,CAAC,EAAkB,EAAwB,CACrE,IAAM,EAAO,EAAM,MAAQ,CAAC,EAC5B,SAAS,CAAY,CAAC,EAAe,EAAkB,CAAC,EAAS,CAC/D,GAAI,aAAa,EAAM,OAAO,EAC9B,GAAI,OAAO,IAAM,SAAU,CACzB,GAAI,IAAM,eAAiB,IAAM,OAAQ,OAAO,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExE,GAAI,EAAE,WAAW,GAAG,EAAG,OAAO,EAAK,QAAQ,CAAC,EAE5C,GAAI,EAAM,SAAS,CAAC,EAClB,MAAU,MAAM,6BAA6B,CAAC,GAAG,EAAO,CAAC,EAAE,KAAK,MAAM,GAAG,EAG3E,IAAM,EAAO,EAAK,IAAM,EAAM,MAAM,GACpC,GAAI,IAAS,OACX,MAAU,MAAM,oBAAoB,+BAA+B,EAErE,OAAO,EAAa,EAAM,CAAC,GAAG,EAAO,CAAC,CAAC,EAEzC,GAAI,OAAO,IAAM,SACf,OAAO,EAAW,CAAC,EAErB,OAAO,EAAa,EAAE,GAAO,CAAK,EAGpC,IAAM,EAAW,OAAO,YACtB,OAAO,QAAQ,EAAM,KAAK,EACvB,OAAO,EAAE,KAAS,IAAQ,wBAA0B,IAAQ,kBAAoB,IAAQ,iBAAiB,EACzG,IAAI,EAAE,EAAK,KAAW,CACrB,MAAO,CAAC,EAAK,EAAa,CAAmB,CAAC,EAC/C,CACL,EAGM,EAA0B,EAAM,MAAM,uBAAyB,OACrE,GAAI,EACF,EAAS,qBAAuB,EAAa,EAAM,MAAM,oBAAqB,EAI9E,OAAS,qBAAuB,EAAS,WAI3C,GAAI,EAAM,MAAM,iBAAmB,OACjC,EAAS,eAAiB,EAAa,EAAM,MAAM,cAAc,EAEjE,OAAS,eAAiB,EAAS,kBAIrC,IAAM,EAAkB,EAAM,MAAM,iBAAmB,IAEvD,MAAO,IACF,EACH,yBAA0B,EAC1B,iBACF,ECvIK,SAAS,EAAY,CAAC,EAAsD,CACjF,IAAM,EAAK,EAAO,kBAClB,GAAI,CAAC,EAAI,OACT,IAAQ,IAAG,IAAG,KAAM,EAAK,QAAQ,CAAE,EACnC,MAAO,OAAQ,EAAI,MAAQ,EAAI,MAAQ,EAAI,IAAM,QAAU,OAGtD,SAAS,EAAc,CAAC,EAAwB,EAAwB,CAC7E,IAAM,EAAK,EAAK,QAAQ,EAAO,mBAAqB,EAAO,QAAQ,EAAG,EAChE,EAAK,EAAK,QAAQ,EAAO,mBAAqB,EAAO,QAAQ,EAAG,EAChE,EAAc,EAAK,WAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjD,EAAS,IAAS,OAElB,EAAM,CAAC,IAAkB,CAC7B,IAAM,EAAQ,EAAO,QAAQ,GAC7B,GAAI,EAAO,OAAO,EAAK,QAAQ,CAAK,EACpC,OAAO,EAAW,CAAK,GAGnB,EAAQ,GAAkB,EAAI,CAAM,EACpC,EAAY,GAAuB,EAAI,CAAM,EAC7C,EAAa,CACjB,IAAK,EAAI,CAAC,EACV,MAAO,EAAI,CAAC,EACZ,OAAQ,EAAI,CAAC,EACb,KAAM,EAAI,CAAC,EACX,QAAS,EAAI,CAAC,EACd,KAAM,EAAI,CAAC,EACX,UAAW,EAAI,CAAC,EAChB,YAAa,EAAI,EAAE,CACrB,EAEM,EAAY,EAAS,KAAO,KAC5B,EAAc,EAAK,EAAI,EAAW,MAAO,CAAS,EAClD,EAAgB,EAAK,EAAI,EAAW,IAAK,CAAS,EAClD,EAAgB,EAAM,GACtB,EAAwB,EAAK,EAAe,EAAW,MAAO,CAAS,EACvE,EAA0B,EAAK,EAAe,EAAW,IAAK,CAAS,EAE7E,MAAO,CACL,MAAO,CACL,QAAS,EAAW,KACpB,UAAW,EAAW,QACtB,OAAQ,EAAW,KACnB,MAAO,EAAW,IAClB,QAAS,EAAW,OACpB,QAAS,EAAW,MACpB,KAAM,EAAW,KACjB,KAAM,EACN,YACA,qBAAsB,EACtB,WAAY,EACZ,gBAAiB,EAAM,GACvB,kBAAmB,EAAM,GACzB,eAAgB,EAAM,GACtB,aAAc,EAAM,GACpB,OAAQ,EAAM,GACd,aAAc,EAAM,GACpB,UAAW,EAAW,MACtB,YAAa,EAAW,IACxB,YAAa,EAAM,GACnB,eAAgB,EAAM,GACtB,mBAAoB,EAAW,YAC/B,qBAAsB,EAAW,UACjC,cACA,gBACA,gBACA,eAAgB,EAChB,wBACA,0BACA,aAAc,EACd,gBAAiB,EACjB,aAAc,EAAW,KACzB,iBAAkB,EAAW,KAC7B,aAAc,EAAW,MACzB,mBAAoB,EAAW,OAC/B,aAAc,EAAW,OACzB,eAAgB,EAChB,uBAAwB,EAAM,GAC9B,iBAAkB,EAAW,KAC7B,wBAAyB,EAAW,KACpC,cAAe,EAAW,KAC1B,kBAAmB,EAAW,KAC9B,kBAAmB,EACnB,cAAe,EACf,cAAe,EAAW,QAC1B,eAAgB,EAAW,KAC3B,eAAgB,EAChB,aAAc,EAAW,MACzB,aAAc,EAAW,OACzB,WAAY,EAAW,KACvB,eAAgB,EAAW,KAC3B,kBAAmB,CACrB,CACF,EAGF,SAAS,EAAiB,CAAC,EAAU,EAAuC,CAC1E,IAAM,EAA8B,CAAC,EAC/B,EAAM,EAAG,EAAI,IACb,EAAM,EAAG,EAAI,IACb,EAAM,EAAG,EAAI,IACb,EAAY,MAAQ,EAAM,MAAQ,EAAM,MAAQ,EAEtD,QAAS,EAAI,EAAG,GAAK,GAAI,IAAK,CAC5B,IAAM,EAAS,EAAI,GAEnB,GAAI,GAAU,EAAY,GAAI,CAC5B,IAAM,EAAO,KAAK,MAAM,EAAS,IAAM,GAAG,EAC1C,EAAM,GAAK,EAAK,SAAS,EAAM,EAAM,CAAI,EACzC,SAGF,GAAI,CAAC,GAAU,EAAY,IAAK,CAC9B,IAAM,EAAO,KAAK,MAAM,IAAM,EAAS,IAAM,GAAG,EAChD,EAAM,GAAK,EAAK,SAAS,EAAM,EAAM,CAAI,EACzC,SAIF,IAAM,GADO,EAAS,GAAa,IAAM,GAAa,EAAS,IAAM,GAAa,EAAI,EAAS,MAC1E,EACrB,EAAM,GAAK,EAAK,SACd,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAM,EAAO,CAAC,EAAG,GAAG,CAAC,EAClD,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAM,EAAO,CAAC,EAAG,GAAG,CAAC,EAClD,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAM,EAAO,CAAC,EAAG,GAAG,CAAC,CACpD,EAGF,OAAO,EAGT,SAAS,EAAsB,CAAC,EAAU,EAAuB,CAC/D,IAAM,EAAY,MAAQ,EAAG,EAAI,IAAM,MAAQ,EAAG,EAAI,IAAM,MAAQ,EAAG,EAAI,IAC3E,GAAI,EAAQ,CACV,IAAM,EAAO,EAAY,GAAK,IAAM,KAAK,IAAI,KAAK,MAAM,IAAM,EAAY,GAAG,EAAG,GAAG,EACnF,OAAO,EAAK,SAAS,EAAM,EAAM,CAAI,EAGvC,IAAM,EAAO,EAAY,IAAM,GAAK,KAAK,IAAI,KAAK,MAAM,KAAO,IAAM,GAAa,GAAG,EAAG,EAAE,EAC1F,OAAO,EAAK,SAAS,EAAM,EAAM,CAAI,EC3IhC,SAAS,EAAmB,CAAC,EAAO,CACzC,IAAM,EAAM,GAAc,EAC1B,MAAO,CACL,QAAS,EACT,SAAU,KAAS,CACjB,IAAM,EAAO,EAAM,KAAK,CAAK,EAC7B,OACE,EAAkB,GAAM,IAClB,KAAI,EAAG,CACT,OAAO,EAAK,QAAU,QAAa,EAAK,QAAU,OAEhD,SAAQ,EAAG,CACb,OAAO,EAAkB,EAAI,SAAU,CACrC,MAAO,KACH,SAAQ,EAAG,CACb,OAAO,EAAM,SAEjB,CAAC,EAEL,CAAC,GAGL,GAAG,EAAG,CACJ,IAAM,EAAQ,GAAW,CAAG,EAC5B,GAAI,CAAC,EAAO,MAAU,MAAM,GAAG,EAAM,qDAAqD,EAC1F,OAAO,EAEX,ECpBF,mBAAS,qBACT,oBACA,IAAM,GAAc,MACZ,SAAQ,EAAG,CACf,IAAM,EAAc,CAAC,GAAO,KAAK,MAAM,EACvC,QAAS,EAAU,QAAQ,IAAI,GAAI,EAAU,EAAK,QAAQ,CAAO,EAE/D,GADA,EAAY,KAAK,EAAK,KAAK,EAAS,WAAW,CAAC,EAC5C,EAAK,QAAQ,CAAO,IAAM,EAAS,MAEzC,OAAO,GAAe,CAAW,GAEnC,gBAAgB,CAAC,EAAS,CAExB,OADA,QAAQ,GAAG,UAAW,CAAO,EACtB,IAAM,QAAQ,IAAI,UAAW,CAAO,EAE/C,EACA,eAAsB,EAAc,CAAC,EAAa,CAChD,IAAM,EAAS,CAAC,EAChB,QAAW,KAAa,EAAa,CACnC,IAAM,EAAQ,MAAM,GAAK,KAAK,gBAAiB,CAC7C,IAAK,EACL,SAAU,GACV,IAAK,GACL,QAAS,EACX,CAAC,EACD,QAAW,KAAQ,EACjB,EAAO,EAAK,SAAS,EAAM,OAAO,GAAK,KAAK,MAAM,MAAM,GAAS,EAAM,MAAM,CAAC,EAGlF,OAAO,EAGT,IAAM,EAAuB,CAAC,IAAK,IAAI,GAChC,EAAO,GAAY,GAAY,CACpC,OAAQ,EAAU,EAClB,KAAM,OACN,KAAM,OACN,OAAQ,WACR,MAAO,EACT,CAAC,EACD,GAAgB,KAAU,EAAS,SAAU,CAAM,CAAC,EAC7C,IACL,IAAK,GACL,SAAU,IACR,GAAoB,CACtB,KAAM,QACN,KAAM,KAAS,CACb,IAAM,EAAW,EAAY,EACvB,EAAc,GAAU,EACxB,EAAS,EAAY,KACrB,EAAS,EAAM,QAAU,GACzB,EAAO,KAAS,CACpB,GAAI,IAAU,QAAU,IAAU,QAAS,OAAO,EAClD,QAEF,EAAS,GAAQ,KAAS,CACxB,IAAM,EAAO,EAAK,EAAO,OAAO,IAAI,EAC9B,EAAO,GAAQ,EAAK,EAAS,SAAS,GAAK,EAAM,KACvD,EAAM,KAAO,EACb,EAAM,KAAO,EACb,IAAM,EAAS,EAAO,OAAO,MAAQ,WACrC,EAAM,OAAS,OAAO,IAAW,SAAW,EAAS,WACrD,EAAM,MAAQ,GACf,CAAC,EACF,EAAa,IAAM,CACjB,IAAM,EAAQ,EAAO,OAAO,KAC5B,GAAI,EAAO,EAAS,SAAU,CAAK,EACpC,EACD,EAAa,IAAM,CACjB,IAAM,EAAO,EAAO,OAAO,KAC3B,GAAI,IAAS,QAAU,IAAS,QAAS,CACvC,EAAI,EAAM,EAAK,EACf,OAEF,GAAI,IAAS,UAAY,EAAM,OAAS,OAAW,EAAK,EAAK,EAC9D,EACD,SAAS,CAAgB,EAAG,CAC1B,OAAO,EAAO,SAAS,EAAE,KAAK,KAAU,CACtC,GAAgB,OAAO,QAAQ,CAAM,EAAE,OAAO,CAAC,GAAS,EAAM,KAAW,CACvE,GAAI,EAAQ,CAAK,EAAG,EAAO,GAAQ,EACnC,OAAO,GACN,CAAC,CAAC,CAAC,EACP,EAAE,MAAM,IAAM,EAAS,SAAU,UAAU,CAAC,EAE/C,GAAQ,IAAM,CACP,QAAQ,WAAW,CAAC,EAAmB,EAAM,IAAI,EAAG,EAAiB,CAAC,CAAC,EAAE,QAAQ,IAAM,CAC1F,EAAS,QAAS,EAAI,EACvB,EACF,EACD,IAAI,EACA,EACA,EAAyB,GAC7B,SAAS,CAAkB,CAAC,EAAO,EAAM,KAAM,CAC7C,OAAO,EAAS,WAAW,CACzB,KAAM,EACR,CAAC,EAAE,KAAK,KAAU,CAChB,GAAI,CAAC,EAAO,QAAQ,GAAI,CACtB,GAAI,EAAwB,OAE5B,GADA,EAAe,MAAS,EACpB,EAAM,SAAW,SAAU,EAAS,SAAU,UAAU,EAC5D,OAEF,IAAM,EAAO,EAAM,MAAQ,GAAa,CAAM,GAAK,EACnD,GAAI,EAAM,OAAS,EAAM,EAAS,OAAQ,CAAI,EAC9C,IAAM,EAAY,KAAK,UAAU,CAAM,EAEvC,GADA,EAAyB,GACrB,EAAM,OAAO,QAAU,IAAyB,GAAa,IAAoB,EAAM,OAC3F,EAAuB,EACvB,EAAkB,EAClB,EAAe,GAAe,EAAQ,CAAI,CAAC,EAC5C,EAAE,MAAM,IAAM,CACb,GAAI,EAAwB,OAE5B,GADA,EAAe,MAAS,EACpB,EAAM,SAAW,SAAU,EAAS,SAAU,UAAU,EAC7D,EAEH,IAAI,EAAuB,GACvB,EAAsB,GACtB,EAAoB,EAAM,KAC9B,SAAS,CAAkB,CAAC,EAAO,EAAM,KAAM,CAE7C,GADA,EAAoB,EAChB,EAAsB,CACxB,EAAsB,GACtB,OAEF,EAAuB,GACvB,IAAM,EAAQ,EAAS,yBAA2B,YAClD,EAAS,kBAAkB,EACtB,EAAmB,CAAI,EAAE,QAAQ,IAAM,CAE1C,GADA,EAAuB,GACnB,CAAC,GAAS,CAAC,EAAqB,OACpC,EAAsB,GACtB,EAAmB,CAAiB,EACrC,EAEH,SAAS,CAAK,CAAC,EAAM,CACnB,GAAI,EAAM,OAAS,EAAM,OACzB,EAAS,OAAQ,CAAI,EACrB,EAAmB,CAAI,EAEzB,SAAS,CAAG,CAAC,EAAO,EAAM,KAAM,EAAU,GAAM,CAG9C,GAFA,EAAS,OAAQ,CAAI,EACrB,EAAM,CAAI,EACN,CAAC,EAAS,OACT,EAAY,OAAO,KAAS,CAC/B,EAAM,MAAQ,IACT,EAAM,MACT,MACF,EACD,EAAE,MAAM,IAAM,EAAE,EAEnB,SAAS,CAAI,CAAC,EAAU,GAAM,CAG5B,GAFA,EAAS,OAAQ,MAAS,EAC1B,EAAmB,EAAS,WAAa,EAAM,IAAI,EAC/C,CAAC,EAAS,OACT,EAAY,OAAO,KAAS,CAC/B,EAAM,MAAQ,IACT,EAAM,MACT,KAAM,QACR,EACD,EAAE,MAAM,IAAM,EAAE,EAEnB,IAAM,EAAS,KAAQ,CACrB,GAAI,EAAM,KAAM,OAChB,EAAM,CAAI,GAEZ,EAAS,GAAG,EAAgB,WAAY,CAAM,EAC9C,IAAM,EAA0B,KAAY,CAC1C,GAAI,IAAa,gBAAkB,IAAa,eAAgB,MAAO,GAEvE,OADA,eAAe,IAAM,EAAmB,CAAC,EAClC,IAET,EAAS,oBAAoB,CAAuB,EACpD,IAAI,EAAuB,CAAC,EACtB,GAAU,IAAM,CACpB,QAAW,KAAW,EAAsB,aAAa,CAAO,EAChE,EAAuB,EAAqB,IAAI,KAAS,WAAW,IAAM,CAExE,GADA,EAAmB,EACf,IAAU,EAAqB,EAAqB,OAAS,GAAS,EAAiB,GAC1F,CAAK,CAAC,GAEP,EACJ,EAAqB,EAAO,mBAAmB,EAAO,EACtD,EAAU,IAAM,CACd,EAAS,IAAI,EAAgB,WAAY,CAAM,EAC/C,EAAS,mBAAmB,CAAuB,EACnD,IAAqB,EACrB,QAAW,KAAW,EAAsB,aAAa,CAAO,EAChE,EAAqB,OAAS,EAC/B,EACD,IAAM,EAAS,EAAW,IAAM,CAC9B,IAAM,EAAS,EAAM,OAAO,EAAM,QAClC,GAAI,EAAQ,OAAO,EAAa,EAAQ,EAAM,IAAI,EAClD,OAAO,EAAa,EAAM,OAAO,SAAU,EAAM,IAAI,EACtD,EACD,EAAa,IAAM,EAAS,mBAAmB,EAAO,EAAE,UAAU,CAAC,EACnE,IAAM,GAAS,GAAsB,IAAM,EAAe,EAAO,CAAC,CAAC,EACnE,MAAO,CACL,MAAO,IAAI,MAAM,EAAO,EAAG,CACzB,GAAG,CAAC,EAAS,EAAM,CAEjB,OAAO,EAAO,EAAE,GAEpB,CAAC,KACG,SAAQ,EAAG,CACb,OAAO,EAAM,QAEf,IAAK,EACL,IAAK,EACL,UACA,KAAM,IAAM,EAAM,KAClB,OAAQ,IAAM,EAAM,OAAS,OAC7B,KAAM,IAAM,EAAI,EAAM,IAAI,EAC1B,OAAQ,EACR,QAAS,EACT,GAAG,CAAC,EAAO,CACT,GAAI,CAAC,EAAS,CAAK,EAAG,MAAO,GAQ7B,OAPA,EAAS,SAAU,CAAK,EACnB,EAAY,OAAO,KAAS,CAC/B,EAAM,MAAQ,IACT,EAAM,MACT,KAAM,CACR,EACD,EAAE,MAAM,IAAM,EAAE,EACV,OAEL,MAAK,EAAG,CACV,OAAO,EAAM,MAEjB,EAEJ,CAAC,EACM,SAAS,EAAqB,CAAC,EAAS,CAC7C,IAAM,EAAW,EAAY,EACvB,EAAW,IAAI,IACjB,EACE,EAAU,KAAS,CACvB,EAAS,IAAI,CAAK,EACb,EAAS,KAAK,EAAE,MAAM,IAAM,EAAE,EAAE,QAAQ,IAAM,CACjD,GAAI,CAAC,EAAS,OAAO,CAAK,EAAG,OAC7B,EAAM,QAAQ,EACf,GAKH,OAHA,EAAU,IAAM,CACd,GAAI,EAAS,EAAQ,CAAO,EAC7B,EACM,EAAW,IAAM,CACtB,IAAM,EAAW,EAEjB,GADA,EAAU,EAAQ,EACd,EAAU,EAAQ,CAAQ,EAC9B,OAAO,EACR",
"debugId": "1F9C7E15B02769FB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "1F3FCE81484537AA64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "811C15176927F07864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "43D5340E926F7ADD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/get.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect, Option } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.get,\n Effect.fn(\"cli.service.get\")(function* (input) {\n process.stdout.write((yield* ServiceConfig.get(Option.getOrUndefined(input.key))) + EOL)\n }),\n)\n"
],
"mappings": ";00BAAA,mBAAS,gBAMT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,SACnC,OAAO,QAAG,sBAAiB,OAAE,cAAU,MAAC,OAAO,MAC7C,aAAQ,YAAO,YAAO,WAAO,EAAc,IAAI,EAAO,eAAe,EAAM,GAAG,CAAC,GAAK,CAAG,EACxF,CACH",
"debugId": "F1F831C283E3AAE264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/stop.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.stop,\n Effect.fn(\"cli.service.stop\")(function* () {\n yield* Service.stop(yield* ServiceConfig.options())\n }),\n)\n"
],
"mappings": ";+0BAMA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,UACnC,OAAO,QAAG,uBAAkB,OAAE,cAAU,OAAG,MACzC,WAAO,OAAQ,UAAK,WAAO,OAAc,aAAQ,MAAC,EACnD,CACH",
"debugId": "6A62854354DEF6D964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/logout.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport { OpenCode } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { resolveIntegration } from \"./resolve\"\n\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.logout,\n Effect.fn(\"cli.mcp.logout\")(function* (input) {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.ensure(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n\n const integration = yield* resolveIntegration(client, input.name, location)\n if (!integration) {\n process.stdout.write(`No stored credentials for ${input.name}` + EOL)\n return\n }\n\n const credentials = integration.connections.filter((connection) => connection.type === \"credential\")\n if (credentials.length === 0) {\n process.stdout.write(`No stored credentials for ${input.name}` + EOL)\n return\n }\n\n yield* Effect.forEach(\n credentials,\n (connection) => Effect.promise(() => client.credential.remove({ credentialID: connection.id, location })),\n { discard: true },\n )\n process.stdout.write(`Removed OAuth credentials for ${input.name}` + EOL)\n }),\n)\n"
],
"mappings": ";46BAAA,mBAAS,gBAST,SAAM,OAAW,MAAE,eAAW,aAAQ,SAAI,MAAE,OAE7B,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,YAC/B,OAAO,QAAG,qBAAgB,OAAE,cAAU,MAAC,OAAO,CAC5C,IAAM,EAAU,MAAO,EAAc,QAAQ,EAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,OAAO,CAAO,GAClD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,EAAc,MAAO,EAAmB,EAAQ,EAAM,KAAM,CAAQ,EAC1E,GAAI,CAAC,EAAa,CAChB,QAAQ,OAAO,MAAM,6BAA6B,EAAM,OAAS,CAAG,EACpE,OAGF,IAAM,EAAc,EAAY,YAAY,OAAO,CAAC,IAAe,EAAW,OAAS,YAAY,EACnG,GAAI,EAAY,SAAW,EAAG,CAC5B,QAAQ,OAAO,MAAM,6BAA6B,EAAM,OAAS,CAAG,EACpE,OAGF,MAAO,EAAO,QACZ,EACA,CAAC,IAAe,EAAO,QAAQ,IAAM,EAAO,WAAW,OAAO,CAAE,aAAc,EAAW,GAAI,UAAS,CAAC,CAAC,EACxG,CAAE,QAAS,EAAK,CAClB,EACA,QAAQ,OAAO,MAAM,iCAAiC,EAAM,OAAS,CAAG,EACzE,CACH",
"debugId": "128E986EA0F6A45764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/set.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.set,\n Effect.fn(\"cli.service.set\")(function* (input) {\n yield* ServiceConfig.set(input.key, input.value)\n }),\n)\n"
],
"mappings": ";k0BAKA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,SACnC,OAAO,QAAG,sBAAiB,OAAE,cAAU,MAAC,OAAO,MAC7C,WAAO,OAAc,SAAI,OAAM,SAAK,OAAM,KAAK,EAChD,CACH",
"debugId": "C5CA3C33CCAFADF464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/restart.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.restart,\n Effect.fn(\"cli.service.restart\")(function* () {\n const options = yield* ServiceConfig.options()\n yield* Service.stop(options)\n const transport = yield* Service.ensure(options)\n process.stdout.write(transport.url + EOL)\n }),\n)\n"
],
"mappings": ";+0BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,aACnC,OAAO,QAAG,0BAAqB,OAAE,cAAU,OAAG,MAC5C,SAAM,OAAU,WAAO,OAAc,aAAQ,EAC7C,MAAO,EAAQ,KAAK,CAAO,EAC3B,IAAM,EAAY,MAAO,EAAQ,OAAO,CAAO,EAC/C,QAAQ,OAAO,MAAM,EAAU,IAAM,CAAG,EACzC,CACH",
"debugId": "F4DFDB02865C6A0B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260227213759_add_session_workspace_id.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260227213759_add_session_workspace_id\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`workspace_id\\` text;`)\n yield* tx.run(`CREATE INDEX \\`session_workspace_idx\\` ON \\`session\\` (\\`workspace_id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,0CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gDAAoD,EAClE,MAAO,EAAG,IAAI,qEAA2E,EAC1F,EAEL",
"debugId": "98A7DF6D9850024664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260709025533_drop-todo.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709025533_drop-todo\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`todo_session_idx\\`;`)\n yield* tx.run(`DROP TABLE \\`todo\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0CAA4C,EAC1D,MAAO,EAAG,IAAI,oBAAsB,EACrC,EAEL",
"debugId": "C71E40FE3F8CA22864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+mistral@3.0.27+d6123d32214422cb/node_modules/@ai-sdk/mistral/dist/index.mjs"],
"sourcesContent": [
"// src/mistral-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/mistral-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n injectJsonInstructionIntoMessages,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-mistral-usage.ts\nfunction convertMistralUsage(usage) {\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = usage.prompt_tokens;\n const completionTokens = usage.completion_tokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens,\n reasoning: void 0\n },\n raw: usage\n };\n}\n\n// src/convert-to-mistral-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatFileUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToMistralChatMessages(prompt) {\n var _a;\n const messages = [];\n for (let i = 0; i < prompt.length; i++) {\n const { role, content } = prompt[i];\n const isLastMessage = i === prompt.length - 1;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: formatFileUrl({ data: part.data, mediaType })\n };\n } else if (part.mediaType === \"application/pdf\") {\n return {\n type: \"document_url\",\n document_url: formatFileUrl({\n data: part.data,\n mediaType: \"application/pdf\"\n })\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only images and PDF file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n default: {\n throw new Error(\n `Unsupported content type in assistant message: ${part.type}`\n );\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n prefix: isLastMessage ? true : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n name: toolResponse.toolName,\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/map-mistral-finish-reason.ts\nfunction mapMistralFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n case \"model_length\":\n return \"length\";\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/mistral-chat-options.ts\nimport { z } from \"zod/v4\";\nvar mistralLanguageModelOptions = z.object({\n /**\n * Whether to inject a safety prompt before all conversations.\n *\n * Defaults to `false`.\n */\n safePrompt: z.boolean().optional(),\n documentImageLimit: z.number().optional(),\n documentPageLimit: z.number().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When set to false, the model will use at most one tool per response.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * Controls the reasoning effort for models that support adjustable reasoning.\n *\n * - `'high'`: Enable reasoning\n * - `'none'`: Disable reasoning\n */\n reasoningEffort: z.enum([\"high\", \"none\"]).optional()\n});\n\n// src/mistral-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar mistralErrorDataSchema = z2.object({\n object: z2.literal(\"error\"),\n message: z2.string(),\n type: z2.string(),\n param: z2.string().nullable(),\n code: z2.string().nullable()\n});\nvar mistralFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: mistralErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/mistral-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const mistralTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n mistralTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: mistralTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: mistralTools, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: mistralTools, toolChoice: \"any\", toolWarnings };\n // mistral does not support tool mode directly,\n // so we filter the tools and force the tool choice through 'any'\n case \"tool\":\n return {\n tools: mistralTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"any\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/mistral-chat-language-model.ts\nvar MistralChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"application/pdf\": [/^https:\\/\\/.*$/]\n };\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const options = (_a = await parseProviderOptions({\n provider: \"mistral\",\n providerOptions,\n schema: mistralLanguageModelOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n if (presencePenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const structuredOutputs = (_b = options.structuredOutputs) != null ? _b : true;\n const strictJsonSchema = (_c = options.strictJsonSchema) != null ? _c : false;\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && !(responseFormat == null ? void 0 : responseFormat.schema)) {\n prompt = injectJsonInstructionIntoMessages({\n messages: prompt,\n schema: responseFormat.schema\n });\n }\n const baseArgs = {\n // model id:\n model: this.modelId,\n // model specific settings:\n safe_prompt: options.safePrompt,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n random_seed: seed,\n reasoning_effort: options.reasoningEffort,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && (responseFormat == null ? void 0 : responseFormat.schema) != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // mistral-specific provider options:\n document_image_limit: options.documentImageLimit,\n document_page_limit: options.documentPageLimit,\n // messages:\n messages: convertToMistralChatMessages(prompt)\n };\n const {\n tools: mistralTools,\n toolChoice: mistralToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n return {\n args: {\n ...baseArgs,\n tools: mistralTools,\n tool_choice: mistralToolChoice,\n ...mistralTools != null && options.parallelToolCalls !== void 0 ? { parallel_tool_calls: options.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args: body, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n mistralChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && Array.isArray(choice.message.content)) {\n for (const part of choice.message.content) {\n if (part.type === \"thinking\") {\n const reasoningText = extractReasoningContent(part.thinking);\n if (reasoningText.length > 0) {\n content.push({ type: \"reasoning\", text: reasoningText });\n }\n } else if (part.type === \"text\") {\n if (part.text.length > 0) {\n content.push({ type: \"text\", text: part.text });\n }\n }\n }\n } else {\n const text = extractTextContent(choice.message.content);\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertMistralUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n mistralChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const generateId2 = this.generateId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n const textContent = extractTextContent(delta.content);\n if (delta.content != null && Array.isArray(delta.content)) {\n for (const part of delta.content) {\n if (part.type === \"thinking\") {\n const reasoningDelta = extractReasoningContent(part.thinking);\n if (reasoningDelta.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId2();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: reasoningDelta\n });\n }\n }\n }\n }\n if (textContent != null && textContent.length > 0) {\n if (!activeText) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n if ((delta == null ? void 0 : delta.tool_calls) != null) {\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n const toolName = toolCall.function.name;\n const input = toolCall.function.arguments;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: input\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input\n });\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertMistralUsage(usage)\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction extractReasoningContent(thinking) {\n return thinking.filter((chunk) => chunk.type === \"text\").map((chunk) => chunk.text).join(\"\");\n}\nfunction extractTextContent(content) {\n if (typeof content === \"string\") {\n return content;\n }\n if (content == null) {\n return void 0;\n }\n const textContent = [];\n for (const chunk of content) {\n const { type } = chunk;\n switch (type) {\n case \"text\":\n textContent.push(chunk.text);\n break;\n case \"thinking\":\n case \"image_url\":\n case \"reference\":\n break;\n default: {\n const _exhaustiveCheck = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n return textContent.length ? textContent.join(\"\") : void 0;\n}\nvar mistralContentSchema = z3.union([\n z3.string(),\n z3.array(\n z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"image_url\"),\n image_url: z3.union([\n z3.string(),\n z3.object({\n url: z3.string(),\n detail: z3.string().nullable()\n })\n ])\n }),\n z3.object({\n type: z3.literal(\"reference\"),\n reference_ids: z3.array(z3.union([z3.string(), z3.number()]))\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.array(\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n })\n )\n })\n ])\n )\n]).nullish();\nvar mistralUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number()\n});\nvar mistralChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\"),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n object: z3.literal(\"chat.completion\"),\n usage: mistralUsageSchema\n});\nvar mistralChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).optional(),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: mistralUsageSchema.nullish()\n});\n\n// src/mistral-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar MistralEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 32;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n abortSignal,\n headers\n }) {\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\"\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n MistralTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar MistralTextEmbeddingResponseSchema = z4.object({\n data: z4.array(z4.object({ embedding: z4.array(z4.number()) })),\n usage: z4.object({ prompt_tokens: z4.number() }).nullish()\n});\n\n// src/version.ts\nvar VERSION = true ? \"3.0.27\" : \"0.0.0-test\";\n\n// src/mistral-provider.ts\nfunction createMistral(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.mistral.ai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"MISTRAL_API_KEY\",\n description: \"Mistral\"\n })}`,\n ...options.headers\n },\n `ai-sdk/mistral/${VERSION}`\n );\n const createChatModel = (modelId) => new MistralChatLanguageModel(modelId, {\n provider: \"mistral.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: options.generateId\n });\n const createEmbeddingModel = (modelId) => new MistralEmbeddingModel(modelId, {\n provider: \"mistral.embedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Mistral model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar mistral = createMistral();\nexport {\n VERSION,\n createMistral,\n mistral\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "89A2BD019BDBC09C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "070CA13266FFCF8664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/component/spinner.tsx", "../tui/src/ui/spinner.ts"],
"sourcesContent": [
"import { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { memo as _$memo } from \"@opentui/solid\";\nimport { Show } from \"solid-js\";\nimport { useTheme } from \"../context/theme\";\nimport { useConfig } from \"../config\";\nimport { registerOpencodeSpinner } from \"./register-spinner\";\nregisterOpencodeSpinner();\nexport const SPINNER_FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\nexport function Spinner(props) {\n const {\n theme\n } = useTheme();\n const config = useConfig().data;\n const color = () => props.color ?? theme.textMuted;\n return _$createComponent(Show, {\n get when() {\n return config.animations ?? true;\n },\n get fallback() {\n return (() => {\n var _el$4 = _$createElement(\"text\");\n _$insert(_el$4, (() => {\n var _c$ = _$memo(() => !!props.children);\n return () => _c$() ? [\"\\u22EF \", _$memo(() => props.children)] : \"⋯\";\n })());\n _$effect(_$p => _$setProp(_el$4, \"fg\", color(), _$p));\n return _el$4;\n })();\n },\n get children() {\n var _el$ = _$createElement(\"box\"),\n _el$2 = _$createElement(\"spinner\");\n _$insertNode(_el$, _el$2);\n _$setProp(_el$, \"flexDirection\", \"row\");\n _$setProp(_el$, \"gap\", 1);\n _$setProp(_el$2, \"frames\", SPINNER_FRAMES);\n _$setProp(_el$2, \"interval\", 80);\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return props.children;\n },\n get children() {\n var _el$3 = _$createElement(\"text\");\n _$insert(_el$3, () => props.children);\n _$effect(_$p => _$setProp(_el$3, \"fg\", color(), _$p));\n return _el$3;\n }\n }), null);\n _$effect(_$p => _$setProp(_el$2, \"color\", color(), _$p));\n return _el$;\n }\n });\n}",
"import type { ColorInput } from \"@opentui/core\"\nimport { RGBA } from \"@opentui/core\"\nimport type { ColorGenerator } from \"opentui-spinner\"\n\ninterface AdvancedGradientOptions {\n colors: ColorInput[]\n trailLength: number\n defaultColor?: ColorInput\n direction?: \"forward\" | \"backward\" | \"bidirectional\"\n holdFrames?: { start?: number; end?: number }\n enableFading?: boolean\n minAlpha?: number\n}\n\ninterface ScannerState {\n activePosition: number\n isHolding: boolean\n holdProgress: number\n holdTotal: number\n movementProgress: number\n movementTotal: number\n isMovingForward: boolean\n}\n\nfunction getScannerState(\n frameIndex: number,\n totalChars: number,\n options: Pick<AdvancedGradientOptions, \"direction\" | \"holdFrames\">,\n): ScannerState {\n const { direction = \"forward\", holdFrames = {} } = options\n\n if (direction === \"bidirectional\") {\n const forwardFrames = totalChars\n const holdEndFrames = holdFrames.end ?? 0\n const backwardFrames = totalChars - 1\n\n if (frameIndex < forwardFrames) {\n // Moving forward\n return {\n activePosition: frameIndex,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex,\n movementTotal: forwardFrames,\n isMovingForward: true,\n }\n } else if (frameIndex < forwardFrames + holdEndFrames) {\n // Holding at end\n return {\n activePosition: totalChars - 1,\n isHolding: true,\n holdProgress: frameIndex - forwardFrames,\n holdTotal: holdEndFrames,\n movementProgress: 0,\n movementTotal: 0,\n isMovingForward: true,\n }\n } else if (frameIndex < forwardFrames + holdEndFrames + backwardFrames) {\n // Moving backward\n const backwardIndex = frameIndex - forwardFrames - holdEndFrames\n return {\n activePosition: totalChars - 2 - backwardIndex,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: backwardIndex,\n movementTotal: backwardFrames,\n isMovingForward: false,\n }\n } else {\n // Holding at start\n return {\n activePosition: 0,\n isHolding: true,\n holdProgress: frameIndex - forwardFrames - holdEndFrames - backwardFrames,\n holdTotal: holdFrames.start ?? 0,\n movementProgress: 0,\n movementTotal: 0,\n isMovingForward: false,\n }\n }\n } else if (direction === \"backward\") {\n return {\n activePosition: totalChars - 1 - (frameIndex % totalChars),\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex % totalChars,\n movementTotal: totalChars,\n isMovingForward: false,\n }\n } else {\n return {\n activePosition: frameIndex % totalChars,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex % totalChars,\n movementTotal: totalChars,\n isMovingForward: true,\n }\n }\n}\n\nfunction calculateColorIndex(\n frameIndex: number,\n charIndex: number,\n totalChars: number,\n options: Pick<AdvancedGradientOptions, \"direction\" | \"holdFrames\" | \"trailLength\">,\n state?: ScannerState,\n): number {\n const { trailLength } = options\n const { activePosition, isHolding, holdProgress, isMovingForward } =\n state ?? getScannerState(frameIndex, totalChars, options)\n\n // Calculate directional distance (positive means trailing behind)\n const directionalDistance = isMovingForward\n ? activePosition - charIndex // For forward: trail is to the left (lower indices)\n : charIndex - activePosition // For backward: trail is to the right (higher indices)\n\n // Handle hold frame fading: keep the lead bright, fade the trail\n if (isHolding) {\n // Shift the color index by how long we've been holding\n return directionalDistance + holdProgress\n }\n\n // Normal movement - show gradient trail only behind the movement direction\n if (directionalDistance > 0 && directionalDistance < trailLength) {\n return directionalDistance\n }\n\n // At the active position, show the brightest color\n if (directionalDistance === 0) {\n return 0\n }\n\n return -1\n}\n\nfunction createKnightRiderTrail(options: AdvancedGradientOptions): ColorGenerator {\n const { colors, defaultColor, enableFading = true, minAlpha = 0 } = options\n\n // Use the provided defaultColor if it's an RGBA instance, otherwise convert/default\n // We use RGBA.fromHex for the fallback to ensure we have an RGBA object.\n // Note: If defaultColor is a string, we convert it once here.\n const defaultRgba = defaultColor instanceof RGBA ? defaultColor : RGBA.fromHex((defaultColor as string) || \"#000000\")\n\n // Store the base alpha from the inactive factor\n const baseInactiveAlpha = defaultRgba.a\n\n let cachedFrameIndex = -1\n let cachedState: ScannerState | null = null\n\n return (frameIndex: number, charIndex: number, _totalFrames: number, totalChars: number) => {\n if (frameIndex !== cachedFrameIndex) {\n cachedFrameIndex = frameIndex\n cachedState = getScannerState(frameIndex, totalChars, options)\n }\n\n const state = cachedState!\n\n const index = calculateColorIndex(frameIndex, charIndex, totalChars, options, state)\n\n // Calculate global fade for inactive dots during hold or movement\n const { isHolding, holdProgress, holdTotal, movementProgress, movementTotal } = state\n\n let fadeFactor = 1.0\n if (enableFading) {\n if (isHolding && holdTotal > 0) {\n // Fade out linearly to minAlpha\n const progress = Math.min(holdProgress / holdTotal, 1)\n fadeFactor = Math.max(minAlpha, 1 - progress * (1 - minAlpha))\n } else if (!isHolding && movementTotal > 0) {\n // Fade in linearly from minAlpha during movement\n const progress = Math.min(movementProgress / Math.max(1, movementTotal - 1), 1)\n fadeFactor = minAlpha + progress * (1 - minAlpha)\n }\n }\n\n // Combine base inactive alpha with the fade factor\n // This ensures inactiveFactor is respected while still allowing fading animation\n defaultRgba.a = baseInactiveAlpha * fadeFactor\n\n if (index === -1) {\n return defaultRgba\n }\n\n return colors[index] ?? defaultRgba\n }\n}\n\n/**\n * Derives a gradient of tail colors from a single bright color using alpha falloff\n * @param brightColor The brightest color (center/head of the scanner)\n * @param steps Number of gradient steps (default: 6)\n * @returns Array of RGBA colors with alpha-based trail fade (background-independent)\n */\nexport function deriveTrailColors(brightColor: ColorInput, steps: number = 6): RGBA[] {\n const baseRgba = brightColor instanceof RGBA ? brightColor : RGBA.fromHex(brightColor as string)\n\n const colors: RGBA[] = []\n\n for (let i = 0; i < steps; i++) {\n // Alpha-based falloff with optional bloom effect\n let alpha: number\n let brightnessFactor: number\n\n if (i === 0) {\n // Lead position: full brightness and opacity\n alpha = 1.0\n brightnessFactor = 1.0\n } else if (i === 1) {\n // Slight bloom/glare effect: brighten color but reduce opacity slightly\n alpha = 0.9\n brightnessFactor = 1.15\n } else {\n // Exponential alpha decay for natural-looking trail fade\n alpha = Math.pow(0.65, i - 1)\n brightnessFactor = 1.0\n }\n\n const r = Math.min(1.0, baseRgba.r * brightnessFactor)\n const g = Math.min(1.0, baseRgba.g * brightnessFactor)\n const b = Math.min(1.0, baseRgba.b * brightnessFactor)\n\n colors.push(RGBA.fromValues(r, g, b, alpha))\n }\n\n return colors\n}\n\n/**\n * Derives the inactive/default color from a bright color using alpha\n * @param brightColor The brightest color (center/head of the scanner)\n * @param factor Alpha factor for inactive color (default: 0.2, range: 0-1)\n * @returns The same color with reduced alpha for background-independent dimming\n */\nexport function deriveInactiveColor(brightColor: ColorInput, factor: number = 0.2): RGBA {\n const baseRgba = brightColor instanceof RGBA ? brightColor : RGBA.fromHex(brightColor as string)\n\n // Use the full color brightness but adjust alpha for background-independent dimming\n return RGBA.fromValues(baseRgba.r, baseRgba.g, baseRgba.b, factor)\n}\n\nexport type KnightRiderStyle = \"blocks\" | \"diamonds\"\n\nexport interface KnightRiderOptions {\n width?: number\n style?: KnightRiderStyle\n holdStart?: number\n holdEnd?: number\n colors?: ColorInput[]\n /** Single color to derive trail from (alternative to providing colors array) */\n color?: ColorInput\n /** Number of trail steps when using single color (default: 6) */\n trailSteps?: number\n defaultColor?: ColorInput\n /** Alpha factor for inactive color when using single color (default: 0.2, range: 0-1) */\n inactiveFactor?: number\n /** Enable fading of inactive dots during hold and movement (default: true) */\n enableFading?: boolean\n /** Minimum alpha value when fading (default: 0, range: 0-1) */\n minAlpha?: number\n}\n\n/**\n * Creates frame strings for a Knight Rider style scanner animation\n * @param options Configuration options for the Knight Rider effect\n * @returns Array of frame strings\n */\nexport function createFrames(options: KnightRiderOptions = {}): string[] {\n const width = options.width ?? 8\n const style = options.style ?? \"diamonds\"\n const holdStart = options.holdStart ?? 30\n const holdEnd = options.holdEnd ?? 9\n\n const colors =\n options.colors ??\n (options.color\n ? deriveTrailColors(options.color, options.trailSteps)\n : [\n RGBA.fromHex(\"#ff0000\"), // Brightest Red (Center)\n RGBA.fromHex(\"#ff5555\"), // Glare/Bloom\n RGBA.fromHex(\"#dd0000\"), // Trail 1\n RGBA.fromHex(\"#aa0000\"), // Trail 2\n RGBA.fromHex(\"#770000\"), // Trail 3\n RGBA.fromHex(\"#440000\"), // Trail 4\n ])\n\n const defaultColor =\n options.defaultColor ??\n (options.color ? deriveInactiveColor(options.color, options.inactiveFactor) : RGBA.fromHex(\"#330000\"))\n\n const trailOptions = {\n colors,\n trailLength: colors.length,\n defaultColor,\n direction: \"bidirectional\" as const,\n holdFrames: { start: holdStart, end: holdEnd },\n enableFading: options.enableFading,\n minAlpha: options.minAlpha,\n }\n\n // Bidirectional cycle: Forward (width) + Hold End + Backward (width-1) + Hold Start\n const totalFrames = width + holdEnd + (width - 1) + holdStart\n\n // Generate dynamic frames where inactive pixels are dots and active ones are blocks\n const frames = Array.from({ length: totalFrames }, (_, frameIndex) => {\n return Array.from({ length: width }, (_, charIndex) => {\n const index = calculateColorIndex(frameIndex, charIndex, width, trailOptions)\n\n if (style === \"diamonds\") {\n const shapes = [\"⬥\", \"◆\", \"⬩\", \"⬪\"]\n if (index >= 0 && index < trailOptions.colors.length) {\n return shapes[Math.min(index, shapes.length - 1)]\n }\n return \"·\"\n }\n\n // Default to blocks\n // It's active if we have a valid color index that is within our colors array\n const isActive = index >= 0 && index < trailOptions.colors.length\n return isActive ? \"■\" : \"⬝\"\n }).join(\"\")\n })\n\n return frames\n}\n\n/**\n * Creates a color generator function for Knight Rider style scanner animation\n * @param options Configuration options for the Knight Rider effect\n * @returns ColorGenerator function\n */\nexport function createColors(options: KnightRiderOptions = {}): ColorGenerator {\n const holdStart = options.holdStart ?? 30\n const holdEnd = options.holdEnd ?? 9\n\n const colors =\n options.colors ??\n (options.color\n ? deriveTrailColors(options.color, options.trailSteps)\n : [\n RGBA.fromHex(\"#ff0000\"), // Brightest Red (Center)\n RGBA.fromHex(\"#ff5555\"), // Glare/Bloom\n RGBA.fromHex(\"#dd0000\"), // Trail 1\n RGBA.fromHex(\"#aa0000\"), // Trail 2\n RGBA.fromHex(\"#770000\"), // Trail 3\n RGBA.fromHex(\"#440000\"), // Trail 4\n ])\n\n const defaultColor =\n options.defaultColor ??\n (options.color ? deriveInactiveColor(options.color, options.inactiveFactor) : RGBA.fromHex(\"#330000\"))\n\n const trailOptions = {\n colors,\n trailLength: colors.length,\n defaultColor,\n direction: \"bidirectional\" as const,\n holdFrames: { start: holdStart, end: holdEnd },\n enableFading: options.enableFading,\n minAlpha: options.minAlpha,\n }\n\n return createKnightRiderTrail(trailOptions)\n}\n"
],
"mappings": "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",
"debugId": "8DCF7D1F3D2E28C164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/retry-wrapper.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nimport { NodeHttpHandler } from \"@smithy/node-http-handler\";\nimport fs from \"node:fs/promises\";\nimport { checkUrl } from \"./checkUrl\";\nimport { createGetRequest, getCredentials } from \"./requestHelpers\";\nimport { retryWrapper } from \"./retry-wrapper\";\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nexport const fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger?.warn\n ? console.warn\n : options.logger.warn.bind(options.logger);\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n checkUrl(url, options.logger);\n const requestHandler = NodeHttpHandler.create({ connectionTimeout: options.timeout ?? 1000 });\n const requestTimeout = options.timeout ?? 1000;\n const provider = retryWrapper(async () => {\n const request = createGetRequest(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await fs.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request, { requestTimeout });\n return getCredentials(result.response).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n return async () => {\n try {\n return await provider();\n }\n finally {\n requestHandler.destroy?.();\n }\n };\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nexport const checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { HttpRequest } from \"@smithy/core/protocols\";\nimport { parseRfc3339DateTime } from \"@smithy/core/serde\";\nimport { sdkStreamMixin } from \"@smithy/core/serde\";\nexport function createGetRequest(url) {\n return new HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nexport async function getCredentials(response, logger) {\n const stream = sdkStreamMixin(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: parseRfc3339DateTime(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n",
"export const retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\n"
],
"mappings": "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",
"debugId": "92D577EA1A5DBB4464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js", "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js", "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js", "../../node_modules/.bun/which@2.0.2/node_modules/which/which.js", "../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js", "../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js", "../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"],
"sourcesContent": [
"module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n",
"module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n",
"var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n",
"const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n",
"'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n",
"'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n",
"'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n",
"'use strict';\nmodule.exports = /^#!(.*)/;\n",
"'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n",
"'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n",
"'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n",
"'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n",
"'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n"
],
"mappings": "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",
"debugId": "86571C167F54024064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260702134641_add_session_context_entry.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260702134641_add_session_context_entry\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_context_entry\\` (\n \\`session_id\\` text NOT NULL,\n \\`key\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`session_context_entry_pk\\` PRIMARY KEY(\\`session_id\\`, \\`key\\`),\n CONSTRAINT \\`fk_session_context_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4eAUb,EACF,EAEL",
"debugId": "82F7A5DD807E37AA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260612174303_project_dir_strategy.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260612174303_project_dir_strategy\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`project_directory\\` ADD \\`strategy\\` text;`)\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_project_directory\\` (\n \\`project_id\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`type\\` text,\n \\`strategy\\` text,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`project_directory_pk\\` PRIMARY KEY(\\`project_id\\`, \\`directory\\`),\n CONSTRAINT \\`fk_project_directory_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_project_directory\\`(\\`project_id\\`, \\`directory\\`, \\`type\\`, \\`time_created\\`) SELECT \\`project_id\\`, \\`directory\\`, \\`type\\`, \\`time_created\\` FROM \\`project_directory\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`project_directory\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_project_directory\\` RENAME TO \\`project_directory\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sDAA0D,EACxE,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,wdAUb,EACD,MAAO,EAAG,IACR,6KACF,EACA,MAAO,EAAG,IAAI,iCAAmC,EACjD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,yBAAyB,EACxC,EAEL",
"debugId": "77AA01266BBB863B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js"],
"sourcesContent": [
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst fs_1 = require(\"fs\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n const paths = ['/etc/machine-id', '/var/lib/dbus/machine-id'];\n for (const path of paths) {\n try {\n const result = await fs_1.promises.readFile(path, { encoding: 'utf8' });\n return result.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-linux.js.map"
],
"mappings": ";yHACA,YAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAK5B,IAAM,UACA,MACN,eAAe,CAAY,EAAG,CAC1B,IAAM,EAAQ,CAAC,kBAAmB,0BAA0B,EAC5D,QAAW,KAAQ,EACf,GAAI,CAEA,OADe,MAAM,EAAK,SAAS,SAAS,EAAM,CAAE,SAAU,MAAO,CAAC,GACxD,KAAK,EAEvB,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAGzD,OAEI,eAAe",
"debugId": "2E82099BB363E23C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260211171708_add_project_commands.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260211171708_add_project_commands\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`project\\` ADD \\`commands\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4CAAgD,EAC/D,EAEL",
"debugId": "29433EACF4B655BB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n api_1.diag.debug('could not read machine-id: unsupported platform');\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-unsupported.js.map"
],
"mappings": ";iHAKA,YAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,MACN,eAAe,CAAY,EAAG,CAC1B,EAAM,KAAK,MAAM,iDAAiD,EAClE,OAEI,eAAe",
"debugId": "99198E7CCC85504264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultCognitoIdentityHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cognito-identity\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultCognitoIdentityHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetCredentialsForIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n case \"GetId\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst m = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = \"stringEquals\", h = { [m]: \"Endpoint\" }, i = { [m]: d }, j = { [m]: \"Region\" }, k = {}, l = [j];\nconst _data = {\n conditions: [\n [c, [h]],\n [c, l],\n [\"aws.partition\", l, d],\n [e, [{ [m]: \"UseFIPS\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsFIPS\"] }, b]],\n [e, [{ [m]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsDualStack\"] }, b]],\n [g, [{ fn: f, argv: [i, \"name\"] }, \"aws\"]],\n [g, [j, \"us-east-1\"]],\n [g, [j, \"us-east-2\"]],\n [g, [j, \"us-west-1\"]],\n [g, [j, \"us-west-2\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [h, k],\n [\"https://cognito-identity-fips.us-east-1.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-east-2.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-west-1.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-west-2.amazonaws.com\", k],\n [\"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://cognito-identity.{Region}.amazonaws.com\", k],\n [\"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 17,\n 3,\n 1,\n 4,\n r + 16,\n 2,\n 5,\n r + 16,\n 3,\n 9,\n 6,\n 5,\n 7,\n r + 15,\n 6,\n 8,\n r + 14,\n 7,\n r + 12,\n r + 13,\n 4,\n 11,\n 10,\n 5,\n r + 9,\n r + 11,\n 5,\n 12,\n r + 10,\n 6,\n 13,\n r + 9,\n 8,\n r + 4,\n 14,\n 9,\n r + 5,\n 15,\n 10,\n r + 6,\n 16,\n 11,\n r + 7,\n r + 8,\n 3,\n r + 1,\n 18,\n 5,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass CognitoIdentityServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CognitoIdentityServiceException.prototype);\n }\n}\n\nclass ExternalServiceException extends CognitoIdentityServiceException {\n name = \"ExternalServiceException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExternalServiceException.prototype);\n }\n}\nclass InternalErrorException extends CognitoIdentityServiceException {\n name = \"InternalErrorException\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalErrorException.prototype);\n }\n}\nclass InvalidIdentityPoolConfigurationException extends CognitoIdentityServiceException {\n name = \"InvalidIdentityPoolConfigurationException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidIdentityPoolConfigurationException.prototype);\n }\n}\nclass InvalidParameterException extends CognitoIdentityServiceException {\n name = \"InvalidParameterException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n }\n}\nclass NotAuthorizedException extends CognitoIdentityServiceException {\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NotAuthorizedException.prototype);\n }\n}\nclass ResourceConflictException extends CognitoIdentityServiceException {\n name = \"ResourceConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceConflictException.prototype);\n }\n}\nclass ResourceNotFoundException extends CognitoIdentityServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nclass TooManyRequestsException extends CognitoIdentityServiceException {\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nclass LimitExceededException extends CognitoIdentityServiceException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\n\nconst _AI = \"AccountId\";\nconst _AKI = \"AccessKeyId\";\nconst _C = \"Credentials\";\nconst _CRA = \"CustomRoleArn\";\nconst _E = \"Expiration\";\nconst _ESE = \"ExternalServiceException\";\nconst _GCFI = \"GetCredentialsForIdentity\";\nconst _GCFII = \"GetCredentialsForIdentityInput\";\nconst _GCFIR = \"GetCredentialsForIdentityResponse\";\nconst _GI = \"GetId\";\nconst _GII = \"GetIdInput\";\nconst _GIR = \"GetIdResponse\";\nconst _IEE = \"InternalErrorException\";\nconst _II = \"IdentityId\";\nconst _IIPCE = \"InvalidIdentityPoolConfigurationException\";\nconst _IPE = \"InvalidParameterException\";\nconst _IPI = \"IdentityPoolId\";\nconst _IPT = \"IdentityProviderToken\";\nconst _L = \"Logins\";\nconst _LEE = \"LimitExceededException\";\nconst _LM = \"LoginsMap\";\nconst _NAE = \"NotAuthorizedException\";\nconst _RCE = \"ResourceConflictException\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _SK = \"SecretKey\";\nconst _SKS = \"SecretKeyString\";\nconst _ST = \"SessionToken\";\nconst _TMRE = \"TooManyRequestsException\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _hE = \"httpError\";\nconst _m = \"message\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.cognitoidentity\";\nconst _se = \"server\";\nconst n0 = \"com.amazonaws.cognitoidentity\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar CognitoIdentityServiceException$ = [-3, _s, \"CognitoIdentityServiceException\", 0, [], []];\n_s_registry.registerError(CognitoIdentityServiceException$, CognitoIdentityServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar ExternalServiceException$ = [-3, n0, _ESE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(ExternalServiceException$, ExternalServiceException);\nvar InternalErrorException$ = [-3, n0, _IEE, { [_e]: _se }, [_m], [0]];\nn0_registry.registerError(InternalErrorException$, InternalErrorException);\nvar InvalidIdentityPoolConfigurationException$ = [\n -3,\n n0,\n _IIPCE,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0],\n];\nn0_registry.registerError(InvalidIdentityPoolConfigurationException$, InvalidIdentityPoolConfigurationException);\nvar InvalidParameterException$ = [-3, n0, _IPE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(InvalidParameterException$, InvalidParameterException);\nvar LimitExceededException$ = [-3, n0, _LEE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(LimitExceededException$, LimitExceededException);\nvar NotAuthorizedException$ = [-3, n0, _NAE, { [_e]: _c, [_hE]: 403 }, [_m], [0]];\nn0_registry.registerError(NotAuthorizedException$, NotAuthorizedException);\nvar ResourceConflictException$ = [-3, n0, _RCE, { [_e]: _c, [_hE]: 409 }, [_m], [0]];\nn0_registry.registerError(ResourceConflictException$, ResourceConflictException);\nvar ResourceNotFoundException$ = [-3, n0, _RNFE, { [_e]: _c, [_hE]: 404 }, [_m], [0]];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nvar TooManyRequestsException$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_m], [0]];\nn0_registry.registerError(TooManyRequestsException$, TooManyRequestsException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar IdentityProviderToken = [0, n0, _IPT, 8, 0];\nvar SecretKeyString = [0, n0, _SKS, 8, 0];\nvar Credentials$ = [\n 3,\n n0,\n _C,\n 0,\n [_AKI, _SK, _ST, _E],\n [0, [() => SecretKeyString, 0], 0, 4],\n];\nvar GetCredentialsForIdentityInput$ = [\n 3,\n n0,\n _GCFII,\n 0,\n [_II, _L, _CRA],\n [0, [() => LoginsMap, 0], 0],\n 1,\n];\nvar GetCredentialsForIdentityResponse$ = [\n 3,\n n0,\n _GCFIR,\n 0,\n [_II, _C],\n [0, [() => Credentials$, 0]],\n];\nvar GetIdInput$ = [3, n0, _GII, 0, [_IPI, _AI, _L], [0, 0, [() => LoginsMap, 0]], 1];\nvar GetIdResponse$ = [3, n0, _GIR, 0, [_II], [0]];\nvar LoginsMap = [2, n0, _LM, 0, [0, 0], [() => IdentityProviderToken, 0]];\nvar GetCredentialsForIdentity$ = [\n 9,\n n0,\n _GCFI,\n 0,\n () => GetCredentialsForIdentityInput$,\n () => GetCredentialsForIdentityResponse$,\n];\nvar GetId$ = [9, n0, _GI, 0, () => GetIdInput$, () => GetIdResponse$];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultCognitoIdentityHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsJson1_1Protocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.cognitoidentity\",\n errorTypeRegistries,\n xmlNamespace: \"http://cognito-identity.amazonaws.com/doc/2014-06-30/\",\n version: \"2014-06-30\",\n serviceTarget: \"AWSCognitoIdentityService\",\n },\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass CognitoIdentityClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultCognitoIdentityHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass GetCredentialsForIdentityCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSCognitoIdentityService\", \"GetCredentialsForIdentity\", {})\n .n(\"CognitoIdentityClient\", \"GetCredentialsForIdentityCommand\")\n .sc(GetCredentialsForIdentity$)\n .build() {\n}\n\nclass GetIdCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSCognitoIdentityService\", \"GetId\", {})\n .n(\"CognitoIdentityClient\", \"GetIdCommand\")\n .sc(GetId$)\n .build() {\n}\n\nconst commands = {\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n};\nclass CognitoIdentity extends CognitoIdentityClient {\n}\nclient.createAggregatedClient(commands, CognitoIdentity);\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.CognitoIdentity = CognitoIdentity;\nexports.CognitoIdentityClient = CognitoIdentityClient;\nexports.CognitoIdentityServiceException = CognitoIdentityServiceException;\nexports.CognitoIdentityServiceException$ = CognitoIdentityServiceException$;\nexports.Credentials$ = Credentials$;\nexports.ExternalServiceException = ExternalServiceException;\nexports.ExternalServiceException$ = ExternalServiceException$;\nexports.GetCredentialsForIdentity$ = GetCredentialsForIdentity$;\nexports.GetCredentialsForIdentityCommand = GetCredentialsForIdentityCommand;\nexports.GetCredentialsForIdentityInput$ = GetCredentialsForIdentityInput$;\nexports.GetCredentialsForIdentityResponse$ = GetCredentialsForIdentityResponse$;\nexports.GetId$ = GetId$;\nexports.GetIdCommand = GetIdCommand;\nexports.GetIdInput$ = GetIdInput$;\nexports.GetIdResponse$ = GetIdResponse$;\nexports.InternalErrorException = InternalErrorException;\nexports.InternalErrorException$ = InternalErrorException$;\nexports.InvalidIdentityPoolConfigurationException = InvalidIdentityPoolConfigurationException;\nexports.InvalidIdentityPoolConfigurationException$ = InvalidIdentityPoolConfigurationException$;\nexports.InvalidParameterException = InvalidParameterException;\nexports.InvalidParameterException$ = InvalidParameterException$;\nexports.LimitExceededException = LimitExceededException;\nexports.LimitExceededException$ = LimitExceededException$;\nexports.NotAuthorizedException = NotAuthorizedException;\nexports.NotAuthorizedException$ = NotAuthorizedException$;\nexports.ResourceConflictException = ResourceConflictException;\nexports.ResourceConflictException$ = ResourceConflictException$;\nexports.ResourceNotFoundException = ResourceNotFoundException;\nexports.ResourceNotFoundException$ = ResourceNotFoundException$;\nexports.TooManyRequestsException = TooManyRequestsException;\nexports.TooManyRequestsException$ = TooManyRequestsException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "28DE367145E967E964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/integration-id.ts", "../schema/src/credential.ts", "../schema/src/connection.ts", "../schema/src/integration.ts", "../schema/src/provider.ts", "../schema/src/money.ts", "../schema/src/model.ts", "../schema/src/prompt.ts", "../schema/src/shell.ts", "../schema/src/session-error.ts", "../schema/src/session-id.ts", "../schema/src/permission.ts", "../schema/src/agent.ts", "../schema/src/skill.ts", "../schema/src/snapshot.ts", "../schema/src/token-usage.ts", "../schema/src/session-message.ts"],
"sourcesContent": [
"import { Schema } from \"effect\"\n\nexport const IntegrationID = Schema.String.pipe(Schema.brand(\"Integration.ID\"))\nexport type IntegrationID = typeof IntegrationID.Type\n\nexport const IntegrationMethodID = Schema.String.pipe(Schema.brand(\"Integration.MethodID\"))\nexport type IntegrationMethodID = typeof IntegrationMethodID.Type\n",
"export * as Credential from \"./credential.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { IntegrationMethodID } from \"./integration-id.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.pipe(\n Schema.brand(\"Credential.ID\"),\n statics((schema) => ({ create: () => schema.make(\"cred_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport interface OAuth extends Schema.Schema.Type<typeof OAuth> {}\nexport const OAuth = Schema.Struct({\n type: Schema.Literal(\"oauth\"),\n methodID: IntegrationMethodID,\n refresh: Schema.String,\n access: Schema.String,\n expires: NonNegativeInt,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n}).annotate({ identifier: \"Credential.OAuth\" })\n\nexport interface Key extends Schema.Schema.Type<typeof Key> {}\nexport const Key = Schema.Struct({\n type: Schema.Literal(\"key\"),\n key: Schema.String,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n}).annotate({ identifier: \"Credential.Key\" })\n\nexport const Value = Schema.Union([OAuth, Key])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Credential.Value\" })\nexport type Value = Schema.Schema.Type<typeof Value>\n",
"export * as Connection from \"./connection.js\"\n\nimport { Schema } from \"effect\"\nimport { Credential } from \"./credential.js\"\n\nexport interface CredentialInfo extends Schema.Schema.Type<typeof CredentialInfo> {}\nexport const CredentialInfo = Schema.Struct({\n type: Schema.Literal(\"credential\"),\n id: Credential.ID,\n label: Schema.String,\n}).annotate({ identifier: \"Connection.CredentialInfo\" })\n\nexport interface EnvInfo extends Schema.Schema.Type<typeof EnvInfo> {}\nexport const EnvInfo = Schema.Struct({\n type: Schema.Literal(\"env\"),\n name: Schema.String,\n}).annotate({ identifier: \"Connection.EnvInfo\" })\n\nexport const Info = Schema.Union([CredentialInfo, EnvInfo])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Connection.Info\" })\nexport type Info = typeof Info.Type\n",
"export * as Integration from \"./integration.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { Connection } from \"./connection.js\"\nimport { ascending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\nimport { IntegrationID, IntegrationMethodID } from \"./integration-id.js\"\n\nexport const ID = IntegrationID\nexport type ID = typeof ID.Type\n\nexport const MethodID = IntegrationMethodID\nexport type MethodID = typeof MethodID.Type\n\nexport interface When extends Schema.Schema.Type<typeof When> {}\nexport const When = Schema.Struct({\n key: Schema.String,\n op: Schema.Literals([\"eq\", \"neq\"]),\n value: Schema.String,\n}).annotate({ identifier: \"Integration.When\" })\n\nexport interface TextPrompt extends Schema.Schema.Type<typeof TextPrompt> {}\nexport const TextPrompt = Schema.Struct({\n type: Schema.Literal(\"text\"),\n key: Schema.String,\n message: Schema.String,\n placeholder: optional(Schema.String),\n when: optional(When),\n}).annotate({ identifier: \"Integration.TextPrompt\" })\n\nexport interface SelectPrompt extends Schema.Schema.Type<typeof SelectPrompt> {}\nexport const SelectPrompt = Schema.Struct({\n type: Schema.Literal(\"select\"),\n key: Schema.String,\n message: Schema.String,\n options: Schema.Array(\n Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n hint: optional(Schema.String),\n }),\n ),\n when: optional(When),\n}).annotate({ identifier: \"Integration.SelectPrompt\" })\n\nexport const Prompt = Schema.Union([TextPrompt, SelectPrompt]).pipe(Schema.toTaggedUnion(\"type\"))\nexport type Prompt = typeof Prompt.Type\n\nexport interface OAuthMethod extends Schema.Schema.Type<typeof OAuthMethod> {}\nexport const OAuthMethod = Schema.Struct({\n id: MethodID,\n type: Schema.Literal(\"oauth\"),\n label: Schema.String,\n prompts: optional(Schema.Array(Prompt)),\n}).annotate({ identifier: \"Integration.OAuthMethod\" })\n\nexport interface KeyMethod extends Schema.Schema.Type<typeof KeyMethod> {}\nexport const KeyMethod = Schema.Struct({\n type: Schema.Literal(\"key\"),\n label: optional(Schema.String),\n}).annotate({ identifier: \"Integration.KeyMethod\" })\n\nexport interface EnvMethod extends Schema.Schema.Type<typeof EnvMethod> {}\nexport const EnvMethod = Schema.Struct({\n type: Schema.Literal(\"env\"),\n names: Schema.Array(Schema.String),\n}).annotate({ identifier: \"Integration.EnvMethod\" })\n\nexport const Method = Schema.Union([OAuthMethod, KeyMethod, EnvMethod])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Integration.Method\" })\nexport type Method = typeof Method.Type\n\nexport const Inputs = Schema.Record(Schema.String, Schema.String).annotate({ identifier: \"Integration.Inputs\" })\nexport type Inputs = typeof Inputs.Type\n\nconst Updated = ephemeral({\n type: \"integration.updated\",\n schema: {},\n})\nconst ConnectionUpdated = ephemeral({\n type: \"integration.connection.updated\",\n schema: { integrationID: ID },\n})\nexport const Event = { Updated, ConnectionUpdated, Definitions: inventory(Updated, ConnectionUpdated) }\n\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\nexport const Ref = Schema.Struct({\n id: ID,\n name: Schema.String,\n}).annotate({ identifier: \"Integration.Ref\" })\n\nexport const Info = Schema.Struct({\n id: ID,\n name: Schema.String,\n methods: Schema.Array(Method),\n connections: Schema.Array(Connection.Info),\n}).annotate({ identifier: \"Integration.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nexport const AttemptID = Schema.String.pipe(\n Schema.brand(\"Integration.AttemptID\"),\n statics((schema) => ({ create: () => schema.make(\"con_\" + ascending()) })),\n)\nexport type AttemptID = typeof AttemptID.Type\n\nconst AttemptTime = Schema.Struct({\n created: Schema.Number,\n expires: Schema.Number,\n})\n\nexport class Attempt extends Schema.Class<Attempt>(\"Integration.Attempt\")({\n attemptID: AttemptID,\n url: Schema.String,\n instructions: Schema.String,\n mode: Schema.Literals([\"auto\", \"code\"]),\n time: AttemptTime,\n}) {}\n\nexport const AttemptStatus = Schema.Union([\n Schema.Struct({ status: Schema.Literal(\"pending\"), time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"complete\"), time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"failed\"), message: Schema.String, time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"expired\"), time: AttemptTime }),\n])\n .pipe(Schema.toTaggedUnion(\"status\"))\n .annotate({ identifier: \"Integration.AttemptStatus\" })\nexport type AttemptStatus = typeof AttemptStatus.Type\n",
"export * as Provider from \"./provider.js\"\n\nimport { Effect, Schema } from \"effect\"\nimport { Integration } from \"./integration.js\"\nimport { optional, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.pipe(\n Schema.brand(\"ProviderV2.ID\"),\n statics((schema) => ({\n opencode: schema.make(\"opencode\"),\n anthropic: schema.make(\"anthropic\"),\n openai: schema.make(\"openai\"),\n google: schema.make(\"google\"),\n googleVertex: schema.make(\"google-vertex\"),\n githubCopilot: schema.make(\"github-copilot\"),\n amazonBedrock: schema.make(\"amazon-bedrock\"),\n azure: schema.make(\"azure\"),\n openrouter: schema.make(\"openrouter\"),\n mistral: schema.make(\"mistral\"),\n gitlab: schema.make(\"gitlab\"),\n })),\n)\nexport type ID = typeof ID.Type\n\nexport const Package = Schema.String\nexport type Package = typeof Package.Type\n\nexport const Overlays = {\n settings: Schema.Record(Schema.String, Schema.Json).pipe(optional),\n headers: Schema.Record(Schema.String, Schema.String).pipe(optional),\n body: Schema.Record(Schema.String, Schema.Json).pipe(optional),\n}\n\nexport const Settings = Schema.Record(Schema.String, Schema.Json).annotate({ identifier: \"Provider.Settings\" })\nexport type Settings = typeof Settings.Type\n\nexport interface Request extends Schema.Schema.Type<typeof Request> {}\nexport const Request = Schema.Struct({\n settings: Settings.pipe(Schema.withConstructorDefault(Effect.succeed({}))),\n headers: Schema.Record(Schema.String, Schema.String),\n body: Schema.Record(Schema.String, Schema.Json),\n}).annotate({ identifier: \"Provider.Request\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n integrationID: Integration.ID.pipe(optional),\n name: Schema.String,\n disabled: Schema.Boolean.pipe(optional),\n package: Package,\n ...Overlays,\n})\n .annotate({ identifier: \"ProviderV2.Info\" })\n .pipe(\n statics(() => ({\n empty: (id: ID): Info => ({ id, name: id, package: \"\" }),\n })),\n )\n",
"export * as Money from \"./money.js\"\n\nimport { Schema } from \"effect\"\nimport { statics } from \"./schema.js\"\n\nexport const USD = Schema.Finite.pipe(\n Schema.brand(\"Money.USD\"),\n Schema.annotate({ identifier: \"Money.USD\" }),\n statics((schema) => ({ zero: schema.make(0) })),\n)\nexport type USD = typeof USD.Type\n\nexport const USDPerMillionTokens = Schema.Finite.pipe(\n Schema.brand(\"Money.USDPerMillionTokens\"),\n Schema.annotate({ identifier: \"Money.USDPerMillionTokens\" }),\n statics((schema) => ({ zero: schema.make(0) })),\n)\nexport type USDPerMillionTokens = typeof USDPerMillionTokens.Type\n",
"export * as Model from \"./model.js\"\n\nimport { Schema } from \"effect\"\nimport { optional, statics } from \"./schema.js\"\nimport { Provider } from \"./provider.js\"\nimport { Money } from \"./money.js\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Model.ID\"))\nexport type ID = typeof ID.Type\n\nexport const VariantID = Schema.String.pipe(Schema.brand(\"Model.VariantID\"))\nexport type VariantID = typeof VariantID.Type\n\nexport const Ref = Schema.Struct({\n id: ID,\n providerID: Provider.ID,\n variant: VariantID.pipe(optional),\n})\n .annotate({ identifier: \"Model.Ref\" })\n .pipe(\n statics((schema) => ({\n parse: (input: string) => {\n const providerEnd = input.indexOf(\"/\")\n if (providerEnd <= 0) throw new Error(`Invalid model reference: ${input}`)\n const providerID = input.slice(0, providerEnd)\n const variantStart = input.indexOf(\"#\", providerEnd + 1)\n const id = input.slice(providerEnd + 1, variantStart === -1 ? undefined : variantStart)\n const variant = variantStart === -1 ? undefined : input.slice(variantStart + 1)\n if (!id || providerID.includes(\"#\") || (variant !== undefined && (!variant || variant.includes(\"#\"))))\n throw new Error(`Invalid model reference: ${input}`)\n return schema.make({\n providerID: Provider.ID.make(providerID),\n id: ID.make(id),\n ...(variant ? { variant: VariantID.make(variant) } : {}),\n })\n },\n })),\n )\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\n\nexport const Family = Schema.String.pipe(Schema.brand(\"Model.Family\"))\nexport type Family = typeof Family.Type\n\nexport interface Capabilities extends Schema.Schema.Type<typeof Capabilities> {}\nexport const Capabilities = Schema.Struct({\n tools: Schema.Boolean,\n input: Schema.Array(Schema.String),\n output: Schema.Array(Schema.String),\n}).annotate({ identifier: \"Model.Capabilities\" })\n\nexport interface Cost extends Schema.Schema.Type<typeof Cost> {}\nexport const Cost = Schema.Struct({\n tier: Schema.Struct({\n type: Schema.tag(\"context\"),\n size: Schema.Int,\n }).pipe(optional),\n input: Money.USDPerMillionTokens,\n output: Money.USDPerMillionTokens,\n cache: Schema.Struct({\n read: Money.USDPerMillionTokens,\n write: Money.USDPerMillionTokens,\n }),\n}).annotate({ identifier: \"Model.Cost\" })\n\nexport interface Variant extends Schema.Schema.Type<typeof Variant> {}\nexport const Variant = Schema.Struct({\n id: VariantID,\n ...Provider.Overlays,\n}).annotate({ identifier: \"Model.Variant\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n modelID: ID,\n providerID: Provider.ID,\n family: Family.pipe(optional),\n name: Schema.String,\n package: Provider.Package.pipe(optional),\n ...Provider.Overlays,\n capabilities: Capabilities,\n variants: Schema.Array(Variant),\n time: Schema.Struct({\n released: Schema.Finite,\n }),\n cost: Schema.Array(Cost),\n status: Schema.Literals([\"alpha\", \"beta\", \"deprecated\", \"active\"]),\n enabled: Schema.Boolean,\n limit: Schema.Struct({\n context: Schema.Int,\n input: Schema.Int.pipe(optional),\n output: Schema.Int,\n }),\n})\n .annotate({ identifier: \"Model.Info\" })\n .pipe(\n statics(() => ({\n empty: (providerID: Provider.ID, id: ID) =>\n ({\n id,\n modelID: id,\n providerID,\n name: id,\n capabilities: { tools: false, input: [], output: [] },\n variants: [],\n time: { released: 0 },\n cost: [],\n status: \"active\",\n enabled: true,\n limit: { context: 0, output: 0 },\n }) satisfies Info,\n })),\n )\n",
"import { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { statics } from \"./schema.js\"\n\nexport interface PromptMention extends Schema.Schema.Type<typeof PromptMention> {}\nexport const PromptMention = Schema.Struct({\n start: Schema.Finite,\n end: Schema.Finite,\n text: Schema.String,\n}).annotate({ identifier: \"Prompt.Mention\" })\n\nexport const FileSource = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"inline\") }),\n Schema.Struct({ type: Schema.Literal(\"uri\"), uri: Schema.String }),\n])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Prompt.FileSource\" })\nexport type FileSource = typeof FileSource.Type\n\nexport const Base64 = Schema.String.check(\n Schema.isPattern(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/),\n).annotate({ identifier: \"Prompt.Base64\" })\nexport type Base64 = typeof Base64.Type\n\nexport interface FileAttachment extends Schema.Schema.Type<typeof FileAttachment> {}\nexport const FileAttachment = Schema.Struct({\n data: Base64,\n mime: Schema.String,\n source: FileSource,\n name: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n mention: PromptMention.pipe(optional),\n})\n .annotate({ identifier: \"Prompt.FileAttachment\" })\n .pipe(\n statics((schema) => ({\n create: (input: FileAttachment) =>\n schema.make({\n data: input.data,\n mime: input.mime,\n source: input.source,\n name: input.name,\n description: input.description,\n mention: input.mention,\n }),\n })),\n )\n\nexport interface AgentAttachment extends Schema.Schema.Type<typeof AgentAttachment> {}\nexport const AgentAttachment = Schema.Struct({\n name: Schema.String,\n mention: PromptMention.pipe(optional),\n}).annotate({ identifier: \"Prompt.AgentAttachment\" })\n\nexport interface Prompt extends Schema.Schema.Type<typeof Prompt> {}\nexport const Prompt = Schema.Struct({\n text: Schema.String,\n files: Schema.Array(FileAttachment).pipe(optional),\n agents: Schema.Array(AgentAttachment).pipe(optional),\n})\n .annotate({ identifier: \"Prompt\" })\n .pipe(\n statics((schema) => ({\n equivalence: Schema.toEquivalence(schema),\n fromUserMessage: (input: Pick<Prompt, \"text\" | \"files\" | \"agents\">) =>\n schema.make({\n text: input.text,\n ...(input.files === undefined ? {} : { files: input.files }),\n ...(input.agents === undefined ? {} : { agents: input.agents }),\n }),\n })),\n )\n",
"export * as Shell from \"./shell.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, statics } from \"./schema.js\"\n\nconst IDSchema = Schema.String.check(Schema.isStartsWith(\"sh_\")).pipe(Schema.brand(\"Shell.ID\"))\n\nexport const ID = IDSchema.pipe(\n statics((schema: typeof IDSchema) => {\n const create = () => schema.make(\"sh_\" + ascending())\n return {\n create,\n ascending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type ID = typeof ID.Type\n\nexport const Status = Schema.Literals([\"running\", \"exited\", \"timeout\", \"killed\"])\nexport type Status = typeof Status.Type\n\nexport const Time = Schema.Struct({\n started: Schema.Finite,\n completed: optional(Schema.Finite),\n})\nexport interface Time extends Schema.Schema.Type<typeof Time> {}\n\n// Opaque caller-supplied tags echoed back on Info and events. The Shell service never interprets\n// these; callers (e.g. ShellTool stores the originating session ID) use them to filter or correlate.\nexport const Metadata = Schema.Record(Schema.String, Schema.Unknown)\nexport type Metadata = typeof Metadata.Type\n\nexport const Info = Schema.Struct({\n id: ID,\n status: Status,\n command: Schema.String,\n cwd: Schema.String,\n shell: Schema.String,\n // Absolute path of the file capturing combined stdout/stderr. Page through it via `output`.\n file: Schema.String,\n pid: optional(NonNegativeInt),\n exit: optional(Schema.Finite),\n // Always present; defaults to an empty object when the creator supplies no metadata.\n metadata: Metadata,\n time: Time,\n}).annotate({ identifier: \"Shell.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nconst Created = ephemeral({ type: \"shell.created\", schema: { info: Info } })\nconst Exited = ephemeral({ type: \"shell.exited\", schema: { id: ID, exit: optional(Schema.Finite), status: Status } })\nconst Deleted = ephemeral({ type: \"shell.deleted\", schema: { id: ID } })\nexport const Event = { Created, Exited, Deleted, Definitions: inventory(Created, Exited, Deleted) }\n\nexport const CreateInput = Schema.Struct({\n command: Schema.String,\n cwd: optional(Schema.String),\n timeout: NonNegativeInt,\n metadata: optional(Metadata),\n})\nexport interface CreateInput extends Schema.Schema.Type<typeof CreateInput> {}\n\nexport const OutputInput = Schema.Struct({\n cursor: optional(NonNegativeInt),\n limit: optional(NonNegativeInt),\n})\nexport interface OutputInput extends Schema.Schema.Type<typeof OutputInput> {}\n\nexport const Output = Schema.Struct({\n output: Schema.String,\n // Absolute cursor after this page. Equals `size` once fully caught up.\n cursor: NonNegativeInt,\n // Total bytes captured so far. A consumer has more to page while `cursor < size`.\n size: NonNegativeInt,\n truncated: Schema.Boolean,\n})\nexport interface Output extends Schema.Schema.Type<typeof Output> {}\n",
"export * as SessionError from \"./session-error.js\"\n\nimport { Schema } from \"effect\"\n\nexport interface Error extends Schema.Schema.Type<typeof Error> {}\nexport const Error = Schema.Struct({\n type: Schema.String,\n message: Schema.String,\n}).annotate({ identifier: \"Session.StructuredError\" })\n",
"import { Schema } from \"effect\"\nimport { descending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\n\nexport const SessionID = Schema.String.check(Schema.isStartsWith(\"ses\")).pipe(\n Schema.brand(\"SessionID\"),\n statics((schema) => {\n const create = () => schema.make(\"ses_\" + descending())\n return {\n create,\n descending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type SessionID = typeof SessionID.Type\n",
"export * as Permission from \"./permission.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { SessionID } from \"./session-id.js\"\nimport { statics } from \"./schema.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"per\")).pipe(\n Schema.brand(\"PermissionV2.ID\"),\n statics((schema) => ({ create: (id?: string) => schema.make(id ?? \"per_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport const Source = Schema.Union([\n Schema.Struct({\n type: Schema.Literal(\"tool\"),\n messageID: Schema.String,\n callID: Schema.String,\n }),\n]).annotate({ identifier: \"PermissionV2.Source\" })\nexport type Source = typeof Source.Type\n\nconst RequestFields = {\n sessionID: SessionID,\n action: Schema.String,\n resources: Schema.Array(Schema.String),\n save: Schema.Array(Schema.String).pipe(optional),\n metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),\n source: Source.pipe(optional),\n}\n\nexport const Request = Schema.Struct({\n id: ID,\n ...RequestFields,\n}).annotate({ identifier: \"PermissionV2.Request\" })\nexport interface Request extends Schema.Schema.Type<typeof Request> {}\n\nexport const Reply = Schema.Literals([\"once\", \"always\", \"reject\"]).annotate({ identifier: \"PermissionV2.Reply\" })\nexport type Reply = typeof Reply.Type\n\nconst Asked = ephemeral({ type: \"permission.v2.asked\", schema: Request.fields })\nconst Replied = ephemeral({\n type: \"permission.v2.replied\",\n schema: {\n sessionID: SessionID,\n requestID: ID,\n reply: Reply,\n },\n})\nexport const Event = { Asked, Replied, Definitions: inventory(Asked, Replied) }\n\nexport const Effect = Schema.Literals([\"allow\", \"deny\", \"ask\"]).annotate({ identifier: \"PermissionV2.Effect\" })\nexport type Effect = typeof Effect.Type\n\nexport interface Rule extends Schema.Schema.Type<typeof Rule> {}\nexport const Rule = Schema.Struct({\n action: Schema.String,\n resource: Schema.String,\n effect: Effect,\n}).annotate({ identifier: \"PermissionV2.Rule\" })\n\nexport const Ruleset = Schema.Array(Rule).annotate({ identifier: \"PermissionV2.Ruleset\" })\nexport type Ruleset = typeof Ruleset.Type\n",
"export * as Agent from \"./agent.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { optional } from \"./schema.js\"\nimport { Model } from \"./model.js\"\nimport { Permission } from \"./permission.js\"\nimport { Provider } from \"./provider.js\"\nimport { PositiveInt, statics } from \"./schema.js\"\n\nconst Updated = ephemeral({ type: \"agent.updated\", schema: {} })\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Agent.ID\"))\nexport type ID = typeof ID.Type\n\nexport const Name = Schema.String.pipe(Schema.brand(\"Agent.Name\"))\nexport type Name = typeof Name.Type\n\nexport const Color = Schema.Union([\n Schema.String.check(Schema.isPattern(/^#[0-9a-fA-F]{6}$/)),\n Schema.Literals([\"primary\", \"secondary\", \"accent\", \"success\", \"warning\", \"error\", \"info\"]),\n]).annotate({ identifier: \"Agent.Color\" })\nexport type Color = typeof Color.Type\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n name: Name,\n model: Model.Ref.pipe(optional),\n request: Provider.Request,\n system: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n mode: Schema.Literals([\"subagent\", \"primary\", \"all\"]),\n hidden: Schema.Boolean,\n color: Color.pipe(optional),\n steps: PositiveInt.pipe(optional),\n permissions: Permission.Ruleset,\n})\n .annotate({ identifier: \"Agent.Info\" })\n .pipe(\n statics(() => ({\n empty: (id: ID) =>\n ({\n id,\n name: Name.make(id),\n request: { settings: {}, headers: {}, body: {} },\n mode: \"all\",\n hidden: false,\n permissions: [\n { action: \"*\", resource: \"*\", effect: \"allow\" },\n { action: \"external_directory\", resource: \"*\", effect: \"ask\" },\n ],\n }) satisfies Info,\n })),\n )\n\nexport const Event = {\n Updated,\n Definitions: inventory(Updated),\n}\n",
"export * as Skill from \"./skill.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { AbsolutePath } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Skill.ID\"))\nexport type ID = typeof ID.Type\n\nexport const Name = Schema.String.pipe(Schema.brand(\"Skill.Name\"))\nexport type Name = typeof Name.Type\n\nexport interface DirectorySource extends Schema.Schema.Type<typeof DirectorySource> {}\nexport const DirectorySource = Schema.Struct({\n type: Schema.tag(\"directory\"),\n path: AbsolutePath,\n}).annotate({ identifier: \"Skill.DirectorySource\" })\n\nexport interface UrlSource extends Schema.Schema.Type<typeof UrlSource> {}\nexport const UrlSource = Schema.Struct({\n type: Schema.tag(\"url\"),\n url: Schema.String,\n}).annotate({ identifier: \"Skill.UrlSource\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n name: Name,\n description: Schema.String.pipe(optional),\n slash: Schema.Boolean.pipe(optional),\n autoinvoke: Schema.Boolean.pipe(optional),\n location: AbsolutePath,\n content: Schema.String,\n}).annotate({ identifier: \"Skill.Info\" })\n\nconst Updated = ephemeral({ type: \"skill.updated\", schema: {} })\nexport const Event = { Updated, Definitions: inventory(Updated) }\n\nexport interface EmbeddedSource extends Schema.Schema.Type<typeof EmbeddedSource> {}\nexport const EmbeddedSource = Schema.Struct({\n type: Schema.tag(\"embedded\"),\n skill: Schema.suspend(() => Info),\n}).annotate({ identifier: \"Skill.EmbeddedSource\" })\n\nexport type Source = DirectorySource | UrlSource | EmbeddedSource\nexport const Source = Object.assign(\n Schema.Union([DirectorySource, UrlSource, EmbeddedSource]).pipe(\n Schema.toTaggedUnion(\"type\"),\n Schema.annotate({ identifier: \"Skill.Source\" }),\n ),\n {\n equals: (a: Source, b: Source) => {\n if (a.type !== b.type) return false\n if (a.type === \"directory\" && b.type === \"directory\") return a.path === b.path\n if (a.type === \"url\" && b.type === \"url\") return a.url === b.url\n if (a.type === \"embedded\" && b.type === \"embedded\") return a.skill.id === b.skill.id\n return false\n },\n key: (source: Source) =>\n source.type === \"directory\"\n ? `directory:${source.path}`\n : source.type === \"url\"\n ? `url:${source.url}`\n : `embedded:${source.skill.id}`,\n },\n)\n",
"export * as Snapshot from \"./snapshot.js\"\n\nimport { Schema } from \"effect\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Snapshot.ID\"))\nexport type ID = typeof ID.Type\n",
"export * as TokenUsage from \"./token-usage.js\"\n\nimport { Schema } from \"effect\"\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n input: Schema.Finite,\n output: Schema.Finite,\n reasoning: Schema.Finite,\n cache: Schema.Struct({\n read: Schema.Finite,\n write: Schema.Finite,\n }),\n}).annotate({ identifier: \"TokenUsage.Info\" })\n",
"export * as SessionMessage from \"./session-message.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ToolContent } from \"./llm.js\"\nimport { Model } from \"./model.js\"\nimport { Prompt } from \"./prompt.js\"\nimport { DateTimeUtcFromMillis, PositiveInt, RelativePath, statics } from \"./schema.js\"\nimport { ascending } from \"./identifier.js\"\nimport { Event } from \"./event.js\"\nimport { Shell as ShellSchema } from \"./shell.js\"\nimport { FinishReason } from \"./llm.js\"\nimport { SessionError } from \"./session-error.js\"\nimport { Agent } from \"./agent.js\"\nimport { Skill as SkillSchema } from \"./skill.js\"\nimport { Money } from \"./money.js\"\nimport { Snapshot } from \"./snapshot.js\"\nimport { TokenUsage } from \"./token-usage.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"msg_\")).pipe(\n Schema.brand(\"Session.Message.ID\"),\n statics((schema) => ({\n create: () => schema.make(\"msg_\" + ascending()),\n fromEvent: (eventID: Event.ID) => schema.make(eventID.replace(/^evt_/, \"msg_\")),\n })),\n)\nexport type ID = typeof ID.Type\n\nconst Base = {\n id: ID,\n metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),\n time: Schema.Struct({ created: DateTimeUtcFromMillis }),\n}\n\nexport const ProviderState = Schema.Record(Schema.String, Schema.Unknown).annotate({\n identifier: \"Session.Message.ProviderState\",\n})\nexport type ProviderState = typeof ProviderState.Type\n\nexport interface AgentSelected extends Schema.Schema.Type<typeof AgentSelected> {}\nexport const AgentSelected = Schema.Struct({\n ...Base,\n type: Schema.tag(\"agent-switched\"),\n agent: Agent.ID,\n}).annotate({ identifier: \"Session.Message.AgentSelected\" })\n\nexport interface ModelSelected extends Schema.Schema.Type<typeof ModelSelected> {}\nexport const ModelSelected = Schema.Struct({\n ...Base,\n type: Schema.tag(\"model-switched\"),\n model: Model.Ref,\n previous: Model.Ref.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ModelSelected\" })\n\nexport interface User extends Schema.Schema.Type<typeof User> {}\nexport const User = Schema.Struct({\n ...Base,\n text: Prompt.fields.text,\n files: Prompt.fields.files,\n agents: Prompt.fields.agents,\n type: Schema.tag(\"user\"),\n}).annotate({ identifier: \"Session.Message.User\" })\n\nexport interface Synthetic extends Schema.Schema.Type<typeof Synthetic> {}\nexport const Synthetic = Schema.Struct({\n ...Base,\n text: Schema.String,\n description: Schema.String.pipe(optional),\n type: Schema.tag(\"synthetic\"),\n}).annotate({ identifier: \"Session.Message.Synthetic\" })\n\nexport interface System extends Schema.Schema.Type<typeof System> {}\nexport const System = Schema.Struct({\n ...Base,\n type: Schema.tag(\"system\"),\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.System\" })\n\nexport interface Skill extends Schema.Schema.Type<typeof Skill> {}\nexport const Skill = Schema.Struct({\n ...Base,\n type: Schema.tag(\"skill\"),\n skill: SkillSchema.ID,\n name: SkillSchema.Name,\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.Skill\" })\n\nexport interface Shell extends Schema.Schema.Type<typeof Shell> {}\nexport const Shell = Schema.Struct({\n ...Base,\n type: Schema.tag(\"shell\"),\n shellID: ShellSchema.ID,\n command: Schema.String,\n status: ShellSchema.Status,\n exit: Schema.Number.pipe(optional),\n output: ShellSchema.Output.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Shell\" })\n\nexport interface ToolStateStreaming extends Schema.Schema.Type<typeof ToolStateStreaming> {}\nexport const ToolStateStreaming = Schema.Struct({\n status: Schema.tag(\"streaming\"),\n input: Schema.String,\n}).annotate({ identifier: \"Session.Message.ToolState.Streaming\" })\n\nexport interface ToolStateRunning extends Schema.Schema.Type<typeof ToolStateRunning> {}\nexport const ToolStateRunning = Schema.Struct({\n status: Schema.tag(\"running\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n}).annotate({ identifier: \"Session.Message.ToolState.Running\" })\n\nexport interface ToolStateCompleted extends Schema.Schema.Type<typeof ToolStateCompleted> {}\nexport const ToolStateCompleted = Schema.Struct({\n status: Schema.tag(\"completed\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n result: Schema.Unknown.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ToolState.Completed\" })\n\nexport interface ToolStateError extends Schema.Schema.Type<typeof ToolStateError> {}\nexport const ToolStateError = Schema.Struct({\n status: Schema.tag(\"error\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n error: SessionError.Error,\n result: Schema.Unknown.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ToolState.Error\" })\n\nexport const ToolState = Schema.Union([ToolStateStreaming, ToolStateRunning, ToolStateCompleted, ToolStateError]).pipe(\n Schema.toTaggedUnion(\"status\"),\n)\nexport type ToolState = ToolStateStreaming | ToolStateRunning | ToolStateCompleted | ToolStateError\n\nexport interface AssistantTool extends Schema.Schema.Type<typeof AssistantTool> {}\nexport const AssistantTool = Schema.Struct({\n type: Schema.tag(\"tool\"),\n id: Schema.String,\n name: Schema.String,\n executed: Schema.Boolean.pipe(optional),\n providerState: ProviderState.pipe(optional),\n providerResultState: ProviderState.pipe(optional),\n state: ToolState,\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n ran: DateTimeUtcFromMillis.pipe(optional),\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Assistant.Tool\" })\n\nexport interface AssistantText extends Schema.Schema.Type<typeof AssistantText> {}\nexport const AssistantText = Schema.Struct({\n type: Schema.tag(\"text\"),\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.Assistant.Text\" })\n\nexport interface AssistantReasoning extends Schema.Schema.Type<typeof AssistantReasoning> {}\nexport const AssistantReasoning = Schema.Struct({\n type: Schema.tag(\"reasoning\"),\n text: Schema.String,\n state: ProviderState.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }).pipe(optional),\n}).annotate({ identifier: \"Session.Message.Assistant.Reasoning\" })\n\nexport const AssistantContent = Schema.Union([AssistantText, AssistantReasoning, AssistantTool]).pipe(\n Schema.toTaggedUnion(\"type\"),\n)\nexport type AssistantContent = AssistantText | AssistantReasoning | AssistantTool\n\nexport interface AssistantRetry extends Schema.Schema.Type<typeof AssistantRetry> {}\nexport const AssistantRetry = Schema.Struct({\n attempt: PositiveInt,\n at: DateTimeUtcFromMillis,\n error: SessionError.Error,\n}).annotate({ identifier: \"Session.Message.Assistant.Retry\" })\n\nexport interface Assistant extends Schema.Schema.Type<typeof Assistant> {}\nexport const Assistant = Schema.Struct({\n ...Base,\n type: Schema.tag(\"assistant\"),\n agent: Agent.ID,\n model: Model.Ref,\n content: AssistantContent.pipe(Schema.Array),\n snapshot: Schema.Struct({\n start: Snapshot.ID.pipe(optional),\n end: Snapshot.ID.pipe(optional),\n files: Schema.Array(RelativePath).pipe(optional),\n }).pipe(optional),\n finish: FinishReason.pipe(optional),\n cost: Money.USD.pipe(optional),\n tokens: TokenUsage.Info.pipe(optional),\n error: SessionError.Error.pipe(optional),\n retry: AssistantRetry.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Assistant\" })\n\nconst CompactionBase = { type: Schema.tag(\"compaction\"), ...Base }\n\nexport interface CompactionRunning extends Schema.Schema.Type<typeof CompactionRunning> {}\nexport const CompactionRunning = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"running\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n summary: Schema.String,\n recent: Schema.String,\n}).annotate({ identifier: \"Session.Message.Compaction.Running\" })\n\nexport interface CompactionCompleted extends Schema.Schema.Type<typeof CompactionCompleted> {}\nexport const CompactionCompleted = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"completed\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n summary: Schema.String,\n recent: Schema.String,\n}).annotate({ identifier: \"Session.Message.Compaction.Completed\" })\n\nexport interface CompactionFailed extends Schema.Schema.Type<typeof CompactionFailed> {}\nexport const CompactionFailed = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"failed\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n error: SessionError.Error,\n}).annotate({ identifier: \"Session.Message.Compaction.Failed\" })\n\nexport const Compaction = Schema.Union([CompactionRunning, CompactionCompleted, CompactionFailed]).pipe(\n Schema.toTaggedUnion(\"status\"),\n Schema.annotate({ identifier: \"Session.Message.Compaction\" }),\n)\nexport type Compaction = CompactionRunning | CompactionCompleted | CompactionFailed\n\nexport const Info = Schema.Union([\n AgentSelected,\n ModelSelected,\n User,\n Synthetic,\n System,\n Skill,\n Shell,\n Assistant,\n Compaction,\n])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Session.Message.Info\" })\nexport type Info = AgentSelected | ModelSelected | User | Synthetic | System | Skill | Shell | Assistant | Compaction\nexport type Type = Info[\"type\"]\n"
],
"mappings": "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",
"debugId": "3C25F8A491907B1864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709163752_time_suspended.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709163752_time_suspended\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`time_suspended\\` integer;`)\n yield* tx.run(\n `CREATE INDEX \\`session_time_suspended_idx\\` ON \\`session\\` (\\`time_suspended\\`) WHERE \"session\".\"time_suspended\" is not null;`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAyD,EACvE,MAAO,EAAG,IACR,yHACF,EACD,EAEL",
"debugId": "DA4105C175457D7664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/mime-types@3.0.2/node_modules/mime-types/mimeScore.js", "../core/src/fs-util.ts", "../../node_modules/.bun/mime-types@3.0.2/node_modules/mime-types/index.js", "../core/src/effect/service-use.ts"],
"sourcesContent": [
"// 'mime-score' back-ported to CommonJS\n\n// Score RFC facets (see https://tools.ietf.org/html/rfc6838#section-3)\nvar FACET_SCORES = {\n 'prs.': 100,\n 'x-': 200,\n 'x.': 300,\n 'vnd.': 400,\n default: 900\n}\n\n// Score mime source (Logic originally from `jshttp/mime-types` module)\nvar SOURCE_SCORES = {\n nginx: 10,\n apache: 20,\n iana: 40,\n default: 30 // definitions added by `jshttp/mime-db` project?\n}\n\nvar TYPE_SCORES = {\n // prefer application/xml over text/xml\n // prefer application/rtf over text/rtf\n application: 1,\n\n // prefer font/woff over application/font-woff\n font: 2,\n\n // prefer video/mp4 over audio/mp4 over application/mp4\n // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2\n audio: 2,\n video: 3,\n\n default: 0\n}\n\n/**\n * Get each component of the score for a mime type. The sum of these is the\n * total score. The higher the score, the more \"official\" the type.\n */\nmodule.exports = function mimeScore (mimeType, source = 'default') {\n if (mimeType === 'application/octet-stream') {\n return 0\n }\n\n const [type, subtype] = mimeType.split('/')\n\n const facet = subtype.replace(/(\\.|x-).*/, '$1')\n\n const facetScore = FACET_SCORES[facet] || FACET_SCORES.default\n const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default\n const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default\n\n // All else being equal prefer shorter types\n const lengthScore = 1 - mimeType.length / 100\n\n return facetScore + sourceScore + typeScore + lengthScore\n}\n",
"import { NodeFileSystem } from \"@effect/platform-node\"\nimport path, { dirname, isAbsolute, join, relative, sep } from \"path\"\nimport { realpathSync } from \"fs\"\nimport { readdir } from \"fs/promises\"\nimport { lookup } from \"mime-types\"\nimport { Context, Effect, FileSystem, Layer, Schema } from \"effect\"\nimport type { PlatformError } from \"effect/PlatformError\"\nimport { Glob } from \"./util/glob\"\nimport { serviceUse } from \"./effect/service-use\"\nimport { makeGlobalNode } from \"./effect/app-node\"\nimport { filesystem } from \"./effect/app-node-platform\"\n\nexport namespace FSUtil {\n export class FileSystemError extends Schema.TaggedErrorClass<FileSystemError>()(\"FileSystemError\", {\n method: Schema.String,\n cause: Schema.optional(Schema.Defect()),\n }) {\n override get message() {\n const detail = this.cause instanceof Error ? this.cause.message : this.cause && String(this.cause)\n return `Filesystem operation failed: ${this.method}${detail ? `: ${detail}` : \"\"}`\n }\n }\n\n export type Error = PlatformError | FileSystemError\n\n export interface DirEntry {\n readonly name: string\n readonly type: \"file\" | \"directory\" | \"symlink\" | \"other\"\n }\n\n export interface Interface extends FileSystem.FileSystem {\n readonly isDir: (path: string) => Effect.Effect<boolean>\n readonly isFile: (path: string) => Effect.Effect<boolean>\n readonly existsSafe: (path: string) => Effect.Effect<boolean>\n readonly readFileStringSafe: (path: string) => Effect.Effect<string | undefined, Error>\n readonly readJson: (path: string) => Effect.Effect<unknown, Error>\n readonly writeJson: (path: string, data: unknown, mode?: number) => Effect.Effect<void, Error>\n readonly ensureDir: (path: string) => Effect.Effect<void, Error>\n readonly writeWithDirs: (path: string, content: string | Uint8Array, mode?: number) => Effect.Effect<void, Error>\n readonly readDirectoryEntries: (path: string) => Effect.Effect<DirEntry[], Error>\n readonly resolve: (path: string) => Effect.Effect<string>\n readonly findUp: (target: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly up: (options: { targets: string[]; start: string; stop?: string }) => Effect.Effect<string[], Error>\n readonly globUp: (pattern: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly glob: (pattern: string, options?: Glob.Options) => Effect.Effect<string[], Error>\n readonly globMatch: (pattern: string, filepath: string) => boolean\n }\n\n export class Service extends Context.Service<Service, Interface>()(\"@opencode/FileSystem\") {}\n\n export const use = serviceUse(Service)\n\n // Exported so simulation can wrap this layer and override the methods that\n // bypass the injected FileSystem (readDirectoryEntries, glob, globUp).\n export const layer = Layer.effect(\n Service,\n Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n\n const existsSafe = Effect.fn(\"FileSystem.existsSafe\")(function* (path: string) {\n return yield* fs.exists(path).pipe(Effect.orElseSucceed(() => false))\n })\n\n const readFileStringSafe = Effect.fn(\"FileSystem.readFileStringSafe\")(function* (path: string) {\n return yield* fs.readFileString(path).pipe(\n Effect.catchReason(\"PlatformError\", \"NotFound\", () => Effect.succeed(undefined)),\n Effect.catchReason(\"PlatformError\", \"PermissionDenied\", () => Effect.succeed(undefined)),\n )\n })\n\n const isDir = Effect.fn(\"FileSystem.isDir\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"Directory\"\n })\n\n const isFile = Effect.fn(\"FileSystem.isFile\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"File\"\n })\n\n const readDirectoryEntries = Effect.fn(\"FileSystem.readDirectoryEntries\")(function* (dirPath: string) {\n return yield* Effect.tryPromise({\n try: async () => {\n const entries = await readdir(dirPath, { withFileTypes: true })\n return entries.map(\n (e): DirEntry => ({\n name: e.name,\n type: e.isDirectory() ? \"directory\" : e.isSymbolicLink() ? \"symlink\" : e.isFile() ? \"file\" : \"other\",\n }),\n )\n },\n catch: (cause) => new FileSystemError({ method: \"readDirectoryEntries\", cause }),\n })\n })\n\n const resolve = Effect.fn(\"FileSystem.resolve\")(function* (input: string) {\n const resolved = path.resolve(windowsPath(input))\n return yield* fs.realPath(resolved).pipe(\n Effect.catchReason(\"PlatformError\", \"NotFound\", () => Effect.succeed(resolved)),\n Effect.orDie,\n )\n })\n\n const readJson = Effect.fn(\"FileSystem.readJson\")(function* (path: string) {\n const text = yield* fs.readFileString(path)\n return yield* Effect.try({\n try: () => JSON.parse(text),\n catch: (cause) => new FileSystemError({ method: \"readJson\", cause }),\n })\n })\n\n const writeJson = Effect.fn(\"FileSystem.writeJson\")(function* (path: string, data: unknown, mode?: number) {\n const content = JSON.stringify(data, null, 2)\n yield* fs.writeFileString(path, content)\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const ensureDir = Effect.fn(\"FileSystem.ensureDir\")(function* (path: string) {\n yield* fs.makeDirectory(path, { recursive: true })\n })\n\n const writeWithDirs = Effect.fn(\"FileSystem.writeWithDirs\")(function* (\n path: string,\n content: string | Uint8Array,\n mode?: number,\n ) {\n const write = typeof content === \"string\" ? fs.writeFileString(path, content) : fs.writeFile(path, content)\n\n yield* write.pipe(\n Effect.catchIf(\n (e) => e.reason._tag === \"NotFound\",\n () =>\n Effect.gen(function* () {\n yield* fs.makeDirectory(dirname(path), { recursive: true })\n yield* write\n }),\n ),\n )\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const glob = Effect.fn(\"FileSystem.glob\")(function* (pattern: string, options?: Glob.Options) {\n return yield* Effect.tryPromise({\n try: () => Glob.scan(pattern, options),\n catch: (cause) => new FileSystemError({ method: \"glob\", cause }),\n })\n })\n\n const findUp = Effect.fn(\"FileSystem.findUp\")(function* (target: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const up = Effect.fn(\"FileSystem.up\")(function* (options: { targets: string[]; start: string; stop?: string }) {\n const result: string[] = []\n let current = options.start\n while (true) {\n for (const target of options.targets) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n }\n if (options.stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const globUp = Effect.fn(\"FileSystem.globUp\")(function* (pattern: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const matches = yield* glob(pattern, { cwd: current, absolute: true, include: \"file\", dot: true }).pipe(\n Effect.catch(() => Effect.succeed([] as string[])),\n )\n result.push(...matches)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n return Service.of({\n ...fs,\n existsSafe,\n readFileStringSafe,\n isDir,\n isFile,\n readDirectoryEntries,\n resolve,\n readJson,\n writeJson,\n ensureDir,\n writeWithDirs,\n findUp,\n up,\n globUp,\n glob,\n globMatch: Glob.match,\n })\n }),\n )\n\n export const node = makeGlobalNode({ service: Service, layer: layer, deps: [filesystem] })\n\n // Pure helpers that don't need Effect (path manipulation, sync operations)\n export function mimeType(p: string): string {\n return lookup(p) || \"application/octet-stream\"\n }\n\n export function normalizePath(p: string): string {\n if (process.platform !== \"win32\") return p\n const resolved = path.resolve(windowsPath(p))\n try {\n return realpathSync.native(resolved)\n } catch {\n return resolved\n }\n }\n\n export function normalizePathPattern(p: string): string {\n if (process.platform !== \"win32\") return p\n if (p === \"*\") return p\n const match = p.match(/^(.*)[\\\\/]\\*$/)\n if (!match) return normalizePath(p)\n const dir = /^[A-Za-z]:$/.test(match[1]) ? match[1] + \"\\\\\" : match[1]\n return join(normalizePath(dir), \"*\")\n }\n\n export function resolve(p: string): string {\n const resolved = path.resolve(windowsPath(p))\n try {\n return normalizePath(realpathSync(resolved))\n } catch (e: any) {\n if (e?.code === \"ENOENT\") return normalizePath(resolved)\n throw e\n }\n }\n\n export function windowsPath(p: string): string {\n if (process.platform !== \"win32\") return p\n return p\n .replace(/^\\/([a-zA-Z]):(?:[\\\\/]|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/cygdrive\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/mnt\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n }\n\n export function overlaps(a: string, b: string) {\n return contains(a, b) || contains(b, a)\n }\n\n export function contains(parent: string, child: string) {\n const result = relative(parent, child)\n return result === \"\" || (!isAbsolute(result) && result !== \"..\" && !result.startsWith(`..${sep}`))\n }\n}\n",
"/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\nvar mimeScore = require('./mimeScore')\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\nexports._extensionConflicts = []\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {false|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {false|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1 ? exports.lookup(str) : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {false|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {false|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .slice(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n types[extension] = _preferredType(extension, types[extension], type)\n\n // DELETE (eventually): Capture extension->type maps that change as a\n // result of switching to mime-score. This is just to help make reviewing\n // PR #119 easier, and can be removed once that PR is approved.\n const legacyType = _preferredTypeLegacy(\n extension,\n types[extension],\n type\n )\n if (legacyType !== types[extension]) {\n exports._extensionConflicts.push([extension, legacyType, types[extension]])\n }\n }\n })\n}\n\n// Resolve type conflict using mime-score\nfunction _preferredType (ext, type0, type1) {\n var score0 = type0 ? mimeScore(type0, db[type0].source) : 0\n var score1 = type1 ? mimeScore(type1, db[type1].source) : 0\n\n return score0 > score1 ? type0 : type1\n}\n\n// Resolve type conflict using pre-mime-score logic\nfunction _preferredTypeLegacy (ext, type0, type1) {\n var SOURCE_RANK = ['nginx', 'apache', undefined, 'iana']\n\n var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0\n var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0\n\n if (\n exports.types[extension] !== 'application/octet-stream' &&\n (score0 > score1 ||\n (score0 === score1 &&\n exports.types[extension]?.slice(0, 12) === 'application/'))\n ) {\n return type0\n }\n\n return score0 > score1 ? type0 : type1\n}\n",
"import { Context, Effect } from \"effect\"\n\ntype EffectMethod = (...args: ReadonlyArray<never>) => Effect.Effect<unknown, unknown, unknown>\n\ntype ServiceUse<Identifier, Shape> = {\n readonly [Key in keyof Shape as Shape[Key] extends EffectMethod ? Key : never]: Shape[Key] extends (\n ...args: infer Args\n ) => infer Return\n ? Args extends ReadonlyArray<unknown>\n ? Return extends Effect.Effect<infer A, infer E, infer R>\n ? (...args: Args) => Effect.Effect<A, E, R | Identifier>\n : never\n : never\n : never\n}\n\nexport const serviceUse = <Identifier, Shape>(tag: Context.Service<Identifier, Shape>) => {\n const cache = new Map<string, (...args: unknown[]) => Effect.Effect<unknown, unknown, unknown>>()\n // This is the only dynamic boundary: TypeScript knows the accessor shape,\n // but Proxy property names are runtime values.\n const access = new Proxy(\n {},\n {\n get: (_, key) => {\n if (typeof key !== \"string\") return undefined\n const cached = cache.get(key)\n if (cached) return cached\n const accessor = (...args: unknown[]) =>\n tag.use((service) => {\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- Proxy keys are checked at runtime.\n const method = service[key as keyof Shape]\n if (typeof method !== \"function\") return Effect.die(new Error(`Service method not found: ${key}`))\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- ServiceUse exposes only Effect-returning methods.\n return (method as (...args: unknown[]) => Effect.Effect<unknown, unknown, unknown>)(...args)\n })\n cache.set(key, accessor)\n return accessor\n },\n },\n )\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- Proxy implements the mapped accessor surface lazily.\n return access as ServiceUse<Identifier, Shape>\n}\n"
],
"mappings": "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",
"debugId": "0F1065248EFB2F8064756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/aws4fetch@1.0.20/node_modules/aws4fetch/dist/aws4fetch.esm.mjs"],
"sourcesContent": [
"/**\n * @license MIT <https://opensource.org/licenses/MIT>\n * @copyright Michael Hart 2024\n */\nconst encoder = new TextEncoder();\nconst HOST_SERVICES = {\n appstream2: 'appstream',\n cloudhsmv2: 'cloudhsm',\n email: 'ses',\n marketplace: 'aws-marketplace',\n mobile: 'AWSMobileHubService',\n pinpoint: 'mobiletargeting',\n queue: 'sqs',\n 'git-codecommit': 'codecommit',\n 'mturk-requester-sandbox': 'mturk-requester',\n 'personalize-runtime': 'personalize',\n};\nconst UNSIGNABLE_HEADERS = new Set([\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n 'presigned-expires',\n 'expect',\n 'x-amzn-trace-id',\n 'range',\n 'connection',\n]);\nclass AwsClient {\n constructor({ accessKeyId, secretAccessKey, sessionToken, service, region, cache, retries, initRetryMs }) {\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n this.service = service;\n this.region = region;\n this.cache = cache || new Map();\n this.retries = retries != null ? retries : 10;\n this.initRetryMs = initRetryMs || 50;\n }\n async sign(input, init) {\n if (input instanceof Request) {\n const { method, url, headers, body } = input;\n init = Object.assign({ method, url, headers }, init);\n if (init.body == null && headers.has('Content-Type')) {\n init.body = body != null && headers.has('X-Amz-Content-Sha256') ? body : await input.clone().arrayBuffer();\n }\n input = url;\n }\n const signer = new AwsV4Signer(Object.assign({ url: input.toString() }, init, this, init && init.aws));\n const signed = Object.assign({}, init, await signer.sign());\n delete signed.aws;\n try {\n return new Request(signed.url.toString(), signed)\n } catch (e) {\n if (e instanceof TypeError) {\n return new Request(signed.url.toString(), Object.assign({ duplex: 'half' }, signed))\n }\n throw e\n }\n }\n async fetch(input, init) {\n for (let i = 0; i <= this.retries; i++) {\n const fetched = fetch(await this.sign(input, init));\n if (i === this.retries) {\n return fetched\n }\n const res = await fetched;\n if (res.status < 500 && res.status !== 429) {\n return res\n }\n await new Promise(resolve => setTimeout(resolve, Math.random() * this.initRetryMs * Math.pow(2, i)));\n }\n throw new Error('An unknown error occurred, ensure retries is not negative')\n }\n}\nclass AwsV4Signer {\n constructor({ method, url, headers, body, accessKeyId, secretAccessKey, sessionToken, service, region, cache, datetime, signQuery, appendSessionToken, allHeaders, singleEncode }) {\n if (url == null) throw new TypeError('url is a required option')\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.method = method || (body ? 'POST' : 'GET');\n this.url = new URL(url);\n this.headers = new Headers(headers || {});\n this.body = body;\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n let guessedService, guessedRegion;\n if (!service || !region) {\n[guessedService, guessedRegion] = guessServiceRegion(this.url, this.headers);\n }\n this.service = service || guessedService || '';\n this.region = region || guessedRegion || 'us-east-1';\n this.cache = cache || new Map();\n this.datetime = datetime || new Date().toISOString().replace(/[:-]|\\.\\d{3}/g, '');\n this.signQuery = signQuery;\n this.appendSessionToken = appendSessionToken || this.service === 'iotdevicegateway';\n this.headers.delete('Host');\n if (this.service === 's3' && !this.signQuery && !this.headers.has('X-Amz-Content-Sha256')) {\n this.headers.set('X-Amz-Content-Sha256', 'UNSIGNED-PAYLOAD');\n }\n const params = this.signQuery ? this.url.searchParams : this.headers;\n params.set('X-Amz-Date', this.datetime);\n if (this.sessionToken && !this.appendSessionToken) {\n params.set('X-Amz-Security-Token', this.sessionToken);\n }\n this.signableHeaders = ['host', ...this.headers.keys()]\n .filter(header => allHeaders || !UNSIGNABLE_HEADERS.has(header))\n .sort();\n this.signedHeaders = this.signableHeaders.join(';');\n this.canonicalHeaders = this.signableHeaders\n .map(header => header + ':' + (header === 'host' ? this.url.host : (this.headers.get(header) || '').replace(/\\s+/g, ' ')))\n .join('\\n');\n this.credentialString = [this.datetime.slice(0, 8), this.region, this.service, 'aws4_request'].join('/');\n if (this.signQuery) {\n if (this.service === 's3' && !params.has('X-Amz-Expires')) {\n params.set('X-Amz-Expires', '86400');\n }\n params.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n params.set('X-Amz-Credential', this.accessKeyId + '/' + this.credentialString);\n params.set('X-Amz-SignedHeaders', this.signedHeaders);\n }\n if (this.service === 's3') {\n try {\n this.encodedPath = decodeURIComponent(this.url.pathname.replace(/\\+/g, ' '));\n } catch (e) {\n this.encodedPath = this.url.pathname;\n }\n } else {\n this.encodedPath = this.url.pathname.replace(/\\/+/g, '/');\n }\n if (!singleEncode) {\n this.encodedPath = encodeURIComponent(this.encodedPath).replace(/%2F/g, '/');\n }\n this.encodedPath = encodeRfc3986(this.encodedPath);\n const seenKeys = new Set();\n this.encodedSearch = [...this.url.searchParams]\n .filter(([k]) => {\n if (!k) return false\n if (this.service === 's3') {\n if (seenKeys.has(k)) return false\n seenKeys.add(k);\n }\n return true\n })\n .map(pair => pair.map(p => encodeRfc3986(encodeURIComponent(p))))\n .sort(([k1, v1], [k2, v2]) => k1 < k2 ? -1 : k1 > k2 ? 1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0)\n .map(pair => pair.join('='))\n .join('&');\n }\n async sign() {\n if (this.signQuery) {\n this.url.searchParams.set('X-Amz-Signature', await this.signature());\n if (this.sessionToken && this.appendSessionToken) {\n this.url.searchParams.set('X-Amz-Security-Token', this.sessionToken);\n }\n } else {\n this.headers.set('Authorization', await this.authHeader());\n }\n return {\n method: this.method,\n url: this.url,\n headers: this.headers,\n body: this.body,\n }\n }\n async authHeader() {\n return [\n 'AWS4-HMAC-SHA256 Credential=' + this.accessKeyId + '/' + this.credentialString,\n 'SignedHeaders=' + this.signedHeaders,\n 'Signature=' + (await this.signature()),\n ].join(', ')\n }\n async signature() {\n const date = this.datetime.slice(0, 8);\n const cacheKey = [this.secretAccessKey, date, this.region, this.service].join();\n let kCredentials = this.cache.get(cacheKey);\n if (!kCredentials) {\n const kDate = await hmac('AWS4' + this.secretAccessKey, date);\n const kRegion = await hmac(kDate, this.region);\n const kService = await hmac(kRegion, this.service);\n kCredentials = await hmac(kService, 'aws4_request');\n this.cache.set(cacheKey, kCredentials);\n }\n return buf2hex(await hmac(kCredentials, await this.stringToSign()))\n }\n async stringToSign() {\n return [\n 'AWS4-HMAC-SHA256',\n this.datetime,\n this.credentialString,\n buf2hex(await hash(await this.canonicalString())),\n ].join('\\n')\n }\n async canonicalString() {\n return [\n this.method.toUpperCase(),\n this.encodedPath,\n this.encodedSearch,\n this.canonicalHeaders + '\\n',\n this.signedHeaders,\n await this.hexBodyHash(),\n ].join('\\n')\n }\n async hexBodyHash() {\n let hashHeader = this.headers.get('X-Amz-Content-Sha256') || (this.service === 's3' && this.signQuery ? 'UNSIGNED-PAYLOAD' : null);\n if (hashHeader == null) {\n if (this.body && typeof this.body !== 'string' && !('byteLength' in this.body)) {\n throw new Error('body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header')\n }\n hashHeader = buf2hex(await hash(this.body || ''));\n }\n return hashHeader\n }\n}\nasync function hmac(key, string) {\n const cryptoKey = await crypto.subtle.importKey(\n 'raw',\n typeof key === 'string' ? encoder.encode(key) : key,\n { name: 'HMAC', hash: { name: 'SHA-256' } },\n false,\n ['sign'],\n );\n return crypto.subtle.sign('HMAC', cryptoKey, encoder.encode(string))\n}\nasync function hash(content) {\n return crypto.subtle.digest('SHA-256', typeof content === 'string' ? encoder.encode(content) : content)\n}\nconst HEX_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nfunction buf2hex(arrayBuffer) {\n const buffer = new Uint8Array(arrayBuffer);\n let out = '';\n for (let idx = 0; idx < buffer.length; idx++) {\n const n = buffer[idx];\n out += HEX_CHARS[(n >>> 4) & 0xF];\n out += HEX_CHARS[n & 0xF];\n }\n return out\n}\nfunction encodeRfc3986(urlEncodedStr) {\n return urlEncodedStr.replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())\n}\nfunction guessServiceRegion(url, headers) {\n const { hostname, pathname } = url;\n if (hostname.endsWith('.on.aws')) {\n const match = hostname.match(/^[^.]{1,63}\\.lambda-url\\.([^.]{1,63})\\.on\\.aws$/);\n return match != null ? ['lambda', match[1] || ''] : ['', '']\n }\n if (hostname.endsWith('.r2.cloudflarestorage.com')) {\n return ['s3', 'auto']\n }\n if (hostname.endsWith('.backblazeb2.com')) {\n const match = hostname.match(/^(?:[^.]{1,63}\\.)?s3\\.([^.]{1,63})\\.backblazeb2\\.com$/);\n return match != null ? ['s3', match[1] || ''] : ['', '']\n }\n const match = hostname.replace('dualstack.', '').match(/([^.]{1,63})\\.(?:([^.]{0,63})\\.)?amazonaws\\.com(?:\\.cn)?$/);\n let service = (match && match[1]) || '';\n let region = match && match[2];\n if (region === 'us-gov') {\n region = 'us-gov-west-1';\n } else if (region === 's3' || region === 's3-accelerate') {\n region = 'us-east-1';\n service = 's3';\n } else if (service === 'iot') {\n if (hostname.startsWith('iot.')) {\n service = 'execute-api';\n } else if (hostname.startsWith('data.jobs.iot.')) {\n service = 'iot-jobs-data';\n } else {\n service = pathname === '/mqtt' ? 'iotdevicegateway' : 'iotdata';\n }\n } else if (service === 'autoscaling') {\n const targetPrefix = (headers.get('X-Amz-Target') || '').split('.')[0];\n if (targetPrefix === 'AnyScaleFrontendService') {\n service = 'application-autoscaling';\n } else if (targetPrefix === 'AnyScaleScalingPlannerFrontendService') {\n service = 'autoscaling-plans';\n }\n } else if (region == null && service.startsWith('s3-')) {\n region = service.slice(3).replace(/^fips-|^external-1/, '');\n service = 's3';\n } else if (service.endsWith('-fips')) {\n service = service.slice(0, -5);\n } else if (region && /-\\d$/.test(service) && !/-\\d$/.test(region)) {\n[service, region] = [region, service];\n }\n return [HOST_SERVICES[service] || service, region || '']\n}\n\nexport { AwsClient, AwsV4Signer };\n"
],
"mappings": "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",
"debugId": "21837DFBD58460B564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+vercel@2.0.39+d6123d32214422cb/node_modules/@ai-sdk/vercel/dist/index.mjs"],
"sourcesContent": [
"// src/vercel-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.39\" : \"0.0.0-test\";\n\n// src/vercel-provider.ts\nfunction createVercel(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.v0.dev/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"VERCEL_API_KEY\",\n description: \"Vercel\"\n })}`,\n ...options.headers\n },\n `ai-sdk/vercel/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `vercel.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig(\"chat\")\n });\n };\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar vercel = createVercel();\nexport {\n VERSION,\n createVercel,\n vercel\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";wQAYA,SAAI,OAAiB,cAGrB,cAAS,MAAY,CAAC,EAAU,CAAC,EAAG,CAClC,IAAI,EACJ,IAAM,EAAU,GACb,EAAK,EAAQ,UAAY,KAAO,EAAK,uBACxC,EACM,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,iBACzB,YAAa,QACf,CAAC,OACE,EAAQ,OACb,EACA,iBAAiB,GACnB,EACM,EAAuB,CAAC,KAAe,CAC3C,SAAU,UAAU,IACpB,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,KACjB,GACM,EAAkB,CAAC,IAAY,CACnC,OAAO,IAAI,EAAkC,EAAS,IACjD,EAAqB,MAAM,CAChC,CAAC,GAEG,EAAW,CAAC,IAAY,EAAgB,CAAO,EAUrD,OATA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,eAAiB,CAAC,IAAY,CACrC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,gBAAiB,CAAC,GAErE,EAAS,mBAAqB,EAAS,eACvC,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAE1D,EAET,IAAI,EAAS,EAAa",
"debugId": "A5E96E60AD015B5064756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260604172448_event_sourced_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260604172448_event_sourced_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`event_aggregate_seq_idx\\`;`)\n yield* tx.run(`CREATE UNIQUE INDEX \\`event_aggregate_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`seq\\`);`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_seq_idx\\`;`)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_message_session_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`seq\\`);`,\n )\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`prompt\\` text NOT NULL,\n \\`delivery\\` text NOT NULL,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,6CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,6CAAiD,EAC/D,MAAO,EAAG,IAAI,0BAA4B,EAC1C,MAAO,EAAG,IAAI,iDAAmD,EACjE,MAAO,EAAG,IAAI,kFAA0F,EACxG,MAAO,EAAG,IAAI,yDAA2D,EACzE,MAAO,EAAG,IACR,kGACF,EACA,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,0dAWb,EACD,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IACR,2IACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACD,EAEL",
"debugId": "0C44E10974399FA864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "92215B0DAA50DC3D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+perplexity@3.0.26+d6123d32214422cb/node_modules/@ai-sdk/perplexity/dist/index.mjs"],
"sourcesContent": [
"// src/perplexity-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/perplexity-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/convert-perplexity-usage.ts\nfunction convertPerplexityUsage(usage) {\n var _a, _b, _c;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_c = usage.reasoning_tokens) != null ? _c : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-perplexity-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertUint8ArrayToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToPerplexityMessages(prompt) {\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\":\n case \"assistant\": {\n const hasMultipartContent = content.some(\n (part) => part.type === \"file\" && part.mediaType.startsWith(\"image/\") || part.type === \"file\" && part.mediaType === \"application/pdf\"\n );\n const messageContent = content.map((part, index) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text\n };\n }\n case \"file\": {\n if (part.mediaType === \"application/pdf\") {\n return part.data instanceof URL ? {\n type: \"file_url\",\n file_url: {\n url: part.data.toString()\n },\n file_name: part.filename\n } : {\n type: \"file_url\",\n file_url: {\n url: typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)\n },\n file_name: part.filename || `document-${index}.pdf`\n };\n } else if (part.mediaType.startsWith(\"image/\")) {\n return part.data instanceof URL ? {\n type: \"image_url\",\n image_url: {\n url: part.data.toString()\n }\n } : {\n type: \"image_url\",\n image_url: {\n url: `data:${(_a = part.mediaType) != null ? _a : \"image/jpeg\"};base64,${typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)}`\n }\n };\n }\n }\n }\n }).filter(Boolean);\n messages.push({\n role,\n content: hasMultipartContent ? messageContent : messageContent.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\")\n });\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"Tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/map-perplexity-finish-reason.ts\nfunction mapPerplexityFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"length\":\n return finishReason;\n default:\n return \"other\";\n }\n}\n\n// src/perplexity-language-model.ts\nvar PerplexityLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"perplexity\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions\n }) {\n var _a;\n const warnings = [];\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n max_tokens: maxOutputTokens,\n presence_penalty: presencePenalty,\n temperature,\n top_k: topK,\n top_p: topP,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? {\n type: \"json_schema\",\n json_schema: { schema: responseFormat.schema }\n } : void 0,\n // provider extensions\n ...(_a = providerOptions == null ? void 0 : providerOptions.perplexity) != null ? _a : {},\n // messages:\n messages: convertToPerplexityMessages(prompt)\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const { args: body, warnings } = this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n if (response.citations != null) {\n for (const url of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata: {\n perplexity: {\n images: (_c = (_b = response.images) == null ? void 0 : _b.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }))) != null ? _c : null,\n usage: {\n citationTokens: (_e = (_d = response.usage) == null ? void 0 : _d.citation_tokens) != null ? _e : null,\n numSearchQueries: (_g = (_f = response.usage) == null ? void 0 : _f.num_search_queries) != null ? _g : null\n },\n cost: ((_h = response.usage) == null ? void 0 : _h.cost) ? {\n inputTokensCost: (_i = response.usage.cost.input_tokens_cost) != null ? _i : null,\n outputTokensCost: (_j = response.usage.cost.output_tokens_cost) != null ? _j : null,\n requestCost: (_k = response.usage.cost.request_cost) != null ? _k : null,\n totalCost: (_l = response.usage.cost.total_cost) != null ? _l : null\n } : null\n }\n }\n };\n }\n async doStream(options) {\n const { args, warnings } = this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n const providerMetadata = {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries: null\n },\n cost: null,\n images: null\n }\n };\n let isFirstChunk = true;\n let isActive = false;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n (_a = value.citations) == null ? void 0 : _a.forEach((url) => {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url\n });\n });\n isFirstChunk = false;\n }\n if (value.usage != null) {\n usage = value.usage;\n providerMetadata.perplexity.usage = {\n citationTokens: (_b = value.usage.citation_tokens) != null ? _b : null,\n numSearchQueries: (_c = value.usage.num_search_queries) != null ? _c : null\n };\n providerMetadata.perplexity.cost = value.usage.cost ? {\n inputTokensCost: (_d = value.usage.cost.input_tokens_cost) != null ? _d : null,\n outputTokensCost: (_e = value.usage.cost.output_tokens_cost) != null ? _e : null,\n requestCost: (_f = value.usage.cost.request_cost) != null ? _f : null,\n totalCost: (_g = value.usage.cost.total_cost) != null ? _g : null\n } : null;\n }\n if (value.images != null) {\n providerMetadata.perplexity.images = value.images.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }));\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const textContent = delta.content;\n if (textContent != null) {\n if (!isActive) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n isActive = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n },\n flush(controller) {\n if (isActive) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id,\n modelId: model,\n timestamp: new Date(created * 1e3)\n };\n}\nvar perplexityCostSchema = z.object({\n input_tokens_cost: z.number().nullish(),\n output_tokens_cost: z.number().nullish(),\n request_cost: z.number().nullish(),\n total_cost: z.number().nullish()\n});\nvar perplexityUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number().nullish(),\n citation_tokens: z.number().nullish(),\n num_search_queries: z.number().nullish(),\n reasoning_tokens: z.number().nullish(),\n cost: perplexityCostSchema.nullish()\n});\nvar perplexityImageSchema = z.object({\n image_url: z.string(),\n origin_url: z.string(),\n height: z.number(),\n width: z.number()\n});\nvar perplexityResponseSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityChunkSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityErrorSchema = z.object({\n error: z.object({\n code: z.number(),\n message: z.string().nullish(),\n type: z.string().nullish()\n })\n});\nvar errorToMessage = (data) => {\n var _a, _b;\n return (_b = (_a = data.error.message) != null ? _a : data.error.type) != null ? _b : \"unknown error\";\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.26\" : \"0.0.0-test\";\n\n// src/perplexity-provider.ts\nfunction createPerplexity(options = {}) {\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"PERPLEXITY_API_KEY\",\n description: \"Perplexity\"\n })}`,\n ...options.headers\n },\n `ai-sdk/perplexity/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a;\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.perplexity.ai\"\n ),\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar perplexity = createPerplexity();\nexport {\n VERSION,\n createPerplexity,\n perplexity\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "100D4C27525F515464756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/demo.ts"],
"sourcesContent": [
"// Demo mode for testing direct interactive mode without a real SDK.\n//\n// Enabled with `--demo`. Intercepts prompt submissions and drives the same\n// presentation commits and footer actions as the live transport. This\n// lets you test scrollback formatting, permission UI, question UI, and tool\n// snapshots without making actual model calls. Pass a demo slash command as\n// the initial interactive message to trigger a preview immediately.\n//\n// Slash commands:\n// /permission [kind] → triggers a permission request variant\n// /question [kind] → triggers a question request variant\n// /fmt <kind> → emits a specific tool/text type (text, reasoning, shell,\n// write, edit, patch, task, question, error, mix)\n//\n// Demo mode also handles permission and question replies locally, completing\n// or failing the synthetic tool parts as appropriate.\nimport path from \"path\"\nimport type { PermissionV2Request, QuestionV2Request } from \"@opencode-ai/client/promise\"\nimport { writeSessionOutput } from \"./stream\"\nimport { toolCommit } from \"./stream-v2.subagent\"\nimport type {\n FooterApi,\n MiniToolPart,\n PermissionReply,\n QuestionReject,\n QuestionReply,\n RunPrompt,\n StreamCommit,\n} from \"./types\"\n\nconst KINDS = [\n \"markdown\",\n \"table\",\n \"text\",\n \"reasoning\",\n \"shell\",\n \"write\",\n \"edit\",\n \"patch\",\n \"task\",\n \"question\",\n \"error\",\n \"mix\",\n]\nconst PERMISSIONS = [\"edit\", \"shell\", \"read\", \"task\", \"external\", \"doom\"] as const\nconst QUESTIONS = [\"multi\", \"single\", \"checklist\", \"custom\"] as const\n\ntype PermissionKind = (typeof PERMISSIONS)[number]\ntype QuestionKind = (typeof QUESTIONS)[number]\n\nfunction permissionKind(value: string | undefined): PermissionKind | undefined {\n const next = (value || \"edit\").toLowerCase()\n return PERMISSIONS.find((item) => item === next)\n}\n\nfunction questionKind(value: string | undefined): QuestionKind | undefined {\n const next = (value || \"multi\").toLowerCase()\n return QUESTIONS.find((item) => item === next)\n}\n\nconst SAMPLE_MARKDOWN = [\n \"# Direct Mode Demo\",\n \"\",\n \"This is a realistic assistant response for direct-mode formatting checks.\",\n \"It mixes **bold**, _italic_, `inline code`, links, code fences, and tables in one streamed reply.\",\n \"\",\n \"## Summary\",\n \"\",\n \"- Restored the final markdown flush so the last block is committed on idle.\",\n \"- Switched markdown scrollback commits back to top-level block boundaries.\",\n \"- Added footer-level regression coverage for split-footer rendering.\",\n \"\",\n \"## Status\",\n \"\",\n \"| Area | Before | After | Notes |\",\n \"| --- | --- | --- | --- |\",\n \"| Direct mode | Missing final rows | Stable | Final markdown block now flushes on idle |\",\n \"| Tables | Dropped in streaming mode | Visible | Block-based commits match the working OpenTUI demo |\",\n \"| Tests | Partial coverage | Broader coverage | Includes a footer-level split render capture |\",\n \"\",\n \"> This sample intentionally includes a wide table so you can spot wrapping and commit bugs quickly.\",\n \"\",\n \"```ts\",\n \"const result = { markdown: true, tables: 2, stable: true }\",\n \"```\",\n \"\",\n \"## Files\",\n \"\",\n \"| File | Change |\",\n \"| --- | --- |\",\n \"| `scrollback.surface.ts` | Align markdown commit logic with the split-footer demo |\",\n \"| `footer.ts` | Keep active surfaces across footer-height-only resizes |\",\n \"| `footer.test.ts` | Capture real split-footer markdown payloads during idle completion |\",\n \"\",\n \"Next step: run `/fmt table` if you want a tighter table-only sample.\",\n].join(\"\\n\")\n\nconst SAMPLE_TABLE = [\n \"# Table Sample\",\n \"\",\n \"| Kind | Example | Notes |\",\n \"| --- | --- | --- |\",\n \"| Pipe | `A\\\\|B` | Escaped pipes should stay in one cell |\",\n \"| Unicode | `漢字` | Wide characters should remain aligned |\",\n \"| Wrap | `LongTokenWithoutNaturalBreaks_1234567890` | Useful for width stress |\",\n \"| Status | done | Final row should still appear after idle |\",\n].join(\"\\n\")\n\ntype Ref = {\n msg: string\n part: string\n call: string\n tool: string\n input: Record<string, unknown>\n start: number\n}\n\ntype Ask = {\n ref: Ref\n}\n\ntype Perm = {\n ref: Ref\n done: {\n title: string\n output: string\n metadata?: Record<string, unknown>\n }\n}\n\ntype Permit = {\n ref: Ref\n permission: string\n patterns: string[]\n metadata?: PermissionV2Request[\"metadata\"]\n always: string[]\n done: Perm[\"done\"]\n}\n\ntype State = {\n id: string\n thinking: boolean\n footer: FooterApi\n msg: number\n part: number\n call: number\n perm: number\n ask: number\n perms: Map<string, Perm>\n asks: Map<string, Ask>\n started: Set<string>\n}\n\ntype Input = {\n sessionID: string\n thinking: boolean\n footer: FooterApi\n}\n\nfunction note(footer: FooterApi, text: string): void {\n footer.append({\n kind: \"system\",\n text,\n phase: \"start\",\n source: \"system\",\n })\n}\n\nfunction clearSubagent(footer: FooterApi): void {\n footer.event({\n type: \"stream.subagent\",\n state: {\n tabs: [],\n details: {},\n permissions: [],\n questions: [],\n },\n })\n}\n\nfunction showSubagent(\n state: State,\n input: {\n sessionID: string\n partID: string\n callID: string\n label: string\n description: string\n status: \"running\" | \"completed\" | \"cancelled\" | \"error\"\n title?: string\n toolCalls?: number\n commits: StreamCommit[]\n },\n) {\n state.footer.event({\n type: \"stream.subagent\",\n state: {\n tabs: [\n {\n sessionID: input.sessionID,\n partID: input.partID,\n callID: input.callID,\n label: input.label,\n description: input.description,\n status: input.status,\n title: input.title,\n toolCalls: input.toolCalls,\n lastUpdatedAt: Date.now(),\n },\n ],\n details: {\n [input.sessionID]: {\n sessionID: input.sessionID,\n commits: input.commits,\n },\n },\n permissions: [],\n questions: [],\n },\n })\n}\n\nfunction wait(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n if (!signal) {\n setTimeout(resolve, ms)\n return\n }\n\n if (signal.aborted) {\n resolve()\n return\n }\n\n const done = () => {\n clearTimeout(timer)\n signal.removeEventListener(\"abort\", done)\n resolve()\n }\n\n const timer = setTimeout(() => {\n signal.removeEventListener(\"abort\", done)\n resolve()\n }, ms)\n\n signal.addEventListener(\"abort\", done, { once: true })\n })\n}\n\nfunction split(text: string): string[] {\n if (text.length <= 48) {\n return [text]\n }\n\n const size = Math.ceil(text.length / 3)\n return [text.slice(0, size), text.slice(size, size * 2), text.slice(size * 2)]\n}\n\nfunction take(state: State, key: \"msg\" | \"part\" | \"call\" | \"perm\" | \"ask\", prefix: string): string {\n state[key] += 1\n return `demo_${prefix}_${state[key]}`\n}\n\nfunction present(state: State, commits: StreamCommit[], view?: QuestionV2Request | PermissionV2Request): void {\n writeSessionOutput(\n { footer: state.footer },\n {\n commits,\n footer: view\n ? {\n view: \"action\" in view ? { type: \"permission\", request: view } : { type: \"question\", request: view },\n patch: { status: \"action\" in view ? \"awaiting permission\" : \"awaiting answer\" },\n }\n : undefined,\n },\n )\n}\n\nfunction clearBlocker(state: State): void {\n writeSessionOutput(\n { footer: state.footer },\n { commits: [], footer: { view: { type: \"prompt\" }, patch: { status: \"\" } } },\n )\n}\n\nfunction open(state: State): string {\n return take(state, \"msg\", \"msg\")\n}\n\nasync function emitText(state: State, body: string, signal?: AbortSignal): Promise<void> {\n const msg = open(state)\n const part = take(state, \"part\", \"part\")\n for (const item of split(body)) {\n if (signal?.aborted) {\n return\n }\n\n present(state, [{ kind: \"assistant\", source: \"assistant\", text: item, phase: \"progress\", messageID: msg, partID: part }])\n await wait(45, signal)\n }\n}\n\nasync function emitReasoning(state: State, body: string, signal?: AbortSignal): Promise<void> {\n const msg = open(state)\n const part = take(state, \"part\", \"part\")\n let first = true\n for (const item of split(body)) {\n if (signal?.aborted) {\n return\n }\n\n if (state.thinking) {\n present(state, [\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: first ? `Thinking: ${item.replace(/\\[REDACTED\\]/g, \"\")}` : item.replace(/\\[REDACTED\\]/g, \"\"),\n phase: \"progress\",\n messageID: msg,\n partID: part,\n },\n ])\n first = false\n }\n await wait(45, signal)\n }\n}\n\nfunction make(state: State, tool: string, input: Record<string, unknown>): Ref {\n return {\n msg: open(state),\n part: take(state, \"part\", \"part\"),\n call: take(state, \"call\", \"call\"),\n tool,\n input,\n start: Date.now(),\n }\n}\n\nfunction startTool(state: State, ref: Ref, metadata: Record<string, unknown> = {}): void {\n state.started.add(ref.part)\n present(\n state,\n [\n toolCommit(\n {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: { status: \"running\", input: ref.input, metadata, time: { start: ref.start } },\n },\n \"start\",\n ),\n ],\n )\n}\n\nfunction askPermission(state: State, item: Permit): void {\n startTool(state, item.ref)\n\n const id = take(state, \"perm\", \"perm\")\n state.perms.set(id, {\n ref: item.ref,\n done: item.done,\n })\n\n present(state, [], {\n id,\n sessionID: state.id,\n action: item.permission,\n resources: item.patterns,\n metadata: item.metadata ?? {},\n save: item.always,\n source: { type: \"tool\", messageID: item.ref.msg, callID: item.ref.call },\n })\n}\n\nfunction doneTool(\n state: State,\n ref: Ref,\n output: {\n title: string\n output: string\n metadata?: Record<string, unknown>\n },\n): void {\n if (!state.started.has(ref.part)) startTool(state, ref)\n const part: MiniToolPart = {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: {\n status: \"completed\",\n input: ref.input,\n output: output.output,\n title: output.title,\n metadata: output.metadata ?? {},\n time: { start: ref.start, end: Date.now() },\n },\n }\n present(state, [toolCommit(part, output.output ? \"progress\" : \"final\")])\n}\n\nfunction failTool(state: State, ref: Ref, error: string): void {\n if (!state.started.has(ref.part)) startTool(state, ref)\n present(\n state,\n [\n toolCommit(\n {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: {\n status: \"error\",\n input: ref.input,\n error,\n metadata: {},\n time: { start: ref.start, end: Date.now() },\n },\n },\n \"final\",\n ),\n ],\n )\n}\n\nfunction emitError(state: State, text: string): void {\n present(state, [{ kind: \"error\", source: \"system\", text, phase: \"start\" }])\n}\n\nasync function emitBash(state: State, signal?: AbortSignal): Promise<void> {\n const ref = make(state, \"shell\", {\n command: \"git status\",\n workdir: process.cwd(),\n description: \"Show git status\",\n })\n startTool(state, ref)\n await wait(70, signal)\n doneTool(state, ref, {\n title: \"git status\",\n output: `${process.cwd()}\\ngit status\\nOn branch demo\\nnothing to commit, working tree clean\\n`,\n metadata: {\n exitCode: 0,\n },\n })\n}\n\nfunction emitWrite(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"write\", {\n filePath: file,\n content: \"export const demo = 42\\n\",\n })\n doneTool(state, ref, {\n title: \"write\",\n output: \"\",\n metadata: {},\n })\n}\n\nfunction emitEdit(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"edit\", {\n filePath: file,\n })\n doneTool(state, ref, {\n title: \"edit\",\n output: \"\",\n metadata: {\n diff: \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\",\n },\n })\n}\n\nfunction emitPatch(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"patch\", {\n patchText: \"*** Begin Patch\\n*** End Patch\",\n })\n doneTool(state, ref, {\n title: \"patch\",\n output: \"\",\n metadata: {\n files: [\n {\n type: \"update\",\n filePath: file,\n relativePath: \"src/demo-format.ts\",\n diff: \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\",\n deletions: 1,\n },\n {\n type: \"add\",\n filePath: path.join(process.cwd(), \"README-demo.md\"),\n relativePath: \"README-demo.md\",\n diff: \"@@ -0,0 +1,4 @@\\n+# Demo\\n+This is a generated preview file.\\n\",\n deletions: 0,\n },\n ],\n },\n })\n}\n\nfunction emitTask(state: State): void {\n const ref = make(state, \"task\", {\n description: \"Scan run/* for reducer touchpoints\",\n subagent_type: \"explore\",\n })\n doneTool(state, ref, {\n title: \"Reducer touchpoints found\",\n output: \"\",\n metadata: {\n toolcalls: 4,\n sessionId: \"sub_demo_1\",\n },\n })\n const part = {\n id: \"sub_demo_tool_1\",\n type: \"tool\",\n sessionID: \"sub_demo_1\",\n messageID: \"sub_demo_msg_tool\",\n callID: \"sub_demo_call_1\",\n tool: \"read\",\n state: {\n status: \"running\",\n input: {\n filePath: \"packages/cli/src/mini/stream.ts\",\n offset: 1,\n limit: 200,\n },\n time: {\n start: Date.now(),\n },\n },\n } satisfies MiniToolPart\n showSubagent(state, {\n sessionID: \"sub_demo_1\",\n partID: ref.part,\n callID: ref.call,\n label: \"Explore\",\n description: \"Scan run/* for reducer touchpoints\",\n status: \"completed\",\n title: \"Reducer touchpoints found\",\n toolCalls: 4,\n commits: [\n {\n kind: \"user\",\n text: \"Scan run/* for reducer touchpoints\",\n phase: \"start\",\n source: \"system\",\n },\n {\n kind: \"reasoning\",\n text: \"Thinking: tracing reducer and footer boundaries\",\n phase: \"progress\",\n source: \"reasoning\",\n messageID: \"sub_demo_msg_reasoning\",\n partID: \"sub_demo_reasoning_1\",\n },\n {\n kind: \"tool\",\n text: \"running read\",\n phase: \"start\",\n source: \"tool\",\n messageID: \"sub_demo_msg_tool\",\n partID: \"sub_demo_tool_1\",\n tool: \"read\",\n part,\n },\n {\n kind: \"assistant\",\n text: \"Footer updates flow through stream.ts into RunFooter\",\n phase: \"progress\",\n source: \"assistant\",\n messageID: \"sub_demo_msg_text\",\n partID: \"sub_demo_text_1\",\n },\n ],\n })\n}\n\nfunction emitQuestionTool(state: State): void {\n const ref = make(state, \"question\", {\n questions: [\n {\n header: \"Style\",\n question: \"Which output style do you want to inspect?\",\n options: [\n { label: \"Diff\", description: \"Show diff block\" },\n { label: \"Code\", description: \"Show code block\" },\n ],\n multiple: false,\n },\n {\n header: \"Extras\",\n question: \"Pick extra rows\",\n options: [\n { label: \"Usage\", description: \"Add usage row\" },\n { label: \"Duration\", description: \"Add duration row\" },\n ],\n multiple: true,\n custom: true,\n },\n ],\n })\n doneTool(state, ref, {\n title: \"question\",\n output: \"\",\n metadata: {\n answers: [[\"Diff\"], [\"Usage\", \"custom-note\"]],\n },\n })\n}\n\nfunction emitPermission(state: State, kind: PermissionKind = \"edit\"): void {\n const root = process.cwd()\n const file = path.join(root, \"src\", \"demo-format.ts\")\n\n if (kind === \"shell\") {\n const command = \"git status --short\"\n const ref = make(state, \"shell\", {\n command,\n workdir: root,\n description: \"Inspect worktree changes\",\n })\n askPermission(state, {\n ref,\n permission: \"shell\",\n patterns: [command],\n always: [\"*\"],\n done: {\n title: \"git status --short\",\n output: `${root}\\ngit status --short\\n M src/demo-format.ts\\n?? src/demo-permission.ts\\n`,\n metadata: {\n exitCode: 0,\n },\n },\n })\n return\n }\n\n if (kind === \"read\") {\n const target = path.join(root, \"package.json\")\n const ref = make(state, \"read\", {\n filePath: target,\n offset: 1,\n limit: 80,\n })\n askPermission(state, {\n ref,\n permission: \"read\",\n patterns: [target],\n always: [target],\n done: {\n title: \"read\",\n output: [\"1: {\", '2: \"name\": \"opencode\",', '3: \"private\": true', \"4: }\"].join(\"\\n\"),\n metadata: {},\n },\n })\n return\n }\n\n if (kind === \"task\") {\n const ref = make(state, \"task\", {\n description: \"Inspect footer spacing across direct-mode prompts\",\n subagent_type: \"explore\",\n })\n askPermission(state, {\n ref,\n permission: \"task\",\n patterns: [\"explore\"],\n always: [\"*\"],\n done: {\n title: \"Footer spacing checked\",\n output: \"\",\n metadata: {\n toolcalls: 3,\n sessionId: \"sub_demo_perm_1\",\n },\n },\n })\n return\n }\n\n if (kind === \"external\") {\n const dir = path.join(path.dirname(root), \"demo-shared\")\n const target = path.join(dir, \"README.md\")\n const ref = make(state, \"read\", {\n filePath: target,\n offset: 1,\n limit: 40,\n })\n askPermission(state, {\n ref,\n permission: \"external_directory\",\n patterns: [`${dir}/**`],\n metadata: {\n parentDir: dir,\n filepath: target,\n },\n always: [`${dir}/**`],\n done: {\n title: \"read\",\n output: `1: # External demo\\n2: Shared preview file\\nPath: ${target}`,\n metadata: {},\n },\n })\n return\n }\n\n if (kind === \"doom\") {\n const ref = make(state, \"task\", {\n description: \"Retry the formatter after repeated failures\",\n subagent_type: \"general\",\n })\n askPermission(state, {\n ref,\n permission: \"doom_loop\",\n patterns: [\"*\"],\n always: [\"*\"],\n done: {\n title: \"Retry allowed\",\n output: \"Continuing after repeated failures.\\n\",\n metadata: {},\n },\n })\n return\n }\n\n const diff = \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\"\n const ref = make(state, \"edit\", {\n filePath: file,\n filepath: file,\n diff,\n })\n askPermission(state, {\n ref,\n permission: \"edit\",\n patterns: [file],\n always: [file],\n done: {\n title: \"edit\",\n output: \"\",\n metadata: {\n diff,\n },\n },\n })\n}\n\nfunction emitQuestion(state: State, kind: QuestionKind = \"multi\"): void {\n const questions = (() => {\n if (kind === \"single\") {\n return [\n {\n header: \"Mode\",\n question: \"Which footer should be the reference for spacing checks?\",\n options: [\n { label: \"Permission\", description: \"Inspect the permission footer\" },\n { label: \"Question\", description: \"Keep this question footer open\" },\n { label: \"Prompt\", description: \"Return to the normal composer\" },\n ],\n multiple: false,\n custom: false,\n },\n ]\n }\n\n if (kind === \"checklist\") {\n return [\n {\n header: \"Checks\",\n question: \"Select the direct-mode cases you want to inspect next\",\n options: [\n { label: \"Diff\", description: \"Show an edit diff in the footer\" },\n { label: \"Task\", description: \"Show a structured task summary\" },\n { label: \"Error\", description: \"Show an error transcript row\" },\n ],\n multiple: true,\n custom: false,\n },\n ]\n }\n\n if (kind === \"custom\") {\n return [\n {\n header: \"Reply\",\n question: \"What custom answer should appear in the footer preview?\",\n options: [\n { label: \"Short note\", description: \"Keep the answer to one line\" },\n { label: \"Wrapped note\", description: \"Use a longer answer to test wrapping\" },\n ],\n multiple: false,\n custom: true,\n },\n ]\n }\n\n return [\n {\n header: \"Layout\",\n question: \"Which footer view should stay active while testing?\",\n options: [\n { label: \"Prompt\", description: \"Return to prompt\" },\n { label: \"Question\", description: \"Keep question open\" },\n ],\n multiple: false,\n },\n {\n header: \"Rows\",\n question: \"Pick formatting previews\",\n options: [\n { label: \"Diff\", description: \"Emit edit diff\" },\n { label: \"Task\", description: \"Emit task card\" },\n ],\n multiple: true,\n custom: true,\n },\n ]\n })()\n\n const ref = make(state, \"question\", { questions })\n startTool(state, ref)\n\n const id = take(state, \"ask\", \"ask\")\n state.asks.set(id, { ref })\n\n present(state, [], {\n id,\n sessionID: state.id,\n questions,\n tool: { messageID: ref.msg, callID: ref.call },\n })\n}\n\nasync function emitFmt(state: State, kind: string, body: string, signal?: AbortSignal): Promise<boolean> {\n if (kind === \"text\") {\n await emitText(state, body || SAMPLE_MARKDOWN, signal)\n return true\n }\n\n if (kind === \"markdown\" || kind === \"md\") {\n await emitText(state, body || SAMPLE_MARKDOWN, signal)\n return true\n }\n\n if (kind === \"table\") {\n await emitText(state, body || SAMPLE_TABLE, signal)\n return true\n }\n\n if (kind === \"reasoning\") {\n await emitReasoning(state, body || \"Planning next steps [REDACTED] while preserving reducer ordering.\", signal)\n return true\n }\n\n if (kind === \"shell\") {\n await emitBash(state, signal)\n return true\n }\n\n if (kind === \"write\") {\n emitWrite(state)\n return true\n }\n\n if (kind === \"edit\") {\n emitEdit(state)\n return true\n }\n\n if (kind === \"patch\") {\n emitPatch(state)\n return true\n }\n\n if (kind === \"task\") {\n emitTask(state)\n return true\n }\n\n if (kind === \"question\") {\n emitQuestionTool(state)\n return true\n }\n\n if (kind === \"error\") {\n emitError(state, body || \"demo error event\")\n return true\n }\n\n if (kind === \"mix\") {\n await emitText(state, SAMPLE_MARKDOWN, signal)\n await wait(50, signal)\n await emitReasoning(state, \"Thinking through formatter edge cases [REDACTED].\", signal)\n await wait(50, signal)\n await emitBash(state, signal)\n emitWrite(state)\n emitEdit(state)\n emitPatch(state)\n emitTask(state)\n emitQuestionTool(state)\n emitError(state, \"demo mixed scenario error\")\n return true\n }\n\n return false\n}\n\nfunction intro(state: State): void {\n note(\n state.footer,\n [\n \"Demo slash commands enabled for interactive mode.\",\n `- /permission [kind] (${PERMISSIONS.join(\", \")})`,\n `- /question [kind] (${QUESTIONS.join(\", \")})`,\n `- /fmt <kind> (${KINDS.join(\", \")})`,\n \"Examples:\",\n \"- /permission shell\",\n \"- /question custom\",\n \"- /fmt markdown\",\n \"- /fmt table\",\n \"- /fmt text your custom text\",\n ].join(\"\\n\"),\n )\n}\n\nexport function createRunDemo(input: Input) {\n const state: State = {\n id: input.sessionID,\n thinking: input.thinking,\n footer: input.footer,\n msg: 0,\n part: 0,\n call: 0,\n perm: 0,\n ask: 0,\n perms: new Map(),\n asks: new Map(),\n started: new Set(),\n }\n\n const start = async (): Promise<void> => {\n intro(state)\n }\n\n const prompt = async (line: RunPrompt, signal?: AbortSignal): Promise<boolean> => {\n const text = line.text.trim()\n const list = text.split(/\\s+/)\n const cmd = list[0] || \"\"\n\n clearSubagent(state.footer)\n\n if (cmd === \"/help\") {\n intro(state)\n return true\n }\n\n if (cmd === \"/permission\") {\n const kind = permissionKind(list[1])\n if (!kind) {\n note(state.footer, `Pick a permission kind: ${PERMISSIONS.join(\", \")}`)\n return true\n }\n\n emitPermission(state, kind)\n return true\n }\n\n if (cmd === \"/question\") {\n const kind = questionKind(list[1])\n if (!kind) {\n note(state.footer, `Pick a question kind: ${QUESTIONS.join(\", \")}`)\n return true\n }\n\n emitQuestion(state, kind)\n return true\n }\n\n if (cmd === \"/fmt\") {\n const kind = (list[1] || \"\").toLowerCase()\n const body = list.slice(2).join(\" \")\n if (!kind) {\n note(state.footer, `Pick a kind: ${KINDS.join(\", \")}`)\n return true\n }\n\n const ok = await emitFmt(state, kind, body, signal)\n if (ok) {\n return true\n }\n\n note(state.footer, `Unknown kind \"${kind}\". Use: ${KINDS.join(\", \")}`)\n return true\n }\n\n return false\n }\n\n const permission = (input: PermissionReply): boolean => {\n const item = state.perms.get(input.requestID)\n if (!item || !input.reply) {\n return false\n }\n\n state.perms.delete(input.requestID)\n clearBlocker(state)\n\n if (input.reply === \"reject\") {\n failTool(state, item.ref, input.message || \"permission rejected\")\n return true\n }\n\n doneTool(state, item.ref, item.done)\n return true\n }\n\n const questionReply = (input: QuestionReply): boolean => {\n const ask = state.asks.get(input.requestID)\n if (!ask || !input.answers) {\n return false\n }\n\n state.asks.delete(input.requestID)\n clearBlocker(state)\n doneTool(state, ask.ref, {\n title: \"question\",\n output: \"\",\n metadata: {\n answers: input.answers,\n },\n })\n return true\n }\n\n const questionReject = (input: QuestionReject): boolean => {\n const ask = state.asks.get(input.requestID)\n if (!ask) {\n return false\n }\n\n state.asks.delete(input.requestID)\n clearBlocker(state)\n failTool(state, ask.ref, \"question rejected\")\n return true\n }\n\n return {\n start,\n prompt,\n permission,\n questionReply,\n questionReject,\n }\n}\n"
],
"mappings": "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",
"debugId": "CD89C3C104FD559564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst fs_1 = require(\"fs\");\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n try {\n const result = await fs_1.promises.readFile('/etc/hostid', { encoding: 'utf8' });\n return result.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n try {\n const result = await (0, execAsync_1.execAsync)('kenv -q smbios.system.uuid');\n return result.stdout.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-bsd.js.map"
],
"mappings": ";wKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,UACA,MACA,MACN,eAAe,CAAY,EAAG,CAC1B,GAAI,CAEA,OADe,MAAM,EAAK,SAAS,SAAS,cAAe,CAAE,SAAU,MAAO,CAAC,GACjE,KAAK,EAEvB,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,GAAI,CAEA,OADe,MAAO,EAAG,EAAY,WAAW,4BAA4B,GAC9D,OAAO,KAAK,EAE9B,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "101A25402600F14F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260710025429_instruction_sync.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260710025429_instruction_sync\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_seq\\` integer;`)\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_instruction_entry\\` (\n \\`session_id\\` text NOT NULL,\n \\`key\\` text NOT NULL,\n \\`value\\` text,\n \\`removed\\` integer DEFAULT false NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`instruction_entry_pk\\` PRIMARY KEY(\\`session_id\\`, \\`key\\`),\n CONSTRAINT \\`fk_instruction_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n INSERT INTO \\`__new_instruction_entry\\`(\n \\`session_id\\`, \\`key\\`, \\`value\\`, \\`removed\\`, \\`time_created\\`, \\`time_updated\\`\n )\n SELECT \\`session_id\\`, \\`key\\`, \\`value\\`, false, \\`time_created\\`, \\`time_updated\\`\n FROM \\`instruction_entry\\`;\n `)\n yield* tx.run(`DROP TABLE \\`instruction_entry\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_instruction_entry\\` RENAME TO \\`instruction_entry\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(`\n CREATE TABLE \\`instruction_blob\\` (\n \\`hash\\` text PRIMARY KEY,\n \\`value\\` text\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`instruction_state\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`epoch_start\\` integer NOT NULL,\n \\`through_seq\\` integer NOT NULL,\n \\`initial_values\\` text NOT NULL,\n \\`current_values\\` text NOT NULL,\n CONSTRAINT \\`fk_instruction_state_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n // Persisted System rows were exclusively pre-beta instruction prose,\n // including fork copies whose message IDs no longer match the source event.\n yield* tx.run(`DELETE FROM \\`session_message\\` WHERE \\`type\\` = 'system';`)\n yield* tx.run(`\n UPDATE \\`session\\`\n SET \\`fork_seq\\` = COALESCE(\n (\n SELECT MIN(\\`seq\\`) - 1\n FROM \\`event\\`\n WHERE \\`aggregate_id\\` = \\`session\\`.\\`id\\` AND \\`seq\\` > 0\n ),\n (\n SELECT \\`seq\\`\n FROM \\`event_sequence\\`\n WHERE \\`aggregate_id\\` = \\`session\\`.\\`id\\`\n ),\n 0\n )\n WHERE \\`fork_session_id\\` IS NOT NULL;\n `)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET\n \\`type\\` = 'session.forked.2',\n \\`data\\` = json_set(\n \\`data\\`,\n '$.parentSeq',\n COALESCE(\n (SELECT \\`fork_seq\\` FROM \\`session\\` WHERE \\`id\\` = \\`event\\`.\\`aggregate_id\\`),\n 0\n )\n )\n WHERE \\`type\\` = 'session.forked.1';\n `)\n yield* tx.run(`DELETE FROM \\`event\\` WHERE \\`type\\` = 'session.instructions.updated.1';`)\n yield* tx.run(`DROP TABLE \\`instruction_checkpoint\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+CAAmD,EACjE,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,khBAWb,EACD,MAAO,EAAG,IAAI,+QAMb,EACD,MAAO,EAAG,IAAI,iCAAmC,EACjD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IAAI,6HAKb,EACD,MAAO,EAAG,IAAI,saASb,EAGD,MAAO,EAAG,IAAI,wDAA4D,EAC1E,MAAO,EAAG,IAAI,kbAgBb,EACD,MAAO,EAAG,IAAI,6WAab,EACD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,sCAAwC,EACvD,EAEL",
"debugId": "219A2D1FA22BA25464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://oidc.{Region}.amazonaws.com\", i],\n [\"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 13,\n 3,\n 1,\n 4,\n r + 12,\n 2,\n 5,\n r + 12,\n 3,\n 8,\n 6,\n 4,\n 7,\n r + 11,\n 5,\n r + 9,\n r + 10,\n 4,\n 11,\n 9,\n 6,\n 10,\n r + 8,\n 7,\n r + 6,\n r + 7,\n 5,\n 12,\n r + 5,\n 6,\n r + 4,\n r + 5,\n 3,\n r + 1,\n 14,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SSOOIDCServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOOIDCServiceException.prototype);\n }\n}\n\nclass AccessDeniedException extends SSOOIDCServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n error;\n reason;\n error_description;\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n this.error = opts.error;\n this.reason = opts.reason;\n this.error_description = opts.error_description;\n }\n}\nclass AuthorizationPendingException extends SSOOIDCServiceException {\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass ExpiredTokenException extends SSOOIDCServiceException {\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InternalServerException extends SSOOIDCServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidClientException extends SSOOIDCServiceException {\n name = \"InvalidClientException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidGrantException extends SSOOIDCServiceException {\n name = \"InvalidGrantException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidRequestException extends SSOOIDCServiceException {\n name = \"InvalidRequestException\";\n $fault = \"client\";\n error;\n reason;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n this.error = opts.error;\n this.reason = opts.reason;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidScopeException extends SSOOIDCServiceException {\n name = \"InvalidScopeException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass SlowDownException extends SSOOIDCServiceException {\n name = \"SlowDownException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass UnauthorizedClientException extends SSOOIDCServiceException {\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass UnsupportedGrantTypeException extends SSOOIDCServiceException {\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\n\nconst _ADE = \"AccessDeniedException\";\nconst _APE = \"AuthorizationPendingException\";\nconst _AT = \"AccessToken\";\nconst _CS = \"ClientSecret\";\nconst _CT = \"CreateToken\";\nconst _CTR = \"CreateTokenRequest\";\nconst _CTRr = \"CreateTokenResponse\";\nconst _CV = \"CodeVerifier\";\nconst _ETE = \"ExpiredTokenException\";\nconst _ICE = \"InvalidClientException\";\nconst _IGE = \"InvalidGrantException\";\nconst _IRE = \"InvalidRequestException\";\nconst _ISE = \"InternalServerException\";\nconst _ISEn = \"InvalidScopeException\";\nconst _IT = \"IdToken\";\nconst _RT = \"RefreshToken\";\nconst _SDE = \"SlowDownException\";\nconst _UCE = \"UnauthorizedClientException\";\nconst _UGTE = \"UnsupportedGrantTypeException\";\nconst _aT = \"accessToken\";\nconst _c = \"client\";\nconst _cI = \"clientId\";\nconst _cS = \"clientSecret\";\nconst _cV = \"codeVerifier\";\nconst _co = \"code\";\nconst _dC = \"deviceCode\";\nconst _e = \"error\";\nconst _eI = \"expiresIn\";\nconst _ed = \"error_description\";\nconst _gT = \"grantType\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _iT = \"idToken\";\nconst _r = \"reason\";\nconst _rT = \"refreshToken\";\nconst _rU = \"redirectUri\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.ssooidc\";\nconst _sc = \"scope\";\nconst _se = \"server\";\nconst _tT = \"tokenType\";\nconst n0 = \"com.amazonaws.ssooidc\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SSOOIDCServiceException$ = [-3, _s, \"SSOOIDCServiceException\", 0, [], []];\n_s_registry.registerError(SSOOIDCServiceException$, SSOOIDCServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar AccessDeniedException$ = [\n -3,\n n0,\n _ADE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _r, _ed],\n [0, 0, 0],\n];\nn0_registry.registerError(AccessDeniedException$, AccessDeniedException);\nvar AuthorizationPendingException$ = [\n -3,\n n0,\n _APE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(AuthorizationPendingException$, AuthorizationPendingException);\nvar ExpiredTokenException$ = [-3, n0, _ETE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(ExpiredTokenException$, ExpiredTokenException);\nvar InternalServerException$ = [-3, n0, _ISE, { [_e]: _se, [_hE]: 500 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InternalServerException$, InternalServerException);\nvar InvalidClientException$ = [-3, n0, _ICE, { [_e]: _c, [_hE]: 401 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidClientException$, InvalidClientException);\nvar InvalidGrantException$ = [-3, n0, _IGE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidGrantException$, InvalidGrantException);\nvar InvalidRequestException$ = [\n -3,\n n0,\n _IRE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _r, _ed],\n [0, 0, 0],\n];\nn0_registry.registerError(InvalidRequestException$, InvalidRequestException);\nvar InvalidScopeException$ = [-3, n0, _ISEn, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidScopeException$, InvalidScopeException);\nvar SlowDownException$ = [-3, n0, _SDE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(SlowDownException$, SlowDownException);\nvar UnauthorizedClientException$ = [\n -3,\n n0,\n _UCE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(UnauthorizedClientException$, UnauthorizedClientException);\nvar UnsupportedGrantTypeException$ = [\n -3,\n n0,\n _UGTE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(UnsupportedGrantTypeException$, UnsupportedGrantTypeException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar AccessToken = [0, n0, _AT, 8, 0];\nvar ClientSecret = [0, n0, _CS, 8, 0];\nvar CodeVerifier = [0, n0, _CV, 8, 0];\nvar IdToken = [0, n0, _IT, 8, 0];\nvar RefreshToken = [0, n0, _RT, 8, 0];\nvar CreateTokenRequest$ = [\n 3,\n n0,\n _CTR,\n 0,\n [_cI, _cS, _gT, _dC, _co, _rT, _sc, _rU, _cV],\n [0, [() => ClientSecret, 0], 0, 0, 0, [() => RefreshToken, 0], 64 | 0, 0, [() => CodeVerifier, 0]],\n 3,\n];\nvar CreateTokenResponse$ = [\n 3,\n n0,\n _CTRr,\n 0,\n [_aT, _tT, _eI, _rT, _iT],\n [[() => AccessToken, 0], 0, 1, [() => RefreshToken, 0], [() => IdToken, 0]],\n];\nvar CreateToken$ = [\n 9,\n n0,\n _CT,\n { [_h]: [\"POST\", \"/token\", 200] },\n () => CreateTokenRequest$,\n () => CreateTokenResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.ssooidc\",\n errorTypeRegistries,\n version: \"2019-06-10\",\n serviceTarget: \"AWSSSOOIDCService\",\n },\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SSOOIDCClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateTokenCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSSSOOIDCService\", \"CreateToken\", {})\n .n(\"SSOOIDCClient\", \"CreateTokenCommand\")\n .sc(CreateToken$)\n .build() {\n}\n\nconst commands = {\n CreateTokenCommand,\n};\nclass SSOOIDC extends SSOOIDCClient {\n}\nclient.createAggregatedClient(commands, SSOOIDC);\n\nconst AccessDeniedExceptionReason = {\n KMS_ACCESS_DENIED: \"KMS_AccessDeniedException\",\n};\nconst InvalidRequestExceptionReason = {\n KMS_DISABLED_KEY: \"KMS_DisabledException\",\n KMS_INVALID_KEY_USAGE: \"KMS_InvalidKeyUsageException\",\n KMS_INVALID_STATE: \"KMS_InvalidStateException\",\n KMS_KEY_NOT_FOUND: \"KMS_NotFoundException\",\n};\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.AccessDeniedException = AccessDeniedException;\nexports.AccessDeniedException$ = AccessDeniedException$;\nexports.AccessDeniedExceptionReason = AccessDeniedExceptionReason;\nexports.AuthorizationPendingException = AuthorizationPendingException;\nexports.AuthorizationPendingException$ = AuthorizationPendingException$;\nexports.CreateToken$ = CreateToken$;\nexports.CreateTokenCommand = CreateTokenCommand;\nexports.CreateTokenRequest$ = CreateTokenRequest$;\nexports.CreateTokenResponse$ = CreateTokenResponse$;\nexports.ExpiredTokenException = ExpiredTokenException;\nexports.ExpiredTokenException$ = ExpiredTokenException$;\nexports.InternalServerException = InternalServerException;\nexports.InternalServerException$ = InternalServerException$;\nexports.InvalidClientException = InvalidClientException;\nexports.InvalidClientException$ = InvalidClientException$;\nexports.InvalidGrantException = InvalidGrantException;\nexports.InvalidGrantException$ = InvalidGrantException$;\nexports.InvalidRequestException = InvalidRequestException;\nexports.InvalidRequestException$ = InvalidRequestException$;\nexports.InvalidRequestExceptionReason = InvalidRequestExceptionReason;\nexports.InvalidScopeException = InvalidScopeException;\nexports.InvalidScopeException$ = InvalidScopeException$;\nexports.SSOOIDC = SSOOIDC;\nexports.SSOOIDCClient = SSOOIDCClient;\nexports.SSOOIDCServiceException = SSOOIDCServiceException;\nexports.SSOOIDCServiceException$ = SSOOIDCServiceException$;\nexports.SlowDownException = SlowDownException;\nexports.SlowDownException$ = SlowDownException$;\nexports.UnauthorizedClientException = UnauthorizedClientException;\nexports.UnauthorizedClientException$ = UnauthorizedClientException$;\nexports.UnsupportedGrantTypeException = UnsupportedGrantTypeException;\nexports.UnsupportedGrantTypeException$ = UnsupportedGrantTypeException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "ABA3AF91AECCD43764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "7B5415FA8EAD167864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E3E638146C8030F164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260703200000_reset_v2_session_events.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703200000_reset_v2_session_events\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAChD,EAEL",
"debugId": "B78CC5C4DE59D6AE64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "535D02D1A524696964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "D99AEF7C677B854964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/mcp/resolve.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { OpenCodeClient } from \"@opencode-ai/client\"\n\n// Resolve through the MCP-owned integrationID rather than matching integration names: the shared\n// integration registry also holds provider/plugin integrations, whose names could collide with a server.\n// Fails when the server is unknown; returns undefined when the server has no integration (e.g. a local\n// or anonymous server), leaving that case for the caller to interpret.\nexport const resolveIntegration = (client: OpenCodeClient, name: string, location: { directory: string }) =>\n Effect.gen(function* () {\n const servers = yield* Effect.promise(() => client.mcp.list({ location }))\n const server = servers.data.find((entry) => entry.name === name)\n if (!server) return yield* Effect.fail(new Error(`MCP server not found: ${name}`))\n const integrationID = server.integrationID\n if (!integrationID) return undefined\n return yield* Effect.promise(() => client.integration.get({ integrationID, location })).pipe(\n Effect.map((result) => result.data ?? undefined),\n )\n })\n"
],
"mappings": ";oDAOO,IAAM,EAAqB,CAAC,EAAwB,EAAc,IACvE,EAAO,IAAI,SAAU,EAAG,CAEtB,IAAM,GADU,MAAO,EAAO,QAAQ,IAAM,EAAO,IAAI,KAAK,CAAE,UAAS,CAAC,CAAC,GAClD,KAAK,KAAK,CAAC,IAAU,EAAM,OAAS,CAAI,EAC/D,GAAI,CAAC,EAAQ,OAAO,MAAO,EAAO,KAAS,MAAM,yBAAyB,GAAM,CAAC,EACjF,IAAM,EAAgB,EAAO,cAC7B,GAAI,CAAC,EAAe,OACpB,OAAO,MAAO,EAAO,QAAQ,IAAM,EAAO,YAAY,IAAI,CAAE,gBAAe,UAAS,CAAC,CAAC,EAAE,KACtF,EAAO,IAAI,CAAC,IAAW,EAAO,MAAQ,MAAS,CACjD,EACD",
"debugId": "ED79DA83D288549C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/pair.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { OpenCode } from \"@opencode-ai/client/promise\"\nimport { renderUnicodeCompact } from \"uqr\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServiceConfig } from \"../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.pair,\n Effect.fn(\"cli.pair\")(function* () {\n const endpoint = yield* Service.ensure(yield* ServiceConfig.options())\n const password = yield* ServiceConfig.password()\n const server = yield* Effect.tryPromise(() =>\n OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) }).server.get(),\n )\n const info = { urls: server.urls, username: \"opencode\", password }\n process.stdout.write(\n [\n \"\",\n ` URLs ${info.urls[0] ?? \"(none)\"}`,\n ...info.urls.slice(1).map((url) => ` ${url}`),\n ` Username ${info.username}`,\n ` Password ${info.password}`,\n \"\",\n \" Scan to pair\",\n \"\",\n renderUnicodeCompact(JSON.stringify(info), { border: 2 })\n .split(EOL)\n .map((line) => \" \" + line)\n .join(EOL),\n \"\",\n ].join(EOL) + EOL,\n )\n\n const hostname = new URL(endpoint.url).hostname\n if (![\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(hostname)) return\n process.stderr.write(\n ` Run \\`opencode service set hostname 0.0.0.0\\` to access the service remotely.${EOL}${EOL}`,\n )\n }),\n)\n"
],
"mappings": ";46BAAA,mBAAS,gBAST,SAAe,SAAQ,aACrB,OAAS,cAAS,UAClB,OAAO,QAAG,eAAU,OAAE,cAAU,OAAG,MACjC,SAAM,OAAW,WAAO,OAAQ,YAAO,WAAO,OAAc,aAAQ,MAAC,EAC/D,EAAW,MAAO,EAAc,SAAS,EAIzC,EAAO,CAAE,MAHA,MAAO,EAAO,WAAW,IACtC,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAAE,OAAO,IAAI,CAC1F,GAC4B,KAAM,SAAU,WAAY,UAAS,EACjE,QAAQ,OAAO,MACb,CACE,GACA,eAAe,EAAK,KAAK,IAAM,WAC/B,GAAG,EAAK,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAQ,eAAe,GAAK,EACvD,eAAe,EAAK,WACpB,eAAe,EAAK,WACpB,GACA,iBACA,GACA,EAAqB,KAAK,UAAU,CAAI,EAAG,CAAE,OAAQ,CAAE,CAAC,EACrD,MAAM,CAAG,EACT,IAAI,CAAC,IAAS,KAAO,CAAI,EACzB,KAAK,CAAG,EACX,EACF,EAAE,KAAK,CAAG,EAAI,CAChB,EAEA,IAAM,EAAW,IAAI,IAAI,EAAS,GAAG,EAAE,SACvC,GAAI,CAAC,CAAC,YAAa,YAAa,OAAO,EAAE,SAAS,CAAQ,EAAG,OAC7D,QAAQ,OAAO,MACb,kFAAkF,IAAM,GAC1F,EACD,CACH",
"debugId": "9E845DD8991BA77364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../tui/src/config/v1/index.tsx"],
"sourcesContent": [
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nexport * as TuiConfig from \".\";\nexport * as TuiConfigV1 from \".\";\nimport { createBindingLookup } from \"@opentui/keymap/extras\";\nimport { Schema } from \"effect\";\nimport { createContext, useContext } from \"solid-js\";\nimport { TuiKeybind } from \"./keybind\";\nexport const AttentionSoundName = Schema.Literals([\"default\", \"question\", \"permission\", \"error\", \"done\", \"subagent_done\"]);\nexport const PluginOptions = Schema.Record(Schema.String, Schema.Unknown);\nexport const PluginSpec = Schema.Union([Schema.String, Schema.mutable(Schema.Tuple([Schema.String, PluginOptions]))]);\nexport const LeaderTimeoutDefault = 2000;\nexport const LeaderTimeout = Schema.Int.check(Schema.isGreaterThan(0)).annotate({\n description: \"Leader key timeout in milliseconds\"\n});\nexport const ScrollSpeed = Schema.Number.check(Schema.isGreaterThanOrEqualTo(0.001));\nexport const ScrollAcceleration = Schema.Struct({\n enabled: Schema.Boolean.annotate({\n description: \"Enable scroll acceleration\"\n })\n}).annotate({\n description: \"Scroll acceleration settings\"\n});\nexport const DiffStyle = Schema.Literals([\"auto\", \"stacked\"]).annotate({\n description: \"Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column\"\n});\nexport const AttentionSounds = Schema.Record(AttentionSoundName, Schema.optionalKey(Schema.String));\nexport const Attention = Schema.Struct({\n enabled: Schema.optional(Schema.Boolean),\n notifications: Schema.optional(Schema.Boolean),\n sound: Schema.optional(Schema.Boolean),\n volume: Schema.optional(Schema.Number.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(1))),\n sound_pack: Schema.optional(Schema.String),\n sounds: Schema.optional(AttentionSounds)\n}).annotate({\n description: \"Attention notification and sound settings\"\n});\nconst PromptSize = Schema.Int.check(Schema.isGreaterThan(0));\nexport const Prompt = Schema.Struct({\n max_height: Schema.optional(PromptSize).annotate({\n description: \"Prompt textarea max height\"\n }),\n max_width: Schema.optional(Schema.Union([PromptSize, Schema.Literal(\"auto\")])).annotate({\n description: \"Home prompt max width: a positive integer for a fixed cap, or 'auto' to scale with terminal width\"\n })\n}).annotate({\n description: \"Prompt size settings\"\n});\nexport const Info = Schema.Struct({\n $schema: Schema.optional(Schema.String),\n theme: Schema.optional(Schema.String),\n keybinds: Schema.optional(TuiKeybind.KeybindOverrides),\n plugin: Schema.optional(Schema.Array(PluginSpec)),\n plugin_enabled: Schema.optional(Schema.Record(Schema.String, Schema.Boolean)),\n leader_timeout: Schema.optional(LeaderTimeout),\n attention: Schema.optional(Attention),\n prompt: Schema.optional(Prompt),\n scroll_speed: Schema.optional(ScrollSpeed).annotate({\n description: \"TUI scroll speed\"\n }),\n scroll_acceleration: Schema.optional(ScrollAcceleration),\n diff_style: Schema.optional(DiffStyle),\n mouse: Schema.optional(Schema.Boolean).annotate({\n description: \"Enable or disable mouse capture (default: true)\"\n })\n});\nexport const ResolveOptions = Schema.Struct({\n terminalSuspend: Schema.Boolean\n});\nexport function resolve(input, options) {\n const keybinds = {\n ...input.keybinds\n };\n if (!options.terminalSuspend) {\n keybinds.terminal_suspend = \"none\";\n if (keybinds.input_undo === undefined) {\n const inputUndo = TuiKeybind.defaultValue(\"input_undo\");\n keybinds.input_undo = [\"ctrl+z\", ...(typeof inputUndo === \"string\" ? inputUndo.split(\",\") : [])].filter((value, index, values) => values.indexOf(value) === index).join(\",\");\n }\n }\n return {\n ...input,\n attention: {\n enabled: input.attention?.enabled ?? false,\n notifications: input.attention?.notifications ?? true,\n sound: input.attention?.sound ?? true,\n volume: input.attention?.volume ?? 0.4,\n sound_pack: input.attention?.sound_pack ?? \"opencode.default\",\n sounds: input.attention?.sounds ?? {}\n },\n keybinds: createBindingLookup(TuiKeybind.toBindingConfig(TuiKeybind.parse(keybinds)), {\n commandMap: TuiKeybind.CommandMap,\n bindingDefaults: TuiKeybind.bindingDefaults()\n }),\n leader_timeout: input.leader_timeout ?? LeaderTimeoutDefault,\n mouse: input.mouse ?? true\n };\n}\nconst ConfigContext = createContext();\nexport function TuiConfigProvider(props) {\n return _$createComponent(ConfigContext.Provider, {\n get value() {\n return props.config;\n },\n get children() {\n return props.children;\n }\n });\n}\nexport function useTuiConfig() {\n const value = useContext(ConfigContext);\n if (!value) throw new Error(\"TuiConfigProvider is missing\");\n return value;\n}"
],
"mappings": ";whBAOO,SAAM,OAAqB,EAAO,SAAS,CAAC,UAAW,WAAY,aAAc,QAAS,OAAQ,eAAe,CAAC,EAC5G,EAAgB,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,EAC3D,EAAa,EAAO,MAAM,CAAC,EAAO,OAAQ,EAAO,QAAQ,EAAO,MAAM,CAAC,EAAO,OAAQ,CAAa,CAAC,CAAC,CAAC,CAAC,EACvG,EAAuB,KACvB,EAAgB,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EAAE,SAAS,CAC9E,YAAa,oCACf,CAAC,EACY,EAAc,EAAO,OAAO,MAAM,EAAO,uBAAuB,KAAK,CAAC,EACtE,EAAqB,EAAO,OAAO,CAC9C,QAAS,EAAO,QAAQ,SAAS,CAC/B,YAAa,4BACf,CAAC,CACH,CAAC,EAAE,SAAS,CACV,YAAa,8BACf,CAAC,EACY,EAAY,EAAO,SAAS,CAAC,OAAQ,SAAS,CAAC,EAAE,SAAS,CACrE,YAAa,qGACf,CAAC,EACY,EAAkB,EAAO,OAAO,EAAoB,EAAO,YAAY,EAAO,MAAM,CAAC,EACrF,EAAY,EAAO,OAAO,CACrC,QAAS,EAAO,SAAS,EAAO,OAAO,EACvC,cAAe,EAAO,SAAS,EAAO,OAAO,EAC7C,MAAO,EAAO,SAAS,EAAO,OAAO,EACrC,OAAQ,EAAO,SAAS,EAAO,OAAO,MAAM,EAAO,uBAAuB,CAAC,EAAG,EAAO,oBAAoB,CAAC,CAAC,CAAC,EAC5G,WAAY,EAAO,SAAS,EAAO,MAAM,EACzC,OAAQ,EAAO,SAAS,CAAe,CACzC,CAAC,EAAE,SAAS,CACV,YAAa,2CACf,CAAC,EACK,EAAa,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EAC9C,EAAS,EAAO,OAAO,CAClC,WAAY,EAAO,SAAS,CAAU,EAAE,SAAS,CAC/C,YAAa,4BACf,CAAC,EACD,UAAW,EAAO,SAAS,EAAO,MAAM,CAAC,EAAY,EAAO,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CACtF,YAAa,mGACf,CAAC,CACH,CAAC,EAAE,SAAS,CACV,YAAa,sBACf,CAAC,EACY,EAAO,EAAO,OAAO,CAChC,QAAS,EAAO,SAAS,EAAO,MAAM,EACtC,MAAO,EAAO,SAAS,EAAO,MAAM,EACpC,SAAU,EAAO,SAAS,EAAW,gBAAgB,EACrD,OAAQ,EAAO,SAAS,EAAO,MAAM,CAAU,CAAC,EAChD,eAAgB,EAAO,SAAS,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,CAAC,EAC5E,eAAgB,EAAO,SAAS,CAAa,EAC7C,UAAW,EAAO,SAAS,CAAS,EACpC,OAAQ,EAAO,SAAS,CAAM,EAC9B,aAAc,EAAO,SAAS,CAAW,EAAE,SAAS,CAClD,YAAa,kBACf,CAAC,EACD,oBAAqB,EAAO,SAAS,CAAkB,EACvD,WAAY,EAAO,SAAS,CAAS,EACrC,MAAO,EAAO,SAAS,EAAO,OAAO,EAAE,SAAS,CAC9C,YAAa,iDACf,CAAC,CACH,CAAC,EACY,EAAiB,EAAO,OAAO,CAC1C,gBAAiB,EAAO,OAC1B,CAAC,EACM,SAAS,CAAO,CAAC,EAAO,EAAS,CACtC,IAAM,EAAW,IACZ,EAAM,QACX,EACA,GAAI,CAAC,EAAQ,iBAEX,GADA,EAAS,iBAAmB,OACxB,EAAS,aAAe,OAAW,CACrC,IAAM,EAAY,EAAW,aAAa,YAAY,EACtD,EAAS,WAAa,CAAC,SAAU,GAAI,OAAO,IAAc,SAAW,EAAU,MAAM,GAAG,EAAI,CAAC,CAAE,EAAE,OAAO,CAAC,EAAO,EAAO,IAAW,EAAO,QAAQ,CAAK,IAAM,CAAK,EAAE,KAAK,GAAG,GAG/K,MAAO,IACF,EACH,UAAW,CACT,QAAS,EAAM,WAAW,SAAW,GACrC,cAAe,EAAM,WAAW,eAAiB,GACjD,MAAO,EAAM,WAAW,OAAS,GACjC,OAAQ,EAAM,WAAW,QAAU,IACnC,WAAY,EAAM,WAAW,YAAc,mBAC3C,OAAQ,EAAM,WAAW,QAAU,CAAC,CACtC,EACA,SAAU,EAAoB,EAAW,gBAAgB,EAAW,MAAM,CAAQ,CAAC,EAAG,CACpF,WAAY,EAAW,WACvB,gBAAiB,EAAW,gBAAgB,CAC9C,CAAC,EACD,eAAgB,EAAM,gBAAkB,EACxC,MAAO,EAAM,OAAS,EACxB,EAEF,IAAM,EAAgB,EAAc,EAC7B,SAAS,CAAiB,CAAC,EAAO,CACvC,OAAO,EAAkB,EAAc,SAAU,IAC3C,MAAK,EAAG,CACV,OAAO,EAAM,WAEX,SAAQ,EAAG,CACb,OAAO,EAAM,SAEjB,CAAC,EAEI,SAAS,CAAY,EAAG,CAC7B,IAAM,EAAQ,EAAW,CAAa,EACtC,GAAI,CAAC,EAAO,MAAU,MAAM,8BAA8B,EAC1D,OAAO",
"debugId": "9AF78678E72790A564756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-env@3.972.41/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nexport const ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nexport const ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nexport const ENV_SESSION = \"AWS_SESSION_TOKEN\";\nexport const ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nexport const ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nexport const ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nexport const fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n"
],
"mappings": ";kJAAA,oBACA,gBACa,EAAU,oBACV,EAAa,wBACb,EAAc,oBACd,EAAiB,4BACjB,EAAuB,uBACvB,EAAiB,iBACjB,EAAU,CAAC,IAAS,SAAY,CACzC,GAAM,QAAQ,MAAM,4CAA4C,EAChE,IAAM,EAAc,QAAQ,IAAI,GAC1B,EAAkB,QAAQ,IAAI,GAC9B,EAAe,QAAQ,IAAI,GAC3B,EAAS,QAAQ,IAAI,GACrB,EAAkB,QAAQ,IAAI,GAC9B,EAAY,QAAQ,IAAI,GAC9B,GAAI,GAAe,EAAiB,CAChC,IAAM,EAAc,CAChB,cACA,qBACI,GAAgB,CAAE,cAAa,KAC/B,GAAU,CAAE,WAAY,IAAI,KAAK,CAAM,CAAE,KACzC,GAAmB,CAAE,iBAAgB,KACrC,GAAa,CAAE,WAAU,CACjC,EAEA,OADA,uBAAqB,EAAa,uBAAwB,GAAG,EACtD,EAEX,MAAM,IAAI,2BAAyB,mDAAoD,CAAE,OAAQ,GAAM,MAAO,CAAC",
"debugId": "FB88FE81B5D8459864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260602002951_lowly_union_jack.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260602002951_lowly_union_jack\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`permission\\` (\n \\`id\\` text PRIMARY KEY,\n \\`project_id\\` text NOT NULL,\n \\`action\\` text NOT NULL,\n \\`resource\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`fk_permission_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`permission_project_action_resource_idx\\` ON \\`permission\\` (\\`project_id\\`,\\`action\\`,\\`resource\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2aAUb,EACD,MAAO,EAAG,IACR,kHACF,EACD,EAEL",
"debugId": "5A0BE7A2B4E70D0164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/isexe@4.0.0/node_modules/isexe/dist/commonjs/index.min.js", "../../node_modules/.bun/which@6.0.1/node_modules/which/lib/index.js"],
"sourcesContent": [
"\"use strict\";var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var _=a(i=>{\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});i.sync=i.isexe=void 0;var M=require(\"node:fs\"),x=require(\"node:fs/promises\"),q=async(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return d(await(0,x.stat)(t),e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};i.isexe=q;var m=(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return d((0,M.statSync)(t),e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};i.sync=m;var d=(t,e)=>t.isFile()&&A(t,e),A=(t,e)=>{let r=e.uid??process.getuid?.(),s=e.groups??process.getgroups?.()??[],n=e.gid??process.getgid?.()??s[0];if(r===void 0||n===void 0)throw new Error(\"cannot get uid or gid\");let u=new Set([n,...s]),c=t.mode,S=t.uid,P=t.gid,f=parseInt(\"100\",8),l=parseInt(\"010\",8),j=parseInt(\"001\",8),C=f|l;return!!(c&j||c&l&&u.has(P)||c&f&&S===r||c&C&&r===0)}});var g=a(o=>{\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0});o.sync=o.isexe=void 0;var T=require(\"node:fs\"),I=require(\"node:fs/promises\"),D=require(\"node:path\"),F=async(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return y(await(0,I.stat)(t),t,e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};o.isexe=F;var L=(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return y((0,T.statSync)(t),t,e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};o.sync=L;var B=(t,e)=>{let{pathExt:r=process.env.PATHEXT||\"\"}=e,s=r.split(D.delimiter);if(s.indexOf(\"\")!==-1)return!0;for(let n of s){let u=n.toLowerCase(),c=t.substring(t.length-u.length).toLowerCase();if(u&&c===u)return!0}return!1},y=(t,e,r)=>t.isFile()&&B(e,r)});var p=a(h=>{\"use strict\";Object.defineProperty(h,\"__esModule\",{value:!0})});var v=exports&&exports.__createBinding||(Object.create?(function(t,e,r,s){s===void 0&&(s=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||(\"get\"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,n)}):(function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]})),G=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}):function(t,e){t.default=e}),w=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(s[s.length]=n);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),n=0;n<s.length;n++)s[n]!==\"default\"&&v(r,e,s[n]);return G(r,e),r}})(),X=exports&&exports.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&v(e,t,r)};Object.defineProperty(exports,\"__esModule\",{value:!0});exports.sync=exports.isexe=exports.posix=exports.win32=void 0;var E=w(_());exports.posix=E;var O=w(g());exports.win32=O;X(p(),exports);var H=process.env._ISEXE_TEST_PLATFORM_||process.platform,b=H===\"win32\"?O:E;exports.isexe=b.isexe;exports.sync=b.sync;\n//# sourceMappingURL=index.min.js.map\n",
"const { isexe, sync: isexeSync } = require('isexe')\nconst { join, delimiter, sep, posix } = require('path')\n\nconst isWindows = process.platform === 'win32'\n\n// used to check for slashed in commands passed in. always checks for the posix\n// seperator on all platforms, and checks for the current separator when not on\n// a posix platform. don't use the isWindows check for this since that is mocked\n// in tests but we still need the code to actually work when called. that is also\n// why it is ignored from coverage.\n/* istanbul ignore next */\nconst rSlash = new RegExp(`[${posix.sep}${sep === posix.sep ? '' : sep}]`.replace(/(\\\\)/g, '\\\\$1'))\nconst rRel = new RegExp(`^\\\\.${rSlash.source}`)\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, {\n path: optPath = process.env.PATH,\n pathExt: optPathExt = process.env.PATHEXT,\n delimiter: optDelimiter = delimiter,\n}) => {\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(rSlash) ? [''] : [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(optPath || /* istanbul ignore next: very unusual */ '').split(optDelimiter),\n ]\n\n if (isWindows) {\n const pathExtExe = optPathExt ||\n ['.EXE', '.CMD', '.BAT', '.COM'].join(optDelimiter)\n const pathExt = pathExtExe.split(optDelimiter).flatMap((item) => [item, item.toLowerCase()])\n if (cmd.includes('.') && pathExt[0] !== '') {\n pathExt.unshift('')\n }\n return { pathEnv, pathExt, pathExtExe }\n }\n\n return { pathEnv, pathExt: [''] }\n}\n\nconst getPathPart = (raw, cmd) => {\n const pathPart = /^\".*\"$/.test(raw) ? raw.slice(1, -1) : raw\n const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : ''\n return prefix + join(pathPart, cmd)\n}\n\nconst which = async (cmd, opt = {}) => {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const envPart of pathEnv) {\n const p = getPathPart(envPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n\nconst whichSync = (cmd, opt = {}) => {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const pathEnvPart of pathEnv) {\n const p = getPathPart(pathEnvPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = isexeSync(withExt, { pathExt: pathExtExe, ignoreErrors: true })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n"
],
"mappings": "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",
"debugId": "2E546104DF2F389E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "4A87A854299B8D8264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "DFC31ACD12C9721664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260501142318_next_venus.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260501142318_next_venus\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`agent\\` text;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`model\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,4BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,yCAA6C,EAC3D,MAAO,EAAG,IAAI,yCAA6C,EAC5D,EAEL",
"debugId": "13864559E9D4BFE464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260303231226_add_workspace_fields.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260303231226_add_workspace_fields\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`type\\` text NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`name\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`directory\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`extra\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` DROP COLUMN \\`config\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,0CAA8C,EAC5D,MAAO,EAAG,IAAI,+CAAmD,EACjE,MAAO,EAAG,IAAI,2CAA+C,EAC7D,MAAO,EAAG,IAAI,+CAAmD,EAClE,EAEL",
"debugId": "17B6049BB3E9A82964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260228203230_blue_harpoon.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260228203230_blue_harpoon\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`account\\` (\n \\`id\\` text PRIMARY KEY,\n \\`email\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`access_token\\` text NOT NULL,\n \\`refresh_token\\` text NOT NULL,\n \\`token_expiry\\` integer,\n \\`selected_org_id\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`account_state\\` (\n \\`id\\` integer PRIMARY KEY NOT NULL,\n \\`active_account_id\\` text,\n FOREIGN KEY (\\`active_account_id\\`) REFERENCES \\`account\\`(\\`id\\`) ON UPDATE no action ON DELETE set null\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4YAYb,EACD,MAAO,EAAG,IAAI,gQAMb,EACF,EAEL",
"debugId": "5606525FD35AC38C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../llm/src/protocols/utils/openai-options.ts", "../llm/src/protocols/utils/lifecycle.ts", "../llm/src/protocols/utils/gemini-tool-schema.ts", "../llm/src/protocols/utils/tool-schema.ts", "../llm/src/protocols/utils/tool-stream.ts", "../llm/src/protocols/openai-chat.ts"],
"sourcesContent": [
"import { Schema } from \"effect\"\nimport type { LLMRequest, TextVerbosity as TextVerbosityValue } from \"../../schema\"\nimport { ReasoningEfforts, TextVerbosity } from \"../../schema\"\n\nexport const OpenAIReasoningEfforts = ReasoningEfforts\nexport type OpenAIReasoningEffort = string\n\n// Mirrors OpenAI's `ResponseIncludable` union from the official SDK. Keep this\n// in lockstep with `openai-node/src/resources/responses/responses.ts`.\nexport const OpenAIResponseIncludables = [\n \"file_search_call.results\",\n \"web_search_call.results\",\n \"web_search_call.action.sources\",\n \"message.input_image.image_url\",\n \"computer_call_output.output.image_url\",\n \"code_interpreter_call.outputs\",\n \"reasoning.encrypted_content\",\n \"message.output_text.logprobs\",\n] as const\nexport type OpenAIResponseIncludable = (typeof OpenAIResponseIncludables)[number]\nexport const OpenAIServiceTiers = [\"auto\", \"default\", \"flex\", \"priority\"] as const\nexport type OpenAIServiceTier = (typeof OpenAIServiceTiers)[number]\n\nconst TEXT_VERBOSITY = new Set<string>([\"low\", \"medium\", \"high\"])\nconst INCLUDABLES = new Set<string>(OpenAIResponseIncludables)\nconst SERVICE_TIERS = new Set<string>(OpenAIServiceTiers)\n\nexport const OpenAIReasoningEffort = Schema.String\nexport const OpenAITextVerbosity = TextVerbosity\nexport const OpenAIResponseIncludable = Schema.Literals(OpenAIResponseIncludables)\nexport const OpenAIServiceTier = Schema.Literals(OpenAIServiceTiers)\n\nexport const isReasoningEffort = (effort: unknown): effort is OpenAIReasoningEffort => typeof effort === \"string\"\n\nconst isTextVerbosity = (value: unknown): value is TextVerbosityValue =>\n typeof value === \"string\" && TEXT_VERBOSITY.has(value)\n\nconst options = (request: LLMRequest) => request.providerOptions?.openai\n\nexport const store = (request: LLMRequest): boolean | undefined => {\n const value = options(request)?.store\n return typeof value === \"boolean\" ? value : undefined\n}\n\nexport const reasoningEffort = (request: LLMRequest): string | undefined => {\n const value = options(request)?.reasoningEffort\n return typeof value === \"string\" ? value : undefined\n}\n\nexport const reasoningSummary = (request: LLMRequest): \"auto\" | undefined =>\n options(request)?.reasoningSummary === \"auto\" ? \"auto\" : undefined\n\n// Resolve the OpenAI Responses `include` field. Filters out unknown\n// includable values defensively so a typo in upstream config drops the\n// invalid entry instead of poisoning the wire body. An empty array (either\n// passed directly or produced by filtering) is treated as \"no include\" and\n// returns undefined so the request body omits the field entirely.\nexport const include = (request: LLMRequest): ReadonlyArray<OpenAIResponseIncludable> | undefined => {\n const value = options(request)?.include\n if (!Array.isArray(value)) return undefined\n const filtered = value.filter((entry): entry is OpenAIResponseIncludable => INCLUDABLES.has(entry))\n return filtered.length > 0 ? filtered : undefined\n}\n\nexport const promptCacheKey = (request: LLMRequest) => {\n const value = options(request)?.promptCacheKey\n return typeof value === \"string\" ? value : undefined\n}\n\nexport const textVerbosity = (request: LLMRequest) => {\n const value = options(request)?.textVerbosity\n return isTextVerbosity(value) ? value : undefined\n}\n\nexport const serviceTier = (request: LLMRequest) => {\n const value = options(request)?.serviceTier\n return typeof value === \"string\" && SERVICE_TIERS.has(value) ? (value as OpenAIServiceTier) : undefined\n}\n\nexport const instructions = (request: LLMRequest) => {\n const value = options(request)?.instructions\n return typeof value === \"string\" ? value : undefined\n}\n\nexport * as OpenAIOptions from \"./openai-options\"\n",
"import { LLMEvent, type FinishReason, type ProviderMetadata, type Usage } from \"../../schema\"\n\nexport interface State {\n readonly stepStarted: boolean\n readonly text: ReadonlySet<string>\n readonly reasoning: ReadonlySet<string>\n}\n\nexport const initial = (): State => ({ stepStarted: false, text: new Set(), reasoning: new Set() })\n\nexport const stepStart = (state: State, events: LLMEvent[]): State => {\n if (state.stepStarted) return state\n events.push(LLMEvent.stepStart({ index: 0 }))\n return { ...state, stepStarted: true }\n}\n\nexport const textDelta = (state: State, events: LLMEvent[], id: string, text: string): State => {\n const stepped = stepStart(state, events)\n if (stepped.text.has(id)) {\n events.push(LLMEvent.textDelta({ id, text }))\n return stepped\n }\n events.push(LLMEvent.textStart({ id }), LLMEvent.textDelta({ id, text }))\n return { ...stepped, text: new Set([...stepped.text, id]) }\n}\n\nexport const reasoningStart = (\n state: State,\n events: LLMEvent[],\n id: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n if (state.reasoning.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.reasoningStart({ id, providerMetadata }))\n return { ...stepped, reasoning: new Set([...stepped.reasoning, id]) }\n}\n\nexport const reasoningDelta = (\n state: State,\n events: LLMEvent[],\n id: string,\n text: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n const started = reasoningStart(state, events, id, providerMetadata)\n events.push(LLMEvent.reasoningDelta({ id, text }))\n return started\n}\n\nexport const reasoningEnd = (\n state: State,\n events: LLMEvent[],\n id: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n if (!state.reasoning.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.reasoningEnd({ id, providerMetadata }))\n const reasoning = new Set(stepped.reasoning)\n reasoning.delete(id)\n return { ...stepped, reasoning }\n}\n\nexport const textEnd = (state: State, events: LLMEvent[], id: string, providerMetadata?: ProviderMetadata): State => {\n if (!state.text.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.textEnd({ id, providerMetadata }))\n const text = new Set(stepped.text)\n text.delete(id)\n return { ...stepped, text }\n}\n\nconst closeOpenBlocks = (state: State, events: LLMEvent[]): State => {\n for (const id of state.reasoning) events.push(LLMEvent.reasoningEnd({ id }))\n for (const id of state.text) events.push(LLMEvent.textEnd({ id }))\n return { ...state, text: new Set(), reasoning: new Set() }\n}\n\nexport const finish = (\n state: State,\n events: LLMEvent[],\n input: {\n readonly reason: FinishReason\n readonly usage?: Usage\n readonly providerMetadata?: ProviderMetadata\n },\n): State => {\n const stepped = closeOpenBlocks(stepStart(state, events), events)\n events.push(\n LLMEvent.stepFinish({\n index: 0,\n reason: input.reason,\n usage: input.usage,\n providerMetadata: input.providerMetadata,\n }),\n LLMEvent.finish(input),\n )\n return { ...stepped, stepStarted: false }\n}\n\nexport * as Lifecycle from \"./lifecycle\"\n",
"import { isRecord } from \"../../utils/record\"\n\n// Gemini accepts a JSON Schema-like dialect for tool parameters, but rejects a\n// handful of common JSON Schema shapes. Keep this projection isolated so the\n// Gemini protocol file still reads like the other protocol modules.\nconst SCHEMA_INTENT_KEYS = [\n \"type\",\n \"properties\",\n \"items\",\n \"prefixItems\",\n \"enum\",\n \"const\",\n \"$ref\",\n \"additionalProperties\",\n \"patternProperties\",\n \"required\",\n \"not\",\n \"if\",\n \"then\",\n \"else\",\n]\n\nconst hasCombiner = (schema: unknown) =>\n isRecord(schema) && (Array.isArray(schema.anyOf) || Array.isArray(schema.oneOf) || Array.isArray(schema.allOf))\n\nconst hasSchemaIntent = (schema: unknown) =>\n isRecord(schema) && (hasCombiner(schema) || SCHEMA_INTENT_KEYS.some((key) => key in schema))\n\nconst sanitizeNode = (schema: unknown): unknown => {\n if (!isRecord(schema)) return Array.isArray(schema) ? schema.map(sanitizeNode) : schema\n\n const result: Record<string, unknown> = Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [\n key,\n key === \"enum\" && Array.isArray(value) ? value.map(String) : sanitizeNode(value),\n ]),\n )\n\n if (Array.isArray(result.enum) && (result.type === \"integer\" || result.type === \"number\")) result.type = \"string\"\n\n const properties = result.properties\n if (result.type === \"object\" && isRecord(properties) && Array.isArray(result.required)) {\n result.required = result.required.filter((field) => typeof field === \"string\" && field in properties)\n }\n\n if (result.type === \"array\" && !hasCombiner(result)) {\n result.items = result.items ?? {}\n if (isRecord(result.items) && !hasSchemaIntent(result.items)) result.items = { ...result.items, type: \"string\" }\n }\n\n if (typeof result.type === \"string\" && result.type !== \"object\" && !hasCombiner(result)) {\n delete result.properties\n delete result.required\n }\n\n return result\n}\n\nconst emptyObjectSchema = (schema: Record<string, unknown>) =>\n schema.type === \"object\" &&\n (!isRecord(schema.properties) || Object.keys(schema.properties).length === 0) &&\n !schema.additionalProperties\n\nconst projectNode = (schema: unknown): Record<string, unknown> | undefined => {\n if (!isRecord(schema)) return undefined\n if (emptyObjectSchema(schema)) return undefined\n return Object.fromEntries(\n [\n [\"description\", schema.description],\n [\"required\", schema.required],\n [\"format\", schema.format],\n [\"type\", Array.isArray(schema.type) ? schema.type.filter((type) => type !== \"null\")[0] : schema.type],\n [\"nullable\", Array.isArray(schema.type) && schema.type.includes(\"null\") ? true : undefined],\n [\"enum\", schema.const !== undefined ? [schema.const] : schema.enum],\n [\n \"properties\",\n isRecord(schema.properties)\n ? Object.fromEntries(Object.entries(schema.properties).map(([key, value]) => [key, projectNode(value)]))\n : undefined,\n ],\n [\n \"items\",\n Array.isArray(schema.items)\n ? schema.items.map(projectNode)\n : schema.items === undefined\n ? undefined\n : projectNode(schema.items),\n ],\n [\"allOf\", Array.isArray(schema.allOf) ? schema.allOf.map(projectNode) : undefined],\n [\"anyOf\", Array.isArray(schema.anyOf) ? schema.anyOf.map(projectNode) : undefined],\n [\"oneOf\", Array.isArray(schema.oneOf) ? schema.oneOf.map(projectNode) : undefined],\n [\"minLength\", schema.minLength],\n ].filter((entry) => entry[1] !== undefined),\n )\n}\n\nexport const convert = (schema: unknown) => projectNode(sanitizeNode(schema))\n\nexport * as GeminiToolSchema from \"./gemini-tool-schema\"\n",
"import type { JsonSchema, ModelToolSchemaCompatibility } from \"../../schema\"\nimport { isRecord } from \"../../utils/record\"\nimport { GeminiToolSchema } from \"./gemini-tool-schema\"\n\nconst removeNullSchemas = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(removeNullSchemas)\n if (!isRecord(value)) return value\n const fields = Object.fromEntries(\n Object.entries(value)\n .filter(([key]) => key !== \"anyOf\")\n .map(([key, field]) => [key, removeNullSchemas(field)]),\n )\n if (!Array.isArray(value.anyOf)) return fields\n const variants = value.anyOf.filter((variant) => !isRecord(variant) || variant.type !== \"null\").map(removeNullSchemas)\n if (variants.length === 1 && isRecord(variants[0])) return { ...fields, ...variants[0] }\n return { ...fields, anyOf: variants }\n}\n\nconst tupleItemsSchema = (items: ReadonlyArray<unknown>) => {\n const projected = items.map(moonshotNode)\n if (projected.length === 0) return {}\n if (projected.length === 1) return projected[0]\n return { anyOf: projected }\n}\n\nconst moonshotNode = (schema: unknown): unknown => {\n if (Array.isArray(schema)) return schema.map(moonshotNode)\n if (!isRecord(schema)) return schema\n if (typeof schema.$ref === \"string\") return { $ref: schema.$ref }\n return Object.fromEntries(\n Object.entries(schema).flatMap(([key, value]) => {\n if (key === \"items\" && Array.isArray(value)) return [[key, tupleItemsSchema(value)]]\n if (key === \"prefixItems\") {\n if (\"items\" in schema) return []\n return [[\"items\", tupleItemsSchema(Array.isArray(value) ? value : [])]]\n }\n if (key === \"unevaluatedItems\") return []\n return [[key, moonshotNode(value)]]\n }),\n )\n}\n\nconst moonshot = (schema: JsonSchema): JsonSchema => {\n const projected = moonshotNode(schema)\n return isRecord(projected) ? projected : {}\n}\n\nconst openAI = (schema: JsonSchema): JsonSchema => {\n const variants = Array.isArray(schema.anyOf) ? schema.anyOf.filter(isRecord) : []\n const flattened =\n variants.length === 0\n ? { ...schema, type: \"object\" }\n : {\n ...Object.fromEntries(Object.entries(schema).filter(([key]) => key !== \"anyOf\")),\n type: \"object\",\n properties: variants.reduce(\n (properties, variant) => ({ ...(isRecord(variant.properties) ? variant.properties : {}), ...properties }),\n {},\n ),\n additionalProperties: false,\n }\n const normalized = removeNullSchemas(flattened)\n return isRecord(normalized) ? normalized : { type: \"object\" }\n}\n\nconst gemini = (schema: JsonSchema): JsonSchema => GeminiToolSchema.convert(schema) ?? {}\n\nconst modelCompatibility = (\n schema: JsonSchema,\n compatibility: ModelToolSchemaCompatibility | undefined,\n): JsonSchema => {\n if (compatibility === undefined) return schema\n switch (compatibility) {\n case \"gemini\":\n return gemini(schema)\n case \"moonshot\":\n return moonshot(schema)\n }\n}\n\nexport const ToolSchemaProjection = {\n gemini,\n modelCompatibility,\n moonshot,\n openAI,\n} as const\n",
"import { Effect } from \"effect\"\nimport { LLMError, LLMEvent, type ProviderMetadata, type ToolCall } from \"../../schema\"\nimport { eventError, parseToolInput, type ToolAccumulator } from \"../shared\"\n\ntype StreamKey = string | number\n\n/**\n * One pending streamed tool call. Providers emit the tool identity and JSON\n * argument text across separate chunks; `input` is the raw JSON string collected\n * so far, not the parsed object.\n */\nexport interface PendingTool extends ToolAccumulator {\n readonly providerExecuted?: boolean\n readonly providerMetadata?: ProviderMetadata\n}\n\n/**\n * Sparse parser state keyed by the provider's stream-local tool identifier.\n *\n * This key is not the final tool-call id (`call_...`). It is the id/index the\n * provider uses while streaming a partial call: OpenAI Chat / Anthropic /\n * Bedrock use numeric content indexes, while OpenAI Responses uses string\n * `item_id`s. The generic keeps each protocol internally consistent.\n */\nexport type State<K extends StreamKey> = Partial<Record<K, PendingTool>>\n\n/**\n * Result of adding argument text to one pending tool call. It returns both the\n * next `tools` state and the updated `tool` because parsers often need the\n * current id/name immediately. `events` contains lifecycle and delta events\n * produced by the append; metadata-only deltas update identity without output.\n */\nexport interface AppendOutcome<K extends StreamKey> {\n readonly tools: State<K>\n readonly tool: PendingTool\n readonly events: ReadonlyArray<LLMEvent>\n}\n\n/** Create empty accumulator state for one provider stream. */\nexport const empty = <K extends StreamKey>(): State<K> => ({})\n\nconst withTool = <K extends StreamKey>(tools: State<K>, key: K, tool: PendingTool): State<K> => {\n return { ...tools, [key]: tool }\n}\n\nconst withoutTool = <K extends StreamKey>(tools: State<K>, key: K): State<K> => {\n const next = { ...tools }\n delete next[key]\n return next\n}\n\nconst inputStart = (tool: PendingTool) =>\n LLMEvent.toolInputStart({\n id: tool.id,\n name: tool.name,\n providerMetadata: tool.providerMetadata,\n })\n\nconst inputDelta = (tool: PendingTool, text: string) =>\n LLMEvent.toolInputDelta({\n id: tool.id,\n name: tool.name,\n text,\n })\n\nconst toolCall = (route: string, tool: PendingTool, inputOverride?: string) =>\n parseToolInput(route, tool.name, inputOverride ?? tool.input).pipe(\n Effect.map(\n (input): ToolCall =>\n LLMEvent.toolCall({\n id: tool.id,\n name: tool.name,\n input,\n providerExecuted: tool.providerExecuted ? true : undefined,\n providerMetadata: tool.providerMetadata,\n }),\n ),\n )\n\n/** Store the updated tool and produce the optional public delta event. */\nconst appendTool = <K extends StreamKey>(\n tools: State<K>,\n key: K,\n tool: PendingTool,\n text: string,\n): AppendOutcome<K> => {\n const events: LLMEvent[] = []\n if (!tools[key]) events.push(inputStart(tool))\n if (text.length > 0) events.push(inputDelta(tool, text))\n return {\n tools: withTool(tools, key, tool),\n tool,\n events,\n }\n}\n\nexport const isError = <K extends StreamKey>(result: AppendOutcome<K> | LLMError): result is LLMError =>\n result instanceof LLMError\n\n/**\n * Register a tool call whose start event arrived before any argument deltas.\n * Used by Anthropic `content_block_start`, Bedrock `contentBlockStart`, and\n * OpenAI Responses `response.output_item.added`.\n */\nexport const start = <K extends StreamKey>(\n tools: State<K>,\n key: K,\n tool: Omit<PendingTool, \"input\"> & { readonly input?: string },\n) => withTool(tools, key, { ...tool, input: tool.input ?? \"\" })\n\n/**\n * Append a streamed argument delta, starting the tool if this provider encodes\n * identity on the first delta instead of a separate start event. OpenAI Chat has\n * this shape: `tool_calls[].index` is the stream key, and `id` / `name` may only\n * appear on the first delta for that index.\n */\nexport const appendOrStart = <K extends StreamKey>(\n route: string,\n tools: State<K>,\n key: K,\n delta: { readonly id?: string; readonly name?: string; readonly text: string },\n missingToolMessage: string,\n): AppendOutcome<K> | LLMError => {\n const current = tools[key]\n const id = delta.id ?? current?.id\n const name = delta.name ?? current?.name\n if (!id || !name) return eventError(route, missingToolMessage)\n\n const tool = {\n id,\n name,\n input: `${current?.input ?? \"\"}${delta.text}`,\n providerExecuted: current?.providerExecuted,\n providerMetadata: current?.providerMetadata,\n }\n if (current && delta.text.length === 0 && current.id === id && current.name === name)\n return { tools, tool: current, events: [] }\n return appendTool(tools, key, tool, delta.text)\n}\n\n/**\n * Append argument text to a tool that must already have been started. This keeps\n * protocols honest when their stream grammar promises a start event before any\n * argument delta.\n */\nexport const appendExisting = <K extends StreamKey>(\n route: string,\n tools: State<K>,\n key: K,\n text: string,\n missingToolMessage: string,\n): AppendOutcome<K> | LLMError => {\n const current = tools[key]\n if (!current) return eventError(route, missingToolMessage)\n if (text.length === 0) return { tools, tool: current, events: [] }\n return appendTool(tools, key, { ...current, input: `${current.input}${text}` }, text)\n}\n\n/**\n * Finalize one pending tool call: parse the accumulated raw JSON, remove it\n * from state, and return the optional public `tool-call` event. Missing keys are\n * a no-op because some providers emit stop events for non-tool content blocks.\n */\nexport const finish = <K extends StreamKey>(route: string, tools: State<K>, key: K) =>\n Effect.gen(function* () {\n const tool = tools[key]\n if (!tool) return { tools }\n return {\n tools: withoutTool(tools, key),\n events: [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n yield* toolCall(route, tool),\n ],\n }\n })\n\n/**\n * Finalize one pending tool call with an authoritative final input string.\n * OpenAI Responses can send accumulated deltas and then repeat the completed\n * arguments on `response.output_item.done`; the final value wins.\n */\nexport const finishWithInput = <K extends StreamKey>(route: string, tools: State<K>, key: K, input: string) =>\n Effect.gen(function* () {\n const tool = tools[key]\n if (!tool) return { tools }\n return {\n tools: withoutTool(tools, key),\n events: [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n yield* toolCall(route, tool, input),\n ],\n }\n })\n\n/**\n * Finalize every pending tool call at once. OpenAI Chat has this shape: it does\n * not emit per-tool stop events, so all accumulated calls finish when the choice\n * receives a terminal `finish_reason`.\n */\nexport const finishAll = <K extends StreamKey>(route: string, tools: State<K>) =>\n Effect.gen(function* () {\n const pending = Object.values<PendingTool | undefined>(tools).filter(\n (tool): tool is PendingTool => tool !== undefined,\n )\n return {\n tools: empty<K>(),\n events: yield* Effect.forEach(pending, (tool) =>\n toolCall(route, tool).pipe(\n Effect.map((call) => [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n call,\n ]),\n ),\n ).pipe(Effect.map((events) => events.flat())),\n }\n })\n\nexport * as ToolStream from \"./tool-stream\"\n",
"import { Effect, Schema } from \"effect\"\nimport { Route } from \"../route/client\"\nimport { Auth } from \"../route/auth\"\nimport { Endpoint } from \"../route/endpoint\"\nimport { HttpTransport } from \"../route/transport\"\nimport { Protocol } from \"../route/protocol\"\nimport {\n LLMEvent,\n Usage,\n type FinishReason,\n type JsonSchema,\n type LLMRequest,\n type MediaPart,\n type ReasoningPart,\n type TextPart,\n type ToolCallPart,\n type ToolDefinition,\n type ToolContent,\n} from \"../schema\"\nimport { isRecord, JsonObject, optionalArray, optionalNull, ProviderShared } from \"./shared\"\nimport { OpenAIOptions } from \"./utils/openai-options\"\nimport { Lifecycle } from \"./utils/lifecycle\"\nimport { ToolSchemaProjection } from \"./utils/tool-schema\"\nimport { ToolStream } from \"./utils/tool-stream\"\n\nconst ADAPTER = \"openai-chat\"\nconst IMAGE_MIMES = new Set<string>(ProviderShared.IMAGE_MIMES)\nexport const DEFAULT_BASE_URL = \"https://api.openai.com/v1\"\nexport const PATH = \"/chat/completions\"\n\n// =============================================================================\n// Request Body Schema\n// =============================================================================\n// The body schema is the provider-native JSON body. `fromRequest` below builds\n// this shape from the common `LLMRequest`, then `Route.make` validates and\n// JSON-encodes it before transport.\nconst OpenAIChatFunction = Schema.Struct({\n name: Schema.String,\n description: Schema.String,\n parameters: JsonObject,\n})\n\nconst OpenAIChatTool = Schema.Struct({\n type: Schema.tag(\"function\"),\n function: OpenAIChatFunction,\n})\ntype OpenAIChatTool = Schema.Schema.Type<typeof OpenAIChatTool>\n\nconst OpenAIChatAssistantToolCall = Schema.Struct({\n id: Schema.String,\n type: Schema.tag(\"function\"),\n function: Schema.Struct({\n name: Schema.String,\n arguments: Schema.String,\n }),\n})\ntype OpenAIChatAssistantToolCall = Schema.Schema.Type<typeof OpenAIChatAssistantToolCall>\n\nconst OpenAIChatUserContent = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"text\"), text: Schema.String }),\n Schema.Struct({\n type: Schema.Literal(\"image_url\"),\n image_url: Schema.Struct({ url: Schema.String }),\n }),\n])\n\nconst OpenAIChatMessage = Schema.Union([\n Schema.Struct({ role: Schema.Literal(\"system\"), content: Schema.String }),\n Schema.Struct({\n role: Schema.Literal(\"user\"),\n content: Schema.Union([Schema.String, Schema.Array(OpenAIChatUserContent)]),\n }),\n Schema.Struct({\n role: Schema.Literal(\"assistant\"),\n content: Schema.NullOr(Schema.String),\n tool_calls: optionalArray(OpenAIChatAssistantToolCall),\n reasoning_content: Schema.optional(Schema.String),\n }),\n Schema.Struct({ role: Schema.Literal(\"tool\"), tool_call_id: Schema.String, content: Schema.String }),\n]).pipe(Schema.toTaggedUnion(\"role\"))\ntype OpenAIChatMessage = Schema.Schema.Type<typeof OpenAIChatMessage>\n\nconst OpenAIChatToolChoice = Schema.Union([\n Schema.Literals([\"auto\", \"none\", \"required\"]),\n Schema.Struct({\n type: Schema.tag(\"function\"),\n function: Schema.Struct({ name: Schema.String }),\n }),\n])\n\nexport const bodyFields = {\n model: Schema.String,\n messages: Schema.Array(OpenAIChatMessage),\n tools: optionalArray(OpenAIChatTool),\n tool_choice: Schema.optional(OpenAIChatToolChoice),\n stream: Schema.Literal(true),\n stream_options: Schema.optional(Schema.Struct({ include_usage: Schema.Boolean })),\n store: Schema.optional(Schema.Boolean),\n reasoning_effort: Schema.optional(OpenAIOptions.OpenAIReasoningEffort),\n max_tokens: Schema.optional(Schema.Number),\n temperature: Schema.optional(Schema.Number),\n top_p: Schema.optional(Schema.Number),\n frequency_penalty: Schema.optional(Schema.Number),\n presence_penalty: Schema.optional(Schema.Number),\n seed: Schema.optional(Schema.Number),\n stop: optionalArray(Schema.String),\n}\nconst OpenAIChatBody = Schema.Struct(bodyFields)\nexport type OpenAIChatBody = Schema.Schema.Type<typeof OpenAIChatBody>\n\n// =============================================================================\n// Streaming Event Schema\n// =============================================================================\n// The event schema is one decoded SSE `data:` payload. `Framing.sse` splits the\n// byte stream into strings, then `Protocol.jsonEvent` decodes each string into\n// this provider-native event shape.\nconst OpenAIChatUsage = Schema.Struct({\n prompt_tokens: Schema.optional(Schema.Number),\n completion_tokens: Schema.optional(Schema.Number),\n total_tokens: Schema.optional(Schema.Number),\n prompt_tokens_details: optionalNull(\n Schema.Struct({\n cached_tokens: Schema.optional(Schema.Number),\n }),\n ),\n completion_tokens_details: optionalNull(\n Schema.Struct({\n reasoning_tokens: Schema.optional(Schema.Number),\n }),\n ),\n})\n\nconst OpenAIChatToolCallDeltaFunction = Schema.Struct({\n name: optionalNull(Schema.String),\n arguments: optionalNull(Schema.String),\n})\n\nconst OpenAIChatToolCallDelta = Schema.Struct({\n index: Schema.Number,\n id: optionalNull(Schema.String),\n function: optionalNull(OpenAIChatToolCallDeltaFunction),\n})\ntype OpenAIChatToolCallDelta = Schema.Schema.Type<typeof OpenAIChatToolCallDelta>\n\nconst OpenAIChatDelta = Schema.Struct({\n content: optionalNull(Schema.String),\n reasoning_content: optionalNull(Schema.String),\n tool_calls: optionalNull(Schema.Array(OpenAIChatToolCallDelta)),\n})\n\nconst OpenAIChatChoice = Schema.Struct({\n delta: optionalNull(OpenAIChatDelta),\n finish_reason: optionalNull(Schema.String),\n})\n\nexport const OpenAIChatEvent = Schema.Struct({\n choices: Schema.Array(OpenAIChatChoice),\n usage: optionalNull(OpenAIChatUsage),\n})\nexport type OpenAIChatEvent = Schema.Schema.Type<typeof OpenAIChatEvent>\ntype OpenAIChatRequestMessage = LLMRequest[\"messages\"][number]\n\ninterface ParserState {\n readonly tools: ToolStream.State<number>\n readonly toolCallEvents: ReadonlyArray<LLMEvent>\n readonly usage?: Usage\n readonly finishReason?: FinishReason\n readonly lifecycle: Lifecycle.State\n}\n\n// =============================================================================\n// Request Lowering\n// =============================================================================\n// Lowering is the only place that knows how common LLM messages map onto the\n// OpenAI Chat wire format. Keep provider quirks here instead of leaking native\n// fields into `LLMRequest`.\nconst lowerTool = (tool: ToolDefinition, inputSchema: JsonSchema): OpenAIChatTool => ({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: ToolSchemaProjection.openAI(inputSchema),\n },\n})\n\nconst lowerToolChoice = (toolChoice: NonNullable<LLMRequest[\"toolChoice\"]>) =>\n ProviderShared.matchToolChoice(\"OpenAI Chat\", toolChoice, {\n auto: () => \"auto\" as const,\n none: () => \"none\" as const,\n required: () => \"required\" as const,\n tool: (name) => ({ type: \"function\" as const, function: { name } }),\n })\n\nconst lowerToolCall = (part: ToolCallPart): OpenAIChatAssistantToolCall => ({\n id: part.id,\n type: \"function\",\n function: {\n name: part.name,\n arguments: ProviderShared.encodeJson(part.input),\n },\n})\n\nconst lowerMedia = Effect.fn(\"OpenAIChat.lowerMedia\")(function* (part: MediaPart) {\n const media = yield* ProviderShared.validateMedia(\"OpenAI Chat\", part, IMAGE_MIMES)\n return { type: \"image_url\" as const, image_url: { url: media.dataUrl } }\n})\n\nconst openAICompatibleReasoningContent = (native: unknown) =>\n isRecord(native) && typeof native.reasoning_content === \"string\" ? native.reasoning_content : undefined\n\nconst lowerUserMessage = Effect.fn(\"OpenAIChat.lowerUserMessage\")(function* (message: OpenAIChatRequestMessage) {\n const content: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n for (const part of message.content) {\n if (part.type === \"text\") {\n content.push({ type: \"text\", text: part.text })\n continue\n }\n if (part.type === \"media\") {\n content.push(yield* lowerMedia(part))\n continue\n }\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"user\", [\"text\", \"media\"])\n }\n if (content.every((part) => part.type === \"text\"))\n return { role: \"user\" as const, content: content.map((part) => part.text).join(\"\") }\n return { role: \"user\" as const, content }\n})\n\nconst lowerAssistantMessage = Effect.fn(\"OpenAIChat.lowerAssistantMessage\")(function* (\n message: OpenAIChatRequestMessage,\n) {\n const content: TextPart[] = []\n const reasoning: ReasoningPart[] = []\n const toolCalls: OpenAIChatAssistantToolCall[] = []\n for (const part of message.content) {\n if (!ProviderShared.supportsContent(part, [\"text\", \"reasoning\", \"tool-call\"]))\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"assistant\", [\"text\", \"reasoning\", \"tool-call\"])\n if (part.type === \"text\") {\n content.push(part)\n continue\n }\n if (part.type === \"reasoning\") {\n reasoning.push(part)\n continue\n }\n if (part.type === \"tool-call\") {\n toolCalls.push(lowerToolCall(part))\n continue\n }\n }\n return {\n role: \"assistant\" as const,\n content: content.length === 0 ? null : ProviderShared.joinText(content),\n tool_calls: toolCalls.length === 0 ? undefined : toolCalls,\n reasoning_content:\n reasoning.length > 0\n ? reasoning.map((part) => part.text).join(\"\")\n : openAICompatibleReasoningContent(message.native?.openaiCompatible),\n }\n})\n\nconst lowerToolMessages = Effect.fn(\"OpenAIChat.lowerToolMessages\")(function* (message: OpenAIChatRequestMessage) {\n const messages: OpenAIChatMessage[] = []\n const images: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n for (const part of message.content) {\n if (!ProviderShared.supportsContent(part, [\"tool-result\"]))\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"tool\", [\"tool-result\"])\n if (part.result.type !== \"content\") {\n messages.push({ role: \"tool\", tool_call_id: part.id, content: ProviderShared.toolResultText(part) })\n continue\n }\n const content: ReadonlyArray<ToolContent> = part.result.value\n const text = content.filter((item) => item.type === \"text\").map((item) => item.text)\n messages.push({ role: \"tool\", tool_call_id: part.id, content: text.join(\"\\n\") })\n const files = content.filter((item) => item.type === \"file\")\n images.push(\n ...(yield* Effect.forEach(files, (item) =>\n lowerMedia({ type: \"media\", mediaType: item.mime, data: item.uri, filename: item.name }),\n )),\n )\n }\n return { messages, images }\n})\n\nconst lowerMessage = Effect.fn(\"OpenAIChat.lowerMessage\")(function* (message: OpenAIChatRequestMessage) {\n if (message.role === \"user\") return [yield* lowerUserMessage(message)]\n if (message.role === \"assistant\") return [yield* lowerAssistantMessage(message)]\n return (yield* lowerToolMessages(message)).messages\n})\n\nconst lowerMessages = Effect.fn(\"OpenAIChat.lowerMessages\")(function* (request: LLMRequest) {\n const system: OpenAIChatMessage[] =\n request.system.length === 0 ? [] : [{ role: \"system\", content: ProviderShared.joinText(request.system) }]\n const messages = [...system]\n const pendingImages: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n const flushImages = () => {\n if (pendingImages.length === 0) return\n messages.push({ role: \"user\", content: pendingImages.splice(0) })\n }\n for (const message of request.messages) {\n if (message.role === \"system\") {\n const part = yield* ProviderShared.wrappedSystemUpdate(\"OpenAI Chat\", message)\n if (pendingImages.length > 0) {\n messages.push({ role: \"user\", content: [...pendingImages.splice(0), { type: \"text\", text: part.text }] })\n continue\n }\n const previous = messages.at(-1)\n if (previous?.role === \"user\" && typeof previous.content === \"string\")\n messages[messages.length - 1] = { role: \"user\", content: `${previous.content}\\n${part.text}` }\n else if (previous?.role === \"user\" && Array.isArray(previous.content))\n messages[messages.length - 1] = {\n role: \"user\",\n content: [...previous.content, { type: \"text\", text: part.text }],\n }\n else messages.push({ role: \"user\", content: part.text })\n continue\n }\n if (message.role === \"tool\") {\n const lowered = yield* lowerToolMessages(message)\n messages.push(...lowered.messages)\n pendingImages.push(...lowered.images)\n continue\n }\n flushImages()\n messages.push(...(yield* lowerMessage(message)))\n }\n flushImages()\n return messages\n})\n\nconst lowerOptions = Effect.fn(\"OpenAIChat.lowerOptions\")(function* (request: LLMRequest) {\n const store = OpenAIOptions.store(request)\n const reasoningEffort = OpenAIOptions.reasoningEffort(request)\n return {\n ...(store !== undefined ? { store } : {}),\n ...(reasoningEffort ? { reasoning_effort: reasoningEffort } : {}),\n }\n})\n\nconst fromRequest = Effect.fn(\"OpenAIChat.fromRequest\")(function* (request: LLMRequest) {\n // `fromRequest` returns the provider body only. Endpoint, auth, framing,\n // validation, and HTTP execution are composed by `Route.make`.\n const generation = request.generation\n const toolSchemaCompatibility = request.model.compatibility?.toolSchema\n return {\n model: request.model.id,\n messages: yield* lowerMessages(request),\n tools:\n request.tools.length === 0\n ? undefined\n : request.tools.map((tool) =>\n lowerTool(tool, ToolSchemaProjection.modelCompatibility(tool.inputSchema, toolSchemaCompatibility)),\n ),\n tool_choice: request.toolChoice ? yield* lowerToolChoice(request.toolChoice) : undefined,\n stream: true as const,\n stream_options: { include_usage: true },\n max_tokens: generation?.maxTokens,\n temperature: generation?.temperature,\n top_p: generation?.topP,\n frequency_penalty: generation?.frequencyPenalty,\n presence_penalty: generation?.presencePenalty,\n seed: generation?.seed,\n stop: generation?.stop,\n ...(yield* lowerOptions(request)),\n }\n})\n\n// =============================================================================\n// Stream Parsing\n// =============================================================================\n// Streaming parsers are small state machines: every event returns a new state\n// plus the common `LLMEvent`s produced by that event. Tool calls are accumulated\n// because OpenAI streams JSON arguments across multiple deltas.\nconst mapFinishReason = (reason: string | null | undefined): FinishReason => {\n if (reason === \"stop\") return \"stop\"\n if (reason === \"length\") return \"length\"\n if (reason === \"content_filter\") return \"content-filter\"\n if (reason === \"function_call\" || reason === \"tool_calls\") return \"tool-calls\"\n return \"unknown\"\n}\n\n// OpenAI Chat reports `prompt_tokens` (inclusive total) with a\n// `cached_tokens` subset, and `completion_tokens` (inclusive total) with\n// a `reasoning_tokens` subset. We pass the inclusive totals through and\n// derive the non-cached breakdown so the `LLM.Usage` contract is\n// satisfied on both sides.\nconst mapUsage = (usage: OpenAIChatEvent[\"usage\"]): Usage | undefined => {\n if (!usage) return undefined\n const cached = usage.prompt_tokens_details?.cached_tokens\n const reasoning = usage.completion_tokens_details?.reasoning_tokens\n const nonCached = ProviderShared.subtractTokens(usage.prompt_tokens, cached)\n return new Usage({\n inputTokens: usage.prompt_tokens,\n outputTokens: usage.completion_tokens,\n nonCachedInputTokens: nonCached,\n cacheReadInputTokens: cached,\n reasoningTokens: reasoning,\n totalTokens: ProviderShared.totalTokens(usage.prompt_tokens, usage.completion_tokens, usage.total_tokens),\n providerMetadata: { openai: usage },\n })\n}\n\nconst step = (state: ParserState, event: OpenAIChatEvent) =>\n Effect.gen(function* () {\n const events: LLMEvent[] = []\n const usage = mapUsage(event.usage) ?? state.usage\n const choice = event.choices[0]\n const finishReason = choice?.finish_reason ? mapFinishReason(choice.finish_reason) : state.finishReason\n const delta = choice?.delta\n const toolDeltas = delta?.tool_calls ?? []\n let tools = state.tools\n\n let lifecycle = state.lifecycle\n\n if (delta?.reasoning_content)\n lifecycle = Lifecycle.reasoningDelta(lifecycle, events, \"reasoning-0\", delta.reasoning_content)\n\n if (delta?.content) {\n lifecycle = Lifecycle.reasoningEnd(lifecycle, events, \"reasoning-0\")\n lifecycle = Lifecycle.textDelta(lifecycle, events, \"text-0\", delta.content)\n }\n\n if (toolDeltas.length) lifecycle = Lifecycle.reasoningEnd(lifecycle, events, \"reasoning-0\")\n\n for (const tool of toolDeltas) {\n const result = ToolStream.appendOrStart(\n ADAPTER,\n tools,\n tool.index,\n { id: tool.id ?? undefined, name: tool.function?.name ?? undefined, text: tool.function?.arguments ?? \"\" },\n \"OpenAI Chat tool call delta is missing id or name\",\n )\n if (ToolStream.isError(result)) return yield* result\n tools = result.tools\n if (result.events.length) lifecycle = Lifecycle.stepStart(lifecycle, events)\n events.push(...result.events)\n }\n\n // Finalize accumulated tool inputs eagerly when finish_reason arrives so\n // JSON parse failures fail the stream at the boundary rather than at halt.\n const finished =\n finishReason !== undefined && state.finishReason === undefined && Object.keys(tools).length > 0\n ? yield* ToolStream.finishAll(ADAPTER, tools)\n : undefined\n\n return [\n {\n tools: finished?.tools ?? tools,\n toolCallEvents: finished?.events ?? state.toolCallEvents,\n usage,\n finishReason,\n lifecycle,\n },\n events,\n ] as const\n })\n\nconst finishEvents = (state: ParserState): ReadonlyArray<LLMEvent> => {\n const events: LLMEvent[] = []\n const hasToolCalls = state.toolCallEvents.length > 0\n const reason = state.finishReason === \"stop\" && hasToolCalls ? \"tool-calls\" : state.finishReason\n const lifecycle = state.toolCallEvents.length ? Lifecycle.stepStart(state.lifecycle, events) : state.lifecycle\n events.push(...state.toolCallEvents)\n if (reason) Lifecycle.finish(lifecycle, events, { reason, usage: state.usage })\n return events\n}\n\n// =============================================================================\n// Protocol And OpenAI Route\n// =============================================================================\n/**\n * The OpenAI Chat protocol — request body construction, body schema, and the\n * streaming-event state machine. Reused by every route that speaks OpenAI Chat\n * over HTTP+SSE: native OpenAI, DeepSeek, TogetherAI, Cerebras, Baseten,\n * Fireworks, DeepInfra, and (once added) Azure OpenAI Chat.\n */\nexport const protocol = Protocol.make({\n id: ADAPTER,\n body: {\n schema: OpenAIChatBody,\n from: fromRequest,\n },\n stream: {\n event: Protocol.jsonEvent(OpenAIChatEvent),\n initial: () => ({ tools: ToolStream.empty<number>(), toolCallEvents: [], lifecycle: Lifecycle.initial() }),\n step,\n onHalt: finishEvents,\n },\n})\n\nexport const httpTransport = HttpTransport.sseJson.with<OpenAIChatBody>()\n\nexport const route = Route.make({\n id: ADAPTER,\n provider: \"openai\",\n providerMetadataKey: \"openai\",\n protocol,\n endpoint: Endpoint.path(PATH, { baseURL: DEFAULT_BASE_URL }),\n auth: Auth.none,\n transport: httpTransport,\n})\n\nexport * as OpenAIChat from \"./openai-chat\"\n"
],
"mappings": "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",
"debugId": "FB1D999DCAC2B76264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709013000_generic_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709013000_generic_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n DELETE FROM \\`event\\`\n WHERE \\`type\\` IN ('session.prompt.admitted.1', 'session.prompt.promoted.1')\n AND json_extract(\\`data\\`, '$.inputID') IN (\n SELECT \\`id\\` FROM \\`session_input\\` WHERE \\`type\\` = 'prompt' AND \\`prompt\\` IS NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n INSERT INTO \\`__new_session_input\\`(\n \\`id\\`, \\`session_id\\`, \\`type\\`, \\`data\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`\n )\n SELECT\n \\`id\\`, \\`session_id\\`, CASE WHEN \\`type\\` = 'prompt' THEN 'user' ELSE \\`type\\` END,\n CASE WHEN \\`type\\` = 'prompt' THEN \\`prompt\\` ELSE '{}' END,\n \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`\n FROM \\`session_input\\`\n WHERE \\`type\\` != 'prompt' OR \\`prompt\\` IS NOT NULL;\n `)\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_pending_compaction_idx\\` ON \\`session_input\\` (\\`session_id\\`) WHERE \\`type\\` = 'compaction' and \\`promoted_seq\\` is null;`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n yield* tx.run(`\n UPDATE \\`event\\`\n SET\n \\`type\\` = 'session.input.admitted.1',\n \\`data\\` = json_object(\n 'sessionID', json_extract(\\`data\\`, '$.sessionID'),\n 'inputID', json_extract(\\`data\\`, '$.inputID'),\n 'input', json_object(\n 'type', 'user',\n 'data', json_extract(\\`data\\`, '$.prompt'),\n 'delivery', json_extract(\\`data\\`, '$.delivery')\n )\n )\n WHERE \\`type\\` = 'session.prompt.admitted.1';\n `)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET \\`type\\` = 'session.input.promoted.1'\n WHERE \\`type\\` = 'session.prompt.promoted.1';\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,0RAMb,EACD,MAAO,EAAG,IAAI,gfAYb,EACD,MAAO,EAAG,IAAI,sfAUb,EACD,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IACR,2IACF,EACA,MAAO,EAAG,IACR,8JACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IAAI,ogBAcb,EACD,MAAO,EAAG,IAAI,wIAIb,EACF,EAEL",
"debugId": "630966EB7862B3A064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "2C54B1402CC5A17F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/eventsource-parser@3.1.0/node_modules/eventsource-parser/dist/index.js", "../../node_modules/.bun/eventsource-parser@3.1.0/node_modules/eventsource-parser/dist/stream.js"],
"sourcesContent": [
"class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nconst LF = 10, CR = 13, SPACE = 32;\nfunction noop(_arg) {\n}\nfunction createParser(config) {\n if (typeof config == \"function\")\n throw new TypeError(\n \"`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment, maxBufferSize } = config, pendingFragments = [];\n let pendingFragmentsLength = 0, isFirstChunk = !0, id, data = \"\", dataLines = 0, eventType, terminated = !1;\n function feed(chunk) {\n if (terminated)\n throw new Error(\n \"Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.\"\n );\n if (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) {\n const trailing2 = processLines(chunk);\n trailing2 !== \"\" && (pendingFragments.push(trailing2), pendingFragmentsLength = trailing2.length), checkBufferSize();\n return;\n }\n if (chunk.indexOf(`\n`) === -1 && chunk.indexOf(\"\\r\") === -1) {\n pendingFragments.push(chunk), pendingFragmentsLength += chunk.length, checkBufferSize();\n return;\n }\n pendingFragments.push(chunk);\n const input = pendingFragments.join(\"\");\n pendingFragments.length = 0, pendingFragmentsLength = 0;\n const trailing = processLines(input);\n trailing !== \"\" && (pendingFragments.push(trailing), pendingFragmentsLength = trailing.length), checkBufferSize();\n }\n function checkBufferSize() {\n maxBufferSize !== void 0 && (pendingFragmentsLength + data.length <= maxBufferSize || (terminated = !0, pendingFragments.length = 0, pendingFragmentsLength = 0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, onError(\n new ParseError(`Buffered data exceeded max buffer size of ${maxBufferSize} characters`, {\n type: \"max-buffer-size-exceeded\"\n })\n )));\n }\n function processLines(chunk) {\n let searchIndex = 0;\n if (chunk.indexOf(\"\\r\") === -1) {\n let lfIndex = chunk.indexOf(`\n`, searchIndex);\n for (; lfIndex !== -1; ) {\n if (searchIndex === lfIndex) {\n dataLines > 0 && onEvent({ id, event: eventType, data }), id = void 0, data = \"\", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n const firstCharCode = chunk.charCodeAt(searchIndex);\n if (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n const valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex);\n if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n onEvent({ id, event: eventType, data: value }), id = void 0, data = \"\", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n } else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice(\n chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,\n lfIndex\n ) || void 0 : parseLine(chunk, searchIndex, lfIndex);\n searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n }\n return chunk.slice(searchIndex);\n }\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1)\n break;\n parseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++;\n }\n return chunk.slice(searchIndex);\n }\n function parseLine(chunk, start, end) {\n if (start === end) {\n dispatchEvent();\n return;\n }\n const firstCharCode = chunk.charCodeAt(start);\n if (isDataPrefix(chunk, start, firstCharCode)) {\n const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end);\n data = dataLines === 0 ? value2 : `${data}\n${value2}`, dataLines++;\n return;\n }\n if (isEventPrefix(chunk, start, firstCharCode)) {\n eventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0;\n return;\n }\n if (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) {\n const value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end);\n id = value2.includes(\"\\0\") ? void 0 : value2;\n return;\n }\n if (firstCharCode === 58) {\n if (onComment) {\n const line2 = chunk.slice(start, end);\n onComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1));\n }\n return;\n }\n const line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex === -1) {\n processField(line, \"\", line);\n return;\n }\n const field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value || void 0;\n break;\n case \"data\":\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n dataLines > 0 && onEvent({\n id,\n event: eventType,\n data\n }), id = void 0, data = \"\", dataLines = 0, eventType = void 0;\n }\n function reset(options = {}) {\n if (options.consume && pendingFragments.length > 0) {\n const incompleteLine = pendingFragments.join(\"\");\n parseLine(incompleteLine, 0, incompleteLine.length);\n }\n isFirstChunk = !0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, pendingFragments.length = 0, pendingFragmentsLength = 0, terminated = !1;\n }\n return { feed, reset };\n}\nfunction isDataPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58;\n}\nfunction isEventPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58;\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n",
"import { createParser } from \"./index.js\";\nimport { ParseError } from \"./index.js\";\nclass EventSourceParserStream extends TransformStream {\n constructor({ onError, onRetry, onComment, maxBufferSize } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n typeof onError == \"function\" && onError(error), (onError === \"terminate\" || error.type === \"max-buffer-size-exceeded\") && controller.error(error);\n },\n onRetry,\n onComment,\n maxBufferSize\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n}\nexport {\n EventSourceParserStream,\n ParseError\n};\n//# sourceMappingURL=stream.js.map\n"
],
"mappings": "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",
"debugId": "86186D6E5D5297AC64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260622142730_simplify_session_context_epoch.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622142730_simplify_session_context_epoch\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`agent\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`replacement_seq\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`revision\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0DAA8D,EAC5E,MAAO,EAAG,IAAI,oEAAwE,EACtF,MAAO,EAAG,IAAI,6DAAiE,EAChF,EAEL",
"debugId": "5EB49BF827E9569464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "0DFCF39410E4BD9464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/index.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractAsyncHooksContextManager = void 0;\nconst events_1 = require(\"events\");\nconst ADD_LISTENER_METHODS = [\n 'addListener',\n 'on',\n 'once',\n 'prependListener',\n 'prependOnceListener',\n];\nclass AbstractAsyncHooksContextManager {\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context, target) {\n if (target instanceof events_1.EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n _bindFunction(context, target) {\n const manager = this;\n const contextWrapper = function (...args) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper;\n }\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n _bindEventEmitter(context, ee) {\n const map = this._getPatchMap(ee);\n if (map !== undefined)\n return ee;\n this._createPatchMap(ee);\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined)\n return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return ee;\n }\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function (event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function (event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n }\n else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function (event, listener) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n }\n finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n _kOtListeners = Symbol('OtListeners');\n _wrapped = false;\n}\nexports.AbstractAsyncHooksContextManager = AbstractAsyncHooksContextManager;\n//# sourceMappingURL=AbstractAsyncHooksContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncHooksContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst asyncHooks = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nclass AsyncHooksContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncHook;\n _contexts = new Map();\n _stack = [];\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n active() {\n return this._stack[this._stack.length - 1] ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n this._enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n }\n finally {\n this._exitContext();\n }\n }\n enable() {\n this._asyncHook.enable();\n return this;\n }\n disable() {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n _init(uid, type) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP')\n return;\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n _destroy(uid) {\n this._contexts.delete(uid);\n }\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n _before(uid) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n /**\n * After hook is called just after completing the execution of a async context.\n */\n _after() {\n this._exitContext();\n }\n /**\n * Set the given context as active\n */\n _enterContext(context) {\n this._stack.push(context);\n }\n /**\n * Remove the context at the root of the stack\n */\n _exitContext() {\n this._stack.pop();\n }\n}\nexports.AsyncHooksContextManager = AsyncHooksContextManager;\n//# sourceMappingURL=AsyncHooksContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst async_hooks_1 = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\nclass AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncLocalStorage;\n constructor() {\n super();\n this._asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\nexports.AsyncLocalStorageContextManager = AsyncLocalStorageContextManager;\n//# sourceMappingURL=AsyncLocalStorageContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = exports.AsyncHooksContextManager = void 0;\nvar AsyncHooksContextManager_1 = require(\"./AsyncHooksContextManager\");\nObject.defineProperty(exports, \"AsyncHooksContextManager\", { enumerable: true, get: function () { return AsyncHooksContextManager_1.AsyncHooksContextManager; } });\nvar AsyncLocalStorageContextManager_1 = require(\"./AsyncLocalStorageContextManager\");\nObject.defineProperty(exports, \"AsyncLocalStorageContextManager\", { enumerable: true, get: function () { return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager; } });\n//# sourceMappingURL=index.js.map"
],
"mappings": ";yHAKA,YAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,mCAAwC,OAChD,IAAM,cACA,EAAuB,CACzB,cACA,KACA,OACA,kBACA,qBACJ,EACA,MAAM,CAAiC,CAOnC,IAAI,CAAC,EAAS,EAAQ,CAClB,GAAI,aAAkB,EAAS,aAC3B,OAAO,KAAK,kBAAkB,EAAS,CAAM,EAEjD,GAAI,OAAO,IAAW,WAClB,OAAO,KAAK,cAAc,EAAS,CAAM,EAE7C,OAAO,EAEX,aAAa,CAAC,EAAS,EAAQ,CAC3B,IAAM,EAAU,KACV,EAAiB,QAAS,IAAI,EAAM,CACtC,OAAO,EAAQ,KAAK,EAAS,IAAM,EAAO,MAAM,KAAM,CAAI,CAAC,GAa/D,OAXA,OAAO,eAAe,EAAgB,SAAU,CAC5C,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,EAAO,MAClB,CAAC,EAMM,EASX,iBAAiB,CAAC,EAAS,EAAI,CAE3B,GADY,KAAK,aAAa,CAAE,IACpB,OACR,OAAO,EASX,GARA,KAAK,gBAAgB,CAAE,EAEvB,EAAqB,QAAQ,KAAc,CACvC,GAAI,EAAG,KAAgB,OACnB,OACJ,EAAG,GAAc,KAAK,kBAAkB,EAAI,EAAG,GAAa,CAAO,EACtE,EAEG,OAAO,EAAG,iBAAmB,WAC7B,EAAG,eAAiB,KAAK,qBAAqB,EAAI,EAAG,cAAc,EAEvE,GAAI,OAAO,EAAG,MAAQ,WAClB,EAAG,IAAM,KAAK,qBAAqB,EAAI,EAAG,GAAG,EAGjD,GAAI,OAAO,EAAG,qBAAuB,WACjC,EAAG,mBAAqB,KAAK,yBAAyB,EAAI,EAAG,kBAAkB,EAEnF,OAAO,EAQX,oBAAoB,CAAC,EAAI,EAAU,CAC/B,IAAM,EAAiB,KACvB,OAAO,QAAS,CAAC,EAAO,EAAU,CAC9B,IAAM,EAAS,EAAe,aAAa,CAAE,IAAI,GACjD,GAAI,IAAW,OACX,OAAO,EAAS,KAAK,KAAM,EAAO,CAAQ,EAE9C,IAAM,EAAkB,EAAO,IAAI,CAAQ,EAC3C,OAAO,EAAS,KAAK,KAAM,EAAO,GAAmB,CAAQ,GASrE,wBAAwB,CAAC,EAAI,EAAU,CACnC,IAAM,EAAiB,KACvB,OAAO,QAAS,CAAC,EAAO,CACpB,IAAM,EAAM,EAAe,aAAa,CAAE,EAC1C,GAAI,IAAQ,QACR,GAAI,UAAU,SAAW,EACrB,EAAe,gBAAgB,CAAE,EAEhC,QAAI,EAAI,KAAW,OACpB,OAAO,EAAI,GAGnB,OAAO,EAAS,MAAM,KAAM,SAAS,GAU7C,iBAAiB,CAAC,EAAI,EAAU,EAAS,CACrC,IAAM,EAAiB,KACvB,OAAO,QAAS,CAAC,EAAO,EAAU,CAS9B,GAAI,EAAe,SACf,OAAO,EAAS,KAAK,KAAM,EAAO,CAAQ,EAE9C,IAAI,EAAM,EAAe,aAAa,CAAE,EACxC,GAAI,IAAQ,OACR,EAAM,EAAe,gBAAgB,CAAE,EAE3C,IAAI,EAAY,EAAI,GACpB,GAAI,IAAc,OACd,EAAY,IAAI,QAChB,EAAI,GAAS,EAEjB,IAAM,EAAkB,EAAe,KAAK,EAAS,CAAQ,EAE7D,EAAU,IAAI,EAAU,CAAe,EAIvC,EAAe,SAAW,GAC1B,GAAI,CACA,OAAO,EAAS,KAAK,KAAM,EAAO,CAAe,SAErD,CACI,EAAe,SAAW,KAItC,eAAe,CAAC,EAAI,CAChB,IAAM,EAAM,OAAO,OAAO,IAAI,EAG9B,OADA,EAAG,KAAK,eAAiB,EAClB,EAEX,YAAY,CAAC,EAAI,CACb,OAAO,EAAG,KAAK,eAEnB,cAAgB,OAAO,aAAa,EACpC,SAAW,EACf,CACQ,mCAAmC,kBC1K3C,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,2BAAgC,OACxC,IAAM,MACA,mBACA,MAIN,MAAM,UAAiC,EAAmC,gCAAiC,CACvG,WACA,UAAY,IAAI,IAChB,OAAS,CAAC,EACV,WAAW,EAAG,CACV,MAAM,EACN,KAAK,WAAa,EAAW,WAAW,CACpC,KAAM,KAAK,MAAM,KAAK,IAAI,EAC1B,OAAQ,KAAK,QAAQ,KAAK,IAAI,EAC9B,MAAO,KAAK,OAAO,KAAK,IAAI,EAC5B,QAAS,KAAK,SAAS,KAAK,IAAI,EAChC,eAAgB,KAAK,SAAS,KAAK,IAAI,CAC3C,CAAC,EAEL,MAAM,EAAG,CACL,OAAO,KAAK,OAAO,KAAK,OAAO,OAAS,IAAM,EAAM,aAExD,IAAI,CAAC,EAAS,EAAI,KAAY,EAAM,CAChC,KAAK,cAAc,CAAO,EAC1B,GAAI,CACA,OAAO,EAAG,KAAK,EAAS,GAAG,CAAI,SAEnC,CACI,KAAK,aAAa,GAG1B,MAAM,EAAG,CAEL,OADA,KAAK,WAAW,OAAO,EAChB,KAEX,OAAO,EAAG,CAIN,OAHA,KAAK,WAAW,QAAQ,EACxB,KAAK,UAAU,MAAM,EACrB,KAAK,OAAS,CAAC,EACR,KAQX,KAAK,CAAC,EAAK,EAAM,CAKb,GAAI,IAAS,YACT,OACJ,IAAM,EAAU,KAAK,OAAO,KAAK,OAAO,OAAS,GACjD,GAAI,IAAY,OACZ,KAAK,UAAU,IAAI,EAAK,CAAO,EAQvC,QAAQ,CAAC,EAAK,CACV,KAAK,UAAU,OAAO,CAAG,EAM7B,OAAO,CAAC,EAAK,CACT,IAAM,EAAU,KAAK,UAAU,IAAI,CAAG,EACtC,GAAI,IAAY,OACZ,KAAK,cAAc,CAAO,EAMlC,MAAM,EAAG,CACL,KAAK,aAAa,EAKtB,aAAa,CAAC,EAAS,CACnB,KAAK,OAAO,KAAK,CAAO,EAK5B,YAAY,EAAG,CACX,KAAK,OAAO,IAAI,EAExB,CACQ,2BAA2B,kBCnGnC,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kCAAuC,OAC/C,IAAM,MACA,mBACA,MACN,MAAM,UAAwC,EAAmC,gCAAiC,CAC9G,mBACA,WAAW,EAAG,CACV,MAAM,EACN,KAAK,mBAAqB,IAAI,EAAc,kBAEhD,MAAM,EAAG,CACL,OAAO,KAAK,mBAAmB,SAAS,GAAK,EAAM,aAEvD,IAAI,CAAC,EAAS,EAAI,KAAY,EAAM,CAChC,IAAM,EAAK,GAAW,KAAO,EAAK,EAAG,KAAK,CAAO,EACjD,OAAO,KAAK,mBAAmB,IAAI,EAAS,EAAI,GAAG,CAAI,EAE3D,MAAM,EAAG,CACL,OAAO,KAEX,OAAO,EAAG,CAEN,OADA,KAAK,mBAAmB,QAAQ,EACzB,KAEf,CACQ,kCAAkC,kBC1B1C,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kCAA0C,2BAAgC,OAClF,IAAI,MACJ,OAAO,eAAe,EAAS,2BAA4B,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,EAA2B,yBAA4B,CAAC,EACjK,IAAI,MACJ,OAAO,eAAe,EAAS,kCAAmC,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,EAAkC,gCAAmC,CAAC",
"debugId": "22F80AEB3CC4A6A564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/debug/agents.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { OpenCode } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.debug.commands.agents,\n Effect.fn(\"cli.debug.agents\")(function* () {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.ensure(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const response = yield* Effect.promise(() => client.agent.list({ location: { directory: process.cwd() } }))\n process.stdout.write(\n JSON.stringify(\n response.data.toSorted((a, b) => a.id.localeCompare(b.id)),\n null,\n 2,\n ) + EOL,\n )\n }),\n)\n"
],
"mappings": ";83BAAA,mBAAS,gBAQT,SAAe,SAAQ,aACrB,OAAS,cAAS,WAAM,cAAS,YACjC,OAAO,QAAG,uBAAkB,OAAE,cAAU,OAAG,MACzC,SAAM,OAAU,WAAO,OAAc,aAAQ,OAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,OAAO,CAAO,GAClD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EACpF,EAAW,MAAO,EAAO,QAAQ,IAAM,EAAO,MAAM,KAAK,CAAE,SAAU,CAAE,UAAW,QAAQ,IAAI,CAAE,CAAE,CAAC,CAAC,EAC1G,QAAQ,OAAO,MACb,KAAK,UACH,EAAS,KAAK,SAAS,CAAC,EAAG,IAAM,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC,EACzD,KACA,CACF,EAAI,CACN,EACD,CACH",
"debugId": "86C356217D397D6964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260601010001_normalize_storage_paths.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260601010001_normalize_storage_paths\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(\n `UPDATE project SET worktree = REPLACE(worktree, char(92), '/') WHERE worktree GLOB '[A-Za-z]:' || char(92) || '*' OR worktree LIKE char(92) || char(92) || '%';`,\n )\n yield* tx.run(\n `UPDATE project SET sandboxes = REPLACE(sandboxes, char(92) || char(92), '/') WHERE instr(sandboxes, char(92)) > 0 AND (worktree GLOB '[A-Za-z]:*' OR worktree LIKE '//%');`,\n )\n yield* tx.run(\n `UPDATE session SET directory = REPLACE(directory, char(92), '/') WHERE directory GLOB '[A-Za-z]:' || char(92) || '*' OR directory LIKE char(92) || char(92) || '%';`,\n )\n yield* tx.run(\n `UPDATE session SET path = REPLACE(path, char(92), '/') WHERE path IS NOT NULL AND instr(path, char(92)) > 0 AND (directory GLOB '[A-Za-z]:*' OR directory LIKE '//%');`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IACR,iKACF,EACA,MAAO,EAAG,IACR,4KACF,EACA,MAAO,EAAG,IACR,qKACF,EACA,MAAO,EAAG,IACR,wKACF,EACD,EAEL",
"debugId": "DEF450A001BBF01B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/ai-gateway-provider@3.1.2+a6631614dda8d488/node_modules/ai-gateway-provider/dist/providers/unified.mjs"],
"sourcesContent": [
"// src/providers/unified.ts\nimport { createOpenAICompatible } from \"@ai-sdk/openai-compatible\";\nvar createUnified = (arg) => {\n return createOpenAICompatible({\n baseURL: \"https://gateway.ai.cloudflare.com/v1/compat\",\n // intercepted and replaced with actual base URL later\n name: \"Unified\",\n ...arg || {}\n });\n};\nvar unified = createUnified();\nexport {\n createUnified,\n unified\n};\n//# sourceMappingURL=unified.mjs.map"
],
"mappings": ";8NAEA,SAAI,OAAgB,MAAC,SAAQ,MAC3B,OAAO,EAAuB,CAC5B,QAAS,8CAET,KAAM,aACH,GAAO,CAAC,CACb,CAAC,GAEC,EAAU,EAAc",
"debugId": "773C2E1F63B8C60C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+node-http-handler@4.7.5/node_modules/@smithy/node-http-handler/dist-cjs/index.js"],
"sourcesContent": [
"'use strict';\n\nvar node_https = require('node:https');\nvar protocols = require('@smithy/core/protocols');\nvar node_stream = require('node:stream');\nvar http2 = require('node:http2');\n\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name in headers) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\n\nconst timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n\nconst DEFER_EVENT_LISTENER_TIME$2 = 1000;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2);\n};\n\nconst setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n\nconst DEFER_EVENT_LISTENER_TIME$1 = 3000;\nconst setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n\nconst MIN_WAIT_TIME = 6_000;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers;\n const expect = headers ? headers.Expect || headers.expect : undefined;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof node_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n\nconst DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nclass NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n let socketWarningTimeoutId = -1;\n let connectionTimeoutId = -1;\n let requestTimeoutId = -1;\n let socketTimeoutId = -1;\n let keepAliveTimeoutId = -1;\n const clearTimeouts = () => {\n timing.clearTimeout(socketWarningTimeoutId);\n timing.clearTimeout(connectionTimeoutId);\n timing.clearTimeout(requestTimeoutId);\n timing.clearTimeout(socketTimeoutId);\n timing.clearTimeout(keepAliveTimeoutId);\n };\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers;\n const expectContinue = headers ? (headers.Expect ?? headers.expect) === \"100-continue\" : false;\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n socketWarningTimeoutId = timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000));\n const queryString = request.query ? protocols.buildQueryString(request.query) : \"\";\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);\n requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console);\n socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n keepAliveTimeoutId = setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n });\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n clearTimeouts();\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const { Agent, request } = await import('node:http');\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n\nconst ids = new Uint16Array(1);\nclass ClientHttp2SessionRef {\n id = ids[0]++;\n total = 0;\n max = 0;\n session;\n refs = 0;\n constructor(session) {\n session.unref();\n this.session = session;\n }\n retain() {\n if (this.session.destroyed) {\n throw new Error(\"@smithy/node-http-handler - cannot acquire reference to destroyed session.\");\n }\n this.refs += 1;\n this.total += 1;\n this.max = Math.max(this.refs, this.max);\n this.session.ref();\n }\n free() {\n if (this.session.destroyed) {\n return;\n }\n this.refs -= 1;\n if (this.refs === 0) {\n this.session.unref();\n }\n if (this.refs < 0) {\n throw new Error(\"@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.\");\n }\n }\n deref() {\n return this.session;\n }\n close() {\n if (!this.session.closed) {\n this.session.close();\n }\n }\n destroy() {\n this.refs = 0;\n if (!this.session.destroyed) {\n this.session.destroy();\n }\n }\n useCount() {\n return this.refs;\n }\n}\n\nclass NodeHttp2ConnectionPool {\n sessions = [];\n maxConcurrency = 0;\n constructor(sessions) {\n this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));\n }\n poll() {\n let cleanup = false;\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n cleanup = true;\n continue;\n }\n if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {\n return session;\n }\n }\n if (cleanup) {\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n this.remove(session);\n }\n }\n }\n }\n offerLast(ref) {\n this.sessions.push(ref);\n }\n remove(ref) {\n const ix = this.sessions.indexOf(ref);\n if (ix > -1) {\n this.sessions.splice(ix, 1);\n }\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n setMaxConcurrency(maxConcurrency) {\n this.maxConcurrency = maxConcurrency;\n }\n destroy(ref) {\n this.remove(ref);\n ref.destroy();\n }\n}\n\nclass NodeHttp2ConnectionManager {\n config;\n connectOptions;\n connectionPools = new Map();\n constructor(config) {\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const pool = this.getPool(url);\n if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {\n const available = pool.poll();\n if (available) {\n available.retain();\n return available;\n }\n }\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\"Fail to set maxConcurrentStreams to \" +\n this.config.maxConcurrency +\n \"when creating new session for \" +\n requestContext.destination.toString());\n }\n });\n }\n const graceful = () => {\n this.removeFromPoolAndClose(url, ref);\n };\n const ensureDestroyed = () => {\n this.removeFromPoolAndCheckedDestroy(url, ref);\n };\n session.on(\"goaway\", graceful);\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n pool.offerLast(ref);\n ref.retain();\n return ref;\n }\n release(_requestContext, ref) {\n ref.free();\n }\n createIsolatedSession(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n session.settings({ maxConcurrentStreams: 1 });\n const ensureDestroyed = () => {\n ref.destroy();\n };\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n ref.retain();\n return ref;\n }\n destroy() {\n for (const [url, connectionPool] of this.connectionPools) {\n for (const session of [...connectionPool]) {\n session.destroy();\n }\n this.connectionPools.delete(url);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (maxConcurrentStreams && maxConcurrentStreams <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n for (const pool of this.connectionPools.values()) {\n pool.setMaxConcurrency(maxConcurrentStreams);\n }\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions) {\n this.connectOptions = nodeHttp2ConnectOptions;\n }\n debug() {\n const pools = {};\n for (const [url, pool] of this.connectionPools) {\n const sessions = [];\n for (const ref of pool) {\n sessions.push({\n id: ref.id,\n active: ref.useCount(),\n maxConcurrent: ref.max,\n totalRequests: ref.total,\n });\n }\n pools[url] = { sessions };\n }\n return pools;\n }\n removeFromPoolAndClose(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.close();\n }\n removeFromPoolAndCheckedDestroy(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.destroy();\n }\n getPool(url) {\n if (!this.connectionPools.has(url)) {\n const pool = new NodeHttp2ConnectionPool();\n if (this.config.maxConcurrency) {\n pool.setMaxConcurrency(this.config.maxConcurrency);\n }\n this.connectionPools.set(url, pool);\n }\n return this.connectionPools.get(url);\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n connect(url) {\n return this.connectOptions === undefined ? http2.connect(url) : http2.connect(url, this.connectOptions);\n }\n}\n\nclass NodeHttp2Handler {\n config;\n configProvider;\n metadata = { handlerProtocol: \"h2\" };\n connectionManager = new NodeHttp2ConnectionManager({});\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttp2Handler(instanceOrOptions);\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n const { disableConcurrentStreams, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config;\n this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);\n if (maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);\n }\n if (nodeHttp2ConnectOptions) {\n this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions);\n }\n }\n const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;\n const useIsolatedSession = disableConcurrentStreams || isEventStream;\n const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;\n return new Promise((_resolve, _reject) => {\n let fulfilled = false;\n let writeRequestBodyPromise = undefined;\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n fulfilled = true;\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const connectConfig = {\n requestTimeout: this.config?.sessionTimeout,\n isEventStream,\n };\n const ref = useIsolatedSession\n ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)\n : this.connectionManager.lease(requestContext, connectConfig);\n const session = ref.deref();\n const rejectWithDestroy = (err) => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n fulfilled = true;\n reject(err);\n };\n const queryString = query ? protocols.buildQueryString(query) : \"\";\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const clientHttp2Stream = session.request({\n ...request.headers,\n [http2.constants.HTTP2_HEADER_PATH]: path,\n [http2.constants.HTTP2_HEADER_METHOD]: method,\n });\n if (effectiveRequestTimeout) {\n clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {\n clientHttp2Stream.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = () => {\n clientHttp2Stream.close();\n const abortError = buildAbortError(abortSignal);\n rejectWithDestroy(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n clientHttp2Stream.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n clientHttp2Stream.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n clientHttp2Stream.on(\"error\", rejectWithDestroy);\n clientHttp2Stream.on(\"aborted\", () => {\n rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));\n });\n clientHttp2Stream.on(\"response\", (headers) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: headers[\":status\"] ?? -1,\n headers: getTransformedHeaders(headers),\n body: clientHttp2Stream,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (useIsolatedSession) {\n session.close();\n }\n });\n clientHttp2Stream.on(\"close\", () => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n else {\n this.connectionManager.release(requestContext, ref);\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\n\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n\nexports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT;\nexports.NodeHttp2Handler = NodeHttp2Handler;\nexports.NodeHttpHandler = NodeHttpHandler;\nexports.streamCollector = streamCollector;\n"
],
"mappings": "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",
"debugId": "6A2492ADC6236CF464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+cohere@3.0.27+d6123d32214422cb/node_modules/@ai-sdk/cohere/dist/index.mjs"],
"sourcesContent": [
"// src/cohere-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/cohere-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/cohere-chat-options.ts\nimport { z } from \"zod/v4\";\nvar cohereLanguageModelOptions = z.object({\n /**\n * Configuration for reasoning features (optional)\n *\n * Can be set to an object with the two properties `type` and `tokenBudget`. `type` can be set to `'enabled'` or `'disabled'` (defaults to `'enabled'`).\n * `tokenBudget` is the maximum number of tokens the model can use for thinking, which must be set to a positive integer. The model will stop thinking if it reaches the thinking token budget and will proceed with the response\n *\n * @see https://docs.cohere.com/reference/chat#request.body.thinking\n */\n thinking: z.object({\n type: z.enum([\"enabled\", \"disabled\"]).optional(),\n tokenBudget: z.number().optional()\n }).optional()\n});\n\n// src/cohere-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar cohereErrorDataSchema = z2.object({\n message: z2.string()\n});\nvar cohereFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: cohereErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/cohere-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const cohereTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n cohereTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: cohereTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return { tools: cohereTools, toolChoice: void 0, toolWarnings };\n case \"none\":\n return { tools: cohereTools, toolChoice: \"NONE\", toolWarnings };\n case \"required\":\n return { tools: cohereTools, toolChoice: \"REQUIRED\", toolWarnings };\n case \"tool\":\n return {\n tools: cohereTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"REQUIRED\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/convert-cohere-usage.ts\nfunction convertCohereUsage(tokens) {\n if (tokens == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const inputTokens = tokens.input_tokens;\n const outputTokens = tokens.output_tokens;\n return {\n inputTokens: {\n total: inputTokens,\n noCache: inputTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: outputTokens,\n text: outputTokens,\n reasoning: void 0\n },\n raw: tokens\n };\n}\n\n// src/convert-to-cohere-chat-prompt.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction convertToCohereChatPrompt(prompt) {\n const messages = [];\n const documents = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"file\": {\n let textContent;\n if (typeof part.data === \"string\") {\n textContent = part.data;\n } else if (part.data instanceof Uint8Array) {\n if (!(((_a = part.mediaType) == null ? void 0 : _a.startsWith(\"text/\")) || part.mediaType === \"application/json\")) {\n throw new UnsupportedFunctionalityError2({\n functionality: `document media type: ${part.mediaType}`,\n message: `Media type '${part.mediaType}' is not supported. Supported media types are: text/* and application/json.`\n });\n }\n textContent = new TextDecoder().decode(part.data);\n } else {\n throw new UnsupportedFunctionalityError2({\n functionality: \"File URL data\",\n message: \"URLs should be downloaded by the AI SDK and not reach this point. This indicates a configuration issue.\"\n });\n }\n documents.push({\n data: {\n text: textContent,\n title: part.filename\n }\n });\n return \"\";\n }\n }\n }).join(\"\")\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: toolCalls.length > 0 ? void 0 : text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n tool_plan: void 0\n });\n break;\n }\n case \"tool\": {\n messages.push(\n ...content.filter((toolResult) => toolResult.type !== \"tool-approval-response\").map((toolResult) => {\n var _a;\n const output = toolResult.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n return {\n role: \"tool\",\n content: contentValue,\n tool_call_id: toolResult.toolCallId\n };\n })\n );\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { messages, documents, warnings };\n}\n\n// src/map-cohere-finish-reason.ts\nfunction mapCohereFinishReason(finishReason) {\n switch (finishReason) {\n case \"COMPLETE\":\n case \"STOP_SEQUENCE\":\n return \"stop\";\n case \"MAX_TOKENS\":\n return \"length\";\n case \"ERROR\":\n return \"error\";\n case \"TOOL_CALL\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/cohere-chat-language-model.ts\nvar CohereChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b;\n const cohereOptions = (_a = await parseProviderOptions({\n provider: \"cohere\",\n providerOptions,\n schema: cohereLanguageModelOptions\n })) != null ? _a : {};\n const {\n messages: chatPrompt,\n documents: cohereDocuments,\n warnings: promptWarnings\n } = convertToCohereChatPrompt(prompt);\n const {\n tools: cohereTools,\n toolChoice: cohereToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice });\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n max_tokens: maxOutputTokens,\n temperature,\n p: topP,\n k: topK,\n seed,\n stop_sequences: stopSequences,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? { type: \"json_object\", json_schema: responseFormat.schema } : void 0,\n // messages:\n messages: chatPrompt,\n // tools:\n tools: cohereTools,\n tool_choice: cohereToolChoice,\n // documents for RAG:\n ...cohereDocuments.length > 0 && { documents: cohereDocuments },\n // reasoning\n ...cohereOptions.thinking && {\n thinking: {\n type: (_b = cohereOptions.thinking.type) != null ? _b : \"enabled\",\n token_budget: cohereOptions.thinking.tokenBudget\n }\n }\n },\n warnings: [...toolWarnings, ...promptWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n cohereChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const content = [];\n for (const item of (_a = response.message.content) != null ? _a : []) {\n if (item.type === \"text\" && item.text.length > 0) {\n content.push({ type: \"text\", text: item.text });\n continue;\n }\n if (item.type === \"thinking\" && item.thinking.length > 0) {\n content.push({ type: \"reasoning\", text: item.thinking });\n continue;\n }\n }\n for (const citation of (_b = response.message.citations) != null ? _b : []) {\n content.push({\n type: \"source\",\n sourceType: \"document\",\n id: this.config.generateId(),\n mediaType: \"text/plain\",\n title: ((_d = (_c = citation.sources[0]) == null ? void 0 : _c.document) == null ? void 0 : _d.title) || \"Document\",\n providerMetadata: {\n cohere: {\n start: citation.start,\n end: citation.end,\n text: citation.text,\n sources: citation.sources,\n ...citation.type && { citationType: citation.type }\n }\n }\n });\n }\n for (const toolCall of (_e = response.message.tool_calls) != null ? _e : []) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n // Cohere sometimes returns `null` for tool call arguments for tools\n // defined as having no arguments.\n input: toolCall.function.arguments.replace(/^null$/, \"{}\")\n });\n }\n return {\n content,\n finishReason: {\n unified: mapCohereFinishReason(response.finish_reason),\n raw: (_f = response.finish_reason) != null ? _f : void 0\n },\n usage: convertCohereUsage(response.usage.tokens),\n request: { body: args },\n response: {\n // TODO timestamp, model id\n id: (_g = response.generation_id) != null ? _g : void 0,\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: { ...args, stream: true },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n cohereChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let pendingToolCall = null;\n let isActiveReasoning = false;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n const type = value.type;\n switch (type) {\n case \"content-start\": {\n if (value.delta.message.content.type === \"thinking\") {\n controller.enqueue({\n type: \"reasoning-start\",\n id: String(value.index)\n });\n isActiveReasoning = true;\n return;\n }\n controller.enqueue({\n type: \"text-start\",\n id: String(value.index)\n });\n return;\n }\n case \"content-delta\": {\n if (\"thinking\" in value.delta.message.content) {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: String(value.index),\n delta: value.delta.message.content.thinking\n });\n return;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: String(value.index),\n delta: value.delta.message.content.text\n });\n return;\n }\n case \"content-end\": {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: String(value.index)\n });\n isActiveReasoning = false;\n return;\n }\n controller.enqueue({\n type: \"text-end\",\n id: String(value.index)\n });\n return;\n }\n case \"tool-call-start\": {\n const toolId = value.delta.message.tool_calls.id;\n const toolName = value.delta.message.tool_calls.function.name;\n const initialArgs = value.delta.message.tool_calls.function.arguments;\n pendingToolCall = {\n id: toolId,\n name: toolName,\n arguments: initialArgs,\n hasFinished: false\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolId,\n toolName\n });\n if (initialArgs.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolId,\n delta: initialArgs\n });\n }\n return;\n }\n case \"tool-call-delta\": {\n if (pendingToolCall && !pendingToolCall.hasFinished) {\n const argsDelta = value.delta.message.tool_calls.function.arguments;\n pendingToolCall.arguments += argsDelta;\n controller.enqueue({\n type: \"tool-input-delta\",\n id: pendingToolCall.id,\n delta: argsDelta\n });\n }\n return;\n }\n case \"tool-call-end\": {\n if (pendingToolCall && !pendingToolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: pendingToolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: pendingToolCall.id,\n toolName: pendingToolCall.name,\n input: JSON.stringify(\n JSON.parse(((_a = pendingToolCall.arguments) == null ? void 0 : _a.trim()) || \"{}\")\n )\n });\n pendingToolCall.hasFinished = true;\n pendingToolCall = null;\n }\n return;\n }\n case \"message-start\": {\n controller.enqueue({\n type: \"response-metadata\",\n id: (_b = value.id) != null ? _b : void 0\n });\n return;\n }\n case \"message-end\": {\n finishReason = {\n unified: mapCohereFinishReason(value.delta.finish_reason),\n raw: value.delta.finish_reason\n };\n usage = value.delta.usage.tokens;\n return;\n }\n default: {\n return;\n }\n }\n },\n flush(controller) {\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertCohereUsage(usage)\n });\n }\n })\n ),\n request: { body: { ...args, stream: true } },\n response: { headers: responseHeaders }\n };\n }\n};\nvar cohereChatResponseSchema = z3.object({\n generation_id: z3.string().nullish(),\n message: z3.object({\n role: z3.string(),\n content: z3.array(\n z3.union([\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.string()\n })\n ])\n ).nullish(),\n tool_plan: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish(),\n citations: z3.array(\n z3.object({\n start: z3.number(),\n end: z3.number(),\n text: z3.string(),\n sources: z3.array(\n z3.object({\n type: z3.string().optional(),\n id: z3.string().optional(),\n document: z3.object({\n id: z3.string().optional(),\n text: z3.string(),\n title: z3.string()\n })\n })\n ),\n type: z3.string().optional()\n })\n ).nullish()\n }),\n finish_reason: z3.string(),\n usage: z3.object({\n billed_units: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n }),\n tokens: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n })\n })\n});\nvar cohereChatChunkSchema = z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"citation-start\")\n }),\n z3.object({\n type: z3.literal(\"citation-end\")\n }),\n z3.object({\n type: z3.literal(\"content-start\"),\n index: z3.number(),\n delta: z3.object({\n message: z3.object({\n content: z3.union([\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.string()\n })\n ])\n })\n })\n }),\n z3.object({\n type: z3.literal(\"content-delta\"),\n index: z3.number(),\n delta: z3.object({\n message: z3.object({\n content: z3.union([\n z3.object({\n text: z3.string()\n }),\n z3.object({\n thinking: z3.string()\n })\n ])\n })\n })\n }),\n z3.object({\n type: z3.literal(\"content-end\"),\n index: z3.number()\n }),\n z3.object({\n type: z3.literal(\"message-start\"),\n id: z3.string().nullish()\n }),\n z3.object({\n type: z3.literal(\"message-end\"),\n delta: z3.object({\n finish_reason: z3.string(),\n usage: z3.object({\n tokens: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n })\n })\n })\n }),\n // https://docs.cohere.com/v2/docs/streaming#tool-use-stream-events-for-tool-calling\n z3.object({\n type: z3.literal(\"tool-plan-delta\"),\n delta: z3.object({\n message: z3.object({\n tool_plan: z3.string()\n })\n })\n }),\n z3.object({\n type: z3.literal(\"tool-call-start\"),\n delta: z3.object({\n message: z3.object({\n tool_calls: z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n })\n })\n }),\n // A single tool call's `arguments` stream in chunks and must be accumulated\n // in a string and so the full tool object info can only be parsed once we see\n // `tool-call-end`.\n z3.object({\n type: z3.literal(\"tool-call-delta\"),\n delta: z3.object({\n message: z3.object({\n tool_calls: z3.object({\n function: z3.object({\n arguments: z3.string()\n })\n })\n })\n })\n }),\n z3.object({\n type: z3.literal(\"tool-call-end\")\n })\n]);\n\n// src/cohere-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/cohere-embedding-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar cohereEmbeddingModelOptions = z4.object({\n /**\n * Specifies the type of input passed to the model. Default is `search_query`.\n *\n * - \"search_document\": Used for embeddings stored in a vector database for search use-cases.\n * - \"search_query\": Used for embeddings of search queries run against a vector DB to find relevant documents.\n * - \"classification\": Used for embeddings passed through a text classifier.\n * - \"clustering\": Used for embeddings run through a clustering algorithm.\n */\n inputType: z4.enum([\"search_document\", \"search_query\", \"classification\", \"clustering\"]).optional(),\n /**\n * Specifies how the API will handle inputs longer than the maximum token length.\n * Default is `END`.\n *\n * - \"NONE\": If selected, when the input exceeds the maximum input token length will return an error.\n * - \"START\": Will discard the start of the input until the remaining input is exactly the maximum input token length for the model.\n * - \"END\": Will discard the end of the input until the remaining input is exactly the maximum input token length for the model.\n */\n truncate: z4.enum([\"NONE\", \"START\", \"END\"]).optional(),\n /**\n * The number of dimensions of the output embedding.\n * Only available for `embed-v4.0` and newer models.\n *\n * Possible values are `256`, `512`, `1024`, and `1536`.\n * The default is `1536`.\n */\n outputDimension: z4.union([z4.literal(256), z4.literal(512), z4.literal(1024), z4.literal(1536)]).optional()\n});\n\n// src/cohere-embedding-model.ts\nvar CohereEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 96;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n var _a;\n const embeddingOptions = await parseProviderOptions2({\n provider: \"cohere\",\n providerOptions,\n schema: cohereEmbeddingModelOptions\n });\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embed`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n // The AI SDK only supports 'float' embeddings. Note that the Cohere API\n // supports other embedding types, but they are not currently supported by the AI SDK.\n // https://docs.cohere.com/v2/reference/embed#request.body.embedding_types\n embedding_types: [\"float\"],\n texts: values,\n input_type: (_a = embeddingOptions == null ? void 0 : embeddingOptions.inputType) != null ? _a : \"search_query\",\n truncate: embeddingOptions == null ? void 0 : embeddingOptions.truncate,\n output_dimension: embeddingOptions == null ? void 0 : embeddingOptions.outputDimension\n },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n cohereTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.embeddings.float,\n usage: { tokens: response.meta.billed_units.input_tokens },\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar cohereTextEmbeddingResponseSchema = z5.object({\n embeddings: z5.object({\n float: z5.array(z5.array(z5.number()))\n }),\n meta: z5.object({\n billed_units: z5.object({\n input_tokens: z5.number()\n })\n })\n});\n\n// src/reranking/cohere-reranking-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/cohere-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar cohereRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z6.object({\n id: z6.string().nullish(),\n results: z6.array(\n z6.object({\n index: z6.number(),\n relevance_score: z6.number()\n })\n ),\n meta: z6.any()\n })\n )\n);\n\n// src/reranking/cohere-reranking-options.ts\nimport { lazySchema as lazySchema2, zodSchema as zodSchema2 } from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar cohereRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z7.object({\n maxTokensPerDoc: z7.number().optional(),\n priority: z7.number().optional()\n })\n )\n);\n\n// src/reranking/cohere-reranking-model.ts\nvar CohereRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // current implementation is based on v2 of the API: https://docs.cohere.com/v2/reference/rerank\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a;\n const rerankingOptions = await parseProviderOptions3({\n provider: \"cohere\",\n providerOptions,\n schema: cohereRerankingModelOptionsSchema\n });\n const warnings = [];\n if (documents.type === \"object\") {\n warnings.push({\n type: \"compatibility\",\n feature: \"object documents\",\n details: \"Object documents are converted to strings.\"\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi3({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders3(this.config.headers(), headers),\n body: {\n model: this.modelId,\n query,\n documents: documents.type === \"text\" ? documents.values : documents.values.map((value) => JSON.stringify(value)),\n top_n: topN,\n max_tokens_per_doc: rerankingOptions == null ? void 0 : rerankingOptions.maxTokensPerDoc,\n priority: rerankingOptions == null ? void 0 : rerankingOptions.priority\n },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n cohereRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n warnings,\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.27\" : \"0.0.0-test\";\n\n// src/cohere-provider.ts\nfunction createCohere(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.cohere.com/v2\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"COHERE_API_KEY\",\n description: \"Cohere\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cohere/${VERSION}`\n );\n const createChatModel = (modelId) => {\n var _a2;\n return new CohereChatLanguageModel(modelId, {\n provider: \"cohere.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId\n });\n };\n const createEmbeddingModel = (modelId) => new CohereEmbeddingModel(modelId, {\n provider: \"cohere.textEmbedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createRerankingModel = (modelId) => new CohereRerankingModel(modelId, {\n provider: \"cohere.reranking\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Cohere model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cohere = createCohere();\nexport {\n VERSION,\n cohere,\n createCohere\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "DB6B5880C7B3DCBE64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst process = require(\"process\");\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n const args = 'QUERY HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Cryptography /v MachineGuid';\n let command = '%windir%\\\\System32\\\\REG.exe';\n if (process.arch === 'ia32' && 'PROCESSOR_ARCHITEW6432' in process.env) {\n command = '%windir%\\\\sysnative\\\\cmd.exe /c ' + command;\n }\n try {\n const result = await (0, execAsync_1.execAsync)(`${command} ${args}`);\n const parts = result.stdout.split('REG_SZ');\n if (parts.length === 2) {\n return parts[1].trim();\n }\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-win.js.map"
],
"mappings": ";wKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,eACA,MACA,MACN,eAAe,CAAY,EAAG,CAE1B,IAAI,EAAU,8BACd,GAAI,EAAQ,OAAS,QAAU,2BAA4B,EAAQ,IAC/D,EAAU,mCAAqC,EAEnD,GAAI,CAEA,IAAM,GADS,MAAO,EAAG,EAAY,WAAW,GAAG,8EAAiB,GAC/C,OAAO,MAAM,QAAQ,EAC1C,GAAI,EAAM,SAAW,EACjB,OAAO,EAAM,GAAG,KAAK,EAG7B,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "BB102D11A7EE1B8764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/status.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.status,\n Effect.fn(\"cli.service.status\")(function* () {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover({ ...options, version: undefined })\n process.stdout.write((found?.url ?? \"stopped\") + EOL)\n }),\n)\n"
],
"mappings": ";+0BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,YACnC,OAAO,QAAG,yBAAoB,OAAE,cAAU,OAAG,MAC3C,SAAM,OAAU,WAAO,OAAc,aAAQ,EACvC,EAAQ,MAAO,EAAQ,SAAS,IAAK,EAAS,QAAS,MAAU,CAAC,EACxE,QAAQ,OAAO,OAAO,GAAO,KAAO,WAAa,CAAG,EACrD,CACH",
"debugId": "5FF059D372C6D11E64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/mcp/auth.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport {\n OpenCode,\n type IntegrationAttemptStatus,\n type IntegrationOAuthMethod,\n type OpenCodeClient,\n} from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect/service\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { resolveIntegration } from \"./resolve\"\n\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.auth,\n Effect.fn(\"cli.mcp.auth\")(function* (input) {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.ensure(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n\n const integration = yield* resolveIntegration(client, input.name, location)\n if (!integration)\n return yield* Effect.fail(new Error(`MCP server \"${input.name}\" is not an OAuth-capable remote server`))\n const method = integration.methods.find(\n (candidate): candidate is IntegrationOAuthMethod => candidate.type === \"oauth\",\n )\n if (!method)\n return yield* Effect.fail(new Error(`MCP server \"${input.name}\" is not an OAuth-capable remote server`))\n\n const started = yield* Effect.promise(() =>\n client.integration.connect.oauth({ integrationID: integration.id, methodID: method.id, inputs: {}, location }),\n )\n const attempt = started.data\n if (attempt.mode === \"code\")\n return yield* Effect.fail(new Error(\"This server requires manual code entry, which the CLI does not support\"))\n\n process.stdout.write(attempt.instructions + EOL + attempt.url + EOL)\n\n const result = yield* poll(client, attempt.attemptID)\n if (result.status === \"complete\") {\n process.stdout.write(`Authenticated with ${input.name}` + EOL)\n return\n }\n const reason = result.status === \"failed\" ? `: ${result.message}` : \"\"\n return yield* Effect.fail(new Error(`Authentication ${result.status}${reason}`))\n }),\n)\n\nconst poll = (\n client: OpenCodeClient,\n attemptID: string,\n): Effect.Effect<Exclude<IntegrationAttemptStatus, { status: \"pending\" }>> =>\n Effect.gen(function* () {\n const status = yield* Effect.promise(() => client.integration.attempt.status({ attemptID, location })).pipe(\n Effect.map((result) => result.data),\n )\n if (status.status === \"pending\") {\n yield* Effect.sleep(\"1 second\")\n return yield* poll(client, attemptID)\n }\n return status\n })\n"
],
"mappings": ";46BAAA,mBAAS,gBAcT,SAAM,OAAW,MAAE,eAAW,aAAQ,SAAI,MAAE,OAE7B,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,UAC/B,OAAO,QAAG,mBAAc,OAAE,cAAU,MAAC,OAAO,CAC1C,IAAM,EAAU,MAAO,EAAc,QAAQ,EAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,OAAO,CAAO,GAClD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,EAAc,MAAO,EAAmB,EAAQ,EAAM,KAAM,CAAQ,EAC1E,GAAI,CAAC,EACH,OAAO,MAAO,EAAO,KAAS,MAAM,eAAe,EAAM,6CAA6C,CAAC,EACzG,IAAM,EAAS,EAAY,QAAQ,KACjC,CAAC,IAAmD,EAAU,OAAS,OACzE,EACA,GAAI,CAAC,EACH,OAAO,MAAO,EAAO,KAAS,MAAM,eAAe,EAAM,6CAA6C,CAAC,EAKzG,IAAM,GAHU,MAAO,EAAO,QAAQ,IACpC,EAAO,YAAY,QAAQ,MAAM,CAAE,cAAe,EAAY,GAAI,SAAU,EAAO,GAAI,OAAQ,CAAC,EAAG,UAAS,CAAC,CAC/G,GACwB,KACxB,GAAI,EAAQ,OAAS,OACnB,OAAO,MAAO,EAAO,KAAS,MAAM,wEAAwE,CAAC,EAE/G,QAAQ,OAAO,MAAM,EAAQ,aAAe,EAAM,EAAQ,IAAM,CAAG,EAEnE,IAAM,EAAS,MAAO,EAAK,EAAQ,EAAQ,SAAS,EACpD,GAAI,EAAO,SAAW,WAAY,CAChC,QAAQ,OAAO,MAAM,sBAAsB,EAAM,OAAS,CAAG,EAC7D,OAEF,IAAM,EAAS,EAAO,SAAW,SAAW,KAAK,EAAO,UAAY,GACpE,OAAO,MAAO,EAAO,KAAS,MAAM,kBAAkB,EAAO,SAAS,GAAQ,CAAC,EAChF,CACH,EAEM,EAAO,CACX,EACA,IAEA,EAAO,IAAI,SAAU,EAAG,CACtB,IAAM,EAAS,MAAO,EAAO,QAAQ,IAAM,EAAO,YAAY,QAAQ,OAAO,CAAE,YAAW,UAAS,CAAC,CAAC,EAAE,KACrG,EAAO,IAAI,CAAC,IAAW,EAAO,IAAI,CACpC,EACA,GAAI,EAAO,SAAW,UAEpB,OADA,MAAO,EAAO,MAAM,UAAU,EACvB,MAAO,EAAK,EAAQ,CAAS,EAEtC,OAAO,EACR",
"debugId": "6FC79C44CEF46BE664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

+2
-2

@@ -7,5 +7,5 @@ {

],
"mappings": ";;mtCAgBA,SAAM,OAAW,OAAQ,cAAS,OAAU,MAC1C,OAAG,SAAa,yCAChB,SAAK,SAAa,yCAClB,WAAO,MACL,YAAQ,SAAa,wCACvB,OACA,aAAS,MACP,WAAO,SAAa,wCACtB,OACA,SAAK,MACH,UAAM,SAAa,yCACnB,SAAK,SAAa,yCAClB,UAAM,SAAa,yCACnB,YAAQ,SAAa,wCACvB,EACA,QAAS,IAAa,yCACtB,KAAM,IAAa,yCACnB,IAAK,IAAa,yCAClB,KAAM,IAAa,yCACnB,QAAS,CACP,MAAO,IAAa,yCACpB,QAAS,IAAa,yCACtB,OAAQ,IAAa,yCACrB,KAAM,IAAa,yCACnB,IAAK,IAAa,yCAClB,IAAK,IAAa,yCAClB,MAAO,IAAa,wCACtB,EACA,MAAO,IAAa,wCACtB,CAAC,EAED,EAAO,QAAQ,eAAgB,CAC7B,QAAS,EACT,QAAS,EACT,MAAO,EACP,KAAM,QAAQ,KAAK,MAAM,CAAC,CAC5B,CAAC,EAAE,KACD,EAAO,QAAQ,IAAM,EAAQ,IAAI,EAAU,EAAU,CAAE,QAAS,CAAoB,CAAC,CAAC,EACtF,EAAO,aAAa,CAAE,KAAM,KAAM,CAAC,EACnC,EAAO,QAAQ,EAAO,KAAK,EAC3B,EAAO,QAAQ,EAAQ,KAAK,EAC5B,EAAO,QAAQ,EAAe,MAAM,EAAU,MAAM,CAAC,EAAO,KAAM,EAAW,KAAM,EAAI,IAAI,CAAC,CAAC,CAAC,EAC9F,EAAO,QAAQ,EAAc,KAAK,EAClC,EAAO,QAAQ,EAAa,KAAK,EACjC,EAAO,OACP,EAAO,IAAI,IAAM,EAAO,KAAK,IAAM,QAAQ,KAAK,QAAQ,UAAY,CAAC,CAAC,CAAC,EACvE,EAAY,OACd",
"debugId": "569D636D27C9638264756E2164756E21",
"mappings": ";;+oCAgBA,SAAM,OAAW,OAAQ,cAAS,OAAU,MAC1C,OAAG,SAAa,yCAChB,SAAK,SAAa,yCAClB,WAAO,MACL,YAAQ,SAAa,wCACvB,OACA,aAAS,MACP,WAAO,SAAa,wCACtB,OACA,SAAK,MACH,UAAM,SAAa,yCACnB,SAAK,SAAa,yCAClB,UAAM,SAAa,yCACnB,OAAQ,IAAa,wCACvB,EACA,QAAS,IAAa,yCACtB,KAAM,IAAa,yCACnB,IAAK,IAAa,yCAClB,KAAM,IAAa,yCACnB,QAAS,CACP,MAAO,IAAa,yCACpB,QAAS,IAAa,yCACtB,OAAQ,IAAa,yCACrB,KAAM,IAAa,yCACnB,IAAK,IAAa,yCAClB,IAAK,IAAa,yCAClB,MAAO,IAAa,wCACtB,EACA,MAAO,IAAa,wCACtB,CAAC,EAED,EAAO,QAAQ,eAAgB,CAC7B,QAAS,EACT,QAAS,EACT,MAAO,EACP,KAAM,QAAQ,KAAK,MAAM,CAAC,CAC5B,CAAC,EAAE,KACD,EAAO,QAAQ,IAAM,EAAQ,IAAI,EAAU,EAAU,CAAE,QAAS,CAAoB,CAAC,CAAC,EACtF,EAAO,aAAa,CAAE,KAAM,KAAM,CAAC,EACnC,EAAO,QAAQ,EAAO,KAAK,EAC3B,EAAO,QAAQ,EAAQ,KAAK,EAC5B,EAAO,QAAQ,EAAe,MAAM,EAAU,MAAM,CAAC,EAAO,KAAM,EAAW,KAAM,EAAI,IAAI,CAAC,CAAC,CAAC,EAC9F,EAAO,QAAQ,EAAc,KAAK,EAClC,EAAO,QAAQ,EAAa,KAAK,EACjC,EAAO,OACP,EAAO,IAAI,IAAM,EAAO,KAAK,IAAM,QAAQ,KAAK,QAAQ,UAAY,CAAC,CAAC,CAAC,EACvE,EAAY,OACd",
"debugId": "63656F2E6D1ABF0E64756E2164756E21",
"names": []
}
{
"name": "@opencode-ai/cli-linux-arm64",
"version": "0.0.0-next-15608",
"version": "0.0.0-next-15614",
"license": "MIT",

@@ -5,0 +5,0 @@ "repository": {

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../client/src/effect/service.ts", "../client/src/effect/generated/client-error.ts", "../protocol/src/client.ts"],
"sourcesContent": [
"import { ServiceStatus } from \"@opencode-ai/protocol/groups/health\"\nimport { Effect, FileSystem, Option, Schedule, Schema } from \"effect\"\nimport { spawn, type ChildProcess } from \"node:child_process\"\nimport { homedir } from \"node:os\"\nimport { join } from \"node:path\"\n\n// Find, start, and stop the local opencode background service.\n//\n// The service daemon advertises itself through a registration file in the\n// user's state directory: url, pid, version, and the private password, with\n// 0600 permissions. That file is the complete discovery contract — reading it\n// is all a client needs to connect. The daemon's own configuration (port,\n// persisted password) is CLI-owned and never read here.\n\nexport type Endpoint = {\n readonly url: string\n readonly auth?: {\n readonly type: \"basic\"\n readonly username: string\n readonly password: string\n }\n}\n\nexport type Options = {\n // Absolute path to the service registration file. Defaults to\n // opencode/service.json in the XDG state directory.\n readonly file?: string\n // When set, discovery only returns a server reporting this exact version,\n // and start() replaces a healthy server whose version differs.\n readonly version?: string\n // Argv used to spawn the service. Defaults to [\"opencode\", \"serve\",\n // \"--service\"] resolved from PATH.\n readonly command?: ReadonlyArray<string>\n}\n\nexport type StartReason = \"missing\" | \"version-mismatch\"\n\nexport type StartOptions = Options & {\n // Called once when start() decides it must spawn: either no service was\n // found, or a healthy service with a different version is being replaced.\n // `existing` carries the registration of the service being replaced.\n readonly onStart?: (reason: StartReason, existing?: Info) => void\n readonly onStatus?: (status: Status) => void\n}\n\nexport type Status =\n | { readonly type: \"missing\" }\n | { readonly type: \"unreachable\" }\n | { readonly type: \"unresponsive\" }\n | (ServiceStatus.State & { readonly version?: string })\n\nexport class FailedError extends Schema.TaggedErrorClass<FailedError>()(\"ServiceFailedError\", {\n message: Schema.String,\n action: Schema.String,\n}) {}\n\ntype Contender = {\n readonly child: ChildProcess\n readonly error: () => Error | undefined\n}\n\n// Read-only lookup: registration file plus health check and version gate.\n// Never spawns; escalation to start() is the caller's policy.\nexport const discover = Effect.fn(\"service.discover\")(function* (options: Options = {}) {\n return (yield* discoverLocal(options))?.endpoint\n})\n\nexport const status = Effect.fn(\"service.status\")(function* (options: Options = {}) {\n const result = yield* registered(options.file, true)\n if (result.info === undefined) return { type: \"missing\" } satisfies Status\n if (result.service === undefined) return { type: \"unreachable\" } satisfies Status\n return publicStatus(result.service)\n})\n\nfunction publicStatus(service: LocalService): Status {\n return { ...service.status, version: service.version }\n}\n\nconst discoverLocal = Effect.fnUntraced(function* (options: Options) {\n const found = (yield* registered(options.file)).service\n if (found?.status.type !== \"ready\") return undefined\n if (options.version !== undefined && found.version !== options.version) return undefined\n return found\n})\n\n// Idempotent ensure-running: reuses a healthy compatible server, replaces a\n// version-mismatched one, and otherwise spawns small contenders until a server\n// becomes discoverable. A contender is never killed merely for slow startup.\nexport const start = Effect.fn(\"service.start\")(function* (options: StartOptions = {}) {\n const contenders = new Set<Contender>()\n let announced = false\n let reported: Status | undefined\n let lastSpawn = 0\n let spawnDelay = 5_000\n let ownerHeld = false\n const announce = (reason: StartReason, existing?: Info) =>\n Effect.sync(() => {\n if (announced) return\n announced = true\n options.onStart?.(reason, existing)\n })\n const spawnContender = Effect.gen(function* () {\n const [command, ...args] = options.command ?? [\"opencode\", \"serve\", \"--service\"]\n if (command === undefined) return yield* Effect.fail(new Error(\"Missing service command\"))\n return yield* Effect.try({\n try: () => {\n const child = spawn(command, args, { detached: true, stdio: \"ignore\" })\n let error: Error | undefined\n child.once(\"error\", (cause) => {\n error = new Error(\"Failed to start server\", { cause })\n })\n child.unref()\n return { child, error: () => error }\n },\n catch: (cause) => new Error(\"Failed to start server\", { cause }),\n })\n })\n const found = yield* Effect.gen(function* () {\n const registration = yield* registered(options.file, true)\n const info = registration.info\n const service = registration.service\n const current: Status =\n service === undefined ? { type: info === undefined ? \"missing\" : \"unreachable\" } : publicStatus(service)\n const next = ownerHeld && service === undefined ? ({ type: \"unresponsive\" } satisfies Status) : current\n yield* Effect.sync(() => {\n if (sameStatus(reported, next)) return\n reported = next\n options.onStatus?.(next)\n })\n if (service !== undefined) {\n ownerHeld = false\n spawnDelay = 5_000\n const compatible = !service.legacy && (options.version === undefined || service.version === options.version)\n if (compatible && service.status.type === \"ready\") return Option.some(service)\n if (compatible && service.status.type === \"failed\")\n return yield* new FailedError({ message: service.status.message, action: service.status.action })\n if (compatible || service.status.type === \"stopping\") return Option.none<LocalService>()\n yield* announce(\"version-mismatch\", service.info)\n yield* kill(service, options, options.version).pipe(Effect.ignore)\n lastSpawn = 0\n return Option.none<LocalService>()\n } else if (lastSpawn === 0 && info !== undefined) lastSpawn = Date.now()\n\n const failure = [...contenders].map(contenderFailure).find((error): error is Error => error !== undefined)\n if (failure !== undefined) return yield* Effect.fail(failure)\n const finished = [...contenders].filter(contenderFinished)\n if (finished.some((item) => item.child.exitCode === 0)) {\n ownerHeld = true\n spawnDelay = Math.min(spawnDelay * 2, 30_000)\n }\n finished.forEach((item) => contenders.delete(item))\n // Keep one candidate plus one lock probe so a pre-lock stall cannot block recovery.\n if (contenders.size < 2 && Date.now() - lastSpawn >= spawnDelay) {\n yield* announce(\"missing\")\n contenders.add(yield* spawnContender)\n lastSpawn = Date.now()\n }\n return Option.none<LocalService>()\n }).pipe(Effect.repeat({ until: Option.isSome, schedule: Schedule.spaced(\"1 second\") }))\n return Option.getOrThrow(found).endpoint\n})\n\nfunction sameStatus(left: Status | undefined, right: Status) {\n if (left?.type !== right.type) return false\n if (right.type === \"failed\")\n return (\n left.type === \"failed\" &&\n left.version === right.version &&\n left.message === right.message &&\n left.action === right.action\n )\n if (right.type === \"stopping\")\n return left.type === \"stopping\" && left.version === right.version && left.targetVersion === right.targetVersion\n if (right.type === \"starting\" || right.type === \"ready\")\n return left.type === right.type && left.version === right.version\n return true\n}\n\nfunction contenderFailure(contender: Contender) {\n const error = contender.error()\n if (error !== undefined) return error\n if (contender.child.exitCode !== null && contender.child.exitCode !== 0)\n return new Error(`Server process exited with code ${contender.child.exitCode}`)\n if (contender.child.signalCode !== null)\n return new Error(`Server process terminated by ${contender.child.signalCode}`)\n return undefined\n}\n\nfunction contenderFinished(contender: Contender) {\n return contender.error() !== undefined || contender.child.exitCode !== null || contender.child.signalCode !== null\n}\n\nexport type StopMetadata = {\n readonly targetVersion?: string\n}\n\nexport const stop = Effect.fn(\"service.stop\")(function* (options: Options = {}, metadata: StopMetadata = {}) {\n const existing = yield* find(options)\n if (existing !== undefined) yield* kill(existing, options, metadata.targetVersion)\n})\n\nfunction fallback() {\n const state = process.env[\"XDG_STATE_HOME\"] ?? join(homedir(), \".local\", \"state\")\n return join(state, \"opencode\", \"service.json\")\n}\n\nexport function headers(endpoint: Endpoint) {\n if (endpoint.auth === undefined) return undefined\n return { authorization: \"Basic \" + btoa(endpoint.auth.username + \":\" + endpoint.auth.password) }\n}\n\nexport const Info = Schema.Struct({\n id: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n url: Schema.String,\n pid: Schema.Int.check(Schema.isGreaterThan(0)),\n password: Schema.optional(Schema.String),\n})\nexport type Info = typeof Info.Type\n\nconst decode = Schema.decodeUnknownEffect(Schema.fromJsonString(Info))\nconst decodeHealth = Schema.decodeUnknownOption(ServiceStatus.Health)\nconst decodeLegacyHealth = Schema.decodeUnknownOption(Schema.Struct({ healthy: Schema.Literal(true) }))\n\n// A missing or corrupt file means no valid info; callers treat both\n// the same (the registering server self-evicts, clients rediscover).\nconst read = Effect.fnUntraced(function* (file?: string) {\n const fs = yield* FileSystem.FileSystem\n const text = yield* fs.readFileString(file ?? fallback()).pipe(Effect.option)\n if (Option.isNone(text)) return undefined\n return yield* decode(text.value).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n})\n\ntype LocalService = {\n readonly info: Info\n readonly endpoint: Endpoint\n readonly version?: string\n readonly status: ServiceStatus.State\n readonly legacy: boolean\n}\n\nconst probe = Effect.fnUntraced(function* (info: Info, allowLegacy = false) {\n const endpoint = {\n url: info.url,\n auth:\n info.password === undefined\n ? undefined\n : { type: \"basic\" as const, username: \"opencode\", password: info.password },\n } satisfies Endpoint\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(\"/api/health\", info.url), {\n headers: headers(endpoint),\n signal: AbortSignal.timeout(2_000),\n }),\n ).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n if (response === undefined) return undefined\n const body = yield* Effect.tryPromise(() => response.json()).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n const health = decodeHealth(body)\n if (Option.isSome(health)) {\n if (health.value.pid !== info.pid) return undefined\n if (info.version !== undefined && health.value.version !== info.version) return undefined\n if (info.id !== undefined && health.value.instanceID !== undefined && health.value.instanceID !== info.id)\n return undefined\n return {\n info,\n endpoint,\n version: health.value.version,\n status: health.value.status,\n legacy: false,\n } satisfies LocalService\n }\n if (\n !allowLegacy ||\n Option.isNone(decodeLegacyHealth(body)) ||\n (typeof body === \"object\" && body !== null && (\"version\" in body || \"pid\" in body))\n )\n return undefined\n return { info, endpoint, status: { type: \"ready\" }, legacy: true } satisfies LocalService\n})\n\nconst registered = Effect.fnUntraced(function* (file?: string, allowLegacy = false) {\n const info = yield* read(file)\n if (info === undefined) return { info: undefined, service: undefined }\n return { info, service: yield* probe(info, allowLegacy) }\n})\n\n// Health-checked lookup without the version gate: status operations must be\n// able to see (and replace or stop) a server from a different version.\nconst find = Effect.fnUntraced(function* (options: Options) {\n return (yield* registered(options.file, true)).service\n})\n\n// 50ms cadence bounded at ~5s, shared by stop escalation and each start\n// discovery window.\nconst poll = Schedule.spaced(\"50 millis\").pipe(Schedule.both(Schedule.recurs(100)))\n\nconst signal = (pid: number, name: NodeJS.Signals) =>\n Effect.try({ try: () => process.kill(pid, name), catch: (cause) => cause }).pipe(Effect.ignore)\n\nconst stopped = Effect.fnUntraced(function* (pid: number) {\n const running = yield* Effect.try({ try: () => process.kill(pid, 0), catch: () => false }).pipe(\n Effect.orElseSucceed(() => false),\n )\n if (!running) return true\n return yield* Effect.fail(new Error(`Server process ${pid} is still running`))\n})\n\nfunction same(left: Info, right: Info) {\n return left.id === right.id && left.version === right.version && left.url === right.url && left.pid === right.pid\n}\n\nconst kill = Effect.fnUntraced(function* (service: LocalService, options: Options, targetVersion?: string) {\n const requested = yield* requestStop(service, targetVersion)\n if (requested === \"rejected\") return\n if (requested === \"unsupported\") {\n // A stale registration may point at a reused PID. Authenticate again\n // immediately before the legacy signal fallback.\n const current = yield* find(options)\n if (current === undefined || !same(current.info, service.info)) return\n yield* signal(service.info.pid, \"SIGTERM\")\n }\n const done = yield* stopped(service.info.pid).pipe(Effect.retry(poll), Effect.option)\n if (Option.isSome(done)) return\n\n const latest = yield* find(options)\n if (latest === undefined || !same(latest.info, service.info)) return\n yield* signal(service.info.pid, \"SIGKILL\")\n yield* stopped(service.info.pid).pipe(Effect.retry(poll))\n})\n\nconst decodeStopResponse = Schema.decodeUnknownOption(ServiceStatus.StopResponse)\n\nconst requestStop = Effect.fnUntraced(function* (service: LocalService, targetVersion?: string) {\n if (service.info.id === undefined || service.legacy) return \"unsupported\" as const\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(\"/api/service/stop\", service.info.url), {\n method: \"POST\",\n headers: { ...headers(service.endpoint), \"content-type\": \"application/json\" },\n body: JSON.stringify({ instanceID: service.info.id, targetVersion }),\n signal: AbortSignal.timeout(2_000),\n }),\n ).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n if (response === undefined || response.status === 404 || response.status === 405) return \"unsupported\" as const\n const body = yield* Effect.tryPromise(() => response.json()).pipe(Effect.option, Effect.map(Option.getOrUndefined))\n const decoded = decodeStopResponse(body)\n if (!response.ok || Option.isNone(decoded) || !decoded.value.accepted) return \"rejected\" as const\n return \"accepted\" as const\n})\n\nexport * as Service from \"./service.js\"\n",
"import { Schema } from \"effect\"\n\nexport class ClientError extends Schema.TaggedErrorClass<ClientError>()(\"ClientError\", {\n cause: Schema.Defect(),\n}) {}\n",
"import { InvalidRequestError, SessionNotFoundError } from \"./errors.js\"\nimport { makeDefaultApi } from \"./api.js\"\nimport type { Api } from \"./api.js\"\nimport type { Context } from \"effect\"\nimport { HttpApiMiddleware } from \"effect/unstable/httpapi\"\nimport type { EventGroup } from \"./groups/event.js\"\n\nclass LocationMiddleware extends HttpApiMiddleware.Service<LocationMiddleware>()(\n \"@opencode-ai/client/LocationMiddleware\",\n) {}\n\nclass SessionLocationMiddleware extends HttpApiMiddleware.Service<SessionLocationMiddleware>()(\n \"@opencode-ai/client/SessionLocationMiddleware\",\n { error: [InvalidRequestError, SessionNotFoundError] },\n) {}\n\ntype ClientApiShape = Api<\n Context.Service.Identifier<typeof LocationMiddleware>,\n Context.Service.Shape<typeof LocationMiddleware>,\n Context.Service.Identifier<typeof SessionLocationMiddleware>,\n Context.Service.Shape<typeof SessionLocationMiddleware>,\n Context.Service.Identifier<typeof SessionLocationMiddleware>,\n Context.Service.Shape<typeof SessionLocationMiddleware>,\n typeof EventGroup\n>\n\nexport const ClientApi: ClientApiShape = makeDefaultApi({\n locationMiddleware: LocationMiddleware,\n // The real server uses a form-specific middleware with an undocumented `global` sentinel branch.\n // The generated client only needs a middleware identity for API typing.\n formLocationMiddleware: SessionLocationMiddleware,\n sessionLocationMiddleware: SessionLocationMiddleware,\n})\n\nexport const groupNames = {\n \"server.health\": \"health\",\n \"server.server\": \"server\",\n \"server.debug\": \"debug\",\n \"server.location\": \"location\",\n \"server.agent\": \"agent\",\n \"server.plugin\": \"plugin\",\n \"server.session\": \"session\",\n \"server.message\": \"message\",\n \"server.model\": \"model\",\n \"server.generate\": \"generate\",\n \"server.provider\": \"provider\",\n \"server.integration\": \"integration\",\n \"server.credential\": \"credential\",\n \"server.form\": \"form\",\n \"server.permission\": \"permission\",\n \"server.fs\": \"file\",\n \"server.command\": \"command\",\n \"server.skill\": \"skill\",\n \"server.event\": \"event\",\n \"server.pty\": \"pty\",\n \"server.shell\": \"shell\",\n \"server.mcp\": \"mcp\",\n \"server.question\": \"question\",\n \"server.reference\": \"reference\",\n \"server.project\": \"project\",\n \"server.projectCopy\": \"projectCopy\",\n \"server.vcs\": \"vcs\",\n} as const\n\nexport const promiseOmitEndpoints = new Set([\"pty.connect\", \"pty.connectToken\"])\nexport const effectOmitEndpoints = new Set([\"fs.read\", \"pty.connect\", \"pty.connectToken\"])\n"
],
"mappings": ";+UAEA,qBAAS,2BACT,kBAAS,WACT,eAAS,aA+CF,MAAM,UAAoB,EAAO,iBAA8B,EAAE,qBAAsB,CAC5F,QAAS,EAAO,OAChB,OAAQ,EAAO,MACjB,CAAC,CAAE,CAAC,CASG,IAAM,EAAW,EAAO,GAAG,kBAAkB,EAAE,SAAU,CAAC,EAAmB,CAAC,EAAG,CACtF,OAAQ,MAAO,EAAc,CAAO,IAAI,SACzC,EAEY,EAAS,EAAO,GAAG,gBAAgB,EAAE,SAAU,CAAC,EAAmB,CAAC,EAAG,CAClF,IAAM,EAAS,MAAO,EAAW,EAAQ,KAAM,EAAI,EACnD,GAAI,EAAO,OAAS,OAAW,MAAO,CAAE,KAAM,SAAU,EACxD,GAAI,EAAO,UAAY,OAAW,MAAO,CAAE,KAAM,aAAc,EAC/D,OAAO,EAAa,EAAO,OAAO,EACnC,EAED,SAAS,CAAY,CAAC,EAA+B,CACnD,MAAO,IAAK,EAAQ,OAAQ,QAAS,EAAQ,OAAQ,EAGvD,IAAM,EAAgB,EAAO,WAAW,SAAU,CAAC,EAAkB,CACnE,IAAM,GAAS,MAAO,EAAW,EAAQ,IAAI,GAAG,QAChD,GAAI,GAAO,OAAO,OAAS,QAAS,OACpC,GAAI,EAAQ,UAAY,QAAa,EAAM,UAAY,EAAQ,QAAS,OACxE,OAAO,EACR,EAKY,EAAQ,EAAO,GAAG,eAAe,EAAE,SAAU,CAAC,EAAwB,CAAC,EAAG,CACrF,IAAM,EAAa,IAAI,IACnB,EAAY,GACZ,EACA,EAAY,EACZ,EAAa,KACb,EAAY,GACV,EAAW,CAAC,EAAqB,IACrC,EAAO,KAAK,IAAM,CAChB,GAAI,EAAW,OACf,EAAY,GACZ,EAAQ,UAAU,EAAQ,CAAQ,EACnC,EACG,EAAiB,EAAO,IAAI,SAAU,EAAG,CAC7C,IAAO,KAAY,GAAQ,EAAQ,SAAW,CAAC,WAAY,QAAS,WAAW,EAC/E,GAAI,IAAY,OAAW,OAAO,MAAO,EAAO,KAAS,MAAM,yBAAyB,CAAC,EACzF,OAAO,MAAO,EAAO,IAAI,CACvB,IAAK,IAAM,CACT,IAAM,EAAQ,EAAM,EAAS,EAAM,CAAE,SAAU,GAAM,MAAO,QAAS,CAAC,EAClE,EAKJ,OAJA,EAAM,KAAK,QAAS,CAAC,IAAU,CAC7B,EAAY,MAAM,yBAA0B,CAAE,OAAM,CAAC,EACtD,EACD,EAAM,MAAM,EACL,CAAE,QAAO,MAAO,IAAM,CAAM,GAErC,MAAO,CAAC,IAAc,MAAM,yBAA0B,CAAE,OAAM,CAAC,CACjE,CAAC,EACF,EACK,EAAQ,MAAO,EAAO,IAAI,SAAU,EAAG,CAC3C,IAAM,EAAe,MAAO,EAAW,EAAQ,KAAM,EAAI,EACnD,EAAO,EAAa,KACpB,EAAU,EAAa,QACvB,EACJ,IAAY,OAAY,CAAE,KAAM,IAAS,OAAY,UAAY,aAAc,EAAI,EAAa,CAAO,EACnG,EAAO,GAAa,IAAY,OAAa,CAAE,KAAM,cAAe,EAAsB,EAMhG,GALA,MAAO,EAAO,KAAK,IAAM,CACvB,GAAI,EAAW,EAAU,CAAI,EAAG,OAChC,EAAW,EACX,EAAQ,WAAW,CAAI,EACxB,EACG,IAAY,OAAW,CACzB,EAAY,GACZ,EAAa,KACb,IAAM,EAAa,CAAC,EAAQ,SAAW,EAAQ,UAAY,QAAa,EAAQ,UAAY,EAAQ,SACpG,GAAI,GAAc,EAAQ,OAAO,OAAS,QAAS,OAAO,EAAO,KAAK,CAAO,EAC7E,GAAI,GAAc,EAAQ,OAAO,OAAS,SACxC,OAAO,MAAO,IAAI,EAAY,CAAE,QAAS,EAAQ,OAAO,QAAS,OAAQ,EAAQ,OAAO,MAAO,CAAC,EAClG,GAAI,GAAc,EAAQ,OAAO,OAAS,WAAY,OAAO,EAAO,KAAmB,EAIvF,OAHA,MAAO,EAAS,mBAAoB,EAAQ,IAAI,EAChD,MAAO,EAAK,EAAS,EAAS,EAAQ,OAAO,EAAE,KAAK,EAAO,MAAM,EACjE,EAAY,EACL,EAAO,KAAmB,EAC5B,QAAI,IAAc,GAAK,IAAS,OAAW,EAAY,KAAK,IAAI,EAEvE,IAAM,EAAU,CAAC,GAAG,CAAU,EAAE,IAAI,CAAgB,EAAE,KAAK,CAAC,IAA0B,IAAU,MAAS,EACzG,GAAI,IAAY,OAAW,OAAO,MAAO,EAAO,KAAK,CAAO,EAC5D,IAAM,EAAW,CAAC,GAAG,CAAU,EAAE,OAAO,EAAiB,EACzD,GAAI,EAAS,KAAK,CAAC,IAAS,EAAK,MAAM,WAAa,CAAC,EACnD,EAAY,GACZ,EAAa,KAAK,IAAI,EAAa,EAAG,KAAM,EAI9C,GAFA,EAAS,QAAQ,CAAC,IAAS,EAAW,OAAO,CAAI,CAAC,EAE9C,EAAW,KAAO,GAAK,KAAK,IAAI,EAAI,GAAa,EACnD,MAAO,EAAS,SAAS,EACzB,EAAW,IAAI,MAAO,CAAc,EACpC,EAAY,KAAK,IAAI,EAEvB,OAAO,EAAO,KAAmB,EAClC,EAAE,KAAK,EAAO,OAAO,CAAE,MAAO,EAAO,OAAQ,SAAU,EAAS,OAAO,UAAU,CAAE,CAAC,CAAC,EACtF,OAAO,EAAO,WAAW,CAAK,EAAE,SACjC,EAED,SAAS,CAAU,CAAC,EAA0B,EAAe,CAC3D,GAAI,GAAM,OAAS,EAAM,KAAM,MAAO,GACtC,GAAI,EAAM,OAAS,SACjB,OACE,EAAK,OAAS,UACd,EAAK,UAAY,EAAM,SACvB,EAAK,UAAY,EAAM,SACvB,EAAK,SAAW,EAAM,OAE1B,GAAI,EAAM,OAAS,WACjB,OAAO,EAAK,OAAS,YAAc,EAAK,UAAY,EAAM,SAAW,EAAK,gBAAkB,EAAM,cACpG,GAAI,EAAM,OAAS,YAAc,EAAM,OAAS,QAC9C,OAAO,EAAK,OAAS,EAAM,MAAQ,EAAK,UAAY,EAAM,QAC5D,MAAO,GAGT,SAAS,CAAgB,CAAC,EAAsB,CAC9C,IAAM,EAAQ,EAAU,MAAM,EAC9B,GAAI,IAAU,OAAW,OAAO,EAChC,GAAI,EAAU,MAAM,WAAa,MAAQ,EAAU,MAAM,WAAa,EACpE,OAAW,MAAM,mCAAmC,EAAU,MAAM,UAAU,EAChF,GAAI,EAAU,MAAM,aAAe,KACjC,OAAW,MAAM,gCAAgC,EAAU,MAAM,YAAY,EAC/E,OAGF,SAAS,EAAiB,CAAC,EAAsB,CAC/C,OAAO,EAAU,MAAM,IAAM,QAAa,EAAU,MAAM,WAAa,MAAQ,EAAU,MAAM,aAAe,KAOzG,IAAM,GAAO,EAAO,GAAG,cAAc,EAAE,SAAU,CAAC,EAAmB,CAAC,EAAG,EAAyB,CAAC,EAAG,CAC3G,IAAM,EAAW,MAAO,EAAK,CAAO,EACpC,GAAI,IAAa,OAAW,MAAO,EAAK,EAAU,EAAS,EAAS,aAAa,EAClF,EAED,SAAS,EAAQ,EAAG,CAClB,IAAM,EAAQ,QAAQ,IAAI,gBAAqB,EAAK,EAAQ,EAAG,SAAU,OAAO,EAChF,OAAO,EAAK,EAAO,WAAY,cAAc,EAGxC,SAAS,CAAO,CAAC,EAAoB,CAC1C,GAAI,EAAS,OAAS,OAAW,OACjC,MAAO,CAAE,cAAe,SAAW,KAAK,EAAS,KAAK,SAAW,IAAM,EAAS,KAAK,QAAQ,CAAE,EAG1F,IAAM,EAAO,EAAO,OAAO,CAChC,GAAI,EAAO,SAAS,EAAO,MAAM,EACjC,QAAS,EAAO,SAAS,EAAO,MAAM,EACtC,IAAK,EAAO,OACZ,IAAK,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EAC7C,SAAU,EAAO,SAAS,EAAO,MAAM,CACzC,CAAC,EAGK,GAAS,EAAO,oBAAoB,EAAO,eAAe,CAAI,CAAC,EAC/D,GAAe,EAAO,oBAAoB,EAAc,MAAM,EAC9D,GAAqB,EAAO,oBAAoB,EAAO,OAAO,CAAE,QAAS,EAAO,QAAQ,EAAI,CAAE,CAAC,CAAC,EAIhG,GAAO,EAAO,WAAW,SAAU,CAAC,EAAe,CAEvD,IAAM,EAAO,OADF,MAAO,EAAW,YACN,eAAe,GAAQ,GAAS,CAAC,EAAE,KAAK,EAAO,MAAM,EAC5E,GAAI,EAAO,OAAO,CAAI,EAAG,OACzB,OAAO,MAAO,GAAO,EAAK,KAAK,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvF,EAUK,GAAQ,EAAO,WAAW,SAAU,CAAC,EAAY,EAAc,GAAO,CAC1E,IAAM,EAAW,CACf,IAAK,EAAK,IACV,KACE,EAAK,WAAa,OACd,OACA,CAAE,KAAM,QAAkB,SAAU,WAAY,SAAU,EAAK,QAAS,CAChF,EACM,EAAW,MAAO,EAAO,WAAW,IACxC,MAAM,IAAI,IAAI,cAAe,EAAK,GAAG,EAAG,CACtC,QAAS,EAAQ,CAAQ,EACzB,OAAQ,YAAY,QAAQ,IAAK,CACnC,CAAC,CACH,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvD,GAAI,IAAa,OAAW,OAC5B,IAAM,EAAO,MAAO,EAAO,WAAW,IAAM,EAAS,KAAK,CAAC,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EAC5G,EAAS,GAAa,CAAI,EAChC,GAAI,EAAO,OAAO,CAAM,EAAG,CACzB,GAAI,EAAO,MAAM,MAAQ,EAAK,IAAK,OACnC,GAAI,EAAK,UAAY,QAAa,EAAO,MAAM,UAAY,EAAK,QAAS,OACzE,GAAI,EAAK,KAAO,QAAa,EAAO,MAAM,aAAe,QAAa,EAAO,MAAM,aAAe,EAAK,GACrG,OACF,MAAO,CACL,OACA,WACA,QAAS,EAAO,MAAM,QACtB,OAAQ,EAAO,MAAM,OACrB,OAAQ,EACV,EAEF,GACE,CAAC,GACD,EAAO,OAAO,GAAmB,CAAI,CAAC,GACrC,OAAO,IAAS,UAAY,IAAS,QAAS,YAAa,KAAQ,QAAS,IAE7E,OACF,MAAO,CAAE,OAAM,WAAU,OAAQ,CAAE,KAAM,OAAQ,EAAG,OAAQ,EAAK,EAClE,EAEK,EAAa,EAAO,WAAW,SAAU,CAAC,EAAe,EAAc,GAAO,CAClF,IAAM,EAAO,MAAO,GAAK,CAAI,EAC7B,GAAI,IAAS,OAAW,MAAO,CAAE,KAAM,OAAW,QAAS,MAAU,EACrE,MAAO,CAAE,OAAM,QAAS,MAAO,GAAM,EAAM,CAAW,CAAE,EACzD,EAIK,EAAO,EAAO,WAAW,SAAU,CAAC,EAAkB,CAC1D,OAAQ,MAAO,EAAW,EAAQ,KAAM,EAAI,GAAG,QAChD,EAIK,EAAO,EAAS,OAAO,WAAW,EAAE,KAAK,EAAS,KAAK,EAAS,OAAO,GAAG,CAAC,CAAC,EAE5E,EAAS,CAAC,EAAa,IAC3B,EAAO,IAAI,CAAE,IAAK,IAAM,QAAQ,KAAK,EAAK,CAAI,EAAG,MAAO,CAAC,IAAU,CAAM,CAAC,EAAE,KAAK,EAAO,MAAM,EAE1F,EAAU,EAAO,WAAW,SAAU,CAAC,EAAa,CAIxD,GAAI,EAHY,MAAO,EAAO,IAAI,CAAE,IAAK,IAAM,QAAQ,KAAK,EAAK,CAAC,EAAG,MAAO,IAAM,EAAM,CAAC,EAAE,KACzF,EAAO,cAAc,IAAM,EAAK,CAClC,GACc,MAAO,GACrB,OAAO,MAAO,EAAO,KAAS,MAAM,kBAAkB,oBAAsB,CAAC,EAC9E,EAED,SAAS,CAAI,CAAC,EAAY,EAAa,CACrC,OAAO,EAAK,KAAO,EAAM,IAAM,EAAK,UAAY,EAAM,SAAW,EAAK,MAAQ,EAAM,KAAO,EAAK,MAAQ,EAAM,IAGhH,IAAM,EAAO,EAAO,WAAW,SAAU,CAAC,EAAuB,EAAkB,EAAwB,CACzG,IAAM,EAAY,MAAO,GAAY,EAAS,CAAa,EAC3D,GAAI,IAAc,WAAY,OAC9B,GAAI,IAAc,cAAe,CAG/B,IAAM,EAAU,MAAO,EAAK,CAAO,EACnC,GAAI,IAAY,QAAa,CAAC,EAAK,EAAQ,KAAM,EAAQ,IAAI,EAAG,OAChE,MAAO,EAAO,EAAQ,KAAK,IAAK,SAAS,EAE3C,IAAM,EAAO,MAAO,EAAQ,EAAQ,KAAK,GAAG,EAAE,KAAK,EAAO,MAAM,CAAI,EAAG,EAAO,MAAM,EACpF,GAAI,EAAO,OAAO,CAAI,EAAG,OAEzB,IAAM,EAAS,MAAO,EAAK,CAAO,EAClC,GAAI,IAAW,QAAa,CAAC,EAAK,EAAO,KAAM,EAAQ,IAAI,EAAG,OAC9D,MAAO,EAAO,EAAQ,KAAK,IAAK,SAAS,EACzC,MAAO,EAAQ,EAAQ,KAAK,GAAG,EAAE,KAAK,EAAO,MAAM,CAAI,CAAC,EACzD,EAEK,GAAqB,EAAO,oBAAoB,EAAc,YAAY,EAE1E,GAAc,EAAO,WAAW,SAAU,CAAC,EAAuB,EAAwB,CAC9F,GAAI,EAAQ,KAAK,KAAO,QAAa,EAAQ,OAAQ,MAAO,cAC5D,IAAM,EAAW,MAAO,EAAO,WAAW,IACxC,MAAM,IAAI,IAAI,oBAAqB,EAAQ,KAAK,GAAG,EAAG,CACpD,OAAQ,OACR,QAAS,IAAK,EAAQ,EAAQ,QAAQ,EAAG,eAAgB,kBAAmB,EAC5E,KAAM,KAAK,UAAU,CAAE,WAAY,EAAQ,KAAK,GAAI,eAAc,CAAC,EACnE,OAAQ,YAAY,QAAQ,IAAK,CACnC,CAAC,CACH,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EACvD,GAAI,IAAa,QAAa,EAAS,SAAW,KAAO,EAAS,SAAW,IAAK,MAAO,cACzF,IAAM,EAAO,MAAO,EAAO,WAAW,IAAM,EAAS,KAAK,CAAC,EAAE,KAAK,EAAO,OAAQ,EAAO,IAAI,EAAO,cAAc,CAAC,EAC5G,EAAU,GAAmB,CAAI,EACvC,GAAI,CAAC,EAAS,IAAM,EAAO,OAAO,CAAO,GAAK,CAAC,EAAQ,MAAM,SAAU,MAAO,WAC9E,MAAO,WACR,ECzVM,MAAM,UAAoB,EAAO,iBAA8B,EAAE,cAAe,CACrF,MAAO,EAAO,OAAO,CACvB,CAAC,CAAE,CAAC,CCGJ,MAAM,UAA2B,EAAkB,QAA4B,EAC7E,wCACF,CAAE,CAAC,CAEH,MAAM,UAAkC,EAAkB,QAAmC,EAC3F,gDACA,CAAE,MAAO,CAAC,EAAqB,CAAoB,CAAE,CACvD,CAAE,CAAC,CAYI,IAAM,EAA4B,EAAe,CACtD,mBAAoB,EAGpB,uBAAwB,EACxB,0BAA2B,CAC7B,CAAC",
"debugId": "58455DF36D6685F064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/p-map@7.0.4/node_modules/p-map/index.js"],
"sourcesContent": [
"export default async function pMap(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tstopOnError = true,\n\t\tsignal,\n\t} = {},\n) {\n\treturn new Promise((resolve_, reject_) => {\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t\t}\n\n\t\tif (typeof mapper !== 'function') {\n\t\t\tthrow new TypeError('Mapper function is required');\n\t\t}\n\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t\t}\n\n\t\tconst result = [];\n\t\tconst errors = [];\n\t\tconst skippedIndexesMap = new Map();\n\t\tlet isRejected = false;\n\t\tlet isResolved = false;\n\t\tlet isIterableDone = false;\n\t\tlet resolvingCount = 0;\n\t\tlet currentIndex = 0;\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n\n\t\tconst signalListener = () => {\n\t\t\treject(signal.reason);\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tsignal?.removeEventListener('abort', signalListener);\n\t\t};\n\n\t\tconst resolve = value => {\n\t\t\tresolve_(value);\n\t\t\tcleanup();\n\t\t};\n\n\t\tconst reject = reason => {\n\t\t\tisRejected = true;\n\t\t\tisResolved = true;\n\t\t\treject_(reason);\n\t\t\tcleanup();\n\t\t};\n\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\n\t\t}\n\n\t\tconst next = async () => {\n\t\t\tif (isResolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextItem = await iterator.next();\n\n\t\t\tconst index = currentIndex;\n\t\t\tcurrentIndex++;\n\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\n\t\t\t// This can cause multiple calls to this `next()` function to\n\t\t\t// receive a `nextItem` with `done === true`.\n\t\t\t// The shutdown logic that rejects/resolves must be protected\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\n\t\t\t// non-idempotent.\n\t\t\tif (nextItem.done) {\n\t\t\t\tisIterableDone = true;\n\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tisResolved = true;\n\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pureResult = [];\n\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpureResult.push(value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(pureResult);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolvingCount++;\n\n\t\t\t// Intentionally detached\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst element = await nextItem.value;\n\n\t\t\t\t\tif (isResolved) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst value = await mapper(element, index);\n\n\t\t\t\t\t// Use Map to stage the index of the element.\n\t\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\t\tskippedIndexesMap.set(index, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[index] = value;\n\n\t\t\t\t\tresolvingCount--;\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (stopOnError) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors.push(error);\n\t\t\t\t\t\tresolvingCount--;\n\n\t\t\t\t\t\t// In that case we can't really continue regardless of `stopOnError` state\n\t\t\t\t\t\t// since an iterable is likely to continue throwing after it throws once.\n\t\t\t\t\t\t// If we continue calling `next()` indefinitely we will likely end up\n\t\t\t\t\t\t// in an infinite loop of failed iteration.\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait next();\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t};\n\n\t\t// Create the concurrent runners in a detached (non-awaited)\n\t\t// promise. We need this so we can await the `next()` calls\n\t\t// to stop creating runners before hitting the concurrency limit\n\t\t// if the iterable has already been marked as done.\n\t\t// NOTE: We *must* do this for async iterators otherwise we'll spin up\n\t\t// infinite `next()` calls by default and never start the event loop.\n\t\t(async () => {\n\t\t\tfor (let index = 0; index < concurrency; index++) {\n\t\t\t\ttry {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIterableDone || isRejected) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t});\n}\n\nexport function pMapIterable(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tbackpressure = concurrency,\n\t} = {},\n) {\n\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t}\n\n\tif (typeof mapper !== 'function') {\n\t\tthrow new TypeError('Mapper function is required');\n\t}\n\n\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t}\n\n\tif (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`backpressure\\` to be an integer from \\`concurrency\\` (${concurrency}) and up or \\`Infinity\\`, got \\`${backpressure}\\` (${typeof backpressure})`);\n\t}\n\n\treturn {\n\t\tasync * [Symbol.asyncIterator]() {\n\t\t\tconst iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\n\n\t\t\tconst promises = [];\n\t\t\tlet pendingPromisesCount = 0;\n\t\t\tlet isDone = false;\n\t\t\tlet index = 0;\n\n\t\t\tfunction trySpawn() {\n\t\t\t\tif (isDone || !(pendingPromisesCount < concurrency && promises.length < backpressure)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tpendingPromisesCount++;\n\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tconst {done, value} = await iterator.next();\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tpendingPromisesCount--;\n\t\t\t\t\t\treturn {done: true};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Spawn if still below concurrency and backpressure limit\n\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst returnValue = await mapper(await value, index++);\n\n\t\t\t\t\t\tpendingPromisesCount--;\n\n\t\t\t\t\t\tif (returnValue === pMapSkip) {\n\t\t\t\t\t\t\tconst index = promises.indexOf(promise);\n\n\t\t\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t\t\tpromises.splice(index, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Spawn if still below backpressure limit and just dropped below concurrency limit\n\t\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\t\treturn {done: false, value: returnValue};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tpendingPromisesCount--;\n\t\t\t\t\t\tisDone = true;\n\t\t\t\t\t\treturn {error};\n\t\t\t\t\t}\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\n\t\t\ttrySpawn();\n\n\t\t\twhile (promises.length > 0) {\n\t\t\t\tconst {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop\n\n\t\t\t\tpromises.shift();\n\n\t\t\t\tif (error) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (done) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Spawn if just dropped below backpressure limit and below the concurrency limit\n\t\t\t\ttrySpawn();\n\n\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport const pMapSkip = Symbol('skip');\n"
],
"mappings": "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",
"debugId": "4779FF80512F9ADD64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260303231226_add_workspace_fields.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260303231226_add_workspace_fields\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`type\\` text NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`name\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`directory\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`extra\\` text;`)\n yield* tx.run(`ALTER TABLE \\`workspace\\` DROP COLUMN \\`config\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,0CAA8C,EAC5D,MAAO,EAAG,IAAI,+CAAmD,EACjE,MAAO,EAAG,IAAI,2CAA+C,EAC7D,MAAO,EAAG,IAAI,+CAAmD,EAClE,EAEL",
"debugId": "94AD4CBD717FCB9564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "23873910F687D25364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260622142730_simplify_session_context_epoch.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622142730_simplify_session_context_epoch\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`agent\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`replacement_seq\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` DROP COLUMN \\`revision\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0DAA8D,EAC5E,MAAO,EAAG,IAAI,oEAAwE,EACtF,MAAO,EAAG,IAAI,6DAAiE,EAChF,EAEL",
"debugId": "F35B7391265ECB7664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../tui/src/component/spinner.tsx", "../tui/src/ui/spinner.ts"],
"sourcesContent": [
"import { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { memo as _$memo } from \"@opentui/solid\";\nimport { Show } from \"solid-js\";\nimport { useTheme } from \"../context/theme\";\nimport { useConfig } from \"../config\";\nimport { registerOpencodeSpinner } from \"./register-spinner\";\nregisterOpencodeSpinner();\nexport const SPINNER_FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\nexport function Spinner(props) {\n const {\n theme\n } = useTheme();\n const config = useConfig().data;\n const color = () => props.color ?? theme.textMuted;\n return _$createComponent(Show, {\n get when() {\n return config.animations ?? true;\n },\n get fallback() {\n return (() => {\n var _el$4 = _$createElement(\"text\");\n _$insert(_el$4, (() => {\n var _c$ = _$memo(() => !!props.children);\n return () => _c$() ? [\"\\u22EF \", _$memo(() => props.children)] : \"⋯\";\n })());\n _$effect(_$p => _$setProp(_el$4, \"fg\", color(), _$p));\n return _el$4;\n })();\n },\n get children() {\n var _el$ = _$createElement(\"box\"),\n _el$2 = _$createElement(\"spinner\");\n _$insertNode(_el$, _el$2);\n _$setProp(_el$, \"flexDirection\", \"row\");\n _$setProp(_el$, \"gap\", 1);\n _$setProp(_el$2, \"frames\", SPINNER_FRAMES);\n _$setProp(_el$2, \"interval\", 80);\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return props.children;\n },\n get children() {\n var _el$3 = _$createElement(\"text\");\n _$insert(_el$3, () => props.children);\n _$effect(_$p => _$setProp(_el$3, \"fg\", color(), _$p));\n return _el$3;\n }\n }), null);\n _$effect(_$p => _$setProp(_el$2, \"color\", color(), _$p));\n return _el$;\n }\n });\n}",
"import type { ColorInput } from \"@opentui/core\"\nimport { RGBA } from \"@opentui/core\"\nimport type { ColorGenerator } from \"opentui-spinner\"\n\ninterface AdvancedGradientOptions {\n colors: ColorInput[]\n trailLength: number\n defaultColor?: ColorInput\n direction?: \"forward\" | \"backward\" | \"bidirectional\"\n holdFrames?: { start?: number; end?: number }\n enableFading?: boolean\n minAlpha?: number\n}\n\ninterface ScannerState {\n activePosition: number\n isHolding: boolean\n holdProgress: number\n holdTotal: number\n movementProgress: number\n movementTotal: number\n isMovingForward: boolean\n}\n\nfunction getScannerState(\n frameIndex: number,\n totalChars: number,\n options: Pick<AdvancedGradientOptions, \"direction\" | \"holdFrames\">,\n): ScannerState {\n const { direction = \"forward\", holdFrames = {} } = options\n\n if (direction === \"bidirectional\") {\n const forwardFrames = totalChars\n const holdEndFrames = holdFrames.end ?? 0\n const backwardFrames = totalChars - 1\n\n if (frameIndex < forwardFrames) {\n // Moving forward\n return {\n activePosition: frameIndex,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex,\n movementTotal: forwardFrames,\n isMovingForward: true,\n }\n } else if (frameIndex < forwardFrames + holdEndFrames) {\n // Holding at end\n return {\n activePosition: totalChars - 1,\n isHolding: true,\n holdProgress: frameIndex - forwardFrames,\n holdTotal: holdEndFrames,\n movementProgress: 0,\n movementTotal: 0,\n isMovingForward: true,\n }\n } else if (frameIndex < forwardFrames + holdEndFrames + backwardFrames) {\n // Moving backward\n const backwardIndex = frameIndex - forwardFrames - holdEndFrames\n return {\n activePosition: totalChars - 2 - backwardIndex,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: backwardIndex,\n movementTotal: backwardFrames,\n isMovingForward: false,\n }\n } else {\n // Holding at start\n return {\n activePosition: 0,\n isHolding: true,\n holdProgress: frameIndex - forwardFrames - holdEndFrames - backwardFrames,\n holdTotal: holdFrames.start ?? 0,\n movementProgress: 0,\n movementTotal: 0,\n isMovingForward: false,\n }\n }\n } else if (direction === \"backward\") {\n return {\n activePosition: totalChars - 1 - (frameIndex % totalChars),\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex % totalChars,\n movementTotal: totalChars,\n isMovingForward: false,\n }\n } else {\n return {\n activePosition: frameIndex % totalChars,\n isHolding: false,\n holdProgress: 0,\n holdTotal: 0,\n movementProgress: frameIndex % totalChars,\n movementTotal: totalChars,\n isMovingForward: true,\n }\n }\n}\n\nfunction calculateColorIndex(\n frameIndex: number,\n charIndex: number,\n totalChars: number,\n options: Pick<AdvancedGradientOptions, \"direction\" | \"holdFrames\" | \"trailLength\">,\n state?: ScannerState,\n): number {\n const { trailLength } = options\n const { activePosition, isHolding, holdProgress, isMovingForward } =\n state ?? getScannerState(frameIndex, totalChars, options)\n\n // Calculate directional distance (positive means trailing behind)\n const directionalDistance = isMovingForward\n ? activePosition - charIndex // For forward: trail is to the left (lower indices)\n : charIndex - activePosition // For backward: trail is to the right (higher indices)\n\n // Handle hold frame fading: keep the lead bright, fade the trail\n if (isHolding) {\n // Shift the color index by how long we've been holding\n return directionalDistance + holdProgress\n }\n\n // Normal movement - show gradient trail only behind the movement direction\n if (directionalDistance > 0 && directionalDistance < trailLength) {\n return directionalDistance\n }\n\n // At the active position, show the brightest color\n if (directionalDistance === 0) {\n return 0\n }\n\n return -1\n}\n\nfunction createKnightRiderTrail(options: AdvancedGradientOptions): ColorGenerator {\n const { colors, defaultColor, enableFading = true, minAlpha = 0 } = options\n\n // Use the provided defaultColor if it's an RGBA instance, otherwise convert/default\n // We use RGBA.fromHex for the fallback to ensure we have an RGBA object.\n // Note: If defaultColor is a string, we convert it once here.\n const defaultRgba = defaultColor instanceof RGBA ? defaultColor : RGBA.fromHex((defaultColor as string) || \"#000000\")\n\n // Store the base alpha from the inactive factor\n const baseInactiveAlpha = defaultRgba.a\n\n let cachedFrameIndex = -1\n let cachedState: ScannerState | null = null\n\n return (frameIndex: number, charIndex: number, _totalFrames: number, totalChars: number) => {\n if (frameIndex !== cachedFrameIndex) {\n cachedFrameIndex = frameIndex\n cachedState = getScannerState(frameIndex, totalChars, options)\n }\n\n const state = cachedState!\n\n const index = calculateColorIndex(frameIndex, charIndex, totalChars, options, state)\n\n // Calculate global fade for inactive dots during hold or movement\n const { isHolding, holdProgress, holdTotal, movementProgress, movementTotal } = state\n\n let fadeFactor = 1.0\n if (enableFading) {\n if (isHolding && holdTotal > 0) {\n // Fade out linearly to minAlpha\n const progress = Math.min(holdProgress / holdTotal, 1)\n fadeFactor = Math.max(minAlpha, 1 - progress * (1 - minAlpha))\n } else if (!isHolding && movementTotal > 0) {\n // Fade in linearly from minAlpha during movement\n const progress = Math.min(movementProgress / Math.max(1, movementTotal - 1), 1)\n fadeFactor = minAlpha + progress * (1 - minAlpha)\n }\n }\n\n // Combine base inactive alpha with the fade factor\n // This ensures inactiveFactor is respected while still allowing fading animation\n defaultRgba.a = baseInactiveAlpha * fadeFactor\n\n if (index === -1) {\n return defaultRgba\n }\n\n return colors[index] ?? defaultRgba\n }\n}\n\n/**\n * Derives a gradient of tail colors from a single bright color using alpha falloff\n * @param brightColor The brightest color (center/head of the scanner)\n * @param steps Number of gradient steps (default: 6)\n * @returns Array of RGBA colors with alpha-based trail fade (background-independent)\n */\nexport function deriveTrailColors(brightColor: ColorInput, steps: number = 6): RGBA[] {\n const baseRgba = brightColor instanceof RGBA ? brightColor : RGBA.fromHex(brightColor as string)\n\n const colors: RGBA[] = []\n\n for (let i = 0; i < steps; i++) {\n // Alpha-based falloff with optional bloom effect\n let alpha: number\n let brightnessFactor: number\n\n if (i === 0) {\n // Lead position: full brightness and opacity\n alpha = 1.0\n brightnessFactor = 1.0\n } else if (i === 1) {\n // Slight bloom/glare effect: brighten color but reduce opacity slightly\n alpha = 0.9\n brightnessFactor = 1.15\n } else {\n // Exponential alpha decay for natural-looking trail fade\n alpha = Math.pow(0.65, i - 1)\n brightnessFactor = 1.0\n }\n\n const r = Math.min(1.0, baseRgba.r * brightnessFactor)\n const g = Math.min(1.0, baseRgba.g * brightnessFactor)\n const b = Math.min(1.0, baseRgba.b * brightnessFactor)\n\n colors.push(RGBA.fromValues(r, g, b, alpha))\n }\n\n return colors\n}\n\n/**\n * Derives the inactive/default color from a bright color using alpha\n * @param brightColor The brightest color (center/head of the scanner)\n * @param factor Alpha factor for inactive color (default: 0.2, range: 0-1)\n * @returns The same color with reduced alpha for background-independent dimming\n */\nexport function deriveInactiveColor(brightColor: ColorInput, factor: number = 0.2): RGBA {\n const baseRgba = brightColor instanceof RGBA ? brightColor : RGBA.fromHex(brightColor as string)\n\n // Use the full color brightness but adjust alpha for background-independent dimming\n return RGBA.fromValues(baseRgba.r, baseRgba.g, baseRgba.b, factor)\n}\n\nexport type KnightRiderStyle = \"blocks\" | \"diamonds\"\n\nexport interface KnightRiderOptions {\n width?: number\n style?: KnightRiderStyle\n holdStart?: number\n holdEnd?: number\n colors?: ColorInput[]\n /** Single color to derive trail from (alternative to providing colors array) */\n color?: ColorInput\n /** Number of trail steps when using single color (default: 6) */\n trailSteps?: number\n defaultColor?: ColorInput\n /** Alpha factor for inactive color when using single color (default: 0.2, range: 0-1) */\n inactiveFactor?: number\n /** Enable fading of inactive dots during hold and movement (default: true) */\n enableFading?: boolean\n /** Minimum alpha value when fading (default: 0, range: 0-1) */\n minAlpha?: number\n}\n\n/**\n * Creates frame strings for a Knight Rider style scanner animation\n * @param options Configuration options for the Knight Rider effect\n * @returns Array of frame strings\n */\nexport function createFrames(options: KnightRiderOptions = {}): string[] {\n const width = options.width ?? 8\n const style = options.style ?? \"diamonds\"\n const holdStart = options.holdStart ?? 30\n const holdEnd = options.holdEnd ?? 9\n\n const colors =\n options.colors ??\n (options.color\n ? deriveTrailColors(options.color, options.trailSteps)\n : [\n RGBA.fromHex(\"#ff0000\"), // Brightest Red (Center)\n RGBA.fromHex(\"#ff5555\"), // Glare/Bloom\n RGBA.fromHex(\"#dd0000\"), // Trail 1\n RGBA.fromHex(\"#aa0000\"), // Trail 2\n RGBA.fromHex(\"#770000\"), // Trail 3\n RGBA.fromHex(\"#440000\"), // Trail 4\n ])\n\n const defaultColor =\n options.defaultColor ??\n (options.color ? deriveInactiveColor(options.color, options.inactiveFactor) : RGBA.fromHex(\"#330000\"))\n\n const trailOptions = {\n colors,\n trailLength: colors.length,\n defaultColor,\n direction: \"bidirectional\" as const,\n holdFrames: { start: holdStart, end: holdEnd },\n enableFading: options.enableFading,\n minAlpha: options.minAlpha,\n }\n\n // Bidirectional cycle: Forward (width) + Hold End + Backward (width-1) + Hold Start\n const totalFrames = width + holdEnd + (width - 1) + holdStart\n\n // Generate dynamic frames where inactive pixels are dots and active ones are blocks\n const frames = Array.from({ length: totalFrames }, (_, frameIndex) => {\n return Array.from({ length: width }, (_, charIndex) => {\n const index = calculateColorIndex(frameIndex, charIndex, width, trailOptions)\n\n if (style === \"diamonds\") {\n const shapes = [\"⬥\", \"◆\", \"⬩\", \"⬪\"]\n if (index >= 0 && index < trailOptions.colors.length) {\n return shapes[Math.min(index, shapes.length - 1)]\n }\n return \"·\"\n }\n\n // Default to blocks\n // It's active if we have a valid color index that is within our colors array\n const isActive = index >= 0 && index < trailOptions.colors.length\n return isActive ? \"■\" : \"⬝\"\n }).join(\"\")\n })\n\n return frames\n}\n\n/**\n * Creates a color generator function for Knight Rider style scanner animation\n * @param options Configuration options for the Knight Rider effect\n * @returns ColorGenerator function\n */\nexport function createColors(options: KnightRiderOptions = {}): ColorGenerator {\n const holdStart = options.holdStart ?? 30\n const holdEnd = options.holdEnd ?? 9\n\n const colors =\n options.colors ??\n (options.color\n ? deriveTrailColors(options.color, options.trailSteps)\n : [\n RGBA.fromHex(\"#ff0000\"), // Brightest Red (Center)\n RGBA.fromHex(\"#ff5555\"), // Glare/Bloom\n RGBA.fromHex(\"#dd0000\"), // Trail 1\n RGBA.fromHex(\"#aa0000\"), // Trail 2\n RGBA.fromHex(\"#770000\"), // Trail 3\n RGBA.fromHex(\"#440000\"), // Trail 4\n ])\n\n const defaultColor =\n options.defaultColor ??\n (options.color ? deriveInactiveColor(options.color, options.inactiveFactor) : RGBA.fromHex(\"#330000\"))\n\n const trailOptions = {\n colors,\n trailLength: colors.length,\n defaultColor,\n direction: \"bidirectional\" as const,\n holdFrames: { start: holdStart, end: holdEnd },\n enableFading: options.enableFading,\n minAlpha: options.minAlpha,\n }\n\n return createKnightRiderTrail(trailOptions)\n}\n"
],
"mappings": "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",
"debugId": "06EFC41D896E01D564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js", "../../node_modules/.bun/@opentelemetry+context-async-hooks@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/build/src/index.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractAsyncHooksContextManager = void 0;\nconst events_1 = require(\"events\");\nconst ADD_LISTENER_METHODS = [\n 'addListener',\n 'on',\n 'once',\n 'prependListener',\n 'prependOnceListener',\n];\nclass AbstractAsyncHooksContextManager {\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context, target) {\n if (target instanceof events_1.EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n _bindFunction(context, target) {\n const manager = this;\n const contextWrapper = function (...args) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper;\n }\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n _bindEventEmitter(context, ee) {\n const map = this._getPatchMap(ee);\n if (map !== undefined)\n return ee;\n this._createPatchMap(ee);\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined)\n return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return ee;\n }\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function (event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function (event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n }\n else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function (event, listener) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n }\n finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n _kOtListeners = Symbol('OtListeners');\n _wrapped = false;\n}\nexports.AbstractAsyncHooksContextManager = AbstractAsyncHooksContextManager;\n//# sourceMappingURL=AbstractAsyncHooksContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncHooksContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst asyncHooks = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nclass AsyncHooksContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncHook;\n _contexts = new Map();\n _stack = [];\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n active() {\n return this._stack[this._stack.length - 1] ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n this._enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n }\n finally {\n this._exitContext();\n }\n }\n enable() {\n this._asyncHook.enable();\n return this;\n }\n disable() {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n _init(uid, type) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP')\n return;\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n _destroy(uid) {\n this._contexts.delete(uid);\n }\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n _before(uid) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n /**\n * After hook is called just after completing the execution of a async context.\n */\n _after() {\n this._exitContext();\n }\n /**\n * Set the given context as active\n */\n _enterContext(context) {\n this._stack.push(context);\n }\n /**\n * Remove the context at the root of the stack\n */\n _exitContext() {\n this._stack.pop();\n }\n}\nexports.AsyncHooksContextManager = AsyncHooksContextManager;\n//# sourceMappingURL=AsyncHooksContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst async_hooks_1 = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\nclass AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncLocalStorage;\n constructor() {\n super();\n this._asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\nexports.AsyncLocalStorageContextManager = AsyncLocalStorageContextManager;\n//# sourceMappingURL=AsyncLocalStorageContextManager.js.map",
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = exports.AsyncHooksContextManager = void 0;\nvar AsyncHooksContextManager_1 = require(\"./AsyncHooksContextManager\");\nObject.defineProperty(exports, \"AsyncHooksContextManager\", { enumerable: true, get: function () { return AsyncHooksContextManager_1.AsyncHooksContextManager; } });\nvar AsyncLocalStorageContextManager_1 = require(\"./AsyncLocalStorageContextManager\");\nObject.defineProperty(exports, \"AsyncLocalStorageContextManager\", { enumerable: true, get: function () { return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager; } });\n//# sourceMappingURL=index.js.map"
],
"mappings": "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",
"debugId": "99D429EF3A67F94864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/status.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.status,\n Effect.fn(\"cli.service.status\")(function* () {\n const options = yield* ServiceConfig.options()\n const status = yield* Service.status(options)\n if (status.type !== \"ready\") {\n process.stdout.write(status.type + EOL)\n return\n }\n const found = yield* Service.discover({ ...options, version: undefined })\n process.stdout.write((found?.url ?? status.type) + EOL)\n }),\n)\n"
],
"mappings": ";u9BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,YACnC,OAAO,QAAG,yBAAoB,OAAE,cAAU,OAAG,MAC3C,SAAM,OAAU,WAAO,OAAc,aAAQ,OACvC,OAAS,WAAO,OAAQ,OAAO,CAAO,EAC5C,GAAI,EAAO,OAAS,QAAS,CAC3B,QAAQ,OAAO,MAAM,EAAO,KAAO,CAAG,EACtC,OAEF,IAAM,EAAQ,MAAO,EAAQ,SAAS,IAAK,EAAS,QAAS,MAAU,CAAC,EACxE,QAAQ,OAAO,OAAO,GAAO,KAAO,EAAO,MAAQ,CAAG,EACvD,CACH",
"debugId": "4CD5E3BD6824DD7364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/terminal.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/interfaces.ts", "../../node_modules/.bun/bun-pty@0.4.8/node_modules/bun-pty/src/index.ts", "../core/src/pty/pty.bun.ts"],
"sourcesContent": [
"// terminal.ts — JS/TS front-end (final fixed version)\n\nimport { dlopen, FFIType, ptr } from \"bun:ffi\";\nimport { Buffer } from \"node:buffer\";\nimport { EventEmitter } from \"./interfaces\";\nimport type { IPty, IPtyForkOptions, IExitEvent } from \"./interfaces\";\nimport { join, dirname, basename } from \"node:path\";\nimport { existsSync } from \"node:fs\";\n\nexport const DEFAULT_COLS = 80;\nexport const DEFAULT_ROWS = 24;\nexport const DEFAULT_FILE = \"sh\";\nexport const DEFAULT_NAME = \"xterm\";\n\n/**\n * Quote a string for shell-words compatible splitting on the Rust side.\n * We are not invoking a shell; quoting is only to preserve token boundaries\n * when Rust parses the command line with shell_words::split.\n * \n * @param s - The string to quote\n * @returns The quoted string\n */\nfunction shQuote(s: string): string {\n\tif (s.length === 0) return \"''\";\n\t// Replace ' with '\\'' (close-quote, escaped ', reopen)\n\treturn `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n\n// terminal.ts – loader fragment only\n\nfunction resolveLibPath(): string {\n\tconst env = process.env.BUN_PTY_LIB;\n\tif (env && existsSync(env)) return env;\n\n\t// For bun compile: use statically analyzable require with inline ternary.\n\t// Bun evaluates process.platform and process.arch at compile time and only\n\t// bundles the file for the target platform. The ternary MUST be inline\n\t// in the template literal for Bun's static analysis to work.\n\t// See: https://github.com/sursaone/bun-pty/issues/19\n\ttry {\n\t\t// @ts-ignore - require returns path for binary files in Bun\n\t\tconst embeddedPath = require(`../rust-pty/target/release/${process.platform === \"win32\" ? \"rust_pty.dll\" : process.platform === \"darwin\" ? (process.arch === \"arm64\" ? \"librust_pty_arm64.dylib\" : \"librust_pty.dylib\") : process.arch === \"arm64\" ? \"librust_pty_arm64.so\" : \"librust_pty.so\"}`);\n\t\tif (embeddedPath) return embeddedPath;\n\t} catch {\n\t\t// Not running as compiled binary, fall through to dynamic resolution\n\t}\n\n\t// Fallback: dynamic resolution for development scenarios\n\tconst platform = process.platform;\n\tconst arch = process.arch;\n\n\t// Try both architecture-specific and generic filenames\n\tconst filenames =\n\t\tplatform === \"darwin\"\n\t\t\t? arch === \"arm64\"\n\t\t\t\t? [\"librust_pty_arm64.dylib\", \"librust_pty.dylib\"]\n\t\t\t\t: [\"librust_pty.dylib\"]\n\t\t\t: platform === \"win32\"\n\t\t\t? [\"rust_pty.dll\"]\n\t\t\t: arch === \"arm64\"\n\t\t\t? [\"librust_pty_arm64.so\", \"librust_pty.so\"]\n\t\t\t: [\"librust_pty.so\"];\n\n\t// Start from the current module's location\n\tconst base = Bun.fileURLToPath(import.meta.url);\n\tconst fileDir = dirname(base);\n\tconst dirName = basename(fileDir);\n\t\n\t// Handle both development (src/terminal.ts) and production (dist/terminal.js) cases\n\t// If we're in src/ or dist/, go up one level to get the project root\n\tconst here = (dirName === \"src\" || dirName === \"dist\")\n\t\t? dirname(fileDir) // Go up one level from src/ or dist/\n\t\t: fileDir; // Otherwise use the directory as-is\n\n\tconst basePaths = [\n\t\tjoin(here, \"rust-pty\", \"target\", \"release\"), // Direct path from project root\n\t\tjoin(here, \"..\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"), // monorepo setups\n\t\tjoin(process.cwd(), \"node_modules\", \"bun-pty\", \"rust-pty\", \"target\", \"release\"),\n\t];\n\n\tconst fallbackPaths = [];\n\tfor (const basePath of basePaths) {\n\t\tfor (const filename of filenames) {\n\t\t\tfallbackPaths.push(join(basePath, filename));\n\t\t}\n\t}\n\n\tfor (const path of fallbackPaths) {\n\t\tif (existsSync(path)) return path;\n\t}\n\n\tthrow new Error(\n\t\t`librust_pty shared library not found.\\nChecked:\\n - BUN_PTY_LIB=${env ?? \"<unset>\"}\\n - ${fallbackPaths.join(\"\\n - \")}\\n\\nSet BUN_PTY_LIB or ensure one of these paths contains the file.`\n\t);\n}\n\nconst libPath = resolveLibPath();\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nlet lib: any;\n\n// try to load the lib, if it fails log the error\ntry {\n\tlib = dlopen(libPath, {\n\t\tbun_pty_spawn: {\n\t\t\targs: [FFIType.cstring, FFIType.cstring, FFIType.cstring, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_write: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_read: {\n\t\t\targs: [FFIType.i32, FFIType.pointer, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_resize: {\n\t\t\targs: [FFIType.i32, FFIType.i32, FFIType.i32],\n\t\t\treturns: FFIType.i32,\n\t\t},\n\t\tbun_pty_kill: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_pid: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_get_exit_code: { args: [FFIType.i32], returns: FFIType.i32 },\n\t\tbun_pty_close: { args: [FFIType.i32], returns: FFIType.void },\n\t});\n} catch (error) {\n\tconsole.error(\"Failed to load lib\", error);\n}\n\nexport class Terminal implements IPty {\n\tprivate handle = -1;\n\tprivate _pid = -1;\n\tprivate _cols = DEFAULT_COLS;\n\tprivate _rows = DEFAULT_ROWS;\n\tprivate readonly _name = DEFAULT_NAME;\n\n\tprivate _readLoop = false;\n\tprivate _closing = false;\n\n\t// TextDecoder with streaming mode to properly handle UTF-8 across chunk boundaries\n\t// Without this, multi-byte characters (like box-drawing ─) that span chunks become �\n\tprivate readonly _decoder = new TextDecoder(\"utf-8\");\n\n\tprivate readonly _onData = new EventEmitter<string>();\n\tprivate readonly _onExit = new EventEmitter<IExitEvent>();\n\n\tconstructor(\n\t\tfile = DEFAULT_FILE,\n\t\targs: string[] = [],\n\t\topts: IPtyForkOptions = { name: DEFAULT_NAME },\n\t) {\n\t\tthis._cols = opts.cols ?? DEFAULT_COLS;\n\t\tthis._rows = opts.rows ?? DEFAULT_ROWS;\n\t\tconst cwd = opts.cwd ?? process.cwd();\n\t\t// Properly quote file and arguments to preserve spaces and special characters\n\t\tconst cmdline = [shQuote(file), ...args.map(shQuote)].join(\" \");\n\n\t\t// Format environment variables as null-terminated string\n\t\tlet envStr = \"\";\n\t\tif (opts.env) {\n\t\t\tconst envPairs = Object.entries(opts.env).map(([k, v]) => `${k}=${v}`);\n\t\t\tenvStr = envPairs.join(\"\\0\") + \"\\0\";\n\t\t}\n\n\t\tthis.handle = lib.symbols.bun_pty_spawn(\n\t\t\tBuffer.from(`${cmdline}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${cwd}\\0`, \"utf8\"),\n\t\t\tBuffer.from(`${envStr}\\0`, \"utf8\"),\n\t\t\tthis._cols,\n\t\t\tthis._rows,\n\t\t);\n\t\tif (this.handle < 0) throw new Error(\"PTY spawn failed\");\n\n\t\tthis._pid = lib.symbols.bun_pty_get_pid(this.handle);\n\t\tthis._startReadLoop();\n\t}\n\n\t/* ------------- accessors ------------- */\n\n\tget pid() {\n\t\treturn this._pid;\n\t}\n\tget cols() {\n\t\treturn this._cols;\n\t}\n\tget rows() {\n\t\treturn this._rows;\n\t}\n\tget process() {\n\t\treturn \"shell\";\n\t}\n\n\tget onData() {\n\t\treturn this._onData.event;\n\t}\n\tget onExit() {\n\t\treturn this._onExit.event;\n\t}\n\n\t/* ------------- IO methods ------------- */\n\n\twrite(data: string) {\n\t\tif (this._closing) return;\n\t\tconst buf = Buffer.from(data, \"utf8\");\n\t\tlib.symbols.bun_pty_write(this.handle, ptr(buf), buf.length);\n\t}\n\n\tresize(cols: number, rows: number) {\n\t\tif (this._closing) return;\n\t\tthis._cols = cols;\n\t\tthis._rows = rows;\n\t\tlib.symbols.bun_pty_resize(this.handle, cols, rows);\n\t}\n\n\tkill(signal = \"SIGTERM\") {\n\t\tif (this._closing) return;\n\t\tthis._closing = true;\n\t\tlib.symbols.bun_pty_kill(this.handle);\n\t\tlib.symbols.bun_pty_close(this.handle);\n\t\tthis._onExit.fire({ exitCode: 0, signal });\n\t}\n\n\t/* ------------- read-loop ------------- */\n\n\tprivate async _startReadLoop() {\n\t\tif (this._readLoop) return;\n\t\tthis._readLoop = true;\n\n\t\tconst buf = Buffer.allocUnsafe(4096);\n\n\t\twhile (this._readLoop && !this._closing) {\n\t\t\tconst n = lib.symbols.bun_pty_read(this.handle, ptr(buf), buf.length);\n\t\t\tif (n > 0) {\n\t\t\t\t// Use streaming mode to buffer incomplete UTF-8 sequences across chunks\n\t\t\t\t// This prevents corruption when multi-byte chars span chunk boundaries\n\t\t\t\tconst decoded = this._decoder.decode(buf.subarray(0, n), { stream: true });\n\t\t\t\tif (decoded) {\n\t\t\t\t\tthis._onData.fire(decoded);\n\t\t\t\t}\n\t\t\t} else if (n === -2) {\n\t\t\t\t// CHILD_EXITED - flush any remaining bytes in the decoder\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tconst exitCode = lib.symbols.bun_pty_get_exit_code(this.handle);\n\t\t\t\tthis._onExit.fire({ exitCode });\n\t\t\t\tbreak;\n\t\t\t} else if (n < 0) {\n\t\t\t\t// error - flush decoder before breaking\n\t\t\t\tconst remaining = this._decoder.decode();\n\t\t\t\tif (remaining) {\n\t\t\t\t\tthis._onData.fire(remaining);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// 0 bytes: wait\n\t\t\t\tawait new Promise((r) => setTimeout(r, 8));\n\t\t\t}\n\t\t}\n\t}\n}\n",
"import { Buffer } from \"node:buffer\";\n\n/**\n * Interface for disposable resources.\n */\nexport interface IDisposable {\n /**\n * Disposes the resource, performing any necessary cleanup.\n */\n dispose(): void;\n}\n\n/**\n * Event implementation for the terminal.\n */\nexport class EventEmitter<T> {\n private listeners: ((data: T) => void)[] = [];\n\n public event = (listener: (e: T) => void): IDisposable => {\n this.listeners.push(listener);\n return {\n dispose: () => {\n const i = this.listeners.indexOf(listener);\n if (i !== -1) {\n this.listeners.splice(i, 1);\n }\n }\n };\n };\n\n public fire(data: T): void {\n for (const listener of this.listeners) {\n listener(data);\n }\n }\n}\n\n/**\n * Options for spawning a new PTY process.\n */\nexport interface IPtyForkOptions {\n /**\n * The name of the terminal to be set in environment variables.\n */\n name: string;\n\n /**\n * The number of columns in the PTY.\n */\n cols?: number;\n\n /**\n * The number of rows in the PTY.\n */\n rows?: number;\n\n /**\n * The current working directory of the process.\n * Defaults to the current working directory of the parent process.\n */\n cwd?: string;\n\n /**\n * Environment variables to set for the process.\n */\n env?: Record<string, string>;\n}\n\n/**\n * Exit data for PTY process.\n */\nexport interface IExitEvent {\n /**\n * The process exit code.\n */\n exitCode: number;\n\n /**\n * The signal that caused the process to exit, if any.\n */\n signal?: number | string;\n}\n\n/**\n * Interface for interacting with a pseudo-terminal (PTY) instance.\n */\nexport interface IPty {\n /**\n * The PID of the process running in the PTY.\n */\n readonly pid: number;\n\n /**\n * The column size in characters.\n */\n readonly cols: number;\n\n /**\n * The row size in characters.\n */\n readonly rows: number;\n\n /**\n * The title of the active process.\n */\n readonly process: string;\n\n /**\n * Set a callback for when data is received from the PTY.\n */\n readonly onData: (listener: (data: string) => void) => IDisposable;\n\n /**\n * Event emitted when the PTY process exits.\n */\n readonly onExit: (listener: (event: IExitEvent) => void) => IDisposable;\n\n /**\n * Write data to the PTY.\n *\n * @param data - The data to write.\n */\n write(data: string): void;\n\n /**\n * Resize the PTY.\n *\n * @param columns - Number of columns (character width).\n * @param rows - Number of rows (character height).\n */\n resize(columns: number, rows: number): void;\n\n /**\n * Kill the process running in the PTY.\n *\n * @param signal - The signal to send to the process.\n * Defaults to \"SIGTERM\".\n */\n kill(signal?: string): void;\n} ",
"/**\n * The main export module for bun-pty.\n * Provides a cross-platform PTY interface for Bun runtime.\n */\n\nimport { Terminal } from './terminal';\nimport type { IPty, IPtyForkOptions, IExitEvent, IDisposable } from './interfaces';\n\n/**\n * Creates and spawns a new PTY with the given command and arguments.\n * \n * @param file - Path to the executable to run.\n * @param args - Arguments for the executable.\n * @param options - Options for the PTY.\n * @returns A new PTY instance.\n */\nexport function spawn(file: string, args: string[], options: IPtyForkOptions): IPty {\n return new Terminal(file, args, options);\n}\n\n// Export interfaces and implementations\nexport type { IPty, IPtyForkOptions, IExitEvent, IDisposable };\nexport { Terminal } from './terminal'; ",
"import { spawn } from \"bun-pty\"\nimport type { Opts, Proc } from \"./pty\"\n\nexport type { Disp, Exit, Opts, Proc } from \"./pty\"\n\nfunction spawnPty(file: string, args: string[], opts: Opts): Proc {\n const pty = spawn(file, args, opts)\n return {\n pid: pty.pid,\n onData(listener) {\n return pty.onData(listener)\n },\n onExit(listener) {\n return pty.onExit(listener)\n },\n write(data) {\n pty.write(data)\n },\n resize(cols, rows) {\n pty.resize(cols, rows)\n },\n kill(signal) {\n pty.kill(signal)\n },\n }\n}\n\nexport { spawnPty as spawn }\n"
],
"mappings": ";4GAEA,kCAAS,aAAQ,SAAS,gBAC1B,iBAAS,eCYF,MAAM,CAAgB,CACnB,UAAmC,CAAC,EAErC,MAAQ,CAAC,IAA0C,CAExD,OADA,KAAK,UAAU,KAAK,CAAQ,EACrB,CACL,QAAS,IAAM,CACb,IAAM,EAAI,KAAK,UAAU,QAAQ,CAAQ,EACzC,GAAI,IAAM,GACR,KAAK,UAAU,OAAO,EAAG,CAAC,EAGhC,GAGK,IAAI,CAAC,EAAe,CACzB,QAAW,KAAY,KAAK,UAC1B,EAAS,CAAI,EAGnB,CD7BA,eAAS,aAAM,cAAS,aACxB,qBAAS,WAEF,IAAM,EAAe,GACf,EAAe,GACf,EAAe,KACf,EAAe,QAU5B,SAAS,CAAO,CAAC,EAAmB,CACnC,GAAI,EAAE,SAAW,EAAG,MAAO,KAE3B,MAAO,IAAI,EAAE,QAAQ,KAAM,OAAO,KAKnC,SAAS,CAAc,EAAW,CACjC,IAAM,EAAM,QAAQ,IAAI,YACxB,GAAI,GAAO,EAAW,CAAG,EAAG,OAAO,EAOnC,GAAI,CAEH,IAAM,MACN,GAAI,EAAc,OAAO,EACxB,KAAM,EAKR,IAAM,EAAW,QACX,EAAO,QAGP,EACL,IAAa,SACV,IAAS,QACR,CAAC,0BAA2B,mBAAmB,EAC/C,CAAC,mBAAmB,EACrB,IAAa,QACb,CAAC,cAAc,EACf,IAAS,QACT,CAAC,uBAAwB,gBAAgB,EACzC,CAAC,gBAAgB,EAGf,EAAO,IAAI,cAAc,YAAY,GAAG,EACxC,EAAU,EAAQ,CAAI,EACtB,EAAU,EAAS,CAAO,EAI1B,EAAQ,IAAY,OAAS,IAAY,OAC5C,EAAQ,CAAO,EACf,EAEG,EAAY,CACjB,EAAK,EAAM,WAAY,SAAU,SAAS,EAC1C,EAAK,EAAM,KAAM,UAAW,WAAY,SAAU,SAAS,EAC3D,EAAK,QAAQ,IAAI,EAAG,eAAgB,UAAW,WAAY,SAAU,SAAS,CAC/E,EAEM,EAAgB,CAAC,EACvB,QAAW,KAAY,EACtB,QAAW,KAAY,EACtB,EAAc,KAAK,EAAK,EAAU,CAAQ,CAAC,EAI7C,QAAW,KAAQ,EAClB,GAAI,EAAW,CAAI,EAAG,OAAO,EAG9B,MAAU,MACT;AAAA;AAAA,kBAAoE,GAAO;AAAA,MAAkB,EAAc,KAAK;AAAA,KAAQ;AAAA;AAAA,gEACzH,EAGD,IAAM,EAAU,EAAe,EAG3B,EAGJ,GAAI,CACH,EAAM,EAAO,EAAS,CACrB,cAAe,CACd,KAAM,CAAC,EAAQ,QAAS,EAAQ,QAAS,EAAQ,QAAS,EAAQ,IAAK,EAAQ,GAAG,EAClF,QAAS,EAAQ,GAClB,EACA,cAAe,CACd,KAAM,CAAC,EAAQ,IAAK,EAAQ,QAAS,EAAQ,GAAG,EAChD,QAAS,EAAQ,GAClB,EACA,aAAc,CACb,KAAM,CAAC,EAAQ,IAAK,EAAQ,QAAS,EAAQ,GAAG,EAChD,QAAS,EAAQ,GAClB,EACA,eAAgB,CACf,KAAM,CAAC,EAAQ,IAAK,EAAQ,IAAK,EAAQ,GAAG,EAC5C,QAAS,EAAQ,GAClB,EACA,aAAc,CAAE,KAAM,CAAC,EAAQ,GAAG,EAAG,QAAS,EAAQ,GAAI,EAC1D,gBAAiB,CAAE,KAAM,CAAC,EAAQ,GAAG,EAAG,QAAS,EAAQ,GAAI,EAC7D,sBAAuB,CAAE,KAAM,CAAC,EAAQ,GAAG,EAAG,QAAS,EAAQ,GAAI,EACnE,cAAe,CAAE,KAAM,CAAC,EAAQ,GAAG,EAAG,QAAS,EAAQ,IAAK,CAC7D,CAAC,EACA,MAAO,EAAO,CACf,QAAQ,MAAM,qBAAsB,CAAK,EAGnC,MAAM,CAAyB,CAC7B,OAAS,GACT,KAAO,GACP,MAAQ,EACR,MAAQ,EACC,MAAQ,EAEjB,UAAY,GACZ,SAAW,GAIF,SAAW,IAAI,YAAY,OAAO,EAElC,QAAU,IAAI,EACd,QAAU,IAAI,EAE/B,WAAW,CACV,EAAO,EACP,EAAiB,CAAC,EAClB,EAAwB,CAAE,KAAM,CAAa,EAC5C,CACD,KAAK,MAAQ,EAAK,MAAQ,EAC1B,KAAK,MAAQ,EAAK,MAAQ,EAC1B,IAAM,EAAM,EAAK,KAAO,QAAQ,IAAI,EAE9B,EAAU,CAAC,EAAQ,CAAI,EAAG,GAAG,EAAK,IAAI,CAAO,CAAC,EAAE,KAAK,GAAG,EAG1D,EAAS,GACb,GAAI,EAAK,IAER,EADiB,OAAO,QAAQ,EAAK,GAAG,EAAE,IAAI,EAAE,EAAG,KAAO,GAAG,KAAK,GAAG,EACnD,KAAK,MAAI,EAAI,OAUhC,GAPA,KAAK,OAAS,EAAI,QAAQ,cACzB,EAAO,KAAK,GAAG,QAAa,MAAM,EAClC,EAAO,KAAK,GAAG,QAAS,MAAM,EAC9B,EAAO,KAAK,GAAG,QAAY,MAAM,EACjC,KAAK,MACL,KAAK,KACN,EACI,KAAK,OAAS,EAAG,MAAU,MAAM,kBAAkB,EAEvD,KAAK,KAAO,EAAI,QAAQ,gBAAgB,KAAK,MAAM,EACnD,KAAK,eAAe,KAKjB,IAAG,EAAG,CACT,OAAO,KAAK,QAET,KAAI,EAAG,CACV,OAAO,KAAK,SAET,KAAI,EAAG,CACV,OAAO,KAAK,SAET,QAAO,EAAG,CACb,MAAO,WAGJ,OAAM,EAAG,CACZ,OAAO,KAAK,QAAQ,SAEjB,OAAM,EAAG,CACZ,OAAO,KAAK,QAAQ,MAKrB,KAAK,CAAC,EAAc,CACnB,GAAI,KAAK,SAAU,OACnB,IAAM,EAAM,EAAO,KAAK,EAAM,MAAM,EACpC,EAAI,QAAQ,cAAc,KAAK,OAAQ,EAAI,CAAG,EAAG,EAAI,MAAM,EAG5D,MAAM,CAAC,EAAc,EAAc,CAClC,GAAI,KAAK,SAAU,OACnB,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,EAAI,QAAQ,eAAe,KAAK,OAAQ,EAAM,CAAI,EAGnD,IAAI,CAAC,EAAS,UAAW,CACxB,GAAI,KAAK,SAAU,OACnB,KAAK,SAAW,GAChB,EAAI,QAAQ,aAAa,KAAK,MAAM,EACpC,EAAI,QAAQ,cAAc,KAAK,MAAM,EACrC,KAAK,QAAQ,KAAK,CAAE,SAAU,EAAG,QAAO,CAAC,OAK5B,eAAc,EAAG,CAC9B,GAAI,KAAK,UAAW,OACpB,KAAK,UAAY,GAEjB,IAAM,EAAM,EAAO,YAAY,IAAI,EAEnC,MAAO,KAAK,WAAa,CAAC,KAAK,SAAU,CACxC,IAAM,EAAI,EAAI,QAAQ,aAAa,KAAK,OAAQ,EAAI,CAAG,EAAG,EAAI,MAAM,EACpE,GAAI,EAAI,EAAG,CAGV,IAAM,EAAU,KAAK,SAAS,OAAO,EAAI,SAAS,EAAG,CAAC,EAAG,CAAE,OAAQ,EAAK,CAAC,EACzE,GAAI,EACH,KAAK,QAAQ,KAAK,CAAO,EAEpB,QAAI,IAAM,GAAI,CAEpB,IAAM,EAAY,KAAK,SAAS,OAAO,EACvC,GAAI,EACH,KAAK,QAAQ,KAAK,CAAS,EAE5B,IAAM,EAAW,EAAI,QAAQ,sBAAsB,KAAK,MAAM,EAC9D,KAAK,QAAQ,KAAK,CAAE,UAAS,CAAC,EAC9B,MACM,QAAI,EAAI,EAAG,CAEjB,IAAM,EAAY,KAAK,SAAS,OAAO,EACvC,GAAI,EACH,KAAK,QAAQ,KAAK,CAAS,EAE5B,MAGA,WAAM,IAAI,QAAQ,CAAC,IAAM,WAAW,EAAG,CAAC,CAAC,GAI7C,CErPO,SAAS,CAAK,CAAC,EAAc,EAAgB,EAAgC,CAChF,OAAO,IAAI,EAAS,EAAM,EAAM,CAAO,ECZ3C,SAAS,CAAQ,CAAC,EAAc,EAAgB,EAAkB,CAChE,IAAM,EAAM,EAAM,EAAM,EAAM,CAAI,EAClC,MAAO,CACL,IAAK,EAAI,IACT,MAAM,CAAC,EAAU,CACf,OAAO,EAAI,OAAO,CAAQ,GAE5B,MAAM,CAAC,EAAU,CACf,OAAO,EAAI,OAAO,CAAQ,GAE5B,KAAK,CAAC,EAAM,CACV,EAAI,MAAM,CAAI,GAEhB,MAAM,CAAC,EAAM,EAAM,CACjB,EAAI,OAAO,EAAM,CAAI,GAEvB,IAAI,CAAC,EAAQ,CACX,EAAI,KAAK,CAAM,EAEnB",
"debugId": "AD45573887D49A2564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "508B8A2EF684408E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260601010001_normalize_storage_paths.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260601010001_normalize_storage_paths\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(\n `UPDATE project SET worktree = REPLACE(worktree, char(92), '/') WHERE worktree GLOB '[A-Za-z]:' || char(92) || '*' OR worktree LIKE char(92) || char(92) || '%';`,\n )\n yield* tx.run(\n `UPDATE project SET sandboxes = REPLACE(sandboxes, char(92) || char(92), '/') WHERE instr(sandboxes, char(92)) > 0 AND (worktree GLOB '[A-Za-z]:*' OR worktree LIKE '//%');`,\n )\n yield* tx.run(\n `UPDATE session SET directory = REPLACE(directory, char(92), '/') WHERE directory GLOB '[A-Za-z]:' || char(92) || '*' OR directory LIKE char(92) || char(92) || '%';`,\n )\n yield* tx.run(\n `UPDATE session SET path = REPLACE(path, char(92), '/') WHERE path IS NOT NULL AND instr(path, char(92)) > 0 AND (directory GLOB '[A-Za-z]:*' OR directory LIKE '//%');`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IACR,iKACF,EACA,MAAO,EAAG,IACR,4KACF,EACA,MAAO,EAAG,IACR,qKACF,EACA,MAAO,EAAG,IACR,wKACF,EACD,EAEL",
"debugId": "60DF0FFF0472691A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260603040000_session_message_projection_order.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603040000_session_message_projection_order\",\n up(tx) {\n return Effect.gen(function* () {\n // Pre-launch Session projections were written before durable event persistence\n // became unconditional, so they cannot be assigned truthful aggregate order.\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`ALTER TABLE \\`session_message\\` ADD COLUMN \\`seq\\` integer NOT NULL;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_type_time_created_id_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`session_message_session_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`seq\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`,\\`seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAG7B,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,kEAAsE,EACpF,MAAO,EAAG,IAAI,0EAA4E,EAC1F,MAAO,EAAG,IAAI,2FAAmG,EACjH,MAAO,EAAG,IACR,uGACF,EACD,EAEL",
"debugId": "D9904EC921B4185F64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "49D365814F1DC11E64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "5C1357249B3C04C864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/eventsource-parser@3.1.0/node_modules/eventsource-parser/dist/index.js", "../../node_modules/.bun/eventsource-parser@3.1.0/node_modules/eventsource-parser/dist/stream.js"],
"sourcesContent": [
"class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nconst LF = 10, CR = 13, SPACE = 32;\nfunction noop(_arg) {\n}\nfunction createParser(config) {\n if (typeof config == \"function\")\n throw new TypeError(\n \"`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment, maxBufferSize } = config, pendingFragments = [];\n let pendingFragmentsLength = 0, isFirstChunk = !0, id, data = \"\", dataLines = 0, eventType, terminated = !1;\n function feed(chunk) {\n if (terminated)\n throw new Error(\n \"Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.\"\n );\n if (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) {\n const trailing2 = processLines(chunk);\n trailing2 !== \"\" && (pendingFragments.push(trailing2), pendingFragmentsLength = trailing2.length), checkBufferSize();\n return;\n }\n if (chunk.indexOf(`\n`) === -1 && chunk.indexOf(\"\\r\") === -1) {\n pendingFragments.push(chunk), pendingFragmentsLength += chunk.length, checkBufferSize();\n return;\n }\n pendingFragments.push(chunk);\n const input = pendingFragments.join(\"\");\n pendingFragments.length = 0, pendingFragmentsLength = 0;\n const trailing = processLines(input);\n trailing !== \"\" && (pendingFragments.push(trailing), pendingFragmentsLength = trailing.length), checkBufferSize();\n }\n function checkBufferSize() {\n maxBufferSize !== void 0 && (pendingFragmentsLength + data.length <= maxBufferSize || (terminated = !0, pendingFragments.length = 0, pendingFragmentsLength = 0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, onError(\n new ParseError(`Buffered data exceeded max buffer size of ${maxBufferSize} characters`, {\n type: \"max-buffer-size-exceeded\"\n })\n )));\n }\n function processLines(chunk) {\n let searchIndex = 0;\n if (chunk.indexOf(\"\\r\") === -1) {\n let lfIndex = chunk.indexOf(`\n`, searchIndex);\n for (; lfIndex !== -1; ) {\n if (searchIndex === lfIndex) {\n dataLines > 0 && onEvent({ id, event: eventType, data }), id = void 0, data = \"\", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n const firstCharCode = chunk.charCodeAt(searchIndex);\n if (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n const valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex);\n if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n onEvent({ id, event: eventType, data: value }), id = void 0, data = \"\", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(`\n`, searchIndex);\n continue;\n }\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n } else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice(\n chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,\n lfIndex\n ) || void 0 : parseLine(chunk, searchIndex, lfIndex);\n searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n }\n return chunk.slice(searchIndex);\n }\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1)\n break;\n parseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++;\n }\n return chunk.slice(searchIndex);\n }\n function parseLine(chunk, start, end) {\n if (start === end) {\n dispatchEvent();\n return;\n }\n const firstCharCode = chunk.charCodeAt(start);\n if (isDataPrefix(chunk, start, firstCharCode)) {\n const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end);\n data = dataLines === 0 ? value2 : `${data}\n${value2}`, dataLines++;\n return;\n }\n if (isEventPrefix(chunk, start, firstCharCode)) {\n eventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0;\n return;\n }\n if (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) {\n const value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end);\n id = value2.includes(\"\\0\") ? void 0 : value2;\n return;\n }\n if (firstCharCode === 58) {\n if (onComment) {\n const line2 = chunk.slice(start, end);\n onComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1));\n }\n return;\n }\n const line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex === -1) {\n processField(line, \"\", line);\n return;\n }\n const field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value || void 0;\n break;\n case \"data\":\n data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n dataLines > 0 && onEvent({\n id,\n event: eventType,\n data\n }), id = void 0, data = \"\", dataLines = 0, eventType = void 0;\n }\n function reset(options = {}) {\n if (options.consume && pendingFragments.length > 0) {\n const incompleteLine = pendingFragments.join(\"\");\n parseLine(incompleteLine, 0, incompleteLine.length);\n }\n isFirstChunk = !0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, pendingFragments.length = 0, pendingFragmentsLength = 0, terminated = !1;\n }\n return { feed, reset };\n}\nfunction isDataPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58;\n}\nfunction isEventPrefix(chunk, i, firstCharCode) {\n return firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58;\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n",
"import { createParser } from \"./index.js\";\nimport { ParseError } from \"./index.js\";\nclass EventSourceParserStream extends TransformStream {\n constructor({ onError, onRetry, onComment, maxBufferSize } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n typeof onError == \"function\" && onError(error), (onError === \"terminate\" || error.type === \"max-buffer-size-exceeded\") && controller.error(error);\n },\n onRetry,\n onComment,\n maxBufferSize\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n}\nexport {\n EventSourceParserStream,\n ParseError\n};\n//# sourceMappingURL=stream.js.map\n"
],
"mappings": "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",
"debugId": "2E99E02A93485C2464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E3E638146C8030F164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/util/which.ts"],
"sourcesContent": [
"import whichPkg from \"which\"\nimport path from \"path\"\nimport { Global } from \"../global\"\n\nexport function which(cmd: string, env?: NodeJS.ProcessEnv) {\n const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? \"\"\n const full = base ? base + path.delimiter + Global.Path.bin : Global.Path.bin\n const result = whichPkg.sync(cmd, {\n nothrow: true,\n path: full,\n pathExt: env?.PATHEXT ?? env?.PathExt ?? process.env.PATHEXT ?? process.env.PathExt,\n })\n return typeof result === \"string\" ? result : null\n}\n"
],
"mappings": ";kJAAA,oBACA,yBAGO,SAAS,CAAK,CAAC,EAAa,EAAyB,CAC1D,IAAM,EAAO,GAAK,MAAQ,GAAK,MAAQ,QAAQ,IAAI,MAAQ,QAAQ,IAAI,MAAQ,GACzE,EAAO,EAAO,EAAO,EAAK,UAAY,EAAO,KAAK,IAAM,EAAO,KAAK,IACpE,EAAS,UAAS,KAAK,EAAK,CAChC,QAAS,GACT,KAAM,EACN,QAAS,GAAK,SAAW,GAAK,SAAW,QAAQ,IAAI,SAAW,QAAQ,IAAI,OAC9E,CAAC,EACD,OAAO,OAAO,IAAW,SAAW,EAAS",
"debugId": "D22690CD9FDEC13D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260213144116_wakeful_the_professor.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260213144116_wakeful_the_professor\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`control_account\\` (\n \\`email\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`access_token\\` text NOT NULL,\n \\`refresh_token\\` text NOT NULL,\n \\`token_expiry\\` integer,\n \\`active\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`control_account_pk\\` PRIMARY KEY(\\`email\\`, \\`url\\`)\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6bAYb,EACF,EAEL",
"debugId": "55036CC8D71AC91864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "04D9D255E62DB47264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/pair.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { OpenCode } from \"@opencode-ai/client/promise\"\nimport { renderUnicodeCompact } from \"uqr\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServiceConfig } from \"../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.pair,\n Effect.fn(\"cli.pair\")(function* () {\n const endpoint = yield* Service.start(yield* ServiceConfig.options())\n const password = yield* ServiceConfig.password()\n const server = yield* Effect.tryPromise(() =>\n OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) }).server.get(),\n )\n const info = { urls: server.urls, username: \"opencode\", password }\n process.stdout.write(\n [\n \"\",\n ` URLs ${info.urls[0] ?? \"(none)\"}`,\n ...info.urls.slice(1).map((url) => ` ${url}`),\n ` Username ${info.username}`,\n ` Password ${info.password}`,\n \"\",\n \" Scan to pair\",\n \"\",\n renderUnicodeCompact(JSON.stringify(info), { border: 2 })\n .split(EOL)\n .map((line) => \" \" + line)\n .join(EOL),\n \"\",\n ].join(EOL) + EOL,\n )\n\n const hostname = new URL(endpoint.url).hostname\n if (![\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(hostname)) return\n process.stderr.write(\n ` Run \\`opencode service set hostname 0.0.0.0\\` to access the service remotely.${EOL}${EOL}`,\n )\n }),\n)\n"
],
"mappings": ";ojCAAA,mBAAS,gBAST,SAAe,SAAQ,aACrB,OAAS,cAAS,UAClB,OAAO,QAAG,eAAU,OAAE,cAAU,OAAG,MACjC,SAAM,OAAW,WAAO,OAAQ,WAAM,WAAO,OAAc,aAAQ,MAAC,OAC9D,OAAW,WAAO,OAAc,SAAS,EAIzC,EAAO,CAAE,MAHA,MAAO,EAAO,WAAW,IACtC,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAAE,OAAO,IAAI,CAC1F,GAC4B,KAAM,SAAU,WAAY,UAAS,EACjE,QAAQ,OAAO,MACb,CACE,GACA,eAAe,EAAK,KAAK,IAAM,WAC/B,GAAG,EAAK,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAQ,eAAe,GAAK,EACvD,eAAe,EAAK,WACpB,eAAe,EAAK,WACpB,GACA,iBACA,GACA,EAAqB,KAAK,UAAU,CAAI,EAAG,CAAE,OAAQ,CAAE,CAAC,EACrD,MAAM,CAAG,EACT,IAAI,CAAC,IAAS,KAAO,CAAI,EACzB,KAAK,CAAG,EACX,EACF,EAAE,KAAK,CAAG,EAAI,CAChB,EAEA,IAAM,EAAW,IAAI,IAAI,EAAS,GAAG,EAAE,SACvC,GAAI,CAAC,CAAC,YAAa,YAAa,OAAO,EAAE,SAAS,CAAQ,EAAG,OAC7D,QAAQ,OAAO,MACb,kFAAkF,IAAM,GAC1F,EACD,CACH",
"debugId": "2BE9E6C02FA1FC3564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703090000_reset_v2_event_rename_sweep.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703090000_reset_v2_event_rename_sweep\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n // `created` column is added by the generated 20260703181610_event_created_column\n // migration, which runs after this wipe (NOT NULL without default is safe on the\n // emptied table).\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,6CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAIhD,EAEL",
"debugId": "BF19AAD4CFC4FCE764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "FEB982D20AC9727664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.js", "../../node_modules/.bun/@smithy+is-array-buffer@2.2.0/node_modules/@smithy/is-array-buffer/dist-cjs/index.js", "../../node_modules/.bun/@smithy+util-buffer-from@2.2.0/node_modules/@smithy/util-buffer-from/dist-cjs/index.js", "../../node_modules/.bun/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-cjs/index.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/convertToBuffer.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/isEmptyData.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/numToUint8.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/uint32ArrayFrom.js", "../../node_modules/.bun/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/build/main/index.js", "../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js", "../../node_modules/.bun/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/build/main/index.js"],
"sourcesContent": [
"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\nvar __addDisposableResource;\r\nvar __disposeResources;\r\nvar __rewriteRelativeImportExtension;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n var ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n __addDisposableResource = function (env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n };\r\n\r\n var _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n };\r\n\r\n __disposeResources = function (env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n };\r\n\r\n __rewriteRelativeImportExtension = function (path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n exporter(\"__addDisposableResource\", __addDisposableResource);\r\n exporter(\"__disposeResources\", __disposeResources);\r\n exporter(\"__rewriteRelativeImportExtension\", __rewriteRelativeImportExtension);\r\n});\r\n\r\n0 && (module.exports = {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __exportStar: __exportStar,\r\n __createBinding: __createBinding,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n});\r\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isArrayBuffer: () => isArrayBuffer\n});\nmodule.exports = __toCommonJS(src_exports);\nvar isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\", \"isArrayBuffer\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isArrayBuffer\n});\n\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromArrayBuffer: () => fromArrayBuffer,\n fromString: () => fromString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar import_buffer = require(\"buffer\");\nvar fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, import_is_array_buffer.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return import_buffer.Buffer.from(input, offset, length);\n}, \"fromArrayBuffer\");\nvar fromString = /* @__PURE__ */ __name((input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input);\n}, \"fromString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromArrayBuffer,\n fromString\n});\n\n",
"var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromUtf8: () => fromUtf8,\n toUint8Array: () => toUint8Array,\n toUtf8: () => toUtf8\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fromUtf8.ts\nvar import_util_buffer_from = require(\"@smithy/util-buffer-from\");\nvar fromUtf8 = /* @__PURE__ */ __name((input) => {\n const buf = (0, import_util_buffer_from.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n}, \"fromUtf8\");\n\n// src/toUint8Array.ts\nvar toUint8Array = /* @__PURE__ */ __name((data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}, \"toUint8Array\");\n\n// src/toUtf8.ts\n\nvar toUtf8 = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n}, \"toUtf8\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromUtf8,\n toUint8Array,\n toUtf8\n});\n\n",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_1 = require(\"@smithy/util-utf8\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map",
"\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=aws_crc32.js.map",
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=index.js.map"
],
"mappings": "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",
"debugId": "775D40706DC452F564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/isexe@4.0.0/node_modules/isexe/dist/commonjs/index.min.js", "../../node_modules/.bun/which@6.0.1/node_modules/which/lib/index.js"],
"sourcesContent": [
"\"use strict\";var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var _=a(i=>{\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});i.sync=i.isexe=void 0;var M=require(\"node:fs\"),x=require(\"node:fs/promises\"),q=async(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return d(await(0,x.stat)(t),e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};i.isexe=q;var m=(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return d((0,M.statSync)(t),e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};i.sync=m;var d=(t,e)=>t.isFile()&&A(t,e),A=(t,e)=>{let r=e.uid??process.getuid?.(),s=e.groups??process.getgroups?.()??[],n=e.gid??process.getgid?.()??s[0];if(r===void 0||n===void 0)throw new Error(\"cannot get uid or gid\");let u=new Set([n,...s]),c=t.mode,S=t.uid,P=t.gid,f=parseInt(\"100\",8),l=parseInt(\"010\",8),j=parseInt(\"001\",8),C=f|l;return!!(c&j||c&l&&u.has(P)||c&f&&S===r||c&C&&r===0)}});var g=a(o=>{\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0});o.sync=o.isexe=void 0;var T=require(\"node:fs\"),I=require(\"node:fs/promises\"),D=require(\"node:path\"),F=async(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return y(await(0,I.stat)(t),t,e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};o.isexe=F;var L=(t,e={})=>{let{ignoreErrors:r=!1}=e;try{return y((0,T.statSync)(t),t,e)}catch(s){let n=s;if(r||n.code===\"EACCES\")return!1;throw n}};o.sync=L;var B=(t,e)=>{let{pathExt:r=process.env.PATHEXT||\"\"}=e,s=r.split(D.delimiter);if(s.indexOf(\"\")!==-1)return!0;for(let n of s){let u=n.toLowerCase(),c=t.substring(t.length-u.length).toLowerCase();if(u&&c===u)return!0}return!1},y=(t,e,r)=>t.isFile()&&B(e,r)});var p=a(h=>{\"use strict\";Object.defineProperty(h,\"__esModule\",{value:!0})});var v=exports&&exports.__createBinding||(Object.create?(function(t,e,r,s){s===void 0&&(s=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||(\"get\"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,n)}):(function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]})),G=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}):function(t,e){t.default=e}),w=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(s[s.length]=n);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),n=0;n<s.length;n++)s[n]!==\"default\"&&v(r,e,s[n]);return G(r,e),r}})(),X=exports&&exports.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&v(e,t,r)};Object.defineProperty(exports,\"__esModule\",{value:!0});exports.sync=exports.isexe=exports.posix=exports.win32=void 0;var E=w(_());exports.posix=E;var O=w(g());exports.win32=O;X(p(),exports);var H=process.env._ISEXE_TEST_PLATFORM_||process.platform,b=H===\"win32\"?O:E;exports.isexe=b.isexe;exports.sync=b.sync;\n//# sourceMappingURL=index.min.js.map\n",
"const { isexe, sync: isexeSync } = require('isexe')\nconst { join, delimiter, sep, posix } = require('path')\n\nconst isWindows = process.platform === 'win32'\n\n// used to check for slashed in commands passed in. always checks for the posix\n// seperator on all platforms, and checks for the current separator when not on\n// a posix platform. don't use the isWindows check for this since that is mocked\n// in tests but we still need the code to actually work when called. that is also\n// why it is ignored from coverage.\n/* istanbul ignore next */\nconst rSlash = new RegExp(`[${posix.sep}${sep === posix.sep ? '' : sep}]`.replace(/(\\\\)/g, '\\\\$1'))\nconst rRel = new RegExp(`^\\\\.${rSlash.source}`)\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, {\n path: optPath = process.env.PATH,\n pathExt: optPathExt = process.env.PATHEXT,\n delimiter: optDelimiter = delimiter,\n}) => {\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(rSlash) ? [''] : [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(optPath || /* istanbul ignore next: very unusual */ '').split(optDelimiter),\n ]\n\n if (isWindows) {\n const pathExtExe = optPathExt ||\n ['.EXE', '.CMD', '.BAT', '.COM'].join(optDelimiter)\n const pathExt = pathExtExe.split(optDelimiter).flatMap((item) => [item, item.toLowerCase()])\n if (cmd.includes('.') && pathExt[0] !== '') {\n pathExt.unshift('')\n }\n return { pathEnv, pathExt, pathExtExe }\n }\n\n return { pathEnv, pathExt: [''] }\n}\n\nconst getPathPart = (raw, cmd) => {\n const pathPart = /^\".*\"$/.test(raw) ? raw.slice(1, -1) : raw\n const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : ''\n return prefix + join(pathPart, cmd)\n}\n\nconst which = async (cmd, opt = {}) => {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const envPart of pathEnv) {\n const p = getPathPart(envPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n\nconst whichSync = (cmd, opt = {}) => {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const pathEnvPart of pathEnv) {\n const p = getPathPart(pathEnvPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = isexeSync(withExt, { pathExt: pathExtExe, ignoreErrors: true })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n"
],
"mappings": "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",
"debugId": "99238F202E31B49864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603160727_jittery_ezekiel_stane\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_input_session_pending_seq_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`event_aggregate_type_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`type\\`,\\`seq\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`seq\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX IF NOT EXISTS \\`session_message_session_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+DAAiE,EAC/E,MAAO,EAAG,IACR,qGACF,EACA,MAAO,EAAG,IACR,gJACF,EACA,MAAO,EAAG,IACR,mIACF,EACD,EAEL",
"debugId": "52D800C4F31EEE2364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709190621_session_pending_table.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709190621_session_pending_table\",\n up(tx) {\n return Effect.gen(function* () {\n // Beta reset: session_input becomes the pending-only session_pending\n // table. Dropping the old table discards consumed ledger rows and any\n // in-flight pending work along with every historical index variant.\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`\n CREATE TABLE \\`session_pending\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_pending_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE INDEX \\`session_pending_session_delivery_seq_idx\\` ON \\`session_pending\\` (\\`session_id\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_pending_session_compaction_idx\\` ON \\`session_pending\\` (\\`session_id\\`) WHERE \"session_pending\".\"type\" = 'compaction';`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_pending_session_admitted_seq_idx\\` ON \\`session_pending\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAI7B,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,2cAWb,EACD,MAAO,EAAG,IACR,wHACF,EACA,MAAO,EAAG,IACR,mJACF,EACA,MAAO,EAAG,IACR,oHACF,EACD,EAEL",
"debugId": "DAFE8D49D9A1CCBE64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "6B5FCDE2FEC2FE4964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://portal.sso.{Region}.amazonaws.com\", i],\n [\"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 13,\n 3,\n 1,\n 4,\n r + 12,\n 2,\n 5,\n r + 12,\n 3,\n 8,\n 6,\n 4,\n 7,\n r + 11,\n 5,\n r + 9,\n r + 10,\n 4,\n 11,\n 9,\n 6,\n 10,\n r + 8,\n 7,\n r + 6,\n r + 7,\n 5,\n 12,\n r + 5,\n 6,\n r + 4,\n r + 5,\n 3,\n r + 1,\n 14,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SSOServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOServiceException.prototype);\n }\n}\n\nclass InvalidRequestException extends SSOServiceException {\n name = \"InvalidRequestException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n }\n}\nclass ResourceNotFoundException extends SSOServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nclass TooManyRequestsException extends SSOServiceException {\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nclass UnauthorizedException extends SSOServiceException {\n name = \"UnauthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\n\nconst _ATT = \"AccessTokenType\";\nconst _GRC = \"GetRoleCredentials\";\nconst _GRCR = \"GetRoleCredentialsRequest\";\nconst _GRCRe = \"GetRoleCredentialsResponse\";\nconst _IRE = \"InvalidRequestException\";\nconst _RC = \"RoleCredentials\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _SAKT = \"SecretAccessKeyType\";\nconst _STT = \"SessionTokenType\";\nconst _TMRE = \"TooManyRequestsException\";\nconst _UE = \"UnauthorizedException\";\nconst _aI = \"accountId\";\nconst _aKI = \"accessKeyId\";\nconst _aT = \"accessToken\";\nconst _ai = \"account_id\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _ex = \"expiration\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _hH = \"httpHeader\";\nconst _hQ = \"httpQuery\";\nconst _m = \"message\";\nconst _rC = \"roleCredentials\";\nconst _rN = \"roleName\";\nconst _rn = \"role_name\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.sso\";\nconst _sAK = \"secretAccessKey\";\nconst _sT = \"sessionToken\";\nconst _xasbt = \"x-amz-sso_bearer_token\";\nconst n0 = \"com.amazonaws.sso\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SSOServiceException$ = [-3, _s, \"SSOServiceException\", 0, [], []];\n_s_registry.registerError(SSOServiceException$, SSOServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar InvalidRequestException$ = [-3, n0, _IRE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(InvalidRequestException$, InvalidRequestException);\nvar ResourceNotFoundException$ = [-3, n0, _RNFE, { [_e]: _c, [_hE]: 404 }, [_m], [0]];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nvar TooManyRequestsException$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_m], [0]];\nn0_registry.registerError(TooManyRequestsException$, TooManyRequestsException);\nvar UnauthorizedException$ = [-3, n0, _UE, { [_e]: _c, [_hE]: 401 }, [_m], [0]];\nn0_registry.registerError(UnauthorizedException$, UnauthorizedException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar AccessTokenType = [0, n0, _ATT, 8, 0];\nvar SecretAccessKeyType = [0, n0, _SAKT, 8, 0];\nvar SessionTokenType = [0, n0, _STT, 8, 0];\nvar GetRoleCredentialsRequest$ = [\n 3,\n n0,\n _GRCR,\n 0,\n [_rN, _aI, _aT],\n [\n [0, { [_hQ]: _rn }],\n [0, { [_hQ]: _ai }],\n [() => AccessTokenType, { [_hH]: _xasbt }],\n ],\n 3,\n];\nvar GetRoleCredentialsResponse$ = [\n 3,\n n0,\n _GRCRe,\n 0,\n [_rC],\n [[() => RoleCredentials$, 0]],\n];\nvar RoleCredentials$ = [\n 3,\n n0,\n _RC,\n 0,\n [_aKI, _sAK, _sT, _ex],\n [0, [() => SecretAccessKeyType, 0], [() => SessionTokenType, 0], 1],\n];\nvar GetRoleCredentials$ = [\n 9,\n n0,\n _GRC,\n { [_h]: [\"GET\", \"/federation/credentials\", 200] },\n () => GetRoleCredentialsRequest$,\n () => GetRoleCredentialsResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.sso\",\n errorTypeRegistries,\n version: \"2019-06-10\",\n serviceTarget: \"SWBPortalService\",\n },\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SSOClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass GetRoleCredentialsCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"SWBPortalService\", \"GetRoleCredentials\", {})\n .n(\"SSOClient\", \"GetRoleCredentialsCommand\")\n .sc(GetRoleCredentials$)\n .build() {\n}\n\nconst commands = {\n GetRoleCredentialsCommand,\n};\nclass SSO extends SSOClient {\n}\nclient.createAggregatedClient(commands, SSO);\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.GetRoleCredentials$ = GetRoleCredentials$;\nexports.GetRoleCredentialsCommand = GetRoleCredentialsCommand;\nexports.GetRoleCredentialsRequest$ = GetRoleCredentialsRequest$;\nexports.GetRoleCredentialsResponse$ = GetRoleCredentialsResponse$;\nexports.InvalidRequestException = InvalidRequestException;\nexports.InvalidRequestException$ = InvalidRequestException$;\nexports.ResourceNotFoundException = ResourceNotFoundException;\nexports.ResourceNotFoundException$ = ResourceNotFoundException$;\nexports.RoleCredentials$ = RoleCredentials$;\nexports.SSO = SSO;\nexports.SSOClient = SSOClient;\nexports.SSOServiceException = SSOServiceException;\nexports.SSOServiceException$ = SSOServiceException$;\nexports.TooManyRequestsException = TooManyRequestsException;\nexports.TooManyRequestsException$ = TooManyRequestsException$;\nexports.UnauthorizedException = UnauthorizedException;\nexports.UnauthorizedException$ = UnauthorizedException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "2A86B18ACF1BD05964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+keymap@0.4.3+aeceedea454d57be/node_modules/@opentui/keymap/src/opentui.js", "../tui/src/util/session.ts", "../tui/src/logo.ts"],
"sourcesContent": [
"// @bun\nimport\"../chunks/index-p35cyhc4.js\";\n\n// src/opentui.ts\nimport { CliRenderEvents, KeyEvent, RenderableEvents } from \"@opentui/core\";\nimport { Keymap } from \"@opentui/keymap\";\nimport { registerDefaultKeys, registerEnabledFields, registerMetadataFields } from \"@opentui/keymap/addons\";\nfunction createSyntheticCommandEvent() {\n return new KeyEvent({\n name: \"command\",\n ctrl: false,\n meta: false,\n shift: false,\n option: false,\n sequence: \"\",\n number: false,\n raw: \"\",\n eventType: \"press\",\n source: \"raw\"\n });\n}\nfunction normalizeRuntimePlatform(platform) {\n if (platform === \"darwin\") {\n return \"macos\";\n }\n if (platform === \"win32\") {\n return \"windows\";\n }\n if (platform === \"linux\") {\n return \"linux\";\n }\n return \"unknown\";\n}\nfunction createOpenTuiHostMetadata(renderer) {\n const platform = normalizeRuntimePlatform(process.platform);\n const hasKittyKeyboard = renderer.capabilities?.kitty_keyboard === true;\n return {\n platform,\n primaryModifier: platform === \"macos\" ? \"super\" : platform === \"unknown\" ? \"unknown\" : \"ctrl\",\n modifiers: {\n ctrl: \"supported\",\n shift: \"supported\",\n meta: \"supported\",\n super: hasKittyKeyboard ? \"supported\" : \"unknown\",\n hyper: hasKittyKeyboard ? \"supported\" : \"unknown\"\n }\n };\n}\nfunction createOpenTuiKeymapHost(renderer) {\n return {\n get metadata() {\n return createOpenTuiHostMetadata(renderer);\n },\n rootTarget: renderer.root,\n get isDestroyed() {\n return renderer.isDestroyed;\n },\n getFocusedTarget() {\n const focused = renderer.currentFocusedRenderable;\n if (!focused || focused.isDestroyed || !focused.focused) {\n return null;\n }\n return focused;\n },\n getParentTarget(target) {\n return target.parent;\n },\n isTargetDestroyed(target) {\n return target.isDestroyed;\n },\n onKeyPress(listener) {\n renderer.keyInput.prependListener(\"keypress\", listener);\n return () => {\n renderer.keyInput.off(\"keypress\", listener);\n };\n },\n onKeyRelease(listener) {\n renderer.keyInput.prependListener(\"keyrelease\", listener);\n return () => {\n renderer.keyInput.off(\"keyrelease\", listener);\n };\n },\n onFocusChange(listener) {\n renderer.on(CliRenderEvents.FOCUSED_RENDERABLE, listener);\n return () => {\n renderer.off(CliRenderEvents.FOCUSED_RENDERABLE, listener);\n };\n },\n onDestroy(listener) {\n renderer.once(CliRenderEvents.DESTROY, listener);\n return () => {\n renderer.off(CliRenderEvents.DESTROY, listener);\n };\n },\n onTargetDestroy(target, listener) {\n target.once(RenderableEvents.DESTROYED, listener);\n return () => {\n target.off(RenderableEvents.DESTROYED, listener);\n };\n },\n onRawInput(listener) {\n renderer.prependInputHandler(listener);\n return () => {\n renderer.removeInputHandler(listener);\n };\n },\n createCommandEvent() {\n return createSyntheticCommandEvent();\n }\n };\n}\nfunction createOpenTuiKeymap(renderer) {\n if (renderer.isDestroyed) {\n throw new Error(\"Cannot create a keymap for a destroyed renderer\");\n }\n return new Keymap(createOpenTuiKeymapHost(renderer));\n}\nfunction createDefaultOpenTuiKeymap(renderer) {\n if (renderer.isDestroyed) {\n throw new Error(\"Cannot create a keymap for a destroyed renderer\");\n }\n const keymap = new Keymap(createOpenTuiKeymapHost(renderer));\n registerDefaultKeys(keymap);\n registerEnabledFields(keymap);\n registerMetadataFields(keymap);\n return keymap;\n}\nexport {\n createOpenTuiKeymapHost,\n createOpenTuiKeymap,\n createDefaultOpenTuiKeymap\n};\n\n//# debugId=3536CBBE2B01723A64756E2164756E21\n//# sourceMappingURL=opentui.js.map\n",
"import type { ModelInfo, SessionMessageAssistant, SessionMessageInfo } from \"@opencode-ai/client\"\n\nexport function isDefaultTitle(title: string) {\n return /^(New session - |Child session - )\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(title)\n}\n\nexport function lastAssistantWithUsage(messages: ReadonlyArray<SessionMessageInfo>, boundary?: string) {\n const boundaryIndex = boundary ? messages.findIndex((message) => message.id === boundary) : -1\n if (boundary && boundaryIndex === -1) return undefined\n const end = boundaryIndex === -1 ? messages.length : boundaryIndex\n const compactionIndex = messages.findLastIndex(\n (message, index) => message.type === \"compaction\" && message.status === \"completed\" && index < end,\n )\n return messages.findLast(\n (message, index): message is SessionMessageAssistant & { tokens: NonNullable<SessionMessageAssistant[\"tokens\"]> } =>\n message.type === \"assistant\" && message.tokens !== undefined && index > compactionIndex && index < end,\n )\n}\n\nexport function contextUsage(\n messages: ReadonlyArray<SessionMessageInfo>,\n models: ReadonlyArray<ModelInfo> | undefined,\n boundary?: string,\n) {\n const last = lastAssistantWithUsage(messages, boundary)\n if (!last) return\n const tokens =\n last.tokens.input + last.tokens.output + last.tokens.reasoning + last.tokens.cache.read + last.tokens.cache.write\n if (tokens <= 0) return\n const model = models?.find((model) => model.providerID === last.model.providerID && model.id === last.model.id)\n return {\n tokens,\n percent: model?.limit.context ? Math.round((tokens / model.limit.context) * 100) : undefined,\n }\n}\n",
"export const logo = {\n left: [\" \", \"█▀▀█ █▀▀█ █▀▀█ █▀▀▄\", \"█__█ █__█ █^^^ █__█\", \"▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀~~▀\"],\n right: [\" ▄ \", \"█▀▀▀ █▀▀█ █▀▀█ █▀▀█\", \"█___ █__█ █__█ █^^^\", \"▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀\"],\n}\n\nexport const go = {\n left: [\" \", \"█▀▀▀\", \"█_^█\", \"▀▀▀▀\"],\n right: [\" \", \"█▀▀█\", \"█__█\", \"▀▀▀▀\"],\n}\n\nexport const marks = \"_^~,\"\n"
],
"mappings": ";2IAOA,cAAS,CAA2B,EAAG,CACrC,OAAO,IAAI,EAAS,CAClB,KAAM,UACN,KAAM,GACN,KAAM,GACN,MAAO,GACP,OAAQ,GACR,SAAU,GACV,OAAQ,GACR,IAAK,GACL,UAAW,QACX,OAAQ,KACV,CAAC,EAEH,SAAS,CAAwB,CAAC,EAAU,CAC1C,GAAI,IAAa,SACf,MAAO,QAET,GAAI,IAAa,QACf,MAAO,UAET,GAAI,IAAa,QACf,MAAO,QAET,MAAO,UAET,SAAS,CAAyB,CAAC,EAAU,CAC3C,IAAM,EAAW,EAAyB,OAAgB,EACpD,EAAmB,EAAS,cAAc,iBAAmB,GACnE,MAAO,CACL,WACA,gBAAiB,IAAa,QAAU,QAAU,IAAa,UAAY,UAAY,OACvF,UAAW,CACT,KAAM,YACN,MAAO,YACP,KAAM,YACN,MAAO,EAAmB,YAAc,UACxC,MAAO,EAAmB,YAAc,SAC1C,CACF,EAEF,SAAS,CAAuB,CAAC,EAAU,CACzC,MAAO,IACD,SAAQ,EAAG,CACb,OAAO,EAA0B,CAAQ,GAE3C,WAAY,EAAS,QACjB,YAAW,EAAG,CAChB,OAAO,EAAS,aAElB,gBAAgB,EAAG,CACjB,IAAM,EAAU,EAAS,yBACzB,GAAI,CAAC,GAAW,EAAQ,aAAe,CAAC,EAAQ,QAC9C,OAAO,KAET,OAAO,GAET,eAAe,CAAC,EAAQ,CACtB,OAAO,EAAO,QAEhB,iBAAiB,CAAC,EAAQ,CACxB,OAAO,EAAO,aAEhB,UAAU,CAAC,EAAU,CAEnB,OADA,EAAS,SAAS,gBAAgB,WAAY,CAAQ,EAC/C,IAAM,CACX,EAAS,SAAS,IAAI,WAAY,CAAQ,IAG9C,YAAY,CAAC,EAAU,CAErB,OADA,EAAS,SAAS,gBAAgB,aAAc,CAAQ,EACjD,IAAM,CACX,EAAS,SAAS,IAAI,aAAc,CAAQ,IAGhD,aAAa,CAAC,EAAU,CAEtB,OADA,EAAS,GAAG,EAAgB,mBAAoB,CAAQ,EACjD,IAAM,CACX,EAAS,IAAI,EAAgB,mBAAoB,CAAQ,IAG7D,SAAS,CAAC,EAAU,CAElB,OADA,EAAS,KAAK,EAAgB,QAAS,CAAQ,EACxC,IAAM,CACX,EAAS,IAAI,EAAgB,QAAS,CAAQ,IAGlD,eAAe,CAAC,EAAQ,EAAU,CAEhC,OADA,EAAO,KAAK,EAAiB,UAAW,CAAQ,EACzC,IAAM,CACX,EAAO,IAAI,EAAiB,UAAW,CAAQ,IAGnD,UAAU,CAAC,EAAU,CAEnB,OADA,EAAS,oBAAoB,CAAQ,EAC9B,IAAM,CACX,EAAS,mBAAmB,CAAQ,IAGxC,kBAAkB,EAAG,CACnB,OAAO,EAA4B,EAEvC,EAQF,SAAS,CAA0B,CAAC,EAAU,CAC5C,GAAI,EAAS,YACX,MAAU,MAAM,iDAAiD,EAEnE,IAAM,EAAS,IAAI,EAAO,EAAwB,CAAQ,CAAC,EAI3D,OAHA,EAAoB,CAAM,EAC1B,EAAsB,CAAM,EAC5B,EAAuB,CAAM,EACtB,EC3HF,SAAS,CAAc,CAAC,EAAe,CAC5C,MAAO,iFAAiF,KAAK,CAAK,EAG7F,SAAS,CAAsB,CAAC,EAA6C,EAAmB,CACrG,IAAM,EAAgB,EAAW,EAAS,UAAU,CAAC,IAAY,EAAQ,KAAO,CAAQ,EAAI,GAC5F,GAAI,GAAY,IAAkB,GAAI,OACtC,IAAM,EAAM,IAAkB,GAAK,EAAS,OAAS,EAC/C,EAAkB,EAAS,cAC/B,CAAC,EAAS,IAAU,EAAQ,OAAS,cAAgB,EAAQ,SAAW,aAAe,EAAQ,CACjG,EACA,OAAO,EAAS,SACd,CAAC,EAAS,IACR,EAAQ,OAAS,aAAe,EAAQ,SAAW,QAAa,EAAQ,GAAmB,EAAQ,CACvG,EAGK,SAAS,CAAY,CAC1B,EACA,EACA,EACA,CACA,IAAM,EAAO,EAAuB,EAAU,CAAQ,EACtD,GAAI,CAAC,EAAM,OACX,IAAM,EACJ,EAAK,OAAO,MAAQ,EAAK,OAAO,OAAS,EAAK,OAAO,UAAY,EAAK,OAAO,MAAM,KAAO,EAAK,OAAO,MAAM,MAC9G,GAAI,GAAU,EAAG,OACjB,IAAM,EAAQ,GAAQ,KAAK,CAAC,IAAU,EAAM,aAAe,EAAK,MAAM,YAAc,EAAM,KAAO,EAAK,MAAM,EAAE,EAC9G,MAAO,CACL,SACA,QAAS,GAAO,MAAM,QAAU,KAAK,MAAO,EAAS,EAAM,MAAM,QAAW,GAAG,EAAI,MACrF,ECjCK,IAAM,EAAO,CAClB,KAAM,CAAC,sBAAuB,sGAAsB,yDAAuB,2FAAqB,EAChG,MAAO,CAAC,2BAAsB,sGAAuB,oDAAuB,qGAAqB,CACnG,EAEa,EAAK,CAChB,KAAM,CAAC,OAAQ,2BAAO,iBAAQ,0BAAM,EACpC,MAAO,CAAC,OAAQ,2BAAO,iBAAQ,0BAAM,CACvC",
"debugId": "22D4011024A4474364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "43D5340E926F7ADD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/debug/agents.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { OpenCode } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.debug.commands.agents,\n Effect.fn(\"cli.debug.agents\")(function* () {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.start(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const response = yield* Effect.promise(() => client.agent.list({ location: { directory: process.cwd() } }))\n process.stdout.write(\n JSON.stringify(\n response.data.toSorted((a, b) => a.id.localeCompare(b.id)),\n null,\n 2,\n ) + EOL,\n )\n }),\n)\n"
],
"mappings": ";sgCAAA,mBAAS,gBAQT,SAAe,SAAQ,aACrB,OAAS,cAAS,WAAM,cAAS,YACjC,OAAO,QAAG,uBAAkB,OAAE,cAAU,OAAG,MACzC,SAAM,OAAU,WAAO,OAAc,aAAQ,OAEvC,QADQ,WAAO,OAAQ,cAAS,CAAO,KAClB,MAAO,EAAQ,MAAM,CAAO,GACjD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EACpF,EAAW,MAAO,EAAO,QAAQ,IAAM,EAAO,MAAM,KAAK,CAAE,SAAU,CAAE,UAAW,QAAQ,IAAI,CAAE,CAAE,CAAC,CAAC,EAC1G,QAAQ,OAAO,MACb,KAAK,UACH,EAAS,KAAK,SAAS,CAAC,EAAG,IAAM,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC,EACzD,KACA,CACF,EAAI,CACN,EACD,CACH",
"debugId": "1B1D5E6D13D8AF8D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/effect/layer-node.ts", "../core/src/effect/app-node.ts"],
"sourcesContent": [
"import { Brand, Context, Layer } from \"effect\"\n\ntype AnyNode = Node<unknown, unknown, any>\ntype RuntimeLayer = Layer.Layer<never, unknown, unknown>\ntype NodeList<Item extends AnyNode = AnyNode> = readonly [] | readonly [Item, ...Item[]]\nexport type Output<Item> = [Item] extends [never] ? never : Item extends Node<infer A, unknown, any> ? A : never\nexport type Error<Item> = [Item] extends [never] ? never : Item extends Node<unknown, infer E, any> ? E : never\ntype NodeTag<Item> = [Item] extends [never] ? undefined : Item extends Node<unknown, unknown, infer T> ? T : never\ntype Missing<Required, Dependencies extends NodeList> = Exclude<Required, Output<Dependencies[number]>>\ntype CheckDependencies<Implementation extends Layer.Any, Dependencies extends NodeList> = [\n Missing<Layer.Services<Implementation>, Dependencies>,\n] extends [never]\n ? unknown\n : { readonly \"Missing dependencies\": Missing<Layer.Services<Implementation>, Dependencies> }\ndeclare const $OutputType: unique symbol\ndeclare const $ErrorType: unique symbol\n\nexport type Tag<Name extends string = string> = Name & Brand.Brand<\"LayerNode.Tag\">\n\nconst makeTag = Brand.nominal<Tag>()\n\nexport interface Node<A, E = never, T extends Tag | undefined = undefined> {\n readonly kind: \"layer\" | \"unbound\" | \"group\"\n readonly name: string\n readonly service?: Context.Service.Any\n readonly implementation?: Layer.Any\n readonly dependencies: readonly AnyNode[]\n readonly tag?: T\n readonly [$OutputType]?: () => A\n readonly [$ErrorType]?: () => E\n}\n\ntype NodeIdentity =\n | { readonly service: Context.Service.Any; readonly name?: never }\n | { readonly name: string; readonly service?: never }\ntype DistributiveOmit<A, K extends PropertyKey> = A extends unknown ? Omit<A, K> : never\n\nexport type TagConfig = Readonly<Record<string, readonly string[]>>\ntype TagNames<Config extends TagConfig> = keyof Config & string\ntype NodeInTags<Names extends string> = Node<unknown, unknown, Tag<Names> | undefined>\ntype CheckTags<Items extends NodeList, Names extends string> = [Exclude<Items[number], NodeInTags<Names>>] extends [\n never,\n]\n ? unknown\n : { readonly \"Invalid tag dependencies\": Exclude<Items[number], NodeInTags<Names>> }\n\nexport interface Tags<Config extends TagConfig> {\n readonly values: { readonly [Name in TagNames<Config>]: Tag<Name> }\n readonly make: <Name extends TagNames<Config>>(\n name: Name,\n ) => <const Implementation extends Layer.Any, const Items extends NodeList>(\n input: DistributiveOmit<MakeInput<Implementation, Items, Tag<Name>>, \"tag\"> &\n CheckTags<Items, Name | Extract<Config[Name][number], string>>,\n ) => Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, Tag<Name>>\n}\n\nexport function tags<const Config extends { readonly [Name in keyof Config]: readonly (keyof Config & string)[] }>(\n config: Config,\n): Tags<Config> {\n const names = Object.keys(config) as TagNames<Config>[]\n const values = Object.fromEntries(names.map((name) => [name, makeTag(name)])) as Tags<Config>[\"values\"]\n return {\n values,\n make: ((name: TagNames<Config>) => (input: DistributiveOmit<MakeInput<Layer.Any, NodeList, Tag>, \"tag\">) =>\n make({ ...input, tag: values[name] })) as Tags<Config>[\"make\"],\n }\n}\n\n// Nodes ---------------------------------------------------------------------\n\ntype MakeInput<\n Implementation extends Layer.Any,\n Items extends NodeList,\n T extends Tag | undefined = undefined,\n> = NodeIdentity & {\n readonly layer: Implementation\n readonly deps: Items & CheckDependencies<Implementation, NoInfer<Items>>\n readonly tag?: T\n}\n\nexport function make<\n const Implementation extends Layer.Any,\n const Items extends NodeList,\n const T extends Tag | undefined = undefined,\n>(\n input: MakeInput<Implementation, Items, T>,\n): Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, T> {\n return {\n kind: \"layer\",\n name: input.service !== undefined ? input.service.key : input.name,\n service: input.service,\n implementation: input.layer,\n dependencies: input.deps,\n tag: input.tag,\n }\n}\n\nexport function unbound<R, Shape, const T extends Tag>(service: Context.Key<R, Shape>, tag: T): Node<R, never, T> {\n return {\n kind: \"unbound\",\n name: service.key,\n service,\n dependencies: [],\n tag,\n }\n}\n\nexport function group<const Items extends readonly AnyNode[]>(\n dependencies: Items,\n): Node<Output<Items[number]>, Error<Items[number]>, NodeTag<Items[number]>> {\n return { kind: \"group\", name: \"group\", dependencies }\n}\n\nexport type Replacement = readonly [source: AnyNode, replacement: AnyNode | Layer.Any]\nexport type Replacements = readonly Replacement[]\n\ntype CheckReplacementErrors<SourceError, ReplacementError> = [Exclude<ReplacementError, SourceError>] extends [never]\n ? unknown\n : { readonly \"New replacement errors\": Exclude<ReplacementError, SourceError> }\n\ntype CheckReplacement<Item> = Item extends readonly [Node<infer A, infer E, infer T>, infer Replacement]\n ? Replacement extends Node<NoInfer<A>, infer E2, T>\n ? CheckReplacementErrors<E, NoInfer<E2>>\n : Replacement extends Layer.Layer<NoInfer<A>, infer E2, never>\n ? CheckReplacementErrors<E, NoInfer<E2>>\n : { readonly \"Invalid replacement\": Replacement }\n : { readonly \"Invalid replacement\": Item }\n\ntype CheckReplacements<Items extends Replacements> = {\n readonly [K in keyof Items]: CheckReplacement<Items[K]>\n}\n\ntype ValidReplacements<Items extends Replacements> = Items & CheckReplacements<Items>\n\nfunction replacementNode(source: AnyNode, replacement: AnyNode | Layer.Any) {\n const replacementNode = isNode(replacement)\n ? replacement\n : make({\n ...nodeMakeIdentity(source),\n layer: replacement as Layer.Layer<unknown, unknown>,\n deps: [],\n tag: source.tag,\n })\n if (source.name !== replacementNode.name) {\n throw new Error(`Cannot replace ${source.name} with ${replacementNode.name}`)\n }\n if (source.tag !== replacementNode.tag) {\n throw new Error(`Cannot replace ${source.name} across tags`)\n }\n return replacementNode\n}\n\nfunction nodeMakeIdentity(node: AnyNode): NodeIdentity {\n if (node.service !== undefined) return { service: node.service }\n return { name: node.name }\n}\n\nfunction isNode(input: Layer.Any | AnyNode): input is AnyNode {\n return \"kind\" in input && \"dependencies\" in input\n}\n\n// Tree -----------------------------------------------------------------------\n\ntype Visit<Result> = (node: AnyNode, context: VisitContext<Result>) => Result\n\ntype VisitContext<Result> = {\n readonly cache: Map<AnyNode, Result>\n readonly visit: (node: AnyNode) => Result\n}\n\nfunction walk<Result>(\n root: AnyNode,\n visit: Visit<Result>,\n options: {\n readonly cache?: Map<AnyNode, Result>\n readonly resolve?: (node: AnyNode) => AnyNode\n readonly detectCycles?: boolean\n } = {},\n) {\n const cache = options.cache ?? new Map<AnyNode, Result>()\n const visiting = new Set<AnyNode>()\n const stack: AnyNode[] = []\n\n const recur = (node: AnyNode): Result => {\n const target = options.resolve?.(node) ?? node\n const cached = cache.get(target)\n if (cached !== undefined || cache.has(target)) return cached!\n\n if (options.detectCycles !== false && visiting.has(target)) {\n const start = stack.indexOf(target)\n throw new Error(\n `Cycle detected in layer tree: ${[...stack.slice(start), target].map((item) => item.name).join(\" -> \")}`,\n )\n }\n\n visiting.add(target)\n stack.push(target)\n try {\n const result = visit(target, { cache, visit: recur })\n if (!cache.has(target)) cache.set(target, result)\n return result\n } finally {\n stack.pop()\n visiting.delete(target)\n }\n }\n\n return recur(root)\n}\n\nexport function hoist<A, E, T extends Tag, const Items extends Replacements = readonly []>(\n root: Node<A, E, any>,\n tag: T,\n replacements?: ValidReplacements<Items>,\n): {\n readonly node: Node<A, E>\n readonly hoisted: Node<unknown, E>\n} {\n const hoisted = new Map<string, AnyNode>()\n const replacementMap = replacementMapFrom(replacements)\n\n const node = walk<AnyNode>(\n root,\n (node, context) => {\n if (node.kind === \"group\") {\n return { ...node, dependencies: node.dependencies.map(context.visit) }\n }\n if (node.tag === tag) {\n const existing = hoisted.get(node.name)\n if (existing && existing.implementation !== node.implementation) {\n throw new Error(`Tag ${tag} has conflicting implementations for ${node.name}`)\n }\n hoisted.set(node.name, rewriteReplacementDependencies(node, replacementMap))\n return group([])\n }\n if (node.kind === \"unbound\") {\n return node\n }\n return { ...node, dependencies: node.dependencies.map(context.visit) }\n },\n { resolve: (node) => replacementMap.get(node.name) ?? node },\n )\n\n return {\n node: node as Node<A, E>,\n hoisted: group(Array.from(hoisted.values())) as Node<unknown, E>,\n }\n}\n\nexport function compile<A, E, const Items extends Replacements = readonly []>(\n root: Node<A, E, any>,\n replacements?: ValidReplacements<Items>,\n): Layer.Layer<A, E> {\n const replacementMap = replacementMapFrom(replacements)\n const cache = new Map<AnyNode, RuntimeLayer>()\n const compileNode = (node: AnyNode) =>\n walk<RuntimeLayer>(\n node,\n (node, context) => {\n if (node.kind === \"unbound\") throw new Error(`Unbound layer node: ${node.name}`)\n const dependencies = node.dependencies.flatMap(flatten).map(context.visit)\n const implementation = node.implementation! as RuntimeLayer\n return dependencies.length === 0\n ? implementation\n : implementation.pipe(Layer.provide(dependencies as [RuntimeLayer, ...RuntimeLayer[]]))\n },\n { cache, resolve: (node) => replacementMap.get(node.name) ?? node },\n )\n const layers = flatten(root).map((node) => compileNode(node))\n const layer = layers.reduce<RuntimeLayer>((result, layer) => layer.pipe(Layer.provideMerge(result)), Layer.empty)\n return layer as Layer.Layer<A, E>\n}\n\nfunction replacementMapFrom(replacements?: Replacements) {\n return (\n replacements?.reduce((map, [source, replacement]) => {\n const normalized = rewriteReplacementDependencies(replacementNode(source, replacement), map)\n const current = new Map([[source.name, normalized]])\n for (const [name, node] of map) map.set(name, rewriteReplacementDependencies(node, current))\n map.set(source.name, normalized)\n return map\n }, new Map<string, AnyNode>()) ?? new Map<string, AnyNode>()\n )\n}\n\nfunction rewriteReplacementDependencies(root: AnyNode, replacements: ReadonlyMap<string, AnyNode>) {\n if (replacements.size === 0) return root\n const cache = new Map<AnyNode, AnyNode>()\n const visiting = new Set<AnyNode>()\n const stack: AnyNode[] = []\n\n const recur = (node: AnyNode, isRoot = false): AnyNode => {\n const target = isRoot ? node : (replacements.get(node.name) ?? node)\n const cached = cache.get(target)\n if (cached !== undefined || cache.has(target)) return cached!\n if (visiting.has(target)) {\n const start = stack.indexOf(target)\n throw new Error(\n `Cycle detected in layer tree: ${[...stack.slice(start), target].map((item) => item.name).join(\" -> \")}`,\n )\n }\n\n visiting.add(target)\n stack.push(target)\n try {\n const dependencies = target.dependencies.map((dependency) => recur(dependency))\n const result = dependencies.every((dependency, index) => dependency === target.dependencies[index])\n ? target\n : { ...target, dependencies }\n cache.set(target, result)\n return result\n } finally {\n stack.pop()\n visiting.delete(target)\n }\n }\n\n return recur(root, true)\n}\n\nexport function hasUnbound(root: Node<unknown, unknown, any>, source: AnyNode): boolean {\n if (source.kind !== \"unbound\") throw new Error(`Cannot check non-unbound layer node: ${source.name}`)\n return walk<boolean>(root, (node, context) => {\n if (node === source) return true\n return node.dependencies.some(context.visit)\n })\n}\n\nfunction flatten(node: AnyNode): readonly AnyNode[] {\n return node.kind === \"group\" ? node.dependencies.flatMap(flatten) : [node]\n}\n\nexport * as LayerNode from \"./layer-node\"\n",
"import { LayerNode } from \"./layer-node\"\n\nexport const tags = LayerNode.tags({\n location: [\"global\"],\n global: [],\n})\n\nexport type GlobalNode<A, E = never> = LayerNode.Node<A, E, (typeof tags.values)[\"global\"]>\nexport type LocationNode<A, E = never> = LayerNode.Node<A, E, (typeof tags.values)[\"location\"]>\n\nexport const makeGlobalNode = tags.make(\"global\")\nexport const makeLocationNode = tags.make(\"location\")\n\nexport * as Node from \"./app-node\"\n"
],
"mappings": ";sOAmBA,SAAM,EAAU,EAAM,QAAa,EAqC5B,SAAS,CAAkG,CAChH,EACc,CACd,IAAM,EAAQ,OAAO,KAAK,CAAM,EAC1B,EAAS,OAAO,YAAY,EAAM,IAAI,CAAC,IAAS,CAAC,EAAM,EAAQ,CAAI,CAAC,CAAC,CAAC,EAC5E,MAAO,CACL,SACA,KAAO,CAAC,IAA2B,CAAC,IAClC,EAAK,IAAK,EAAO,IAAK,EAAO,EAAM,CAAC,CACxC,EAeK,SAAS,CAIf,CACC,EAC4F,CAC5F,MAAO,CACL,KAAM,QACN,KAAM,EAAM,UAAY,OAAY,EAAM,QAAQ,IAAM,EAAM,KAC9D,QAAS,EAAM,QACf,eAAgB,EAAM,MACtB,aAAc,EAAM,KACpB,IAAK,EAAM,GACb,EAGK,SAAS,CAAsC,CAAC,EAAgC,EAA2B,CAChH,MAAO,CACL,KAAM,UACN,KAAM,EAAQ,IACd,UACA,aAAc,CAAC,EACf,KACF,EAGK,SAAS,CAA6C,CAC3D,EAC2E,CAC3E,MAAO,CAAE,KAAM,QAAS,KAAM,QAAS,cAAa,EAwBtD,SAAS,CAAe,CAAC,EAAiB,EAAkC,CAC1E,IAAM,EAAkB,EAAO,CAAW,EACtC,EACA,EAAK,IACA,EAAiB,CAAM,EAC1B,MAAO,EACP,KAAM,CAAC,EACP,IAAK,EAAO,GACd,CAAC,EACL,GAAI,EAAO,OAAS,EAAgB,KAClC,MAAU,MAAM,kBAAkB,EAAO,aAAa,EAAgB,MAAM,EAE9E,GAAI,EAAO,MAAQ,EAAgB,IACjC,MAAU,MAAM,kBAAkB,EAAO,kBAAkB,EAE7D,OAAO,EAGT,SAAS,CAAgB,CAAC,EAA6B,CACrD,GAAI,EAAK,UAAY,OAAW,MAAO,CAAE,QAAS,EAAK,OAAQ,EAC/D,MAAO,CAAE,KAAM,EAAK,IAAK,EAG3B,SAAS,CAAM,CAAC,EAA8C,CAC5D,MAAO,SAAU,GAAS,iBAAkB,EAY9C,SAAS,CAAY,CACnB,EACA,EACA,EAII,CAAC,EACL,CACA,IAAM,EAAQ,EAAQ,OAAS,IAAI,IAC7B,EAAW,IAAI,IACf,EAAmB,CAAC,EAEpB,EAAQ,CAAC,IAA0B,CACvC,IAAM,EAAS,EAAQ,UAAU,CAAI,GAAK,EACpC,EAAS,EAAM,IAAI,CAAM,EAC/B,GAAI,IAAW,QAAa,EAAM,IAAI,CAAM,EAAG,OAAO,EAEtD,GAAI,EAAQ,eAAiB,IAAS,EAAS,IAAI,CAAM,EAAG,CAC1D,IAAM,EAAQ,EAAM,QAAQ,CAAM,EAClC,MAAU,MACR,iCAAiC,CAAC,GAAG,EAAM,MAAM,CAAK,EAAG,CAAM,EAAE,IAAI,CAAC,IAAS,EAAK,IAAI,EAAE,KAAK,MAAM,GACvG,EAGF,EAAS,IAAI,CAAM,EACnB,EAAM,KAAK,CAAM,EACjB,GAAI,CACF,IAAM,EAAS,EAAM,EAAQ,CAAE,QAAO,MAAO,CAAM,CAAC,EACpD,GAAI,CAAC,EAAM,IAAI,CAAM,EAAG,EAAM,IAAI,EAAQ,CAAM,EAChD,OAAO,SACP,CACA,EAAM,IAAI,EACV,EAAS,OAAO,CAAM,IAI1B,OAAO,EAAM,CAAI,EAGZ,SAAS,CAA0E,CACxF,EACA,EACA,EAIA,CACA,IAAM,EAAU,IAAI,IACd,EAAiB,EAAmB,CAAY,EAwBtD,MAAO,CACL,KAvBW,EACX,EACA,CAAC,EAAM,IAAY,CACjB,GAAI,EAAK,OAAS,QAChB,MAAO,IAAK,EAAM,aAAc,EAAK,aAAa,IAAI,EAAQ,KAAK,CAAE,EAEvE,GAAI,EAAK,MAAQ,EAAK,CACpB,IAAM,EAAW,EAAQ,IAAI,EAAK,IAAI,EACtC,GAAI,GAAY,EAAS,iBAAmB,EAAK,eAC/C,MAAU,MAAM,OAAO,yCAA2C,EAAK,MAAM,EAG/E,OADA,EAAQ,IAAI,EAAK,KAAM,EAA+B,EAAM,CAAc,CAAC,EACpE,EAAM,CAAC,CAAC,EAEjB,GAAI,EAAK,OAAS,UAChB,OAAO,EAET,MAAO,IAAK,EAAM,aAAc,EAAK,aAAa,IAAI,EAAQ,KAAK,CAAE,GAEvE,CAAE,QAAS,CAAC,IAAS,EAAe,IAAI,EAAK,IAAI,GAAK,CAAK,CAC7D,EAIE,QAAS,EAAM,MAAM,KAAK,EAAQ,OAAO,CAAC,CAAC,CAC7C,EAGK,SAAS,CAA6D,CAC3E,EACA,EACmB,CACnB,IAAM,EAAiB,EAAmB,CAAY,EAChD,EAAQ,IAAI,IACZ,EAAc,CAAC,IACnB,EACE,EACA,CAAC,EAAM,IAAY,CACjB,GAAI,EAAK,OAAS,UAAW,MAAU,MAAM,uBAAuB,EAAK,MAAM,EAC/E,IAAM,EAAe,EAAK,aAAa,QAAQ,CAAO,EAAE,IAAI,EAAQ,KAAK,EACnE,EAAiB,EAAK,eAC5B,OAAO,EAAa,SAAW,EAC3B,EACA,EAAe,KAAK,EAAM,QAAQ,CAAiD,CAAC,GAE1F,CAAE,QAAO,QAAS,CAAC,IAAS,EAAe,IAAI,EAAK,IAAI,GAAK,CAAK,CACpE,EAGF,OAFe,EAAQ,CAAI,EAAE,IAAI,CAAC,IAAS,EAAY,CAAI,CAAC,EACvC,OAAqB,CAAC,EAAQ,IAAU,EAAM,KAAK,EAAM,aAAa,CAAM,CAAC,EAAG,EAAM,KAAK,EAIlH,SAAS,CAAkB,CAAC,EAA6B,CACvD,OACE,GAAc,OAAO,CAAC,GAAM,EAAQ,KAAiB,CACnD,IAAM,EAAa,EAA+B,EAAgB,EAAQ,CAAW,EAAG,CAAG,EACrF,EAAU,IAAI,IAAI,CAAC,CAAC,EAAO,KAAM,CAAU,CAAC,CAAC,EACnD,QAAY,EAAM,KAAS,EAAK,EAAI,IAAI,EAAM,EAA+B,EAAM,CAAO,CAAC,EAE3F,OADA,EAAI,IAAI,EAAO,KAAM,CAAU,EACxB,GACN,IAAI,GAAsB,GAAK,IAAI,IAI1C,SAAS,CAA8B,CAAC,EAAe,EAA4C,CACjG,GAAI,EAAa,OAAS,EAAG,OAAO,EACpC,IAAM,EAAQ,IAAI,IACZ,EAAW,IAAI,IACf,EAAmB,CAAC,EAEpB,EAAQ,CAAC,EAAe,EAAS,KAAmB,CACxD,IAAM,EAAS,EAAS,EAAQ,EAAa,IAAI,EAAK,IAAI,GAAK,EACzD,EAAS,EAAM,IAAI,CAAM,EAC/B,GAAI,IAAW,QAAa,EAAM,IAAI,CAAM,EAAG,OAAO,EACtD,GAAI,EAAS,IAAI,CAAM,EAAG,CACxB,IAAM,EAAQ,EAAM,QAAQ,CAAM,EAClC,MAAU,MACR,iCAAiC,CAAC,GAAG,EAAM,MAAM,CAAK,EAAG,CAAM,EAAE,IAAI,CAAC,IAAS,EAAK,IAAI,EAAE,KAAK,MAAM,GACvG,EAGF,EAAS,IAAI,CAAM,EACnB,EAAM,KAAK,CAAM,EACjB,GAAI,CACF,IAAM,EAAe,EAAO,aAAa,IAAI,CAAC,IAAe,EAAM,CAAU,CAAC,EACxE,EAAS,EAAa,MAAM,CAAC,EAAY,IAAU,IAAe,EAAO,aAAa,EAAM,EAC9F,EACA,IAAK,EAAQ,cAAa,EAE9B,OADA,EAAM,IAAI,EAAQ,CAAM,EACjB,SACP,CACA,EAAM,IAAI,EACV,EAAS,OAAO,CAAM,IAI1B,OAAO,EAAM,EAAM,EAAI,EAGlB,SAAS,CAAU,CAAC,EAAmC,EAA0B,CACtF,GAAI,EAAO,OAAS,UAAW,MAAU,MAAM,wCAAwC,EAAO,MAAM,EACpG,OAAO,EAAc,EAAM,CAAC,EAAM,IAAY,CAC5C,GAAI,IAAS,EAAQ,MAAO,GAC5B,OAAO,EAAK,aAAa,KAAK,EAAQ,KAAK,EAC5C,EAGH,SAAS,CAAO,CAAC,EAAmC,CAClD,OAAO,EAAK,OAAS,QAAU,EAAK,aAAa,QAAQ,CAAO,EAAI,CAAC,CAAI,oFCvUpE,IAAM,EAAO,EAAU,KAAK,CACjC,SAAU,CAAC,QAAQ,EACnB,OAAQ,CAAC,CACX,CAAC,EAKY,EAAiB,EAAK,KAAK,QAAQ,EACnC,EAAmB,EAAK,KAAK,UAAU",
"debugId": "F3298CF35371590E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../simulation/src/manifest.ts", "../simulation/src/protocol/index.ts", "../simulation/src/control-server.ts"],
"sourcesContent": [
"import { homedir } from \"node:os\"\nimport { isAbsolute, join } from \"node:path\"\nimport { Config, Effect, FileSystem, Schema } from \"effect\"\nimport { PositiveInt } from \"@opencode-ai/core/schema\"\n\nconst InstanceName = Schema.String.check(\n Schema.makeFilter((value) =>\n /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/.test(value) ? undefined : \"a valid Drive instance name\",\n ),\n)\n\nconst Endpoint = Schema.String.check(\n Schema.makeFilter((value) => {\n if (!URL.canParse(value)) return \"a loopback WebSocket endpoint with an explicit port\"\n const endpoint = new URL(value)\n const port = Number(endpoint.port)\n return endpoint.protocol === \"ws:\" && endpoint.hostname === \"127.0.0.1\" && Number.isInteger(port) && port >= 1\n ? undefined\n : \"a loopback WebSocket endpoint with an explicit port\"\n }),\n)\n\nconst AbsolutePath = Schema.String.check(\n Schema.makeFilter((value) => (isAbsolute(value) ? undefined : \"an absolute path\")),\n)\n\nexport const Manifest = Schema.Struct({\n endpoints: Schema.Struct({\n ui: Endpoint,\n backend: Endpoint,\n }),\n viewport: Schema.optionalKey(\n Schema.Struct({\n cols: PositiveInt,\n rows: PositiveInt,\n }),\n ),\n recording: Schema.optionalKey(\n Schema.Struct({\n timeline: AbsolutePath,\n }),\n ),\n})\nexport interface Manifest extends Schema.Schema.Type<typeof Manifest> {}\n\nexport class ResolveError extends Schema.TaggedErrorClass<ResolveError>()(\"DriveManifest.ResolveError\", {\n reason: Schema.Literals([\"config\", \"not-found\", \"read\", \"decode\"]),\n path: Schema.optionalKey(Schema.String),\n message: Schema.String,\n cause: Schema.Defect(),\n}) {}\n\nexport const defaults: Manifest = {\n endpoints: {\n ui: \"ws://127.0.0.1:40900\",\n backend: \"ws://127.0.0.1:40950\",\n },\n}\n\nconst decode = Schema.decodeUnknownEffect(Schema.fromJsonString(Manifest))\n\nconst configError = (cause: unknown) =>\n new ResolveError({\n reason: \"config\",\n message: `Invalid Drive configuration: ${String(cause)}`,\n cause,\n })\n\nexport const resolve = Effect.fn(\"DriveManifest.resolve\")(function* () {\n const name = yield* Config.schema(InstanceName, \"OPENCODE_DRIVE\").pipe(Effect.mapError(configError))\n if (name === \"1\") return defaults\n\n const state = yield* Config.string(\"XDG_STATE_HOME\").pipe(\n Config.withDefault(join(homedir(), \".local\", \"state\")),\n Effect.mapError(configError),\n )\n const directory = yield* Config.string(\"DRIVE_REGISTRY_DIR\").pipe(\n Config.withDefault(join(state, \"opencode-drive\", \"instances\")),\n Effect.mapError(configError),\n )\n const file = join(directory, `${name}.json`)\n const fs = yield* FileSystem.FileSystem\n const contents = yield* fs.readFileString(file).pipe(\n Effect.mapError(\n (cause) =>\n new ResolveError({\n reason: cause.reason._tag === \"NotFound\" ? \"not-found\" : \"read\",\n path: file,\n message:\n cause.reason._tag === \"NotFound\"\n ? `Drive manifest not found: ${file}`\n : `Failed to read Drive manifest: ${file}: ${cause.message}`,\n cause,\n }),\n ),\n )\n return yield* decode(contents).pipe(\n Effect.mapError(\n (cause) =>\n new ResolveError({\n reason: \"decode\",\n path: file,\n message: `Invalid Drive manifest: ${file}: ${cause.message}`,\n cause,\n }),\n ),\n )\n})\n\nexport * as DriveManifest from \"./manifest\"\n",
"import { Effect, Schema } from \"effect\"\n\nconst JsonRpcID = Schema.Union([Schema.String, Schema.Number, Schema.Null])\ntype Json = Schema.Schema.Type<typeof Schema.Json>\n\nexport namespace JsonRpc {\n export const RequestFields = {\n jsonrpc: Schema.Literal(\"2.0\"),\n id: Schema.optional(JsonRpcID),\n }\n export const Request = Schema.Struct({\n ...RequestFields,\n method: Schema.String,\n params: Schema.optional(Schema.Json),\n })\n export interface Request extends Schema.Schema.Type<typeof Request> {}\n\n export const ErrorObject = Schema.Struct({\n code: Schema.Number,\n message: Schema.String,\n data: Schema.optional(Schema.Json),\n })\n\n export const Response = Schema.Struct({\n jsonrpc: Schema.Literal(\"2.0\"),\n id: JsonRpcID,\n result: Schema.optional(Schema.Json),\n error: Schema.optional(ErrorObject),\n })\n export interface Response extends Schema.Schema.Type<typeof Response> {}\n\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n\n export function success(id: Request[\"id\"], result: unknown): Response | undefined {\n if (id === undefined) return undefined\n return { jsonrpc: \"2.0\", id, result: result as Json }\n }\n\n export function failure(id: Request[\"id\"], error: unknown): Response {\n return {\n jsonrpc: \"2.0\",\n id: id ?? null,\n error: {\n code: -32000,\n message: error instanceof Error ? error.message : String(error),\n },\n }\n }\n}\n\nexport namespace Frontend {\n export const KeyModifiers = Schema.Struct({\n ctrl: Schema.optional(Schema.Boolean),\n shift: Schema.optional(Schema.Boolean),\n meta: Schema.optional(Schema.Boolean),\n super: Schema.optional(Schema.Boolean),\n hyper: Schema.optional(Schema.Boolean),\n })\n export interface KeyModifiers extends Schema.Schema.Type<typeof KeyModifiers> {}\n\n export const Action = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"ui.type\"), text: Schema.String }),\n Schema.Struct({ type: Schema.Literal(\"ui.press\"), key: Schema.String, modifiers: Schema.optional(KeyModifiers) }),\n Schema.Struct({ type: Schema.Literal(\"ui.enter\") }),\n Schema.Struct({ type: Schema.Literal(\"ui.arrow\"), direction: Schema.Literals([\"up\", \"down\", \"left\", \"right\"]) }),\n Schema.Struct({ type: Schema.Literal(\"ui.focus\"), target: Schema.Number }),\n Schema.Struct({ type: Schema.Literal(\"ui.click\"), target: Schema.Number, x: Schema.Number, y: Schema.Number }),\n Schema.Struct({ type: Schema.Literal(\"ui.resize\"), cols: Schema.Number, rows: Schema.Number }),\n ])\n export type Action = Schema.Schema.Type<typeof Action>\n\n export const Element = Schema.Struct({\n id: Schema.String,\n num: Schema.Number,\n x: Schema.Number,\n y: Schema.Number,\n width: Schema.Number,\n height: Schema.Number,\n focusable: Schema.Boolean,\n focused: Schema.Boolean,\n clickable: Schema.Boolean,\n editor: Schema.Boolean,\n })\n export interface Element extends Schema.Schema.Type<typeof Element> {}\n\n export const State = Schema.Struct({\n focused: Schema.Struct({\n renderable: Schema.optional(Schema.Number),\n editor: Schema.Boolean,\n }),\n elements: Schema.Array(Element),\n })\n export interface State extends Schema.Schema.Type<typeof State> {}\n\n export const Screenshot = Schema.String\n export type Screenshot = Schema.Schema.Type<typeof Screenshot>\n\n export const Color = Schema.Tuple([Schema.Number, Schema.Number, Schema.Number, Schema.Number])\n export type Color = Schema.Schema.Type<typeof Color>\n\n export const CapturedFrame = Schema.Struct({\n cols: Schema.Number,\n rows: Schema.Number,\n cursor: Schema.Tuple([Schema.Number, Schema.Number]),\n lines: Schema.Array(\n Schema.Struct({\n spans: Schema.Array(\n Schema.Struct({\n text: Schema.String,\n fg: Color,\n bg: Color,\n attributes: Schema.Number,\n width: Schema.Number,\n }),\n ),\n }),\n ),\n })\n export interface CapturedFrame extends Schema.Schema.Type<typeof CapturedFrame> {}\n\n export const RecordingFinish = Schema.String\n export type RecordingFinish = Schema.Schema.Type<typeof RecordingFinish>\n\n export const Matches = Schema.Boolean\n export type Matches = Schema.Schema.Type<typeof Matches>\n\n export const ScreenshotParams = Schema.Struct({ name: Schema.optional(Schema.String) })\n export interface ScreenshotParams extends Schema.Schema.Type<typeof ScreenshotParams> {}\n\n export const TypeParams = Schema.Struct({ text: Schema.String })\n export interface TypeParams extends Schema.Schema.Type<typeof TypeParams> {}\n\n export const MatchesParams = Schema.Struct({ text: Schema.String })\n export interface MatchesParams extends Schema.Schema.Type<typeof MatchesParams> {}\n\n export const PressParams = Schema.Struct({ key: Schema.String, modifiers: Schema.optional(KeyModifiers) })\n export interface PressParams extends Schema.Schema.Type<typeof PressParams> {}\n\n export const ArrowParams = Schema.Struct({ direction: Schema.Literals([\"up\", \"down\", \"left\", \"right\"]) })\n export interface ArrowParams extends Schema.Schema.Type<typeof ArrowParams> {}\n\n export const FocusParams = Schema.Struct({ target: Schema.Number })\n export interface FocusParams extends Schema.Schema.Type<typeof FocusParams> {}\n\n export const ClickParams = Schema.Struct({ target: Schema.Number, x: Schema.Number, y: Schema.Number })\n export interface ClickParams extends Schema.Schema.Type<typeof ClickParams> {}\n\n export const ResizeParams = Schema.Struct({ cols: Schema.Number, rows: Schema.Number })\n export interface ResizeParams extends Schema.Schema.Type<typeof ResizeParams> {}\n\n export const Request = Schema.Union([\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.type\"), params: TypeParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.press\"), params: PressParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.arrow\"), params: ArrowParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.focus\"), params: FocusParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.click\"), params: ClickParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.resize\"), params: ResizeParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.matches\"), params: MatchesParams }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literal(\"ui.screenshot\"),\n params: Schema.optional(ScreenshotParams),\n }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literals([\"ui.enter\", \"ui.state\", \"ui.recording.finish\"]),\n }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"ui.capture\") }),\n ])\n export type Request = Schema.Schema.Type<typeof Request>\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n export const decodeRequestEffect = Schema.decodeUnknownEffect(Schema.fromJsonString(Request))\n}\n\nexport namespace Backend {\n export const Item = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"textDelta\"), text: Schema.String }),\n Schema.Struct({ type: Schema.Literal(\"reasoningDelta\"), text: Schema.String }),\n Schema.Struct({\n type: Schema.Literal(\"toolCall\"),\n index: Schema.Number,\n id: Schema.String,\n name: Schema.String,\n input: Schema.Json,\n }),\n Schema.Struct({ type: Schema.Literal(\"raw\"), chunk: Schema.Json }),\n ])\n export type Item = Schema.Schema.Type<typeof Item>\n\n export const FinishReason = Schema.Literals([\"stop\", \"tool-calls\", \"length\", \"content-filter\"])\n export type FinishReason = Schema.Schema.Type<typeof FinishReason>\n\n export const ChunkParams = Schema.Struct({ id: Schema.String, items: Schema.Array(Item) })\n export interface ChunkParams extends Schema.Schema.Type<typeof ChunkParams> {}\n\n export const FinishParams = Schema.Struct({\n id: Schema.String,\n reason: FinishReason.pipe(Schema.withDecodingDefault(Effect.succeed(\"stop\" as const))),\n })\n export interface FinishParams extends Schema.Schema.Type<typeof FinishParams> {}\n\n export const DisconnectParams = Schema.Struct({ id: Schema.String })\n export interface DisconnectParams extends Schema.Schema.Type<typeof DisconnectParams> {}\n\n export const Request = Schema.Union([\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.chunk\"), params: ChunkParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.finish\"), params: FinishParams }),\n Schema.Struct({ ...JsonRpc.RequestFields, method: Schema.Literal(\"llm.disconnect\"), params: DisconnectParams }),\n Schema.Struct({\n ...JsonRpc.RequestFields,\n method: Schema.Literals([\"llm.attach\", \"llm.pending\"]),\n }),\n ])\n export type Request = Schema.Schema.Type<typeof Request>\n export const decodeRequest = Schema.decodeUnknownSync(Request)\n export const decodeRequestEffect = Schema.decodeUnknownEffect(Schema.fromJsonString(Request))\n\n export const ProviderInvocation = Schema.Struct({ id: Schema.String, url: Schema.String, body: Schema.Json })\n export interface ProviderInvocation extends Schema.Schema.Type<typeof ProviderInvocation> {}\n\n export const NetworkLogEntry = Schema.Struct({\n time: Schema.Number,\n method: Schema.String,\n url: Schema.String,\n matched: Schema.Boolean,\n })\n export interface NetworkLogEntry extends Schema.Schema.Type<typeof NetworkLogEntry> {}\n}\n\nexport * as SimulationProtocol from \"./index\"\n",
"import { Effect, Fiber, Queue, Stream } from \"effect\"\nimport { SimulationProtocol } from \"./protocol\"\n\nexport interface Server {\n readonly url: string\n}\n\ninterface Request {\n readonly id?: string | number | null\n}\n\nexport interface SocketData {\n readonly drive?: true\n attachment?: Fiber.Fiber<void>\n closed?: true\n}\n\nexport type Socket = Bun.ServerWebSocket<SocketData>\n\nexport function start<RequestType extends Request, Error, Services>(options: {\n readonly endpoint: string\n readonly label: string\n readonly data: () => SocketData\n readonly decode: (input: string) => Effect.Effect<RequestType, Error>\n readonly handle: (socket: Socket, request: RequestType) => Effect.Effect<unknown, unknown, Services>\n readonly close?: (socket: Socket) => Effect.Effect<void, never, Services>\n}) {\n return Effect.gen(function* () {\n const messages = yield* Queue.bounded<{ readonly socket: Socket; readonly input: string }>(256)\n const closures = yield* Queue.unbounded<Socket>()\n yield* Stream.fromQueue(messages).pipe(\n Stream.runForEach((message) =>\n options.decode(message.input).pipe(\n Effect.flatMap((request) =>\n options.handle(message.socket, request).pipe(\n Effect.matchEffect({\n onFailure: (error) => send(message.socket, SimulationProtocol.JsonRpc.failure(request.id, error)),\n onSuccess: (result) => send(message.socket, SimulationProtocol.JsonRpc.success(request.id, result)),\n }),\n ),\n ),\n Effect.catch((error) => send(message.socket, SimulationProtocol.JsonRpc.failure(undefined, error))),\n ),\n ),\n Effect.forkScoped,\n )\n yield* Stream.fromQueue(closures).pipe(\n Stream.runForEach((socket) => options.close?.(socket) ?? Effect.void),\n Effect.forkScoped,\n )\n const url = yield* Effect.try({ try: () => new URL(options.endpoint), catch: (cause) => cause })\n yield* Effect.acquireRelease(\n Effect.sync(() =>\n Bun.serve<SocketData>({\n hostname: url.hostname,\n port: Number(url.port),\n fetch(request, server) {\n if (server.upgrade(request, { data: options.data() })) return undefined\n return new Response(options.label, { status: 426 })\n },\n websocket: {\n close(socket) {\n socket.data.closed = true\n Queue.offerUnsafe(closures, socket)\n },\n message(socket, message) {\n const input = typeof message === \"string\" ? message : message.toString()\n if (Queue.offerUnsafe(messages, { socket, input })) return\n socket.send(\n JSON.stringify(\n SimulationProtocol.JsonRpc.failure(undefined, new Error(\"Simulation control queue is full\")),\n ),\n )\n },\n },\n }),\n ),\n (server) => Effect.promise(() => server.stop(true)),\n )\n return { url: options.endpoint } satisfies Server\n })\n}\n\nfunction send(socket: Socket, response: SimulationProtocol.JsonRpc.Response | undefined) {\n if (!response) return Effect.void\n return Effect.sync(() => {\n socket.send(JSON.stringify(response))\n })\n}\n\nexport * as SimulationControlServer from \"./control-server\"\n"
],
"mappings": "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",
"debugId": "8606D3802B951F4F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/unset.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.unset,\n Effect.fn(\"cli.service.unset\")(function* (input) {\n yield* ServiceConfig.unset(input.key)\n }),\n)\n"
],
"mappings": ";08BAKA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,WACnC,OAAO,QAAG,wBAAmB,OAAE,cAAU,MAAC,OAAO,MAC/C,WAAO,OAAc,WAAM,OAAM,QAAG,OACrC,MACH",
"debugId": "A60DBF8D8562D80C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/mime-types@3.0.2/node_modules/mime-types/mimeScore.js", "../core/src/fs-util.ts", "../../node_modules/.bun/mime-types@3.0.2/node_modules/mime-types/index.js", "../core/src/effect/service-use.ts"],
"sourcesContent": [
"// 'mime-score' back-ported to CommonJS\n\n// Score RFC facets (see https://tools.ietf.org/html/rfc6838#section-3)\nvar FACET_SCORES = {\n 'prs.': 100,\n 'x-': 200,\n 'x.': 300,\n 'vnd.': 400,\n default: 900\n}\n\n// Score mime source (Logic originally from `jshttp/mime-types` module)\nvar SOURCE_SCORES = {\n nginx: 10,\n apache: 20,\n iana: 40,\n default: 30 // definitions added by `jshttp/mime-db` project?\n}\n\nvar TYPE_SCORES = {\n // prefer application/xml over text/xml\n // prefer application/rtf over text/rtf\n application: 1,\n\n // prefer font/woff over application/font-woff\n font: 2,\n\n // prefer video/mp4 over audio/mp4 over application/mp4\n // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2\n audio: 2,\n video: 3,\n\n default: 0\n}\n\n/**\n * Get each component of the score for a mime type. The sum of these is the\n * total score. The higher the score, the more \"official\" the type.\n */\nmodule.exports = function mimeScore (mimeType, source = 'default') {\n if (mimeType === 'application/octet-stream') {\n return 0\n }\n\n const [type, subtype] = mimeType.split('/')\n\n const facet = subtype.replace(/(\\.|x-).*/, '$1')\n\n const facetScore = FACET_SCORES[facet] || FACET_SCORES.default\n const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default\n const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default\n\n // All else being equal prefer shorter types\n const lengthScore = 1 - mimeType.length / 100\n\n return facetScore + sourceScore + typeScore + lengthScore\n}\n",
"import { NodeFileSystem } from \"@effect/platform-node\"\nimport path, { dirname, isAbsolute, join, relative, sep } from \"path\"\nimport { realpathSync } from \"fs\"\nimport { readdir } from \"fs/promises\"\nimport { lookup } from \"mime-types\"\nimport { Context, Effect, FileSystem, Layer, Schema } from \"effect\"\nimport type { PlatformError } from \"effect/PlatformError\"\nimport { Glob } from \"./util/glob\"\nimport { serviceUse } from \"./effect/service-use\"\nimport { makeGlobalNode } from \"./effect/app-node\"\nimport { filesystem } from \"./effect/app-node-platform\"\n\nexport namespace FSUtil {\n export class FileSystemError extends Schema.TaggedErrorClass<FileSystemError>()(\"FileSystemError\", {\n method: Schema.String,\n cause: Schema.optional(Schema.Defect()),\n }) {\n override get message() {\n const detail = this.cause instanceof Error ? this.cause.message : this.cause && String(this.cause)\n return `Filesystem operation failed: ${this.method}${detail ? `: ${detail}` : \"\"}`\n }\n }\n\n export type Error = PlatformError | FileSystemError\n\n export interface DirEntry {\n readonly name: string\n readonly type: \"file\" | \"directory\" | \"symlink\" | \"other\"\n }\n\n export interface Interface extends FileSystem.FileSystem {\n readonly isDir: (path: string) => Effect.Effect<boolean>\n readonly isFile: (path: string) => Effect.Effect<boolean>\n readonly existsSafe: (path: string) => Effect.Effect<boolean>\n readonly readFileStringSafe: (path: string) => Effect.Effect<string | undefined, Error>\n readonly readJson: (path: string) => Effect.Effect<unknown, Error>\n readonly writeJson: (path: string, data: unknown, mode?: number) => Effect.Effect<void, Error>\n readonly ensureDir: (path: string) => Effect.Effect<void, Error>\n readonly writeWithDirs: (path: string, content: string | Uint8Array, mode?: number) => Effect.Effect<void, Error>\n readonly readDirectoryEntries: (path: string) => Effect.Effect<DirEntry[], Error>\n readonly resolve: (path: string) => Effect.Effect<string>\n readonly findUp: (target: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly up: (options: { targets: string[]; start: string; stop?: string }) => Effect.Effect<string[], Error>\n readonly globUp: (pattern: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly glob: (pattern: string, options?: Glob.Options) => Effect.Effect<string[], Error>\n readonly globMatch: (pattern: string, filepath: string) => boolean\n }\n\n export class Service extends Context.Service<Service, Interface>()(\"@opencode/FileSystem\") {}\n\n export const use = serviceUse(Service)\n\n // Exported so simulation can wrap this layer and override the methods that\n // bypass the injected FileSystem (readDirectoryEntries, glob, globUp).\n export const layer = Layer.effect(\n Service,\n Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n\n const existsSafe = Effect.fn(\"FileSystem.existsSafe\")(function* (path: string) {\n return yield* fs.exists(path).pipe(Effect.orElseSucceed(() => false))\n })\n\n const readFileStringSafe = Effect.fn(\"FileSystem.readFileStringSafe\")(function* (path: string) {\n return yield* fs.readFileString(path).pipe(\n Effect.catchReason(\"PlatformError\", \"NotFound\", () => Effect.succeed(undefined)),\n Effect.catchReason(\"PlatformError\", \"PermissionDenied\", () => Effect.succeed(undefined)),\n )\n })\n\n const isDir = Effect.fn(\"FileSystem.isDir\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"Directory\"\n })\n\n const isFile = Effect.fn(\"FileSystem.isFile\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"File\"\n })\n\n const readDirectoryEntries = Effect.fn(\"FileSystem.readDirectoryEntries\")(function* (dirPath: string) {\n return yield* Effect.tryPromise({\n try: async () => {\n const entries = await readdir(dirPath, { withFileTypes: true })\n return entries.map(\n (e): DirEntry => ({\n name: e.name,\n type: e.isDirectory() ? \"directory\" : e.isSymbolicLink() ? \"symlink\" : e.isFile() ? \"file\" : \"other\",\n }),\n )\n },\n catch: (cause) => new FileSystemError({ method: \"readDirectoryEntries\", cause }),\n })\n })\n\n const resolve = Effect.fn(\"FileSystem.resolve\")(function* (input: string) {\n const resolved = path.resolve(windowsPath(input))\n return yield* fs.realPath(resolved).pipe(\n Effect.catchReason(\"PlatformError\", \"NotFound\", () => Effect.succeed(resolved)),\n Effect.orDie,\n )\n })\n\n const readJson = Effect.fn(\"FileSystem.readJson\")(function* (path: string) {\n const text = yield* fs.readFileString(path)\n return yield* Effect.try({\n try: () => JSON.parse(text),\n catch: (cause) => new FileSystemError({ method: \"readJson\", cause }),\n })\n })\n\n const writeJson = Effect.fn(\"FileSystem.writeJson\")(function* (path: string, data: unknown, mode?: number) {\n const content = JSON.stringify(data, null, 2)\n yield* fs.writeFileString(path, content)\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const ensureDir = Effect.fn(\"FileSystem.ensureDir\")(function* (path: string) {\n yield* fs.makeDirectory(path, { recursive: true })\n })\n\n const writeWithDirs = Effect.fn(\"FileSystem.writeWithDirs\")(function* (\n path: string,\n content: string | Uint8Array,\n mode?: number,\n ) {\n const write = typeof content === \"string\" ? fs.writeFileString(path, content) : fs.writeFile(path, content)\n\n yield* write.pipe(\n Effect.catchIf(\n (e) => e.reason._tag === \"NotFound\",\n () =>\n Effect.gen(function* () {\n yield* fs.makeDirectory(dirname(path), { recursive: true })\n yield* write\n }),\n ),\n )\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const glob = Effect.fn(\"FileSystem.glob\")(function* (pattern: string, options?: Glob.Options) {\n return yield* Effect.tryPromise({\n try: () => Glob.scan(pattern, options),\n catch: (cause) => new FileSystemError({ method: \"glob\", cause }),\n })\n })\n\n const findUp = Effect.fn(\"FileSystem.findUp\")(function* (target: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const up = Effect.fn(\"FileSystem.up\")(function* (options: { targets: string[]; start: string; stop?: string }) {\n const result: string[] = []\n let current = options.start\n while (true) {\n for (const target of options.targets) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n }\n if (options.stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const globUp = Effect.fn(\"FileSystem.globUp\")(function* (pattern: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const matches = yield* glob(pattern, { cwd: current, absolute: true, include: \"file\", dot: true }).pipe(\n Effect.catch(() => Effect.succeed([] as string[])),\n )\n result.push(...matches)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n return Service.of({\n ...fs,\n existsSafe,\n readFileStringSafe,\n isDir,\n isFile,\n readDirectoryEntries,\n resolve,\n readJson,\n writeJson,\n ensureDir,\n writeWithDirs,\n findUp,\n up,\n globUp,\n glob,\n globMatch: Glob.match,\n })\n }),\n )\n\n export const node = makeGlobalNode({ service: Service, layer: layer, deps: [filesystem] })\n\n // Pure helpers that don't need Effect (path manipulation, sync operations)\n export function mimeType(p: string): string {\n return lookup(p) || \"application/octet-stream\"\n }\n\n export function normalizePath(p: string): string {\n if (process.platform !== \"win32\") return p\n const resolved = path.resolve(windowsPath(p))\n try {\n return realpathSync.native(resolved)\n } catch {\n return resolved\n }\n }\n\n export function normalizePathPattern(p: string): string {\n if (process.platform !== \"win32\") return p\n if (p === \"*\") return p\n const match = p.match(/^(.*)[\\\\/]\\*$/)\n if (!match) return normalizePath(p)\n const dir = /^[A-Za-z]:$/.test(match[1]) ? match[1] + \"\\\\\" : match[1]\n return join(normalizePath(dir), \"*\")\n }\n\n export function resolve(p: string): string {\n const resolved = path.resolve(windowsPath(p))\n try {\n return normalizePath(realpathSync(resolved))\n } catch (e: any) {\n if (e?.code === \"ENOENT\") return normalizePath(resolved)\n throw e\n }\n }\n\n export function windowsPath(p: string): string {\n if (process.platform !== \"win32\") return p\n return p\n .replace(/^\\/([a-zA-Z]):(?:[\\\\/]|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/cygdrive\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/mnt\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n }\n\n export function overlaps(a: string, b: string) {\n return contains(a, b) || contains(b, a)\n }\n\n export function contains(parent: string, child: string) {\n const result = relative(parent, child)\n return result === \"\" || (!isAbsolute(result) && result !== \"..\" && !result.startsWith(`..${sep}`))\n }\n}\n",
"/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\nvar mimeScore = require('./mimeScore')\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\nexports._extensionConflicts = []\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {false|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {false|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1 ? exports.lookup(str) : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {false|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {false|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .slice(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n types[extension] = _preferredType(extension, types[extension], type)\n\n // DELETE (eventually): Capture extension->type maps that change as a\n // result of switching to mime-score. This is just to help make reviewing\n // PR #119 easier, and can be removed once that PR is approved.\n const legacyType = _preferredTypeLegacy(\n extension,\n types[extension],\n type\n )\n if (legacyType !== types[extension]) {\n exports._extensionConflicts.push([extension, legacyType, types[extension]])\n }\n }\n })\n}\n\n// Resolve type conflict using mime-score\nfunction _preferredType (ext, type0, type1) {\n var score0 = type0 ? mimeScore(type0, db[type0].source) : 0\n var score1 = type1 ? mimeScore(type1, db[type1].source) : 0\n\n return score0 > score1 ? type0 : type1\n}\n\n// Resolve type conflict using pre-mime-score logic\nfunction _preferredTypeLegacy (ext, type0, type1) {\n var SOURCE_RANK = ['nginx', 'apache', undefined, 'iana']\n\n var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0\n var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0\n\n if (\n exports.types[extension] !== 'application/octet-stream' &&\n (score0 > score1 ||\n (score0 === score1 &&\n exports.types[extension]?.slice(0, 12) === 'application/'))\n ) {\n return type0\n }\n\n return score0 > score1 ? type0 : type1\n}\n",
"import { Context, Effect } from \"effect\"\n\ntype EffectMethod = (...args: ReadonlyArray<never>) => Effect.Effect<unknown, unknown, unknown>\n\ntype ServiceUse<Identifier, Shape> = {\n readonly [Key in keyof Shape as Shape[Key] extends EffectMethod ? Key : never]: Shape[Key] extends (\n ...args: infer Args\n ) => infer Return\n ? Args extends ReadonlyArray<unknown>\n ? Return extends Effect.Effect<infer A, infer E, infer R>\n ? (...args: Args) => Effect.Effect<A, E, R | Identifier>\n : never\n : never\n : never\n}\n\nexport const serviceUse = <Identifier, Shape>(tag: Context.Service<Identifier, Shape>) => {\n const cache = new Map<string, (...args: unknown[]) => Effect.Effect<unknown, unknown, unknown>>()\n // This is the only dynamic boundary: TypeScript knows the accessor shape,\n // but Proxy property names are runtime values.\n const access = new Proxy(\n {},\n {\n get: (_, key) => {\n if (typeof key !== \"string\") return undefined\n const cached = cache.get(key)\n if (cached) return cached\n const accessor = (...args: unknown[]) =>\n tag.use((service) => {\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- Proxy keys are checked at runtime.\n const method = service[key as keyof Shape]\n if (typeof method !== \"function\") return Effect.die(new Error(`Service method not found: ${key}`))\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- ServiceUse exposes only Effect-returning methods.\n return (method as (...args: unknown[]) => Effect.Effect<unknown, unknown, unknown>)(...args)\n })\n cache.set(key, accessor)\n return accessor\n },\n },\n )\n // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- Proxy implements the mapped accessor surface lazily.\n return access as ServiceUse<Identifier, Shape>\n}\n"
],
"mappings": "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",
"debugId": "A29CC75DB897AA9664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/auth.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport {\n OpenCode,\n type IntegrationAttemptStatus,\n type IntegrationOAuthMethod,\n type OpenCodeClient,\n} from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { resolveIntegration } from \"./resolve\"\n\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.auth,\n Effect.fn(\"cli.mcp.auth\")(function* (input) {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.start(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n\n const integration = yield* resolveIntegration(client, input.name, location)\n if (!integration)\n return yield* Effect.fail(new Error(`MCP server \"${input.name}\" is not an OAuth-capable remote server`))\n const method = integration.methods.find(\n (candidate): candidate is IntegrationOAuthMethod => candidate.type === \"oauth\",\n )\n if (!method)\n return yield* Effect.fail(new Error(`MCP server \"${input.name}\" is not an OAuth-capable remote server`))\n\n const started = yield* Effect.promise(() =>\n client.integration.connect.oauth({ integrationID: integration.id, methodID: method.id, inputs: {}, location }),\n )\n const attempt = started.data\n if (attempt.mode === \"code\")\n return yield* Effect.fail(new Error(\"This server requires manual code entry, which the CLI does not support\"))\n\n process.stdout.write(attempt.instructions + EOL + attempt.url + EOL)\n\n const result = yield* poll(client, attempt.attemptID)\n if (result.status === \"complete\") {\n process.stdout.write(`Authenticated with ${input.name}` + EOL)\n return\n }\n const reason = result.status === \"failed\" ? `: ${result.message}` : \"\"\n return yield* Effect.fail(new Error(`Authentication ${result.status}${reason}`))\n }),\n)\n\nconst poll = (\n client: OpenCodeClient,\n attemptID: string,\n): Effect.Effect<Exclude<IntegrationAttemptStatus, { status: \"pending\" }>> =>\n Effect.gen(function* () {\n const status = yield* Effect.promise(() => client.integration.attempt.status({ attemptID, location })).pipe(\n Effect.map((result) => result.data),\n )\n if (status.status === \"pending\") {\n yield* Effect.sleep(\"1 second\")\n return yield* poll(client, attemptID)\n }\n return status\n })\n"
],
"mappings": ";ojCAAA,mBAAS,gBAcT,SAAM,OAAW,MAAE,eAAW,aAAQ,SAAI,MAAE,OAE7B,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,UAC/B,OAAO,QAAG,mBAAc,OAAE,cAAU,MAAC,OAAO,MAC1C,SAAM,OAAU,WAAO,EAAc,QAAQ,EAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,MAAM,CAAO,GACjD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,EAAc,MAAO,EAAmB,EAAQ,EAAM,KAAM,CAAQ,EAC1E,GAAI,CAAC,EACH,OAAO,MAAO,EAAO,KAAS,MAAM,eAAe,EAAM,6CAA6C,CAAC,EACzG,IAAM,EAAS,EAAY,QAAQ,KACjC,CAAC,IAAmD,EAAU,OAAS,OACzE,EACA,GAAI,CAAC,EACH,OAAO,MAAO,EAAO,KAAS,MAAM,eAAe,EAAM,6CAA6C,CAAC,EAKzG,IAAM,GAHU,MAAO,EAAO,QAAQ,IACpC,EAAO,YAAY,QAAQ,MAAM,CAAE,cAAe,EAAY,GAAI,SAAU,EAAO,GAAI,OAAQ,CAAC,EAAG,UAAS,CAAC,CAC/G,GACwB,KACxB,GAAI,EAAQ,OAAS,OACnB,OAAO,MAAO,EAAO,KAAS,MAAM,wEAAwE,CAAC,EAE/G,QAAQ,OAAO,MAAM,EAAQ,aAAe,EAAM,EAAQ,IAAM,CAAG,EAEnE,IAAM,EAAS,MAAO,EAAK,EAAQ,EAAQ,SAAS,EACpD,GAAI,EAAO,SAAW,WAAY,CAChC,QAAQ,OAAO,MAAM,sBAAsB,EAAM,OAAS,CAAG,EAC7D,OAEF,IAAM,EAAS,EAAO,SAAW,SAAW,KAAK,EAAO,UAAY,GACpE,OAAO,MAAO,EAAO,KAAS,MAAM,kBAAkB,EAAO,SAAS,GAAQ,CAAC,EAChF,CACH,EAEM,EAAO,CACX,EACA,IAEA,EAAO,IAAI,SAAU,EAAG,CACtB,IAAM,EAAS,MAAO,EAAO,QAAQ,IAAM,EAAO,YAAY,QAAQ,OAAO,CAAE,YAAW,UAAS,CAAC,CAAC,EAAE,KACrG,EAAO,IAAI,CAAC,IAAW,EAAO,IAAI,CACpC,EACA,GAAI,EAAO,SAAW,UAEpB,OADA,MAAO,EAAO,MAAM,UAAU,EACvB,MAAO,EAAK,EAAQ,CAAS,EAEtC,OAAO,EACR",
"debugId": "3946F10E1EAE2ECB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260602002951_lowly_union_jack.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260602002951_lowly_union_jack\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`permission\\` (\n \\`id\\` text PRIMARY KEY,\n \\`project_id\\` text NOT NULL,\n \\`action\\` text NOT NULL,\n \\`resource\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`fk_permission_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`permission_project_action_resource_idx\\` ON \\`permission\\` (\\`project_id\\`,\\`action\\`,\\`resource\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2aAUb,EACD,MAAO,EAAG,IACR,kHACF,EACD,EAEL",
"debugId": "6225F910F2D4A9A164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260504145000_add_sync_owner.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260504145000_add_sync_owner\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`event_sequence\\` ADD \\`owner_id\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACtE,EAEL",
"debugId": "08139FB8545D404D64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "B7F0882AB2659FDA64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/aws4fetch@1.0.20/node_modules/aws4fetch/dist/aws4fetch.esm.mjs"],
"sourcesContent": [
"/**\n * @license MIT <https://opensource.org/licenses/MIT>\n * @copyright Michael Hart 2024\n */\nconst encoder = new TextEncoder();\nconst HOST_SERVICES = {\n appstream2: 'appstream',\n cloudhsmv2: 'cloudhsm',\n email: 'ses',\n marketplace: 'aws-marketplace',\n mobile: 'AWSMobileHubService',\n pinpoint: 'mobiletargeting',\n queue: 'sqs',\n 'git-codecommit': 'codecommit',\n 'mturk-requester-sandbox': 'mturk-requester',\n 'personalize-runtime': 'personalize',\n};\nconst UNSIGNABLE_HEADERS = new Set([\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n 'presigned-expires',\n 'expect',\n 'x-amzn-trace-id',\n 'range',\n 'connection',\n]);\nclass AwsClient {\n constructor({ accessKeyId, secretAccessKey, sessionToken, service, region, cache, retries, initRetryMs }) {\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n this.service = service;\n this.region = region;\n this.cache = cache || new Map();\n this.retries = retries != null ? retries : 10;\n this.initRetryMs = initRetryMs || 50;\n }\n async sign(input, init) {\n if (input instanceof Request) {\n const { method, url, headers, body } = input;\n init = Object.assign({ method, url, headers }, init);\n if (init.body == null && headers.has('Content-Type')) {\n init.body = body != null && headers.has('X-Amz-Content-Sha256') ? body : await input.clone().arrayBuffer();\n }\n input = url;\n }\n const signer = new AwsV4Signer(Object.assign({ url: input.toString() }, init, this, init && init.aws));\n const signed = Object.assign({}, init, await signer.sign());\n delete signed.aws;\n try {\n return new Request(signed.url.toString(), signed)\n } catch (e) {\n if (e instanceof TypeError) {\n return new Request(signed.url.toString(), Object.assign({ duplex: 'half' }, signed))\n }\n throw e\n }\n }\n async fetch(input, init) {\n for (let i = 0; i <= this.retries; i++) {\n const fetched = fetch(await this.sign(input, init));\n if (i === this.retries) {\n return fetched\n }\n const res = await fetched;\n if (res.status < 500 && res.status !== 429) {\n return res\n }\n await new Promise(resolve => setTimeout(resolve, Math.random() * this.initRetryMs * Math.pow(2, i)));\n }\n throw new Error('An unknown error occurred, ensure retries is not negative')\n }\n}\nclass AwsV4Signer {\n constructor({ method, url, headers, body, accessKeyId, secretAccessKey, sessionToken, service, region, cache, datetime, signQuery, appendSessionToken, allHeaders, singleEncode }) {\n if (url == null) throw new TypeError('url is a required option')\n if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n this.method = method || (body ? 'POST' : 'GET');\n this.url = new URL(url);\n this.headers = new Headers(headers || {});\n this.body = body;\n this.accessKeyId = accessKeyId;\n this.secretAccessKey = secretAccessKey;\n this.sessionToken = sessionToken;\n let guessedService, guessedRegion;\n if (!service || !region) {\n[guessedService, guessedRegion] = guessServiceRegion(this.url, this.headers);\n }\n this.service = service || guessedService || '';\n this.region = region || guessedRegion || 'us-east-1';\n this.cache = cache || new Map();\n this.datetime = datetime || new Date().toISOString().replace(/[:-]|\\.\\d{3}/g, '');\n this.signQuery = signQuery;\n this.appendSessionToken = appendSessionToken || this.service === 'iotdevicegateway';\n this.headers.delete('Host');\n if (this.service === 's3' && !this.signQuery && !this.headers.has('X-Amz-Content-Sha256')) {\n this.headers.set('X-Amz-Content-Sha256', 'UNSIGNED-PAYLOAD');\n }\n const params = this.signQuery ? this.url.searchParams : this.headers;\n params.set('X-Amz-Date', this.datetime);\n if (this.sessionToken && !this.appendSessionToken) {\n params.set('X-Amz-Security-Token', this.sessionToken);\n }\n this.signableHeaders = ['host', ...this.headers.keys()]\n .filter(header => allHeaders || !UNSIGNABLE_HEADERS.has(header))\n .sort();\n this.signedHeaders = this.signableHeaders.join(';');\n this.canonicalHeaders = this.signableHeaders\n .map(header => header + ':' + (header === 'host' ? this.url.host : (this.headers.get(header) || '').replace(/\\s+/g, ' ')))\n .join('\\n');\n this.credentialString = [this.datetime.slice(0, 8), this.region, this.service, 'aws4_request'].join('/');\n if (this.signQuery) {\n if (this.service === 's3' && !params.has('X-Amz-Expires')) {\n params.set('X-Amz-Expires', '86400');\n }\n params.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n params.set('X-Amz-Credential', this.accessKeyId + '/' + this.credentialString);\n params.set('X-Amz-SignedHeaders', this.signedHeaders);\n }\n if (this.service === 's3') {\n try {\n this.encodedPath = decodeURIComponent(this.url.pathname.replace(/\\+/g, ' '));\n } catch (e) {\n this.encodedPath = this.url.pathname;\n }\n } else {\n this.encodedPath = this.url.pathname.replace(/\\/+/g, '/');\n }\n if (!singleEncode) {\n this.encodedPath = encodeURIComponent(this.encodedPath).replace(/%2F/g, '/');\n }\n this.encodedPath = encodeRfc3986(this.encodedPath);\n const seenKeys = new Set();\n this.encodedSearch = [...this.url.searchParams]\n .filter(([k]) => {\n if (!k) return false\n if (this.service === 's3') {\n if (seenKeys.has(k)) return false\n seenKeys.add(k);\n }\n return true\n })\n .map(pair => pair.map(p => encodeRfc3986(encodeURIComponent(p))))\n .sort(([k1, v1], [k2, v2]) => k1 < k2 ? -1 : k1 > k2 ? 1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0)\n .map(pair => pair.join('='))\n .join('&');\n }\n async sign() {\n if (this.signQuery) {\n this.url.searchParams.set('X-Amz-Signature', await this.signature());\n if (this.sessionToken && this.appendSessionToken) {\n this.url.searchParams.set('X-Amz-Security-Token', this.sessionToken);\n }\n } else {\n this.headers.set('Authorization', await this.authHeader());\n }\n return {\n method: this.method,\n url: this.url,\n headers: this.headers,\n body: this.body,\n }\n }\n async authHeader() {\n return [\n 'AWS4-HMAC-SHA256 Credential=' + this.accessKeyId + '/' + this.credentialString,\n 'SignedHeaders=' + this.signedHeaders,\n 'Signature=' + (await this.signature()),\n ].join(', ')\n }\n async signature() {\n const date = this.datetime.slice(0, 8);\n const cacheKey = [this.secretAccessKey, date, this.region, this.service].join();\n let kCredentials = this.cache.get(cacheKey);\n if (!kCredentials) {\n const kDate = await hmac('AWS4' + this.secretAccessKey, date);\n const kRegion = await hmac(kDate, this.region);\n const kService = await hmac(kRegion, this.service);\n kCredentials = await hmac(kService, 'aws4_request');\n this.cache.set(cacheKey, kCredentials);\n }\n return buf2hex(await hmac(kCredentials, await this.stringToSign()))\n }\n async stringToSign() {\n return [\n 'AWS4-HMAC-SHA256',\n this.datetime,\n this.credentialString,\n buf2hex(await hash(await this.canonicalString())),\n ].join('\\n')\n }\n async canonicalString() {\n return [\n this.method.toUpperCase(),\n this.encodedPath,\n this.encodedSearch,\n this.canonicalHeaders + '\\n',\n this.signedHeaders,\n await this.hexBodyHash(),\n ].join('\\n')\n }\n async hexBodyHash() {\n let hashHeader = this.headers.get('X-Amz-Content-Sha256') || (this.service === 's3' && this.signQuery ? 'UNSIGNED-PAYLOAD' : null);\n if (hashHeader == null) {\n if (this.body && typeof this.body !== 'string' && !('byteLength' in this.body)) {\n throw new Error('body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header')\n }\n hashHeader = buf2hex(await hash(this.body || ''));\n }\n return hashHeader\n }\n}\nasync function hmac(key, string) {\n const cryptoKey = await crypto.subtle.importKey(\n 'raw',\n typeof key === 'string' ? encoder.encode(key) : key,\n { name: 'HMAC', hash: { name: 'SHA-256' } },\n false,\n ['sign'],\n );\n return crypto.subtle.sign('HMAC', cryptoKey, encoder.encode(string))\n}\nasync function hash(content) {\n return crypto.subtle.digest('SHA-256', typeof content === 'string' ? encoder.encode(content) : content)\n}\nconst HEX_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nfunction buf2hex(arrayBuffer) {\n const buffer = new Uint8Array(arrayBuffer);\n let out = '';\n for (let idx = 0; idx < buffer.length; idx++) {\n const n = buffer[idx];\n out += HEX_CHARS[(n >>> 4) & 0xF];\n out += HEX_CHARS[n & 0xF];\n }\n return out\n}\nfunction encodeRfc3986(urlEncodedStr) {\n return urlEncodedStr.replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())\n}\nfunction guessServiceRegion(url, headers) {\n const { hostname, pathname } = url;\n if (hostname.endsWith('.on.aws')) {\n const match = hostname.match(/^[^.]{1,63}\\.lambda-url\\.([^.]{1,63})\\.on\\.aws$/);\n return match != null ? ['lambda', match[1] || ''] : ['', '']\n }\n if (hostname.endsWith('.r2.cloudflarestorage.com')) {\n return ['s3', 'auto']\n }\n if (hostname.endsWith('.backblazeb2.com')) {\n const match = hostname.match(/^(?:[^.]{1,63}\\.)?s3\\.([^.]{1,63})\\.backblazeb2\\.com$/);\n return match != null ? ['s3', match[1] || ''] : ['', '']\n }\n const match = hostname.replace('dualstack.', '').match(/([^.]{1,63})\\.(?:([^.]{0,63})\\.)?amazonaws\\.com(?:\\.cn)?$/);\n let service = (match && match[1]) || '';\n let region = match && match[2];\n if (region === 'us-gov') {\n region = 'us-gov-west-1';\n } else if (region === 's3' || region === 's3-accelerate') {\n region = 'us-east-1';\n service = 's3';\n } else if (service === 'iot') {\n if (hostname.startsWith('iot.')) {\n service = 'execute-api';\n } else if (hostname.startsWith('data.jobs.iot.')) {\n service = 'iot-jobs-data';\n } else {\n service = pathname === '/mqtt' ? 'iotdevicegateway' : 'iotdata';\n }\n } else if (service === 'autoscaling') {\n const targetPrefix = (headers.get('X-Amz-Target') || '').split('.')[0];\n if (targetPrefix === 'AnyScaleFrontendService') {\n service = 'application-autoscaling';\n } else if (targetPrefix === 'AnyScaleScalingPlannerFrontendService') {\n service = 'autoscaling-plans';\n }\n } else if (region == null && service.startsWith('s3-')) {\n region = service.slice(3).replace(/^fips-|^external-1/, '');\n service = 's3';\n } else if (service.endsWith('-fips')) {\n service = service.slice(0, -5);\n } else if (region && /-\\d$/.test(service) && !/-\\d$/.test(region)) {\n[service, region] = [region, service];\n }\n return [HOST_SERVICES[service] || service, region || '']\n}\n\nexport { AwsClient, AwsV4Signer };\n"
],
"mappings": "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",
"debugId": "A88A55EAB97661EA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/logout.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport { OpenCode } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { resolveIntegration } from \"./resolve\"\n\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.logout,\n Effect.fn(\"cli.mcp.logout\")(function* (input) {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.start(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n\n const integration = yield* resolveIntegration(client, input.name, location)\n if (!integration) {\n process.stdout.write(`No stored credentials for ${input.name}` + EOL)\n return\n }\n\n const credentials = integration.connections.filter((connection) => connection.type === \"credential\")\n if (credentials.length === 0) {\n process.stdout.write(`No stored credentials for ${input.name}` + EOL)\n return\n }\n\n yield* Effect.forEach(\n credentials,\n (connection) => Effect.promise(() => client.credential.remove({ credentialID: connection.id, location })),\n { discard: true },\n )\n process.stdout.write(`Removed OAuth credentials for ${input.name}` + EOL)\n }),\n)\n"
],
"mappings": ";ojCAAA,mBAAS,gBAST,SAAM,OAAW,MAAE,eAAW,aAAQ,SAAI,MAAE,OAE7B,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,YAC/B,OAAO,QAAG,qBAAgB,OAAE,cAAU,MAAC,OAAO,MAC5C,SAAM,OAAU,WAAO,EAAc,QAAQ,EAEvC,GADQ,MAAO,EAAQ,SAAS,CAAO,KAClB,MAAO,EAAQ,MAAM,CAAO,GACjD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,EAAc,MAAO,EAAmB,EAAQ,EAAM,KAAM,CAAQ,EAC1E,GAAI,CAAC,EAAa,CAChB,QAAQ,OAAO,MAAM,6BAA6B,EAAM,OAAS,CAAG,EACpE,OAGF,IAAM,EAAc,EAAY,YAAY,OAAO,CAAC,IAAe,EAAW,OAAS,YAAY,EACnG,GAAI,EAAY,SAAW,EAAG,CAC5B,QAAQ,OAAO,MAAM,6BAA6B,EAAM,OAAS,CAAG,EACpE,OAGF,MAAO,EAAO,QACZ,EACA,CAAC,IAAe,EAAO,QAAQ,IAAM,EAAO,WAAW,OAAO,CAAE,aAAc,EAAW,GAAI,UAAS,CAAC,CAAC,EACxG,CAAE,QAAS,EAAK,CAClB,EACA,QAAQ,OAAO,MAAM,iCAAiC,EAAM,OAAS,CAAG,EACzE,CACH",
"debugId": "2A087B673682A93264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "FF2D7909A16697CB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js", "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js", "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js", "../../node_modules/.bun/which@2.0.2/node_modules/which/which.js", "../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js", "../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js", "../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js", "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"],
"sourcesContent": [
"module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n",
"module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n",
"var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n",
"const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n",
"'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n",
"'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n",
"'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n",
"'use strict';\nmodule.exports = /^#!(.*)/;\n",
"'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n",
"'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n",
"'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n",
"'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n",
"'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n"
],
"mappings": "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",
"debugId": "4A600F13775B00C764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "5A03441499FF412064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/start.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.start,\n Effect.fn(\"cli.service.start\")(function* () {\n const transport = yield* Service.start(yield* ServiceConfig.options())\n process.stdout.write(transport.url + EOL)\n }),\n)\n"
],
"mappings": ";u9BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,WACnC,OAAO,QAAG,wBAAmB,OAAE,cAAU,OAAG,MAC1C,SAAM,OAAY,WAAO,OAAQ,WAAM,WAAO,OAAc,aAAQ,MAAC,EACrE,QAAQ,OAAO,MAAM,EAAU,IAAM,CAAG,EACzC,CACH",
"debugId": "95BCDD740844999B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "0C84C1CBB79FB86B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/run.ts"],
"sourcesContent": [
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nexport default Runtime.handler(Commands.commands.run, (input) =>\n Effect.gen(function* () {\n const { runNonInteractive } = yield* Effect.promise(() => import(\"../../mini\"))\n const separator = process.argv.indexOf(\"--\", 2)\n const server = yield* ServerConnection.resolve({\n server: Option.getOrUndefined(input.server),\n standalone: input.standalone,\n })\n yield* Effect.promise(() =>\n runNonInteractive({\n server,\n message: [...input.message, ...(separator === -1 ? [] : process.argv.slice(separator + 1))],\n continue: input.continue,\n session: Option.getOrUndefined(input.session),\n fork: input.fork,\n model: Option.getOrUndefined(input.model),\n agent: Option.getOrUndefined(input.agent),\n format: input.format,\n file: [...input.file],\n title: Option.getOrUndefined(input.title),\n thinking: input.thinking,\n auto: input.auto || input.yolo,\n }),\n )\n }),\n)\n"
],
"mappings": ";mzCAKA,SAAe,SAAQ,aAAQ,OAAS,cAAS,SAAK,MAAC,SACrD,OAAO,SAAI,cAAU,OAAG,MACtB,SAAQ,0BAAsB,WAAO,OAAO,aAAQ,SAAa,wCAAa,OACxE,OAAY,aAAQ,UAAK,aAAQ,UAAM,MAAC,OACxC,OAAS,WAAO,OAAiB,aAAQ,MAC7C,YAAQ,OAAO,oBAAe,OAAM,MAAM,EAC1C,WAAY,EAAM,UACpB,CAAC,EACD,MAAO,EAAO,QAAQ,IACpB,EAAkB,CAChB,SACA,QAAS,CAAC,GAAG,EAAM,QAAS,GAAI,IAAc,GAAK,CAAC,EAAI,QAAQ,KAAK,MAAM,EAAY,CAAC,CAAE,EAC1F,SAAU,EAAM,SAChB,QAAS,EAAO,eAAe,EAAM,OAAO,EAC5C,KAAM,EAAM,KACZ,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,OAAQ,EAAM,OACd,KAAM,CAAC,GAAG,EAAM,IAAI,EACpB,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,SAAU,EAAM,SAChB,KAAM,EAAM,MAAQ,EAAM,IAC5B,CAAC,CACH,EACD,CACH",
"debugId": "28914304741EA9B464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js"],
"sourcesContent": [
"'use strict';\n\nvar serde = require('@smithy/core/serde');\nvar schema = require('@smithy/core/schema');\nvar transport = require('@smithy/core/transport');\nvar types = require('@smithy/types');\n\nconst collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return serde.Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return serde.Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return serde.Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nclass SerdeContext {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass HttpProtocol extends SerdeContext {\n options;\n compositeErrorRegistry;\n constructor(options) {\n super();\n this.options = options;\n this.compositeErrorRegistry = schema.TypeRegistry.for(options.defaultNamespace);\n for (const etr of options.errorTypeRegistries ?? []) {\n this.compositeErrorRegistry.copyFrom(etr);\n }\n }\n getRequestType() {\n return transport.HttpRequest;\n }\n getResponseType() {\n return transport.HttpResponse;\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n if (this.getPayloadCodec()) {\n this.getPayloadCodec().setSerdeContext(serdeContext);\n }\n }\n updateServiceEndpoint(request, endpoint) {\n if (\"url\" in endpoint) {\n request.protocol = endpoint.url.protocol;\n request.hostname = endpoint.url.hostname;\n request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n request.path = endpoint.url.pathname;\n request.fragment = endpoint.url.hash || void 0;\n request.username = endpoint.url.username || void 0;\n request.password = endpoint.url.password || void 0;\n if (!request.query) {\n request.query = {};\n }\n for (const [k, v] of endpoint.url.searchParams.entries()) {\n request.query[k] = v;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name].join(\", \");\n }\n }\n return request;\n }\n else {\n request.protocol = endpoint.protocol;\n request.hostname = endpoint.hostname;\n request.port = endpoint.port ? Number(endpoint.port) : undefined;\n request.path = endpoint.path;\n request.query = {\n ...endpoint.query,\n };\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name];\n }\n }\n return request;\n }\n }\n setHostPrefix(request, operationSchema, input) {\n if (this.serdeContext?.disableHostPrefix) {\n return;\n }\n const inputNs = schema.NormalizedSchema.of(operationSchema.input);\n const opTraits = schema.translateTraits(operationSchema.traits ?? {});\n if (opTraits.endpoint) {\n let hostPrefix = opTraits.endpoint?.[0];\n if (typeof hostPrefix === \"string\") {\n for (const [name, member] of inputNs.structIterator()) {\n if (!member.getMergedTraits().hostLabel) {\n continue;\n }\n const replacement = input[name];\n if (typeof replacement !== \"string\") {\n throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n }\n hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n }\n request.hostname = hostPrefix + request.hostname;\n }\n }\n }\n deserializeMetadata(output) {\n return {\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n };\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.serializeEventStream({\n eventStream,\n requestSchema,\n initialRequest,\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.deserializeEventStream({\n response,\n responseSchema,\n initialResponseContainer,\n });\n }\n async loadEventStreamCapability() {\n const { EventStreamSerde } = await import('@smithy/core/event-streams');\n return new EventStreamSerde({\n marshaller: this.getEventStreamMarshaller(),\n serializer: this.serializer,\n deserializer: this.deserializer,\n serdeContext: this.serdeContext,\n defaultContentType: this.getDefaultContentType(),\n });\n }\n getDefaultContentType() {\n throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n }\n async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n return [];\n }\n getEventStreamMarshaller() {\n const context = this.serdeContext;\n if (!context.eventStreamMarshaller) {\n throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n }\n return context.eventStreamMarshaller;\n }\n}\n\nclass HttpBindingProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const input = _input && typeof _input === \"object\" ? _input : {};\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const payloadMemberNames = [];\n const payloadMemberSchemas = [];\n let hasNonHttpBindingMember = false;\n let payload;\n const request = new transport.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n const opTraits = schema.translateTraits(operationSchema.traits);\n if (opTraits.http) {\n request.method = opTraits.http[0];\n const [path, search] = opTraits.http[1].split(\"?\");\n if (request.path == \"/\") {\n request.path = path;\n }\n else {\n request.path += path;\n }\n const traitSearchParams = new URLSearchParams(search ?? \"\");\n for (const [key, value] of traitSearchParams) {\n query[key] = value;\n }\n }\n }\n for (const [memberName, memberNs] of ns.structIterator()) {\n const memberTraits = memberNs.getMergedTraits() ?? {};\n const inputMemberValue = input[memberName];\n if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {\n if (memberTraits.httpLabel) {\n if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {\n throw new Error(`No value provided for input HTTP label: ${memberName}.`);\n }\n }\n continue;\n }\n if (memberTraits.httpPayload) {\n const isStreaming = memberNs.isStreaming();\n if (isStreaming) {\n const isEventStream = memberNs.isStructSchema();\n if (isEventStream) {\n if (input[memberName]) {\n payload = await this.serializeEventStream({\n eventStream: input[memberName],\n requestSchema: ns,\n });\n }\n }\n else {\n payload = inputMemberValue;\n }\n }\n else {\n serializer.write(memberNs, inputMemberValue);\n payload = serializer.flush();\n }\n }\n else if (memberTraits.httpLabel) {\n serializer.write(memberNs, inputMemberValue);\n const replacement = serializer.flush();\n if (request.path.includes(`{${memberName}+}`)) {\n request.path = request.path.replace(`{${memberName}+}`, replacement.split(\"/\").map(extendedEncodeURIComponent).join(\"/\"));\n }\n else if (request.path.includes(`{${memberName}}`)) {\n request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement));\n }\n }\n else if (memberTraits.httpHeader) {\n serializer.write(memberNs, inputMemberValue);\n headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush());\n }\n else if (typeof memberTraits.httpPrefixHeaders === \"string\") {\n for (const key in inputMemberValue) {\n const val = inputMemberValue[key];\n const amalgam = memberTraits.httpPrefixHeaders + key;\n serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val);\n headers[amalgam.toLowerCase()] = serializer.flush();\n }\n }\n else if (memberTraits.httpQuery || memberTraits.httpQueryParams) {\n this.serializeQuery(memberNs, inputMemberValue, query);\n }\n else {\n hasNonHttpBindingMember = true;\n payloadMemberNames.push(memberName);\n payloadMemberSchemas.push(memberNs);\n }\n }\n if (hasNonHttpBindingMember && input) {\n const [namespace, name] = (ns.getName(true) ?? \"#Unknown\").split(\"#\");\n const requiredMembers = ns.getSchema()[6];\n const payloadSchema = [\n 3,\n namespace,\n name,\n ns.getMergedTraits(),\n payloadMemberNames,\n payloadMemberSchemas,\n undefined,\n ];\n if (requiredMembers) {\n payloadSchema[6] = requiredMembers;\n }\n else {\n payloadSchema.pop();\n }\n serializer.write(payloadSchema, input);\n payload = serializer.flush();\n }\n request.headers = headers;\n request.query = query;\n request.body = payload;\n return request;\n }\n serializeQuery(ns, data, query) {\n const serializer = this.serializer;\n const traits = ns.getMergedTraits();\n if (traits.httpQueryParams) {\n for (const key in data) {\n if (!(key in query)) {\n const val = data[key];\n const valueSchema = ns.getValueSchema();\n Object.assign(valueSchema.getMergedTraits(), {\n ...traits,\n httpQuery: key,\n httpQueryParams: undefined,\n });\n this.serializeQuery(valueSchema, val, query);\n }\n }\n return;\n }\n if (ns.isListSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n const buffer = [];\n for (const item of data) {\n serializer.write([ns.getValueSchema(), traits], item);\n const serializable = serializer.flush();\n if (sparse || serializable !== undefined) {\n buffer.push(serializable);\n }\n }\n query[traits.httpQuery] = buffer;\n }\n else {\n serializer.write([ns, traits], data);\n query[traits.httpQuery] = serializer.flush();\n }\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - HTTP Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject);\n if (nonHttpBindingMembers.length) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n const dataFromBody = await deserializer.read(ns, bytes);\n for (const member of nonHttpBindingMembers) {\n if (dataFromBody[member] != null) {\n dataObject[member] = dataFromBody[member];\n }\n }\n }\n }\n else if (nonHttpBindingMembers.discardResponseBody) {\n await collectBody(response.body, context);\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n async deserializeHttpMessage(schema$1, context, response, arg4, arg5) {\n let dataObject;\n if (arg4 instanceof Set) {\n dataObject = arg5;\n }\n else {\n dataObject = arg4;\n }\n let discardResponseBody = true;\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(schema$1);\n const nonHttpBindingMembers = [];\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMemberTraits();\n if (memberTraits.httpPayload) {\n discardResponseBody = false;\n const isStreaming = memberSchema.isStreaming();\n if (isStreaming) {\n const isEventStream = memberSchema.isStructSchema();\n if (isEventStream) {\n dataObject[memberName] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n });\n }\n else {\n dataObject[memberName] = serde.sdkStreamMixin(response.body);\n }\n }\n else if (response.body) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n dataObject[memberName] = await deserializer.read(memberSchema, bytes);\n }\n }\n }\n else if (memberTraits.httpHeader) {\n const key = String(memberTraits.httpHeader).toLowerCase();\n const value = response.headers[key];\n if (null != value) {\n if (memberSchema.isListSchema()) {\n const headerListValueSchema = memberSchema.getValueSchema();\n headerListValueSchema.getMergedTraits().httpHeader = key;\n let sections;\n if (headerListValueSchema.isTimestampSchema() &&\n headerListValueSchema.getSchema() === 4) {\n sections = serde.splitEvery(value, \",\", 2);\n }\n else {\n sections = serde.splitHeader(value);\n }\n const list = [];\n for (const section of sections) {\n list.push(await deserializer.read(headerListValueSchema, section.trim()));\n }\n dataObject[memberName] = list;\n }\n else {\n dataObject[memberName] = await deserializer.read(memberSchema, value);\n }\n }\n }\n else if (memberTraits.httpPrefixHeaders !== undefined) {\n dataObject[memberName] = {};\n for (const header in response.headers) {\n if (header.startsWith(memberTraits.httpPrefixHeaders)) {\n const value = response.headers[header];\n const valueSchema = memberSchema.getValueSchema();\n valueSchema.getMergedTraits().httpHeader = header;\n dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value);\n }\n }\n }\n else if (memberTraits.httpResponseCode) {\n dataObject[memberName] = response.statusCode;\n }\n else {\n nonHttpBindingMembers.push(memberName);\n }\n }\n nonHttpBindingMembers.discardResponseBody = discardResponseBody;\n return nonHttpBindingMembers;\n }\n}\n\nclass RpcProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const schema$1 = ns.getSchema();\n let payload;\n const input = _input && typeof _input === \"object\" ? _input : {};\n const request = new transport.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"/\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n }\n if (input) {\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n if (input[eventStreamMember]) {\n const initialRequest = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n if (memberName !== eventStreamMember && input[memberName]) {\n serializer.write(memberSchema, input[memberName]);\n initialRequest[memberName] = serializer.flush();\n }\n }\n payload = await this.serializeEventStream({\n eventStream: input[eventStreamMember],\n requestSchema: ns,\n initialRequest,\n });\n }\n }\n else {\n serializer.write(schema$1, input);\n payload = serializer.flush();\n }\n }\n request.headers = Object.assign(request.headers, headers);\n request.query = query;\n request.body = payload;\n request.method = \"POST\";\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - RPC Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n dataObject[eventStreamMember] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n initialResponseContainer: dataObject,\n });\n }\n else {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes));\n }\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n}\n\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue == null || labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n\nfunction requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\nclass RequestBuilder {\n input;\n context;\n query = {};\n method = \"\";\n headers = {};\n path = \"\";\n body = null;\n hostname = \"\";\n resolvePathStack = [];\n constructor(input, context) {\n this.input = input;\n this.context = context;\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new transport.HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers,\n });\n }\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n h(headers) {\n this.headers = headers;\n return this;\n }\n q(query) {\n this.query = query;\n return this;\n }\n b(body) {\n this.body = body;\n return this;\n }\n m(method) {\n this.method = method;\n return this;\n }\n}\n\nfunction determineTimestampFormat(ns, settings) {\n if (settings.timestampFormat.useTrait) {\n if (ns.isTimestampSchema() &&\n (ns.getSchema() === 5 ||\n ns.getSchema() === 6 ||\n ns.getSchema() === 7)) {\n return ns.getSchema();\n }\n }\n const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n const bindingFormat = settings.httpBindings\n ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n ? 6\n : Boolean(httpQuery) || Boolean(httpLabel)\n ? 5\n : undefined\n : undefined;\n return bindingFormat ?? settings.timestampFormat.default;\n}\n\nclass FromStringShapeDeserializer extends SerdeContext {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n read(_schema, data) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isListSchema()) {\n return serde.splitHeader(data).map((item) => this.read(ns.getValueSchema(), item));\n }\n if (ns.isBlobSchema()) {\n return (this.serdeContext?.base64Decoder ?? serde.fromBase64)(data);\n }\n if (ns.isTimestampSchema()) {\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde._parseRfc3339DateTimeWithOffset(data);\n case 6:\n return serde._parseRfc7231DateTime(data);\n case 7:\n return serde._parseEpochTimestamp(data);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", data);\n return new Date(data);\n }\n }\n if (ns.isStringSchema()) {\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = data;\n if (mediaType) {\n if (ns.getMergedTraits().httpHeader) {\n intermediateValue = this.base64ToUtf8(intermediateValue);\n }\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n return intermediateValue;\n }\n }\n if (ns.isNumericSchema()) {\n return Number(data);\n }\n if (ns.isBigIntegerSchema()) {\n return BigInt(data);\n }\n if (ns.isBigDecimalSchema()) {\n return new serde.NumericValue(data, \"bigDecimal\");\n }\n if (ns.isBooleanSchema()) {\n return String(data).toLowerCase() === \"true\";\n }\n return data;\n }\n base64ToUtf8(base64String) {\n return (this.serdeContext?.utf8Encoder ?? serde.toUtf8)((this.serdeContext?.base64Decoder ?? serde.fromBase64)(base64String));\n }\n}\n\nclass HttpInterceptingShapeDeserializer extends SerdeContext {\n codecDeserializer;\n stringDeserializer;\n constructor(codecDeserializer, codecSettings) {\n super();\n this.codecDeserializer = codecDeserializer;\n this.stringDeserializer = new FromStringShapeDeserializer(codecSettings);\n }\n setSerdeContext(serdeContext) {\n this.stringDeserializer.setSerdeContext(serdeContext);\n this.codecDeserializer.setSerdeContext(serdeContext);\n this.serdeContext = serdeContext;\n }\n read(schema$1, data) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n const toString = this.serdeContext?.utf8Encoder ?? serde.toUtf8;\n if (traits.httpHeader || traits.httpResponseCode) {\n return this.stringDeserializer.read(ns, toString(data));\n }\n if (traits.httpPayload) {\n if (ns.isBlobSchema()) {\n const toBytes = this.serdeContext?.utf8Decoder ?? serde.fromUtf8;\n if (typeof data === \"string\") {\n return toBytes(data);\n }\n return data;\n }\n else if (ns.isStringSchema()) {\n if (\"byteLength\" in data) {\n return toString(data);\n }\n return data;\n }\n }\n return this.codecDeserializer.read(ns, data);\n }\n}\n\nclass ToStringShapeSerializer extends SerdeContext {\n settings;\n stringBuffer = \"\";\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n switch (typeof value) {\n case \"object\":\n if (value === null) {\n this.stringBuffer = \"null\";\n return;\n }\n if (ns.isTimestampSchema()) {\n if (!(value instanceof Date)) {\n throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`);\n }\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.stringBuffer = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n this.stringBuffer = serde.dateToUtcString(value);\n break;\n case 7:\n this.stringBuffer = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n this.stringBuffer = String(value.getTime() / 1000);\n }\n return;\n }\n if (ns.isBlobSchema() && \"byteLength\" in value) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? serde.toBase64)(value);\n return;\n }\n if (ns.isListSchema() && Array.isArray(value)) {\n let buffer = \"\";\n for (const item of value) {\n this.write([ns.getValueSchema(), ns.getMergedTraits()], item);\n const headerItem = this.flush();\n const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : serde.quoteHeader(headerItem);\n if (buffer !== \"\") {\n buffer += \", \";\n }\n buffer += serialized;\n }\n this.stringBuffer = buffer;\n return;\n }\n this.stringBuffer = JSON.stringify(value, null, 2);\n break;\n case \"string\":\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = value;\n if (mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n if (ns.getMergedTraits().httpHeader) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? serde.toBase64)(intermediateValue.toString());\n return;\n }\n }\n this.stringBuffer = value;\n break;\n default:\n if (ns.isIdempotencyToken()) {\n this.stringBuffer = serde.generateIdempotencyToken();\n }\n else {\n this.stringBuffer = String(value);\n }\n }\n }\n flush() {\n const buffer = this.stringBuffer;\n this.stringBuffer = \"\";\n return buffer;\n }\n}\n\nclass HttpInterceptingShapeSerializer {\n codecSerializer;\n stringSerializer;\n buffer;\n constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) {\n this.codecSerializer = codecSerializer;\n this.stringSerializer = stringSerializer;\n }\n setSerdeContext(serdeContext) {\n this.codecSerializer.setSerdeContext(serdeContext);\n this.stringSerializer.setSerdeContext(serdeContext);\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n if (traits.httpHeader || traits.httpLabel || traits.httpQuery) {\n this.stringSerializer.write(ns, value);\n this.buffer = this.stringSerializer.flush();\n return;\n }\n return this.codecSerializer.write(ns, value);\n }\n flush() {\n if (this.buffer !== undefined) {\n const buffer = this.buffer;\n this.buffer = undefined;\n return buffer;\n }\n return this.codecSerializer.flush();\n }\n}\n\nclass Field {\n name;\n kind;\n values;\n constructor({ name, kind = types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n\nclass Fields {\n entries = {};\n encoding;\n constructor({ fields = [], encoding = \"utf-8\" }) {\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n\nconst getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nconst resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (transport.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nconst contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n\nexports.HttpRequest = transport.HttpRequest;\nexports.HttpResponse = transport.HttpResponse;\nexports.isValidHostname = transport.isValidHostname;\nexports.parseQueryString = transport.parseQueryString;\nexports.parseUrl = transport.parseUrl;\nexports.Field = Field;\nexports.Fields = Fields;\nexports.FromStringShapeDeserializer = FromStringShapeDeserializer;\nexports.HttpBindingProtocol = HttpBindingProtocol;\nexports.HttpInterceptingShapeDeserializer = HttpInterceptingShapeDeserializer;\nexports.HttpInterceptingShapeSerializer = HttpInterceptingShapeSerializer;\nexports.HttpProtocol = HttpProtocol;\nexports.RequestBuilder = RequestBuilder;\nexports.RpcProtocol = RpcProtocol;\nexports.SerdeContext = SerdeContext;\nexports.ToStringShapeSerializer = ToStringShapeSerializer;\nexports.buildQueryString = buildQueryString;\nexports.collectBody = collectBody;\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = contentLengthMiddlewareOptions;\nexports.determineTimestampFormat = determineTimestampFormat;\nexports.escapeUri = escapeUri;\nexports.escapeUriPath = escapeUriPath;\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\nexports.getContentLengthPlugin = getContentLengthPlugin;\nexports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;\nexports.requestBuilder = requestBuilder;\nexports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;\nexports.resolvedPath = resolvedPath;\n"
],
"mappings": "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",
"debugId": "9FDA661607EE1C5264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../simulation/src/frontend/actions.ts", "../simulation/src/recording.ts", "../simulation/src/frontend/renderer.ts", "../simulation/src/frontend/server.ts", "../simulation/src/frontend/simulation.ts"],
"sourcesContent": [
"import { tmpdir } from \"node:os\"\nimport { extname, join, resolve } from \"node:path\"\nimport type { CliRenderer, Renderable } from \"@opentui/core\"\nimport { createMockKeys, createMockMouse, type MockInput, type MockMouse } from \"@opentui/core/testing\"\nimport { Config, Effect, FileSystem } from \"effect\"\nimport type { SimulationProtocol } from \"../protocol\"\nimport { SimulationRenderer } from \"./renderer\"\n\nexport type Action = SimulationProtocol.Frontend.Action\nexport type Element = SimulationProtocol.Frontend.Element\n\nexport interface Harness {\n readonly renderer: CliRenderer\n readonly mockInput: MockInput\n readonly mockMouse: MockMouse\n readonly resize: (cols: number, rows: number) => void\n readonly renderOnce: () => Promise<void>\n readonly screen: () => string\n}\n\ntype RenderBuffer = {\n readonly width: number\n readonly height: number\n getRealCharBytes(includeAnsi?: boolean): Uint8Array\n}\n\nconst decoder = new TextDecoder()\n\nfunction children(renderable: Renderable) {\n return renderable.getChildren().filter((child): child is Renderable => \"num\" in child)\n}\n\nfunction all(renderable: Renderable): Renderable[] {\n return [renderable, ...children(renderable).flatMap(all)]\n}\n\nfunction mouseListeners(renderable: Renderable) {\n const general = Reflect.get(renderable, \"_mouseListener\")\n const specific = Reflect.get(renderable, \"_mouseListeners\")\n return Boolean(general) || (specific && typeof specific === \"object\" && Object.keys(specific).length > 0)\n}\n\nfunction hit(renderer: CliRenderer, renderable: Renderable) {\n if (renderable.width <= 0 || renderable.height <= 0) return false\n const x = Math.floor(renderable.screenX + renderable.width / 2)\n const y = Math.floor(renderable.screenY + renderable.height / 2)\n return renderer.hitTest(x, y) === renderable.num\n}\n\n/**\n * Builds the harness the simulation server drives.\n *\n * When the renderer is the headless simulation renderer, its TestRendererSetup\n * provides the supported testing APIs. For the visible terminal renderer the\n * harness falls back to `requestRender` + `idle` and reading the private\n * `currentRenderBuffer`.\n */\nexport function createHarness(renderer: CliRenderer): Harness {\n const setup = SimulationRenderer.setupFor(renderer)\n return {\n renderer,\n mockInput: setup?.mockInput ?? createMockKeys(renderer),\n mockMouse: setup?.mockMouse ?? createMockMouse(renderer),\n resize: setup?.resize ?? ((cols, rows) => renderer.resize(cols, rows)),\n renderOnce:\n setup?.renderOnce ??\n (async () => {\n renderer.requestRender()\n await renderer.idle()\n }),\n // captureCharFrame follows the test renderer's output sink. Recording\n // redirects that sink to the timeline, so read the live render buffer\n // instead; it is also the source used by screenshots.\n screen: () => decoder.decode((Reflect.get(renderer, \"currentRenderBuffer\") as RenderBuffer).getRealCharBytes()),\n }\n}\n\nexport function elements(renderer: CliRenderer): Element[] {\n return all(renderer.root)\n .filter((renderable) => renderable.visible && !renderable.isDestroyed)\n .map((renderable) => {\n const clickable = mouseListeners(renderable) && hit(renderer, renderable)\n return {\n id: renderable.id,\n num: renderable.num,\n x: renderable.screenX,\n y: renderable.screenY,\n width: renderable.width,\n height: renderable.height,\n focusable: renderable.focusable,\n focused: renderable.focused,\n clickable,\n editor: renderer.currentFocusedEditor === renderable,\n } satisfies Element\n })\n .filter((element) => element.focusable || element.clickable || element.editor)\n}\n\nexport function state(harness: Harness) {\n return {\n focused: {\n renderable: harness.renderer.currentFocusedRenderable?.num,\n editor: Boolean(harness.renderer.currentFocusedEditor),\n },\n elements: elements(harness.renderer),\n }\n}\n\nexport function matches(harness: Pick<Harness, \"screen\">, text: string) {\n return harness.screen().includes(text)\n}\n\nexport const capture = Effect.fn(\"SimulationActions.capture\")(function* (harness: Harness) {\n yield* Effect.tryPromise(() => harness.renderOnce())\n const buffer = harness.renderer.currentRenderBuffer\n return {\n cols: buffer.width,\n rows: buffer.height,\n cursor: [0, 0] as const,\n lines: buffer.getSpanLines().map((line) => ({\n spans: line.spans.map((span) => ({\n text: span.text,\n fg: span.fg.toInts(),\n bg: span.bg.toInts(),\n attributes: span.attributes,\n width: span.width,\n })),\n })),\n } satisfies SimulationProtocol.Frontend.CapturedFrame\n})\n\nexport const screenshot = Effect.fn(\"SimulationActions.screenshot\")(function* (harness: Harness, name?: string) {\n const filename = name ?? `screenshot-${crypto.randomUUID()}`\n if (!filename || filename.includes(\"/\") || filename.includes(\"\\\\\") || extname(filename))\n return yield* Effect.fail(new Error(\"screenshot name must not contain a path or extension\"))\n yield* Effect.tryPromise(() => harness.renderOnce())\n const { SimulationPng } = yield* Effect.promise(() => import(\"./png\"))\n const image = SimulationPng.screenshot(harness.renderer)\n const directory = resolve(\n yield* Config.string(\"OPENCODE_DRIVE_MEDIA_DIR\").pipe(\n Config.withDefault(join(tmpdir(), \"opencode-drive\", \"output\")),\n ),\n )\n const fs = yield* FileSystem.FileSystem\n yield* fs.makeDirectory(directory, { recursive: true })\n const path = join(directory, `${filename}.png`)\n yield* fs.writeFile(path, image.data)\n return path\n})\n\nexport const execute = Effect.fn(\"SimulationActions.execute\")(function* (harness: Harness, action: Action) {\n switch (action.type) {\n case \"ui.type\":\n yield* Effect.tryPromise(() => harness.mockInput.typeText(action.text))\n break\n case \"ui.press\":\n harness.mockInput.pressKey(action.key, action.modifiers)\n break\n case \"ui.enter\":\n harness.mockInput.pressEnter()\n break\n case \"ui.arrow\":\n harness.mockInput.pressArrow(action.direction)\n break\n case \"ui.focus\":\n all(harness.renderer.root)\n .find((item) => item.num === action.target)\n ?.focus()\n break\n case \"ui.click\":\n yield* Effect.tryPromise(() => harness.mockMouse.click(action.x, action.y))\n break\n case \"ui.resize\":\n if (\n !Number.isSafeInteger(action.cols) ||\n action.cols <= 0 ||\n !Number.isSafeInteger(action.rows) ||\n action.rows <= 0\n ) {\n return yield* Effect.fail(new Error(\"resize cols and rows must be positive integers\"))\n }\n harness.resize(action.cols, action.rows)\n SimulationRenderer.recordResize(harness.renderer, action.cols, action.rows)\n break\n }\n yield* Effect.tryPromise(() => harness.renderOnce())\n return state(harness)\n})\n\nexport * as SimulationActions from \"./actions\"\n",
"import { createWriteStream, type WriteStream } from \"node:fs\"\nimport { mkdir } from \"node:fs/promises\"\nimport { dirname } from \"node:path\"\nimport { Writable } from \"node:stream\"\nimport { finished } from \"node:stream/promises\"\nimport { Schema } from \"effect\"\n\nexport const Header = Schema.Struct({\n type: Schema.Literal(\"header\"),\n version: Schema.Literal(1),\n cols: Schema.Number,\n rows: Schema.Number,\n encoding: Schema.Literal(\"base64\"),\n})\nexport interface Header extends Schema.Schema.Type<typeof Header> {}\n\nexport const Output = Schema.Struct({\n type: Schema.Literal(\"output\"),\n at_ms: Schema.Number,\n data: Schema.String,\n})\nexport interface Output extends Schema.Schema.Type<typeof Output> {}\n\nexport const Resize = Schema.Struct({\n type: Schema.Literal(\"resize\"),\n at_ms: Schema.Number,\n cols: Schema.Number,\n rows: Schema.Number,\n})\nexport interface Resize extends Schema.Schema.Type<typeof Resize> {}\n\nexport const Event = Schema.Union([Header, Output, Resize])\nexport type Event = Schema.Schema.Type<typeof Event>\n\nexport class Timeline extends Writable {\n readonly isTTY = true\n readonly path: string\n readonly columns: number\n readonly rows: number\n private readonly output: WriteStream\n private readonly started = performance.now()\n private readonly timestamps: number[] = []\n private done?: Promise<string>\n\n private constructor(path: string, cols: number, rows: number, output: WriteStream) {\n super()\n this.path = path\n this.columns = cols\n this.rows = rows\n this.output = output\n // finish() reports stream failures; keep Writable from also throwing them process-wide.\n this.on(\"error\", () => {})\n output.on(\"error\", (error) => this.destroy(error))\n }\n\n static async create(path: string, cols: number, rows: number) {\n await mkdir(dirname(path), { recursive: true })\n const output = createWriteStream(path)\n const timeline = new Timeline(path, cols, rows, output)\n await new Promise<void>((resolve, reject) => {\n output.write(\n `${JSON.stringify({ type: \"header\", version: 1, cols, rows, encoding: \"base64\" } satisfies Header)}\\n`,\n (error) => (error ? reject(error) : resolve()),\n )\n })\n return timeline\n }\n\n getColorDepth() {\n return 24\n }\n\n override write(chunk: unknown, callback?: (error?: Error | null) => void): boolean\n override write(chunk: unknown, encoding: BufferEncoding, callback?: (error?: Error | null) => void): boolean\n override write(\n chunk: unknown,\n encoding?: BufferEncoding | ((error?: Error | null) => void),\n callback?: (error?: Error | null) => void,\n ) {\n if (!this.writableEnded) {\n this.timestamps.push(this.elapsed())\n if (typeof encoding === \"function\") return super.write(chunk, encoding)\n if (encoding === undefined) return super.write(chunk, callback)\n return super.write(chunk, encoding, callback)\n }\n const done = typeof encoding === \"function\" ? encoding : callback\n queueMicrotask(() => done?.(null))\n return true\n }\n\n override _write(chunk: Buffer, _encoding: BufferEncoding, callback: (error?: Error | null) => void) {\n this.writeOutput(chunk, this.timestamps.shift() ?? this.elapsed(), callback)\n }\n\n override _final(callback: (error?: Error | null) => void) {\n this.writeOutput(Buffer.alloc(0), this.elapsed(), (error) => {\n if (error) return callback(error)\n this.output.end(callback)\n })\n }\n\n finish() {\n if (this.done) return this.done\n this.end()\n this.done = finished(this).then(() => this.path)\n return this.done\n }\n\n resize(cols: number, rows: number) {\n if (this.writableEnded) return\n const event = { type: \"resize\", at_ms: this.elapsed(), cols, rows } satisfies Resize\n this.output.write(`${JSON.stringify(event)}\\n`)\n }\n\n private elapsed() {\n return Math.max(0, Math.round(performance.now() - this.started))\n }\n\n private writeOutput(data: Buffer, at_ms: number, callback: (error?: Error | null) => void) {\n const event = {\n type: \"output\",\n at_ms,\n data: data.toString(\"base64\"),\n } satisfies Output\n this.output.write(`${JSON.stringify(event)}\\n`, callback)\n }\n}\n\nexport * as SimulationRecording from \"./recording\"\n",
"import type { CliRenderer, CliRendererConfig } from \"@opentui/core\"\nimport { createTestRenderer, type TestRendererSetup } from \"@opentui/core/testing\"\nimport { Effect } from \"effect\"\nimport { Timeline } from \"../recording\"\n\nconst setups = new WeakMap<CliRenderer, TestRendererSetup>()\nconst recordings = new WeakMap<CliRenderer, Timeline>()\n\n/**\n * Creates a headless renderer with optional recording: a real CliRenderer\n * backed by an in-memory screen buffer. The TestRendererSetup is kept\n * module-side so the harness can use supported testing APIs without app\n * code carrying it around.\n */\nexport interface Viewport {\n readonly cols: number\n readonly rows: number\n}\n\nexport const create = Effect.fn(\"SimulationRenderer.create\")(function* (\n options: CliRendererConfig,\n path?: string,\n viewport?: Viewport,\n) {\n const cols = viewport?.cols ?? 100\n const rows = viewport?.rows ?? 40\n const recording = path\n ? yield* Effect.acquireRelease(\n Effect.tryPromise(() => Timeline.create(path, cols, rows)),\n (recording) =>\n Effect.tryPromise(() => recording.finish()).pipe(\n Effect.catch((error) =>\n Effect.sync(() => process.stderr.write(`Failed to finish UI recording: ${error}\\n`)),\n ),\n ),\n )\n : undefined\n const setup = yield* Effect.acquireRelease(\n Effect.tryPromise(() =>\n createTestRenderer({\n ...options,\n width: cols,\n height: rows,\n ...(recording\n ? {\n stdout: recording as unknown as NodeJS.WriteStream,\n bufferedOutput: \"stdout\" as const,\n }\n : {}),\n }),\n ),\n (setup) =>\n Effect.sync(() => {\n if (!setup.renderer.isDestroyed) setup.renderer.destroy()\n }),\n )\n setups.set(setup.renderer, setup)\n if (recording) recordings.set(setup.renderer, recording)\n return setup.renderer\n})\n\nexport function recordResize(renderer: CliRenderer, cols: number, rows: number) {\n recordings.get(renderer)?.resize(cols, rows)\n}\n\nexport function setupFor(renderer: CliRenderer): TestRendererSetup | undefined {\n return setups.get(renderer)\n}\n\nexport function finish(renderer: CliRenderer) {\n const recording = recordings.get(renderer)\n if (!recording) return Effect.fail(new Error(\"UI recording is not available\"))\n return Effect.tryPromise(() => recording.finish())\n}\n\nexport * as SimulationRenderer from \"./renderer\"\n",
"import { Effect } from \"effect\"\nimport { SimulationControlServer } from \"../control-server\"\nimport { SimulationProtocol } from \"../protocol\"\nimport { SimulationActions, type Harness } from \"./actions\"\nimport { SimulationRenderer } from \"./renderer\"\n\nfunction handle(harness: Harness, request: SimulationProtocol.Frontend.Request) {\n switch (request.method) {\n case \"ui.capture\":\n return SimulationActions.capture(harness)\n case \"ui.screenshot\":\n return SimulationActions.screenshot(harness, request.params?.name)\n case \"ui.state\":\n return Effect.sync(() => SimulationActions.state(harness))\n case \"ui.matches\":\n return Effect.sync(() => SimulationActions.matches(harness, request.params.text))\n case \"ui.recording.finish\":\n return SimulationRenderer.finish(harness.renderer)\n case \"ui.type\":\n return SimulationActions.execute(harness, { type: \"ui.type\", text: request.params.text })\n case \"ui.enter\":\n return SimulationActions.execute(harness, { type: \"ui.enter\" })\n case \"ui.press\":\n return SimulationActions.execute(harness, {\n type: \"ui.press\",\n key: request.params.key,\n modifiers: request.params.modifiers,\n })\n case \"ui.arrow\":\n return SimulationActions.execute(harness, { type: \"ui.arrow\", direction: request.params.direction })\n case \"ui.focus\":\n return SimulationActions.execute(harness, { type: \"ui.focus\", target: request.params.target })\n case \"ui.click\":\n return SimulationActions.execute(harness, {\n type: \"ui.click\",\n target: request.params.target,\n x: request.params.x,\n y: request.params.y,\n })\n case \"ui.resize\":\n return SimulationActions.execute(harness, {\n type: \"ui.resize\",\n cols: request.params.cols,\n rows: request.params.rows,\n })\n }\n}\n\nexport const start = Effect.fn(\"SimulationServer.start\")(function* (harness: Harness, endpoint: string) {\n return yield* SimulationControlServer.start({\n endpoint,\n label: \"opencode drive ui websocket\",\n data: () => ({ drive: true as const }),\n decode: SimulationProtocol.Frontend.decodeRequestEffect,\n handle: (_socket, request) => handle(harness, request),\n })\n})\n\nexport * as SimulationServer from \"./server\"\n",
"import { createCliRenderer, type CliRendererConfig } from \"@opentui/core\"\nimport { Config, Effect } from \"effect\"\nimport { DriveManifest } from \"../manifest\"\nimport { SimulationActions } from \"./actions\"\nimport { SimulationRenderer } from \"./renderer\"\nimport { SimulationServer } from \"./server\"\n\n/** Drive-mode renderer and control-server acquisition. */\nexport const create = Effect.fn(\"Drive.create\")(function* (options: CliRendererConfig) {\n const headless = (yield* Config.string(\"OPENCODE_DRIVE_RENDERER\").pipe(Config.withDefault(\"visible\"))) === \"headless\"\n const manifest = yield* DriveManifest.resolve()\n const renderer = headless\n ? yield* SimulationRenderer.create(options, manifest.recording?.timeline, manifest.viewport)\n : yield* Effect.acquireRelease(\n Effect.tryPromise(() => createCliRenderer(options)),\n (renderer) =>\n Effect.sync(() => {\n if (!renderer.isDestroyed) renderer.destroy()\n }),\n )\n if (!headless && manifest.viewport) renderer.resize(manifest.viewport.cols, manifest.viewport.rows)\n const server = yield* SimulationServer.start(SimulationActions.createHarness(renderer), manifest.endpoints.ui)\n yield* Effect.sync(() => process.stderr.write(`opencode drive ui websocket: ${server.url}\\n`))\n return renderer\n})\n\nexport * as Drive from \"./simulation\"\n"
],
"mappings": "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",
"debugId": "1A585ACA4C62522D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260507164347_add_workspace_time.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260507164347_add_workspace_time\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`workspace\\` ADD \\`time_used\\` integer NOT NULL DEFAULT 0;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,oCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qEAAyE,EACxF,EAEL",
"debugId": "465009A5A1EBDC9164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-web-identity@3.972.45/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-web-identity@3.972.45/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, externalDataInterceptor } from \"@smithy/core/config\";\nimport { readFileSync } from \"node:fs\";\nimport { fromWebToken } from \"./fromWebToken\";\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nexport const fromTokenFile = (init = {}) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await fromWebToken({\n ...init,\n webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ??\n readFileSync(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })(awsIdentityProperties);\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\n",
"export const fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await import(\"@aws-sdk/nested-clients/sts\");\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\n"
],
"mappings": ";kJAAA,oBACA,gBACA,uBAAS,WCFF,IAAM,EAAe,CAAC,IAAS,MAAO,IAA0B,CACnE,EAAK,QAAQ,MAAM,0DAA0D,EAC7E,IAAQ,UAAS,kBAAiB,mBAAkB,aAAY,aAAY,SAAQ,mBAAoB,GAClG,8BAA+B,EACrC,GAAI,CAAC,EAA4B,CAC7B,IAAQ,wCAAyC,KAAa,0CAC9D,EAA6B,EAAqC,IAC3D,EAAK,aACR,yBAA0B,EAAK,OAC/B,mBAAoB,IACb,GAAuB,sBACvB,EAAK,kBACZ,CACJ,EAAG,EAAK,aAAa,EAEzB,OAAO,EAA2B,CAC9B,QAAS,EACT,gBAAiB,GAAmB,sBAAsB,KAAK,IAAI,IACnE,iBAAkB,EAClB,WAAY,EACZ,WAAY,EACZ,OAAQ,EACR,gBAAiB,CACrB,CAAC,GDnBL,IAAM,EAAiB,8BACjB,EAAe,eACf,EAAwB,wBACjB,EAAgB,CAAC,EAAO,CAAC,IAAM,MAAO,IAA0B,CACzE,EAAK,QAAQ,MAAM,2DAA2D,EAC9E,IAAM,EAAuB,GAAM,sBAAwB,QAAQ,IAAI,GACjE,EAAU,GAAM,SAAW,QAAQ,IAAI,GACvC,EAAkB,GAAM,iBAAmB,QAAQ,IAAI,GAC7D,GAAI,CAAC,GAAwB,CAAC,EAC1B,MAAM,IAAI,2BAAyB,2CAA4C,CAC3E,OAAQ,EAAK,MACjB,CAAC,EAEL,IAAM,EAAc,MAAM,EAAa,IAChC,EACH,iBAAkB,2BAAyB,iBAAiB,EAAE,IAC1D,EAAa,EAAsB,CAAE,SAAU,OAAQ,CAAC,EAC5D,UACA,iBACJ,CAAC,EAAE,CAAqB,EACxB,GAAI,IAAyB,QAAQ,IAAI,GACrC,uBAAqB,EAAa,wCAAyC,GAAG,EAElF,OAAO",
"debugId": "9F41BCBD60DA17F164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260228203230_blue_harpoon.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260228203230_blue_harpoon\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`account\\` (\n \\`id\\` text PRIMARY KEY,\n \\`email\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`access_token\\` text NOT NULL,\n \\`refresh_token\\` text NOT NULL,\n \\`token_expiry\\` integer,\n \\`selected_org_id\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`account_state\\` (\n \\`id\\` integer PRIMARY KEY NOT NULL,\n \\`active_account_id\\` text,\n FOREIGN KEY (\\`active_account_id\\`) REFERENCES \\`account\\`(\\`id\\`) ON UPDATE no action ON DELETE set null\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4YAYb,EACD,MAAO,EAAG,IAAI,gQAMb,EACF,EAEL",
"debugId": "8802F183BEFC0E4164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-error.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-io.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/auth-config.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/oauth.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/auth-errors.js", "../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token-util.js"],
"sourcesContent": [
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_error_exports = {};\n__export(token_error_exports, {\n VercelOidcTokenError: () => VercelOidcTokenError\n});\nmodule.exports = __toCommonJS(token_error_exports);\nclass VercelOidcTokenError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = \"VercelOidcTokenError\";\n this.cause = cause;\n }\n toString() {\n if (this.cause) {\n return `${this.name}: ${this.message}: ${this.cause}`;\n }\n return `${this.name}: ${this.message}`;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n VercelOidcTokenError\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_io_exports = {};\n__export(token_io_exports, {\n findRootDir: () => findRootDir,\n getUserDataDir: () => getUserDataDir\n});\nmodule.exports = __toCommonJS(token_io_exports);\nvar import_path = __toESM(require(\"path\"));\nvar import_fs = __toESM(require(\"fs\"));\nvar import_os = __toESM(require(\"os\"));\nvar import_token_error = require(\"./token-error\");\nfunction findRootDir() {\n try {\n let dir = process.cwd();\n while (dir !== import_path.default.dirname(dir)) {\n const pkgPath = import_path.default.join(dir, \".vercel\");\n if (import_fs.default.existsSync(pkgPath)) {\n return dir;\n }\n dir = import_path.default.dirname(dir);\n }\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(\n \"Token refresh only supported in node server environments\"\n );\n }\n return null;\n}\nfunction getUserDataDir() {\n if (process.env.XDG_DATA_HOME) {\n return process.env.XDG_DATA_HOME;\n }\n switch (import_os.default.platform()) {\n case \"darwin\":\n return import_path.default.join(import_os.default.homedir(), \"Library/Application Support\");\n case \"linux\":\n return import_path.default.join(import_os.default.homedir(), \".local/share\");\n case \"win32\":\n if (process.env.LOCALAPPDATA) {\n return process.env.LOCALAPPDATA;\n }\n return null;\n default:\n return null;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n findRootDir,\n getUserDataDir\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar auth_config_exports = {};\n__export(auth_config_exports, {\n isValidAccessToken: () => isValidAccessToken,\n readAuthConfig: () => readAuthConfig,\n writeAuthConfig: () => writeAuthConfig\n});\nmodule.exports = __toCommonJS(auth_config_exports);\nvar fs = __toESM(require(\"fs\"));\nvar path = __toESM(require(\"path\"));\nvar import_token_util = require(\"./token-util\");\nfunction getAuthConfigPath() {\n const dataDir = (0, import_token_util.getVercelDataDir)();\n if (!dataDir) {\n throw new Error(\n `Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`\n );\n }\n return path.join(dataDir, \"auth.json\");\n}\nfunction readAuthConfig() {\n try {\n const authPath = getAuthConfigPath();\n if (!fs.existsSync(authPath)) {\n return null;\n }\n const content = fs.readFileSync(authPath, \"utf8\");\n if (!content) {\n return null;\n }\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n}\nfunction writeAuthConfig(config) {\n const authPath = getAuthConfigPath();\n const authDir = path.dirname(authPath);\n if (!fs.existsSync(authDir)) {\n fs.mkdirSync(authDir, { mode: 504, recursive: true });\n }\n fs.writeFileSync(authPath, JSON.stringify(config, null, 2), { mode: 384 });\n}\nfunction isValidAccessToken(authConfig, expirationBufferMs = 0) {\n if (!authConfig.token)\n return false;\n if (typeof authConfig.expiresAt !== \"number\")\n return true;\n const nowInSeconds = Math.floor(Date.now() / 1e3);\n const bufferInSeconds = expirationBufferMs / 1e3;\n return authConfig.expiresAt >= nowInSeconds + bufferInSeconds;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n isValidAccessToken,\n readAuthConfig,\n writeAuthConfig\n});\n",
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar oauth_exports = {};\n__export(oauth_exports, {\n processTokenResponse: () => processTokenResponse,\n refreshTokenRequest: () => refreshTokenRequest\n});\nmodule.exports = __toCommonJS(oauth_exports);\nvar import_os = require(\"os\");\nconst VERCEL_ISSUER = \"https://vercel.com\";\nconst VERCEL_CLI_CLIENT_ID = \"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp\";\nconst userAgent = `@vercel/oidc node-${process.version} ${(0, import_os.platform)()} (${(0, import_os.arch)()}) ${(0, import_os.hostname)()}`;\nlet _tokenEndpoint = null;\nasync function getTokenEndpoint() {\n if (_tokenEndpoint) {\n return _tokenEndpoint;\n }\n const discoveryUrl = `${VERCEL_ISSUER}/.well-known/openid-configuration`;\n const response = await fetch(discoveryUrl, {\n headers: { \"user-agent\": userAgent }\n });\n if (!response.ok) {\n throw new Error(\"Failed to discover OAuth endpoints\");\n }\n const metadata = await response.json();\n if (!metadata || typeof metadata.token_endpoint !== \"string\") {\n throw new Error(\"Invalid OAuth discovery response\");\n }\n const endpoint = metadata.token_endpoint;\n _tokenEndpoint = endpoint;\n return endpoint;\n}\nasync function refreshTokenRequest(options) {\n const tokenEndpoint = await getTokenEndpoint();\n return await fetch(tokenEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"user-agent\": userAgent\n },\n body: new URLSearchParams({\n client_id: VERCEL_CLI_CLIENT_ID,\n grant_type: \"refresh_token\",\n ...options\n })\n });\n}\nasync function processTokenResponse(response) {\n const json = await response.json();\n if (!response.ok) {\n const errorMsg = typeof json === \"object\" && json && \"error\" in json ? String(json.error) : \"Token refresh failed\";\n return [new Error(errorMsg)];\n }\n if (typeof json !== \"object\" || json === null) {\n return [new Error(\"Invalid token response\")];\n }\n if (typeof json.access_token !== \"string\") {\n return [new Error(\"Missing access_token in response\")];\n }\n if (json.token_type !== \"Bearer\") {\n return [new Error(\"Invalid token_type in response\")];\n }\n if (typeof json.expires_in !== \"number\") {\n return [new Error(\"Missing expires_in in response\")];\n }\n return [null, json];\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n processTokenResponse,\n refreshTokenRequest\n});\n",
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar auth_errors_exports = {};\n__export(auth_errors_exports, {\n AccessTokenMissingError: () => AccessTokenMissingError,\n RefreshAccessTokenFailedError: () => RefreshAccessTokenFailedError\n});\nmodule.exports = __toCommonJS(auth_errors_exports);\nclass AccessTokenMissingError extends Error {\n constructor() {\n super(\n \"No authentication found. Please log in with the Vercel CLI (vercel login).\"\n );\n this.name = \"AccessTokenMissingError\";\n }\n}\nclass RefreshAccessTokenFailedError extends Error {\n constructor(cause) {\n super(\"Failed to refresh authentication token.\", { cause });\n this.name = \"RefreshAccessTokenFailedError\";\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AccessTokenMissingError,\n RefreshAccessTokenFailedError\n});\n",
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_util_exports = {};\n__export(token_util_exports, {\n assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,\n findProjectInfo: () => findProjectInfo,\n getTokenPayload: () => getTokenPayload,\n getVercelDataDir: () => getVercelDataDir,\n getVercelOidcToken: () => getVercelOidcToken,\n getVercelToken: () => getVercelToken,\n isExpired: () => isExpired,\n loadToken: () => loadToken,\n saveToken: () => saveToken\n});\nmodule.exports = __toCommonJS(token_util_exports);\nvar path = __toESM(require(\"path\"));\nvar fs = __toESM(require(\"fs\"));\nvar import_token_error = require(\"./token-error\");\nvar import_token_io = require(\"./token-io\");\nvar import_auth_config = require(\"./auth-config\");\nvar import_oauth = require(\"./oauth\");\nvar import_auth_errors = require(\"./auth-errors\");\nfunction getVercelDataDir() {\n const vercelFolder = \"com.vercel.cli\";\n const dataDir = (0, import_token_io.getUserDataDir)();\n if (!dataDir) {\n return null;\n }\n return path.join(dataDir, vercelFolder);\n}\nasync function getVercelToken(options) {\n const authConfig = (0, import_auth_config.readAuthConfig)();\n if (!authConfig?.token) {\n throw new import_auth_errors.AccessTokenMissingError();\n }\n if ((0, import_auth_config.isValidAccessToken)(authConfig, options?.expirationBufferMs)) {\n return authConfig.token;\n }\n if (!authConfig.refreshToken) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(\"No refresh token available\");\n }\n try {\n const tokenResponse = await (0, import_oauth.refreshTokenRequest)({\n refresh_token: authConfig.refreshToken\n });\n const [tokensError, tokens] = await (0, import_oauth.processTokenResponse)(tokenResponse);\n if (tokensError || !tokens) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(tokensError);\n }\n const updatedConfig = {\n token: tokens.access_token,\n expiresAt: Math.floor(Date.now() / 1e3) + tokens.expires_in\n };\n if (tokens.refresh_token) {\n updatedConfig.refreshToken = tokens.refresh_token;\n }\n (0, import_auth_config.writeAuthConfig)(updatedConfig);\n return updatedConfig.token;\n } catch (error) {\n (0, import_auth_config.writeAuthConfig)({});\n if (error instanceof import_auth_errors.AccessTokenMissingError || error instanceof import_auth_errors.RefreshAccessTokenFailedError) {\n throw error;\n }\n throw new import_auth_errors.RefreshAccessTokenFailedError(error);\n }\n}\nasync function getVercelOidcToken(authToken, projectId, teamId) {\n const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : \"\"}`;\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${authToken}`\n }\n });\n if (!res.ok) {\n throw new import_token_error.VercelOidcTokenError(\n `Failed to refresh OIDC token: ${res.statusText}`\n );\n }\n const tokenRes = await res.json();\n assertVercelOidcTokenResponse(tokenRes);\n return tokenRes;\n}\nfunction assertVercelOidcTokenResponse(res) {\n if (!res || typeof res !== \"object\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again\"\n );\n }\n if (!(\"token\" in res) || typeof res.token !== \"string\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again\"\n );\n }\n}\nfunction findProjectInfo() {\n const dir = (0, import_token_io.findRootDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find project root directory. Have you linked your project with `vc link?`\"\n );\n }\n const prjPath = path.join(dir, \".vercel\", \"project.json\");\n if (!fs.existsSync(prjPath)) {\n throw new import_token_error.VercelOidcTokenError(\n \"project.json not found, have you linked your project with `vc link?`\"\n );\n }\n const prj = JSON.parse(fs.readFileSync(prjPath, \"utf8\"));\n if (typeof prj.projectId !== \"string\" && typeof prj.orgId !== \"string\") {\n throw new TypeError(\n \"Expected a string-valued projectId property. Try running `vc link` to re-link your project.\"\n );\n }\n return { projectId: prj.projectId, teamId: prj.orgId };\n}\nfunction saveToken(token, projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n const tokenJson = JSON.stringify(token);\n fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });\n fs.writeFileSync(tokenPath, tokenJson);\n fs.chmodSync(tokenPath, 432);\n return;\n}\nfunction loadToken(projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = JSON.parse(fs.readFileSync(tokenPath, \"utf8\"));\n assertVercelOidcTokenResponse(token);\n return token;\n}\nfunction getTokenPayload(token) {\n const tokenParts = token.split(\".\");\n if (tokenParts.length !== 3) {\n throw new import_token_error.VercelOidcTokenError(\n \"Invalid token. Please run `vc env pull` and try again\"\n );\n }\n const base64 = tokenParts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(\n base64.length + (4 - base64.length % 4) % 4,\n \"=\"\n );\n return JSON.parse(Buffer.from(padded, \"base64\").toString(\"utf8\"));\n}\nfunction isExpired(token, bufferMs = 0) {\n return token.exp * 1e3 < Date.now() + bufferMs;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n assertVercelOidcTokenResponse,\n findProjectInfo,\n getTokenPayload,\n getVercelDataDir,\n getVercelOidcToken,\n getVercelToken,\n isExpired,\n loadToken,\n saveToken\n});\n"
],
"mappings": "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",
"debugId": "9E84E214E0A41EBB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/ai-gateway-provider@3.1.2+a6631614dda8d488/node_modules/ai-gateway-provider/dist/providers/unified.mjs"],
"sourcesContent": [
"// src/providers/unified.ts\nimport { createOpenAICompatible } from \"@ai-sdk/openai-compatible\";\nvar createUnified = (arg) => {\n return createOpenAICompatible({\n baseURL: \"https://gateway.ai.cloudflare.com/v1/compat\",\n // intercepted and replaced with actual base URL later\n name: \"Unified\",\n ...arg || {}\n });\n};\nvar unified = createUnified();\nexport {\n createUnified,\n unified\n};\n//# sourceMappingURL=unified.mjs.map"
],
"mappings": ";8NAEA,SAAI,OAAgB,MAAC,SAAQ,MAC3B,OAAO,EAAuB,CAC5B,QAAS,8CAET,KAAM,aACH,GAAO,CAAC,CACb,CAAC,GAEC,EAAU,EAAc",
"debugId": "A83DED4C10FE456B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/image/photon.ts"],
"sourcesContent": [
"// @ts-ignore Bun's static file import is embedded by `bun build --compile`; some consumers also declare *.wasm.\nimport photonWasm from \"@silvia-odwyer/photon-node/photon_rs_bg.wasm\" with { type: \"file\" }\nimport { Effect } from \"effect\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { FileSystem } from \"../filesystem\"\nimport { DecodeError, ResizerUnavailableError, SizeError } from \"../image\"\n\nconst JPEG_QUALITIES = [80, 85, 70, 55, 40]\n\nexport const make = Effect.gen(function* () {\n ;(globalThis as typeof globalThis & { __OPENCODE_PHOTON_WASM_PATH?: string }).__OPENCODE_PHOTON_WASM_PATH =\n path.isAbsolute(photonWasm) ? photonWasm : fileURLToPath(new URL(photonWasm, import.meta.url))\n const loadPhoton = yield* Effect.cached(\n Effect.tryPromise({\n try: () => import(\"@silvia-odwyer/photon-node\"),\n catch: () => new ResizerUnavailableError(),\n }),\n )\n return Effect.fn(\"Image.Photon.normalize\")(function* (\n resource: string,\n content: FileSystem.Content & { readonly encoding: \"base64\" },\n limits: {\n readonly autoResize: boolean\n readonly maxWidth: number\n readonly maxHeight: number\n readonly maxBase64Bytes: number\n },\n ) {\n const photon = yield* loadPhoton\n const decoded = yield* Effect.try({\n try: () => photon.PhotonImage.new_from_byteslice(Buffer.from(content.content, \"base64\")),\n catch: () => new DecodeError({ resource }),\n })\n try {\n const width = decoded.get_width()\n const height = decoded.get_height()\n const bytes = Buffer.byteLength(content.content, \"utf-8\")\n if (width <= limits.maxWidth && height <= limits.maxHeight && bytes <= limits.maxBase64Bytes) return content\n if (!limits.autoResize)\n return yield* new SizeError({\n resource,\n width,\n height,\n bytes,\n maxWidth: limits.maxWidth,\n maxHeight: limits.maxHeight,\n maxBytes: limits.maxBase64Bytes,\n })\n const scale = Math.min(1, limits.maxWidth / width, limits.maxHeight / height)\n const sizes = Array.from({ length: 32 }).reduce<Array<{ width: number; height: number }>>((acc) => {\n const previous = acc.at(-1) ?? {\n width: Math.max(1, Math.round(width * scale)),\n height: Math.max(1, Math.round(height * scale)),\n }\n const next =\n acc.length === 0\n ? previous\n : {\n width: previous.width === 1 ? 1 : Math.max(1, Math.floor(previous.width * 0.75)),\n height: previous.height === 1 ? 1 : Math.max(1, Math.floor(previous.height * 0.75)),\n }\n return acc.some((item) => item.width === next.width && item.height === next.height) ? acc : [...acc, next]\n }, [])\n for (const size of sizes) {\n const resized = photon.resize(decoded, size.width, size.height, photon.SamplingFilter.Lanczos3)\n try {\n const encoders: Array<readonly [mime: string, encode: () => Uint8Array]> = [\n [\"image/png\", () => resized.get_bytes()],\n ...JPEG_QUALITIES.map((quality) => [\"image/jpeg\", () => resized.get_bytes_jpeg(quality)] as const),\n ]\n for (const [mime, encode] of encoders) {\n const candidate = Buffer.from(encode()).toString(\"base64\")\n if (Buffer.byteLength(candidate, \"utf-8\") <= limits.maxBase64Bytes)\n return { ...content, content: candidate, encoding: \"base64\" as const, mime }\n }\n } finally {\n resized.free()\n }\n }\n return yield* new SizeError({\n resource,\n width,\n height,\n bytes,\n maxWidth: limits.maxWidth,\n maxHeight: limits.maxHeight,\n maxBytes: limits.maxBase64Bytes,\n })\n } finally {\n decoded.free()\n }\n })\n})\n"
],
"mappings": ";2xBAGA,yBACA,6BAAS,iBAIT,SAAM,OAAiB,MAAC,QAAI,QAAI,QAAI,QAAI,OAAE,OAE7B,OAAO,OAAO,SAAI,cAAU,OAAG,MACxC,gBAA4E,iCAC5E,gBAAK,WAAW,CAAU,EAAI,EAAa,EAAc,IAAI,IAAI,EAAY,YAAY,GAAG,CAAC,EAC/F,IAAM,EAAa,MAAO,EAAO,OAC/B,EAAO,WAAW,CAChB,IAAK,IAAa,yCAClB,MAAO,IAAM,IAAI,CACnB,CAAC,CACH,EACA,OAAO,EAAO,GAAG,wBAAwB,EAAE,SAAU,CACnD,EACA,EACA,EAMA,CACA,IAAM,EAAS,MAAO,EAChB,EAAU,MAAO,EAAO,IAAI,CAChC,IAAK,IAAM,EAAO,YAAY,mBAAmB,OAAO,KAAK,EAAQ,QAAS,QAAQ,CAAC,EACvF,MAAO,IAAM,IAAI,EAAY,CAAE,UAAS,CAAC,CAC3C,CAAC,EACD,GAAI,CACF,IAAM,EAAQ,EAAQ,UAAU,EAC1B,EAAS,EAAQ,WAAW,EAC5B,EAAQ,OAAO,WAAW,EAAQ,QAAS,OAAO,EACxD,GAAI,GAAS,EAAO,UAAY,GAAU,EAAO,WAAa,GAAS,EAAO,eAAgB,OAAO,EACrG,GAAI,CAAC,EAAO,WACV,OAAO,MAAO,IAAI,EAAU,CAC1B,WACA,QACA,SACA,QACA,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,SAAU,EAAO,cACnB,CAAC,EACH,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAO,SAAW,EAAO,EAAO,UAAY,CAAM,EACtE,EAAQ,MAAM,KAAK,CAAE,OAAQ,EAAG,CAAC,EAAE,OAAiD,CAAC,IAAQ,CACjG,IAAM,EAAW,EAAI,GAAG,EAAE,GAAK,CAC7B,MAAO,KAAK,IAAI,EAAG,KAAK,MAAM,EAAQ,CAAK,CAAC,EAC5C,OAAQ,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,CAAK,CAAC,CAChD,EACM,EACJ,EAAI,SAAW,EACX,EACA,CACE,MAAO,EAAS,QAAU,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,MAAQ,IAAI,CAAC,EAC/E,OAAQ,EAAS,SAAW,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM,EAAS,OAAS,IAAI,CAAC,CACpF,EACN,OAAO,EAAI,KAAK,CAAC,IAAS,EAAK,QAAU,EAAK,OAAS,EAAK,SAAW,EAAK,MAAM,EAAI,EAAM,CAAC,GAAG,EAAK,CAAI,GACxG,CAAC,CAAC,EACL,QAAW,KAAQ,EAAO,CACxB,IAAM,EAAU,EAAO,OAAO,EAAS,EAAK,MAAO,EAAK,OAAQ,EAAO,eAAe,QAAQ,EAC9F,GAAI,CACF,IAAM,EAAqE,CACzE,CAAC,YAAa,IAAM,EAAQ,UAAU,CAAC,EACvC,GAAG,EAAe,IAAI,CAAC,IAAY,CAAC,aAAc,IAAM,EAAQ,eAAe,CAAO,CAAC,CAAU,CACnG,EACA,QAAY,EAAM,KAAW,EAAU,CACrC,IAAM,EAAY,OAAO,KAAK,EAAO,CAAC,EAAE,SAAS,QAAQ,EACzD,GAAI,OAAO,WAAW,EAAW,OAAO,GAAK,EAAO,eAClD,MAAO,IAAK,EAAS,QAAS,EAAW,SAAU,SAAmB,MAAK,UAE/E,CACA,EAAQ,KAAK,GAGjB,OAAO,MAAO,IAAI,EAAU,CAC1B,WACA,QACA,SACA,QACA,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,SAAU,EAAO,cACnB,CAAC,SACD,CACA,EAAQ,KAAK,GAEhB,EACF",
"debugId": "F6C23EF920E3AFB064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/flag/flag.ts", "../core/src/global.ts", "../../node_modules/.bun/xdg-basedir@5.1.0/node_modules/xdg-basedir/index.js", "../core/src/util/flock.ts", "../core/src/util/hash.ts"],
"sourcesContent": [
"import { Config } from \"effect\"\n\nexport function truthy(key: string) {\n const value = process.env[key]?.toLowerCase()\n return value === \"true\" || value === \"1\"\n}\n\nconst copy = process.env[\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"]\nconst fff = process.env[\"OPENCODE_DISABLE_FFF\"]\n\nfunction enabledByExperimental(key: string) {\n return process.env[key] === undefined ? truthy(\"OPENCODE_EXPERIMENTAL\") : truthy(key)\n}\n\nexport const Flag = {\n OTEL_EXPORTER_OTLP_ENDPOINT: process.env[\"OTEL_EXPORTER_OTLP_ENDPOINT\"],\n OTEL_EXPORTER_OTLP_HEADERS: process.env[\"OTEL_EXPORTER_OTLP_HEADERS\"],\n\n OPENCODE_AUTO_HEAP_SNAPSHOT: truthy(\"OPENCODE_AUTO_HEAP_SNAPSHOT\"),\n OPENCODE_GIT_BASH_PATH: process.env[\"OPENCODE_GIT_BASH_PATH\"],\n OPENCODE_CONFIG: process.env[\"OPENCODE_CONFIG\"],\n OPENCODE_CONFIG_CONTENT: process.env[\"OPENCODE_CONFIG_CONTENT\"],\n OPENCODE_DISABLE_AUTOUPDATE: truthy(\"OPENCODE_DISABLE_AUTOUPDATE\"),\n OPENCODE_ALWAYS_NOTIFY_UPDATE: truthy(\"OPENCODE_ALWAYS_NOTIFY_UPDATE\"),\n OPENCODE_DISABLE_PRUNE: truthy(\"OPENCODE_DISABLE_PRUNE\"),\n OPENCODE_DISABLE_TERMINAL_TITLE: truthy(\"OPENCODE_DISABLE_TERMINAL_TITLE\"),\n OPENCODE_SHOW_TTFD: truthy(\"OPENCODE_SHOW_TTFD\"),\n OPENCODE_DISABLE_AUTOCOMPACT: truthy(\"OPENCODE_DISABLE_AUTOCOMPACT\"),\n OPENCODE_DISABLE_MODELS_FETCH: truthy(\"OPENCODE_DISABLE_MODELS_FETCH\"),\n OPENCODE_DISABLE_MOUSE: truthy(\"OPENCODE_DISABLE_MOUSE\"),\n OPENCODE_FAKE_VCS: process.env[\"OPENCODE_FAKE_VCS\"],\n OPENCODE_SERVER_PASSWORD: process.env[\"OPENCODE_SERVER_PASSWORD\"],\n OPENCODE_SERVER_USERNAME: process.env[\"OPENCODE_SERVER_USERNAME\"],\n OPENCODE_DISABLE_FFF: fff === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_DISABLE_FFF\"),\n OPENCODE_DISABLE_FILEWATCHER: truthy(\"OPENCODE_DISABLE_FILEWATCHER\"),\n\n // Experimental\n OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:\n copy === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"),\n OPENCODE_MODELS_URL: process.env[\"OPENCODE_MODELS_URL\"],\n OPENCODE_MODELS_PATH: process.env[\"OPENCODE_MODELS_PATH\"],\n OPENCODE_DB: process.env[\"OPENCODE_DB\"],\n\n OPENCODE_WORKSPACE_ID: process.env[\"OPENCODE_WORKSPACE_ID\"],\n OPENCODE_EXPERIMENTAL_WORKSPACES: enabledByExperimental(\"OPENCODE_EXPERIMENTAL_WORKSPACES\"),\n\n // Evaluated at access time (not module load) because tests, the CLI, and\n // external tooling set these env vars at runtime.\n get OPENCODE_DISABLE_PROJECT_CONFIG() {\n return truthy(\"OPENCODE_DISABLE_PROJECT_CONFIG\")\n },\n get OPENCODE_EXPERIMENTAL_REFERENCES() {\n return enabledByExperimental(\"OPENCODE_EXPERIMENTAL_REFERENCES\")\n },\n get OPENCODE_TUI_CONFIG() {\n return process.env[\"OPENCODE_TUI_CONFIG\"]\n },\n get OPENCODE_CONFIG_DIR() {\n return process.env[\"OPENCODE_CONFIG_DIR\"]\n },\n get OPENCODE_PURE() {\n return truthy(\"OPENCODE_PURE\")\n },\n get OPENCODE_PERMISSION() {\n return process.env[\"OPENCODE_PERMISSION\"]\n },\n get OPENCODE_PLUGIN_META_FILE() {\n return process.env[\"OPENCODE_PLUGIN_META_FILE\"]\n },\n get OPENCODE_CLIENT() {\n return process.env[\"OPENCODE_CLIENT\"] ?? \"cli\"\n },\n}\n",
"import path from \"path\"\nimport fs from \"fs/promises\"\nimport { xdgData, xdgCache, xdgConfig, xdgState } from \"xdg-basedir\"\nimport os from \"os\"\nimport { Context, Effect, Layer } from \"effect\"\nimport { Flock } from \"./util/flock\"\nimport { Flag } from \"./flag/flag\"\nimport { makeGlobalNode } from \"./effect/app-node\"\n\nconst app = \"opencode\"\nconst data = path.join(xdgData!, app)\nconst cache = path.join(xdgCache!, app)\nconst config = path.join(xdgConfig!, app)\nconst state = path.join(xdgState!, app)\nconst tmp = path.join(os.tmpdir(), app)\n\nconst paths = {\n get home() {\n return process.env.OPENCODE_TEST_HOME ?? os.homedir()\n },\n data,\n bin: path.join(cache, \"bin\"),\n log: path.join(data, \"log\"),\n repos: path.join(data, \"repos\"),\n cache,\n config,\n state,\n tmp,\n}\n\nexport const Path = paths\n\nFlock.setGlobal({ state })\n\nawait Promise.all([\n fs.mkdir(Path.data, { recursive: true }),\n fs.mkdir(Path.config, { recursive: true }),\n fs.mkdir(Path.state, { recursive: true }),\n fs.mkdir(Path.tmp, { recursive: true }),\n fs.mkdir(Path.log, { recursive: true }),\n fs.mkdir(Path.bin, { recursive: true }),\n fs.mkdir(Path.repos, { recursive: true }),\n])\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/Global\") {}\n\nexport interface Interface {\n readonly home: string\n readonly data: string\n readonly cache: string\n readonly config: string\n readonly state: string\n readonly tmp: string\n readonly bin: string\n readonly log: string\n readonly repos: string\n}\n\nexport function make(input: Partial<Interface> = {}): Interface {\n return {\n home: Path.home,\n data: Path.data,\n cache: Path.cache,\n config: Flag.OPENCODE_CONFIG_DIR ?? Path.config,\n state: Path.state,\n tmp: Path.tmp,\n bin: Path.bin,\n log: Path.log,\n repos: Path.repos,\n ...input,\n }\n}\n\nconst layer = Layer.effect(\n Service,\n Effect.sync(() => Service.of(make())),\n)\n\nexport const node = makeGlobalNode({ service: Service, layer: layer, deps: [] })\n\nexport const layerWith = (input: Partial<Interface>) =>\n Layer.effect(\n Service,\n Effect.sync(() => Service.of(make(input))),\n )\n\nexport * as Global from \"./global\"\n",
"import os from 'os';\nimport path from 'path';\n\nconst homeDirectory = os.homedir();\nconst {env} = process;\n\nexport const xdgData = env.XDG_DATA_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined);\n\nexport const xdgConfig = env.XDG_CONFIG_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.config') : undefined);\n\nexport const xdgState = env.XDG_STATE_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'state') : undefined);\n\nexport const xdgCache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined);\n\nexport const xdgRuntime = env.XDG_RUNTIME_DIR || undefined;\n\nexport const xdgDataDirectories = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':');\n\nif (xdgData) {\n\txdgDataDirectories.unshift(xdgData);\n}\n\nexport const xdgConfigDirectories = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':');\n\nif (xdgConfig) {\n\txdgConfigDirectories.unshift(xdgConfig);\n}\n",
"import path from \"path\"\nimport os from \"os\"\nimport { randomBytes, randomUUID } from \"crypto\"\nimport { mkdir, readFile, rm, stat, utimes, writeFile } from \"fs/promises\"\nimport { Hash } from \"./hash\"\nimport { Effect } from \"effect\"\n\nexport type FlockGlobal = {\n state: string\n}\n\nexport namespace Flock {\n let global: FlockGlobal | undefined\n\n export function setGlobal(g: FlockGlobal) {\n global = g\n }\n\n const root = () => {\n if (!global) throw new Error(\"Flock global not set\")\n return path.join(global.state, \"locks\")\n }\n\n // Defaults for callers that do not provide timing options.\n const defaultOpts = {\n staleMs: 60_000,\n timeoutMs: 5 * 60_000,\n baseDelayMs: 100,\n maxDelayMs: 2_000,\n }\n\n export interface WaitEvent {\n key: string\n attempt: number\n delay: number\n waited: number\n }\n\n export type Wait = (input: WaitEvent) => void | Promise<void>\n\n export interface Options {\n dir?: string\n signal?: AbortSignal\n staleMs?: number\n timeoutMs?: number\n baseDelayMs?: number\n maxDelayMs?: number\n onWait?: Wait\n }\n\n type Opts = {\n staleMs: number\n timeoutMs: number\n baseDelayMs: number\n maxDelayMs: number\n }\n\n type Owned = {\n acquired: true\n startHeartbeat: (intervalMs?: number) => void\n release: () => Promise<void>\n }\n\n export interface Lease {\n release: () => Promise<void>\n [Symbol.asyncDispose]: () => Promise<void>\n }\n\n function code(err: unknown) {\n if (typeof err !== \"object\" || err === null || !(\"code\" in err)) return\n const value = err.code\n if (typeof value !== \"string\") return\n return value\n }\n\n function sleep(ms: number, signal?: AbortSignal) {\n return new Promise<void>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason ?? new Error(\"Aborted\"))\n return\n }\n\n let timer: NodeJS.Timeout | undefined\n\n const done = () => {\n signal?.removeEventListener(\"abort\", abort)\n resolve()\n }\n\n const abort = () => {\n if (timer) {\n clearTimeout(timer)\n }\n signal?.removeEventListener(\"abort\", abort)\n reject(signal?.reason ?? new Error(\"Aborted\"))\n }\n\n signal?.addEventListener(\"abort\", abort, { once: true })\n timer = setTimeout(done, ms)\n })\n }\n\n function jitter(ms: number) {\n const j = Math.floor(ms * 0.3)\n const d = Math.floor(Math.random() * (2 * j + 1)) - j\n return Math.max(0, ms + d)\n }\n\n function mono() {\n return performance.now()\n }\n\n function wall() {\n return performance.timeOrigin + mono()\n }\n\n async function stats(file: string) {\n try {\n return await stat(file)\n } catch (err) {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") return\n throw err\n }\n }\n\n async function stale(lockDir: string, heartbeatPath: string, metaPath: string, staleMs: number) {\n // Stale detection allows automatic recovery after crashed owners.\n const now = wall()\n const heartbeat = await stats(heartbeatPath)\n if (heartbeat) {\n return now - heartbeat.mtimeMs > staleMs\n }\n\n const meta = await stats(metaPath)\n if (meta) {\n return now - meta.mtimeMs > staleMs\n }\n\n const dir = await stats(lockDir)\n if (!dir) {\n return false\n }\n\n return now - dir.mtimeMs > staleMs\n }\n\n async function tryAcquireLockDir(lockDir: string, opts: Opts): Promise<Owned | { acquired: false }> {\n const token = randomUUID?.() ?? randomBytes(16).toString(\"hex\")\n const metaPath = path.join(lockDir, \"meta.json\")\n const heartbeatPath = path.join(lockDir, \"heartbeat\")\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (err) {\n if (code(err) !== \"EEXIST\") {\n throw err\n }\n\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n const breakerPath = lockDir + \".breaker\"\n try {\n await mkdir(breakerPath, { mode: 0o700 })\n } catch (claimErr) {\n const errCode = code(claimErr)\n if (errCode === \"EEXIST\") {\n const breaker = await stats(breakerPath)\n if (breaker && wall() - breaker.mtimeMs > opts.staleMs) {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n return { acquired: false }\n }\n\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n return { acquired: false }\n }\n\n throw claimErr\n }\n\n try {\n // Breaker ownership ensures only one contender performs stale cleanup.\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n await rm(lockDir, { recursive: true, force: true })\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (retryErr) {\n const errCode = code(retryErr)\n if (errCode === \"EEXIST\" || errCode === \"ENOTEMPTY\") {\n return { acquired: false }\n }\n throw retryErr\n }\n } finally {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n }\n\n const meta = {\n token,\n pid: process.pid,\n hostname: os.hostname(),\n createdAt: new Date().toISOString(),\n }\n\n await writeFile(heartbeatPath, \"\", { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but heartbeat already existed (possible compromise).\")\n })\n\n await writeFile(metaPath, JSON.stringify(meta, null, 2), { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but meta.json already existed (possible compromise).\")\n })\n\n let timer: NodeJS.Timeout | undefined\n\n const startHeartbeat = (intervalMs = Math.max(100, Math.floor(opts.staleMs / 3))) => {\n if (timer) return\n // Heartbeat prevents long critical sections from being evicted as stale.\n timer = setInterval(() => {\n const t = new Date()\n void utimes(heartbeatPath, t, t).catch(() => undefined)\n }, intervalMs)\n timer.unref?.()\n }\n\n const release = async () => {\n if (timer) {\n clearInterval(timer)\n timer = undefined\n }\n\n const current = await readFile(metaPath, \"utf8\")\n .then((raw) => {\n const parsed = JSON.parse(raw)\n if (!parsed || typeof parsed !== \"object\") return {}\n return {\n token: \"token\" in parsed && typeof parsed.token === \"string\" ? parsed.token : undefined,\n }\n })\n .catch((err) => {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n throw new Error(\"Refusing to release: lock is compromised (metadata missing).\")\n }\n if (err instanceof SyntaxError) {\n throw new Error(\"Refusing to release: lock is compromised (metadata invalid).\")\n }\n throw err\n })\n // Token check prevents deleting a lock that was re-acquired by another process.\n if (current.token !== token) {\n throw new Error(\"Refusing to release: lock token mismatch (not the owner).\")\n }\n\n await rm(lockDir, { recursive: true, force: true })\n }\n\n return {\n acquired: true,\n startHeartbeat,\n release,\n }\n }\n\n async function acquireLockDir(\n lockDir: string,\n input: { key: string; onWait?: Wait; signal?: AbortSignal },\n opts: Opts,\n ) {\n const stop = mono() + opts.timeoutMs\n let attempt = 0\n let waited = 0\n let delay = opts.baseDelayMs\n\n while (true) {\n input.signal?.throwIfAborted()\n\n const res = await tryAcquireLockDir(lockDir, opts)\n if (res.acquired) {\n return res\n }\n\n if (mono() > stop) {\n throw new Error(`Timed out waiting for lock: ${input.key}`)\n }\n\n attempt += 1\n const ms = jitter(delay)\n await input.onWait?.({\n key: input.key,\n attempt,\n delay: ms,\n waited,\n })\n await sleep(ms, input.signal)\n waited += ms\n delay = Math.min(opts.maxDelayMs, Math.floor(delay * 1.7))\n }\n }\n\n export async function acquire(key: string, input: Options = {}): Promise<Lease> {\n input.signal?.throwIfAborted()\n const cfg: Opts = {\n staleMs: input.staleMs ?? defaultOpts.staleMs,\n timeoutMs: input.timeoutMs ?? defaultOpts.timeoutMs,\n baseDelayMs: input.baseDelayMs ?? defaultOpts.baseDelayMs,\n maxDelayMs: input.maxDelayMs ?? defaultOpts.maxDelayMs,\n }\n const dir = input.dir ?? root()\n\n await mkdir(dir, { recursive: true })\n const lockfile = path.join(dir, Hash.fast(key) + \".lock\")\n const lock = await acquireLockDir(\n lockfile,\n {\n key,\n onWait: input.onWait,\n signal: input.signal,\n },\n cfg,\n )\n lock.startHeartbeat()\n\n const release = () => lock.release()\n return {\n release,\n [Symbol.asyncDispose]() {\n return release()\n },\n }\n }\n\n export async function withLock<T>(key: string, fn: () => Promise<T>, input: Options = {}) {\n await using _ = await acquire(key, input)\n input.signal?.throwIfAborted()\n return await fn()\n }\n\n export const effect = Effect.fn(\"Flock.effect\")(function* (key: string, input: Options = {}) {\n return yield* Effect.acquireRelease(\n Effect.promise((signal) => Flock.acquire(key, { ...input, signal })).pipe(\n Effect.withSpan(\"Flock.acquire\", {\n attributes: { key },\n }),\n ),\n (lock) => Effect.promise(() => lock.release()).pipe(Effect.withSpan(\"Flock.release\")),\n ).pipe(Effect.asVoid)\n })\n}\n",
"import { createHash } from \"crypto\"\n\nexport namespace Hash {\n export function fast(input: string | Buffer): string {\n return createHash(\"sha1\").update(input).digest(\"hex\")\n }\n\n export function sha256(input: string | Buffer): string {\n return createHash(\"sha256\").update(input).digest(\"hex\")\n }\n}\n"
],
"mappings": "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",
"debugId": "8CC8DAA309E7476064756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/runtime.queue.ts"],
"sourcesContent": [
"// Serial prompt queue for direct interactive mode.\n//\n// Prompts arrive from the footer (user types and hits enter) and queue up\n// here. The queue drains one turn at a time; ordinary prompts waiting behind\n// an active ordinary turn are exposed for edit/removal until they begin.\n//\n// The queue also handles /exit, /quit, and /new commands, empty-prompt rejection,\n// and tracks per-turn wall-clock duration for the footer status line.\n//\n// Resolves when the footer closes and all in-flight work finishes.\nimport { ascending } from \"@opencode-ai/schema/identifier\"\nimport { SessionMessage } from \"@opencode-ai/schema/session-message\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport { isExitCommand, isNewCommand } from \"./prompt.shared\"\nimport type { FooterApi, FooterEvent, FooterQueuedPrompt, RunPrompt } from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype Deferred<T = void> = {\n promise: Promise<T>\n resolve: (value: T | PromiseLike<T>) => void\n reject: (error?: unknown) => void\n}\n\nexport type QueueInput = {\n footer: FooterApi\n initialInput?: string\n trace?: Trace\n onSend?: (prompt: RunPrompt) => void\n onNewSession?: () => void | Promise<void>\n run: (prompt: RunPrompt, signal: AbortSignal) => Promise<void>\n}\n\ntype State = {\n queue: RunPrompt[]\n queued: FooterQueuedPrompt[]\n active?: RunPrompt\n ctrl?: AbortController\n closed: boolean\n}\n\nfunction defer<T = void>(): Deferred<T> {\n let resolve!: (value: T | PromiseLike<T>) => void\n let reject!: (error?: unknown) => void\n const promise = new Promise<T>((next, fail) => {\n resolve = next\n reject = fail\n })\n\n return { promise, resolve, reject }\n}\n\n// Runs the prompt queue until the footer closes.\n//\n// Subscribes to footer prompt events and drains operations through input.run().\n// Ordinary prompts submitted during an ordinary active turn remain local and\n// are exposed by the footer for edit/removal until their turn begins.\nexport async function runPromptQueue(input: QueueInput): Promise<void> {\n const stop = defer<{ type: \"closed\" }>()\n const done = defer()\n const state: State = {\n queue: [],\n queued: [],\n closed: input.footer.isClosed,\n }\n let draining: Promise<void> | undefined\n\n const emit = (next: FooterEvent, row: Record<string, unknown>) => {\n input.trace?.write(\"ui.patch\", row)\n input.footer.event(next)\n }\n\n const syncQueue = () => {\n const queue = state.queue.length\n emit({ type: \"queue\", queue }, { queue })\n emit(\n {\n type: \"queued.prompts\",\n prompts: [...state.queued],\n },\n { queued: state.queued.length },\n )\n }\n\n const removeLocalQueued = (queued: FooterQueuedPrompt) => {\n if (!state.queued.includes(queued)) return\n state.queued = state.queued.filter((item) => item !== queued)\n syncQueue()\n }\n\n const finish = () => {\n if (!state.closed || draining) {\n return\n }\n\n done.resolve()\n }\n\n const close = () => {\n if (state.closed) {\n return\n }\n\n state.closed = true\n state.queue.length = 0\n state.queued.length = 0\n state.ctrl?.abort()\n stop.resolve({ type: \"closed\" })\n finish()\n }\n\n const drain = () => {\n if (draining || state.closed || state.queue.length === 0) {\n return\n }\n\n draining = (async () => {\n try {\n while (!state.closed && state.queue.length > 0) {\n const prompt = state.queue.shift()\n if (!prompt) {\n continue\n }\n\n const queued = state.queued.find((item) => item.prompt === prompt)\n if (queued) removeLocalQueued(queued)\n\n if (prompt.mode !== \"shell\" && isNewCommand(prompt.text)) {\n syncQueue()\n if (!input.onNewSession) {\n emit(\n {\n type: \"stream.patch\",\n patch: {\n status: \"new sessions unavailable\",\n },\n },\n {\n status: \"new sessions unavailable\",\n },\n )\n continue\n }\n\n emit(\n {\n type: \"stream.patch\",\n patch: {\n phase: \"running\",\n status: \"starting new session\",\n queue: state.queue.length,\n },\n },\n {\n phase: \"running\",\n status: \"starting new session\",\n queue: state.queue.length,\n },\n )\n await input.onNewSession()\n continue\n }\n\n const sent =\n prompt.mode === \"shell\"\n ? prompt\n : {\n ...prompt,\n messageID: prompt.messageID ?? queued?.messageID ?? SessionMessage.ID.create(),\n }\n state.active = sent\n\n emit(\n {\n type: \"turn.send\",\n queue: state.queue.length,\n },\n {\n phase: \"running\",\n status: \"sending prompt\",\n queue: state.queue.length,\n },\n )\n const start = Date.now()\n const ctrl = new AbortController()\n state.ctrl = ctrl\n\n try {\n await input.footer.idle()\n if (state.closed) {\n break\n }\n\n if (sent.mode !== \"shell\") {\n const commit = {\n kind: \"user\",\n text: sent.text,\n phase: \"start\",\n source: \"system\",\n messageID: sent.messageID,\n } as const\n input.trace?.write(\"ui.commit\", commit)\n input.footer.append(commit)\n }\n input.onSend?.(sent)\n\n if (state.closed) {\n break\n }\n\n const task = input.run(sent, ctrl.signal).then(\n () => ({ type: \"done\" as const }),\n (error) => ({ type: \"error\" as const, error }),\n )\n\n const next = await Promise.race([task, stop.promise])\n if (next.type === \"closed\") {\n ctrl.abort()\n break\n }\n\n if (next.type === \"error\") {\n throw next.error\n }\n } finally {\n if (state.ctrl === ctrl) {\n state.ctrl = undefined\n }\n\n if (sent.mode !== \"shell\") {\n const duration = Locale.duration(Math.max(0, Date.now() - start))\n emit(\n {\n type: \"turn.duration\",\n duration,\n },\n {\n duration,\n },\n )\n }\n state.active = undefined\n }\n }\n } catch (error) {\n done.reject(error)\n return\n } finally {\n draining = undefined\n emit(\n {\n type: \"turn.idle\",\n queue: state.queue.length,\n },\n {\n phase: \"idle\",\n status: \"\",\n queue: state.queue.length,\n },\n )\n }\n\n finish()\n })()\n }\n\n const submit = (prompt: RunPrompt) => {\n if (!prompt.text.trim() || state.closed) {\n return\n }\n\n if (prompt.mode !== \"shell\" && isExitCommand(prompt.text)) {\n input.footer.close()\n return\n }\n\n const active = state.active\n if (\n active &&\n active.mode !== \"shell\" &&\n !active.command &&\n prompt.mode !== \"shell\" &&\n !prompt.command &&\n !isNewCommand(prompt.text)\n ) {\n const queued: FooterQueuedPrompt = {\n messageID: SessionMessage.ID.create(),\n partID: \"prt_\" + ascending(),\n prompt,\n }\n state.queued = [...state.queued, queued]\n state.queue.push(prompt)\n syncQueue()\n return\n }\n\n state.queue.push(prompt)\n syncQueue()\n if (prompt.mode !== \"shell\" && isNewCommand(prompt.text)) {\n drain()\n return\n }\n\n emit(\n {\n type: \"first\",\n first: false,\n },\n {\n first: false,\n },\n )\n drain()\n }\n\n const offPrompt = input.footer.onPrompt((prompt) => {\n submit(prompt)\n })\n const offClose = input.footer.onClose(() => {\n close()\n })\n const offRemoveQueued = input.footer.onQueuedRemove((messageID) => {\n const queued = state.queued.find((item) => item.messageID === messageID)\n if (!queued) return false\n state.queue = state.queue.filter((prompt) => prompt !== queued.prompt)\n removeLocalQueued(queued)\n return true\n })\n\n try {\n if (state.closed) {\n return\n }\n\n submit({\n text: input.initialInput ?? \"\",\n parts: [],\n })\n finish()\n await done.promise\n } finally {\n offPrompt()\n offClose()\n offRemoveQueued()\n close()\n await draining?.catch(() => {})\n }\n}\n"
],
"mappings": "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",
"debugId": "0B7311B9B985770264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260604172448_event_sourced_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260604172448_event_sourced_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`event_aggregate_seq_idx\\`;`)\n yield* tx.run(`CREATE UNIQUE INDEX \\`event_aggregate_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`seq\\`);`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_seq_idx\\`;`)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_message_session_seq_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`seq\\`);`,\n )\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`prompt\\` text NOT NULL,\n \\`delivery\\` text NOT NULL,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,6CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,6CAAiD,EAC/D,MAAO,EAAG,IAAI,0BAA4B,EAC1C,MAAO,EAAG,IAAI,iDAAmD,EACjE,MAAO,EAAG,IAAI,kFAA0F,EACxG,MAAO,EAAG,IAAI,yDAA2D,EACzE,MAAO,EAAG,IACR,kGACF,EACA,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,0dAWb,EACD,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IACR,2IACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACD,EAEL",
"debugId": "D89A3E75524712DD64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/stream.ts", "src/mini/stream-v2.subagent.ts"],
"sourcesContent": [
"// Thin bridge between transport output and the footer API.\n//\n// Transports produce StreamCommit[] and an optional FooterOutput (patch +\n// view + subagent state). This module forwards them to footer.append() and\n// footer.event() respectively, adding trace writes along the way. It also\n// defaults status updates to phase \"running\" if the caller didn't set a\n// phase -- a convenience so transport code doesn't have to repeat that.\nimport type { FooterApi, FooterOutput, FooterPatch, FooterSubagentState, StreamCommit } from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype OutputInput = {\n footer: FooterApi\n trace?: Trace\n}\n\ntype StreamOutput = {\n commits: StreamCommit[]\n footer?: FooterOutput\n}\n\n// Default to \"running\" phase when a status string arrives without an explicit phase.\nfunction patch(next: FooterPatch): FooterPatch {\n if (typeof next.status === \"string\" && next.phase === undefined) {\n return {\n phase: \"running\",\n ...next,\n }\n }\n\n return next\n}\n\nfunction summarize(value: unknown): unknown {\n if (typeof value === \"string\") {\n if (value.length <= 160) {\n return value\n }\n\n return {\n type: \"string\",\n length: value.length,\n preview: `${value.slice(0, 160)}...`,\n }\n }\n\n if (Array.isArray(value)) {\n return {\n type: \"array\",\n length: value.length,\n }\n }\n\n if (!value || typeof value !== \"object\") {\n return value\n }\n\n return {\n type: \"object\",\n keys: Object.keys(value),\n }\n}\n\nfunction traceCommit(commit: StreamCommit) {\n return {\n ...commit,\n text: summarize(commit.text),\n textLength: commit.text.length,\n part: commit.part\n ? {\n id: commit.part.id,\n sessionID: commit.part.sessionID,\n messageID: commit.part.messageID,\n callID: commit.part.callID,\n tool: commit.part.tool,\n state: {\n status: commit.part.state.status,\n title: \"title\" in commit.part.state ? summarize(commit.part.state.title) : undefined,\n error: \"error\" in commit.part.state ? summarize(commit.part.state.error) : undefined,\n time: \"time\" in commit.part.state ? summarize(commit.part.state.time) : undefined,\n input: summarize(commit.part.state.input),\n metadata: \"metadata\" in commit.part.state ? summarize(commit.part.state.metadata) : undefined,\n },\n }\n : undefined,\n }\n}\n\nexport function traceSubagentState(state: FooterSubagentState) {\n return {\n tabs: state.tabs,\n details: Object.fromEntries(\n Object.entries(state.details).map(([sessionID, detail]) => [\n sessionID,\n {\n sessionID,\n commits: detail.commits.map(traceCommit),\n },\n ]),\n ),\n permissions: state.permissions.map((item) => ({\n id: item.id,\n sessionID: item.sessionID,\n action: item.action,\n resources: item.resources,\n source: item.source,\n metadata: item.metadata\n ? {\n keys: Object.keys(item.metadata),\n input: summarize(item.metadata.input),\n }\n : undefined,\n })),\n questions: state.questions.map((item) => ({\n id: item.id,\n sessionID: item.sessionID,\n questions: item.questions.map((question) => ({\n header: question.header,\n question: question.question,\n options: question.options.length,\n multiple: question.multiple,\n })),\n })),\n }\n}\n\nexport function traceFooterOutput(footer?: FooterOutput) {\n if (!footer?.subagent) {\n return footer\n }\n\n return {\n ...footer,\n subagent: traceSubagentState(footer.subagent),\n }\n}\n\n// Forwards transport output to the footer: commits go to scrollback, patches update the status bar.\nexport function writeSessionOutput(input: OutputInput, out: StreamOutput): void {\n for (const commit of out.commits) {\n input.trace?.write(\"ui.commit\", commit)\n input.footer.append(commit)\n }\n\n if (out.footer?.patch) {\n const next = patch(out.footer.patch)\n input.trace?.write(\"ui.patch\", next)\n input.footer.event({\n type: \"stream.patch\",\n patch: next,\n })\n }\n\n if (out.footer?.subagent) {\n input.trace?.write(\"ui.subagent\", traceSubagentState(out.footer.subagent))\n input.footer.event({\n type: \"stream.subagent\",\n state: out.footer.subagent,\n })\n }\n\n if (!out.footer?.view) {\n return\n }\n\n input.trace?.write(\"ui.patch\", {\n view: out.footer.view,\n })\n input.footer.event({\n type: \"stream.view\",\n view: out.footer.view,\n })\n}\n",
"// Current-native subagent (child Session) tracking for the mini transport.\n//\n// Discovers child Sessions of the active parent from four current sources:\n// 1. projected subagent tool output (`structured.sessionID`) during hydration\n// 2. the current session list filtered by `parentID` during hydration\n// 3. the process-local active-session map during hydration\n// 4. live events from unknown sessions whose `parentID` matches the parent\n//\n// Tracks one footer tab per child and a detail transcript for the selected\n// child, reduced from the same current live event stream the parent uses.\n// Detail transcripts rebuild from projected messages on discovery, selection,\n// and reconnect, then continue from live deltas using the same\n// projected-prefix dedup the parent transport uses.\n//\n// Per-child interruption uses `v2.session.interrupt(childID)`. Per-child\n// backgrounding is intentionally absent: subagent jobs block the parent\n// session, so only whole-session `v2.session.background(parentID)` exists.\nimport type {\n EventSubscribeOutput,\n OpenCodeClient,\n SessionMessageAssistantTool,\n SessionMessageInfo,\n} from \"@opencode-ai/client/promise\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport type { FooterSubagentDetail, FooterSubagentState, FooterSubagentTab, MiniToolPart, StreamCommit } from \"./types\"\n\nconst CHILD_MESSAGE_LIMIT = 80\nconst CHILD_FRAME_LIMIT = 80\nconst CHILD_EVENT_BUFFER_LIMIT = 64\nconst FAMILY_LIST_LIMIT = 100\nconst FALLBACK_LABEL = \"Subagent\"\n\ntype V2Event = EventSubscribeOutput\n\nexport function outputText(content: ReadonlyArray<{ type: string; text?: string }>) {\n return content.flatMap((item) => (item.type === \"text\" && item.text ? [item.text] : [])).join(\"\\n\")\n}\n\nexport function miniTool(input: {\n sessionID: string\n messageID: string\n tool: SessionMessageAssistantTool\n}): MiniToolPart {\n const tool = input.tool\n const providerCall =\n tool.executed === undefined && tool.providerState === undefined\n ? undefined\n : { executed: tool.executed, state: tool.providerState }\n const providerResult =\n tool.executed === undefined && tool.providerResultState === undefined\n ? undefined\n : { executed: tool.executed, state: tool.providerResultState }\n const base = {\n id: `prt_${tool.id}`,\n sessionID: input.sessionID,\n messageID: input.messageID,\n type: \"tool\" as const,\n callID: tool.id,\n tool: tool.name,\n }\n if (tool.state.status === \"streaming\") {\n return {\n ...base,\n state: { status: \"pending\", input: {}, raw: tool.state.input },\n }\n }\n if (tool.state.status === \"running\") {\n return {\n ...base,\n state: {\n status: \"running\",\n input: tool.state.input,\n title: tool.name,\n metadata: { structured: tool.state.structured, content: tool.state.content, providerCall },\n time: { start: tool.time.ran ?? tool.time.created },\n },\n }\n }\n if (tool.state.status === \"completed\") {\n return {\n ...base,\n state: {\n status: \"completed\",\n input: tool.state.input,\n output: outputText(tool.state.content),\n title: tool.name,\n metadata: {\n structured: tool.state.structured,\n content: tool.state.content,\n result: tool.state.result,\n providerCall,\n providerResult,\n },\n time: { start: tool.time.ran ?? tool.time.created, end: tool.time.completed ?? tool.time.created },\n },\n }\n }\n return {\n ...base,\n state: {\n status: \"error\",\n input: tool.state.input,\n error: tool.state.error.message,\n metadata: {\n structured: tool.state.structured,\n content: tool.state.content,\n result: tool.state.result,\n providerCall,\n providerResult,\n },\n time: { start: tool.time.ran ?? tool.time.created, end: tool.time.completed ?? tool.time.created },\n },\n }\n}\n\nexport function toolCommit(part: MiniToolPart, phase: \"start\" | \"progress\" | \"final\"): StreamCommit {\n const status = part.state.status\n const text =\n status === \"running\"\n ? part.tool === \"task\"\n ? \"running task\"\n : `running ${part.tool}`\n : status === \"completed\"\n ? part.state.output\n : status === \"error\"\n ? part.state.error\n : \"\"\n return {\n kind: \"tool\",\n source: \"tool\",\n text,\n phase,\n messageID: part.messageID,\n partID: part.id,\n tool: part.tool,\n part,\n toolState: status === \"error\" ? \"error\" : status === \"completed\" ? \"completed\" : \"running\",\n toolError: status === \"error\" ? part.state.error : undefined,\n }\n}\n\ntype Frame = {\n key: string\n commit: StreamCommit\n}\n\ntype ToolTrack = {\n name: string\n input: Record<string, unknown>\n started: number\n providerState?: Record<string, unknown>\n}\n\ntype ChildState = {\n sessionID: string\n label: string\n description: string\n status: FooterSubagentTab[\"status\"]\n background: boolean\n title?: string\n callIDs: Set<string>\n lastUpdatedAt: number\n frames: Frame[]\n text: Map<string, string>\n projectedText: Map<string, string>\n reasoning: Map<string, string>\n projectedReasoning: Map<string, string>\n tools: Map<string, ToolTrack>\n finishedTools: Set<string>\n messageIDs: Set<string>\n prompts: Map<string, string>\n hydrated: boolean\n}\n\nexport type SubagentTrackerInput = {\n sdk: OpenCodeClient\n sessionID: string\n thinking: boolean\n emit: () => void\n}\n\nexport type SubagentTracker = {\n main(event: V2Event): void\n foreign(sessionID: string, event: V2Event): void\n hydrate(next: { messages: SessionMessageInfo[]; active: Record<string, unknown> }): Promise<void>\n select(sessionID: string | undefined): void\n snapshot(): FooterSubagentState\n}\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) return value as Record<string, unknown>\n return undefined\n}\n\nfunction text(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined\n const next = value.trim()\n return next || undefined\n}\n\nfunction childSessionID(structured: Record<string, unknown> | undefined) {\n const sessionID = text(structured?.sessionID)\n if (!sessionID || !sessionID.startsWith(\"ses\")) return undefined\n const status = structured?.status\n if (status !== \"running\" && status !== \"completed\") return undefined\n return { sessionID, running: status === \"running\" }\n}\n\nfunction tab(child: ChildState): FooterSubagentTab {\n return {\n sessionID: child.sessionID,\n partID: `subagent:${child.sessionID}`,\n callID: `subagent:${child.sessionID}`,\n label: child.label,\n description: child.description || child.title || \"\",\n status: child.status,\n background: child.background ? true : undefined,\n title: child.title,\n toolCalls: child.callIDs.size > 0 ? child.callIDs.size : undefined,\n lastUpdatedAt: child.lastUpdatedAt,\n }\n}\n\nexport function createSubagentTracker(input: SubagentTrackerInput): SubagentTracker {\n const children = new Map<string, ChildState>()\n // Live subagent tool calls in the parent, so tool.success structured output\n // can be joined with the call's input metadata.\n const pendingCalls = new Map<string, Record<string, unknown>>()\n // Foreign sessions already resolved through session.get. Non-children stay\n // cached so unrelated concurrent sessions are checked at most once.\n const checked = new Set<string>()\n // Foreign events buffered while a session.get discovery is in flight, so a\n // fast child (including its settled event) is not lost mid-discovery.\n const pendingEvents = new Map<string, V2Event[]>()\n const hydrationEvents = new Map<string, V2Event[]>()\n const hydrationOverflow = new Set<string>()\n const hydrations = new Map<string, Promise<void>>()\n let selected: string | undefined\n const fragmentKey = (messageID: string, partID: string) => `${messageID}\\u0000${partID}`\n\n const ensureChild = (sessionID: string): ChildState => {\n const existing = children.get(sessionID)\n const child: ChildState = existing ?? {\n sessionID,\n label: FALLBACK_LABEL,\n description: \"\",\n status: \"running\",\n background: false,\n callIDs: new Set(),\n lastUpdatedAt: Date.now(),\n frames: [],\n text: new Map(),\n projectedText: new Map(),\n reasoning: new Map(),\n projectedReasoning: new Map(),\n tools: new Map(),\n finishedTools: new Set(),\n messageIDs: new Set(),\n prompts: new Map(),\n hydrated: false,\n }\n if (!existing) children.set(sessionID, child)\n // Adopting a child while its session.get discovery is still in flight:\n // drain the buffered events now. They arrived before whatever the caller\n // applies next, so replaying them first preserves bus order, and the\n // resolved discovery can no longer replay stale events (e.g. step.started)\n // after a terminal settled event was applied directly.\n const buffered = pendingEvents.get(sessionID)\n if (buffered) {\n pendingEvents.delete(sessionID)\n for (const event of buffered) reduce(child, event)\n }\n return child\n }\n\n const touch = (child: ChildState, timestamp?: number) => {\n child.lastUpdatedAt = Math.max(child.lastUpdatedAt, timestamp ?? Date.now())\n }\n\n const notifyDetail = (child: ChildState) => {\n if (child.sessionID === selected) input.emit()\n }\n\n const setFrame = (child: ChildState, key: string, commit: StreamCommit) => {\n const index = child.frames.findIndex((item) => item.key === key)\n if (index === -1) {\n child.frames.push({ key, commit })\n if (child.frames.length > CHILD_FRAME_LIMIT) child.frames.splice(0, child.frames.length - CHILD_FRAME_LIMIT)\n return\n }\n child.frames[index] = { key, commit }\n }\n\n const applyMeta = (child: ChildState, meta: Record<string, unknown> | undefined) => {\n if (!meta) return\n const agent = text(meta.agent)\n if (agent) child.label = Locale.titlecase(agent)\n const description = text(meta.description)\n if (description) child.description = description\n if (meta.background === true) child.background = true\n }\n\n const userFrame = (child: ChildState, messageID: string, value: string) => {\n if (child.messageIDs.has(messageID)) return false\n child.messageIDs.add(messageID)\n setFrame(child, `user:${messageID}`, {\n kind: \"user\",\n source: \"system\",\n text: value,\n phase: \"start\",\n messageID,\n })\n return true\n }\n\n const childTool = (child: ChildState, item: SessionMessageAssistantTool, messageID: string) => {\n const part = miniTool({\n sessionID: child.sessionID,\n messageID,\n tool: item,\n })\n if (item.state.status === \"streaming\") return\n child.callIDs.add(item.id)\n if (item.state.status === \"running\") {\n setFrame(child, `tool:${item.id}`, toolCommit(part, \"start\"))\n return\n }\n child.finishedTools.add(item.id)\n child.tools.delete(item.id)\n setFrame(child, `tool:${item.id}`, toolCommit(part, \"final\"))\n }\n\n const rebuild = (child: ChildState, messages: SessionMessageInfo[]) => {\n child.frames = []\n child.text.clear()\n child.projectedText.clear()\n child.reasoning.clear()\n child.projectedReasoning.clear()\n child.finishedTools.clear()\n child.messageIDs.clear()\n child.callIDs.clear()\n for (const message of messages) {\n if (message.type === \"user\") {\n child.prompts.delete(message.id)\n userFrame(child, message.id, message.text)\n continue\n }\n if (message.type !== \"assistant\") continue\n child.messageIDs.add(message.id)\n let textOrdinal = 0\n let reasoningOrdinal = 0\n for (const item of message.content) {\n if (item.type === \"text\") {\n const id = `text:${textOrdinal++}`\n const key = fragmentKey(message.id, id)\n child.text.set(key, item.text)\n child.projectedText.set(key, item.text)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: item.text,\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n })\n continue\n }\n if (item.type === \"reasoning\") {\n const id = `reasoning:${reasoningOrdinal++}`\n const key = fragmentKey(message.id, id)\n child.reasoning.set(key, item.text)\n child.projectedReasoning.set(key, item.text)\n if (input.thinking)\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${item.text}`,\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n })\n continue\n }\n childTool(child, item, message.id)\n }\n if (message.error) {\n setFrame(child, `error:${message.id}`, {\n kind: \"error\",\n source: \"system\",\n text: message.error.message,\n phase: \"start\",\n messageID: message.id,\n })\n }\n }\n }\n\n const hydrateChild = (child: ChildState): Promise<void> => {\n const existing = hydrations.get(child.sessionID)\n if (existing) return existing\n const pendingPrompts = new Map(child.prompts)\n const pendingTools = new Map(child.tools)\n let retry = false\n const task = input.sdk.message\n .list({ sessionID: child.sessionID, limit: CHILD_MESSAGE_LIMIT, order: \"desc\" })\n .then((response) => {\n const buffered = hydrationEvents.get(child.sessionID) ?? []\n hydrationEvents.delete(child.sessionID)\n if (hydrationOverflow.delete(child.sessionID)) {\n child.hydrated = false\n retry = true\n notifyDetail(child)\n return\n }\n for (const [id, prompt] of pendingPrompts) {\n if (!child.prompts.has(id)) child.prompts.set(id, prompt)\n }\n rebuild(child, structuredClone(response.data).toReversed() as SessionMessageInfo[])\n for (const [id, tool] of pendingTools) {\n if (!child.finishedTools.has(id) && !child.tools.has(id)) child.tools.set(id, tool)\n }\n for (const event of buffered) reduce(child, event)\n child.hydrated = true\n notifyDetail(child)\n })\n .catch(() => {\n hydrationEvents.delete(child.sessionID)\n hydrationOverflow.delete(child.sessionID)\n })\n .finally(() => {\n hydrations.delete(child.sessionID)\n if (retry) queueMicrotask(() => void hydrateChild(child))\n })\n hydrations.set(child.sessionID, task)\n return task\n }\n\n const discover = (sessionID: string) => {\n if (checked.has(sessionID) || children.has(sessionID) || sessionID === input.sessionID) return\n checked.add(sessionID)\n if (!pendingEvents.has(sessionID)) pendingEvents.set(sessionID, [])\n void input.sdk.session\n .get({ sessionID })\n .then((session) => {\n const buffered = pendingEvents.get(sessionID) ?? []\n pendingEvents.delete(sessionID)\n if (session.parentID !== input.sessionID) return\n const child = ensureChild(sessionID)\n if (session.agent) child.label = Locale.titlecase(session.agent)\n child.title = session.title\n for (const event of buffered) reduce(child, event)\n touch(child)\n input.emit()\n void hydrateChild(child)\n })\n .catch(() => {\n // Allow a later event to retry discovery after transient failures.\n pendingEvents.delete(sessionID)\n checked.delete(sessionID)\n })\n }\n\n const reduce = (child: ChildState, event: V2Event) => {\n if (event.type === \"session.input.admitted\") {\n if (event.data.input.type === \"user\") child.prompts.set(event.data.inputID, event.data.input.data.text)\n return\n }\n if (event.type === \"session.input.promoted\") {\n const prompt = child.prompts.get(event.data.inputID)\n if (prompt === undefined) return\n child.prompts.delete(event.data.inputID)\n if (userFrame(child, event.data.inputID, prompt)) {\n touch(child, event.created)\n notifyDetail(child)\n }\n return\n }\n if (event.type === \"session.step.started\") {\n touch(child, event.created)\n if (child.label === FALLBACK_LABEL && event.data.agent) child.label = Locale.titlecase(event.data.agent)\n if (child.status !== \"running\") child.status = \"running\"\n input.emit()\n return\n }\n if (event.type === \"session.text.started\") {\n return\n }\n if (event.type === \"session.text.delta\") {\n const id = `text:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n const projected = child.projectedText.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n child.projectedText.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const next = (child.text.get(key) ?? \"\") + event.data.delta\n child.text.set(key, next)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: next,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.text.ended\") {\n const id = `text:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n child.text.set(key, event.data.text)\n child.projectedText.delete(key)\n setFrame(child, key, {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.text,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.reasoning.started\") {\n return\n }\n if (event.type === \"session.reasoning.delta\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n const projected = child.projectedReasoning.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n child.projectedReasoning.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const next = (child.reasoning.get(key) ?? \"\") + event.data.delta\n child.reasoning.set(key, next)\n if (!input.thinking) return\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${next}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n notifyDetail(child)\n return\n }\n if (event.type === \"session.reasoning.ended\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = fragmentKey(event.data.assistantMessageID, id)\n child.reasoning.set(key, event.data.text)\n child.projectedReasoning.delete(key)\n if (!input.thinking) return\n setFrame(child, key, {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: `Thinking: ${event.data.text}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n })\n notifyDetail(child)\n return\n }\n if (event.type === \"session.tool.input.started\") {\n if (child.finishedTools.has(event.data.callID)) return\n child.tools.set(event.data.callID, { name: event.data.name, input: {}, started: event.created })\n return\n }\n if (event.type === \"session.tool.called\") {\n if (child.finishedTools.has(event.data.callID)) return\n const current = child.tools.get(event.data.callID)\n child.tools.set(event.data.callID, {\n name: current?.name ?? \"tool\",\n input: event.data.input,\n started: current?.started ?? event.created,\n providerState: event.data.state,\n })\n childTool(\n child,\n structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: event.data.state,\n state: { status: \"running\", input: event.data.input, structured: {}, content: [] },\n time: { created: current?.started ?? event.created, ran: event.created },\n }) as SessionMessageAssistantTool,\n event.data.assistantMessageID,\n )\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.tool.success\" || event.type === \"session.tool.failed\") {\n if (child.finishedTools.has(event.data.callID)) return\n const current = child.tools.get(event.data.callID)\n const failed = event.type === \"session.tool.failed\"\n childTool(\n child,\n structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: current?.providerState,\n providerResultState: event.data.resultState,\n state: failed\n ? {\n status: \"error\",\n input: current?.input ?? {},\n structured: {},\n content: [],\n error: event.data.error,\n result: event.data.result,\n }\n : {\n status: \"completed\",\n input: current?.input ?? {},\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n },\n time: {\n created: current?.started ?? event.created,\n ran: current?.started,\n completed: event.created,\n },\n }) as SessionMessageAssistantTool,\n event.data.assistantMessageID,\n )\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.step.ended\") return\n if (event.type === \"session.step.failed\") {\n setFrame(child, `error:step:${event.data.assistantMessageID}`, {\n kind: \"error\",\n source: \"system\",\n text: event.data.error.message,\n phase: \"start\",\n messageID: event.data.assistantMessageID,\n })\n touch(child, event.created)\n notifyDetail(child)\n return\n }\n if (event.type === \"session.execution.started\") {\n child.status = \"running\"\n touch(child, event.created)\n input.emit()\n return\n }\n if (\n event.type === \"session.execution.succeeded\" ||\n event.type === \"session.execution.failed\" ||\n event.type === \"session.execution.interrupted\"\n ) {\n child.status =\n event.type === \"session.execution.succeeded\"\n ? \"completed\"\n : event.type === \"session.execution.interrupted\"\n ? \"cancelled\"\n : \"error\"\n touch(child, event.created)\n input.emit()\n }\n }\n\n const mainTool = (item: SessionMessageAssistantTool, active?: Record<string, unknown>) => {\n if (item.name !== \"subagent\" || item.state.status !== \"completed\") return\n const found = childSessionID(record(item.state.structured))\n if (!found) return\n const child = ensureChild(found.sessionID)\n applyMeta(child, record(item.state.input))\n if (found.running) child.background = true\n if (child.status === \"running\") {\n const running = found.running && (!active || found.sessionID in active)\n child.status = running ? \"running\" : \"completed\"\n }\n touch(child, item.time.completed ?? item.time.created)\n }\n\n return {\n main(event) {\n if (event.type === \"session.tool.input.started\") {\n if (event.data.name === \"subagent\") pendingCalls.set(event.data.callID, {})\n return\n }\n if (event.type === \"session.tool.called\") {\n if (pendingCalls.has(event.data.callID)) pendingCalls.set(event.data.callID, event.data.input)\n return\n }\n if (event.type === \"session.tool.failed\") {\n pendingCalls.delete(event.data.callID)\n return\n }\n if (event.type !== \"session.tool.success\") return\n const pending = pendingCalls.get(event.data.callID)\n pendingCalls.delete(event.data.callID)\n const found = childSessionID(record(event.data.structured))\n if (!found) return\n const child = ensureChild(found.sessionID)\n applyMeta(child, pending)\n if (found.running) {\n child.background = true\n child.status = \"running\"\n }\n if (!found.running && child.status === \"running\") child.status = \"completed\"\n touch(child, event.created)\n input.emit()\n if (!child.hydrated) void hydrateChild(child)\n },\n foreign(sessionID, event) {\n const child = children.get(sessionID)\n if (child) {\n if (hydrations.has(sessionID)) {\n const buffered = hydrationEvents.get(sessionID) ?? []\n if (buffered.length < CHILD_EVENT_BUFFER_LIMIT) buffered.push(event)\n else hydrationOverflow.add(sessionID)\n hydrationEvents.set(sessionID, buffered)\n }\n reduce(child, event)\n return\n }\n discover(sessionID)\n const buffered = pendingEvents.get(sessionID)\n if (buffered && buffered.length < CHILD_EVENT_BUFFER_LIMIT) buffered.push(event)\n },\n async hydrate(next) {\n for (const message of next.messages) {\n if (message.type !== \"assistant\") continue\n for (const item of message.content) {\n if (item.type === \"tool\") mainTool(item, next.active)\n }\n }\n // Family index: adopt children directly from the current session list so\n // historical subagents beyond the projected message window still get tabs.\n const family = await input.sdk.session\n .list({ parentID: input.sessionID, limit: FAMILY_LIST_LIMIT, order: \"desc\" })\n .then((response) => response.data)\n .catch(() => [])\n for (const session of family) {\n const child = ensureChild(session.id)\n if (session.agent && child.label === FALLBACK_LABEL) child.label = Locale.titlecase(session.agent)\n if (!child.title) child.title = session.title\n touch(child, session.time.updated)\n }\n for (const sessionID of Object.keys(next.active)) discover(sessionID)\n for (const child of children.values()) {\n // Reconnect can miss a child's settled event; the active map is the\n // authoritative live signal for still-running children.\n if (child.status === \"running\" && !(child.sessionID in next.active)) child.status = \"completed\"\n }\n const current = selected ? children.get(selected) : undefined\n if (current) await hydrateChild(current)\n if (children.size > 0) input.emit()\n },\n select(sessionID) {\n selected = sessionID\n const child = sessionID ? children.get(sessionID) : undefined\n if (child && !child.hydrated) void hydrateChild(child)\n input.emit()\n },\n snapshot() {\n const tabs = [...children.values()].map(tab).toSorted((a, b) => {\n const active = Number(b.status === \"running\") - Number(a.status === \"running\")\n if (active !== 0) return active\n return b.lastUpdatedAt - a.lastUpdatedAt\n })\n const child = selected ? children.get(selected) : undefined\n const details: Record<string, FooterSubagentDetail> = child\n ? { [child.sessionID]: { sessionID: child.sessionID, commits: child.frames.map((item) => item.commit) } }\n : {}\n return { tabs, details, permissions: [], questions: [] }\n },\n }\n}\n"
],
"mappings": ";oDAwBA,SAAS,CAAK,CAAC,EAAgC,CAC7C,GAAI,OAAO,EAAK,SAAW,UAAY,EAAK,QAAU,OACpD,MAAO,CACL,MAAO,aACJ,CACL,EAGF,OAAO,EAGT,SAAS,CAAS,CAAC,EAAyB,CAC1C,GAAI,OAAO,IAAU,SAAU,CAC7B,GAAI,EAAM,QAAU,IAClB,OAAO,EAGT,MAAO,CACL,KAAM,SACN,OAAQ,EAAM,OACd,QAAS,GAAG,EAAM,MAAM,EAAG,GAAG,MAChC,EAGF,GAAI,MAAM,QAAQ,CAAK,EACrB,MAAO,CACL,KAAM,QACN,OAAQ,EAAM,MAChB,EAGF,GAAI,CAAC,GAAS,OAAO,IAAU,SAC7B,OAAO,EAGT,MAAO,CACL,KAAM,SACN,KAAM,OAAO,KAAK,CAAK,CACzB,EAGF,SAAS,CAAW,CAAC,EAAsB,CACzC,MAAO,IACF,EACH,KAAM,EAAU,EAAO,IAAI,EAC3B,WAAY,EAAO,KAAK,OACxB,KAAM,EAAO,KACT,CACE,GAAI,EAAO,KAAK,GAChB,UAAW,EAAO,KAAK,UACvB,UAAW,EAAO,KAAK,UACvB,OAAQ,EAAO,KAAK,OACpB,KAAM,EAAO,KAAK,KAClB,MAAO,CACL,OAAQ,EAAO,KAAK,MAAM,OAC1B,MAAO,UAAW,EAAO,KAAK,MAAQ,EAAU,EAAO,KAAK,MAAM,KAAK,EAAI,OAC3E,MAAO,UAAW,EAAO,KAAK,MAAQ,EAAU,EAAO,KAAK,MAAM,KAAK,EAAI,OAC3E,KAAM,SAAU,EAAO,KAAK,MAAQ,EAAU,EAAO,KAAK,MAAM,IAAI,EAAI,OACxE,MAAO,EAAU,EAAO,KAAK,MAAM,KAAK,EACxC,SAAU,aAAc,EAAO,KAAK,MAAQ,EAAU,EAAO,KAAK,MAAM,QAAQ,EAAI,MACtF,CACF,EACA,MACN,EAGK,SAAS,CAAkB,CAAC,EAA4B,CAC7D,MAAO,CACL,KAAM,EAAM,KACZ,QAAS,OAAO,YACd,OAAO,QAAQ,EAAM,OAAO,EAAE,IAAI,EAAE,EAAW,KAAY,CACzD,EACA,CACE,YACA,QAAS,EAAO,QAAQ,IAAI,CAAW,CACzC,CACF,CAAC,CACH,EACA,YAAa,EAAM,YAAY,IAAI,CAAC,KAAU,CAC5C,GAAI,EAAK,GACT,UAAW,EAAK,UAChB,OAAQ,EAAK,OACb,UAAW,EAAK,UAChB,OAAQ,EAAK,OACb,SAAU,EAAK,SACX,CACE,KAAM,OAAO,KAAK,EAAK,QAAQ,EAC/B,MAAO,EAAU,EAAK,SAAS,KAAK,CACtC,EACA,MACN,EAAE,EACF,UAAW,EAAM,UAAU,IAAI,CAAC,KAAU,CACxC,GAAI,EAAK,GACT,UAAW,EAAK,UAChB,UAAW,EAAK,UAAU,IAAI,CAAC,KAAc,CAC3C,OAAQ,EAAS,OACjB,SAAU,EAAS,SACnB,QAAS,EAAS,QAAQ,OAC1B,SAAU,EAAS,QACrB,EAAE,CACJ,EAAE,CACJ,EAeK,SAAS,CAAkB,CAAC,EAAoB,EAAyB,CAC9E,QAAW,KAAU,EAAI,QACvB,EAAM,OAAO,MAAM,YAAa,CAAM,EACtC,EAAM,OAAO,OAAO,CAAM,EAG5B,GAAI,EAAI,QAAQ,MAAO,CACrB,IAAM,EAAO,EAAM,EAAI,OAAO,KAAK,EACnC,EAAM,OAAO,MAAM,WAAY,CAAI,EACnC,EAAM,OAAO,MAAM,CACjB,KAAM,eACN,MAAO,CACT,CAAC,EAGH,GAAI,EAAI,QAAQ,SACd,EAAM,OAAO,MAAM,cAAe,EAAmB,EAAI,OAAO,QAAQ,CAAC,EACzE,EAAM,OAAO,MAAM,CACjB,KAAM,kBACN,MAAO,EAAI,OAAO,QACpB,CAAC,EAGH,GAAI,CAAC,EAAI,QAAQ,KACf,OAGF,EAAM,OAAO,MAAM,WAAY,CAC7B,KAAM,EAAI,OAAO,IACnB,CAAC,EACD,EAAM,OAAO,MAAM,CACjB,KAAM,cACN,KAAM,EAAI,OAAO,IACnB,CAAC,ECnJH,IAAM,EAAsB,GACtB,EAAoB,GACpB,EAA2B,GAC3B,EAAoB,IACpB,EAAiB,WAIhB,SAAS,CAAU,CAAC,EAAyD,CAClF,OAAO,EAAQ,QAAQ,CAAC,IAAU,EAAK,OAAS,QAAU,EAAK,KAAO,CAAC,EAAK,IAAI,EAAI,CAAC,CAAE,EAAE,KAAK;AAAA,CAAI,EAG7F,SAAS,CAAQ,CAAC,EAIR,CACf,IAAM,EAAO,EAAM,KACb,EACJ,EAAK,WAAa,QAAa,EAAK,gBAAkB,OAClD,OACA,CAAE,SAAU,EAAK,SAAU,MAAO,EAAK,aAAc,EACrD,EACJ,EAAK,WAAa,QAAa,EAAK,sBAAwB,OACxD,OACA,CAAE,SAAU,EAAK,SAAU,MAAO,EAAK,mBAAoB,EAC3D,EAAO,CACX,GAAI,OAAO,EAAK,KAChB,UAAW,EAAM,UACjB,UAAW,EAAM,UACjB,KAAM,OACN,OAAQ,EAAK,GACb,KAAM,EAAK,IACb,EACA,GAAI,EAAK,MAAM,SAAW,YACxB,MAAO,IACF,EACH,MAAO,CAAE,OAAQ,UAAW,MAAO,CAAC,EAAG,IAAK,EAAK,MAAM,KAAM,CAC/D,EAEF,GAAI,EAAK,MAAM,SAAW,UACxB,MAAO,IACF,EACH,MAAO,CACL,OAAQ,UACR,MAAO,EAAK,MAAM,MAClB,MAAO,EAAK,KACZ,SAAU,CAAE,WAAY,EAAK,MAAM,WAAY,QAAS,EAAK,MAAM,QAAS,cAAa,EACzF,KAAM,CAAE,MAAO,EAAK,KAAK,KAAO,EAAK,KAAK,OAAQ,CACpD,CACF,EAEF,GAAI,EAAK,MAAM,SAAW,YACxB,MAAO,IACF,EACH,MAAO,CACL,OAAQ,YACR,MAAO,EAAK,MAAM,MAClB,OAAQ,EAAW,EAAK,MAAM,OAAO,EACrC,MAAO,EAAK,KACZ,SAAU,CACR,WAAY,EAAK,MAAM,WACvB,QAAS,EAAK,MAAM,QACpB,OAAQ,EAAK,MAAM,OACnB,eACA,gBACF,EACA,KAAM,CAAE,MAAO,EAAK,KAAK,KAAO,EAAK,KAAK,QAAS,IAAK,EAAK,KAAK,WAAa,EAAK,KAAK,OAAQ,CACnG,CACF,EAEF,MAAO,IACF,EACH,MAAO,CACL,OAAQ,QACR,MAAO,EAAK,MAAM,MAClB,MAAO,EAAK,MAAM,MAAM,QACxB,SAAU,CACR,WAAY,EAAK,MAAM,WACvB,QAAS,EAAK,MAAM,QACpB,OAAQ,EAAK,MAAM,OACnB,eACA,gBACF,EACA,KAAM,CAAE,MAAO,EAAK,KAAK,KAAO,EAAK,KAAK,QAAS,IAAK,EAAK,KAAK,WAAa,EAAK,KAAK,OAAQ,CACnG,CACF,EAGK,SAAS,CAAU,CAAC,EAAoB,EAAqD,CAClG,IAAM,EAAS,EAAK,MAAM,OAW1B,MAAO,CACL,KAAM,OACN,OAAQ,OACR,KAZA,IAAW,UACP,EAAK,OAAS,OACZ,eACA,WAAW,EAAK,OAClB,IAAW,YACT,EAAK,MAAM,OACX,IAAW,QACT,EAAK,MAAM,MACX,GAKR,QACA,UAAW,EAAK,UAChB,OAAQ,EAAK,GACb,KAAM,EAAK,KACX,OACA,UAAW,IAAW,QAAU,QAAU,IAAW,YAAc,YAAc,UACjF,UAAW,IAAW,QAAU,EAAK,MAAM,MAAQ,MACrD,EAmDF,SAAS,CAAM,CAAC,EAAqD,CACnE,GAAI,OAAO,IAAU,UAAY,IAAU,MAAQ,CAAC,MAAM,QAAQ,CAAK,EAAG,OAAO,EACjF,OAGF,SAAS,CAAI,CAAC,EAAoC,CAChD,GAAI,OAAO,IAAU,SAAU,OAE/B,OADa,EAAM,KAAK,GACT,OAGjB,SAAS,CAAc,CAAC,EAAiD,CACvE,IAAM,EAAY,EAAK,GAAY,SAAS,EAC5C,GAAI,CAAC,GAAa,CAAC,EAAU,WAAW,KAAK,EAAG,OAChD,IAAM,EAAS,GAAY,OAC3B,GAAI,IAAW,WAAa,IAAW,YAAa,OACpD,MAAO,CAAE,YAAW,QAAS,IAAW,SAAU,EAGpD,SAAS,CAAG,CAAC,EAAsC,CACjD,MAAO,CACL,UAAW,EAAM,UACjB,OAAQ,YAAY,EAAM,YAC1B,OAAQ,YAAY,EAAM,YAC1B,MAAO,EAAM,MACb,YAAa,EAAM,aAAe,EAAM,OAAS,GACjD,OAAQ,EAAM,OACd,WAAY,EAAM,WAAa,GAAO,OACtC,MAAO,EAAM,MACb,UAAW,EAAM,QAAQ,KAAO,EAAI,EAAM,QAAQ,KAAO,OACzD,cAAe,EAAM,aACvB,EAGK,SAAS,CAAqB,CAAC,EAA8C,CAClF,IAAM,EAAW,IAAI,IAGf,EAAe,IAAI,IAGnB,EAAU,IAAI,IAGd,EAAgB,IAAI,IACpB,EAAkB,IAAI,IACtB,EAAoB,IAAI,IACxB,EAAa,IAAI,IACnB,EACE,EAAc,CAAC,EAAmB,IAAmB,GAAG,QAAkB,IAE1E,EAAc,CAAC,IAAkC,CACrD,IAAM,EAAW,EAAS,IAAI,CAAS,EACjC,EAAoB,GAAY,CACpC,YACA,MAAO,EACP,YAAa,GACb,OAAQ,UACR,WAAY,GACZ,QAAS,IAAI,IACb,cAAe,KAAK,IAAI,EACxB,OAAQ,CAAC,EACT,KAAM,IAAI,IACV,cAAe,IAAI,IACnB,UAAW,IAAI,IACf,mBAAoB,IAAI,IACxB,MAAO,IAAI,IACX,cAAe,IAAI,IACnB,WAAY,IAAI,IAChB,QAAS,IAAI,IACb,SAAU,EACZ,EACA,GAAI,CAAC,EAAU,EAAS,IAAI,EAAW,CAAK,EAM5C,IAAM,EAAW,EAAc,IAAI,CAAS,EAC5C,GAAI,EAAU,CACZ,EAAc,OAAO,CAAS,EAC9B,QAAW,KAAS,EAAU,EAAO,EAAO,CAAK,EAEnD,OAAO,GAGH,EAAQ,CAAC,EAAmB,IAAuB,CACvD,EAAM,cAAgB,KAAK,IAAI,EAAM,cAAe,GAAa,KAAK,IAAI,CAAC,GAGvE,EAAe,CAAC,IAAsB,CAC1C,GAAI,EAAM,YAAc,EAAU,EAAM,KAAK,GAGzC,EAAW,CAAC,EAAmB,EAAa,IAAyB,CACzE,IAAM,EAAQ,EAAM,OAAO,UAAU,CAAC,IAAS,EAAK,MAAQ,CAAG,EAC/D,GAAI,IAAU,GAAI,CAEhB,GADA,EAAM,OAAO,KAAK,CAAE,MAAK,QAAO,CAAC,EAC7B,EAAM,OAAO,OAAS,EAAmB,EAAM,OAAO,OAAO,EAAG,EAAM,OAAO,OAAS,CAAiB,EAC3G,OAEF,EAAM,OAAO,GAAS,CAAE,MAAK,QAAO,GAGhC,EAAY,CAAC,EAAmB,IAA8C,CAClF,GAAI,CAAC,EAAM,OACX,IAAM,EAAQ,EAAK,EAAK,KAAK,EAC7B,GAAI,EAAO,EAAM,MAAQ,EAAO,UAAU,CAAK,EAC/C,IAAM,EAAc,EAAK,EAAK,WAAW,EACzC,GAAI,EAAa,EAAM,YAAc,EACrC,GAAI,EAAK,aAAe,GAAM,EAAM,WAAa,IAG7C,EAAY,CAAC,EAAmB,EAAmB,IAAkB,CACzE,GAAI,EAAM,WAAW,IAAI,CAAS,EAAG,MAAO,GAS5C,OARA,EAAM,WAAW,IAAI,CAAS,EAC9B,EAAS,EAAO,QAAQ,IAAa,CACnC,KAAM,OACN,OAAQ,SACR,KAAM,EACN,MAAO,QACP,WACF,CAAC,EACM,IAGH,EAAY,CAAC,EAAmB,EAAmC,IAAsB,CAC7F,IAAM,EAAO,EAAS,CACpB,UAAW,EAAM,UACjB,YACA,KAAM,CACR,CAAC,EACD,GAAI,EAAK,MAAM,SAAW,YAAa,OAEvC,GADA,EAAM,QAAQ,IAAI,EAAK,EAAE,EACrB,EAAK,MAAM,SAAW,UAAW,CACnC,EAAS,EAAO,QAAQ,EAAK,KAAM,EAAW,EAAM,OAAO,CAAC,EAC5D,OAEF,EAAM,cAAc,IAAI,EAAK,EAAE,EAC/B,EAAM,MAAM,OAAO,EAAK,EAAE,EAC1B,EAAS,EAAO,QAAQ,EAAK,KAAM,EAAW,EAAM,OAAO,CAAC,GAGxD,EAAU,CAAC,EAAmB,IAAmC,CACrE,EAAM,OAAS,CAAC,EAChB,EAAM,KAAK,MAAM,EACjB,EAAM,cAAc,MAAM,EAC1B,EAAM,UAAU,MAAM,EACtB,EAAM,mBAAmB,MAAM,EAC/B,EAAM,cAAc,MAAM,EAC1B,EAAM,WAAW,MAAM,EACvB,EAAM,QAAQ,MAAM,EACpB,QAAW,KAAW,EAAU,CAC9B,GAAI,EAAQ,OAAS,OAAQ,CAC3B,EAAM,QAAQ,OAAO,EAAQ,EAAE,EAC/B,EAAU,EAAO,EAAQ,GAAI,EAAQ,IAAI,EACzC,SAEF,GAAI,EAAQ,OAAS,YAAa,SAClC,EAAM,WAAW,IAAI,EAAQ,EAAE,EAC/B,IAAI,EAAc,EACd,EAAmB,EACvB,QAAW,KAAQ,EAAQ,QAAS,CAClC,GAAI,EAAK,OAAS,OAAQ,CACxB,IAAM,EAAK,QAAQ,MACb,EAAM,EAAY,EAAQ,GAAI,CAAE,EACtC,EAAM,KAAK,IAAI,EAAK,EAAK,IAAI,EAC7B,EAAM,cAAc,IAAI,EAAK,EAAK,IAAI,EACtC,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,EAAK,KACX,MAAO,WACP,UAAW,EAAQ,GACnB,OAAQ,CACV,CAAC,EACD,SAEF,GAAI,EAAK,OAAS,YAAa,CAC7B,IAAM,EAAK,aAAa,MAClB,EAAM,EAAY,EAAQ,GAAI,CAAE,EAGtC,GAFA,EAAM,UAAU,IAAI,EAAK,EAAK,IAAI,EAClC,EAAM,mBAAmB,IAAI,EAAK,EAAK,IAAI,EACvC,EAAM,SACR,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,aAAa,EAAK,OACxB,MAAO,WACP,UAAW,EAAQ,GACnB,OAAQ,CACV,CAAC,EACH,SAEF,EAAU,EAAO,EAAM,EAAQ,EAAE,EAEnC,GAAI,EAAQ,MACV,EAAS,EAAO,SAAS,EAAQ,KAAM,CACrC,KAAM,QACN,OAAQ,SACR,KAAM,EAAQ,MAAM,QACpB,MAAO,QACP,UAAW,EAAQ,EACrB,CAAC,IAKD,EAAe,CAAC,IAAqC,CACzD,IAAM,EAAW,EAAW,IAAI,EAAM,SAAS,EAC/C,GAAI,EAAU,OAAO,EACrB,IAAM,EAAiB,IAAI,IAAI,EAAM,OAAO,EACtC,EAAe,IAAI,IAAI,EAAM,KAAK,EACpC,EAAQ,GACN,EAAO,EAAM,IAAI,QACpB,KAAK,CAAE,UAAW,EAAM,UAAW,MAAO,EAAqB,MAAO,MAAO,CAAC,EAC9E,KAAK,CAAC,IAAa,CAClB,IAAM,EAAW,EAAgB,IAAI,EAAM,SAAS,GAAK,CAAC,EAE1D,GADA,EAAgB,OAAO,EAAM,SAAS,EAClC,EAAkB,OAAO,EAAM,SAAS,EAAG,CAC7C,EAAM,SAAW,GACjB,EAAQ,GACR,EAAa,CAAK,EAClB,OAEF,QAAY,EAAI,KAAW,EACzB,GAAI,CAAC,EAAM,QAAQ,IAAI,CAAE,EAAG,EAAM,QAAQ,IAAI,EAAI,CAAM,EAE1D,EAAQ,EAAO,gBAAgB,EAAS,IAAI,EAAE,WAAW,CAAyB,EAClF,QAAY,EAAI,KAAS,EACvB,GAAI,CAAC,EAAM,cAAc,IAAI,CAAE,GAAK,CAAC,EAAM,MAAM,IAAI,CAAE,EAAG,EAAM,MAAM,IAAI,EAAI,CAAI,EAEpF,QAAW,KAAS,EAAU,EAAO,EAAO,CAAK,EACjD,EAAM,SAAW,GACjB,EAAa,CAAK,EACnB,EACA,MAAM,IAAM,CACX,EAAgB,OAAO,EAAM,SAAS,EACtC,EAAkB,OAAO,EAAM,SAAS,EACzC,EACA,QAAQ,IAAM,CAEb,GADA,EAAW,OAAO,EAAM,SAAS,EAC7B,EAAO,eAAe,IAAM,KAAK,EAAa,CAAK,CAAC,EACzD,EAEH,OADA,EAAW,IAAI,EAAM,UAAW,CAAI,EAC7B,GAGH,EAAW,CAAC,IAAsB,CACtC,GAAI,EAAQ,IAAI,CAAS,GAAK,EAAS,IAAI,CAAS,GAAK,IAAc,EAAM,UAAW,OAExF,GADA,EAAQ,IAAI,CAAS,EACjB,CAAC,EAAc,IAAI,CAAS,EAAG,EAAc,IAAI,EAAW,CAAC,CAAC,EAC7D,EAAM,IAAI,QACZ,IAAI,CAAE,WAAU,CAAC,EACjB,KAAK,CAAC,IAAY,CACjB,IAAM,EAAW,EAAc,IAAI,CAAS,GAAK,CAAC,EAElD,GADA,EAAc,OAAO,CAAS,EAC1B,EAAQ,WAAa,EAAM,UAAW,OAC1C,IAAM,EAAQ,EAAY,CAAS,EACnC,GAAI,EAAQ,MAAO,EAAM,MAAQ,EAAO,UAAU,EAAQ,KAAK,EAC/D,EAAM,MAAQ,EAAQ,MACtB,QAAW,KAAS,EAAU,EAAO,EAAO,CAAK,EACjD,EAAM,CAAK,EACX,EAAM,KAAK,EACN,EAAa,CAAK,EACxB,EACA,MAAM,IAAM,CAEX,EAAc,OAAO,CAAS,EAC9B,EAAQ,OAAO,CAAS,EACzB,GAGC,EAAS,CAAC,EAAmB,IAAmB,CACpD,GAAI,EAAM,OAAS,yBAA0B,CAC3C,GAAI,EAAM,KAAK,MAAM,OAAS,OAAQ,EAAM,QAAQ,IAAI,EAAM,KAAK,QAAS,EAAM,KAAK,MAAM,KAAK,IAAI,EACtG,OAEF,GAAI,EAAM,OAAS,yBAA0B,CAC3C,IAAM,EAAS,EAAM,QAAQ,IAAI,EAAM,KAAK,OAAO,EACnD,GAAI,IAAW,OAAW,OAE1B,GADA,EAAM,QAAQ,OAAO,EAAM,KAAK,OAAO,EACnC,EAAU,EAAO,EAAM,KAAK,QAAS,CAAM,EAC7C,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAEpB,OAEF,GAAI,EAAM,OAAS,uBAAwB,CAEzC,GADA,EAAM,EAAO,EAAM,OAAO,EACtB,EAAM,QAAU,GAAkB,EAAM,KAAK,MAAO,EAAM,MAAQ,EAAO,UAAU,EAAM,KAAK,KAAK,EACvG,GAAI,EAAM,SAAW,UAAW,EAAM,OAAS,UAC/C,EAAM,KAAK,EACX,OAEF,GAAI,EAAM,OAAS,uBACjB,OAEF,GAAI,EAAM,OAAS,qBAAsB,CACvC,IAAM,EAAK,QAAQ,EAAM,KAAK,UACxB,EAAM,EAAY,EAAM,KAAK,mBAAoB,CAAE,EACnD,EAAY,EAAM,cAAc,IAAI,CAAG,EACvC,EAAU,GAAW,QAAQ,EAAM,KAAK,KAAK,GAAK,GACxD,GAAI,GAAa,GAAW,EAAG,CAC7B,EAAM,cAAc,IAAI,EAAK,EAAU,MAAM,EAAU,EAAM,KAAK,MAAM,MAAM,CAAC,EAC/E,OAEF,IAAM,GAAQ,EAAM,KAAK,IAAI,CAAG,GAAK,IAAM,EAAM,KAAK,MACtD,EAAM,KAAK,IAAI,EAAK,CAAI,EACxB,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,EACN,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CAAC,EACD,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,qBAAsB,CACvC,IAAM,EAAK,QAAQ,EAAM,KAAK,UACxB,EAAM,EAAY,EAAM,KAAK,mBAAoB,CAAE,EACzD,EAAM,KAAK,IAAI,EAAK,EAAM,KAAK,IAAI,EACnC,EAAM,cAAc,OAAO,CAAG,EAC9B,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,EAAM,KAAK,KACjB,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CAAC,EACD,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,4BACjB,OAEF,GAAI,EAAM,OAAS,0BAA2B,CAC5C,IAAM,EAAK,aAAa,EAAM,KAAK,UAC7B,EAAM,EAAY,EAAM,KAAK,mBAAoB,CAAE,EACnD,EAAY,EAAM,mBAAmB,IAAI,CAAG,EAC5C,EAAU,GAAW,QAAQ,EAAM,KAAK,KAAK,GAAK,GACxD,GAAI,GAAa,GAAW,EAAG,CAC7B,EAAM,mBAAmB,IAAI,EAAK,EAAU,MAAM,EAAU,EAAM,KAAK,MAAM,MAAM,CAAC,EACpF,OAEF,IAAM,GAAQ,EAAM,UAAU,IAAI,CAAG,GAAK,IAAM,EAAM,KAAK,MAE3D,GADA,EAAM,UAAU,IAAI,EAAK,CAAI,EACzB,CAAC,EAAM,SAAU,OACrB,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,aAAa,IACnB,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CAAC,EACD,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,0BAA2B,CAC5C,IAAM,EAAK,aAAa,EAAM,KAAK,UAC7B,EAAM,EAAY,EAAM,KAAK,mBAAoB,CAAE,EAGzD,GAFA,EAAM,UAAU,IAAI,EAAK,EAAM,KAAK,IAAI,EACxC,EAAM,mBAAmB,OAAO,CAAG,EAC/B,CAAC,EAAM,SAAU,OACrB,EAAS,EAAO,EAAK,CACnB,KAAM,YACN,OAAQ,YACR,KAAM,aAAa,EAAM,KAAK,OAC9B,MAAO,WACP,UAAW,EAAM,KAAK,mBACtB,OAAQ,CACV,CAAC,EACD,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,6BAA8B,CAC/C,GAAI,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,EAAG,OAChD,EAAM,MAAM,IAAI,EAAM,KAAK,OAAQ,CAAE,KAAM,EAAM,KAAK,KAAM,MAAO,CAAC,EAAG,QAAS,EAAM,OAAQ,CAAC,EAC/F,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,GAAI,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,EAAG,OAChD,IAAM,EAAU,EAAM,MAAM,IAAI,EAAM,KAAK,MAAM,EACjD,EAAM,MAAM,IAAI,EAAM,KAAK,OAAQ,CACjC,KAAM,GAAS,MAAQ,OACvB,MAAO,EAAM,KAAK,MAClB,QAAS,GAAS,SAAW,EAAM,QACnC,cAAe,EAAM,KAAK,KAC5B,CAAC,EACD,EACE,EACA,gBAAgB,CACd,KAAM,OACN,GAAI,EAAM,KAAK,OACf,KAAM,GAAS,MAAQ,OACvB,SAAU,EAAM,KAAK,SACrB,cAAe,EAAM,KAAK,MAC1B,MAAO,CAAE,OAAQ,UAAW,MAAO,EAAM,KAAK,MAAO,WAAY,CAAC,EAAG,QAAS,CAAC,CAAE,EACjF,KAAM,CAAE,QAAS,GAAS,SAAW,EAAM,QAAS,IAAK,EAAM,OAAQ,CACzE,CAAC,EACD,EAAM,KAAK,kBACb,EACA,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,wBAA0B,EAAM,OAAS,sBAAuB,CACjF,GAAI,EAAM,cAAc,IAAI,EAAM,KAAK,MAAM,EAAG,OAChD,IAAM,EAAU,EAAM,MAAM,IAAI,EAAM,KAAK,MAAM,EAC3C,EAAS,EAAM,OAAS,sBAC9B,EACE,EACA,gBAAgB,CACd,KAAM,OACN,GAAI,EAAM,KAAK,OACf,KAAM,GAAS,MAAQ,OACvB,SAAU,EAAM,KAAK,SACrB,cAAe,GAAS,cACxB,oBAAqB,EAAM,KAAK,YAChC,MAAO,EACH,CACE,OAAQ,QACR,MAAO,GAAS,OAAS,CAAC,EAC1B,WAAY,CAAC,EACb,QAAS,CAAC,EACV,MAAO,EAAM,KAAK,MAClB,OAAQ,EAAM,KAAK,MACrB,EACA,CACE,OAAQ,YACR,MAAO,GAAS,OAAS,CAAC,EAC1B,WAAY,EAAM,KAAK,WACvB,QAAS,EAAM,KAAK,QACpB,OAAQ,EAAM,KAAK,MACrB,EACJ,KAAM,CACJ,QAAS,GAAS,SAAW,EAAM,QACnC,IAAK,GAAS,QACd,UAAW,EAAM,OACnB,CACF,CAAC,EACD,EAAM,KAAK,kBACb,EACA,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,qBAAsB,OACzC,GAAI,EAAM,OAAS,sBAAuB,CACxC,EAAS,EAAO,cAAc,EAAM,KAAK,qBAAsB,CAC7D,KAAM,QACN,OAAQ,SACR,KAAM,EAAM,KAAK,MAAM,QACvB,MAAO,QACP,UAAW,EAAM,KAAK,kBACxB,CAAC,EACD,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAa,CAAK,EAClB,OAEF,GAAI,EAAM,OAAS,4BAA6B,CAC9C,EAAM,OAAS,UACf,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAM,KAAK,EACX,OAEF,GACE,EAAM,OAAS,+BACf,EAAM,OAAS,4BACf,EAAM,OAAS,gCAEf,EAAM,OACJ,EAAM,OAAS,8BACX,YACA,EAAM,OAAS,gCACb,YACA,QACR,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAM,KAAK,GAIT,EAAW,CAAC,EAAmC,IAAqC,CACxF,GAAI,EAAK,OAAS,YAAc,EAAK,MAAM,SAAW,YAAa,OACnE,IAAM,EAAQ,EAAe,EAAO,EAAK,MAAM,UAAU,CAAC,EAC1D,GAAI,CAAC,EAAO,OACZ,IAAM,EAAQ,EAAY,EAAM,SAAS,EAEzC,GADA,EAAU,EAAO,EAAO,EAAK,MAAM,KAAK,CAAC,EACrC,EAAM,QAAS,EAAM,WAAa,GACtC,GAAI,EAAM,SAAW,UAAW,CAC9B,IAAM,EAAU,EAAM,UAAY,CAAC,IAAU,EAAM,aAAa,IAChE,EAAM,OAAS,EAAU,UAAY,YAEvC,EAAM,EAAO,EAAK,KAAK,WAAa,EAAK,KAAK,OAAO,GAGvD,MAAO,CACL,IAAI,CAAC,EAAO,CACV,GAAI,EAAM,OAAS,6BAA8B,CAC/C,GAAI,EAAM,KAAK,OAAS,WAAY,EAAa,IAAI,EAAM,KAAK,OAAQ,CAAC,CAAC,EAC1E,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,GAAI,EAAa,IAAI,EAAM,KAAK,MAAM,EAAG,EAAa,IAAI,EAAM,KAAK,OAAQ,EAAM,KAAK,KAAK,EAC7F,OAEF,GAAI,EAAM,OAAS,sBAAuB,CACxC,EAAa,OAAO,EAAM,KAAK,MAAM,EACrC,OAEF,GAAI,EAAM,OAAS,uBAAwB,OAC3C,IAAM,EAAU,EAAa,IAAI,EAAM,KAAK,MAAM,EAClD,EAAa,OAAO,EAAM,KAAK,MAAM,EACrC,IAAM,EAAQ,EAAe,EAAO,EAAM,KAAK,UAAU,CAAC,EAC1D,GAAI,CAAC,EAAO,OACZ,IAAM,EAAQ,EAAY,EAAM,SAAS,EAEzC,GADA,EAAU,EAAO,CAAO,EACpB,EAAM,QACR,EAAM,WAAa,GACnB,EAAM,OAAS,UAEjB,GAAI,CAAC,EAAM,SAAW,EAAM,SAAW,UAAW,EAAM,OAAS,YAGjE,GAFA,EAAM,EAAO,EAAM,OAAO,EAC1B,EAAM,KAAK,EACP,CAAC,EAAM,SAAe,EAAa,CAAK,GAE9C,OAAO,CAAC,EAAW,EAAO,CACxB,IAAM,EAAQ,EAAS,IAAI,CAAS,EACpC,GAAI,EAAO,CACT,GAAI,EAAW,IAAI,CAAS,EAAG,CAC7B,IAAM,EAAW,EAAgB,IAAI,CAAS,GAAK,CAAC,EACpD,GAAI,EAAS,OAAS,EAA0B,EAAS,KAAK,CAAK,EAC9D,OAAkB,IAAI,CAAS,EACpC,EAAgB,IAAI,EAAW,CAAQ,EAEzC,EAAO,EAAO,CAAK,EACnB,OAEF,EAAS,CAAS,EAClB,IAAM,EAAW,EAAc,IAAI,CAAS,EAC5C,GAAI,GAAY,EAAS,OAAS,EAA0B,EAAS,KAAK,CAAK,QAE3E,QAAO,CAAC,EAAM,CAClB,QAAW,KAAW,EAAK,SAAU,CACnC,GAAI,EAAQ,OAAS,YAAa,SAClC,QAAW,KAAQ,EAAQ,QACzB,GAAI,EAAK,OAAS,OAAQ,EAAS,EAAM,EAAK,MAAM,EAKxD,IAAM,EAAS,MAAM,EAAM,IAAI,QAC5B,KAAK,CAAE,SAAU,EAAM,UAAW,MAAO,EAAmB,MAAO,MAAO,CAAC,EAC3E,KAAK,CAAC,IAAa,EAAS,IAAI,EAChC,MAAM,IAAM,CAAC,CAAC,EACjB,QAAW,KAAW,EAAQ,CAC5B,IAAM,EAAQ,EAAY,EAAQ,EAAE,EACpC,GAAI,EAAQ,OAAS,EAAM,QAAU,EAAgB,EAAM,MAAQ,EAAO,UAAU,EAAQ,KAAK,EACjG,GAAI,CAAC,EAAM,MAAO,EAAM,MAAQ,EAAQ,MACxC,EAAM,EAAO,EAAQ,KAAK,OAAO,EAEnC,QAAW,KAAa,OAAO,KAAK,EAAK,MAAM,EAAG,EAAS,CAAS,EACpE,QAAW,KAAS,EAAS,OAAO,EAGlC,GAAI,EAAM,SAAW,WAAa,EAAE,EAAM,aAAa,EAAK,QAAS,EAAM,OAAS,YAEtF,IAAM,EAAU,EAAW,EAAS,IAAI,CAAQ,EAAI,OACpD,GAAI,EAAS,MAAM,EAAa,CAAO,EACvC,GAAI,EAAS,KAAO,EAAG,EAAM,KAAK,GAEpC,MAAM,CAAC,EAAW,CAChB,EAAW,EACX,IAAM,EAAQ,EAAY,EAAS,IAAI,CAAS,EAAI,OACpD,GAAI,GAAS,CAAC,EAAM,SAAe,EAAa,CAAK,EACrD,EAAM,KAAK,GAEb,QAAQ,EAAG,CACT,IAAM,EAAO,CAAC,GAAG,EAAS,OAAO,CAAC,EAAE,IAAI,CAAG,EAAE,SAAS,CAAC,EAAG,IAAM,CAC9D,IAAM,EAAS,OAAO,EAAE,SAAW,SAAS,EAAI,OAAO,EAAE,SAAW,SAAS,EAC7E,GAAI,IAAW,EAAG,OAAO,EACzB,OAAO,EAAE,cAAgB,EAAE,cAC5B,EACK,EAAQ,EAAW,EAAS,IAAI,CAAQ,EAAI,OAC5C,EAAgD,EAClD,EAAG,EAAM,WAAY,CAAE,UAAW,EAAM,UAAW,QAAS,EAAM,OAAO,IAAI,CAAC,IAAS,EAAK,MAAM,CAAE,CAAE,EACtG,CAAC,EACL,MAAO,CAAE,OAAM,UAAS,YAAa,CAAC,EAAG,UAAW,CAAC,CAAE,EAE3D",
"debugId": "96D3B961682D191264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "518EC5A80D739AAA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultCognitoIdentityHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cognito-identity\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultCognitoIdentityHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetCredentialsForIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n case \"GetId\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst m = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = \"stringEquals\", h = { [m]: \"Endpoint\" }, i = { [m]: d }, j = { [m]: \"Region\" }, k = {}, l = [j];\nconst _data = {\n conditions: [\n [c, [h]],\n [c, l],\n [\"aws.partition\", l, d],\n [e, [{ [m]: \"UseFIPS\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsFIPS\"] }, b]],\n [e, [{ [m]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsDualStack\"] }, b]],\n [g, [{ fn: f, argv: [i, \"name\"] }, \"aws\"]],\n [g, [j, \"us-east-1\"]],\n [g, [j, \"us-east-2\"]],\n [g, [j, \"us-west-1\"]],\n [g, [j, \"us-west-2\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [h, k],\n [\"https://cognito-identity-fips.us-east-1.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-east-2.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-west-1.amazonaws.com\", k],\n [\"https://cognito-identity-fips.us-west-2.amazonaws.com\", k],\n [\"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://cognito-identity.{Region}.amazonaws.com\", k],\n [\"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 17,\n 3,\n 1,\n 4,\n r + 16,\n 2,\n 5,\n r + 16,\n 3,\n 9,\n 6,\n 5,\n 7,\n r + 15,\n 6,\n 8,\n r + 14,\n 7,\n r + 12,\n r + 13,\n 4,\n 11,\n 10,\n 5,\n r + 9,\n r + 11,\n 5,\n 12,\n r + 10,\n 6,\n 13,\n r + 9,\n 8,\n r + 4,\n 14,\n 9,\n r + 5,\n 15,\n 10,\n r + 6,\n 16,\n 11,\n r + 7,\n r + 8,\n 3,\n r + 1,\n 18,\n 5,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass CognitoIdentityServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CognitoIdentityServiceException.prototype);\n }\n}\n\nclass ExternalServiceException extends CognitoIdentityServiceException {\n name = \"ExternalServiceException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExternalServiceException.prototype);\n }\n}\nclass InternalErrorException extends CognitoIdentityServiceException {\n name = \"InternalErrorException\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalErrorException.prototype);\n }\n}\nclass InvalidIdentityPoolConfigurationException extends CognitoIdentityServiceException {\n name = \"InvalidIdentityPoolConfigurationException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidIdentityPoolConfigurationException.prototype);\n }\n}\nclass InvalidParameterException extends CognitoIdentityServiceException {\n name = \"InvalidParameterException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n }\n}\nclass NotAuthorizedException extends CognitoIdentityServiceException {\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NotAuthorizedException.prototype);\n }\n}\nclass ResourceConflictException extends CognitoIdentityServiceException {\n name = \"ResourceConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceConflictException.prototype);\n }\n}\nclass ResourceNotFoundException extends CognitoIdentityServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nclass TooManyRequestsException extends CognitoIdentityServiceException {\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nclass LimitExceededException extends CognitoIdentityServiceException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\n\nconst _AI = \"AccountId\";\nconst _AKI = \"AccessKeyId\";\nconst _C = \"Credentials\";\nconst _CRA = \"CustomRoleArn\";\nconst _E = \"Expiration\";\nconst _ESE = \"ExternalServiceException\";\nconst _GCFI = \"GetCredentialsForIdentity\";\nconst _GCFII = \"GetCredentialsForIdentityInput\";\nconst _GCFIR = \"GetCredentialsForIdentityResponse\";\nconst _GI = \"GetId\";\nconst _GII = \"GetIdInput\";\nconst _GIR = \"GetIdResponse\";\nconst _IEE = \"InternalErrorException\";\nconst _II = \"IdentityId\";\nconst _IIPCE = \"InvalidIdentityPoolConfigurationException\";\nconst _IPE = \"InvalidParameterException\";\nconst _IPI = \"IdentityPoolId\";\nconst _IPT = \"IdentityProviderToken\";\nconst _L = \"Logins\";\nconst _LEE = \"LimitExceededException\";\nconst _LM = \"LoginsMap\";\nconst _NAE = \"NotAuthorizedException\";\nconst _RCE = \"ResourceConflictException\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _SK = \"SecretKey\";\nconst _SKS = \"SecretKeyString\";\nconst _ST = \"SessionToken\";\nconst _TMRE = \"TooManyRequestsException\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _hE = \"httpError\";\nconst _m = \"message\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.cognitoidentity\";\nconst _se = \"server\";\nconst n0 = \"com.amazonaws.cognitoidentity\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar CognitoIdentityServiceException$ = [-3, _s, \"CognitoIdentityServiceException\", 0, [], []];\n_s_registry.registerError(CognitoIdentityServiceException$, CognitoIdentityServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar ExternalServiceException$ = [-3, n0, _ESE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(ExternalServiceException$, ExternalServiceException);\nvar InternalErrorException$ = [-3, n0, _IEE, { [_e]: _se }, [_m], [0]];\nn0_registry.registerError(InternalErrorException$, InternalErrorException);\nvar InvalidIdentityPoolConfigurationException$ = [\n -3,\n n0,\n _IIPCE,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0],\n];\nn0_registry.registerError(InvalidIdentityPoolConfigurationException$, InvalidIdentityPoolConfigurationException);\nvar InvalidParameterException$ = [-3, n0, _IPE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(InvalidParameterException$, InvalidParameterException);\nvar LimitExceededException$ = [-3, n0, _LEE, { [_e]: _c, [_hE]: 400 }, [_m], [0]];\nn0_registry.registerError(LimitExceededException$, LimitExceededException);\nvar NotAuthorizedException$ = [-3, n0, _NAE, { [_e]: _c, [_hE]: 403 }, [_m], [0]];\nn0_registry.registerError(NotAuthorizedException$, NotAuthorizedException);\nvar ResourceConflictException$ = [-3, n0, _RCE, { [_e]: _c, [_hE]: 409 }, [_m], [0]];\nn0_registry.registerError(ResourceConflictException$, ResourceConflictException);\nvar ResourceNotFoundException$ = [-3, n0, _RNFE, { [_e]: _c, [_hE]: 404 }, [_m], [0]];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nvar TooManyRequestsException$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_m], [0]];\nn0_registry.registerError(TooManyRequestsException$, TooManyRequestsException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar IdentityProviderToken = [0, n0, _IPT, 8, 0];\nvar SecretKeyString = [0, n0, _SKS, 8, 0];\nvar Credentials$ = [\n 3,\n n0,\n _C,\n 0,\n [_AKI, _SK, _ST, _E],\n [0, [() => SecretKeyString, 0], 0, 4],\n];\nvar GetCredentialsForIdentityInput$ = [\n 3,\n n0,\n _GCFII,\n 0,\n [_II, _L, _CRA],\n [0, [() => LoginsMap, 0], 0],\n 1,\n];\nvar GetCredentialsForIdentityResponse$ = [\n 3,\n n0,\n _GCFIR,\n 0,\n [_II, _C],\n [0, [() => Credentials$, 0]],\n];\nvar GetIdInput$ = [3, n0, _GII, 0, [_IPI, _AI, _L], [0, 0, [() => LoginsMap, 0]], 1];\nvar GetIdResponse$ = [3, n0, _GIR, 0, [_II], [0]];\nvar LoginsMap = [2, n0, _LM, 0, [0, 0], [() => IdentityProviderToken, 0]];\nvar GetCredentialsForIdentity$ = [\n 9,\n n0,\n _GCFI,\n 0,\n () => GetCredentialsForIdentityInput$,\n () => GetCredentialsForIdentityResponse$,\n];\nvar GetId$ = [9, n0, _GI, 0, () => GetIdInput$, () => GetIdResponse$];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultCognitoIdentityHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsJson1_1Protocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.cognitoidentity\",\n errorTypeRegistries,\n xmlNamespace: \"http://cognito-identity.amazonaws.com/doc/2014-06-30/\",\n version: \"2014-06-30\",\n serviceTarget: \"AWSCognitoIdentityService\",\n },\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass CognitoIdentityClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultCognitoIdentityHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass GetCredentialsForIdentityCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSCognitoIdentityService\", \"GetCredentialsForIdentity\", {})\n .n(\"CognitoIdentityClient\", \"GetCredentialsForIdentityCommand\")\n .sc(GetCredentialsForIdentity$)\n .build() {\n}\n\nclass GetIdCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSCognitoIdentityService\", \"GetId\", {})\n .n(\"CognitoIdentityClient\", \"GetIdCommand\")\n .sc(GetId$)\n .build() {\n}\n\nconst commands = {\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n};\nclass CognitoIdentity extends CognitoIdentityClient {\n}\nclient.createAggregatedClient(commands, CognitoIdentity);\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.CognitoIdentity = CognitoIdentity;\nexports.CognitoIdentityClient = CognitoIdentityClient;\nexports.CognitoIdentityServiceException = CognitoIdentityServiceException;\nexports.CognitoIdentityServiceException$ = CognitoIdentityServiceException$;\nexports.Credentials$ = Credentials$;\nexports.ExternalServiceException = ExternalServiceException;\nexports.ExternalServiceException$ = ExternalServiceException$;\nexports.GetCredentialsForIdentity$ = GetCredentialsForIdentity$;\nexports.GetCredentialsForIdentityCommand = GetCredentialsForIdentityCommand;\nexports.GetCredentialsForIdentityInput$ = GetCredentialsForIdentityInput$;\nexports.GetCredentialsForIdentityResponse$ = GetCredentialsForIdentityResponse$;\nexports.GetId$ = GetId$;\nexports.GetIdCommand = GetIdCommand;\nexports.GetIdInput$ = GetIdInput$;\nexports.GetIdResponse$ = GetIdResponse$;\nexports.InternalErrorException = InternalErrorException;\nexports.InternalErrorException$ = InternalErrorException$;\nexports.InvalidIdentityPoolConfigurationException = InvalidIdentityPoolConfigurationException;\nexports.InvalidIdentityPoolConfigurationException$ = InvalidIdentityPoolConfigurationException$;\nexports.InvalidParameterException = InvalidParameterException;\nexports.InvalidParameterException$ = InvalidParameterException$;\nexports.LimitExceededException = LimitExceededException;\nexports.LimitExceededException$ = LimitExceededException$;\nexports.NotAuthorizedException = NotAuthorizedException;\nexports.NotAuthorizedException$ = NotAuthorizedException$;\nexports.ResourceConflictException = ResourceConflictException;\nexports.ResourceConflictException$ = ResourceConflictException$;\nexports.ResourceNotFoundException = ResourceNotFoundException;\nexports.ResourceNotFoundException$ = ResourceNotFoundException$;\nexports.TooManyRequestsException = TooManyRequestsException;\nexports.TooManyRequestsException$ = TooManyRequestsException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "DB42B9A3412D5B6C64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/service/stop.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.stop,\n Effect.fn(\"cli.service.stop\")(function* () {\n yield* Service.stop(yield* ServiceConfig.options())\n }),\n)\n"
],
"mappings": ";u9BAMA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,UACnC,OAAO,QAAG,uBAAkB,OAAE,cAAU,OAAG,MACzC,WAAO,OAAQ,UAAK,WAAO,OAAc,aAAQ,MAAC,OACnD,MACH",
"debugId": "C756B02237AA30D764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260227213759_add_session_workspace_id.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260227213759_add_session_workspace_id\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`workspace_id\\` text;`)\n yield* tx.run(`CREATE INDEX \\`session_workspace_idx\\` ON \\`session\\` (\\`workspace_id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,0CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gDAAoD,EAClE,MAAO,EAAG,IAAI,qEAA2E,EAC1F,EAEL",
"debugId": "EE7D44C5EDC92FDF64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-login@3.972.45/node_modules/@aws-sdk/credential-provider-login/dist-es/fromLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-login@3.972.45/node_modules/@aws-sdk/credential-provider-login/dist-es/LoginCredentialsFetcher.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveStaticCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.46/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js"],
"sourcesContent": [
"import { getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { resolveProfileData } from \"./resolveProfileData\";\nexport const fromIni = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await parseKnownFiles(init);\n return resolveProfileData(getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n }), profiles, init, callerClientConfig);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { isAssumeRoleProfile, resolveAssumeRoleCredentials } from \"./resolveAssumeRoleCredentials\";\nimport { isLoginProfile, resolveLoginCredentials } from \"./resolveLoginCredentials\";\nimport { isProcessProfile, resolveProcessCredentials } from \"./resolveProcessCredentials\";\nimport { isSsoProfile, resolveSsoCredentials } from \"./resolveSsoCredentials\";\nimport { isStaticCredsProfile, resolveStaticCredentials } from \"./resolveStaticCredentials\";\nimport { isWebIdentityProfile, resolveWebIdentityCredentials } from \"./resolveWebIdentityCredentials\";\nexport const resolveProfileData = async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, callerClientConfig, visitedProfiles, resolveProfileData);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options, callerClientConfig);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options, callerClientConfig);\n }\n if (isLoginProfile(data)) {\n return resolveLoginCredentials(profileName, options, callerClientConfig);\n }\n throw new CredentialsProviderError(`Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, { logger: options.logger });\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, getProfileName } from \"@smithy/core/config\";\nimport { resolveCredentialSource } from \"./resolveCredentialSource\";\nexport const isAssumeRoleProfile = (arg, { profile = \"default\", logger } = {}) => {\n return (Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 &&\n (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })));\n};\nconst isAssumeRoleWithSourceProfile = (arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n};\nconst isCredentialSourceProfile = (arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n};\nexport const resolveAssumeRoleCredentials = async (profileName, profiles, options, callerClientConfig, visitedProfiles = {}, resolveProfileData) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await import(\"@aws-sdk/nested-clients/sts\");\n options.roleAssumer = getDefaultRoleAssumer({\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...callerClientConfig,\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region ?? callerClientConfig?.region,\n },\n }, options.clientPlugins);\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile` +\n ` ${getProfileName(options)}. Profiles visited: ` +\n Object.keys(visitedProfiles).join(\", \"), { logger: options.logger });\n }\n options.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`);\n const sourceCredsProvider = source_profile\n ? resolveProfileData(source_profile, profiles, options, callerClientConfig, {\n ...visitedProfiles,\n [source_profile]: true,\n }, isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}))\n : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n }\n else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10),\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, { logger: options.logger, tryNextLink: false });\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n }\n};\nconst isCredentialSourceWithoutRoleArn = (section) => {\n return !section.role_arn && !!section.credential_source;\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { chain, CredentialsProviderError } from \"@smithy/core/config\";\nexport const resolveCredentialSource = (credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: async (options) => {\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n const { fromContainerMetadata } = await import(\"@smithy/credential-provider-imds\");\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => chain(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n },\n Ec2InstanceMetadata: async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n },\n Environment: async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await import(\"@aws-sdk/credential-provider-env\");\n return async () => fromEnv(options)().then(setNamedProvider);\n },\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n }\n else {\n throw new CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +\n `expected EcsContainer or Ec2InstanceMetadata or Environment.`, { logger });\n }\n};\nconst setNamedProvider = (creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromLoginCredentials } from \"@aws-sdk/credential-provider-login\";\nexport const isLoginProfile = (data) => {\n return Boolean(data && data.login_session);\n};\nexport const resolveLoginCredentials = async (profileName, options, callerClientConfig) => {\n const credentials = await fromLoginCredentials({\n ...options,\n profile: profileName,\n })({ callerClientConfig });\n return setCredentialFeature(credentials, \"CREDENTIALS_PROFILE_LOGIN\", \"AC\");\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError, getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { LoginCredentialsFetcher } from \"./LoginCredentialsFetcher\";\nexport const fromLoginCredentials = (init) => async ({ callerClientConfig } = {}) => {\n init?.logger?.debug?.(\"@aws-sdk/credential-providers - fromLoginCredentials\");\n const profiles = await parseKnownFiles(init || {});\n const profileName = getProfileName({\n profile: init?.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile?.login_session) {\n throw new CredentialsProviderError(`Profile ${profileName} does not contain login_session.`, {\n tryNextLink: true,\n logger: init?.logger,\n });\n }\n const fetcher = new LoginCredentialsFetcher(profile, init, callerClientConfig);\n const credentials = await fetcher.loadCredentials();\n return setCredentialFeature(credentials, \"CREDENTIALS_LOGIN\", \"AD\");\n};\n",
"import { CredentialsProviderError, readFile } from \"@smithy/core/config\";\nimport { HttpRequest } from \"@smithy/core/protocols\";\nimport { createHash, createPrivateKey, createPublicKey, sign } from \"node:crypto\";\nimport { promises as fs } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nexport class LoginCredentialsFetcher {\n profileData;\n init;\n callerClientConfig;\n static REFRESH_THRESHOLD = 5 * 60 * 1000;\n constructor(profileData, init, callerClientConfig) {\n this.profileData = profileData;\n this.init = init;\n this.callerClientConfig = callerClientConfig;\n }\n async loadCredentials() {\n const token = await this.loadToken();\n if (!token) {\n throw new CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`, { tryNextLink: false, logger: this.logger });\n }\n const accessToken = token.accessToken;\n const now = Date.now();\n const expiryTime = new Date(accessToken.expiresAt).getTime();\n const timeUntilExpiry = expiryTime - now;\n if (timeUntilExpiry <= LoginCredentialsFetcher.REFRESH_THRESHOLD) {\n return this.refresh(token);\n }\n return {\n accessKeyId: accessToken.accessKeyId,\n secretAccessKey: accessToken.secretAccessKey,\n sessionToken: accessToken.sessionToken,\n accountId: accessToken.accountId,\n expiration: new Date(accessToken.expiresAt),\n };\n }\n get logger() {\n return this.init?.logger;\n }\n get loginSession() {\n return this.profileData.login_session;\n }\n async refresh(token) {\n const { SigninClient, CreateOAuth2TokenCommand } = await import(\"@aws-sdk/nested-clients/signin\");\n const { logger, userAgentAppId } = this.callerClientConfig ?? {};\n const isH2 = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n };\n const requestHandler = isH2(this.callerClientConfig?.requestHandler)\n ? undefined\n : this.callerClientConfig?.requestHandler;\n const region = this.profileData.region ?? (await this.callerClientConfig?.region?.()) ?? process.env.AWS_REGION;\n const client = new SigninClient({\n credentials: {\n accessKeyId: \"\",\n secretAccessKey: \"\",\n },\n region,\n requestHandler,\n logger,\n userAgentAppId,\n ...this.init?.clientConfig,\n });\n this.createDPoPInterceptor(client.middlewareStack);\n const commandInput = {\n tokenInput: {\n clientId: token.clientId,\n refreshToken: token.refreshToken,\n grantType: \"refresh_token\",\n },\n };\n try {\n const response = await client.send(new CreateOAuth2TokenCommand(commandInput));\n const { accessKeyId, secretAccessKey, sessionToken } = response.tokenOutput?.accessToken ?? {};\n const { refreshToken, expiresIn } = response.tokenOutput ?? {};\n if (!accessKeyId || !secretAccessKey || !sessionToken || !refreshToken) {\n throw new CredentialsProviderError(\"Token refresh response missing required fields\", {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n const expiresInMs = (expiresIn ?? 900) * 1000;\n const expiration = new Date(Date.now() + expiresInMs);\n const updatedToken = {\n ...token,\n accessToken: {\n ...token.accessToken,\n accessKeyId: accessKeyId,\n secretAccessKey: secretAccessKey,\n sessionToken: sessionToken,\n expiresAt: expiration.toISOString(),\n },\n refreshToken: refreshToken,\n };\n await this.saveToken(updatedToken);\n const newAccessToken = updatedToken.accessToken;\n return {\n accessKeyId: newAccessToken.accessKeyId,\n secretAccessKey: newAccessToken.secretAccessKey,\n sessionToken: newAccessToken.sessionToken,\n accountId: newAccessToken.accountId,\n expiration,\n };\n }\n catch (error) {\n if (error.name === \"AccessDeniedException\") {\n const errorType = error.error;\n let message;\n switch (errorType) {\n case \"TOKEN_EXPIRED\":\n message = \"Your session has expired. Please reauthenticate.\";\n break;\n case \"USER_CREDENTIALS_CHANGED\":\n message =\n \"Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.\";\n break;\n case \"INSUFFICIENT_PERMISSIONS\":\n message =\n \"Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.\";\n break;\n default:\n message = `Failed to refresh token: ${String(error)}. Please re-authenticate using \\`aws login\\``;\n }\n throw new CredentialsProviderError(message, { logger: this.logger, tryNextLink: false });\n }\n throw new CredentialsProviderError(`Failed to refresh token: ${String(error)}. Please re-authenticate using aws login`, { logger: this.logger });\n }\n }\n async loadToken() {\n const tokenFilePath = this.getTokenFilePath();\n try {\n let tokenData;\n try {\n tokenData = await readFile(tokenFilePath, { ignoreCache: this.init?.ignoreCache });\n }\n catch {\n tokenData = await fs.readFile(tokenFilePath, \"utf8\");\n }\n const token = JSON.parse(tokenData);\n const missingFields = [\"accessToken\", \"clientId\", \"refreshToken\", \"dpopKey\"].filter((k) => !token[k]);\n if (!token.accessToken?.accountId) {\n missingFields.push(\"accountId\");\n }\n if (missingFields.length > 0) {\n throw new CredentialsProviderError(`Token validation failed, missing fields: ${missingFields.join(\", \")}`, {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n return token;\n }\n catch (error) {\n throw new CredentialsProviderError(`Failed to load token from ${tokenFilePath}: ${String(error)}`, {\n logger: this.logger,\n tryNextLink: false,\n });\n }\n }\n async saveToken(token) {\n const tokenFilePath = this.getTokenFilePath();\n const directory = dirname(tokenFilePath);\n try {\n await fs.mkdir(directory, { recursive: true });\n }\n catch (error) {\n }\n await fs.writeFile(tokenFilePath, JSON.stringify(token, null, 2), \"utf8\");\n }\n getTokenFilePath() {\n const directory = process.env.AWS_LOGIN_CACHE_DIRECTORY ?? join(homedir(), \".aws\", \"login\", \"cache\");\n const loginSessionBytes = Buffer.from(this.loginSession, \"utf8\");\n const loginSessionSha256 = createHash(\"sha256\").update(loginSessionBytes).digest(\"hex\");\n return join(directory, `${loginSessionSha256}.json`);\n }\n derToRawSignature(derSignature) {\n let offset = 2;\n if (derSignature[offset] !== 0x02) {\n throw new Error(\"Invalid DER signature\");\n }\n offset++;\n const rLength = derSignature[offset++];\n let r = derSignature.subarray(offset, offset + rLength);\n offset += rLength;\n if (derSignature[offset] !== 0x02) {\n throw new Error(\"Invalid DER signature\");\n }\n offset++;\n const sLength = derSignature[offset++];\n let s = derSignature.subarray(offset, offset + sLength);\n r = r[0] === 0x00 ? r.subarray(1) : r;\n s = s[0] === 0x00 ? s.subarray(1) : s;\n const rPadded = Buffer.concat([Buffer.alloc(32 - r.length), r]);\n const sPadded = Buffer.concat([Buffer.alloc(32 - s.length), s]);\n return Buffer.concat([rPadded, sPadded]);\n }\n createDPoPInterceptor(middlewareStack) {\n middlewareStack.add((next) => async (args) => {\n if (HttpRequest.isInstance(args.request)) {\n const request = args.request;\n const actualEndpoint = `${request.protocol}//${request.hostname}${request.port ? `:${request.port}` : \"\"}${request.path}`;\n const dpop = await this.generateDpop(request.method, actualEndpoint);\n request.headers = {\n ...request.headers,\n DPoP: dpop,\n };\n }\n return next(args);\n }, {\n step: \"finalizeRequest\",\n name: \"dpopInterceptor\",\n override: true,\n });\n }\n async generateDpop(method = \"POST\", endpoint) {\n const token = await this.loadToken();\n try {\n const privateKey = createPrivateKey({\n key: token.dpopKey,\n format: \"pem\",\n type: \"sec1\",\n });\n const publicKey = createPublicKey(privateKey);\n const publicDer = publicKey.export({ format: \"der\", type: \"spki\" });\n let pointStart = -1;\n for (let i = 0; i < publicDer.length; i++) {\n if (publicDer[i] === 0x04) {\n pointStart = i;\n break;\n }\n }\n const x = publicDer.slice(pointStart + 1, pointStart + 33);\n const y = publicDer.slice(pointStart + 33, pointStart + 65);\n const header = {\n alg: \"ES256\",\n typ: \"dpop+jwt\",\n jwk: {\n kty: \"EC\",\n crv: \"P-256\",\n x: x.toString(\"base64url\"),\n y: y.toString(\"base64url\"),\n },\n };\n const payload = {\n jti: crypto.randomUUID(),\n htm: method,\n htu: endpoint,\n iat: Math.floor(Date.now() / 1000),\n };\n const headerB64 = Buffer.from(JSON.stringify(header)).toString(\"base64url\");\n const payloadB64 = Buffer.from(JSON.stringify(payload)).toString(\"base64url\");\n const message = `${headerB64}.${payloadB64}`;\n const asn1Signature = sign(\"sha256\", Buffer.from(message), privateKey);\n const rawSignature = this.derToRawSignature(asn1Signature);\n const signatureB64 = rawSignature.toString(\"base64url\");\n return `${message}.${signatureB64}`;\n }\n catch (error) {\n throw new CredentialsProviderError(`Failed to generate Dpop proof: ${error instanceof Error ? error.message : String(error)}`, { logger: this.logger, tryNextLink: false });\n }\n }\n}\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isProcessProfile = (arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\";\nexport const resolveProcessCredentials = async (options, profile) => import(\"@aws-sdk/credential-provider-process\").then(({ fromProcess }) => fromProcess({\n ...options,\n profile,\n})().then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\")));\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const resolveSsoCredentials = async (profile, profileData, options = {}, callerClientConfig) => {\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig,\n })({\n callerClientConfig,\n }).then((creds) => {\n if (profileData.sso_session) {\n return setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n }\n else {\n return setCredentialFeature(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n};\nexport const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isStaticCredsProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.aws_access_key_id === \"string\" &&\n typeof arg.aws_secret_access_key === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1;\nexport const resolveStaticCredentials = async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...(profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }),\n ...(profile.aws_account_id && { accountId: profile.aws_account_id }),\n };\n return setCredentialFeature(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexport const resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import(\"@aws-sdk/credential-provider-web-identity\").then(({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n})({\n callerClientConfig,\n}).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\")));\n"
],
"mappings": "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",
"debugId": "92D82AC52890ADD564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "482DBF980CF344FC64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token.js"],
"sourcesContent": [
"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_exports = {};\n__export(token_exports, {\n refreshToken: () => refreshToken\n});\nmodule.exports = __toCommonJS(token_exports);\nvar import_token_error = require(\"./token-error\");\nvar import_token_util = require(\"./token-util\");\nasync function refreshToken(options) {\n let projectId = options?.project;\n let teamId = options?.team;\n if (!projectId && !teamId) {\n const projectInfo = (0, import_token_util.findProjectInfo)();\n projectId = projectInfo.projectId;\n teamId = projectInfo.teamId;\n } else if (!projectId || !teamId) {\n const projectInfo = (0, import_token_util.findProjectInfo)();\n projectId = projectId ?? projectInfo.projectId;\n teamId = teamId ?? projectInfo.teamId;\n }\n if (!projectId) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`\"\n );\n }\n let maybeToken = (0, import_token_util.loadToken)(projectId);\n if (!maybeToken || (0, import_token_util.isExpired)((0, import_token_util.getTokenPayload)(maybeToken.token), options?.expirationBufferMs)) {\n const authToken = await (0, import_token_util.getVercelToken)({\n expirationBufferMs: options?.expirationBufferMs\n });\n maybeToken = await (0, import_token_util.getVercelOidcToken)(authToken, projectId, teamId);\n if (!maybeToken) {\n throw new import_token_error.VercelOidcTokenError(\"Failed to refresh OIDC token\");\n }\n (0, import_token_util.saveToken)(maybeToken, projectId);\n }\n process.env.VERCEL_OIDC_TOKEN = maybeToken.token;\n return;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n refreshToken\n});\n"
],
"mappings": ";2HACA,SAAuB,eAAnB,EAC0B,yBAA1B,EAC2B,oBAA3B,GADmB,OAEnB,EAAe,OAAO,UAAU,eAChC,EAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,EAAkB,CAAI,EACpC,GAAI,CAAC,EAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,EAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAgB,CAAC,EACrB,EAAS,EAAe,CACtB,aAAc,IAAM,CACtB,CAAC,EACD,EAAO,QAAU,EAAa,CAAa,EAC3C,IAAI,MACA,MACJ,eAAe,CAAY,CAAC,EAAS,CACnC,IAAI,EAAY,GAAS,QACrB,EAAS,GAAS,KACtB,GAAI,CAAC,GAAa,CAAC,EAAQ,CACzB,IAAM,GAAe,EAAG,EAAkB,iBAAiB,EAC3D,EAAY,EAAY,UACxB,EAAS,EAAY,OAChB,QAAI,CAAC,GAAa,CAAC,EAAQ,CAChC,IAAM,GAAe,EAAG,EAAkB,iBAAiB,EAC3D,EAAY,GAAa,EAAY,UACrC,EAAS,GAAU,EAAY,OAEjC,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,gGACF,EAEF,IAAI,GAAc,EAAG,EAAkB,WAAW,CAAS,EAC3D,GAAI,CAAC,IAAe,EAAG,EAAkB,YAAY,EAAG,EAAkB,iBAAiB,EAAW,KAAK,EAAG,GAAS,kBAAkB,EAAG,CAC1I,IAAM,EAAY,MAAO,EAAG,EAAkB,gBAAgB,CAC5D,mBAAoB,GAAS,kBAC/B,CAAC,EAED,GADA,EAAa,MAAO,EAAG,EAAkB,oBAAoB,EAAW,EAAW,CAAM,EACrF,CAAC,EACH,MAAM,IAAI,EAAmB,qBAAqB,8BAA8B,GAEjF,EAAG,EAAkB,WAAW,EAAY,CAAS,EAExD,QAAQ,IAAI,kBAAoB,EAAW,MAC3C",
"debugId": "6BE5B843D9F2E40964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "606987823002ACEF64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js"],
"sourcesContent": [
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst fs_1 = require(\"fs\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n const paths = ['/etc/machine-id', '/var/lib/dbus/machine-id'];\n for (const path of paths) {\n try {\n const result = await fs_1.promises.readFile(path, { encoding: 'utf8' });\n return result.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-linux.js.map"
],
"mappings": ";yHACA,YAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAK5B,IAAM,UACA,MACN,eAAe,CAAY,EAAG,CAC1B,IAAM,EAAQ,CAAC,kBAAmB,0BAA0B,EAC5D,QAAW,KAAQ,EACf,GAAI,CAEA,OADe,MAAM,EAAK,SAAS,SAAS,EAAM,CAAE,SAAU,MAAO,CAAC,GACxD,KAAK,EAEvB,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAGzD,OAEI,eAAe",
"debugId": "31DEF51DC4BD8E4F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "B4896AA91D22DCCB64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/mini/variant.shared.ts", "src/mini/session.shared.ts", "src/mini/theme.ts"],
"sourcesContent": [
"// Model variant resolution and persistence.\n//\n// Variants are provider-specific reasoning effort levels (e.g., \"high\", \"max\").\n// Resolution priority: CLI --variant flag > saved preference > session history.\n//\n// The saved variant persists across sessions in ~/.local/state/opencode/model.json\n// so your last-used variant sticks. Cycling (ctrl+t) updates both the active\n// variant and the persisted file.\nimport path from \"path\"\nimport { FSUtil } from \"@opencode-ai/core/fs-util\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { Context, Effect, Layer } from \"effect\"\nimport { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { makeGlobalNode } from \"@opencode-ai/core/effect/app-node\"\nimport { makeRuntime } from \"@opencode-ai/core/effect/runtime\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { createSession, sessionVariant, type RunSession, type SessionMessages } from \"./session.shared\"\nimport type { RunInput, RunProvider } from \"./types\"\n\nconst MODEL_FILE = path.join(Global.Path.state, \"model.json\")\n\ntype ModelState = Record<string, unknown> & {\n variant?: Record<string, string | undefined>\n}\ntype VariantService = {\n readonly resolveSavedVariant: (model: RunInput[\"model\"]) => Effect.Effect<string | undefined>\n readonly saveVariant: (model: RunInput[\"model\"], variant: string | undefined) => Effect.Effect<void>\n}\ntype VariantRuntime = {\n resolveSavedVariant(model: RunInput[\"model\"]): Promise<string | undefined>\n saveVariant(model: RunInput[\"model\"], variant: string | undefined): Promise<void>\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value)\n}\n\nclass Service extends Context.Service<Service, VariantService>()(\"@opencode/RunVariant\") {}\n\nfunction modelKey(provider: string, model: string): string {\n return `${provider}/${model}`\n}\n\nfunction variantKey(model: NonNullable<RunInput[\"model\"]>): string {\n return modelKey(model.providerID, model.modelID)\n}\n\nexport function modelInfo(providers: RunProvider[] | undefined, model: NonNullable<RunInput[\"model\"]>) {\n const provider = providers?.find((item) => item.id === model.providerID)\n return {\n provider: provider?.name ?? model.providerID,\n model: provider?.models[model.modelID]?.name ?? model.modelID,\n }\n}\n\nexport function formatModelLabel(\n model: NonNullable<RunInput[\"model\"]>,\n variant: string | undefined,\n providers?: RunProvider[],\n): string {\n const names = modelInfo(providers, model)\n const label = variant ? ` · ${variant}` : \"\"\n return `${names.model} · ${names.provider}${label}`\n}\n\nexport function cycleVariant(current: string | undefined, variants: string[]): string | undefined {\n if (variants.length === 0) {\n return undefined\n }\n\n if (!current) {\n return variants[0]\n }\n\n const idx = variants.indexOf(current)\n if (idx === -1 || idx === variants.length - 1) {\n return undefined\n }\n\n return variants[idx + 1]\n}\n\nexport function pickVariant(model: RunInput[\"model\"], input: RunSession | SessionMessages): string | undefined {\n return sessionVariant(Array.isArray(input) ? createSession(input) : input, model)\n}\n\nfunction fitVariant(value: string | undefined, variants: string[]): string | undefined {\n if (!value) {\n return undefined\n }\n\n if (variants.length === 0 || variants.includes(value)) {\n return value\n }\n\n return undefined\n}\n\n// Picks the active variant. CLI flag wins, then saved preference, then session\n// history. fitVariant() checks saved and session values against the available\n// variants list -- if the provider doesn't offer a variant, it drops.\nexport function resolveVariant(\n input: string | undefined,\n session: string | undefined,\n saved: string | undefined,\n variants: string[],\n): string | undefined {\n if (input !== undefined) {\n return input\n }\n\n const fallback = fitVariant(saved, variants)\n const current = fitVariant(session, variants)\n if (current !== undefined) {\n return current\n }\n\n return fallback\n}\n\nfunction state(value: unknown): ModelState {\n if (!isRecord(value)) {\n return {}\n }\n\n const variant = isRecord(value.variant)\n ? Object.fromEntries(\n Object.entries(value.variant).flatMap(([key, item]) => {\n if (typeof item !== \"string\") {\n return []\n }\n\n return [[key, item] as const]\n }),\n )\n : undefined\n\n return {\n ...value,\n variant,\n }\n}\n\nconst layer = Layer.fresh(\n Layer.effect(\n Service,\n Effect.gen(function* () {\n const file = yield* FSUtil.Service\n\n const read = Effect.fn(\"RunVariant.read\")(function* () {\n return yield* file.readJson(MODEL_FILE).pipe(\n Effect.map(state),\n Effect.catchCause(() => Effect.succeed(state(undefined))),\n )\n })\n\n const resolveSavedVariant = Effect.fn(\"RunVariant.resolveSavedVariant\")(function* (model: RunInput[\"model\"]) {\n if (!model) {\n return undefined\n }\n\n return (yield* read()).variant?.[variantKey(model)]\n })\n\n const saveVariant = Effect.fn(\"RunVariant.saveVariant\")(function* (\n model: RunInput[\"model\"],\n variant: string | undefined,\n ) {\n if (!model) {\n return\n }\n\n const current = yield* read()\n const next = {\n ...current.variant,\n }\n const key = variantKey(model)\n if (variant) {\n next[key] = variant\n }\n\n if (!variant) {\n delete next[key]\n }\n\n yield* file\n .writeJson(MODEL_FILE, {\n ...current,\n variant: next,\n })\n .pipe(Effect.orElseSucceed(() => undefined))\n })\n\n return Service.of({\n resolveSavedVariant,\n saveVariant,\n })\n }),\n ),\n)\n\nconst node = makeGlobalNode({ service: Service, layer, deps: [FSUtil.node] })\n\n/** @internal Exported for testing. */\nexport function createVariantRuntime(replacements?: readonly LayerNode.Replacement[]): VariantRuntime {\n const runtime = makeRuntime(Service, AppNodeBuilder.build(node, replacements))\n return {\n resolveSavedVariant: (model) => runtime.runPromise((svc) => svc.resolveSavedVariant(model)).catch(() => undefined),\n saveVariant: (model, variant) => runtime.runPromise((svc) => svc.saveVariant(model, variant)).catch(() => {}),\n }\n}\n\nconst runtime = createVariantRuntime()\n\nexport async function resolveSavedVariant(model: RunInput[\"model\"]): Promise<string | undefined> {\n return runtime.resolveSavedVariant(model)\n}\n\nexport function saveVariant(model: RunInput[\"model\"], variant: string | undefined): void {\n void runtime.saveVariant(model, variant)\n}\n",
"import type { SessionMessageInfo, SessionMessageUser } from \"@opencode-ai/client/promise\"\nimport { promptCopy, promptSame } from \"./prompt.shared\"\nimport type { RunInput, RunPrompt } from \"./types\"\n\nconst LIMIT = 200\n\nexport type SessionMessages = SessionMessageInfo[]\n\ntype Turn = {\n prompt: RunPrompt\n provider: string | undefined\n model: string | undefined\n variant: string | undefined\n}\n\nexport type RunSession = {\n first: boolean\n turns: Turn[]\n model?: NonNullable<RunInput[\"model\"]>\n variant?: string\n}\n\nfunction messagePrompt(message: SessionMessageUser): RunPrompt {\n return {\n text: message.text,\n parts: [\n ...(message.files ?? []).map((file) => ({\n type: \"file\" as const,\n url: file.source.type === \"uri\" ? file.source.uri : `data:${file.mime};base64,${file.data}`,\n mime: file.mime,\n filename: file.name,\n source: file.mention\n ? {\n type: \"file\",\n path: file.name ?? (file.source.type === \"uri\" ? file.source.uri : \"inline attachment\"),\n text: { start: file.mention.start, end: file.mention.end, value: file.mention.text },\n }\n : undefined,\n })),\n ...(message.agents ?? []).map((agent) => ({\n type: \"agent\" as const,\n name: agent.name,\n source: agent.mention\n ? { start: agent.mention.start, end: agent.mention.end, value: agent.mention.text }\n : undefined,\n })),\n ],\n }\n}\n\nexport function createSession(messages: SessionMessages): RunSession {\n return {\n first: messages.length === 0,\n turns: messages.flatMap((message) =>\n message.type === \"user\"\n ? [{ prompt: messagePrompt(message), provider: undefined, model: undefined, variant: undefined }]\n : [],\n ),\n }\n}\n\nexport async function resolveCurrentSession(\n sdk: RunInput[\"sdk\"],\n sessionID: string,\n limit = LIMIT,\n): Promise<RunSession> {\n const [response, session] = await Promise.all([\n sdk.message.list({ sessionID, limit, order: \"desc\" }),\n sdk.session.get({ sessionID }),\n ])\n const current = createSession(response.data.toReversed())\n return {\n ...current,\n turns: current.turns.map((turn) => ({\n ...turn,\n provider: session.model?.providerID,\n model: session.model?.id,\n variant: session.model?.variant,\n })),\n ...(session.model && {\n model: { providerID: session.model.providerID, modelID: session.model.id },\n variant: session.model.variant,\n }),\n }\n}\n\nexport function sessionHistory(session: RunSession, limit = LIMIT): RunPrompt[] {\n return session.turns\n .map((turn) => turn.prompt)\n .filter((prompt) => prompt.text.trim())\n .filter((prompt, index, prompts) => index === 0 || !promptSame(prompts[index - 1], prompt))\n .map(promptCopy)\n .slice(-limit)\n}\n\nexport function sessionVariant(session: RunSession, model: RunInput[\"model\"]): string | undefined {\n if (!model) return\n if (session.model?.providerID === model.providerID && session.model.modelID === model.modelID) return session.variant\n\n return session.turns.findLast((turn) => turn.provider === model.providerID && turn.model === model.modelID)?.variant\n}\n",
"// Theme resolution for direct interactive mode.\n//\n// Derives scrollback and footer colors from the terminal's actual palette.\n// resolveRunTheme() queries the renderer for the terminal's palette,\n// detects dark/light mode, builds a small system theme locally, and maps it to\n// the run footer + scrollback color model. Falls back to a hardcoded dark-mode\n// palette if detection fails.\nimport { RGBA, SyntaxStyle, type CliRenderer, type ColorInput, type TerminalColors } from \"@opentui/core\"\nimport type { TuiThemeCurrent } from \"@opencode-ai/plugin/tui\"\nimport type { EntryKind } from \"./types\"\n\ntype Tone = {\n body: ColorInput\n start?: ColorInput\n}\n\nexport type RunEntryTheme = Record<EntryKind, Tone>\n\nexport type RunSplashTheme = {\n left: ColorInput\n right: ColorInput\n leftShadow: ColorInput\n rightShadow: ColorInput\n}\n\nexport type RunFooterTheme = {\n highlight: ColorInput\n selected: ColorInput\n selectedText: ColorInput\n warning: ColorInput\n success: ColorInput\n error: ColorInput\n muted: ColorInput\n text: ColorInput\n status: ColorInput\n statusAccent: ColorInput\n shade: ColorInput\n surface: ColorInput\n pane: ColorInput\n border: ColorInput\n line: ColorInput\n}\n\nexport type RunBlockTheme = {\n highlight: ColorInput\n warning: ColorInput\n text: ColorInput\n muted: ColorInput\n syntax?: SyntaxStyle\n diffAdded: ColorInput\n diffRemoved: ColorInput\n diffAddedBg: ColorInput\n diffRemovedBg: ColorInput\n diffContextBg: ColorInput\n diffHighlightAdded: ColorInput\n diffHighlightRemoved: ColorInput\n diffLineNumber: ColorInput\n diffAddedLineNumberBg: ColorInput\n diffRemovedLineNumberBg: ColorInput\n}\n\nexport type RunTheme = {\n background: ColorInput\n footer: RunFooterTheme\n entry: RunEntryTheme\n splash: RunSplashTheme\n block: RunBlockTheme\n}\n\ntype ThemeColor = Exclude<keyof TuiThemeCurrent, \"thinkingOpacity\">\ntype HexColor = `#${string}`\ntype RefName = string\ntype Variant = {\n dark: HexColor | RefName\n light: HexColor | RefName\n}\ntype ColorValue = HexColor | RefName | Variant | RGBA | number\ntype ThemeJson = {\n defs?: Record<string, HexColor | RefName>\n theme: Omit<Record<ThemeColor, ColorValue>, \"selectedListItemText\" | \"backgroundMenu\"> & {\n selectedListItemText?: ColorValue\n backgroundMenu?: ColorValue\n thinkingOpacity?: number\n }\n}\n\ntype SharedSyntaxTheme = TuiThemeCurrent & {\n _hasSelectedListItemText: boolean\n}\n\nexport const transparent = RGBA.fromValues(0, 0, 0, 0)\n\nfunction alpha(color: RGBA, value: number): RGBA {\n return RGBA.fromValues(color.r, color.g, color.b, Math.max(0, Math.min(1, value)))\n}\n\nfunction rgba(hex: string, value?: number): RGBA {\n const color = RGBA.fromHex(hex)\n return value === undefined ? color : alpha(color, value)\n}\n\nfunction mode(bg: RGBA): \"dark\" | \"light\" {\n return luminance(bg) > 0.5 ? \"light\" : \"dark\"\n}\n\nfunction luminance(color: RGBA): number {\n return 0.299 * color.r + 0.587 * color.g + 0.114 * color.b\n}\n\nfunction fade(color: RGBA, base: RGBA, fallback: number, scale: number, limit: number): RGBA {\n if (color.a === 0) {\n return RGBA.fromValues(color.r, color.g, color.b, Math.max(0, Math.min(1, fallback)))\n }\n\n const target = Math.min(limit, color.a * scale)\n const mix = Math.min(1, target / color.a)\n\n return RGBA.fromValues(\n base.r + (color.r - base.r) * mix,\n base.g + (color.g - base.g) * mix,\n base.b + (color.b - base.b) * mix,\n color.a,\n )\n}\n\nfunction ansiToRgba(code: number): RGBA {\n if (code < 16) {\n const ansi = [\n \"#000000\",\n \"#800000\",\n \"#008000\",\n \"#808000\",\n \"#000080\",\n \"#800080\",\n \"#008080\",\n \"#c0c0c0\",\n \"#808080\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ffff00\",\n \"#0000ff\",\n \"#ff00ff\",\n \"#00ffff\",\n \"#ffffff\",\n ]\n return RGBA.fromHex(ansi[code] ?? \"#000000\")\n }\n\n if (code < 232) {\n const index = code - 16\n const b = index % 6\n const g = Math.floor(index / 6) % 6\n const r = Math.floor(index / 36)\n const value = (x: number) => (x === 0 ? 0 : x * 40 + 55)\n return RGBA.fromInts(value(r), value(g), value(b))\n }\n\n if (code < 256) {\n const gray = (code - 232) * 10 + 8\n return RGBA.fromInts(gray, gray, gray)\n }\n\n return RGBA.fromInts(0, 0, 0)\n}\n\nfunction tint(base: RGBA, overlay: RGBA, value: number): RGBA {\n return RGBA.fromInts(\n Math.round((base.r + (overlay.r - base.r) * value) * 255),\n Math.round((base.g + (overlay.g - base.g) * value) * 255),\n Math.round((base.b + (overlay.b - base.b) * value) * 255),\n )\n}\n\nfunction chroma(color: RGBA) {\n return Math.max(color.r, color.g, color.b) - Math.min(color.r, color.g, color.b)\n}\n\nfunction indexedPalette(colors: TerminalColors, size: number = Math.max(colors.palette.length, 16)): RGBA[] {\n return Array.from({ length: size }, (_, index) => {\n const value = colors.palette[index]\n return RGBA.fromIndex(index, value ? RGBA.fromHex(value) : ansiToRgba(index))\n })\n}\n\nfunction srgbToLinear(value: number): number {\n if (value <= 0.04045) {\n return value / 12.92\n }\n\n return ((value + 0.055) / 1.055) ** 2.4\n}\n\nfunction oklab(color: RGBA) {\n const r = srgbToLinear(color.r)\n const g = srgbToLinear(color.g)\n const b = srgbToLinear(color.b)\n\n const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b)\n const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b)\n const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b)\n\n return {\n l: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,\n }\n}\n\nfunction nearestIndexed(indexed: RGBA[], rgba: RGBA): RGBA {\n const target = oklab(rgba)\n const hit = indexed.reduce(\n (best, item) => {\n const sample = oklab(item)\n const dl = sample.l - target.l\n const da = sample.a - target.a\n const db = sample.b - target.b\n const dist = dl * dl * 2 + da * da + db * db\n if (dist >= best.dist) return best\n return {\n dist,\n item,\n }\n },\n {\n dist: Number.POSITIVE_INFINITY,\n item: indexed[0]!,\n },\n )\n\n return RGBA.clone(hit.item)\n}\n\nfunction paletteColor(colors: TerminalColors, index: number): RGBA {\n const value = colors.palette[index]\n return value ? RGBA.fromHex(value) : ansiToRgba(index)\n}\n\nfunction splashShadow(indexed: RGBA[], base: RGBA, overlay: RGBA, value: number): RGBA {\n const mixed = tint(base, overlay, value)\n return nearestIndexed(indexed, mixed)\n}\n\nexport function resolveTheme(theme: ThemeJson, pick: \"dark\" | \"light\"): TuiThemeCurrent {\n const defs = theme.defs ?? {}\n\n const resolveColor = (value: ColorValue, chain: string[] = []): RGBA => {\n if (value instanceof RGBA) return value\n\n if (typeof value === \"number\") {\n return RGBA.fromIndex(value, ansiToRgba(value))\n }\n\n if (typeof value !== \"string\") {\n return resolveColor(value[pick], chain)\n }\n\n if (value === \"transparent\" || value === \"none\") {\n return RGBA.fromInts(0, 0, 0, 0)\n }\n\n if (value.startsWith(\"#\")) {\n return RGBA.fromHex(value)\n }\n\n if (chain.includes(value)) {\n throw new Error(`Circular color reference: ${[...chain, value].join(\" -> \")}`)\n }\n\n const next = defs[value] ?? theme.theme[value as ThemeColor]\n if (next === undefined) {\n throw new Error(`Color reference \"${value}\" not found in defs or theme`)\n }\n\n return resolveColor(next, [...chain, value])\n }\n\n const resolved = Object.fromEntries(\n Object.entries(theme.theme)\n .filter(([key]) => key !== \"selectedListItemText\" && key !== \"backgroundMenu\" && key !== \"thinkingOpacity\")\n .map(([key, value]) => [key, resolveColor(value as ColorValue)]),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n return {\n ...(resolved as Record<ThemeColor, RGBA>),\n selectedListItemText:\n theme.theme.selectedListItemText === undefined\n ? resolved.background!\n : resolveColor(theme.theme.selectedListItemText),\n backgroundMenu:\n theme.theme.backgroundMenu === undefined ? resolved.backgroundElement! : resolveColor(theme.theme.backgroundMenu),\n thinkingOpacity: theme.theme.thinkingOpacity ?? 0.6,\n }\n}\n\nfunction generateGrayScale(bg: RGBA, isDark: boolean, map: (rgba: RGBA) => RGBA): Record<number, RGBA> {\n const r = bg.r * 255\n const g = bg.g * 255\n const b = bg.b * 255\n const lum = 0.299 * r + 0.587 * g + 0.114 * b\n const cast = 0.25 * (1 - chroma(bg)) ** 2\n\n const gray = (level: number) => {\n const factor = level / 12\n\n if (isDark && lum < 10) {\n const value = Math.floor(factor * 0.4 * 255)\n return map(RGBA.fromInts(value, value, value))\n }\n\n if (!isDark && lum > 245) {\n const value = Math.floor(255 - factor * 0.4 * 255)\n return map(RGBA.fromInts(value, value, value))\n }\n\n const value = isDark ? lum + (255 - lum) * factor * 0.4 : lum * (1 - factor * 0.4)\n const tone = RGBA.fromInts(Math.floor(value), Math.floor(value), Math.floor(value))\n if (cast === 0) return map(tone)\n\n const ratio = lum === 0 ? 0 : value / lum\n return map(\n tint(\n tone,\n RGBA.fromInts(\n Math.floor(Math.max(0, Math.min(r * ratio, 255))),\n Math.floor(Math.max(0, Math.min(g * ratio, 255))),\n Math.floor(Math.max(0, Math.min(b * ratio, 255))),\n ),\n cast,\n ),\n )\n }\n\n return Object.fromEntries(Array.from({ length: 12 }, (_, index) => [index + 1, gray(index + 1)]))\n}\n\nfunction generateMutedTextColor(bg: RGBA, isDark: boolean, map: (rgba: RGBA) => RGBA): RGBA {\n const lum = 0.299 * bg.r * 255 + 0.587 * bg.g * 255 + 0.114 * bg.b * 255\n const gray = isDark\n ? lum < 10\n ? 180\n : Math.min(Math.floor(160 + lum * 0.3), 200)\n : lum > 245\n ? 75\n : Math.max(Math.floor(100 - (255 - lum) * 0.2), 60)\n\n return map(RGBA.fromInts(gray, gray, gray))\n}\n\nexport function generateSystem(colors: TerminalColors, pick: \"dark\" | \"light\"): ThemeJson {\n const bg_snapshot = RGBA.fromHex(colors.defaultBackground ?? colors.palette[0]!)\n const fg_snapshot = RGBA.fromHex(colors.defaultForeground ?? colors.palette[7]!)\n const bg = RGBA.defaultBackground(bg_snapshot)\n const fg = RGBA.defaultForeground(fg_snapshot)\n const isDark = pick === \"dark\"\n\n const color = (index: number) => paletteColor(colors, index)\n\n const grays = generateGrayScale(bg_snapshot, isDark, (rgba) => rgba)\n const textMuted = generateMutedTextColor(bg_snapshot, isDark, (rgba) => rgba)\n\n const ansi = {\n red: color(1),\n green: color(2),\n yellow: color(3),\n blue: color(4),\n magenta: color(5),\n cyan: color(6),\n red_bright: color(9),\n green_bright: color(10),\n }\n\n const diff_alpha = isDark ? 0.22 : 0.14\n const diff_context_bg = grays[2]\n const primary = ansi.cyan\n const secondary = ansi.magenta\n\n return {\n theme: {\n primary,\n secondary,\n accent: primary,\n error: ansi.red,\n warning: ansi.yellow,\n success: ansi.green,\n info: ansi.cyan,\n text: fg,\n textMuted,\n selectedListItemText: bg,\n background: alpha(bg, 0),\n backgroundPanel: grays[2],\n backgroundElement: grays[3],\n backgroundMenu: grays[3],\n borderSubtle: grays[6],\n border: grays[7],\n borderActive: grays[8],\n diffAdded: ansi.green,\n diffRemoved: ansi.red,\n diffContext: grays[7],\n diffHunkHeader: grays[7],\n diffHighlightAdded: ansi.green_bright,\n diffHighlightRemoved: ansi.red_bright,\n diffAddedBg: tint(bg_snapshot, ansi.green, diff_alpha),\n diffRemovedBg: tint(bg_snapshot, ansi.red, diff_alpha),\n diffContextBg: diff_context_bg,\n diffLineNumber: textMuted,\n diffAddedLineNumberBg: tint(diff_context_bg, ansi.green, diff_alpha),\n diffRemovedLineNumberBg: tint(diff_context_bg, ansi.red, diff_alpha),\n markdownText: fg,\n markdownHeading: fg,\n markdownLink: ansi.blue,\n markdownLinkText: ansi.cyan,\n markdownCode: ansi.green,\n markdownBlockQuote: ansi.yellow,\n markdownEmph: ansi.yellow,\n markdownStrong: fg,\n markdownHorizontalRule: grays[7],\n markdownListItem: ansi.blue,\n markdownListEnumeration: ansi.cyan,\n markdownImage: ansi.blue,\n markdownImageText: ansi.cyan,\n markdownCodeBlock: fg,\n syntaxComment: textMuted,\n syntaxKeyword: ansi.magenta,\n syntaxFunction: ansi.blue,\n syntaxVariable: fg,\n syntaxString: ansi.green,\n syntaxNumber: ansi.yellow,\n syntaxType: ansi.cyan,\n syntaxOperator: ansi.cyan,\n syntaxPunctuation: fg,\n },\n }\n}\n\nfunction quantizeColor(indexed: RGBA[], rgba: RGBA): RGBA {\n if (rgba.a === 0 || rgba.intent === \"default\" || rgba.intent === \"indexed\") {\n return RGBA.clone(rgba)\n }\n\n return nearestIndexed(indexed, rgba)\n}\n\nfunction quantizeTheme(theme: TuiThemeCurrent, indexed: RGBA[]): TuiThemeCurrent {\n const resolved = Object.fromEntries(\n Object.entries(theme)\n .filter(([key]) => key !== \"thinkingOpacity\")\n .map(([key, value]) => [key, quantizeColor(indexed, value as RGBA)]),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n return {\n ...(resolved as Record<ThemeColor, RGBA>),\n thinkingOpacity: theme.thinkingOpacity,\n }\n}\n\nfunction splashTheme(theme: TuiThemeCurrent, indexed: RGBA[]): RunSplashTheme {\n const left = nearestIndexed(indexed, theme.textMuted)\n const right = nearestIndexed(indexed, theme.text)\n return {\n left,\n right,\n leftShadow: splashShadow(indexed, theme.background, left, 0.14),\n rightShadow: splashShadow(indexed, theme.background, right, 0.14),\n }\n}\n\nfunction map(\n footerTheme: TuiThemeCurrent,\n scrollbackTheme: TuiThemeCurrent,\n splash: RunSplashTheme,\n syntax?: SyntaxStyle,\n): RunTheme {\n const footerBackground = alpha(footerTheme.background, 1)\n const footerMode = mode(footerBackground)\n const shade = fade(footerTheme.backgroundMenu, footerTheme.background, 0.12, 0.56, 0.72)\n const surface = fade(footerTheme.backgroundMenu, footerTheme.background, 0.18, 0.76, 0.9)\n const line = fade(footerTheme.backgroundMenu, footerTheme.background, 0.24, 0.9, 0.98)\n const statusBase = tint(footerBackground, rgba(\"#000000\"), footerMode === \"dark\" ? 0.12 : 0.06)\n const statusAccentBase =\n footerMode === \"dark\" ? tint(footerBackground, rgba(\"#ffffff\"), 0.06) : tint(statusBase, rgba(\"#000000\"), 0.04)\n const collapsedStatus = footerMode === \"dark\" && luminance(statusBase) <= 0.04\n // Pure-black backgrounds need a slight lift or the row disappears into the terminal background.\n const status = collapsedStatus ? tint(statusBase, statusAccentBase, 0.7) : statusBase\n const statusAccent = collapsedStatus ? tint(status, rgba(\"#ffffff\"), 0.06) : statusAccentBase\n\n return {\n background: footerTheme.background,\n footer: {\n highlight: footerTheme.primary,\n selected: footerTheme.backgroundElement,\n selectedText: footerTheme.selectedListItemText,\n warning: footerTheme.warning,\n success: footerTheme.success,\n error: footerTheme.error,\n muted: footerTheme.textMuted,\n text: footerTheme.text,\n status,\n statusAccent,\n shade,\n surface,\n pane: footerTheme.backgroundMenu,\n border: footerTheme.border,\n line,\n },\n entry: {\n system: {\n body: scrollbackTheme.textMuted,\n },\n user: {\n body: scrollbackTheme.primary,\n },\n assistant: {\n body: scrollbackTheme.text,\n },\n reasoning: {\n body: scrollbackTheme.textMuted,\n },\n tool: {\n body: scrollbackTheme.text,\n start: scrollbackTheme.textMuted,\n },\n error: {\n body: scrollbackTheme.error,\n },\n },\n splash,\n block: {\n highlight: scrollbackTheme.primary,\n warning: scrollbackTheme.warning,\n text: scrollbackTheme.text,\n muted: scrollbackTheme.textMuted,\n syntax,\n diffAdded: scrollbackTheme.diffAdded,\n diffRemoved: scrollbackTheme.diffRemoved,\n diffAddedBg: transparent,\n diffRemovedBg: transparent,\n diffContextBg: transparent,\n diffHighlightAdded: scrollbackTheme.diffHighlightAdded,\n diffHighlightRemoved: scrollbackTheme.diffHighlightRemoved,\n diffLineNumber: scrollbackTheme.diffLineNumber,\n diffAddedLineNumberBg: scrollbackTheme.diffAddedLineNumberBg,\n diffRemovedLineNumberBg: scrollbackTheme.diffRemovedLineNumberBg,\n },\n }\n}\n\nconst seed = {\n highlight: RGBA.fromIndex(6, rgba(\"#38bdf8\")),\n muted: RGBA.fromIndex(8, rgba(\"#64748b\")),\n text: RGBA.defaultForeground(rgba(\"#f8fafc\")),\n panel: rgba(\"#0f172a\"),\n success: RGBA.fromIndex(2, rgba(\"#22c55e\")),\n warning: RGBA.fromIndex(3, rgba(\"#f59e0b\")),\n error: RGBA.fromIndex(1, rgba(\"#ef4444\")),\n}\n\nfunction tone(body: ColorInput, start?: ColorInput): Tone {\n return {\n body,\n start,\n }\n}\n\nconst fallbackSplashIndexed = Array.from({ length: 256 }, (_, index) => RGBA.fromIndex(index))\nconst fallbackSplashLeft = RGBA.fromIndex(67)\nconst fallbackSplashRight = RGBA.fromIndex(110)\n\nexport const RUN_THEME_FALLBACK: RunTheme = {\n background: RGBA.fromValues(0, 0, 0, 0),\n footer: {\n highlight: seed.highlight,\n selected: seed.text,\n selectedText: seed.panel,\n warning: seed.warning,\n success: seed.success,\n error: seed.error,\n muted: seed.muted,\n text: seed.text,\n status: tint(seed.panel, rgba(\"#000000\"), 0.12),\n statusAccent: tint(seed.panel, rgba(\"#ffffff\"), 0.06),\n shade: alpha(seed.panel, 0.68),\n surface: alpha(seed.panel, 0.86),\n pane: seed.panel,\n border: seed.muted,\n line: alpha(seed.panel, 0.96),\n },\n entry: {\n system: tone(seed.muted),\n user: tone(seed.highlight),\n assistant: tone(seed.text),\n reasoning: tone(seed.muted),\n tool: tone(seed.text, seed.muted),\n error: tone(seed.error),\n },\n splash: {\n left: fallbackSplashLeft,\n right: fallbackSplashRight,\n leftShadow: splashShadow(fallbackSplashIndexed, RGBA.fromValues(0, 0, 0, 0), fallbackSplashLeft, 0.14),\n rightShadow: splashShadow(fallbackSplashIndexed, RGBA.fromValues(0, 0, 0, 0), fallbackSplashRight, 0.14),\n },\n block: {\n highlight: seed.highlight,\n warning: seed.warning,\n text: seed.text,\n muted: seed.muted,\n diffAdded: seed.success,\n diffRemoved: seed.error,\n diffAddedBg: alpha(seed.success, 0.18),\n diffRemovedBg: alpha(seed.error, 0.18),\n diffContextBg: alpha(seed.panel, 0.72),\n diffHighlightAdded: seed.success,\n diffHighlightRemoved: seed.error,\n diffLineNumber: seed.muted,\n diffAddedLineNumberBg: alpha(seed.success, 0.12),\n diffRemovedLineNumberBg: alpha(seed.error, 0.12),\n },\n}\n\nexport async function resolveRunTheme(renderer: CliRenderer): Promise<RunTheme> {\n try {\n const colors = await renderer.getPalette({\n size: 256,\n })\n const bg = colors.defaultBackground ?? colors.palette[0]\n if (!bg) {\n return RUN_THEME_FALLBACK\n }\n\n // Palette-only terminal reloads can leave renderer.themeMode stale, but\n // ANSI slot zero is not the terminal background when OSC 11 is absent.\n const pick = colors.defaultBackground\n ? mode(RGBA.fromHex(colors.defaultBackground))\n : (renderer.themeMode ?? mode(RGBA.fromHex(bg)))\n const footerTheme = resolveTheme(generateSystem(colors, pick), pick)\n const indexed = indexedPalette(colors, 256)\n const scrollbackTheme = quantizeTheme(footerTheme, indexed)\n const shared = await import(\"@opencode-ai/tui/context/theme\")\n const syntaxTheme: SharedSyntaxTheme = {\n ...scrollbackTheme,\n _hasSelectedListItemText: true,\n }\n const syntax = shared.generateSyntax(syntaxTheme)\n return map(footerTheme, scrollbackTheme, splashTheme(scrollbackTheme, indexed), syntax)\n } catch {\n return RUN_THEME_FALLBACK\n }\n}\n"
],
"mappings": ";mcAQA,0BCJA,SAAM,OAAQ,SAkBd,cAAS,OAAa,MAAC,OAAwC,CAC7D,MAAO,CACL,KAAM,EAAQ,KACd,MAAO,CACL,IAAI,EAAQ,OAAS,CAAC,GAAG,IAAI,CAAC,KAAU,CACtC,KAAM,OACN,IAAK,EAAK,OAAO,OAAS,MAAQ,EAAK,OAAO,IAAM,QAAQ,EAAK,eAAe,EAAK,OACrF,KAAM,EAAK,KACX,SAAU,EAAK,KACf,OAAQ,EAAK,QACT,CACE,KAAM,OACN,KAAM,EAAK,OAAS,EAAK,OAAO,OAAS,MAAQ,EAAK,OAAO,IAAM,qBACnE,KAAM,CAAE,MAAO,EAAK,QAAQ,MAAO,IAAK,EAAK,QAAQ,IAAK,MAAO,EAAK,QAAQ,IAAK,CACrF,EACA,MACN,EAAE,EACF,IAAI,EAAQ,QAAU,CAAC,GAAG,IAAI,CAAC,KAAW,CACxC,KAAM,QACN,KAAM,EAAM,KACZ,OAAQ,EAAM,QACV,CAAE,MAAO,EAAM,QAAQ,MAAO,IAAK,EAAM,QAAQ,IAAK,MAAO,EAAM,QAAQ,IAAK,EAChF,MACN,EAAE,CACJ,CACF,EAGK,SAAS,CAAa,CAAC,EAAuC,CACnE,MAAO,CACL,MAAO,EAAS,SAAW,EAC3B,MAAO,EAAS,QAAQ,CAAC,IACvB,EAAQ,OAAS,OACb,CAAC,CAAE,OAAQ,GAAc,CAAO,EAAG,SAAU,OAAW,MAAO,OAAW,QAAS,MAAU,CAAC,EAC9F,CAAC,CACP,CACF,EAGF,eAAsB,EAAqB,CACzC,EACA,EACA,EAAQ,EACa,CACrB,IAAO,EAAU,GAAW,MAAM,QAAQ,IAAI,CAC5C,EAAI,QAAQ,KAAK,CAAE,YAAW,QAAO,MAAO,MAAO,CAAC,EACpD,EAAI,QAAQ,IAAI,CAAE,WAAU,CAAC,CAC/B,CAAC,EACK,EAAU,EAAc,EAAS,KAAK,WAAW,CAAC,EACxD,MAAO,IACF,EACH,MAAO,EAAQ,MAAM,IAAI,CAAC,KAAU,IAC/B,EACH,SAAU,EAAQ,OAAO,WACzB,MAAO,EAAQ,OAAO,GACtB,QAAS,EAAQ,OAAO,OAC1B,EAAE,KACE,EAAQ,OAAS,CACnB,MAAO,CAAE,WAAY,EAAQ,MAAM,WAAY,QAAS,EAAQ,MAAM,EAAG,EACzE,QAAS,EAAQ,MAAM,OACzB,CACF,EAGK,SAAS,EAAc,CAAC,EAAqB,EAAQ,EAAoB,CAC9E,OAAO,EAAQ,MACZ,IAAI,CAAC,IAAS,EAAK,MAAM,EACzB,OAAO,CAAC,IAAW,EAAO,KAAK,KAAK,CAAC,EACrC,OAAO,CAAC,EAAQ,EAAO,IAAY,IAAU,GAAK,CAAC,EAAW,EAAQ,EAAQ,GAAI,CAAM,CAAC,EACzF,IAAI,CAAU,EACd,MAAM,CAAC,CAAK,EAGV,SAAS,CAAc,CAAC,EAAqB,EAA8C,CAChG,GAAI,CAAC,EAAO,OACZ,GAAI,EAAQ,OAAO,aAAe,EAAM,YAAc,EAAQ,MAAM,UAAY,EAAM,QAAS,OAAO,EAAQ,QAE9G,OAAO,EAAQ,MAAM,SAAS,CAAC,IAAS,EAAK,WAAa,EAAM,YAAc,EAAK,QAAU,EAAM,OAAO,GAAG,QDhF/G,IAAM,EAAa,GAAK,KAAK,EAAO,KAAK,MAAO,YAAY,EAc5D,SAAS,CAAQ,CAAC,EAAkD,CAClE,MAAO,CAAC,CAAC,GAAS,OAAO,IAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,EAGrE,MAAM,UAAgB,EAAQ,QAAiC,EAAE,sBAAsB,CAAE,CAAC,CAE1F,SAAS,EAAQ,CAAC,EAAkB,EAAuB,CACzD,MAAO,GAAG,KAAY,IAGxB,SAAS,CAAU,CAAC,EAA+C,CACjE,OAAO,GAAS,EAAM,WAAY,EAAM,OAAO,EAG1C,SAAS,EAAS,CAAC,EAAsC,EAAuC,CACrG,IAAM,EAAW,GAAW,KAAK,CAAC,IAAS,EAAK,KAAO,EAAM,UAAU,EACvE,MAAO,CACL,SAAU,GAAU,MAAQ,EAAM,WAClC,MAAO,GAAU,OAAO,EAAM,UAAU,MAAQ,EAAM,OACxD,EAGK,SAAS,EAAgB,CAC9B,EACA,EACA,EACQ,CACR,IAAM,EAAQ,GAAU,EAAW,CAAK,EAClC,EAAQ,EAAU,SAAK,IAAY,GACzC,MAAO,GAAG,EAAM,cAAU,EAAM,WAAW,IAGtC,SAAS,EAAY,CAAC,EAA6B,EAAwC,CAChG,GAAI,EAAS,SAAW,EACtB,OAGF,GAAI,CAAC,EACH,OAAO,EAAS,GAGlB,IAAM,EAAM,EAAS,QAAQ,CAAO,EACpC,GAAI,IAAQ,IAAM,IAAQ,EAAS,OAAS,EAC1C,OAGF,OAAO,EAAS,EAAM,GAGjB,SAAS,EAAW,CAAC,EAA0B,EAAyD,CAC7G,OAAO,EAAe,MAAM,QAAQ,CAAK,EAAI,EAAc,CAAK,EAAI,EAAO,CAAK,EAGlF,SAAS,CAAU,CAAC,EAA2B,EAAwC,CACrF,GAAI,CAAC,EACH,OAGF,GAAI,EAAS,SAAW,GAAK,EAAS,SAAS,CAAK,EAClD,OAAO,EAGT,OAMK,SAAS,EAAc,CAC5B,EACA,EACA,EACA,EACoB,CACpB,GAAI,IAAU,OACZ,OAAO,EAGT,IAAM,EAAW,EAAW,EAAO,CAAQ,EACrC,EAAU,EAAW,EAAS,CAAQ,EAC5C,GAAI,IAAY,OACd,OAAO,EAGT,OAAO,EAGT,SAAS,CAAK,CAAC,EAA4B,CACzC,GAAI,CAAC,EAAS,CAAK,EACjB,MAAO,CAAC,EAGV,IAAM,EAAU,EAAS,EAAM,OAAO,EAClC,OAAO,YACL,OAAO,QAAQ,EAAM,OAAO,EAAE,QAAQ,EAAE,EAAK,KAAU,CACrD,GAAI,OAAO,IAAS,SAClB,MAAO,CAAC,EAGV,MAAO,CAAC,CAAC,EAAK,CAAI,CAAU,EAC7B,CACH,EACA,OAEJ,MAAO,IACF,EACH,SACF,EAGF,IAAM,GAAQ,EAAM,MAClB,EAAM,OACJ,EACA,EAAO,IAAI,SAAU,EAAG,CACtB,IAAM,EAAO,MAAO,EAAO,QAErB,EAAO,EAAO,GAAG,iBAAiB,EAAE,SAAU,EAAG,CACrD,OAAO,MAAO,EAAK,SAAS,CAAU,EAAE,KACtC,EAAO,IAAI,CAAK,EAChB,EAAO,WAAW,IAAM,EAAO,QAAQ,EAAM,MAAS,CAAC,CAAC,CAC1D,EACD,EAEK,EAAsB,EAAO,GAAG,gCAAgC,EAAE,SAAU,CAAC,EAA0B,CAC3G,GAAI,CAAC,EACH,OAGF,OAAQ,MAAO,EAAK,GAAG,UAAU,EAAW,CAAK,GAClD,EAEK,EAAc,EAAO,GAAG,wBAAwB,EAAE,SAAU,CAChE,EACA,EACA,CACA,GAAI,CAAC,EACH,OAGF,IAAM,EAAU,MAAO,EAAK,EACtB,EAAO,IACR,EAAQ,OACb,EACM,EAAM,EAAW,CAAK,EAC5B,GAAI,EACF,EAAK,GAAO,EAGd,GAAI,CAAC,EACH,OAAO,EAAK,GAGd,MAAO,EACJ,UAAU,EAAY,IAClB,EACH,QAAS,CACX,CAAC,EACA,KAAK,EAAO,cAAc,IAAG,CAAG,OAAS,CAAC,EAC9C,EAED,OAAO,EAAQ,GAAG,CAChB,sBACA,aACF,CAAC,EACF,CACH,CACF,EAEM,GAAO,EAAe,CAAE,QAAS,EAAS,SAAO,KAAM,CAAC,EAAO,IAAI,CAAE,CAAC,EAGrE,SAAS,EAAoB,CAAC,EAAiE,CACpG,IAAM,EAAU,EAAY,EAAS,EAAe,MAAM,GAAM,CAAY,CAAC,EAC7E,MAAO,CACL,oBAAqB,CAAC,IAAU,EAAQ,WAAW,CAAC,IAAQ,EAAI,oBAAoB,CAAK,CAAC,EAAE,MAAM,IAAG,CAAG,OAAS,EACjH,YAAa,CAAC,EAAO,IAAY,EAAQ,WAAW,CAAC,IAAQ,EAAI,YAAY,EAAO,CAAO,CAAC,EAAE,MAAM,IAAM,EAAE,CAC9G,EAGF,IAAM,EAAU,GAAqB,EAErC,eAAsB,EAAmB,CAAC,EAAuD,CAC/F,OAAO,EAAQ,oBAAoB,CAAK,EAGnC,SAAS,EAAW,CAAC,EAA0B,EAAmC,CAClF,EAAQ,YAAY,EAAO,CAAO,EEjIlC,IAAM,EAAc,EAAK,WAAW,EAAG,EAAG,EAAG,CAAC,EAErD,SAAS,CAAK,CAAC,EAAa,EAAqB,CAC/C,OAAO,EAAK,WAAW,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAK,CAAC,CAAC,EAGnF,SAAS,CAAI,CAAC,EAAa,EAAsB,CAC/C,IAAM,EAAQ,EAAK,QAAQ,CAAG,EAC9B,OAAO,IAAU,OAAY,EAAQ,EAAM,EAAO,CAAK,EAGzD,SAAS,CAAI,CAAC,EAA4B,CACxC,OAAO,GAAU,CAAE,EAAI,IAAM,QAAU,OAGzC,SAAS,EAAS,CAAC,EAAqB,CACtC,MAAO,OAAQ,EAAM,EAAI,MAAQ,EAAM,EAAI,MAAQ,EAAM,EAG3D,SAAS,CAAI,CAAC,EAAa,EAAY,EAAkB,EAAe,EAAqB,CAC3F,GAAI,EAAM,IAAM,EACd,OAAO,EAAK,WAAW,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAQ,CAAC,CAAC,EAGtF,IAAM,EAAS,KAAK,IAAI,EAAO,EAAM,EAAI,CAAK,EACxC,EAAM,KAAK,IAAI,EAAG,EAAS,EAAM,CAAC,EAExC,OAAO,EAAK,WACV,EAAK,GAAK,EAAM,EAAI,EAAK,GAAK,EAC9B,EAAK,GAAK,EAAM,EAAI,EAAK,GAAK,EAC9B,EAAK,GAAK,EAAM,EAAI,EAAK,GAAK,EAC9B,EAAM,CACR,EAGF,SAAS,CAAU,CAAC,EAAoB,CACtC,GAAI,EAAO,GAAI,CACb,IAAM,EAAO,CACX,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,OAAO,EAAK,QAAQ,EAAK,IAAS,SAAS,EAG7C,GAAI,EAAO,IAAK,CACd,IAAM,EAAQ,EAAO,GACf,EAAI,EAAQ,EACZ,EAAI,KAAK,MAAM,EAAQ,CAAC,EAAI,EAC5B,EAAI,KAAK,MAAM,EAAQ,EAAE,EACzB,EAAQ,CAAC,IAAe,IAAM,EAAI,EAAI,EAAI,GAAK,GACrD,OAAO,EAAK,SAAS,EAAM,CAAC,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAGnD,GAAI,EAAO,IAAK,CACd,IAAM,GAAQ,EAAO,KAAO,GAAK,EACjC,OAAO,EAAK,SAAS,EAAM,EAAM,CAAI,EAGvC,OAAO,EAAK,SAAS,EAAG,EAAG,CAAC,EAG9B,SAAS,CAAI,CAAC,EAAY,EAAe,EAAqB,CAC5D,OAAO,EAAK,SACV,KAAK,OAAO,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,GAAS,GAAG,EACxD,KAAK,OAAO,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,GAAS,GAAG,EACxD,KAAK,OAAO,EAAK,GAAK,EAAQ,EAAI,EAAK,GAAK,GAAS,GAAG,CAC1D,EAGF,SAAS,EAAM,CAAC,EAAa,CAC3B,OAAO,KAAK,IAAI,EAAM,EAAG,EAAM,EAAG,EAAM,CAAC,EAAI,KAAK,IAAI,EAAM,EAAG,EAAM,EAAG,EAAM,CAAC,EAGjF,SAAS,EAAc,CAAC,EAAwB,EAAe,KAAK,IAAI,EAAO,QAAQ,OAAQ,EAAE,EAAW,CAC1G,OAAO,MAAM,KAAK,CAAE,OAAQ,CAAK,EAAG,CAAC,EAAG,IAAU,CAChD,IAAM,EAAQ,EAAO,QAAQ,GAC7B,OAAO,EAAK,UAAU,EAAO,EAAQ,EAAK,QAAQ,CAAK,EAAI,EAAW,CAAK,CAAC,EAC7E,EAGH,SAAS,CAAY,CAAC,EAAuB,CAC3C,GAAI,GAAS,QACX,OAAO,EAAQ,MAGjB,QAAS,EAAQ,OAAS,QAAU,IAGtC,SAAS,CAAK,CAAC,EAAa,CAC1B,IAAM,EAAI,EAAa,EAAM,CAAC,EACxB,EAAI,EAAa,EAAM,CAAC,EACxB,EAAI,EAAa,EAAM,CAAC,EAExB,EAAI,KAAK,KAAK,aAAe,EAAI,aAAe,EAAI,aAAe,CAAC,EACpE,EAAI,KAAK,KAAK,aAAe,EAAI,aAAe,EAAI,aAAe,CAAC,EACpE,EAAI,KAAK,KAAK,aAAe,EAAI,aAAe,EAAI,aAAe,CAAC,EAE1E,MAAO,CACL,EAAG,aAAe,EAAI,YAAc,EAAI,aAAe,EACvD,EAAG,aAAe,EAAI,YAAc,EAAI,aAAe,EACvD,EAAG,aAAe,EAAI,aAAe,EAAI,YAAc,CACzD,EAGF,SAAS,CAAc,CAAC,EAAiB,EAAkB,CACzD,IAAM,EAAS,EAAM,CAAI,EACnB,EAAM,EAAQ,OAClB,CAAC,EAAM,IAAS,CACd,IAAM,EAAS,EAAM,CAAI,EACnB,EAAK,EAAO,EAAI,EAAO,EACvB,EAAK,EAAO,EAAI,EAAO,EACvB,EAAK,EAAO,EAAI,EAAO,EACvB,EAAO,EAAK,EAAK,EAAI,EAAK,EAAK,EAAK,EAC1C,GAAI,GAAQ,EAAK,KAAM,OAAO,EAC9B,MAAO,CACL,OACA,MACF,GAEF,CACE,KAAM,OAAO,kBACb,KAAM,EAAQ,EAChB,CACF,EAEA,OAAO,EAAK,MAAM,EAAI,IAAI,EAG5B,SAAS,EAAY,CAAC,EAAwB,EAAqB,CACjE,IAAM,EAAQ,EAAO,QAAQ,GAC7B,OAAO,EAAQ,EAAK,QAAQ,CAAK,EAAI,EAAW,CAAK,EAGvD,SAAS,CAAY,CAAC,EAAiB,EAAY,EAAe,EAAqB,CACrF,IAAM,EAAQ,EAAK,EAAM,EAAS,CAAK,EACvC,OAAO,EAAe,EAAS,CAAK,EAG/B,SAAS,EAAY,CAAC,EAAkB,EAAyC,CACtF,IAAM,EAAO,EAAM,MAAQ,CAAC,EAEtB,EAAe,CAAC,EAAmB,EAAkB,CAAC,IAAY,CACtE,GAAI,aAAiB,EAAM,OAAO,EAElC,GAAI,OAAO,IAAU,SACnB,OAAO,EAAK,UAAU,EAAO,EAAW,CAAK,CAAC,EAGhD,GAAI,OAAO,IAAU,SACnB,OAAO,EAAa,EAAM,GAAO,CAAK,EAGxC,GAAI,IAAU,eAAiB,IAAU,OACvC,OAAO,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAGjC,GAAI,EAAM,WAAW,GAAG,EACtB,OAAO,EAAK,QAAQ,CAAK,EAG3B,GAAI,EAAM,SAAS,CAAK,EACtB,MAAU,MAAM,6BAA6B,CAAC,GAAG,EAAO,CAAK,EAAE,KAAK,MAAM,GAAG,EAG/E,IAAM,EAAO,EAAK,IAAU,EAAM,MAAM,GACxC,GAAI,IAAS,OACX,MAAU,MAAM,oBAAoB,+BAAmC,EAGzE,OAAO,EAAa,EAAM,CAAC,GAAG,EAAO,CAAK,CAAC,GAGvC,EAAW,OAAO,YACtB,OAAO,QAAQ,EAAM,KAAK,EACvB,OAAO,EAAE,KAAS,IAAQ,wBAA0B,IAAQ,kBAAoB,IAAQ,iBAAiB,EACzG,IAAI,EAAE,EAAK,KAAW,CAAC,EAAK,EAAa,CAAmB,CAAC,CAAC,CACnE,EAEA,MAAO,IACD,EACJ,qBACE,EAAM,MAAM,uBAAyB,OACjC,EAAS,WACT,EAAa,EAAM,MAAM,oBAAoB,EACnD,eACE,EAAM,MAAM,iBAAmB,OAAY,EAAS,kBAAqB,EAAa,EAAM,MAAM,cAAc,EAClH,gBAAiB,EAAM,MAAM,iBAAmB,GAClD,EAGF,SAAS,EAAiB,CAAC,EAAU,EAAiB,EAAiD,CACrG,IAAM,EAAI,EAAG,EAAI,IACX,EAAI,EAAG,EAAI,IACX,EAAI,EAAG,EAAI,IACX,EAAM,MAAQ,EAAI,MAAQ,EAAI,MAAQ,EACtC,EAAO,MAAQ,EAAI,GAAO,CAAE,IAAM,EAElC,EAAO,CAAC,IAAkB,CAC9B,IAAM,EAAS,EAAQ,GAEvB,GAAI,GAAU,EAAM,GAAI,CACtB,IAAM,EAAQ,KAAK,MAAM,EAAS,IAAM,GAAG,EAC3C,OAAO,EAAI,EAAK,SAAS,EAAO,EAAO,CAAK,CAAC,EAG/C,GAAI,CAAC,GAAU,EAAM,IAAK,CACxB,IAAM,EAAQ,KAAK,MAAM,IAAM,EAAS,IAAM,GAAG,EACjD,OAAO,EAAI,EAAK,SAAS,EAAO,EAAO,CAAK,CAAC,EAG/C,IAAM,EAAQ,EAAS,GAAO,IAAM,GAAO,EAAS,IAAM,GAAO,EAAI,EAAS,KACxE,EAAO,EAAK,SAAS,KAAK,MAAM,CAAK,EAAG,KAAK,MAAM,CAAK,EAAG,KAAK,MAAM,CAAK,CAAC,EAClF,GAAI,IAAS,EAAG,OAAO,EAAI,CAAI,EAE/B,IAAM,EAAQ,IAAQ,EAAI,EAAI,EAAQ,EACtC,OAAO,EACL,EACE,EACA,EAAK,SACH,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,EAAO,GAAG,CAAC,CAAC,EAChD,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,EAAO,GAAG,CAAC,CAAC,EAChD,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,EAAO,GAAG,CAAC,CAAC,CAClD,EACA,CACF,CACF,GAGF,OAAO,OAAO,YAAY,MAAM,KAAK,CAAE,OAAQ,EAAG,EAAG,CAAC,EAAG,IAAU,CAAC,EAAQ,EAAG,EAAK,EAAQ,CAAC,CAAC,CAAC,CAAC,EAGlG,SAAS,EAAsB,CAAC,EAAU,EAAiB,EAAiC,CAC1F,IAAM,EAAM,MAAQ,EAAG,EAAI,IAAM,MAAQ,EAAG,EAAI,IAAM,MAAQ,EAAG,EAAI,IAC/D,EAAO,EACT,EAAM,GACJ,IACA,KAAK,IAAI,KAAK,MAAM,IAAM,EAAM,GAAG,EAAG,GAAG,EAC3C,EAAM,IACJ,GACA,KAAK,IAAI,KAAK,MAAM,KAAO,IAAM,GAAO,GAAG,EAAG,EAAE,EAEtD,OAAO,EAAI,EAAK,SAAS,EAAM,EAAM,CAAI,CAAC,EAGrC,SAAS,EAAc,CAAC,EAAwB,EAAmC,CACxF,IAAM,EAAc,EAAK,QAAQ,EAAO,mBAAqB,EAAO,QAAQ,EAAG,EACzE,EAAc,EAAK,QAAQ,EAAO,mBAAqB,EAAO,QAAQ,EAAG,EACzE,EAAK,EAAK,kBAAkB,CAAW,EACvC,EAAK,EAAK,kBAAkB,CAAW,EACvC,EAAS,IAAS,OAElB,EAAQ,CAAC,IAAkB,GAAa,EAAQ,CAAK,EAErD,EAAQ,GAAkB,EAAa,EAAQ,CAAC,IAAS,CAAI,EAC7D,EAAY,GAAuB,EAAa,EAAQ,CAAC,IAAS,CAAI,EAEtE,EAAO,CACX,IAAK,EAAM,CAAC,EACZ,MAAO,EAAM,CAAC,EACd,OAAQ,EAAM,CAAC,EACf,KAAM,EAAM,CAAC,EACb,QAAS,EAAM,CAAC,EAChB,KAAM,EAAM,CAAC,EACb,WAAY,EAAM,CAAC,EACnB,aAAc,EAAM,EAAE,CACxB,EAEM,EAAa,EAAS,KAAO,KAC7B,EAAkB,EAAM,GACxB,EAAU,EAAK,KACf,EAAY,EAAK,QAEvB,MAAO,CACL,MAAO,CACL,UACA,YACA,OAAQ,EACR,MAAO,EAAK,IACZ,QAAS,EAAK,OACd,QAAS,EAAK,MACd,KAAM,EAAK,KACX,KAAM,EACN,YACA,qBAAsB,EACtB,WAAY,EAAM,EAAI,CAAC,EACvB,gBAAiB,EAAM,GACvB,kBAAmB,EAAM,GACzB,eAAgB,EAAM,GACtB,aAAc,EAAM,GACpB,OAAQ,EAAM,GACd,aAAc,EAAM,GACpB,UAAW,EAAK,MAChB,YAAa,EAAK,IAClB,YAAa,EAAM,GACnB,eAAgB,EAAM,GACtB,mBAAoB,EAAK,aACzB,qBAAsB,EAAK,WAC3B,YAAa,EAAK,EAAa,EAAK,MAAO,CAAU,EACrD,cAAe,EAAK,EAAa,EAAK,IAAK,CAAU,EACrD,cAAe,EACf,eAAgB,EAChB,sBAAuB,EAAK,EAAiB,EAAK,MAAO,CAAU,EACnE,wBAAyB,EAAK,EAAiB,EAAK,IAAK,CAAU,EACnE,aAAc,EACd,gBAAiB,EACjB,aAAc,EAAK,KACnB,iBAAkB,EAAK,KACvB,aAAc,EAAK,MACnB,mBAAoB,EAAK,OACzB,aAAc,EAAK,OACnB,eAAgB,EAChB,uBAAwB,EAAM,GAC9B,iBAAkB,EAAK,KACvB,wBAAyB,EAAK,KAC9B,cAAe,EAAK,KACpB,kBAAmB,EAAK,KACxB,kBAAmB,EACnB,cAAe,EACf,cAAe,EAAK,QACpB,eAAgB,EAAK,KACrB,eAAgB,EAChB,aAAc,EAAK,MACnB,aAAc,EAAK,OACnB,WAAY,EAAK,KACjB,eAAgB,EAAK,KACrB,kBAAmB,CACrB,CACF,EAGF,SAAS,EAAa,CAAC,EAAiB,EAAkB,CACxD,GAAI,EAAK,IAAM,GAAK,EAAK,SAAW,WAAa,EAAK,SAAW,UAC/D,OAAO,EAAK,MAAM,CAAI,EAGxB,OAAO,EAAe,EAAS,CAAI,EAGrC,SAAS,EAAa,CAAC,EAAwB,EAAkC,CAO/E,MAAO,IANU,OAAO,YACtB,OAAO,QAAQ,CAAK,EACjB,OAAO,EAAE,KAAS,IAAQ,iBAAiB,EAC3C,IAAI,EAAE,EAAK,KAAW,CAAC,EAAK,GAAc,EAAS,CAAa,CAAC,CAAC,CACvE,EAIE,gBAAiB,EAAM,eACzB,EAGF,SAAS,EAAW,CAAC,EAAwB,EAAiC,CAC5E,IAAM,EAAO,EAAe,EAAS,EAAM,SAAS,EAC9C,EAAQ,EAAe,EAAS,EAAM,IAAI,EAChD,MAAO,CACL,OACA,QACA,WAAY,EAAa,EAAS,EAAM,WAAY,EAAM,IAAI,EAC9D,YAAa,EAAa,EAAS,EAAM,WAAY,EAAO,IAAI,CAClE,EAGF,SAAS,EAAG,CACV,EACA,EACA,EACA,EACU,CACV,IAAM,EAAmB,EAAM,EAAY,WAAY,CAAC,EAClD,EAAa,EAAK,CAAgB,EAClC,EAAQ,EAAK,EAAY,eAAgB,EAAY,WAAY,KAAM,KAAM,IAAI,EACjF,EAAU,EAAK,EAAY,eAAgB,EAAY,WAAY,KAAM,KAAM,GAAG,EAClF,EAAO,EAAK,EAAY,eAAgB,EAAY,WAAY,KAAM,IAAK,IAAI,EAC/E,EAAa,EAAK,EAAkB,EAAK,SAAS,EAAG,IAAe,OAAS,KAAO,IAAI,EACxF,EACJ,IAAe,OAAS,EAAK,EAAkB,EAAK,SAAS,EAAG,IAAI,EAAI,EAAK,EAAY,EAAK,SAAS,EAAG,IAAI,EAC1G,EAAkB,IAAe,QAAU,GAAU,CAAU,GAAK,KAEpE,EAAS,EAAkB,EAAK,EAAY,EAAkB,GAAG,EAAI,EACrE,EAAe,EAAkB,EAAK,EAAQ,EAAK,SAAS,EAAG,IAAI,EAAI,EAE7E,MAAO,CACL,WAAY,EAAY,WACxB,OAAQ,CACN,UAAW,EAAY,QACvB,SAAU,EAAY,kBACtB,aAAc,EAAY,qBAC1B,QAAS,EAAY,QACrB,QAAS,EAAY,QACrB,MAAO,EAAY,MACnB,MAAO,EAAY,UACnB,KAAM,EAAY,KAClB,SACA,eACA,QACA,UACA,KAAM,EAAY,eAClB,OAAQ,EAAY,OACpB,MACF,EACA,MAAO,CACL,OAAQ,CACN,KAAM,EAAgB,SACxB,EACA,KAAM,CACJ,KAAM,EAAgB,OACxB,EACA,UAAW,CACT,KAAM,EAAgB,IACxB,EACA,UAAW,CACT,KAAM,EAAgB,SACxB,EACA,KAAM,CACJ,KAAM,EAAgB,KACtB,MAAO,EAAgB,SACzB,EACA,MAAO,CACL,KAAM,EAAgB,KACxB,CACF,EACA,SACA,MAAO,CACL,UAAW,EAAgB,QAC3B,QAAS,EAAgB,QACzB,KAAM,EAAgB,KACtB,MAAO,EAAgB,UACvB,SACA,UAAW,EAAgB,UAC3B,YAAa,EAAgB,YAC7B,YAAa,EACb,cAAe,EACf,cAAe,EACf,mBAAoB,EAAgB,mBACpC,qBAAsB,EAAgB,qBACtC,eAAgB,EAAgB,eAChC,sBAAuB,EAAgB,sBACvC,wBAAyB,EAAgB,uBAC3C,CACF,EAGF,IAAM,EAAO,CACX,UAAW,EAAK,UAAU,EAAG,EAAK,SAAS,CAAC,EAC5C,MAAO,EAAK,UAAU,EAAG,EAAK,SAAS,CAAC,EACxC,KAAM,EAAK,kBAAkB,EAAK,SAAS,CAAC,EAC5C,MAAO,EAAK,SAAS,EACrB,QAAS,EAAK,UAAU,EAAG,EAAK,SAAS,CAAC,EAC1C,QAAS,EAAK,UAAU,EAAG,EAAK,SAAS,CAAC,EAC1C,MAAO,EAAK,UAAU,EAAG,EAAK,SAAS,CAAC,CAC1C,EAEA,SAAS,CAAI,CAAC,EAAkB,EAA0B,CACxD,MAAO,CACL,OACA,OACF,EAGF,IAAM,EAAwB,MAAM,KAAK,CAAE,OAAQ,GAAI,EAAG,CAAC,EAAG,IAAU,EAAK,UAAU,CAAK,CAAC,EACvF,EAAqB,EAAK,UAAU,EAAE,EACtC,EAAsB,EAAK,UAAU,GAAG,EAEjC,EAA+B,CAC1C,WAAY,EAAK,WAAW,EAAG,EAAG,EAAG,CAAC,EACtC,OAAQ,CACN,UAAW,EAAK,UAChB,SAAU,EAAK,KACf,aAAc,EAAK,MACnB,QAAS,EAAK,QACd,QAAS,EAAK,QACd,MAAO,EAAK,MACZ,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,OAAQ,EAAK,EAAK,MAAO,EAAK,SAAS,EAAG,IAAI,EAC9C,aAAc,EAAK,EAAK,MAAO,EAAK,SAAS,EAAG,IAAI,EACpD,MAAO,EAAM,EAAK,MAAO,IAAI,EAC7B,QAAS,EAAM,EAAK,MAAO,IAAI,EAC/B,KAAM,EAAK,MACX,OAAQ,EAAK,MACb,KAAM,EAAM,EAAK,MAAO,IAAI,CAC9B,EACA,MAAO,CACL,OAAQ,EAAK,EAAK,KAAK,EACvB,KAAM,EAAK,EAAK,SAAS,EACzB,UAAW,EAAK,EAAK,IAAI,EACzB,UAAW,EAAK,EAAK,KAAK,EAC1B,KAAM,EAAK,EAAK,KAAM,EAAK,KAAK,EAChC,MAAO,EAAK,EAAK,KAAK,CACxB,EACA,OAAQ,CACN,KAAM,EACN,MAAO,EACP,WAAY,EAAa,EAAuB,EAAK,WAAW,EAAG,EAAG,EAAG,CAAC,EAAG,EAAoB,IAAI,EACrG,YAAa,EAAa,EAAuB,EAAK,WAAW,EAAG,EAAG,EAAG,CAAC,EAAG,EAAqB,IAAI,CACzG,EACA,MAAO,CACL,UAAW,EAAK,UAChB,QAAS,EAAK,QACd,KAAM,EAAK,KACX,MAAO,EAAK,MACZ,UAAW,EAAK,QAChB,YAAa,EAAK,MAClB,YAAa,EAAM,EAAK,QAAS,IAAI,EACrC,cAAe,EAAM,EAAK,MAAO,IAAI,EACrC,cAAe,EAAM,EAAK,MAAO,IAAI,EACrC,mBAAoB,EAAK,QACzB,qBAAsB,EAAK,MAC3B,eAAgB,EAAK,MACrB,sBAAuB,EAAM,EAAK,QAAS,IAAI,EAC/C,wBAAyB,EAAM,EAAK,MAAO,IAAI,CACjD,CACF,EAEA,eAAsB,EAAe,CAAC,EAA0C,CAC9E,GAAI,CACF,IAAM,EAAS,MAAM,EAAS,WAAW,CACvC,KAAM,GACR,CAAC,EACK,EAAK,EAAO,mBAAqB,EAAO,QAAQ,GACtD,GAAI,CAAC,EACH,OAAO,EAKT,IAAM,EAAO,EAAO,kBAChB,EAAK,EAAK,QAAQ,EAAO,iBAAiB,CAAC,EAC1C,EAAS,WAAa,EAAK,EAAK,QAAQ,CAAE,CAAC,EAC1C,EAAc,GAAa,GAAe,EAAQ,CAAI,EAAG,CAAI,EAC7D,EAAU,GAAe,EAAQ,GAAG,EACpC,EAAkB,GAAc,EAAa,CAAO,EACpD,EAAS,KAAa,0CACtB,EAAiC,IAClC,EACH,yBAA0B,EAC5B,EACM,EAAS,EAAO,eAAe,CAAW,EAChD,OAAO,GAAI,EAAa,EAAiB,GAAY,EAAiB,CAAO,EAAG,CAAM,EACtF,KAAM,CACN,OAAO",
"debugId": "EEE4CCA39F6219AF64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/services/standalone.ts", "src/services/server-connection.ts"],
"sourcesContent": [
"import { Service } from \"@opencode-ai/client/effect\"\nimport { CrossSpawnSpawner } from \"@opencode-ai/core/cross-spawn-spawner\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { Effect, Schema, Stream } from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/unstable/process\"\nimport { randomBytes } from \"node:crypto\"\nimport path from \"node:path\"\n\nconst Ready = Schema.Struct({ url: Schema.String })\nconst decodeReady = Schema.decodeUnknownPromise(Schema.fromJsonString(Ready))\n\ntype Options = {\n readonly command?: ReadonlyArray<string>\n}\n\nfunction command(password: string, options: Options) {\n const compiled = path.basename(process.execPath).replace(/\\.exe$/, \"\") !== \"bun\"\n const entrypoint = compiled ? [] : process.argv[1] ? [process.argv[1]] : []\n if (!compiled && entrypoint.length === 0) throw new Error(\"Failed to resolve CLI entrypoint\")\n const [executable, ...args] = options.command ?? [process.execPath, ...entrypoint, \"serve\"]\n if (!executable) throw new Error(\"Failed to resolve standalone server command\")\n return ChildProcess.make(executable, [...args, \"--stdio\", \"--port\", \"0\"], {\n cwd: process.cwd(),\n // Explicit entry wins over anything inherited, so a user-exported\n // OPENCODE_PASSWORD cannot shadow the child's lease credential.\n env: { OPENCODE_PASSWORD: password },\n extendEnv: true,\n // The server treats EOF on this pipe as the end of its ownership lease.\n // The OS closes it even when the TUI is killed before Effect finalizers run.\n stdin: \"pipe\",\n stderr: \"ignore\",\n killSignal: \"SIGTERM\",\n forceKillAfter: \"3 seconds\",\n })\n}\n\nconst makeEndpoint = Effect.fn(\"cli.standalone.endpoint\")(\n function* (options: Options) {\n const password = randomBytes(32).toString(\"base64url\")\n const spawner = yield* ChildProcessSpawner.ChildProcessSpawner\n const proc = yield* spawner.spawn(command(password, options))\n const output = yield* proc.stdout.pipe(Stream.decodeText(), Stream.splitLines, Stream.take(1), Stream.mkString)\n if (!output) return yield* Effect.fail(new Error(\"Standalone server exited before reporting readiness\"))\n const ready = yield* Effect.tryPromise(() => decodeReady(output))\n return {\n url: ready.url,\n auth: { type: \"basic\" as const, username: \"opencode\", password },\n pid: proc.pid,\n } satisfies Service.Endpoint & { readonly pid: number }\n },\n Effect.provide(AppNodeBuilder.build(CrossSpawnSpawner.node)),\n)\n\nexport function start(options: Options = {}) {\n return makeEndpoint(options)\n}\n\nexport * as Standalone from \"./standalone\"\n",
"import { Service } from \"@opencode-ai/client/effect\"\nimport { ClientError, isUnauthorizedError, OpenCode } from \"@opencode-ai/client/promise\"\nimport { InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { Effect, Redacted } from \"effect\"\nimport { Env } from \"../env\"\nimport { ServiceConfig } from \"./service-config\"\nimport { Standalone } from \"./standalone\"\n\nexport type Args = {\n readonly server?: string\n readonly standalone?: boolean\n readonly mismatch?: \"replace\" | \"ignore\" | \"error\"\n readonly onStart?: Service.StartOptions[\"onStart\"]\n}\n\nexport type Resolved = {\n readonly endpoint: Service.Endpoint\n readonly service?: ReturnType<typeof managedService>\n}\n\nexport const resolve = Effect.fn(\"cli.server-connection.resolve\")(function* (args: Args) {\n if (args.server !== undefined && args.standalone)\n return yield* Effect.fail(new Error(\"--server and --standalone cannot be combined\"))\n if (args.server !== undefined) {\n const password = yield* Env.password\n const endpoint = {\n url: args.server,\n auth: password ? { type: \"basic\" as const, username: \"opencode\", password: Redacted.value(password) } : undefined,\n } satisfies Service.Endpoint\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const health = yield* Effect.tryPromise({\n try: () => client.health.get({ signal: AbortSignal.timeout(5_000) }),\n catch: (cause) => connectError(endpoint, cause),\n })\n if (health.version !== InstallationVersion)\n process.stderr.write(\n `Warning: Server at ${endpoint.url} has version ${health.version}; this client is ${InstallationVersion}. Continuing anyway.\\n`,\n )\n return { endpoint } satisfies Resolved\n }\n if (args.standalone) {\n return { endpoint: yield* Standalone.start() } satisfies Resolved\n }\n\n const options = yield* ServiceConfig.options()\n return {\n endpoint: yield* resolveManaged({ ...options, onStart: args.onStart }, args.mismatch ?? \"replace\"),\n service: managedService(options),\n } satisfies Resolved\n})\n\nfunction managedService(options: Service.StartOptions) {\n const reconnectOptions = { ...options, version: undefined }\n return {\n reconnect: (onStatus: (status: Service.Status) => void) => Service.start({ ...reconnectOptions, onStatus }),\n restart: () =>\n Effect.gen(function* () {\n yield* Service.stop(options, { targetVersion: options.version })\n yield* Service.start(options)\n }),\n }\n}\n\nconst resolveManaged = Effect.fnUntraced(function* (\n options: Service.StartOptions,\n mismatch: NonNullable<Args[\"mismatch\"]>,\n) {\n if (mismatch === \"replace\") return yield* Service.start(options)\n if (mismatch === \"ignore\") return yield* Service.start({ ...options, version: undefined })\n\n const compatible = yield* Service.discover(options)\n if (compatible !== undefined) return compatible\n const existing = yield* Service.discover({ ...options, version: undefined })\n if (existing !== undefined)\n return yield* Effect.fail(new Error(\"Background server version does not match this client\"))\n return yield* Service.start(options)\n})\n\nfunction connectError(endpoint: Service.Endpoint, cause: unknown) {\n if (isUnauthorizedError(cause)) {\n return new Error(\n endpoint.auth === undefined\n ? `Server at ${endpoint.url} requires a password; set OPENCODE_PASSWORD`\n : `Server at ${endpoint.url} rejected the password`,\n { cause },\n )\n }\n if (cause instanceof ClientError && cause.reason === \"Transport\")\n return new Error(`Could not reach server at ${endpoint.url}`, { cause })\n return new Error(`Server at ${endpoint.url} did not provide a compatible V2 health response`, { cause })\n}\n\nexport * as ServerConnection from \"./server-connection\"\n"
],
"mappings": ";skBAKA,2BAAS,oBACT,yBAEA,SAAM,OAAQ,OAAO,YAAO,MAAE,IAAK,EAAO,MAAO,CAAC,EAC5C,EAAc,EAAO,qBAAqB,EAAO,eAAe,CAAK,CAAC,EAM5E,SAAS,CAAO,CAAC,EAAkB,EAAkB,CACnD,IAAM,EAAW,EAAK,SAAS,QAAQ,QAAQ,EAAE,QAAQ,SAAU,EAAE,IAAM,MACrE,EAAa,EAAW,CAAC,EAAI,QAAQ,KAAK,GAAK,CAAC,QAAQ,KAAK,EAAE,EAAI,CAAC,EAC1E,GAAI,CAAC,GAAY,EAAW,SAAW,EAAG,MAAU,MAAM,kCAAkC,EAC5F,IAAO,KAAe,GAAQ,EAAQ,SAAW,CAAC,QAAQ,SAAU,GAAG,EAAY,OAAO,EAC1F,GAAI,CAAC,EAAY,MAAU,MAAM,6CAA6C,EAC9E,OAAO,EAAa,KAAK,EAAY,CAAC,GAAG,EAAM,UAAW,SAAU,GAAG,EAAG,CACxE,IAAK,QAAQ,IAAI,EAGjB,IAAK,CAAE,kBAAmB,CAAS,EACnC,UAAW,GAGX,MAAO,OACP,OAAQ,SACR,WAAY,UACZ,eAAgB,WAClB,CAAC,EAGH,IAAM,EAAe,EAAO,GAAG,yBAAyB,EACtD,SAAU,CAAC,EAAkB,CAC3B,IAAM,EAAW,EAAY,EAAE,EAAE,SAAS,WAAW,EAE/C,EAAO,OADG,MAAO,EAAoB,qBACf,MAAM,EAAQ,EAAU,CAAO,CAAC,EACtD,EAAS,MAAO,EAAK,OAAO,KAAK,EAAO,WAAW,EAAG,EAAO,WAAY,EAAO,KAAK,CAAC,EAAG,EAAO,QAAQ,EAC9G,GAAI,CAAC,EAAQ,OAAO,MAAO,EAAO,KAAS,MAAM,qDAAqD,CAAC,EAEvG,MAAO,CACL,KAFY,MAAO,EAAO,WAAW,IAAM,EAAY,CAAM,CAAC,GAEnD,IACX,KAAM,CAAE,KAAM,QAAkB,SAAU,WAAY,UAAS,EAC/D,IAAK,EAAK,GACZ,GAEF,EAAO,QAAQ,EAAe,MAAM,EAAkB,IAAI,CAAC,CAC7D,EAEO,SAAS,CAAK,CAAC,EAAmB,CAAC,EAAG,CAC3C,OAAO,EAAa,CAAO,EClCtB,IAAM,EAAU,EAAO,GAAG,+BAA+B,EAAE,SAAU,CAAC,EAAY,CACvF,GAAI,EAAK,SAAW,QAAa,EAAK,WACpC,OAAO,MAAO,EAAO,KAAS,MAAM,8CAA8C,CAAC,EACrF,GAAI,EAAK,SAAW,OAAW,CAC7B,IAAM,EAAW,MAAO,EAAI,SACtB,EAAW,CACf,IAAK,EAAK,OACV,KAAM,EAAW,CAAE,KAAM,QAAkB,SAAU,WAAY,SAAU,EAAS,MAAM,CAAQ,CAAE,EAAI,MAC1G,EACM,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EACpF,EAAS,MAAO,EAAO,WAAW,CACtC,IAAK,IAAM,EAAO,OAAO,IAAI,CAAE,OAAQ,YAAY,QAAQ,IAAK,CAAE,CAAC,EACnE,MAAO,CAAC,IAAU,EAAa,EAAU,CAAK,CAChD,CAAC,EACD,GAAI,EAAO,UAAY,EACrB,QAAQ,OAAO,MACb,sBAAsB,EAAS,mBAAmB,EAAO,2BAA2B;AAAA,CACtF,EACF,MAAO,CAAE,UAAS,EAEpB,GAAI,EAAK,WACP,MAAO,CAAE,SAAU,MAAO,EAAW,MAAM,CAAE,EAG/C,IAAM,EAAU,MAAO,EAAc,QAAQ,EAC7C,MAAO,CACL,SAAU,MAAO,EAAe,IAAK,EAAS,QAAS,EAAK,OAAQ,EAAG,EAAK,UAAY,SAAS,EACjG,QAAS,EAAe,CAAO,CACjC,EACD,EAED,SAAS,CAAc,CAAC,EAA+B,CACrD,IAAM,EAAmB,IAAK,EAAS,QAAS,MAAU,EAC1D,MAAO,CACL,UAAW,CAAC,IAA+C,EAAQ,MAAM,IAAK,EAAkB,UAAS,CAAC,EAC1G,QAAS,IACP,EAAO,IAAI,SAAU,EAAG,CACtB,MAAO,EAAQ,KAAK,EAAS,CAAE,cAAe,EAAQ,OAAQ,CAAC,EAC/D,MAAO,EAAQ,MAAM,CAAO,EAC7B,CACL,EAGF,IAAM,EAAiB,EAAO,WAAW,SAAU,CACjD,EACA,EACA,CACA,GAAI,IAAa,UAAW,OAAO,MAAO,EAAQ,MAAM,CAAO,EAC/D,GAAI,IAAa,SAAU,OAAO,MAAO,EAAQ,MAAM,IAAK,EAAS,QAAS,MAAU,CAAC,EAEzF,IAAM,EAAa,MAAO,EAAQ,SAAS,CAAO,EAClD,GAAI,IAAe,OAAW,OAAO,EAErC,IADiB,MAAO,EAAQ,SAAS,IAAK,EAAS,QAAS,MAAU,CAAC,KAC1D,OACf,OAAO,MAAO,EAAO,KAAS,MAAM,sDAAsD,CAAC,EAC7F,OAAO,MAAO,EAAQ,MAAM,CAAO,EACpC,EAED,SAAS,CAAY,CAAC,EAA4B,EAAgB,CAChE,GAAI,EAAoB,CAAK,EAC3B,OAAW,MACT,EAAS,OAAS,OACd,aAAa,EAAS,iDACtB,aAAa,EAAS,4BAC1B,CAAE,OAAM,CACV,EAEF,GAAI,aAAiB,GAAe,EAAM,SAAW,YACnD,OAAW,MAAM,6BAA6B,EAAS,MAAO,CAAE,OAAM,CAAC,EACzE,OAAW,MAAM,aAAa,EAAS,sDAAuD,CAAE,OAAM,CAAC",
"debugId": "578D7A6819CB486064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E65A84E831E5A6F764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "F118E1B3E186E00364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260501142318_next_venus.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260501142318_next_venus\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`agent\\` text;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`model\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,4BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,yCAA6C,EAC3D,MAAO,EAAG,IAAI,yCAA6C,EAC5D,EAEL",
"debugId": "8AAED9F273848E6C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/cli-spinners@3.4.0/node_modules/cli-spinners/index.js", "../../node_modules/.bun/opentui-spinner@0.0.7+d3ea10796c516e66/node_modules/opentui-spinner/dist/src-DjeqLSfu.mjs", "../../node_modules/.bun/opentui-spinner@0.0.7+d3ea10796c516e66/node_modules/opentui-spinner/dist/solid.mjs", "../tui/src/component/register-spinner.ts"],
"sourcesContent": [
"import spinners from './spinners.json' with {type: 'json'};\n\nexport default spinners;\n\nconst spinnersList = Object.keys(spinners);\n\nexport function randomSpinner() {\n\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\tconst spinnerName = spinnersList[randomIndex];\n\treturn spinners[spinnerName];\n}\n",
"import{Renderable as e,parseColor as t,resolveRenderLib as n}from\"@opentui/core\";import r from\"cli-spinners\";const i=1e3/60,a=1e3;function o(e){if(!Number.isFinite(e)||e<i||e>a)throw RangeError(`Spinner interval must be a finite number between ${i}ms and ${a}ms`);return e}const s={now:()=>performance.now(),setInterval:(e,t)=>{let n=setInterval(e,t);return n.unref(),n},clearInterval:e=>clearInterval(e)},c=new class{active=new Map;heap=[];timer=null;timerDueAt=0;generation=0;lastWakeAt=-1/0;clock;constructor(e=s,t=16){this.denseTickThreshold=t,this.clock=e}setClock(e){if(this.active.size>0||this.timer!==null)throw Error(`Cannot replace the spinner scheduler clock while active`);this.clock=e}start(e,t,n){if(this.active.has(e))return;let r={spinner:e,interval:t,nextDueAt:this.clock.now()+t,advance:n};this.active.set(e,r),this.push(r),this.armNext()}reschedule(e,t){let n=this.active.get(e);if(!n)return;let r={spinner:e,interval:t,nextDueAt:this.clock.now()+t,advance:n.advance};this.active.set(e,r),this.push(r),this.compactIfNeeded(),this.armNext()}stop(e){this.active.delete(e)&&(this.compactIfNeeded(),this.armNext())}armNext(){this.discardStaleRoots();let e=this.heap[0];if(!e){this.cancelTimer(),this.lastWakeAt=-1/0;return}let t=this.clock.now(),n=Math.max(e.nextDueAt,this.lastWakeAt+i);if(this.timer!==null&&this.timerDueAt===n)return;this.cancelTimer();let r=this.generation,a=Math.max(n-t,0);this.timerDueAt=n,this.timer=this.clock.setInterval(()=>this.tick(r),a)}cancelTimer(){this.timer!==null&&(this.generation++,this.clock.clearInterval(this.timer),this.timer=null)}tick(e){if(e!==this.generation||this.timer===null)return;let t=this.timer;this.generation++,this.timer=null,this.clock.clearInterval(t);let n=this.clock.now();this.discardStaleRoots();let r=!1,i=0,a=[];for(;this.heap[0]&&this.heap[0].nextDueAt<=n;){let e=this.pop();if(!(!e||!this.isCurrent(e))){try{e.advance()}catch(e){a.push(e)}if(r=!0,this.isCurrent(e)&&(e.nextDueAt=n+e.interval,this.push(e),i++,i===this.denseTickThreshold)){let e=this.heap;this.heap=[];for(let t of e)if(this.isCurrent(t)){if(t.nextDueAt<=n){try{t.advance()}catch(e){a.push(e)}if(r=!0,!this.isCurrent(t))continue;t.nextDueAt=n+t.interval}this.heap.push(t)}this.heapify();break}}}if(r&&(this.lastWakeAt=n),this.compactIfNeeded(),this.armNext(),a.length===1)throw a[0];if(a.length>1)throw AggregateError(a,`Multiple spinner callbacks failed`)}isCurrent(e){return this.active.get(e.spinner)===e}discardStaleRoots(){for(;this.heap[0]&&!this.isCurrent(this.heap[0]);)this.pop()}compactIfNeeded(){this.heap.length<=this.active.size*2+16||(this.heap=Array.from(this.active.values()),this.heapify())}heapify(){for(let e=Math.floor(this.heap.length/2)-1;e>=0;e--)this.siftDown(e)}push(e){this.heap.push(e);let t=this.heap.length-1;for(;t>0;){let n=Math.floor((t-1)/2);if(this.heap[n].nextDueAt<=e.nextDueAt)break;this.heap[t]=this.heap[n],t=n}this.heap[t]=e}pop(){let e=this.heap[0],t=this.heap.pop();return!e||!t||this.heap.length===0?e:(this.heap[0]=t,this.siftDown(0),e)}siftDown(e){let t=this.heap[e],n=e;for(;;){let e=n*2+1;if(e>=this.heap.length)break;let r=e+1,i=r<this.heap.length&&this.heap[r].nextDueAt<this.heap[e].nextDueAt?r:e;if(this.heap[i].nextDueAt>=t.nextDueAt)break;this.heap[n]=this.heap[i],n=i}this.heap[n]=t}};function l(e,t=1){if(e.length===0)throw RangeError(`createPulse requires at least one color`);return n=>e[Math.floor(n*t)%e.length]}function u(e){if(e.length===0)throw RangeError(`createWave requires at least one color`);return(t,n,r,i)=>{let a=(n+t)%i;return e[Math.floor(a/i*e.length)]??e[0]}}function d(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var f=class extends e{_name;_frames;_interval;_autoplay;_backgroundColor;_parsedBackgroundColor;_color;_parsedColor;_currentFrameIndex=0;_encodedFrames={};_lib=n();_isRunning=!1;_advanceFrame=()=>{!this._isRunning||this.isDestroyed||(this._currentFrameIndex=(this._currentFrameIndex+1)%this._frames.length,this.requestRender())};_defaultOptions={name:`dots`,frames:r.dots.frames,interval:r.dots.interval,autoplay:!0,backgroundColor:`transparent`,color:`white`};constructor(e,n){super(e,n),this._name=n.name,this._frames=n.frames?.length?n.frames:this._name?r[this._name].frames:this._defaultOptions.frames,this._interval=o(n.interval??(this._name?r[this._name].interval:this._defaultOptions.interval)),this._autoplay=n.autoplay??this._defaultOptions.autoplay,this._backgroundColor=n.backgroundColor??this._defaultOptions.backgroundColor,this._parsedBackgroundColor=t(this._backgroundColor),this._color=n.color??this._defaultOptions.color,this._parsedColor=typeof this._color==`function`?t(this._defaultOptions.color):t(this._color),this.height=1,this._encodeFrames(),this._autoplay&&this.start()}_encodeFrames(){let e=0;for(let t of this._frames){if(this._encodedFrames[t])continue;let n=this._lib.encodeUnicode(t,this.ctx.widthMethod);n&&(this._encodedFrames[t]=n,e=Math.max(e,n.data.reduce((e,t)=>e+t.width,0)))}this.width=e}_freeFrames(){for(let e in this._encodedFrames)this._encodedFrames[e]&&this._lib.freeUnicode(this._encodedFrames[e]);this._encodedFrames={}}get interval(){return this._interval}set interval(e){this._interval=o(e),this._isRunning&&c.reschedule(this,this._interval)}get name(){return this._name}set name(e){let t=e?r[e].frames:this._defaultOptions.frames,n=o(e?r[e].interval:this._defaultOptions.interval),i=!d(this._frames,t),a=this._interval!==n;this._name=e,this._interval=n,i&&(this._freeFrames(),this._frames=t,this._currentFrameIndex=0,this._encodeFrames(),this.visible&&this.requestRender()),this._isRunning&&a&&c.reschedule(this,n)}get frames(){return this._frames}set frames(e){let t=e.length===0?this._defaultOptions.frames:e;if(d(this._frames,t)){this._frames=t;return}this._freeFrames(),this._frames=t,this._currentFrameIndex=0,this._encodeFrames(),this.visible&&this.requestRender()}get color(){return this._color}set color(e){this._color=e,typeof e!=`function`&&(this._parsedColor=t(e)),this.visible&&this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){this._backgroundColor=e,this._parsedBackgroundColor=t(e),this.visible&&this.requestRender()}get visible(){return super.visible}set visible(e){e!==super.visible&&(super.visible=e,this._isRunning&&(e?c.start(this,this._interval,this._advanceFrame):c.stop(this)))}get autoplay(){return this._autoplay}set autoplay(e){this._autoplay=e,e?this.start():this.stop()}start(){this._isRunning||this.isDestroyed||(this._isRunning=!0,this.visible&&c.start(this,this._interval,this._advanceFrame))}stop(){this._isRunning&&(this._isRunning=!1,c.stop(this))}renderSelf(e){if(!this.visible)return;let n=this._frames[this._currentFrameIndex];if(!n)return;let r=this._encodedFrames[n];if(!r)return;let i=this.x;for(let n=0;n<r.data.length;n++){let a=typeof this._color==`function`?t(this._color(this._currentFrameIndex,n,this._frames.length,r.data.length)):this._parsedColor;e.drawChar(r.data[n].char,i,this.y,a,this._parsedBackgroundColor),i+=r.data[n].width}}destroySelf(){this.stop(),this._freeFrames(),super.destroySelf()}};export{l as n,u as r,f as t};",
"import{t as e}from\"./src-DjeqLSfu.mjs\";import{extend as t}from\"@opentui/solid/components\";function n(){t({spinner:e})}n();export{n as registerSpinner};",
"import { getComponentCatalogue } from \"@opentui/solid/components\"\nimport { registerSpinner } from \"opentui-spinner/solid\"\n\nexport function registerOpencodeSpinner() {\n if (!getComponentCatalogue().spinner) registerSpinner()\n}\n"
],
"mappings": "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",
"debugId": "ECDC5A3EA741142864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260423070820_add_icon_url_override.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260423070820_add_icon_url_override\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n ALTER TABLE \\`project\\` ADD \\`icon_url_override\\` text;\n UPDATE \\`project\\` SET \\`icon_url_override\\` = \\`icon_url\\` WHERE \\`icon_url\\` IS NOT NULL;\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,oKAGb,EACF,EAEL",
"debugId": "C9067184E04FB86364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../schema/src/identifier.ts", "../schema/src/project-id.ts", "../schema/src/workspace-id.ts", "../schema/src/location.ts", "../schema/src/event.ts"],
"sourcesContent": [
"const length = 26\nconst chars = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"\nlet lastTimestamp = 0\nlet counter = 0\n\nexport function ascending() {\n return create(false)\n}\n\nexport function descending() {\n return create(true)\n}\n\nexport function create(descending: boolean, timestamp = Date.now()) {\n if (timestamp !== lastTimestamp) {\n lastTimestamp = timestamp\n counter = 0\n }\n counter++\n\n const current = BigInt(timestamp) * 0x1000n + BigInt(counter)\n const value = descending ? ~current : current\n const time = Array.from({ length: 6 }, (_, index) =>\n Number((value >> BigInt(40 - 8 * index)) & 0xffn)\n .toString(16)\n .padStart(2, \"0\"),\n ).join(\"\")\n const bytes = crypto.getRandomValues(new Uint8Array(length - 12))\n return time + Array.from(bytes, (byte) => chars[byte % 62]).join(\"\")\n}\n",
"import { Schema } from \"effect\"\nimport { statics } from \"./schema.js\"\n\nexport const ProjectID = Schema.String.pipe(\n Schema.brand(\"Project.ID\"),\n statics((schema) => ({ global: schema.make(\"global\") })),\n)\nexport type ProjectID = typeof ProjectID.Type\n",
"import { Schema } from \"effect\"\nimport { ascending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\n\nexport const WorkspaceID = Schema.String.check(Schema.isStartsWith(\"wrk\")).pipe(\n Schema.brand(\"WorkspaceV2.ID\"),\n statics((schema) => {\n const create = () => schema.make(\"wrk_\" + ascending())\n return {\n ascending: (id?: string) => {\n if (!id) return create()\n if (!id.startsWith(\"wrk\")) throw new Error(`ID ${id} does not start with wrk`)\n return schema.make(id)\n },\n create,\n }\n }),\n)\nexport type WorkspaceID = typeof WorkspaceID.Type\n",
"export * as Location from \"./location.js\"\n\nimport { Schema } from \"effect\"\nimport { AbsolutePath, optional } from \"./schema.js\"\nimport { ProjectID } from \"./project-id.js\"\nimport { WorkspaceID } from \"./workspace-id.js\"\n\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\nexport const Ref = Schema.Struct({\n directory: AbsolutePath,\n workspaceID: optional(WorkspaceID),\n}).annotate({ identifier: \"Location.Ref\" })\n\nexport class Info extends Schema.Class<Info>(\"Location.Info\")({\n directory: AbsolutePath,\n workspaceID: optional(WorkspaceID),\n project: Schema.Struct({\n id: ProjectID,\n directory: AbsolutePath,\n }),\n}) {}\n\nexport function response<S extends Schema.Top>(data: S) {\n return Schema.Struct({ location: Info, data })\n}\n",
"export * as Event from \"./event.js\"\n\nimport { Schema, SchemaTransformation } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ascending } from \"./identifier.js\"\nimport { Location } from \"./location.js\"\nimport { DateTimeUtcFromMillis, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"evt_\")).pipe(\n Schema.brand(\"Event.ID\"),\n statics((schema) => ({ create: () => schema.make(\"evt_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\n/**\n * Position in one aggregate's durable log. Values originate from the durable\n * event envelope and synced markers;\n * `after` cursors accept only values that came from those sources.\n */\nexport const Seq = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)).pipe(Schema.brand(\"Event.Seq\"))\nexport type Seq = typeof Seq.Type\n\n/** Durable schema version of one event type, from the event definition that committed it. */\nexport const Version = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)).pipe(Schema.brand(\"Event.Version\"))\nexport type Version = typeof Version.Type\n\nconst DurableEnvelope = Schema.Struct({ aggregateID: Schema.String, seq: Seq, version: Version })\nexport type DurableEnvelope = typeof DurableEnvelope.Type\n\nexport type DurableDefinition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = Schema.Top & {\n readonly type: Type\n readonly durability: \"durable\"\n readonly durable: {\n readonly version: number\n readonly aggregate: string\n }\n readonly data: DataSchema\n}\n\nexport type EphemeralDefinition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = Schema.Top & {\n readonly type: Type\n readonly durability: \"ephemeral\"\n readonly durable?: never\n readonly data: DataSchema\n}\n\nexport type Definition<\n Type extends string = string,\n DataSchema extends Schema.Codec<unknown, unknown> = Schema.Codec<unknown, unknown>,\n> = DurableDefinition<Type, DataSchema> | EphemeralDefinition<Type, DataSchema>\n\nexport type Data<D extends Definition> = Schema.Schema.Type<D[\"data\"]>\n\ntype PayloadBase<D extends Definition> = {\n readonly id: ID\n readonly type: D[\"type\"]\n readonly created: typeof DateTimeUtcFromMillis.Type\n readonly data: Data<D>\n readonly location?: Location.Ref\n readonly metadata?: Record<string, unknown>\n}\n\nexport type Payload<D extends Definition = Definition> = D extends DurableDefinition\n ? PayloadBase<D> & { readonly durable: DurableEnvelope }\n : PayloadBase<D> & { readonly durable?: never }\n\ntype Input<Type extends string, Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>> = {\n readonly type: Type\n readonly identifier?: string\n readonly durable?: {\n readonly version: number\n readonly aggregate: string\n }\n readonly schema: Fields\n}\n\nexport function durable<\n const Type extends string,\n const Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>,\n>(input: Input<Type, Fields> & { readonly durable: NonNullable<Input<Type, Fields>[\"durable\"]> }) {\n const data = Schema.Struct(input.schema)\n const durable = Schema.Struct({\n aggregateID: DurableEnvelope.fields.aggregateID,\n seq: DurableEnvelope.fields.seq,\n version: Schema.Literal(input.durable.version).pipe(\n Schema.decodeTo(\n Schema.toType(Version),\n SchemaTransformation.transform({\n decode: () => Version.make(input.durable.version),\n encode: () => input.durable.version,\n }),\n ),\n ),\n })\n return Schema.Struct({\n id: ID,\n created: DateTimeUtcFromMillis,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n type: Schema.Literal(input.type),\n durable,\n location: optional(Location.Ref),\n data,\n })\n .annotate({ identifier: input.identifier ?? input.type })\n .pipe(\n statics(() => ({\n type: input.type,\n durability: \"durable\" as const,\n durable: input.durable,\n data,\n })),\n ) satisfies DurableDefinition<Type, typeof data>\n}\n\nexport function ephemeral<\n const Type extends string,\n const Fields extends Readonly<Record<PropertyKey, Schema.Codec<unknown, unknown>>>,\n>(input: Omit<Input<Type, Fields>, \"durable\">) {\n const data = Schema.Struct(input.schema)\n return Schema.Struct({\n id: ID,\n created: DateTimeUtcFromMillis,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n type: Schema.Literal(input.type),\n location: optional(Location.Ref),\n data,\n })\n .annotate({ identifier: input.identifier ?? input.type })\n .pipe(\n statics(() => ({\n type: input.type,\n durability: \"ephemeral\" as const,\n durable: undefined,\n data,\n })),\n ) satisfies EphemeralDefinition<Type, typeof data>\n}\n\nexport function inventory<const Definitions extends ReadonlyArray<Definition>>(...definitions: Definitions) {\n return Object.freeze(definitions)\n}\n\nexport function latest(definitions: ReadonlyArray<Definition>) {\n return readonlyMap(\n definitions.reduce((result, definition) => {\n const existing = result.get(definition.type)\n if (!existing) {\n result.set(definition.type, definition)\n return result\n }\n if (definition.durable && existing.durable && definition.durable.version !== existing.durable.version) {\n if (definition.durable.version > existing.durable.version) result.set(definition.type, definition)\n return result\n }\n if (definition !== existing) throw new Error(`Duplicate latest event definition for ${definition.type}`)\n return result\n }, new Map<string, Definition>()),\n )\n}\n\nexport function versionedType(type: string, version: number) {\n return `${type}.${version}`\n}\n\nexport function durableMap<const Definitions extends ReadonlyArray<Definition>>(definitions: Definitions) {\n return readonlyMap(\n definitions.reduce((result, definition) => {\n if (definition.durability !== \"durable\") return result\n const key = versionedType(definition.type, definition.durable.version)\n if (result.has(key)) throw new Error(`Duplicate durable event definition for ${key}`)\n result.set(key, definition)\n return result\n }, new Map<string, DurableDefinition>()),\n )\n}\n\nfunction readonlyMap<Key, Value>(map: Map<Key, Value>): ReadonlyMap<Key, Value> {\n const result: ReadonlyMap<Key, Value> = Object.freeze({\n get size() {\n return map.size\n },\n entries: () => map.entries(),\n forEach: (callback: (value: Value, key: Key, map: ReadonlyMap<Key, Value>) => void, thisArg?: unknown) =>\n map.forEach((value, key) => callback.call(thisArg, value, key, result)),\n get: (key: Key) => map.get(key),\n has: (key: Key) => map.has(key),\n keys: () => map.keys(),\n values: () => map.values(),\n [Symbol.iterator]: () => map[Symbol.iterator](),\n })\n return result\n}\n"
],
"mappings": "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",
"debugId": "2AC787861994C0B864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js", "../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.41/node_modules/@aws-sdk/credential-provider-process/dist-es/getValidatedProcessCredentials.js"],
"sourcesContent": [
"import { getProfileName, parseKnownFiles } from \"@smithy/core/config\";\nimport { resolveProcessCredentials } from \"./resolveProcessCredentials\";\nexport const fromProcess = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await parseKnownFiles(init);\n return resolveProcessCredentials(getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n }), profiles, init.logger);\n};\n",
"import { CredentialsProviderError, externalDataInterceptor } from \"@smithy/core/config\";\nimport { exec } from \"node:child_process\";\nimport { promisify } from \"node:util\";\nimport { getValidatedProcessCredentials } from \"./getValidatedProcessCredentials\";\nexport const resolveProcessCredentials = async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== undefined) {\n const execPromise = promisify(externalDataInterceptor?.getTokenRecord?.().exec ?? exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n }\n catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n }\n catch (error) {\n throw new CredentialsProviderError(error.message, { logger });\n }\n }\n else {\n throw new CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n }\n else {\n throw new CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger,\n });\n }\n};\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const getValidatedProcessCredentials = (profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === undefined || data.SecretAccessKey === undefined) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...(data.SessionToken && { sessionToken: data.SessionToken }),\n ...(data.Expiration && { expiration: new Date(data.Expiration) }),\n ...(data.CredentialScope && { credentialScope: data.CredentialScope }),\n ...(accountId && { accountId }),\n };\n setCredentialFeature(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n};\n"
],
"mappings": ";kJAAA,oBCAA,oBACA,eAAS,sBACT,oBAAS,aCFT,eACa,EAAiC,CAAC,EAAa,EAAM,IAAa,CAC3E,GAAI,EAAK,UAAY,EACjB,MAAM,MAAM,WAAW,gDAA0D,EAErF,GAAI,EAAK,cAAgB,QAAa,EAAK,kBAAoB,OAC3D,MAAM,MAAM,WAAW,oDAA8D,EAEzF,GAAI,EAAK,WAAY,CACjB,IAAM,EAAc,IAAI,KAExB,GADmB,IAAI,KAAK,EAAK,UAAU,EAC1B,EACb,MAAM,MAAM,WAAW,oDAA8D,EAG7F,IAAI,EAAY,EAAK,UACrB,GAAI,CAAC,GAAa,IAAW,IAAc,eACvC,EAAY,EAAS,GAAa,eAEtC,IAAM,EAAc,CAChB,YAAa,EAAK,YAClB,gBAAiB,EAAK,mBAClB,EAAK,cAAgB,CAAE,aAAc,EAAK,YAAa,KACvD,EAAK,YAAc,CAAE,WAAY,IAAI,KAAK,EAAK,UAAU,CAAE,KAC3D,EAAK,iBAAmB,CAAE,gBAAiB,EAAK,eAAgB,KAChE,GAAa,CAAE,WAAU,CACjC,EAEA,OADA,uBAAqB,EAAa,sBAAuB,GAAG,EACrD,GDxBJ,IAAM,EAA4B,MAAO,EAAa,EAAU,IAAW,CAC9E,IAAM,EAAU,EAAS,GACzB,GAAI,EAAS,GAAc,CACvB,IAAM,EAAoB,EAAQ,mBAClC,GAAI,IAAsB,OAAW,CACjC,IAAM,EAAc,EAAU,2BAAyB,iBAAiB,EAAE,MAAQ,CAAI,EACtF,GAAI,CACA,IAAQ,UAAW,MAAM,EAAY,CAAiB,EAClD,EACJ,GAAI,CACA,EAAO,KAAK,MAAM,EAAO,KAAK,CAAC,EAEnC,KAAM,CACF,MAAM,MAAM,WAAW,6CAAuD,EAElF,OAAO,EAA+B,EAAa,EAAM,CAAQ,EAErE,MAAO,EAAO,CACV,MAAM,IAAI,2BAAyB,EAAM,QAAS,CAAE,QAAO,CAAC,GAIhE,WAAM,IAAI,2BAAyB,WAAW,wCAAmD,CAAE,QAAO,CAAC,EAI/G,WAAM,IAAI,2BAAyB,WAAW,mDAA8D,CACxG,QACJ,CAAC,GD9BF,IAAM,EAAc,CAAC,EAAO,CAAC,IAAM,OAAS,sBAAuB,CAAC,IAAM,CAC7E,EAAK,QAAQ,MAAM,oDAAoD,EACvE,IAAM,EAAW,MAAM,kBAAgB,CAAI,EAC3C,OAAO,EAA0B,iBAAe,CAC5C,QAAS,EAAK,SAAW,GAAoB,OACjD,CAAC,EAAG,EAAU,EAAK,MAAM",
"debugId": "52C6F5E62D1C816064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/tool.ts"],
"sourcesContent": [
"// Per-tool display rules shared across `opencode run` output paths.\n//\n// Each known tool (shell, edit, write, task, etc.) has a ToolRule that controls\n// five display hooks:\n//\n// view → visibility policy for progress/final scrollback entries and\n// whether completed finals can render as structured snapshots\n// run → inline summary for the non-interactive `run` command output\n// scroll → text formatting for start/progress/final scrollback entries\n// permission → display info for the permission UI (icon, title, diff)\n// snap → structured snapshot (code block, diff, task card) for rich\n// scrollback entries\n//\n// Tools not in TOOL_RULES get fallback formatting.\nimport os from \"os\"\nimport path from \"path\"\nimport stripAnsi from \"strip-ansi\"\nimport { LANGUAGE_EXTENSIONS } from \"@opencode-ai/tui/util/filetype\"\nimport { Locale } from \"@opencode-ai/tui/util/locale\"\nimport type { MiniToolPart, RunEntryBody, StreamCommit, ToolSnapshot } from \"./types\"\n\nexport type ToolView = {\n output: boolean\n final: boolean\n snap?: \"code\" | \"diff\" | \"structured\"\n}\n\nexport type ToolPhase = \"start\" | \"progress\" | \"final\"\n\nexport type ToolDict = Record<string, unknown>\n\ntype PatchFile = {\n type?: string\n relativePath?: string\n filePath?: string\n movePath?: string\n patch?: string\n deletions?: number\n}\n\ntype ToolInput = ToolDict & {\n path?: string\n pattern?: string\n filePath?: string\n filepath?: string\n url?: string\n query?: string\n subagent_type?: string\n description?: string\n name?: string\n operation?: string\n line?: number\n character?: number\n content?: string\n command?: string\n workdir?: string\n questions?: Array<{ question?: string }>\n diff?: string\n}\n\ntype ToolMetadata = ToolDict & {\n count?: number\n matches?: number\n diff?: string\n provider?: unknown\n files?: PatchFile[]\n answers?: string[][]\n exit?: number\n}\n\nexport type ToolFrame = {\n raw: string\n name: string\n input: ToolDict\n meta: ToolDict\n state: ToolDict\n status: string\n error: string\n}\n\nexport type ToolInline = {\n icon: string\n title: string\n description?: string\n mode?: \"inline\" | \"block\"\n body?: string\n}\n\nexport type ToolPermissionInfo = {\n icon: string\n title: string\n lines: string[]\n diff?: string\n file?: string\n}\n\nexport type ToolProps = {\n input: ToolInput\n metadata: ToolMetadata\n frame: ToolFrame\n}\n\ntype ToolPermissionProps = {\n input: ToolInput\n metadata: ToolMetadata\n patterns: string[]\n}\n\ntype ToolPermissionCtx = {\n input: ToolDict\n meta: ToolDict\n patterns: string[]\n}\n\ntype ToolName =\n | \"invalid\"\n | \"shell\"\n | \"write\"\n | \"edit\"\n | \"patch\"\n | \"batch\"\n | \"task\"\n | \"question\"\n | \"read\"\n | \"glob\"\n | \"grep\"\n | \"list\"\n | \"lsp\"\n | \"webfetch\"\n | \"websearch\"\n | \"skill\"\n | \"plan_exit\"\n\ntype ToolRule = {\n view: ToolView\n run: (props: ToolProps) => ToolInline\n scroll?: Partial<Record<ToolPhase, (props: ToolProps) => string>>\n permission?: (props: ToolPermissionProps) => ToolPermissionInfo\n snap?: (props: ToolProps) => ToolSnapshot | undefined\n}\n\ntype ToolRegistry = Record<ToolName, ToolRule>\n\ntype AnyToolRule = ToolRule\n\nfunction dict(v: unknown): ToolDict {\n if (!v || typeof v !== \"object\" || Array.isArray(v)) {\n return {}\n }\n\n return { ...v }\n}\n\nfunction props(frame: ToolFrame): ToolProps {\n return {\n input: frame.input,\n metadata: frame.meta,\n frame,\n }\n}\n\nfunction permission(ctx: ToolPermissionCtx): ToolPermissionProps {\n return {\n input: ctx.input,\n metadata: ctx.meta,\n patterns: ctx.patterns,\n }\n}\n\nfunction webSearchProviderLabel(provider: unknown) {\n if (provider === \"parallel\") return \"Parallel Web Search\"\n if (provider === \"exa\") return \"Exa Web Search\"\n return \"Web Search\"\n}\n\nfunction text(v: unknown): string {\n return typeof v === \"string\" ? v : \"\"\n}\n\nfunction num(v: unknown): number | undefined {\n if (typeof v !== \"number\" || !Number.isFinite(v)) {\n return undefined\n }\n\n return v\n}\n\nfunction list<T>(v: unknown): T[] {\n if (!Array.isArray(v)) {\n return []\n }\n\n return v\n}\n\nfunction info(data: ToolDict, skip: string[] = []): string {\n const list = Object.entries(data).filter(([key, val]) => {\n if (skip.includes(key)) {\n return false\n }\n\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"boolean\"\n })\n\n if (list.length === 0) {\n return \"\"\n }\n\n return `[${list.map(([key, val]) => `${key}=${String(val)}`).join(\", \")}]`\n}\n\nfunction span(state: ToolDict): string {\n const time = dict(state.time)\n const start = num(time.start)\n const end = num(time.end)\n if (start === undefined || end === undefined || end <= start) {\n return \"\"\n }\n\n return Locale.duration(end - start)\n}\n\nfunction fail(ctx: ToolFrame): string {\n const error = toolError(ctx)\n if (error) {\n return `✖ ${ctx.name} failed: ${error}`\n }\n\n return `✖ ${ctx.name} failed`\n}\n\nfunction toolError(ctx: ToolFrame): string {\n if (ctx.error) {\n return ctx.error\n }\n\n const state = text(ctx.state.error).trim()\n if (state) {\n return state\n }\n\n return ctx.raw.trim()\n}\n\nfunction fallbackStart(ctx: ToolFrame): string {\n const extra = info(ctx.input)\n if (!extra) {\n return `⚙ ${ctx.name}`\n }\n\n return `⚙ ${ctx.name} ${extra}`\n}\n\nfunction fallbackFinal(ctx: ToolFrame): string {\n if (ctx.status === \"error\") {\n return fail(ctx)\n }\n\n if (ctx.status && ctx.status !== \"completed\") {\n return ctx.raw.trim()\n }\n\n const time = span(ctx.state)\n if (!time) {\n return `${ctx.name} completed`\n }\n\n return `${ctx.name} completed · ${time}`\n}\n\nexport function toolPath(input?: string, opts: { home?: boolean } = {}): string {\n if (!input) {\n return \"\"\n }\n\n const cwd = process.cwd()\n const home = os.homedir()\n const abs = path.isAbsolute(input) ? input : path.resolve(cwd, input)\n const rel = path.relative(cwd, abs)\n\n if (!rel) {\n return \".\"\n }\n\n if (!rel.startsWith(\"..\")) {\n return rel.replaceAll(\"\\\\\", \"/\")\n }\n\n if (opts.home && home && (abs === home || abs.startsWith(home + path.sep))) {\n return abs.replace(home, \"~\").replaceAll(\"\\\\\", \"/\")\n }\n\n return abs.replaceAll(\"\\\\\", \"/\")\n}\n\nfunction fallbackInline(ctx: ToolFrame): ToolInline {\n const title = text(ctx.state.title) || (Object.keys(ctx.input).length > 0 ? JSON.stringify(ctx.input) : \"Unknown\")\n\n return {\n icon: \"⚙\",\n title: `${ctx.name} ${title}`,\n }\n}\n\nfunction count(n: number, label: string): string {\n return `${n} ${label}${n === 1 ? \"\" : \"es\"}`\n}\n\nfunction runGlob(p: ToolProps): ToolInline {\n const root = p.input.path ?? \"\"\n const title = `Glob \"${p.input.pattern ?? \"\"}\"`\n const suffix = root ? `in ${toolPath(root)}` : \"\"\n const matches = p.metadata.count\n const description = matches === undefined ? suffix : `${suffix}${suffix ? \" · \" : \"\"}${count(matches, \"match\")}`\n return {\n icon: \"✱\",\n title,\n ...(description && { description }),\n }\n}\n\nfunction runGrep(p: ToolProps): ToolInline {\n const root = p.input.path ?? \"\"\n const title = `Grep \"${p.input.pattern ?? \"\"}\"`\n const suffix = root ? `in ${toolPath(root)}` : \"\"\n const matches = p.metadata.matches\n const description = matches === undefined ? suffix : `${suffix}${suffix ? \" · \" : \"\"}${count(matches, \"match\")}`\n return {\n icon: \"✱\",\n title,\n ...(description && { description }),\n }\n}\n\nfunction runList(p: ToolProps): ToolInline {\n const dir = text(dict(p.input).path)\n return {\n icon: \"→\",\n title: dir ? `List ${toolPath(dir)}` : \"List\",\n }\n}\n\nfunction runRead(p: ToolProps): ToolInline {\n const file = toolPath(p.input.filePath)\n const description = info(p.frame.input, [\"filePath\"]) || undefined\n return {\n icon: \"→\",\n title: `Read ${file}`,\n ...(description && { description }),\n }\n}\n\nfunction runWrite(p: ToolProps): ToolInline {\n return {\n icon: \"←\",\n title: `Write ${toolPath(p.input.filePath)}`,\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction runWebfetch(p: ToolProps): ToolInline {\n const url = p.input.url ?? \"\"\n return {\n icon: \"%\",\n title: url ? `WebFetch ${url}` : \"WebFetch\",\n }\n}\n\nfunction runEdit(p: ToolProps): ToolInline {\n return {\n icon: \"←\",\n title: `Edit ${toolPath(p.input.filePath)}`,\n mode: \"block\",\n body: p.metadata.diff,\n }\n}\n\nfunction runWebSearch(p: ToolProps): ToolInline {\n const title = webSearchProviderLabel(p.metadata.provider)\n return {\n icon: \"◈\",\n title: p.input.query ? `${title} \"${p.input.query}\"` : title,\n }\n}\n\nfunction runTask(p: ToolProps): ToolInline {\n const kind = Locale.titlecase(p.input.subagent_type || \"unknown\")\n const desc = p.input.description\n const icon = p.frame.status === \"error\" ? \"✗\" : p.frame.status === \"running\" ? \"•\" : \"✓\"\n return {\n icon,\n title: desc || `${kind} Task`,\n description: desc ? `${kind} Agent` : undefined,\n }\n}\n\nfunction runSkill(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: `Skill \"${p.input.name ?? \"\"}\"`,\n }\n}\n\nfunction runPatch(p: ToolProps): ToolInline {\n const files = p.metadata.files?.length ?? 0\n if (files === 0) {\n return {\n icon: \"%\",\n title: \"Patch\",\n }\n }\n\n return {\n icon: \"%\",\n title: `Patch ${files} file${files === 1 ? \"\" : \"s\"}`,\n }\n}\n\nfunction runQuestion(p: ToolProps): ToolInline {\n const total = list(p.frame.input.questions).length\n return {\n icon: \"→\",\n title: `Asked ${total} question${total === 1 ? \"\" : \"s\"}`,\n }\n}\n\nfunction runInvalid(p: ToolProps): ToolInline {\n return {\n icon: \"✗\",\n title: text(p.frame.state.title) || \"Invalid Tool\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction runBatch(p: ToolProps): ToolInline {\n const calls = list(dict(p.input).tool_calls).length\n return {\n icon: \"#\",\n title: text(p.frame.state.title) || (calls > 0 ? `Batch ${calls} tool${calls === 1 ? \"\" : \"s\"}` : \"Batch\"),\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction lspTitle(\n input: {\n operation?: string\n filePath?: string\n line?: number\n character?: number\n },\n opts: { home?: boolean } = {},\n): string {\n const op = input.operation || \"request\"\n const file = input.filePath ? toolPath(input.filePath, opts) : \"\"\n const line = typeof input.line === \"number\" ? input.line : undefined\n const char = typeof input.character === \"number\" ? input.character : undefined\n const pos = line !== undefined && char !== undefined ? `:${line}:${char}` : \"\"\n if (!file) {\n return `LSP ${op}`\n }\n\n return `LSP ${op} ${file}${pos}`\n}\n\nfunction runLsp(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: text(p.frame.state.title) || lspTitle(p.input),\n }\n}\n\nfunction runPlanExit(p: ToolProps): ToolInline {\n return {\n icon: \"→\",\n title: text(p.frame.state.title) || \"Switching to build agent\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output) : undefined,\n }\n}\n\nfunction patchTitle(file: PatchFile): string {\n const rel = file.relativePath\n const from = file.filePath\n if (file.type === \"add\") {\n return `# Created ${rel || toolPath(from)}`\n }\n if (file.type === \"delete\") {\n return `# Deleted ${rel || toolPath(from)}`\n }\n if (file.type === \"move\") {\n return `# Moved ${toolPath(from)} -> ${rel || toolPath(file.movePath)}`\n }\n\n return `# Patched ${rel || toolPath(from)}`\n}\n\nfunction snapWrite(p: ToolProps): ToolSnapshot | undefined {\n const file = p.input.filePath || \"\"\n const content = p.input.content || \"\"\n if (!file && !content) {\n return undefined\n }\n\n return {\n kind: \"code\",\n title: `# Wrote ${toolPath(file)}`,\n content,\n file,\n }\n}\n\nfunction snapEdit(p: ToolProps): ToolSnapshot | undefined {\n const file = p.input.filePath || \"\"\n const diff = p.metadata.diff || \"\"\n if (!file || !diff.trim()) {\n return undefined\n }\n\n return {\n kind: \"diff\",\n items: [\n {\n title: `# Edited ${toolPath(file)}`,\n diff,\n file,\n },\n ],\n }\n}\n\nfunction snapPatch(p: ToolProps): ToolSnapshot | undefined {\n const files = list<PatchFile>(p.frame.meta.files)\n if (files.length === 0) {\n return undefined\n }\n\n const items = files.flatMap((file) => {\n if (!file || typeof file !== \"object\") {\n return []\n }\n\n const diff = typeof file.patch === \"string\" ? file.patch : \"\"\n if (!diff.trim()) {\n return []\n }\n\n const name = file.movePath || file.filePath || file.relativePath\n return [\n {\n title: patchTitle(file),\n diff,\n file: name,\n deletions: typeof file.deletions === \"number\" ? file.deletions : 0,\n },\n ]\n })\n\n if (items.length === 0) {\n return undefined\n }\n\n return {\n kind: \"diff\",\n items,\n }\n}\n\nfunction snapTask(p: ToolProps): ToolSnapshot {\n const kind = Locale.titlecase(p.input.subagent_type || \"general\")\n const desc = p.input.description\n const title = text(p.frame.state.title)\n const rows = [desc || title].filter((item): item is string => Boolean(item))\n\n return {\n kind: \"task\",\n title: `# ${kind} Task`,\n rows,\n tail: \"\",\n }\n}\n\nfunction snapQuestion(p: ToolProps): ToolSnapshot {\n const answers = list<unknown[]>(p.frame.meta.answers)\n const items = list<{ question?: string }>(p.frame.input.questions).map((item, i) => {\n const answer = list<string>(answers[i]).filter((entry) => typeof entry === \"string\")\n return {\n question: item.question || `Question ${i + 1}`,\n answer: answer.length > 0 ? answer.join(\", \") : \"(no answer)\",\n }\n })\n\n return {\n kind: \"question\",\n items,\n tail: \"\",\n }\n}\n\nfunction scrollBashStart(p: ToolProps): string {\n const cmd = p.input.command ?? \"\"\n const wd = p.input.workdir ?? \"\"\n const formatted = wd && wd !== \".\" ? toolPath(wd) : \"\"\n const dir = formatted === \".\" ? \"\" : formatted\n if (cmd && !dir) {\n return `$ ${cmd}`\n }\n\n if (!cmd) {\n return dir ? `# Running in ${dir}` : \"\"\n }\n\n return `# Running in ${dir}\\n$ ${cmd}`\n}\n\nfunction scrollBashProgress(p: ToolProps): string {\n const out = stripAnsi(p.frame.raw)\n const cmd = (p.input.command ?? \"\").trim()\n const fmt = (text: string) => {\n const body = text.replace(/^\\n+/, \"\").replace(/\\n+$/, \"\")\n return body ? `\\n${body}` : \"\"\n }\n\n if (!cmd) {\n return out.replace(/\\n+$/, \"\")\n }\n\n const wdRaw = (p.input.workdir ?? \"\").trim()\n const wd = wdRaw ? toolPath(wdRaw) : \"\"\n const lines = out.split(\"\\n\")\n const first = (lines[0] || \"\").trim()\n const second = (lines[1] || \"\").trim()\n\n if (wd && (first === wd || first === wdRaw) && second === cmd) {\n return fmt(lines.slice(2).join(\"\\n\"))\n }\n\n if (first === cmd || first === `$ ${cmd}`) {\n return fmt(lines.slice(1).join(\"\\n\"))\n }\n\n if (wd && (first === `${wd} ${cmd}` || first === `${wdRaw} ${cmd}`)) {\n return fmt(lines.slice(1).join(\"\\n\"))\n }\n\n return fmt(out)\n}\n\nfunction scrollShellFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const code = p.metadata.exit ?? num(p.frame.meta.exitCode) ?? num(p.frame.meta.exit_code)\n const time = span(p.frame.state)\n if (code === undefined) {\n if (!time) {\n return \"shell completed\"\n }\n\n return `shell completed · ${time}`\n }\n\n return `shell completed (exit ${code})${time ? ` · ${time}` : \"\"}`\n}\n\nfunction scrollReadStart(p: ToolProps): string {\n const file = toolPath(p.input.filePath)\n const extra = info(p.frame.input, [\"filePath\"])\n const tail = extra ? ` ${extra}` : \"\"\n return `→ Read ${file}${tail}`.trim()\n}\n\nfunction scrollWriteStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollEditStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollPatchStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction patchLine(file: PatchFile): string {\n const type = file.type\n const rel = file.relativePath\n const from = file.filePath\n\n if (type === \"add\") {\n return `+ Created ${rel || toolPath(from)}`\n }\n\n if (type === \"delete\") {\n return `- Deleted ${rel || toolPath(from)}`\n }\n\n if (type === \"move\") {\n return `→ Moved ${toolPath(from)} → ${rel || toolPath(file.movePath)}`\n }\n\n return `~ Patched ${rel || toolPath(from)}`\n}\n\nfunction scrollPatchFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const files = list<PatchFile>(p.frame.meta.files)\n if (files.length === 0) {\n const time = span(p.frame.state)\n if (!time) {\n return \"patch\"\n }\n\n return `patch · ${time}`\n }\n\n const show_updates = !files.some((file) => file?.type && file.type !== \"update\")\n const shown = files.filter((file) => show_updates || file.type !== \"update\")\n const rows = shown.slice(0, 6).map(patchLine)\n if (shown.length > 6) {\n rows.push(`... and ${shown.length - 6} more`)\n }\n\n if (rows.length > 0) {\n return rows.join(\"\\n\")\n }\n\n return patchLine(files[0]!)\n}\n\nfunction scrollTaskStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction taskResult(output: string): string | undefined {\n if (!output.trim()) {\n return undefined\n }\n\n const match = output.match(/<task_result>\\s*([\\s\\S]*?)\\s*<\\/task_result>/)\n if (match) {\n return match[1].trim() || undefined\n }\n\n const next = output\n .split(\"\\n\")\n .filter((line) => !line.startsWith(\"task_id:\"))\n .join(\"\\n\")\n .trim()\n return next || undefined\n}\n\nfunction scrollTaskFinal(p: ToolProps): string {\n if (p.frame.status === \"error\") {\n return fail(p.frame)\n }\n\n const kind = Locale.titlecase(p.input.subagent_type || \"general\")\n const row = p.input.description || text(p.frame.state.title)\n if (!row) {\n return `# ${kind} Task`\n }\n\n return `# ${kind} Task\\n${row}`\n}\n\nfunction scrollQuestionStart(_: ToolProps): string {\n return \"\"\n}\n\nfunction scrollQuestionFinal(p: ToolProps): string {\n const q = p.input.questions ?? []\n const a = p.metadata.answers ?? []\n const time = span(p.frame.state)\n if (q.length === 0) {\n if (!time) {\n return \"0 questions\"\n }\n\n return `0 questions · ${time}`\n }\n\n const rows: string[] = []\n for (const [i, item] of q.slice(0, 4).entries()) {\n const prompt = item.question\n const reply = a[i] ?? []\n rows.push(`? ${prompt || `Question ${i + 1}`}`)\n rows.push(` ${reply.length > 0 ? reply.join(\", \") : \"(no answer)\"}`)\n }\n\n if (q.length > 4) {\n rows.push(`... and ${q.length - 4} more`)\n }\n\n return rows.join(\"\\n\")\n}\n\nfunction scrollLspStart(p: ToolProps): string {\n return `→ ${lspTitle(p.input)}`\n}\n\nfunction scrollSkillStart(p: ToolProps): string {\n return `→ Skill \"${p.input.name ?? \"\"}\"`\n}\n\nfunction scrollGlobStart(p: ToolProps): string {\n const pattern = p.input.pattern ?? \"\"\n const head = pattern ? `✱ Glob \"${pattern}\"` : \"✱ Glob\"\n const dir = p.input.path ?? \"\"\n if (!dir) {\n return head\n }\n\n return `${head} in ${toolPath(dir)}`\n}\n\nfunction scrollGlobFinal(p: ToolProps): string {\n return toolError(p.frame) || fail(p.frame)\n}\n\nfunction scrollGrepStart(p: ToolProps): string {\n const pattern = p.input.pattern ?? \"\"\n const head = pattern ? `✱ Grep \"${pattern}\"` : \"✱ Grep\"\n const dir = p.input.path ?? \"\"\n if (!dir) {\n return head\n }\n\n return `${head} in ${toolPath(dir)}`\n}\n\nfunction scrollListStart(p: ToolProps): string {\n const dir = text(dict(p.input).path)\n if (!dir) {\n return \"→ List\"\n }\n\n return `→ List ${toolPath(dir)}`\n}\n\nfunction scrollWebfetchStart(p: ToolProps): string {\n const url = p.input.url ?? \"\"\n if (!url) {\n return \"% WebFetch\"\n }\n\n return `% WebFetch ${url}`\n}\n\nfunction scrollWebSearchStart(p: ToolProps): string {\n const title = webSearchProviderLabel(p.metadata.provider)\n const query = p.input.query ?? \"\"\n if (!query) {\n return `◈ ${title}`\n }\n\n return `◈ ${title} \"${query}\"`\n}\n\nfunction permEdit(p: ToolPermissionProps): ToolPermissionInfo {\n const input = p.input as { filePath?: string; filepath?: string; diff?: string }\n const file = input.filePath || input.filepath || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `Edit ${toolPath(file, { home: true })}`,\n lines: [],\n diff: p.metadata.diff ?? input.diff,\n file,\n }\n}\n\nfunction permRead(p: ToolPermissionProps): ToolPermissionInfo {\n const file = p.input.filePath || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `Read ${toolPath(file, { home: true })}`,\n lines: file ? [`Path: ${toolPath(file, { home: true })}`] : [],\n }\n}\n\nfunction permGlob(p: ToolPermissionProps): ToolPermissionInfo {\n const pattern = p.input.pattern || p.patterns[0] || \"\"\n return {\n icon: \"✱\",\n title: `Glob \"${pattern}\"`,\n lines: pattern ? [`Pattern: ${pattern}`] : [],\n }\n}\n\nfunction permGrep(p: ToolPermissionProps): ToolPermissionInfo {\n const pattern = p.input.pattern || p.patterns[0] || \"\"\n return {\n icon: \"✱\",\n title: `Grep \"${pattern}\"`,\n lines: pattern ? [`Pattern: ${pattern}`] : [],\n }\n}\n\nfunction permList(p: ToolPermissionProps): ToolPermissionInfo {\n const dir = text(dict(p.input).path) || p.patterns[0] || \"\"\n return {\n icon: \"→\",\n title: `List ${toolPath(dir, { home: true })}`,\n lines: dir ? [`Path: ${toolPath(dir, { home: true })}`] : [],\n }\n}\n\nfunction permBash(p: ToolPermissionProps): ToolPermissionInfo {\n const cmd = p.input.command || \"\"\n return {\n icon: \"#\",\n title: \"Shell command\",\n lines: cmd ? [`$ ${cmd}`] : p.patterns.map((item) => `- ${item}`),\n }\n}\n\nfunction permTask(p: ToolPermissionProps): ToolPermissionInfo {\n const type = p.input.subagent_type || \"general\"\n const desc = p.input.description\n return {\n icon: \"#\",\n title: `${Locale.titlecase(type)} Task`,\n lines: desc ? [`◉ ${desc}`] : [],\n }\n}\n\nfunction permWebfetch(p: ToolPermissionProps): ToolPermissionInfo {\n const url = p.input.url || \"\"\n return {\n icon: \"%\",\n title: `WebFetch ${url}`,\n lines: url ? [`URL: ${url}`] : [],\n }\n}\n\nfunction permWebSearch(p: ToolPermissionProps): ToolPermissionInfo {\n const query = p.input.query || \"\"\n const title = webSearchProviderLabel(p.metadata.provider)\n return {\n icon: \"◈\",\n title: query ? `${title} \"${query}\"` : title,\n lines: query ? [`Query: ${query}`] : [],\n }\n}\n\nfunction permLsp(p: ToolPermissionProps): ToolPermissionInfo {\n const file = p.input.filePath || \"\"\n const line = typeof p.input.line === \"number\" ? p.input.line : undefined\n const char = typeof p.input.character === \"number\" ? p.input.character : undefined\n const pos = line !== undefined && char !== undefined ? `${line}:${char}` : undefined\n return {\n icon: \"→\",\n title: lspTitle(p.input, { home: true }),\n lines: [\n ...(p.input.operation ? [`Operation: ${p.input.operation}`] : []),\n ...(file ? [`Path: ${toolPath(file, { home: true })}`] : []),\n ...(pos ? [`Position: ${pos}`] : []),\n ],\n }\n}\n\nconst TOOL_RULES = {\n invalid: {\n view: {\n output: true,\n final: false,\n },\n run: runInvalid,\n scroll: {\n start: () => \"\",\n },\n },\n shell: {\n view: {\n output: true,\n final: false,\n },\n run: runShell,\n scroll: {\n start: scrollBashStart,\n progress: scrollBashProgress,\n final: scrollShellFinal,\n },\n permission: permBash,\n },\n write: {\n view: {\n output: false,\n final: true,\n snap: \"code\",\n },\n run: runWrite,\n snap: snapWrite,\n scroll: {\n start: scrollWriteStart,\n },\n },\n edit: {\n view: {\n output: false,\n final: true,\n snap: \"diff\",\n },\n run: runEdit,\n snap: snapEdit,\n scroll: {\n start: scrollEditStart,\n },\n permission: permEdit,\n },\n patch: {\n view: {\n output: false,\n final: true,\n snap: \"diff\",\n },\n run: runPatch,\n snap: snapPatch,\n scroll: {\n start: scrollPatchStart,\n final: scrollPatchFinal,\n },\n },\n batch: {\n view: {\n output: true,\n final: false,\n },\n run: runBatch,\n scroll: {\n start: () => \"\",\n },\n },\n task: {\n view: {\n output: false,\n final: true,\n snap: \"structured\",\n },\n run: runTask,\n snap: snapTask,\n scroll: {\n start: scrollTaskStart,\n final: scrollTaskFinal,\n },\n permission: permTask,\n },\n question: {\n view: {\n output: false,\n final: true,\n snap: \"structured\",\n },\n run: runQuestion,\n snap: snapQuestion,\n scroll: {\n start: scrollQuestionStart,\n final: scrollQuestionFinal,\n },\n },\n read: {\n view: {\n output: false,\n final: false,\n },\n run: runRead,\n scroll: {\n start: scrollReadStart,\n },\n permission: permRead,\n },\n glob: {\n view: {\n output: false,\n final: false,\n },\n run: runGlob,\n scroll: {\n start: scrollGlobStart,\n final: scrollGlobFinal,\n },\n permission: permGlob,\n },\n grep: {\n view: {\n output: false,\n final: false,\n },\n run: runGrep,\n scroll: {\n start: scrollGrepStart,\n },\n permission: permGrep,\n },\n list: {\n view: {\n output: false,\n final: false,\n },\n run: runList,\n scroll: {\n start: scrollListStart,\n },\n permission: permList,\n },\n lsp: {\n view: {\n output: false,\n final: false,\n },\n run: runLsp,\n scroll: {\n start: scrollLspStart,\n },\n permission: permLsp,\n },\n webfetch: {\n view: {\n output: false,\n final: false,\n },\n run: runWebfetch,\n scroll: {\n start: scrollWebfetchStart,\n },\n permission: permWebfetch,\n },\n websearch: {\n view: {\n output: false,\n final: false,\n },\n run: runWebSearch,\n scroll: {\n start: scrollWebSearchStart,\n },\n permission: permWebSearch,\n },\n skill: {\n view: {\n output: false,\n final: false,\n },\n run: runSkill,\n scroll: {\n start: scrollSkillStart,\n },\n },\n plan_exit: {\n view: {\n output: true,\n final: false,\n },\n run: runPlanExit,\n scroll: {\n start: () => \"\",\n },\n },\n} as const satisfies ToolRegistry\n\nfunction key(name: string): name is ToolName {\n return Object.prototype.hasOwnProperty.call(TOOL_RULES, name)\n}\n\nfunction rule(name?: string): AnyToolRule | undefined {\n if (!name || !key(name)) {\n return undefined\n }\n\n return TOOL_RULES[name]\n}\n\nfunction frame(part: MiniToolPart): ToolFrame {\n const state = dict(part.state)\n return {\n raw: \"\",\n name: part.tool,\n input: dict(state.input),\n meta: \"metadata\" in part.state ? dict(part.state.metadata) : {},\n state,\n status: text(state.status),\n error: text(state.error),\n }\n}\n\nexport function toolFrame(commit: StreamCommit, raw: string): ToolFrame {\n const state = dict(commit.part?.state)\n return {\n raw,\n name: commit.tool || commit.part?.tool || \"tool\",\n input: dict(state.input),\n meta: commit.part?.state && \"metadata\" in commit.part.state ? dict(commit.part.state.metadata) : {},\n state,\n status: commit.toolState ?? text(state.status),\n error: (commit.toolError ?? \"\").trim(),\n }\n}\n\nfunction runShell(p: ToolProps): ToolInline {\n return {\n icon: \"$\",\n title: p.input.command || \"\",\n mode: \"block\",\n body: p.frame.status === \"completed\" ? text(p.frame.state.output).trim() : undefined,\n }\n}\n\nexport function toolView(name?: string): ToolView {\n return (\n rule(name)?.view ?? {\n output: true,\n final: true,\n }\n )\n}\n\nexport function toolStructuredFinal(commit: StreamCommit): boolean {\n const state = commit.toolState ?? commit.part?.state.status\n return (\n commit.kind === \"tool\" &&\n commit.phase === \"final\" &&\n state === \"completed\" &&\n Boolean(toolView(commit.tool ?? commit.part?.tool).snap)\n )\n}\n\nexport function toolInlineInfo(part: MiniToolPart): ToolInline {\n const ctx = frame(part)\n const draw = rule(ctx.name)?.run\n try {\n if (draw) {\n return draw(props(ctx))\n }\n } catch {\n return fallbackInline(ctx)\n }\n\n return fallbackInline(ctx)\n}\n\nexport function toolScroll(phase: ToolPhase, ctx: ToolFrame): string {\n const draw = rule(ctx.name)?.scroll?.[phase]\n try {\n if (draw) {\n return draw(props(ctx))\n }\n } catch {\n if (phase === \"start\") {\n return fallbackStart(ctx)\n }\n if (phase === \"progress\") {\n return ctx.raw\n }\n return fallbackFinal(ctx)\n }\n\n if (phase === \"start\") {\n return fallbackStart(ctx)\n }\n\n if (phase === \"progress\") {\n return ctx.raw\n }\n\n return fallbackFinal(ctx)\n}\n\nexport function toolPermissionInfo(\n name: string,\n input: ToolDict,\n meta: ToolDict,\n patterns: string[],\n): ToolPermissionInfo | undefined {\n const draw = rule(name)?.permission\n if (!draw) {\n return undefined\n }\n\n try {\n return draw(permission({ input, meta, patterns }))\n } catch {\n return undefined\n }\n}\n\nexport function toolSnapshot(commit: StreamCommit, raw: string): ToolSnapshot | undefined {\n const ctx = toolFrame(commit, raw)\n const draw = rule(ctx.name)?.snap\n if (!draw) {\n return undefined\n }\n\n try {\n return draw(props(ctx))\n } catch {\n return undefined\n }\n}\n\nfunction textBody(content: string): RunEntryBody | undefined {\n if (!content) {\n return undefined\n }\n\n return {\n type: \"text\",\n content,\n }\n}\n\nfunction markdownBody(content: string): RunEntryBody | undefined {\n if (!content) {\n return undefined\n }\n\n return {\n type: \"markdown\",\n content,\n }\n}\n\nfunction structuredBody(commit: StreamCommit, raw: string): RunEntryBody | undefined {\n const snap = toolSnapshot(commit, raw)\n if (!snap) {\n return undefined\n }\n\n return {\n type: \"structured\",\n snapshot: snap,\n }\n}\n\nfunction shellOutput(command: string, raw: string): string | undefined {\n const body = stripAnsi(raw).replace(/^\\n+/, \"\").replace(/\\n+$/, \"\")\n if (!body) {\n return undefined\n }\n\n if (!command) {\n return body\n }\n\n return `\\n${body}`\n}\n\nexport function toolEntryBody(commit: StreamCommit, raw: string): RunEntryBody | undefined {\n if (commit.shell) {\n if (commit.phase === \"start\") {\n return textBody(`$ ${commit.shell.command}`)\n }\n\n if (commit.phase === \"progress\") {\n return textBody(shellOutput(commit.shell.command, raw) ?? \"\")\n }\n\n if (commit.toolState === \"error\") {\n const ctx = toolFrame(commit, raw)\n return textBody(toolScroll(\"final\", ctx))\n }\n\n return undefined\n }\n\n const ctx = toolFrame(commit, raw)\n const view = toolView(ctx.name)\n\n if (ctx.name === \"task\") {\n if (commit.phase === \"start\") {\n return undefined\n }\n\n if (commit.phase === \"final\" && ctx.status === \"completed\") {\n const result = taskResult(text(ctx.state.output))\n if (result) {\n return markdownBody(result)\n }\n }\n }\n\n if (commit.phase === \"progress\" && !view.output) {\n return undefined\n }\n\n if (commit.phase === \"final\") {\n if (ctx.status === \"error\") {\n return textBody(toolScroll(\"final\", ctx))\n }\n\n if (!view.final) {\n return undefined\n }\n\n if (ctx.status && ctx.status !== \"completed\") {\n return textBody(ctx.raw.trim())\n }\n\n if (toolStructuredFinal(commit)) {\n return structuredBody(commit, raw) ?? textBody(toolScroll(\"final\", ctx))\n }\n }\n\n return textBody(toolScroll(commit.phase, ctx))\n}\n\nexport function toolFiletype(input?: string): string | undefined {\n if (!input) {\n return undefined\n }\n\n const ext = path.extname(input)\n const lang = LANGUAGE_EXTENSIONS[ext]\n if ([\"typescriptreact\", \"javascriptreact\", \"javascript\"].includes(lang)) {\n return \"typescript\"\n }\n\n return lang\n}\n"
],
"mappings": "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",
"debugId": "AA8376CDD5660E8464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709163752_time_suspended.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709163752_time_suspended\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`time_suspended\\` integer;`)\n yield* tx.run(\n `CREATE INDEX \\`session_time_suspended_idx\\` ON \\`session\\` (\\`time_suspended\\`) WHERE \"session\".\"time_suspended\" is not null;`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAyD,EACvE,MAAO,EAAG,IACR,yHACF,EACD,EAEL",
"debugId": "7B868000D6185D6664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260225215848_workspace.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260225215848_workspace\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`workspace\\` (\n \\`id\\` text PRIMARY KEY,\n \\`branch\\` text,\n \\`project_id\\` text NOT NULL,\n \\`config\\` text NOT NULL,\n CONSTRAINT \\`fk_workspace_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sUAQb,EACF,EAEL",
"debugId": "00638507C85F81D164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260622202450_simplify_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622202450_simplify_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_context_epoch\\`;`)\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL WHERE \\`workspace_id\\` IS NOT NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sCAAwC,EACtD,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,8EAAoF,EAClG,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "C8A6D03948881B8864756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260705180000_rename_instructions.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260705180000_rename_instructions\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_entry\\` RENAME TO \\`instruction_entry\\``)\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` RENAME TO \\`instruction_checkpoint\\``)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET \\`type\\` = 'session.instructions.updated.1'\n WHERE \\`type\\` = 'session.context.updated.1'\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,qCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mEAAuE,EACrF,MAAO,EAAG,IAAI,wEAA4E,EAC1F,MAAO,EAAG,IAAI,6IAIb,EACF,EAEL",
"debugId": "72EAC37D98509E4A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260211171708_add_project_commands.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260211171708_add_project_commands\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`project\\` ADD \\`commands\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4CAAgD,EAC/D,EAEL",
"debugId": "A4C56530AB83D5DE64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "F5163E456569F74964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/theme/color.ts", "../tui/src/theme/v1.ts", "../tui/src/theme/index.ts", "../tui/src/theme/system.ts", "../tui/src/context/helper.tsx", "../tui/src/context/theme.tsx"],
"sourcesContent": [
"import { RGBA } from \"@opentui/core\"\n\nexport function ansiToRgba(code: number): RGBA {\n if (code < 16) {\n const ansiColors = [\n \"#000000\",\n \"#800000\",\n \"#008000\",\n \"#808000\",\n \"#000080\",\n \"#800080\",\n \"#008080\",\n \"#c0c0c0\",\n \"#808080\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ffff00\",\n \"#0000ff\",\n \"#ff00ff\",\n \"#00ffff\",\n \"#ffffff\",\n ]\n return RGBA.fromHex(ansiColors[code] ?? \"#000000\")\n }\n\n if (code < 232) {\n const index = code - 16\n const b = index % 6\n const g = Math.floor(index / 6) % 6\n const r = Math.floor(index / 36)\n const val = (x: number) => (x === 0 ? 0 : x * 40 + 55)\n return RGBA.fromInts(val(r), val(g), val(b))\n }\n\n if (code < 256) {\n const gray = (code - 232) * 10 + 8\n return RGBA.fromInts(gray, gray, gray)\n }\n\n return RGBA.fromInts(0, 0, 0)\n}\n\nexport function tint(base: RGBA, overlay: RGBA, alpha: number): RGBA {\n const r = base.r + (overlay.r - base.r) * alpha\n const g = base.g + (overlay.g - base.g) * alpha\n const b = base.b + (overlay.b - base.b) * alpha\n return RGBA.fromInts(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n",
"import { RGBA, SyntaxStyle } from \"@opentui/core\"\nimport aura from \"./assets/aura.json\" with { type: \"json\" }\nimport ayu from \"./assets/ayu.json\" with { type: \"json\" }\nimport carbonfox from \"./assets/carbonfox.json\" with { type: \"json\" }\nimport catppuccinFrappe from \"./assets/catppuccin-frappe.json\" with { type: \"json\" }\nimport catppuccinMacchiato from \"./assets/catppuccin-macchiato.json\" with { type: \"json\" }\nimport catppuccin from \"./assets/catppuccin.json\" with { type: \"json\" }\nimport cobalt2 from \"./assets/cobalt2.json\" with { type: \"json\" }\nimport cursor from \"./assets/cursor.json\" with { type: \"json\" }\nimport dracula from \"./assets/dracula.json\" with { type: \"json\" }\nimport everforest from \"./assets/everforest.json\" with { type: \"json\" }\nimport flexoki from \"./assets/flexoki.json\" with { type: \"json\" }\nimport github from \"./assets/github.json\" with { type: \"json\" }\nimport gruvbox from \"./assets/gruvbox.json\" with { type: \"json\" }\nimport kanagawa from \"./assets/kanagawa.json\" with { type: \"json\" }\nimport lucentOrng from \"./assets/lucent-orng.json\" with { type: \"json\" }\nimport material from \"./assets/material.json\" with { type: \"json\" }\nimport matrix from \"./assets/matrix.json\" with { type: \"json\" }\nimport mercury from \"./assets/mercury.json\" with { type: \"json\" }\nimport monokai from \"./assets/monokai.json\" with { type: \"json\" }\nimport nightowl from \"./assets/nightowl.json\" with { type: \"json\" }\nimport nord from \"./assets/nord.json\" with { type: \"json\" }\nimport onedark from \"./assets/one-dark.json\" with { type: \"json\" }\nimport opencode from \"./assets/opencode.json\" with { type: \"json\" }\nimport orng from \"./assets/orng.json\" with { type: \"json\" }\nimport osakaJade from \"./assets/osaka-jade.json\" with { type: \"json\" }\nimport palenight from \"./assets/palenight.json\" with { type: \"json\" }\nimport rosepine from \"./assets/rosepine.json\" with { type: \"json\" }\nimport solarized from \"./assets/solarized.json\" with { type: \"json\" }\nimport synthwave84 from \"./assets/synthwave84.json\" with { type: \"json\" }\nimport tokyonight from \"./assets/tokyonight.json\" with { type: \"json\" }\nimport vercel from \"./assets/vercel.json\" with { type: \"json\" }\nimport vesper from \"./assets/vesper.json\" with { type: \"json\" }\nimport zenburn from \"./assets/zenburn.json\" with { type: \"json\" }\n\nexport type Theme = {\n readonly primary: RGBA\n readonly secondary: RGBA\n readonly accent: RGBA\n readonly error: RGBA\n readonly warning: RGBA\n readonly success: RGBA\n readonly info: RGBA\n readonly text: RGBA\n readonly textMuted: RGBA\n readonly selectedListItemText: RGBA\n readonly background: RGBA\n readonly backgroundPanel: RGBA\n readonly backgroundElement: RGBA\n readonly backgroundMenu: RGBA\n readonly border: RGBA\n readonly borderActive: RGBA\n readonly borderSubtle: RGBA\n readonly diffAdded: RGBA\n readonly diffRemoved: RGBA\n readonly diffContext: RGBA\n readonly diffHunkHeader: RGBA\n readonly diffHighlightAdded: RGBA\n readonly diffHighlightRemoved: RGBA\n readonly diffAddedBg: RGBA\n readonly diffRemovedBg: RGBA\n readonly diffContextBg: RGBA\n readonly diffLineNumber: RGBA\n readonly diffAddedLineNumberBg: RGBA\n readonly diffRemovedLineNumberBg: RGBA\n readonly markdownText: RGBA\n readonly markdownHeading: RGBA\n readonly markdownLink: RGBA\n readonly markdownLinkText: RGBA\n readonly markdownCode: RGBA\n readonly markdownBlockQuote: RGBA\n readonly markdownEmph: RGBA\n readonly markdownStrong: RGBA\n readonly markdownHorizontalRule: RGBA\n readonly markdownListItem: RGBA\n readonly markdownListEnumeration: RGBA\n readonly markdownImage: RGBA\n readonly markdownImageText: RGBA\n readonly markdownCodeBlock: RGBA\n readonly syntaxComment: RGBA\n readonly syntaxKeyword: RGBA\n readonly syntaxFunction: RGBA\n readonly syntaxVariable: RGBA\n readonly syntaxString: RGBA\n readonly syntaxNumber: RGBA\n readonly syntaxType: RGBA\n readonly syntaxOperator: RGBA\n readonly syntaxPunctuation: RGBA\n readonly thinkingOpacity: number\n _hasSelectedListItemText: boolean\n}\n\nexport type ThemeColor = Exclude<keyof Theme, \"thinkingOpacity\" | \"_hasSelectedListItemText\">\nexport type HexColor = `#${string}`\nexport type RefName = string\nexport type Variant = {\n dark: HexColor | RefName\n light: HexColor | RefName\n}\nexport type ColorValue = HexColor | RefName | Variant | RGBA\nexport type ThemeJson = {\n $schema?: string\n defs?: Record<string, HexColor | RefName>\n theme: Omit<Record<ThemeColor, ColorValue>, \"selectedListItemText\" | \"backgroundMenu\"> & {\n selectedListItemText?: ColorValue\n backgroundMenu?: ColorValue\n thinkingOpacity?: number\n }\n}\n\nexport const DEFAULT_THEMES: Record<string, ThemeJson> = {\n aura,\n ayu,\n catppuccin,\n [\"catppuccin-frappe\"]: catppuccinFrappe,\n [\"catppuccin-macchiato\"]: catppuccinMacchiato,\n cobalt2,\n cursor,\n dracula,\n everforest,\n flexoki,\n github,\n gruvbox,\n kanagawa,\n material,\n matrix,\n mercury,\n monokai,\n nightowl,\n nord,\n [\"one-dark\"]: onedark,\n [\"osaka-jade\"]: osakaJade,\n opencode,\n orng,\n [\"lucent-orng\"]: lucentOrng,\n palenight,\n rosepine,\n solarized,\n synthwave84,\n tokyonight,\n vesper,\n vercel,\n zenburn,\n carbonfox,\n}\n\nexport function selectedForeground(theme: Theme, bg?: RGBA): RGBA {\n if (theme._hasSelectedListItemText) return theme.selectedListItemText\n\n if (theme.background.a === 0) {\n const targetColor = bg ?? theme.primary\n const { r, g, b } = targetColor\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b\n return luminance > 0.5 ? RGBA.fromInts(0, 0, 0) : RGBA.fromInts(255, 255, 255)\n }\n\n return theme.background\n}\n\nexport function generateSyntax(theme: Theme) {\n return SyntaxStyle.fromTheme(getSyntaxRules(theme))\n}\n\nfunction getSyntaxRules(theme: Theme) {\n return [\n {\n scope: [\"default\"],\n style: {\n foreground: theme.text,\n },\n },\n {\n scope: [\"prompt\"],\n style: {\n foreground: theme.accent,\n },\n },\n {\n scope: [\"extmark.file\"],\n style: {\n foreground: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"extmark.agent\"],\n style: {\n foreground: theme.secondary,\n bold: true,\n },\n },\n {\n scope: [\"extmark.paste\"],\n style: {\n foreground: selectedForeground(theme, theme.warning),\n background: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"comment\"],\n style: {\n foreground: theme.syntaxComment,\n italic: true,\n },\n },\n {\n scope: [\"comment.documentation\"],\n style: {\n foreground: theme.syntaxComment,\n italic: true,\n },\n },\n {\n scope: [\"string\", \"symbol\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"number\", \"boolean\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"character.special\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"keyword.return\", \"keyword.conditional\", \"keyword.repeat\", \"keyword.coroutine\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.type\"],\n style: {\n foreground: theme.syntaxType,\n bold: true,\n italic: true,\n },\n },\n {\n scope: [\"keyword.function\", \"function.method\"],\n style: {\n foreground: theme.syntaxFunction,\n },\n },\n {\n scope: [\"keyword\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.import\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"operator\", \"keyword.operator\", \"punctuation.delimiter\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"keyword.conditional.ternary\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"variable\", \"variable.parameter\", \"function.method.call\", \"function.call\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"variable.member\", \"function\", \"constructor\"],\n style: {\n foreground: theme.syntaxFunction,\n },\n },\n {\n scope: [\"type\", \"module\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"constant\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"property\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"class\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"parameter\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"punctuation\", \"punctuation.bracket\"],\n style: {\n foreground: theme.syntaxPunctuation,\n },\n },\n {\n scope: [\"variable.builtin\", \"type.builtin\", \"function.builtin\", \"module.builtin\", \"constant.builtin\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"variable.super\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"string.escape\", \"string.regexp\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"keyword.directive\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"punctuation.special\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"keyword.modifier\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n {\n scope: [\"keyword.exception\"],\n style: {\n foreground: theme.syntaxKeyword,\n italic: true,\n },\n },\n // Markdown specific styles\n {\n scope: [\"markup.heading\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.1\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n underline: true,\n },\n },\n {\n scope: [\"markup.heading.2\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.3\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.4\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.5\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.heading.6\"],\n style: {\n foreground: theme.markdownHeading,\n bold: true,\n },\n },\n {\n scope: [\"markup.bold\", \"markup.strong\"],\n style: {\n foreground: theme.markdownStrong,\n bold: true,\n },\n },\n {\n scope: [\"markup.italic\"],\n style: {\n foreground: theme.markdownEmph,\n italic: true,\n },\n },\n {\n scope: [\"markup.list\"],\n style: {\n foreground: theme.markdownListItem,\n },\n },\n {\n scope: [\"markup.quote\"],\n style: {\n foreground: theme.markdownBlockQuote,\n italic: true,\n },\n },\n {\n scope: [\"markup.raw\", \"markup.raw.block\"],\n style: {\n foreground: theme.markdownCode,\n },\n },\n {\n scope: [\"markup.raw.inline\"],\n style: {\n foreground: theme.markdownCode,\n background: theme.background,\n },\n },\n {\n scope: [\"markup.link\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"markup.link.label\"],\n style: {\n foreground: theme.markdownLinkText,\n underline: true,\n },\n },\n {\n scope: [\"markup.link.url\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"label\"],\n style: {\n foreground: theme.markdownLinkText,\n },\n },\n {\n scope: [\"spell\", \"nospell\"],\n style: {\n foreground: theme.text,\n },\n },\n // Additional common highlight groups\n {\n scope: [\"string.special\", \"string.special.url\"],\n style: {\n foreground: theme.markdownLink,\n underline: true,\n },\n },\n {\n scope: [\"character\"],\n style: {\n foreground: theme.syntaxString,\n },\n },\n {\n scope: [\"float\"],\n style: {\n foreground: theme.syntaxNumber,\n },\n },\n {\n scope: [\"comment.error\"],\n style: {\n foreground: theme.error,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"comment.warning\"],\n style: {\n foreground: theme.warning,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"comment.todo\", \"comment.note\"],\n style: {\n foreground: theme.info,\n italic: true,\n bold: true,\n },\n },\n {\n scope: [\"namespace\"],\n style: {\n foreground: theme.syntaxType,\n },\n },\n {\n scope: [\"field\"],\n style: {\n foreground: theme.syntaxVariable,\n },\n },\n {\n scope: [\"type.definition\"],\n style: {\n foreground: theme.syntaxType,\n bold: true,\n },\n },\n {\n scope: [\"keyword.export\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"attribute\", \"annotation\"],\n style: {\n foreground: theme.warning,\n },\n },\n {\n scope: [\"tag\"],\n style: {\n foreground: theme.error,\n },\n },\n {\n scope: [\"tag.attribute\"],\n style: {\n foreground: theme.syntaxKeyword,\n },\n },\n {\n scope: [\"tag.delimiter\"],\n style: {\n foreground: theme.syntaxOperator,\n },\n },\n {\n scope: [\"markup.strikethrough\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n {\n scope: [\"markup.underline\"],\n style: {\n foreground: theme.text,\n underline: true,\n },\n },\n {\n scope: [\"markup.list.checked\"],\n style: {\n foreground: theme.success,\n },\n },\n {\n scope: [\"markup.list.unchecked\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n {\n scope: [\"diff.plus\"],\n style: {\n foreground: theme.diffAdded,\n background: theme.diffAddedBg,\n },\n },\n {\n scope: [\"diff.minus\"],\n style: {\n foreground: theme.diffRemoved,\n background: theme.diffRemovedBg,\n },\n },\n {\n scope: [\"diff.delta\"],\n style: {\n foreground: theme.diffContext,\n background: theme.diffContextBg,\n },\n },\n {\n scope: [\"error\"],\n style: {\n foreground: theme.error,\n bold: true,\n },\n },\n {\n scope: [\"warning\"],\n style: {\n foreground: theme.warning,\n bold: true,\n },\n },\n {\n scope: [\"info\"],\n style: {\n foreground: theme.info,\n },\n },\n {\n scope: [\"debug\"],\n style: {\n foreground: theme.textMuted,\n },\n },\n ]\n}\n",
"import { RGBA } from \"@opentui/core\"\nimport { ansiToRgba } from \"./color\"\nimport { DEFAULT_THEMES, type ColorValue, type Theme, type ThemeColor, type ThemeJson } from \"./v1\"\n\nexport { DEFAULT_THEMES, generateSyntax, selectedForeground, type Theme, type ThemeJson } from \"./v1\"\n\nconst pluginThemes: Record<string, ThemeJson> = {}\nlet customThemes: Record<string, ThemeJson> = {}\nlet systemTheme: ThemeJson | undefined\nconst listeners = new Set<(themes: Record<string, ThemeJson>) => void>()\n\nfunction listThemes() {\n // Priority: defaults < plugin installs < custom files < generated system.\n const themes = {\n ...DEFAULT_THEMES,\n ...pluginThemes,\n ...customThemes,\n }\n if (!systemTheme) return themes\n return {\n ...themes,\n system: systemTheme,\n }\n}\n\nfunction syncThemes() {\n const themes = listThemes()\n for (const listener of listeners) listener(themes)\n}\n\nexport function allThemes() {\n return listThemes()\n}\n\nexport function isTheme(theme: unknown): theme is ThemeJson {\n if (typeof theme !== \"object\" || theme === null || Array.isArray(theme)) return false\n const value = Reflect.get(theme, \"theme\")\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nexport function subscribeThemes(listener: (themes: Record<string, ThemeJson>) => void) {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n\nexport function setCustomThemes(themes: Record<string, ThemeJson>) {\n customThemes = themes\n syncThemes()\n}\n\nexport function setSystemTheme(theme: ThemeJson | undefined) {\n systemTheme = theme\n syncThemes()\n}\n\nexport function hasTheme(name: string) {\n if (!name) return false\n return allThemes()[name] !== undefined\n}\n\nexport function addTheme(name: string, theme: unknown) {\n if (!name) return false\n if (!isTheme(theme)) return false\n if (hasTheme(name)) return false\n pluginThemes[name] = theme\n syncThemes()\n return true\n}\n\nexport function upsertTheme(name: string, theme: unknown) {\n if (!name) return false\n if (!isTheme(theme)) return false\n if (customThemes[name] !== undefined) {\n customThemes[name] = theme\n } else {\n pluginThemes[name] = theme\n }\n syncThemes()\n return true\n}\n\nexport function resolveTheme(theme: ThemeJson, mode: \"dark\" | \"light\") {\n const defs = theme.defs ?? {}\n function resolveColor(c: ColorValue, chain: string[] = []): RGBA {\n if (c instanceof RGBA) return c\n if (typeof c === \"string\") {\n if (c === \"transparent\" || c === \"none\") return RGBA.fromInts(0, 0, 0, 0)\n\n if (c.startsWith(\"#\")) return RGBA.fromHex(c)\n\n if (chain.includes(c)) {\n throw new Error(`Circular color reference: ${[...chain, c].join(\" -> \")}`)\n }\n\n const next = defs[c] ?? theme.theme[c as ThemeColor]\n if (next === undefined) {\n throw new Error(`Color reference \"${c}\" not found in defs or theme`)\n }\n return resolveColor(next, [...chain, c])\n }\n if (typeof c === \"number\") {\n return ansiToRgba(c)\n }\n return resolveColor(c[mode], chain)\n }\n\n const resolved = Object.fromEntries(\n Object.entries(theme.theme)\n .filter(([key]) => key !== \"selectedListItemText\" && key !== \"backgroundMenu\" && key !== \"thinkingOpacity\")\n .map(([key, value]) => {\n return [key, resolveColor(value as ColorValue)]\n }),\n ) as Partial<Record<ThemeColor, RGBA>>\n\n // Handle selectedListItemText separately since it's optional\n const hasSelectedListItemText = theme.theme.selectedListItemText !== undefined\n if (hasSelectedListItemText) {\n resolved.selectedListItemText = resolveColor(theme.theme.selectedListItemText!)\n } else {\n // Backward compatibility: if selectedListItemText is not defined, use background color\n // This preserves the current behavior for all existing themes\n resolved.selectedListItemText = resolved.background\n }\n\n // Handle backgroundMenu - optional with fallback to backgroundElement\n if (theme.theme.backgroundMenu !== undefined) {\n resolved.backgroundMenu = resolveColor(theme.theme.backgroundMenu)\n } else {\n resolved.backgroundMenu = resolved.backgroundElement\n }\n\n // Handle thinkingOpacity - optional with default of 0.6\n const thinkingOpacity = theme.theme.thinkingOpacity ?? 0.6\n\n return {\n ...resolved,\n _hasSelectedListItemText: hasSelectedListItemText,\n thinkingOpacity,\n } as Theme\n}\n",
"import { RGBA, type TerminalColors } from \"@opentui/core\"\nimport { ansiToRgba, tint } from \"./color\"\n\nexport function terminalMode(colors: TerminalColors): \"dark\" | \"light\" | undefined {\n const bg = colors.defaultBackground\n if (!bg) return\n const { r, g, b } = RGBA.fromHex(bg)\n return 0.299 * r + 0.587 * g + 0.114 * b > 0.5 ? \"light\" : \"dark\"\n}\n\nexport function generateSystem(colors: TerminalColors, mode: \"dark\" | \"light\") {\n const bg = RGBA.fromHex(colors.defaultBackground ?? colors.palette[0]!)\n const fg = RGBA.fromHex(colors.defaultForeground ?? colors.palette[7]!)\n const transparent = RGBA.fromValues(bg.r, bg.g, bg.b, 0)\n const isDark = mode === \"dark\"\n\n const col = (index: number) => {\n const value = colors.palette[index]\n if (value) return RGBA.fromHex(value)\n return ansiToRgba(index)\n }\n\n const grays = generateGrayScale(bg, isDark)\n const textMuted = generateMutedTextColor(bg, isDark)\n const ansiColors = {\n red: col(1),\n green: col(2),\n yellow: col(3),\n blue: col(4),\n magenta: col(5),\n cyan: col(6),\n redBright: col(9),\n greenBright: col(10),\n }\n\n const diffAlpha = isDark ? 0.22 : 0.14\n const diffAddedBg = tint(bg, ansiColors.green, diffAlpha)\n const diffRemovedBg = tint(bg, ansiColors.red, diffAlpha)\n const diffContextBg = grays[2]\n const diffAddedLineNumberBg = tint(diffContextBg, ansiColors.green, diffAlpha)\n const diffRemovedLineNumberBg = tint(diffContextBg, ansiColors.red, diffAlpha)\n\n return {\n theme: {\n primary: ansiColors.cyan,\n secondary: ansiColors.magenta,\n accent: ansiColors.cyan,\n error: ansiColors.red,\n warning: ansiColors.yellow,\n success: ansiColors.green,\n info: ansiColors.cyan,\n text: fg,\n textMuted,\n selectedListItemText: bg,\n background: transparent,\n backgroundPanel: grays[2],\n backgroundElement: grays[3],\n backgroundMenu: grays[3],\n borderSubtle: grays[6],\n border: grays[7],\n borderActive: grays[8],\n diffAdded: ansiColors.green,\n diffRemoved: ansiColors.red,\n diffContext: grays[7],\n diffHunkHeader: grays[7],\n diffHighlightAdded: ansiColors.greenBright,\n diffHighlightRemoved: ansiColors.redBright,\n diffAddedBg,\n diffRemovedBg,\n diffContextBg,\n diffLineNumber: textMuted,\n diffAddedLineNumberBg,\n diffRemovedLineNumberBg,\n markdownText: fg,\n markdownHeading: fg,\n markdownLink: ansiColors.blue,\n markdownLinkText: ansiColors.cyan,\n markdownCode: ansiColors.green,\n markdownBlockQuote: ansiColors.yellow,\n markdownEmph: ansiColors.yellow,\n markdownStrong: fg,\n markdownHorizontalRule: grays[7],\n markdownListItem: ansiColors.blue,\n markdownListEnumeration: ansiColors.cyan,\n markdownImage: ansiColors.blue,\n markdownImageText: ansiColors.cyan,\n markdownCodeBlock: fg,\n syntaxComment: textMuted,\n syntaxKeyword: ansiColors.magenta,\n syntaxFunction: ansiColors.blue,\n syntaxVariable: fg,\n syntaxString: ansiColors.green,\n syntaxNumber: ansiColors.yellow,\n syntaxType: ansiColors.cyan,\n syntaxOperator: ansiColors.cyan,\n syntaxPunctuation: fg,\n },\n }\n}\n\nfunction generateGrayScale(bg: RGBA, isDark: boolean): Record<number, RGBA> {\n const grays: Record<number, RGBA> = {}\n const bgR = bg.r * 255\n const bgG = bg.g * 255\n const bgB = bg.b * 255\n const luminance = 0.299 * bgR + 0.587 * bgG + 0.114 * bgB\n\n for (let i = 1; i <= 12; i++) {\n const factor = i / 12\n\n if (isDark && luminance < 10) {\n const gray = Math.floor(factor * 0.4 * 255)\n grays[i] = RGBA.fromInts(gray, gray, gray)\n continue\n }\n\n if (!isDark && luminance > 245) {\n const gray = Math.floor(255 - factor * 0.4 * 255)\n grays[i] = RGBA.fromInts(gray, gray, gray)\n continue\n }\n\n const next = isDark ? luminance + (255 - luminance) * factor * 0.4 : luminance * (1 - factor * 0.4)\n const ratio = next / luminance\n grays[i] = RGBA.fromInts(\n Math.floor(Math.min(Math.max(bgR * ratio, 0), 255)),\n Math.floor(Math.min(Math.max(bgG * ratio, 0), 255)),\n Math.floor(Math.min(Math.max(bgB * ratio, 0), 255)),\n )\n }\n\n return grays\n}\n\nfunction generateMutedTextColor(bg: RGBA, isDark: boolean): RGBA {\n const luminance = 0.299 * bg.r * 255 + 0.587 * bg.g * 255 + 0.114 * bg.b * 255\n if (isDark) {\n const gray = luminance < 10 ? 180 : Math.min(Math.floor(160 + luminance * 0.3), 200)\n return RGBA.fromInts(gray, gray, gray)\n }\n\n const gray = luminance > 245 ? 75 : Math.max(Math.floor(100 - (255 - luminance) * 0.2), 60)\n return RGBA.fromInts(gray, gray, gray)\n}\n",
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { memo as _$memo } from \"@opentui/solid\";\nimport { createContext, Show, useContext } from \"solid-js\";\nexport function createSimpleContext(input) {\n const ctx = createContext();\n return {\n context: ctx,\n provider: props => {\n const init = input.init(props);\n return (// @ts-expect-error\n _$createComponent(Show, {\n get when() {\n return init.ready === undefined || init.ready === true;\n },\n get children() {\n return _$createComponent(ctx.Provider, {\n value: init,\n get children() {\n return props.children;\n }\n });\n }\n })\n );\n },\n use() {\n const value = useContext(ctx);\n if (!value) throw new Error(`${input.name} context must be used within a context provider`);\n return value;\n }\n };\n}",
"import { CliRenderEvents } from \"@opentui/core\";\nimport { useRenderer } from \"@opentui/solid\";\nimport { allThemes, generateSyntax, hasTheme, isTheme, resolveTheme, setCustomThemes, setSystemTheme, subscribeThemes } from \"../theme\";\nimport { generateSystem, terminalMode } from \"../theme/system\";\nimport { createEffect, createMemo, onCleanup, onMount } from \"solid-js\";\nimport { createStore, produce } from \"solid-js/store\";\nimport { createSimpleContext } from \"./helper\";\nimport { useConfig } from \"../config\";\nimport { Global } from \"@opencode-ai/core/global\";\nimport { Glob } from \"@opencode-ai/core/util/glob\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nconst themeSource = {\n async discover() {\n const directories = [Global.Path.config];\n for (let current = process.cwd();; current = path.dirname(current)) {\n directories.push(path.join(current, \".opencode\"));\n if (path.dirname(current) === current) break;\n }\n return discoverThemes(directories);\n },\n subscribeRefresh(refresh) {\n process.on(\"SIGUSR2\", refresh);\n return () => process.off(\"SIGUSR2\", refresh);\n }\n};\nexport async function discoverThemes(directories) {\n const result = {};\n for (const directory of directories) {\n const files = await Glob.scan(\"themes/*.json\", {\n cwd: directory,\n absolute: true,\n dot: true,\n symlink: true\n });\n for (const file of files) {\n result[path.basename(file, \".json\")] = JSON.parse(await readFile(file, \"utf8\"));\n }\n }\n return result;\n}\nexport { DEFAULT_THEMES, addTheme, allThemes, generateSyntax, hasTheme, selectedForeground, upsertTheme } from \"../theme\";\nconst THEME_REFRESH_DELAYS = [250, 1000];\nconst [store, setStore] = createStore({\n themes: allThemes(),\n mode: \"dark\",\n lock: undefined,\n active: \"opencode\",\n ready: false\n});\nsubscribeThemes(themes => setStore(\"themes\", themes));\nexport const {\n use: useTheme,\n provider: ThemeProvider\n} = createSimpleContext({\n name: \"Theme\",\n init: props => {\n const renderer = useRenderer();\n const configState = useConfig();\n const config = configState.data;\n const themes = props.source ?? themeSource;\n const pick = value => {\n if (value === \"dark\" || value === \"light\") return value;\n return;\n };\n setStore(produce(draft => {\n const lock = pick(config.theme?.mode);\n const mode = lock ?? pick(renderer.themeMode) ?? props.mode;\n draft.mode = mode;\n draft.lock = lock;\n const active = config.theme?.name ?? \"opencode\";\n draft.active = typeof active === \"string\" ? active : \"opencode\";\n draft.ready = false;\n }));\n createEffect(() => {\n const theme = config.theme?.name;\n if (theme) setStore(\"active\", theme);\n });\n createEffect(() => {\n const mode = config.theme?.mode;\n if (mode === \"dark\" || mode === \"light\") {\n pin(mode, false);\n return;\n }\n if (mode === \"system\" && store.lock !== undefined) free(false);\n });\n function syncCustomThemes() {\n return themes.discover().then(themes => {\n setCustomThemes(Object.entries(themes).reduce((result, [name, theme]) => {\n if (isTheme(theme)) result[name] = theme;\n return result;\n }, {}));\n }).catch(() => setStore(\"active\", \"opencode\"));\n }\n onMount(() => {\n void Promise.allSettled([resolveSystemTheme(store.mode), syncCustomThemes()]).finally(() => {\n setStore(\"ready\", true);\n });\n });\n let systemThemeSignature;\n let systemThemeMode;\n let hasResolvedSystemTheme = false;\n function resolveSystemTheme(mode = store.mode) {\n return renderer.getPalette({\n size: 16\n }).then(colors => {\n if (!colors.palette[0]) {\n if (hasResolvedSystemTheme) return;\n setSystemTheme(undefined);\n if (store.active === \"system\") setStore(\"active\", \"opencode\");\n return;\n }\n const next = store.lock ?? terminalMode(colors) ?? mode;\n if (store.mode !== next) setStore(\"mode\", next);\n const signature = JSON.stringify(colors);\n hasResolvedSystemTheme = true;\n if (store.themes.system && systemThemeSignature === signature && systemThemeMode === next) return;\n systemThemeSignature = signature;\n systemThemeMode = next;\n setSystemTheme(generateSystem(colors, next));\n }).catch(() => {\n if (hasResolvedSystemTheme) return;\n setSystemTheme(undefined);\n if (store.active === \"system\") setStore(\"active\", \"opencode\");\n });\n }\n let systemRefreshRunning = false;\n let systemRefreshQueued = false;\n let systemRefreshMode = store.mode;\n function refreshSystemTheme(mode = store.mode) {\n systemRefreshMode = mode;\n if (systemRefreshRunning) {\n systemRefreshQueued = true;\n return;\n }\n systemRefreshRunning = true;\n const retry = renderer.paletteDetectionStatus === \"detecting\";\n renderer.clearPaletteCache();\n void resolveSystemTheme(mode).finally(() => {\n systemRefreshRunning = false;\n if (!retry && !systemRefreshQueued) return;\n systemRefreshQueued = false;\n refreshSystemTheme(systemRefreshMode);\n });\n }\n function apply(mode) {\n if (store.mode === mode) return;\n setStore(\"mode\", mode);\n refreshSystemTheme(mode);\n }\n function pin(mode = store.mode, persist = true) {\n setStore(\"lock\", mode);\n apply(mode);\n if (!persist) return;\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n mode\n };\n }).catch(() => {});\n }\n function free(persist = true) {\n setStore(\"lock\", undefined);\n refreshSystemTheme(renderer.themeMode ?? store.mode);\n if (!persist) return;\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n mode: \"system\"\n };\n }).catch(() => {});\n }\n const handle = mode => {\n if (store.lock) return;\n apply(mode);\n };\n renderer.on(CliRenderEvents.THEME_MODE, handle);\n const handleThemeNotification = sequence => {\n if (sequence !== \"\\x1b[?997;1n\" && sequence !== \"\\x1b[?997;2n\") return false;\n queueMicrotask(() => refreshSystemTheme());\n return false;\n };\n renderer.prependInputHandler(handleThemeNotification);\n let themeRefreshTimeouts = [];\n const refresh = () => {\n for (const timeout of themeRefreshTimeouts) clearTimeout(timeout);\n themeRefreshTimeouts = THEME_REFRESH_DELAYS.map(delay => setTimeout(() => {\n refreshSystemTheme();\n if (delay === THEME_REFRESH_DELAYS[THEME_REFRESH_DELAYS.length - 1]) void syncCustomThemes();\n }, delay));\n };\n let unsubscribeRefresh;\n unsubscribeRefresh = themes.subscribeRefresh?.(refresh);\n onCleanup(() => {\n renderer.off(CliRenderEvents.THEME_MODE, handle);\n renderer.removeInputHandler(handleThemeNotification);\n unsubscribeRefresh?.();\n for (const timeout of themeRefreshTimeouts) clearTimeout(timeout);\n themeRefreshTimeouts.length = 0;\n });\n const values = createMemo(() => {\n const active = store.themes[store.active];\n if (active) return resolveTheme(active, store.mode);\n return resolveTheme(store.themes.opencode, store.mode);\n });\n createEffect(() => renderer.setBackgroundColor(values().background));\n const syntax = createSyntaxStyleMemo(() => generateSyntax(values()));\n return {\n theme: new Proxy(values(), {\n get(_target, prop) {\n // @ts-expect-error Properties are forwarded to the current reactive value.\n return values()[prop];\n }\n }),\n get selected() {\n return store.active;\n },\n all: allThemes,\n has: hasTheme,\n syntax,\n mode: () => store.mode,\n locked: () => store.lock !== undefined,\n lock: () => pin(store.mode),\n unlock: free,\n setMode: pin,\n set(theme) {\n if (!hasTheme(theme)) return false;\n setStore(\"active\", theme);\n void configState.update(draft => {\n draft.theme = {\n ...draft.theme,\n name: theme\n };\n }).catch(() => {});\n return true;\n },\n get ready() {\n return store.ready;\n }\n };\n }\n});\nexport function createSyntaxStyleMemo(factory) {\n const renderer = useRenderer();\n const retained = new Set();\n let current;\n const release = style => {\n retained.add(style);\n void renderer.idle().catch(() => {}).finally(() => {\n if (!retained.delete(style)) return;\n style.destroy();\n });\n };\n onCleanup(() => {\n if (current) release(current);\n });\n return createMemo(() => {\n const previous = current;\n current = factory();\n if (previous) release(previous);\n return current;\n });\n}"
],
"mappings": "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",
"debugId": "5E40B15AA018051A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/ui/timeline.tsx", "src/commands/handlers/console/login.ts"],
"sourcesContent": [
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { createTextNode as _$createTextNode } from \"@opentui/solid\";\nimport { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\n/** @jsxImportSource @opentui/solid */\nimport { createCliRenderer, RGBA } from \"@opentui/core\";\nimport { createScrollbackWriter, render, useKeyboard } from \"@opentui/solid\";\nimport { registerOpencodeSpinner } from \"@opencode-ai/tui/component/register-spinner\";\nimport { Show, createSignal } from \"solid-js\";\nregisterOpencodeSpinner();\nconst SPINNER_FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\nconst IDLE_TIMEOUT = 1_000;\nconst COLORS = {\n accent: RGBA.fromIndex(6),\n error: RGBA.fromIndex(1),\n foreground: RGBA.defaultForeground(),\n muted: RGBA.fromIndex(8),\n success: RGBA.fromIndex(2)\n};\nconst ROWS = {\n intro: {\n marker: \"┌\",\n color: COLORS.muted,\n connector: true\n },\n item: {\n marker: \"●\",\n color: COLORS.accent,\n connector: true\n },\n success: {\n marker: \"◇\",\n color: COLORS.success,\n connector: true\n },\n failure: {\n marker: \"■\",\n color: COLORS.error,\n connector: false\n },\n outro: {\n marker: \"└\",\n color: COLORS.muted,\n connector: false\n }\n};\nfunction row(kind, value) {\n const style = ROWS[kind];\n return createScrollbackWriter(() => (() => {\n var _el$ = _$createElement(\"box\"),\n _el$2 = _$createElement(\"box\"),\n _el$3 = _$createElement(\"text\"),\n _el$4 = _$createElement(\"text\");\n _$insertNode(_el$, _el$2);\n _$setProp(_el$, \"width\", \"100%\");\n _$setProp(_el$, \"minHeight\", 1);\n _$setProp(_el$, \"flexDirection\", \"column\");\n _$insertNode(_el$2, _el$3);\n _$insertNode(_el$2, _el$4);\n _$setProp(_el$2, \"width\", \"100%\");\n _$setProp(_el$2, \"minHeight\", 1);\n _$setProp(_el$2, \"flexDirection\", \"row\");\n _$setProp(_el$2, \"gap\", 1);\n _$setProp(_el$3, \"flexShrink\", 0);\n _$insert(_el$3, () => style.marker);\n _$setProp(_el$4, \"wrapMode\", \"word\");\n _$insert(_el$4, value);\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return style.connector;\n },\n get children() {\n var _el$5 = _$createElement(\"text\");\n _$insertNode(_el$5, _$createTextNode(`│`));\n _$effect(_$p => _$setProp(_el$5, \"fg\", COLORS.muted, _$p));\n return _el$5;\n }\n }), null);\n _$effect(_p$ => {\n var _v$ = style.color,\n _v$2 = COLORS.foreground;\n _v$ !== _p$.e && (_p$.e = _$setProp(_el$3, \"fg\", _v$, _p$.e));\n _v$2 !== _p$.t && (_p$.t = _$setProp(_el$4, \"fg\", _v$2, _p$.t));\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$;\n })(), {\n startOnNewLine: true,\n trailingNewline: !style.connector\n });\n}\nfunction TimelineFooter(props) {\n useKeyboard(event => {\n if (event.name !== \"escape\" && !(event.ctrl && event.name === \"c\")) return;\n event.preventDefault();\n props.cancel();\n });\n return (() => {\n var _el$7 = _$createElement(\"box\");\n _$setProp(_el$7, \"width\", \"100%\");\n _$setProp(_el$7, \"height\", 1);\n _$setProp(_el$7, \"flexDirection\", \"row\");\n _$setProp(_el$7, \"gap\", 1);\n _$insert(_el$7, _$createComponent(Show, {\n get when() {\n return props.pending();\n },\n children: text => [(() => {\n var _el$8 = _$createElement(\"spinner\");\n _$setProp(_el$8, \"frames\", SPINNER_FRAMES);\n _$setProp(_el$8, \"interval\", 80);\n _$effect(_$p => _$setProp(_el$8, \"color\", COLORS.accent, _$p));\n return _el$8;\n })(), (() => {\n var _el$9 = _$createElement(\"text\");\n _$setProp(_el$9, \"wrapMode\", \"none\");\n _$setProp(_el$9, \"truncate\", true);\n _$insert(_el$9, text);\n _$effect(_$p => _$setProp(_el$9, \"fg\", COLORS.foreground, _$p));\n return _el$9;\n })()]\n }));\n return _el$7;\n })();\n}\nfunction bounded(task) {\n return new Promise(resolve => {\n const timer = setTimeout(resolve, IDLE_TIMEOUT);\n timer.unref();\n const finish = () => {\n clearTimeout(timer);\n resolve();\n };\n void task.then(finish, finish);\n });\n}\nasync function shutdown(renderer) {\n await bounded(renderer.idle());\n try {\n renderer.externalOutputMode = \"passthrough\";\n } finally {\n try {\n renderer.screenMode = \"main-screen\";\n } finally {\n if (!renderer.isDestroyed) renderer.destroy();\n }\n }\n}\nexport async function createTimelineHost() {\n const stdout = process.stdout;\n const controller = new AbortController();\n const signals = [\"SIGINT\", \"SIGHUP\", \"SIGQUIT\"];\n const cancel = () => {\n if (!controller.signal.aborted) controller.abort();\n };\n signals.forEach(signal => process.on(signal, cancel));\n if (!stdout.isTTY || !process.stdin.isTTY) {\n let closed = false;\n let writing = false;\n let active;\n let closeTask;\n const write = async (kind, text) => {\n if (closed) throw new Error(\"timeline closed\");\n if (writing) throw new Error(\"timeline write already in progress\");\n writing = true;\n try {\n const style = kind === \"pending\" ? undefined : ROWS[kind];\n const marker = kind === \"pending\" ? \".\" : ROWS[kind].marker;\n const connector = style?.connector ? \"│\\n\" : \"\";\n active = new Promise((resolve, reject) => {\n stdout.write(`${marker} ${text}\\n${connector}`, error => error ? reject(error) : resolve());\n });\n await active;\n } finally {\n writing = false;\n active = undefined;\n }\n };\n const close = () => {\n if (closeTask) return closeTask;\n closed = true;\n closeTask = (async () => {\n await active?.catch(() => {});\n signals.forEach(signal => process.off(signal, cancel));\n })();\n return closeTask;\n };\n return {\n signal: controller.signal,\n intro: text => write(\"intro\", text),\n item: text => write(\"item\", text),\n pending: text => write(\"pending\", text),\n success: text => write(\"success\", text),\n failure: text => write(\"failure\", text),\n outro: text => write(\"outro\", text),\n close\n };\n }\n let renderer;\n try {\n // Start on a fresh row so delayed SSH cursor reports cannot make\n // split-footer overwrite the shell command.\n process.stdout.write(\"\\n\");\n renderer = await createCliRenderer({\n stdin: process.stdin,\n useMouse: false,\n autoFocus: false,\n openConsoleOnError: false,\n exitOnCtrlC: false,\n exitSignals: [],\n screenMode: \"split-footer\",\n footerHeight: 1,\n externalOutputMode: \"capture-stdout\",\n consoleMode: \"disabled\",\n clearOnShutdown: false\n });\n const activeRenderer = renderer;\n const [pending, setPending] = createSignal();\n const renderTask = render(() => _$createComponent(TimelineFooter, {\n pending: pending,\n cancel: cancel\n }), activeRenderer);\n void renderTask.catch(cancel);\n await bounded(activeRenderer.idle());\n let closed = false;\n let writing = false;\n let active;\n let closeTask;\n const write = (kind, text) => {\n if (closed) return Promise.reject(new Error(\"timeline closed\"));\n if (writing) return Promise.reject(new Error(\"timeline write already in progress\"));\n writing = true;\n active = (async () => {\n if (kind === \"pending\") {\n setPending(text);\n activeRenderer.requestRender();\n } else {\n if (kind === \"success\" || kind === \"failure\" || kind === \"outro\") setPending(undefined);\n activeRenderer.writeToScrollback(row(kind, text));\n activeRenderer.requestRender();\n }\n await bounded(activeRenderer.idle());\n })().finally(() => {\n writing = false;\n active = undefined;\n });\n return active;\n };\n const close = () => {\n if (closeTask) return closeTask;\n closed = true;\n closeTask = (async () => {\n await active?.catch(() => {});\n try {\n await shutdown(activeRenderer);\n await bounded(renderTask);\n } finally {\n signals.forEach(signal => process.off(signal, cancel));\n }\n })();\n return closeTask;\n };\n return {\n signal: controller.signal,\n intro: text => write(\"intro\", text),\n item: text => write(\"item\", text),\n pending: text => write(\"pending\", text),\n success: text => write(\"success\", text),\n failure: text => write(\"failure\", text),\n outro: text => write(\"outro\", text),\n close\n };\n } catch (error) {\n try {\n if (renderer) await shutdown(renderer);\n } finally {\n signals.forEach(signal => process.off(signal, cancel));\n }\n throw error;\n }\n}",
"import { Cause, Effect, Exit, Option } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { AppProcess } from \"@opencode-ai/core/process\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\nimport { createTimelineHost, type TimelineHost } from \"../../../ui/timeline\"\n\nconst integrationID = \"opencode\"\nconst location = { directory: process.cwd() }\n\nexport default Runtime.handler(\n Commands.commands.console.commands.login,\n Effect.fn(\"cli.console.login\")(function* (input) {\n const timeline = yield* Effect.acquireRelease(\n Effect.promise(() => createTimelineHost()),\n (value) => request(() => value.close()).pipe(Effect.ignore),\n )\n const exit = yield* login(timeline, Option.getOrUndefined(input.url)).pipe(\n Effect.raceFirst(AppProcess.waitForAbort(timeline.signal)),\n Effect.exit,\n )\n if (Exit.isSuccess(exit)) return\n\n const cancelled = timeline.signal.aborted\n yield* request(() => timeline.failure(cancelled ? \"Authorization cancelled\" : errorMessage(exit.cause))).pipe(\n Effect.ignore,\n )\n process.exitCode = cancelled ? 130 : 1\n }),\n)\n\nconst login = Effect.fn(\"cli.console.login.run\")(function* (timeline: TimelineHost, server?: string) {\n yield* request(() => timeline.intro(\"Log in\"))\n yield* request(() => timeline.pending(\"Connecting to OpenCode...\"))\n\n const endpoint = yield* Service.start(yield* ServiceConfig.options())\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const found = yield* request((signal) => client.integration.get({ integrationID, location }, { signal }))\n const integration = yield* required(found.data, \"OpenCode Console integration is unavailable\")\n const method = yield* required(\n integration.methods.find((candidate) => candidate.type === \"oauth\"),\n \"OpenCode Console login is unavailable\",\n )\n\n yield* request(() => timeline.pending(\"Starting authorization...\"))\n const started = yield* request((signal) =>\n client.integration.connect.oauth(\n {\n integrationID,\n methodID: method.id,\n inputs: server ? { server } : {},\n location,\n },\n { signal },\n ),\n )\n const attempt = started.data\n yield* Effect.addFinalizer(() =>\n request(() =>\n client.integration.attempt.cancel(\n { attemptID: attempt.attemptID, location },\n { signal: AbortSignal.timeout(5_000) },\n ),\n ).pipe(Effect.ignore),\n )\n if (attempt.mode !== \"auto\") yield* Effect.fail(new Error(\"OpenCode Console requires a device login\"))\n\n yield* request(() => timeline.item(`Go to: ${attempt.url}`))\n yield* request(() => timeline.item(attempt.instructions))\n yield* request(async () => {\n const { default: open } = await import(\"open\")\n await open(attempt.url)\n }).pipe(Effect.ignore)\n yield* request(() => timeline.pending(\"Waiting for authorization...\"))\n\n const status = yield* waitForConsoleLogin(client, attempt.attemptID)\n if (status.status === \"failed\") yield* Effect.fail(new Error(status.message))\n if (status.status === \"expired\") yield* Effect.fail(new Error(\"Device code expired\"))\n\n yield* request(() => timeline.success(\"Connected to OpenCode Console\"))\n yield* request(() => timeline.outro(\"Done\"))\n})\n\nconst waitForConsoleLogin = Effect.fn(\"cli.console.login.wait\")(function* (\n client: OpenCodeClient,\n attemptID: string,\n) {\n while (true) {\n const response = yield* request((signal) =>\n client.integration.attempt.status({ attemptID, location }, { signal }),\n )\n if (response.data.status !== \"pending\") return response.data\n yield* Effect.sleep(500)\n }\n})\n\nfunction request<A>(task: (signal: AbortSignal) => Promise<A>) {\n return Effect.tryPromise({\n try: task,\n catch: (cause) => cause,\n })\n}\n\nfunction required<A>(value: A | null | undefined, message: string) {\n return value === null || value === undefined ? Effect.fail(new Error(message)) : Effect.succeed(value)\n}\n\nfunction errorMessage(cause: Cause.Cause<unknown>) {\n const error = Cause.squash(cause)\n if (error instanceof Error) return error.message\n if (typeof error === \"object\" && error !== null && \"message\" in error && typeof error.message === \"string\") {\n return error.message\n }\n return String(error)\n}\n"
],
"mappings": "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",
"debugId": "CB5B6426C12C703464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/env.ts"],
"sourcesContent": [
"import { Config } from \"effect\"\n\n// Every environment variable the CLI reads, in one place. Consumers yield\n// these instead of touching process.env so the full surface stays visible,\n// typed, and redacted where secret.\n\n// The opencode server password: sent by clients connecting to an explicit\n// --server, and adopted by a manually run or standalone server. The legacy\n// name is still honored.\nexport const password = Config.redacted(\"OPENCODE_PASSWORD\").pipe(\n Config.orElse(() => Config.redacted(\"OPENCODE_SERVER_PASSWORD\")),\n Config.withDefault(undefined),\n)\n\nexport * as Env from \"./env\"\n"
],
"mappings": ";4IASO,SAAM,EAAW,EAAO,SAAS,mBAAmB,EAAE,KAC3D,EAAO,OAAO,IAAM,EAAO,SAAS,0BAA0B,CAAC,EAC/D,EAAO,YAAY,MAAS,CAC9B",
"debugId": "E86F9912E386359464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n api_1.diag.debug('could not read machine-id: unsupported platform');\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-unsupported.js.map"
],
"mappings": ";iHAKA,YAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,MACN,eAAe,CAAY,EAAG,CAC1B,EAAM,KAAK,MAAM,iDAAiD,EAClE,OAEI,eAAe",
"debugId": "6FD80EEEDC0C5AB664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "88140C4C6297AB4864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/util/process-lock.ts", "src/server-process.ts", "src/commands/handlers/serve.ts"],
"sourcesContent": [
"import { dlopen, read, type Pointer } from \"bun:ffi\"\nimport { closeSync, existsSync, mkdirSync, openSync } from \"node:fs\"\nimport { connect, createServer, type Server, type Socket } from \"node:net\"\nimport path from \"node:path\"\nimport { Effect, Schema } from \"effect\"\nimport { Hash } from \"./hash\"\n\nexport namespace ProcessLock {\n export class HeldError extends Schema.TaggedErrorClass<HeldError>()(\"ProcessLockHeldError\", {\n file: Schema.String,\n }) {\n override get message() {\n return `Process lock is already held: ${this.file}`\n }\n }\n\n export class SystemError extends Schema.TaggedErrorClass<SystemError>()(\"ProcessLockSystemError\", {\n file: Schema.String,\n operation: Schema.Literals([\"open\", \"acquire\"]),\n code: Schema.String,\n }) {\n override get message() {\n return `Process lock ${this.operation} failed for ${this.file}: ${this.code}`\n }\n }\n\n export type LockError = HeldError | SystemError\n\n const acquirePosix = Effect.fnUntraced(function* (file: string) {\n const fd = yield* Effect.try({\n try: () => {\n mkdirSync(path.dirname(file), { recursive: true })\n return openSync(file, \"a+\", 0o600)\n },\n catch: (cause) =>\n new SystemError({\n file,\n operation: \"open\",\n code: cause instanceof Error ? cause.message : String(cause),\n }),\n })\n const result = yield* Effect.try({\n try: () => lock(fd),\n catch: (cause) =>\n new SystemError({\n file,\n operation: \"acquire\",\n code: cause instanceof Error ? cause.message : String(cause),\n }),\n }).pipe(\n Effect.tapError(() =>\n Effect.sync(() => {\n closeSync(fd)\n }),\n ),\n )\n if (result.acquired) {\n return fd\n }\n closeSync(fd)\n return yield* result.held\n ? new HeldError({ file })\n : new SystemError({ file, operation: \"acquire\", code: String(result.code) })\n })\n\n export const acquire = Effect.fn(\"ProcessLock.acquire\")(function* (file: string) {\n if (process.platform === \"win32\") {\n yield* Effect.acquireRelease(acquireWindows(file), closeWindows)\n return\n }\n yield* Effect.acquireRelease(acquirePosix(file), (fd) =>\n Effect.sync(() => {\n closeSync(fd)\n }),\n )\n })\n}\n\ntype Result =\n | { readonly acquired: true }\n | { readonly acquired: false; readonly held: true }\n | { readonly acquired: false; readonly held: false; readonly code: number }\n\nconst LOCK_EX = 2\nconst LOCK_NB = 4\nconst DARWIN_EWOULDBLOCK = 35\nconst LINUX_EWOULDBLOCK = 11\n\nfunction lock(fd: number): Result {\n if (process.platform === \"darwin\") return lockDarwin(fd)\n if (process.platform === \"linux\") return lockLinux(fd)\n throw new Error(`Unsupported process lock platform: ${process.platform}`)\n}\n\nfunction lockDarwin(fd: number): Result {\n const library = dlopen(\"/usr/lib/libSystem.B.dylib\", {\n flock: { args: [\"i32\", \"i32\"], returns: \"i32\" },\n __error: { args: [], returns: \"ptr\" },\n })\n try {\n const result = library.symbols.flock(fd, LOCK_EX | LOCK_NB)\n const code = result === 0 ? 0 : errorCode(library.symbols.__error())\n if (result === 0) return { acquired: true }\n if (code === DARWIN_EWOULDBLOCK) return { acquired: false, held: true }\n return { acquired: false, held: false, code }\n } finally {\n library.close()\n }\n}\n\nfunction lockLinux(fd: number): Result {\n const musl = `/lib/libc.musl-${process.arch === \"arm64\" ? \"aarch64\" : \"x86_64\"}.so.1`\n const library = dlopen(existsSync(musl) ? musl : \"libc.so.6\", {\n flock: { args: [\"i32\", \"i32\"], returns: \"i32\" },\n __errno_location: { args: [], returns: \"ptr\" },\n })\n try {\n const result = library.symbols.flock(fd, LOCK_EX | LOCK_NB)\n const code = result === 0 ? 0 : errorCode(library.symbols.__errno_location())\n if (result === 0) return { acquired: true }\n if (code === LINUX_EWOULDBLOCK) return { acquired: false, held: true }\n return { acquired: false, held: false, code }\n } finally {\n library.close()\n }\n}\n\nfunction errorCode(pointer: Pointer | null) {\n if (pointer === null) throw new Error(\"Failed to read process lock error code\")\n return read.i32(pointer, 0)\n}\n\nfunction acquireWindows(file: string) {\n return Effect.callback<Server, ProcessLock.LockError>((resume) => {\n const server = createServer()\n let probe: Socket | undefined\n const pipe = `\\\\\\\\.\\\\pipe\\\\opencode-process-lock-${Hash.sha256(path.resolve(file).toLowerCase())}`\n const onError = (cause: NodeJS.ErrnoException) => {\n server.off(\"listening\", onListening)\n probe = connect(pipe)\n const onProbeError = () => {\n probe?.off(\"connect\", onConnect)\n resume(\n Effect.fail(\n new ProcessLock.SystemError({\n file,\n operation: \"acquire\",\n code: cause.code ?? cause.message,\n }),\n ),\n )\n }\n const onConnect = () => {\n probe?.off(\"error\", onProbeError)\n probe?.destroy()\n resume(Effect.fail(new ProcessLock.HeldError({ file })))\n }\n probe.once(\"connect\", onConnect)\n probe.once(\"error\", onProbeError)\n }\n const onListening = () => {\n server.off(\"error\", onError)\n resume(Effect.succeed(server))\n }\n server.once(\"error\", onError)\n server.once(\"listening\", onListening)\n server.on(\"connection\", (socket) => socket.destroy())\n server.listen(pipe)\n return Effect.sync(() => {\n probe?.destroy()\n server.close()\n })\n })\n}\n\nfunction closeWindows(server: Server) {\n return Effect.callback<void>((resume) => {\n if (!server.listening) return resume(Effect.void)\n server.close((error) => resume(error ? Effect.die(error) : Effect.void))\n })\n}\n",
"export * as ServerProcess from \"./server-process\"\n\nimport { NodeServices } from \"@effect/platform-node\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { AppNodeBuilder } from \"@opencode-ai/core/effect/app-node-builder\"\nimport { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { AppProcess } from \"@opencode-ai/core/process\"\nimport { ProcessLock } from \"@opencode-ai/core/util/process-lock\"\nimport { randomBytes, randomUUID } from \"node:crypto\"\nimport path from \"node:path\"\nimport { Effect, FileSystem, Logger, Option, Redacted, Schedule, Schema } from \"effect\"\nimport { HttpServer } from \"effect/unstable/http\"\nimport { Env } from \"./env\"\nimport { ServiceConfig } from \"./services/service-config\"\nimport { Updater } from \"./services/updater\"\n\nexport type Mode = \"default\" | \"service\" | \"stdio\"\n\nexport type Options = {\n readonly mode: Mode\n readonly hostname?: string\n readonly port?: number\n}\n\nexport const run = Effect.fn(\"cli.server-process.run\")((options: Options) =>\n processEffect(options).pipe(\n Effect.provide(Updater.layer),\n Effect.provide(AppNodeBuilder.build(LayerNode.group([Global.node, AppProcess.node]))),\n Effect.provide(NodeServices.layer),\n ),\n)\n\nconst processEffect = Effect.fnUntraced(function* (options: Options) {\n if (options.mode === \"service\") yield* Effect.sync(() => process.chdir(Global.Path.home))\n return yield* Effect.scoped(\n Effect.gen(function* () {\n const serviceOptions = options.mode === \"service\" ? yield* ServiceConfig.options() : undefined\n if (serviceOptions !== undefined) {\n const acquired = yield* ProcessLock.acquire(serviceOptions.file + \".lock\").pipe(\n Effect.as(true),\n Effect.catchTag(\"ProcessLockHeldError\", () => Effect.succeed(false)),\n )\n if (!acquired) return yield* Effect.void\n if ((yield* Service.discover(serviceOptions)) !== undefined) return yield* Effect.void\n }\n const { start } = yield* Effect.promise(() => import(\"@opencode-ai/server/process\"))\n const environmentPassword = yield* Env.password\n // Keep the lease credential out of the environment inherited by tools.\n if (options.mode === \"stdio\") {\n delete process.env.OPENCODE_PASSWORD\n delete process.env.OPENCODE_SERVER_PASSWORD\n }\n const config = options.mode === \"service\" ? yield* ServiceConfig.read() : {}\n const password =\n options.mode === \"service\"\n ? yield* ServiceConfig.password()\n : environmentPassword\n ? Redacted.value(environmentPassword)\n : randomBytes(32).toString(\"base64url\")\n if (!password) return yield* Effect.fail(new Error(\"Missing server password\"))\n const instanceID = randomUUID()\n const server = yield* start({\n hostname: options.hostname ?? config.hostname ?? \"127.0.0.1\",\n port: Option.fromNullishOr(options.port ?? config.port),\n password,\n instanceID,\n service:\n serviceOptions === undefined\n ? undefined\n : { onListen: (address) => register(address, password, instanceID, serviceOptions.file) },\n }).pipe(Effect.provide(Logger.layer([], { mergeWithExisting: false })))\n const url = HttpServer.formatAddress(server.address)\n console.log(options.mode === \"stdio\" ? JSON.stringify({ url }) : `server listening on ${url}`)\n if (options.mode === \"default\" && !environmentPassword) console.log(`server password ${password}`)\n const updater = yield* Updater.Service\n yield* updater.check().pipe(Effect.schedule(Schedule.spaced(\"10 minutes\")), Effect.forkScoped)\n return yield* options.mode === \"service\"\n ? server.shutdown\n : options.mode === \"stdio\"\n ? waitForStdinClose()\n : Effect.never\n }).pipe(Effect.annotateLogs({ role: \"server\" })),\n )\n})\n\nconst infoJson = Schema.fromJsonString(Service.Info)\nconst encodeInfo = Schema.encodeEffect(infoJson)\nconst decodeInfo = Schema.decodeUnknownEffect(infoJson)\n\nconst register = Effect.fnUntraced(function* (\n address: HttpServer.Address,\n password: string,\n id: string,\n file: string,\n) {\n const fs = yield* FileSystem.FileSystem\n const temp = file + \".\" + id + \".tmp\"\n yield* fs.makeDirectory(path.dirname(file), { recursive: true })\n const info = {\n id,\n version: InstallationVersion,\n url: HttpServer.formatAddress(address),\n pid: process.pid,\n password,\n }\n const encoded = yield* encodeInfo(info)\n const publish = fs.writeFileString(temp, encoded, { mode: 0o600 }).pipe(Effect.andThen(fs.rename(temp, file)))\n yield* publish\n const current = fs.readFileString(file).pipe(\n Effect.flatMap(decodeInfo),\n Effect.orElseSucceed(() => undefined),\n )\n const assertRegistration = Effect.gen(function* () {\n const found = yield* current\n if (\n found !== undefined &&\n found.id === info.id &&\n found.version === info.version &&\n found.url === info.url &&\n found.pid === info.pid &&\n found.password === info.password\n )\n return\n yield* publish\n })\n yield* Effect.addFinalizer(() =>\n current.pipe(\n Effect.flatMap((current) => (current?.id === id ? fs.remove(file) : Effect.void)),\n Effect.ignore,\n ),\n )\n yield* assertRegistration.pipe(\n Effect.catchCause((cause) => Effect.logWarning(\"failed to reassert service registration\", { cause })),\n Effect.repeat(Schedule.spaced(\"5 seconds\")),\n Effect.forkScoped,\n )\n})\n\nfunction waitForStdinClose() {\n return Effect.callback<void>((resume) => {\n const close = () => resume(Effect.void)\n process.stdin.once(\"end\", close)\n process.stdin.once(\"close\", close)\n process.stdin.resume()\n if (process.stdin.readableEnded || process.stdin.destroyed) close()\n return Effect.sync(() => {\n process.stdin.off(\"end\", close)\n process.stdin.off(\"close\", close)\n process.stdin.pause()\n })\n })\n}\n",
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerProcess } from \"../../server-process\"\n\nexport default Runtime.handler(\n Commands.commands.serve,\n Effect.fn(\"cli.serve\")(function* (input) {\n if (input.service && input.stdio) return yield* Effect.fail(new Error(\"--service and --stdio cannot be combined\"))\n return yield* ServerProcess.run({\n mode: input.service ? \"service\" : input.stdio ? \"stdio\" : \"default\",\n hostname: Option.getOrUndefined(input.hostname),\n port: Option.getOrUndefined(input.port),\n })\n }),\n)\n"
],
"mappings": "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",
"debugId": "42AD0BBA7EB8111F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst process = require(\"process\");\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n const args = 'QUERY HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Cryptography /v MachineGuid';\n let command = '%windir%\\\\System32\\\\REG.exe';\n if (process.arch === 'ia32' && 'PROCESSOR_ARCHITEW6432' in process.env) {\n command = '%windir%\\\\sysnative\\\\cmd.exe /c ' + command;\n }\n try {\n const result = await (0, execAsync_1.execAsync)(`${command} ${args}`);\n const parts = result.stdout.split('REG_SZ');\n if (parts.length === 2) {\n return parts[1].trim();\n }\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-win.js.map"
],
"mappings": ";wKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,eACA,MACA,MACN,eAAe,CAAY,EAAG,CAE1B,IAAI,EAAU,8BACd,GAAI,EAAQ,OAAS,QAAU,2BAA4B,EAAQ,IAC/D,EAAU,mCAAqC,EAEnD,GAAI,CAEA,IAAM,GADS,MAAO,EAAG,EAAY,WAAW,GAAG,8EAAiB,GAC/C,OAAO,MAAM,QAAQ,EAC1C,GAAI,EAAM,SAAW,EACjB,OAAO,EAAM,GAAG,KAAK,EAG7B,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "774F49D624F6ABFC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/ai-gateway-provider@3.1.2+a6631614dda8d488/node_modules/ai-gateway-provider/dist/index.mjs"],
"sourcesContent": [
"var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/auth.ts\nvar CF_TEMP_TOKEN = \"CF_TEMP_TOKEN\";\n\n// src/providers.ts\nvar providers = [\n {\n name: \"openai\",\n regex: /^https:\\/\\/api\\.openai\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.openai\\.com\\//, \"\")\n },\n {\n name: \"deepseek\",\n regex: /^https:\\/\\/api\\.deepseek\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.deepseek\\.com\\//, \"\")\n },\n {\n name: \"anthropic\",\n regex: /^https:\\/\\/api\\.anthropic\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.anthropic\\.com\\//, \"\"),\n headerKey: \"x-api-key\"\n },\n {\n name: \"google-ai-studio\",\n regex: /^https:\\/\\/generativelanguage\\.googleapis\\.com\\//,\n headerKey: \"x-goog-api-key\",\n transformEndpoint: (url) => url.replace(/^https:\\/\\/generativelanguage\\.googleapis\\.com\\//, \"\")\n },\n {\n name: \"google-vertex-ai\",\n regex: /aiplatform\\.googleapis\\.com/,\n transformEndpoint: (url) => url.replace(/https:\\/\\/(.*)[-]?aiplatform\\.googleapis\\.com\\//, \"\")\n },\n {\n name: \"grok\",\n regex: /^https:\\/\\/api\\.x\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.x\\.ai\\//, \"\")\n },\n {\n name: \"mistral\",\n regex: /^https:\\/\\/api\\.mistral\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.mistral\\.ai\\//, \"\")\n },\n {\n name: \"perplexity-ai\",\n regex: /^https:\\/\\/api\\.perplexity\\.ai\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.perplexity\\.ai\\//, \"\")\n },\n {\n name: \"replicate\",\n regex: /^https:\\/\\/api\\.replicate\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.replicate\\.com\\//, \"\")\n },\n {\n name: \"groq\",\n regex: /^https:\\/\\/api\\.groq\\.com\\/openai\\/v1\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/api\\.groq\\.com\\/openai\\/v1\\//, \"\")\n },\n {\n name: \"google-vertex-ai\",\n regex: /^https:\\/\\/(?:[a-z0-9]+-)*aiplatform\\.googleapis\\.com\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/(?:[a-z0-9]+-)*aiplatform\\.googleapis\\.com\\//, \"\"),\n headerKey: \"authorization\"\n },\n {\n name: \"azure-openai\",\n regex: /^https:\\/\\/(?<resource>[^.]+)\\.openai\\.azure\\.com\\/openai\\/deployments\\/(?<deployment>[^/]+)\\/(?<rest>.*)$/,\n transformEndpoint: (url) => {\n const match = url.match(\n /^https:\\/\\/(?<resource>[^.]+)\\.openai\\.azure\\.com\\/openai\\/deployments\\/(?<deployment>[^/]+)\\/(?<rest>.*)$/\n );\n if (!match || !match.groups) return url;\n const { resource, deployment, rest } = match.groups;\n if (!resource || !deployment || !rest) {\n throw new Error(\"Failed to parse Azure OpenAI endpoint URL.\");\n }\n return `${resource}/${deployment}/${rest}`;\n },\n headerKey: \"api-key\"\n },\n {\n name: \"openrouter\",\n regex: /^https:\\/\\/openrouter\\.ai\\/api\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/openrouter\\.ai\\/api\\//, \"\")\n },\n {\n name: \"compat\",\n regex: /^https:\\/\\/gateway\\.ai\\.cloudflare\\.com\\/v1\\/compat\\//,\n transformEndpoint: (url) => url.replace(/^https:\\/\\/gateway\\.ai\\.cloudflare\\.com\\/v1\\/compat\\//, \"\")\n }\n];\n\n// src/index.ts\nvar AiGatewayInternalFetchError = class extends Error {\n};\nvar AiGatewayDoesNotExist = class extends Error {\n};\nvar AiGatewayUnauthorizedError = class extends Error {\n};\nasync function streamToObject(stream) {\n const response = new Response(stream);\n return await response.json();\n}\nvar AiGatewayChatLanguageModel = class {\n constructor(models, config) {\n __publicField(this, \"specificationVersion\", \"v3\");\n __publicField(this, \"defaultObjectGenerationMode\", \"json\");\n __publicField(this, \"supportedUrls\", {\n // No URLS are supported for this language model\n });\n __publicField(this, \"models\");\n __publicField(this, \"config\");\n this.models = models;\n this.config = config;\n }\n get modelId() {\n if (!this.models[0]) {\n throw new Error(\"models cannot be empty array\");\n }\n return this.models[0].modelId;\n }\n get provider() {\n if (!this.models[0]) {\n throw new Error(\"models cannot be empty array\");\n }\n return this.models[0].provider;\n }\n async processModelRequest(options, modelMethod) {\n const requests = [];\n for (const model of this.models) {\n if (!model.config || !Object.keys(model.config).includes(\"fetch\")) {\n throw new Error(\n `Sorry, but provider \"${model.provider}\" is currently not supported, please open a issue in the github repo!`\n );\n }\n model.config.fetch = (url, request) => {\n requests.push({\n modelProvider: model.provider,\n request,\n url\n });\n throw new AiGatewayInternalFetchError(\"Stopping provider execution...\");\n };\n try {\n await model[modelMethod](options);\n } catch (e) {\n if (!(e instanceof AiGatewayInternalFetchError)) {\n throw e;\n }\n }\n }\n const body = await Promise.all(\n requests.map(async (req) => {\n let providerConfig = null;\n for (const provider of providers) {\n if (provider.regex.test(req.url)) {\n providerConfig = provider;\n }\n }\n if (!providerConfig) {\n throw new Error(\n `Sorry, but provider \"${req.modelProvider}\" is currently not supported, please open a issue in the github repo!`\n );\n }\n if (!req.request.body) {\n throw new Error(\"Ai Gateway provider received an unexpected empty body\");\n }\n const authHeader = providerConfig.headerKey ?? \"authorization\";\n const authValue = \"get\" in req.request.headers ? req.request.headers.get(authHeader) : req.request.headers[authHeader];\n if (authValue?.indexOf(CF_TEMP_TOKEN) !== -1) {\n if (\"delete\" in req.request.headers) {\n req.request.headers.delete(authHeader);\n } else {\n delete req.request.headers[authHeader];\n }\n }\n return {\n endpoint: providerConfig.transformEndpoint(req.url),\n headers: req.request.headers,\n provider: providerConfig.name,\n query: await streamToObject(req.request.body)\n };\n })\n );\n const headers = parseAiGatewayOptions(this.config.options ?? {});\n let resp;\n if (\"binding\" in this.config) {\n const updatedBody = body.map((obj) => ({\n ...obj,\n headers: {\n ...obj.headers ?? {},\n ...Object.fromEntries(headers.entries())\n }\n }));\n resp = await this.config.binding.run(updatedBody, {\n signal: options.abortSignal\n });\n } else {\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"cf-aig-authorization\", `Bearer ${this.config.apiKey}`);\n resp = await fetch(\n `https://gateway.ai.cloudflare.com/v1/${this.config.accountId}/${this.config.gateway}`,\n {\n body: JSON.stringify(body),\n headers,\n method: \"POST\",\n signal: options.abortSignal\n }\n );\n }\n if (resp.status === 400) {\n const cloneResp = resp.clone();\n const result = await cloneResp.json();\n if (result.success === false && result.error && result.error.length > 0 && result.error[0]?.code === 2001) {\n throw new AiGatewayDoesNotExist(\"This AI gateway does not exist\");\n }\n } else if (resp.status === 401) {\n const cloneResp = resp.clone();\n const result = await cloneResp.json();\n if (result.success === false && result.error && result.error.length > 0 && result.error[0]?.code === 2009) {\n throw new AiGatewayUnauthorizedError(\n \"Your AI Gateway has authentication active, but you didn't provide a valid apiKey\"\n );\n }\n }\n const step = Number.parseInt(resp.headers.get(\"cf-aig-step\") ?? \"0\", 10);\n if (!this.models[step]) {\n throw new Error(\"Unexpected AI Gateway Error\");\n }\n this.models[step].config = {\n ...this.models[step].config,\n fetch: (_url, _req) => resp\n };\n return this.models[step][modelMethod](options);\n }\n async doStream(options) {\n return this.processModelRequest(options, \"doStream\");\n }\n async doGenerate(options) {\n return this.processModelRequest(options, \"doGenerate\");\n }\n};\nfunction createAiGateway(options) {\n const createChatModel = (models) => {\n return new AiGatewayChatLanguageModel(Array.isArray(models) ? models : [models], options);\n };\n const provider = (models) => createChatModel(models);\n provider.chat = createChatModel;\n return provider;\n}\nfunction parseAiGatewayOptions(options) {\n const headers = new Headers();\n if (options.skipCache === true) {\n headers.set(\"cf-skip-cache\", \"true\");\n }\n if (options.cacheTtl) {\n headers.set(\"cf-cache-ttl\", options.cacheTtl.toString());\n }\n if (options.metadata) {\n headers.set(\"cf-aig-metadata\", JSON.stringify(options.metadata));\n }\n if (options.cacheKey) {\n headers.set(\"cf-aig-cache-key\", options.cacheKey);\n }\n if (options.collectLog !== void 0) {\n headers.set(\"cf-aig-collect-log\", options.collectLog === true ? \"true\" : \"false\");\n }\n if (options.eventId !== void 0) {\n headers.set(\"cf-aig-event-id\", options.eventId);\n }\n if (options.requestTimeoutMs !== void 0) {\n headers.set(\"cf-aig-request-timeout\", options.requestTimeoutMs.toString());\n }\n if (options.retries !== void 0) {\n if (options.retries.maxAttempts !== void 0) {\n headers.set(\"cf-aig-max-attempts\", options.retries.maxAttempts.toString());\n }\n if (options.retries.retryDelayMs !== void 0) {\n headers.set(\"cf-aig-retry-delay\", options.retries.retryDelayMs.toString());\n }\n if (options.retries.backoff !== void 0) {\n headers.set(\"cf-aig-backoff\", options.retries.backoff);\n }\n }\n return headers;\n}\nexport {\n AiGatewayChatLanguageModel,\n AiGatewayDoesNotExist,\n AiGatewayInternalFetchError,\n AiGatewayUnauthorizedError,\n createAiGateway,\n parseAiGatewayOptions\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "4A92B768FEBA117B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260312043431_session_message_cursor.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260312043431_session_message_cursor\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`message_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`part_message_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX \\`message_session_time_created_id_idx\\` ON \\`message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n yield* tx.run(`CREATE INDEX \\`part_message_id_id_idx\\` ON \\`part\\` (\\`message_id\\`,\\`id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6CAA+C,EAC7D,MAAO,EAAG,IAAI,0CAA4C,EAC1D,MAAO,EAAG,IACR,qGACF,EACA,MAAO,EAAG,IAAI,sEAA8E,EAC7F,EAEL",
"debugId": "209AD94A2563FE2F64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260706223930_add-session-fork.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260706223930_add-session-fork\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_session_id\\` text;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_message_id\\` text;`)\n yield* tx.run(`\n UPDATE \\`session\\`\n SET\n \\`parent_id\\` = NULL,\n \\`fork_session_id\\` = (\n SELECT json_extract(\\`event\\`.\\`data\\`, '$.parentID')\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n ORDER BY \\`event\\`.\\`seq\\`\n LIMIT 1\n ),\n \\`fork_message_id\\` = (\n SELECT json_extract(\\`event\\`.\\`data\\`, '$.from')\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n ORDER BY \\`event\\`.\\`seq\\`\n LIMIT 1\n )\n WHERE EXISTS (\n SELECT 1\n FROM \\`event\\`\n WHERE \\`event\\`.\\`aggregate_id\\` = \\`session\\`.\\`id\\`\n AND \\`event\\`.\\`type\\` = 'session.forked'\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,mDAAuD,EACrE,MAAO,EAAG,IAAI,y2BA0Bb,EACF,EAEL",
"debugId": "D6ABD513A217014464756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://oidc.{Region}.amazonaws.com\", i],\n [\"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 13,\n 3,\n 1,\n 4,\n r + 12,\n 2,\n 5,\n r + 12,\n 3,\n 8,\n 6,\n 4,\n 7,\n r + 11,\n 5,\n r + 9,\n r + 10,\n 4,\n 11,\n 9,\n 6,\n 10,\n r + 8,\n 7,\n r + 6,\n r + 7,\n 5,\n 12,\n r + 5,\n 6,\n r + 4,\n r + 5,\n 3,\n r + 1,\n 14,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SSOOIDCServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOOIDCServiceException.prototype);\n }\n}\n\nclass AccessDeniedException extends SSOOIDCServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n error;\n reason;\n error_description;\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n this.error = opts.error;\n this.reason = opts.reason;\n this.error_description = opts.error_description;\n }\n}\nclass AuthorizationPendingException extends SSOOIDCServiceException {\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass ExpiredTokenException extends SSOOIDCServiceException {\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InternalServerException extends SSOOIDCServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidClientException extends SSOOIDCServiceException {\n name = \"InvalidClientException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidGrantException extends SSOOIDCServiceException {\n name = \"InvalidGrantException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidRequestException extends SSOOIDCServiceException {\n name = \"InvalidRequestException\";\n $fault = \"client\";\n error;\n reason;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n this.error = opts.error;\n this.reason = opts.reason;\n this.error_description = opts.error_description;\n }\n}\nclass InvalidScopeException extends SSOOIDCServiceException {\n name = \"InvalidScopeException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass SlowDownException extends SSOOIDCServiceException {\n name = \"SlowDownException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass UnauthorizedClientException extends SSOOIDCServiceException {\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\nclass UnsupportedGrantTypeException extends SSOOIDCServiceException {\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n error;\n error_description;\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n}\n\nconst _ADE = \"AccessDeniedException\";\nconst _APE = \"AuthorizationPendingException\";\nconst _AT = \"AccessToken\";\nconst _CS = \"ClientSecret\";\nconst _CT = \"CreateToken\";\nconst _CTR = \"CreateTokenRequest\";\nconst _CTRr = \"CreateTokenResponse\";\nconst _CV = \"CodeVerifier\";\nconst _ETE = \"ExpiredTokenException\";\nconst _ICE = \"InvalidClientException\";\nconst _IGE = \"InvalidGrantException\";\nconst _IRE = \"InvalidRequestException\";\nconst _ISE = \"InternalServerException\";\nconst _ISEn = \"InvalidScopeException\";\nconst _IT = \"IdToken\";\nconst _RT = \"RefreshToken\";\nconst _SDE = \"SlowDownException\";\nconst _UCE = \"UnauthorizedClientException\";\nconst _UGTE = \"UnsupportedGrantTypeException\";\nconst _aT = \"accessToken\";\nconst _c = \"client\";\nconst _cI = \"clientId\";\nconst _cS = \"clientSecret\";\nconst _cV = \"codeVerifier\";\nconst _co = \"code\";\nconst _dC = \"deviceCode\";\nconst _e = \"error\";\nconst _eI = \"expiresIn\";\nconst _ed = \"error_description\";\nconst _gT = \"grantType\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _iT = \"idToken\";\nconst _r = \"reason\";\nconst _rT = \"refreshToken\";\nconst _rU = \"redirectUri\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.ssooidc\";\nconst _sc = \"scope\";\nconst _se = \"server\";\nconst _tT = \"tokenType\";\nconst n0 = \"com.amazonaws.ssooidc\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SSOOIDCServiceException$ = [-3, _s, \"SSOOIDCServiceException\", 0, [], []];\n_s_registry.registerError(SSOOIDCServiceException$, SSOOIDCServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar AccessDeniedException$ = [\n -3,\n n0,\n _ADE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _r, _ed],\n [0, 0, 0],\n];\nn0_registry.registerError(AccessDeniedException$, AccessDeniedException);\nvar AuthorizationPendingException$ = [\n -3,\n n0,\n _APE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(AuthorizationPendingException$, AuthorizationPendingException);\nvar ExpiredTokenException$ = [-3, n0, _ETE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(ExpiredTokenException$, ExpiredTokenException);\nvar InternalServerException$ = [-3, n0, _ISE, { [_e]: _se, [_hE]: 500 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InternalServerException$, InternalServerException);\nvar InvalidClientException$ = [-3, n0, _ICE, { [_e]: _c, [_hE]: 401 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidClientException$, InvalidClientException);\nvar InvalidGrantException$ = [-3, n0, _IGE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidGrantException$, InvalidGrantException);\nvar InvalidRequestException$ = [\n -3,\n n0,\n _IRE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _r, _ed],\n [0, 0, 0],\n];\nn0_registry.registerError(InvalidRequestException$, InvalidRequestException);\nvar InvalidScopeException$ = [-3, n0, _ISEn, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(InvalidScopeException$, InvalidScopeException);\nvar SlowDownException$ = [-3, n0, _SDE, { [_e]: _c, [_hE]: 400 }, [_e, _ed], [0, 0]];\nn0_registry.registerError(SlowDownException$, SlowDownException);\nvar UnauthorizedClientException$ = [\n -3,\n n0,\n _UCE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(UnauthorizedClientException$, UnauthorizedClientException);\nvar UnsupportedGrantTypeException$ = [\n -3,\n n0,\n _UGTE,\n { [_e]: _c, [_hE]: 400 },\n [_e, _ed],\n [0, 0],\n];\nn0_registry.registerError(UnsupportedGrantTypeException$, UnsupportedGrantTypeException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar AccessToken = [0, n0, _AT, 8, 0];\nvar ClientSecret = [0, n0, _CS, 8, 0];\nvar CodeVerifier = [0, n0, _CV, 8, 0];\nvar IdToken = [0, n0, _IT, 8, 0];\nvar RefreshToken = [0, n0, _RT, 8, 0];\nvar CreateTokenRequest$ = [\n 3,\n n0,\n _CTR,\n 0,\n [_cI, _cS, _gT, _dC, _co, _rT, _sc, _rU, _cV],\n [0, [() => ClientSecret, 0], 0, 0, 0, [() => RefreshToken, 0], 64 | 0, 0, [() => CodeVerifier, 0]],\n 3,\n];\nvar CreateTokenResponse$ = [\n 3,\n n0,\n _CTRr,\n 0,\n [_aT, _tT, _eI, _rT, _iT],\n [[() => AccessToken, 0], 0, 1, [() => RefreshToken, 0], [() => IdToken, 0]],\n];\nvar CreateToken$ = [\n 9,\n n0,\n _CT,\n { [_h]: [\"POST\", \"/token\", 200] },\n () => CreateTokenRequest$,\n () => CreateTokenResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.ssooidc\",\n errorTypeRegistries,\n version: \"2019-06-10\",\n serviceTarget: \"AWSSSOOIDCService\",\n },\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SSOOIDCClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateTokenCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSSSOOIDCService\", \"CreateToken\", {})\n .n(\"SSOOIDCClient\", \"CreateTokenCommand\")\n .sc(CreateToken$)\n .build() {\n}\n\nconst commands = {\n CreateTokenCommand,\n};\nclass SSOOIDC extends SSOOIDCClient {\n}\nclient.createAggregatedClient(commands, SSOOIDC);\n\nconst AccessDeniedExceptionReason = {\n KMS_ACCESS_DENIED: \"KMS_AccessDeniedException\",\n};\nconst InvalidRequestExceptionReason = {\n KMS_DISABLED_KEY: \"KMS_DisabledException\",\n KMS_INVALID_KEY_USAGE: \"KMS_InvalidKeyUsageException\",\n KMS_INVALID_STATE: \"KMS_InvalidStateException\",\n KMS_KEY_NOT_FOUND: \"KMS_NotFoundException\",\n};\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.AccessDeniedException = AccessDeniedException;\nexports.AccessDeniedException$ = AccessDeniedException$;\nexports.AccessDeniedExceptionReason = AccessDeniedExceptionReason;\nexports.AuthorizationPendingException = AuthorizationPendingException;\nexports.AuthorizationPendingException$ = AuthorizationPendingException$;\nexports.CreateToken$ = CreateToken$;\nexports.CreateTokenCommand = CreateTokenCommand;\nexports.CreateTokenRequest$ = CreateTokenRequest$;\nexports.CreateTokenResponse$ = CreateTokenResponse$;\nexports.ExpiredTokenException = ExpiredTokenException;\nexports.ExpiredTokenException$ = ExpiredTokenException$;\nexports.InternalServerException = InternalServerException;\nexports.InternalServerException$ = InternalServerException$;\nexports.InvalidClientException = InvalidClientException;\nexports.InvalidClientException$ = InvalidClientException$;\nexports.InvalidGrantException = InvalidGrantException;\nexports.InvalidGrantException$ = InvalidGrantException$;\nexports.InvalidRequestException = InvalidRequestException;\nexports.InvalidRequestException$ = InvalidRequestException$;\nexports.InvalidRequestExceptionReason = InvalidRequestExceptionReason;\nexports.InvalidScopeException = InvalidScopeException;\nexports.InvalidScopeException$ = InvalidScopeException$;\nexports.SSOOIDC = SSOOIDC;\nexports.SSOOIDCClient = SSOOIDCClient;\nexports.SSOOIDCServiceException = SSOOIDCServiceException;\nexports.SSOOIDCServiceException$ = SSOOIDCServiceException$;\nexports.SlowDownException = SlowDownException;\nexports.SlowDownException$ = SlowDownException$;\nexports.UnauthorizedClientException = UnauthorizedClientException;\nexports.UnauthorizedClientException$ = UnauthorizedClientException$;\nexports.UnsupportedGrantTypeException = UnsupportedGrantTypeException;\nexports.UnsupportedGrantTypeException$ = UnsupportedGrantTypeException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "B377D118F6E9F8D964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/mini.ts", "src/mini/run.ts", "src/mini/noninteractive.ts", "src/mini/ui.ts"],
"sourcesContent": [
"import { Service } from \"@opencode-ai/client/effect\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { ServerConnection } from \"../services/server-connection\"\nimport { waitForCatalogReady } from \"./catalog.shared\"\nimport { INTERACTIVE_INPUT_ERROR, resolveInteractiveStdin } from \"./runtime.stdin\"\nimport type { RunInput, RunTuiConfig } from \"./types\"\n\nexport type MiniCommandInput = {\n server: ServerConnection.Resolved\n continue?: boolean\n session?: string\n fork?: boolean\n model?: string\n agent?: string\n prompt?: string\n replay?: boolean\n replayLimit?: number\n demo?: boolean\n tuiConfig?: RunTuiConfig | Promise<RunTuiConfig>\n}\n\ntype Session = Awaited<ReturnType<OpenCodeClient[\"session\"][\"get\"]>>\nexport async function runMini(input: MiniCommandInput) {\n validate(input)\n const initialInput = mergeInput(process.stdin.isTTY ? undefined : await Bun.stdin.text(), input.prompt)\n const runtimeTask = import(\"./runtime\")\n const directory = localDirectory()\n\n try {\n const sdk = OpenCode.make({\n baseUrl: input.server.endpoint.url,\n headers: Service.headers(input.server.endpoint),\n })\n const model = parseModel(input.model)\n let agentTask: Promise<string | undefined> | undefined\n const resolveAgent = () => {\n agentTask ??= validateAgent(sdk, directory, input.agent)\n return agentTask\n }\n const resolveSession = async () => {\n const [agent, selected] = await Promise.all([resolveAgent(), selectSession(sdk, directory, input)])\n const readyModel =\n model ?? (selected?.model ? { providerID: selected.model.providerID, modelID: selected.model.id } : undefined)\n if (readyModel) await waitForCatalogReady({ sdk, directory, model: readyModel })\n const session = selected ?? (await createSession(sdk, directory, agent, model))\n return { id: session.id, title: session.title, resume: selected !== undefined }\n }\n const create = (\n _sdk: OpenCodeClient,\n next: { agent: string | undefined; model: RunInput[\"model\"]; variant: string | undefined },\n ) => createSession(sdk, directory, next.agent, next.model, next.variant)\n const runtime = await runtimeTask\n await runtime.runInteractiveDeferredMode({\n sdk,\n directory,\n resolveAgent,\n session: resolveSession,\n createSession: create,\n agent: input.agent,\n model,\n variant: undefined,\n files: [],\n initialInput,\n thinking: true,\n replay: input.replay ?? true,\n replayLimit: input.replayLimit,\n demo: input.demo,\n tuiConfig: input.tuiConfig,\n })\n } catch (error) {\n if (error instanceof Error && error.message === INTERACTIVE_INPUT_ERROR) fail(error.message)\n throw error\n }\n}\n\nexport function validateMiniTerminal() {\n if (!process.stdout.isTTY) fail(\"opencode mini requires a TTY stdout\")\n}\n\n/** @internal Exported for testing. */\nexport function mergeInput(piped: string | undefined, prompt: string | undefined) {\n if (!prompt) return piped || undefined\n if (!piped) return prompt\n return piped + \"\\n\" + prompt\n}\n\nfunction validate(input: MiniCommandInput) {\n validateMiniTerminal()\n if (input.replayLimit !== undefined && (!Number.isInteger(input.replayLimit) || input.replayLimit <= 0)) {\n fail(\"--replay-limit must be a positive integer\")\n }\n if (input.fork && !input.continue && !input.session) fail(\"--fork requires --continue or --session\")\n resolveInteractiveStdin().cleanup?.()\n}\n\nfunction localDirectory(): string {\n const root = process.env.PWD ?? process.cwd()\n try {\n process.chdir(root)\n return process.cwd()\n } catch {\n fail(`Failed to change directory to ${root}`)\n }\n}\n\nfunction parseModel(value?: string): RunInput[\"model\"] {\n if (!value) return\n const [providerID, ...rest] = value.split(\"/\")\n const modelID = rest.join(\"/\")\n if (!providerID || !modelID) fail(\"--model must use the format provider/model\")\n return { providerID, modelID }\n}\n\nasync function validateAgent(sdk: OpenCodeClient, directory: string, name?: string) {\n if (!name) return\n const deadline = Date.now() + 5_000\n let agents: Awaited<ReturnType<OpenCodeClient[\"agent\"][\"list\"]>> | undefined\n while (Date.now() < deadline) {\n agents = await sdk.agent.list({ location: { directory } }).catch(() => undefined)\n const agent = agents?.data.find((item) => item.id === name)\n if (agent?.mode === \"subagent\") {\n warning(`agent \"${name}\" is a subagent, not a primary agent. Falling back to default agent`)\n return\n }\n if (agent) return name\n await Bun.sleep(25)\n }\n if (!agents) {\n warning(\"failed to list agents. Falling back to default agent\")\n return\n }\n warning(`agent \"${name}\" not found. Falling back to default agent`)\n}\n\nasync function selectSession(sdk: OpenCodeClient, directory: string, input: MiniCommandInput, preselected?: Session) {\n const selected =\n preselected ??\n (input.session\n ? await sdk.session.get({ sessionID: input.session }).catch(() => undefined)\n : input.continue\n ? await sdk.session\n .list({ directory, parentID: null, limit: 1, order: \"desc\" })\n .then((result) => result.data[0])\n : undefined)\n if (input.session && !selected) fail(\"Session not found\")\n if (!selected) return\n if (!input.fork) return selected\n return sdk.session.fork({ sessionID: selected.id })\n}\n\nasync function createSession(\n sdk: OpenCodeClient,\n directory: string,\n agent: string | undefined,\n model: RunInput[\"model\"],\n variant?: string,\n): Promise<Session> {\n if (model) await waitForCatalogReady({ sdk, directory, model })\n return sdk.session.create({\n agent,\n model: model ? { providerID: model.providerID, id: model.modelID, variant } : undefined,\n location: { directory },\n })\n}\n\nfunction warning(message: string) {\n process.stderr.write(`\\x1b[93m\\x1b[1m!\\x1b[0m ${message}\\n`)\n}\n\nfunction fail(message: string): never {\n process.stderr.write(`\\x1b[91m\\x1b[1mError: \\x1b[0m${message}\\n`)\n process.exit(1)\n}\n",
"import { Service } from \"@opencode-ai/client/effect\"\nimport { OpenCode, type OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { FSUtil } from \"@opencode-ai/core/fs-util\"\nimport { Model } from \"@opencode-ai/schema/model\"\nimport { open } from \"node:fs/promises\"\nimport path from \"node:path\"\nimport { ServerConnection } from \"../services/server-connection\"\nimport { loadRunAgents, waitForCatalogReady } from \"./catalog.shared\"\nimport { runNonInteractivePrompt } from \"./noninteractive\"\nimport { toolInlineInfo } from \"./tool\"\nimport type { MiniToolPart } from \"./types\"\nimport { UI } from \"./ui\"\n\nexport type RunCommandInput = {\n server: ServerConnection.Resolved\n message: string[]\n continue?: boolean\n session?: string\n fork?: boolean\n model?: string\n agent?: string\n format: \"default\" | \"json\"\n file: string[]\n title?: string\n thinking?: boolean\n auto?: boolean\n}\n\ntype FilePart = {\n url: string\n filename: string\n mime: string\n}\n\ntype Prepared = {\n directory?: string\n message: string\n files: FilePart[]\n}\n\nconst ATTACH_FILE_MAX_BYTES = 10 * 1024 * 1024\n\nexport function runNonInteractive(input: RunCommandInput) {\n return run(input).catch((error) => reportError(input, error instanceof Error ? error.message : String(error)))\n}\n\nasync function run(input: RunCommandInput) {\n if (input.fork && !input.continue && !input.session) fail(\"--fork requires --continue or --session\")\n const root = process.env.PWD ?? process.cwd()\n const directory = localDirectory(root)\n const message = mergeInput(formatMessage(input.message), process.stdin.isTTY ? undefined : await Bun.stdin.text())\n if (!message?.trim()) fail(\"You must provide a message\")\n const files = await Promise.all(input.file.map((file) => prepareFile(file, root)))\n const prepared = { directory, message, files }\n return execute(input, prepared, input.server.endpoint)\n}\n\nasync function execute(input: RunCommandInput, prepared: Prepared, endpoint: Service.Endpoint) {\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const requestedDirectory = prepared.directory ?? (await client.location.get()).directory\n if (!requestedDirectory) fail(\"Failed to resolve server directory\")\n const session = await selectSession(client, requestedDirectory, input)\n const cwd = session?.location.directory ?? requestedDirectory\n const workspace = session?.location.workspaceID\n const explicit = parseRunModel(input.model)\n const explicitModel = explicit?.model\n const variant = explicit?.variant\n const sessionModel = session?.model ? { providerID: session.model.providerID, modelID: session.model.id } : undefined\n const defaultModel =\n !explicitModel && !sessionModel\n ? await client.model\n .default({ location: { directory: cwd, workspace } })\n .then((result) => (result.data ? { providerID: result.data.providerID, modelID: result.data.id } : undefined))\n : undefined\n const model = pickRunModel(explicitModel, variant, sessionModel, defaultModel)\n if (variant && !model) return reportError(input, \"Cannot select a variant before selecting a model\", session?.id)\n if (model) {\n await waitForCatalogReady({ sdk: client, directory: cwd, workspace, model })\n const available = await client.model.list({ location: { directory: cwd, workspace } })\n if (!available.data.some((item) => item.providerID === model.providerID && item.id === model.modelID))\n return reportError(input, `Model unavailable: ${model.providerID}/${model.modelID}`, session?.id)\n }\n const agent = await validateAgent(client, cwd, input.agent)\n const selected =\n session ??\n (await client.session.create({\n agent,\n model: model ? { providerID: model.providerID, id: model.modelID, variant } : undefined,\n location: { directory: cwd },\n }))\n if (!session && input.title !== undefined) {\n await client.session.rename({\n sessionID: selected.id,\n title: input.title || prepared.message.slice(0, 50) + (prepared.message.length > 50 ? \"...\" : \"\"),\n })\n }\n\n await runNonInteractivePrompt({\n client,\n sessionID: selected.id,\n message: prepared.message,\n files: prepared.files,\n agent,\n model,\n variant,\n thinking: input.thinking ?? false,\n format: input.format,\n auto: input.auto ?? false,\n attached: true,\n renderTool,\n renderToolError,\n }).catch((error) => reportError(input, error instanceof Error ? error.message : String(error), selected.id))\n}\n\nexport function mergeInput(message: string | undefined, piped: string | undefined) {\n if (!message) return piped || undefined\n if (!piped) return message\n return message + \"\\n\" + piped\n}\n\nexport function pickRunModel(\n explicit: { providerID: string; modelID: string } | undefined,\n variant: string | undefined,\n session: { providerID: string; modelID: string } | undefined,\n fallback: { providerID: string; modelID: string } | undefined,\n) {\n if (explicit) return explicit\n if (!variant) return\n return session ?? fallback\n}\n\nfunction formatMessage(message: string[]) {\n const value = message.map((part) => (part.includes(\" \") ? `\"${part.replace(/\"/g, '\\\\\"')}\"` : part)).join(\" \")\n return value || undefined\n}\n\nfunction localDirectory(root: string) {\n try {\n process.chdir(root)\n return process.cwd()\n } catch {\n fail(`Failed to change directory to ${root}`)\n }\n}\n\nexport function parseRunModel(value?: string) {\n if (!value) return\n const ref = Model.Ref.parse(value)\n return {\n model: { providerID: ref.providerID, modelID: ref.id },\n variant: ref.variant,\n }\n}\n\nasync function validateAgent(client: OpenCodeClient, directory: string, name?: string) {\n if (!name) return\n const agents = await loadRunAgents(client, directory).catch(() => undefined)\n if (!agents) {\n warning(\"failed to list agents. Falling back to default agent\")\n return\n }\n const agent = agents.find((item) => item.id === name)\n if (!agent) {\n warning(`agent \"${name}\" not found. Falling back to default agent`)\n return\n }\n if (agent.mode === \"subagent\") {\n warning(`agent \"${name}\" is a subagent, not a primary agent. Falling back to default agent`)\n return\n }\n return name\n}\n\nasync function selectSession(client: OpenCodeClient, directory: string, input: RunCommandInput) {\n const selected = input.session\n ? await client.session.get({ sessionID: input.session }).catch(() => undefined)\n : input.continue\n ? await client.session\n .list({ directory, parentID: null, limit: 1, order: \"desc\" })\n .then((result) => result.data[0])\n : undefined\n if (input.session && !selected) fail(\"Session not found\")\n if (!selected || !input.fork) return selected\n return client.session.fork({ sessionID: selected.id })\n}\n\nasync function prepareFile(input: string, directory: string): Promise<FilePart> {\n const file = path.resolve(directory, input)\n const handle = await open(file, \"r\").catch(() => fail(`File not found: ${input}`))\n try {\n const stat = await handle.stat()\n if (!stat.isFile() || stat.size > ATTACH_FILE_MAX_BYTES)\n fail(`Cannot attach a directory, special file, or file larger than 10 MiB: ${input}`)\n const content = Buffer.alloc(Number(stat.size))\n let offset = 0\n while (offset < content.length) {\n const read = await handle.read(content, offset, content.length - offset, offset)\n if (read.bytesRead === 0) break\n offset += read.bytesRead\n }\n const bytes = content.subarray(0, offset)\n const detected = FSUtil.mimeType(file)\n const text = bytes.toString(\"utf8\")\n const mime =\n detected.startsWith(\"image/\") || detected === \"application/pdf\"\n ? detected\n : !isBinaryContent(bytes) && Buffer.from(text, \"utf8\").equals(bytes)\n ? \"text/plain\"\n : detected\n return {\n url: `data:${mime};base64,${bytes.toString(\"base64\")}`,\n filename: path.basename(file),\n mime,\n }\n } finally {\n await handle.close()\n }\n}\n\nfunction isBinaryContent(bytes: Uint8Array) {\n if (bytes.length === 0) return false\n if (bytes.includes(0)) return true\n return bytes.reduce((count, byte) => count + Number(byte < 9 || (byte > 13 && byte < 32)), 0) / bytes.length > 0.3\n}\n\nasync function renderTool(part: MiniToolPart) {\n const info = toolInlineInfo(part)\n if (info.mode === \"block\") {\n UI.empty()\n UI.println(UI.Style.TEXT_NORMAL + info.icon, UI.Style.TEXT_NORMAL + info.title)\n if (info.body?.trim()) UI.println(info.body)\n UI.empty()\n return\n }\n UI.println(\n UI.Style.TEXT_NORMAL + info.icon,\n UI.Style.TEXT_NORMAL + info.title,\n info.description ? UI.Style.TEXT_DIM + info.description + UI.Style.TEXT_NORMAL : \"\",\n )\n}\n\nasync function renderToolError(part: MiniToolPart) {\n const info = toolInlineInfo(part)\n UI.println(UI.Style.TEXT_NORMAL + \"✗\", UI.Style.TEXT_NORMAL + `${info.title} failed`)\n}\n\nfunction warning(message: string) {\n UI.println(UI.Style.TEXT_WARNING_BOLD + \"!\", UI.Style.TEXT_NORMAL, message)\n}\n\nfunction reportError(input: RunCommandInput, message: string, sessionID?: string) {\n process.exitCode = 1\n if (input.format === \"json\") {\n process.stdout.write(\n JSON.stringify({\n type: \"error\",\n timestamp: Date.now(),\n sessionID: sessionID ?? \"\",\n error: { type: \"unknown\", message },\n }) + \"\\n\",\n )\n return\n }\n UI.error(message)\n}\n\nfunction fail(message: string): never {\n throw new Error(message)\n}\n",
"import type { EventSubscribeOutput, OpenCodeClient } from \"@opencode-ai/client/promise\"\nimport { SessionMessage } from \"@opencode-ai/schema/session-message\"\nimport { EOL } from \"node:os\"\nimport { UI } from \"./ui\"\nimport type { MiniToolPart } from \"./types\"\n\ntype Model = {\n providerID: string\n modelID: string\n}\n\ntype File = {\n url: string\n filename: string\n mime: string\n}\n\ntype Input = {\n client: OpenCodeClient\n sessionID: string\n message: string\n files: File[]\n agent?: string\n model?: Model\n variant?: string\n thinking: boolean\n format: \"default\" | \"json\"\n auto: boolean\n /** True when the client is attached to a shared server rather than an exclusive in-process one. */\n attached: boolean\n renderTool: (part: MiniToolPart) => Promise<void>\n renderToolError: (part: MiniToolPart) => Promise<void>\n}\n\ntype StartedPart = {\n id: string\n timestamp: number\n}\n\ntype ToolState = StartedPart & {\n assistantMessageID: string\n tool: string\n input: Record<string, unknown>\n raw?: string\n provider?: unknown\n}\n\ntype V2Event = EventSubscribeOutput\ntype FormRequest = Extract<V2Event, { type: \"form.created\" }>[\"data\"][\"form\"]\n\n// MCP elicitations are temporarily owned by the \"global\" sentinel instead of a real\n// session. An exclusive local process may treat them as this run's blockers; an\n// attached client must not cancel input that may belong to another session.\nconst GLOBAL_FORM_SESSION_ID = \"global\"\n\nexport async function runNonInteractivePrompt(input: Input) {\n const controller = new AbortController()\n const stream = input.client.event.subscribe({ signal: controller.signal })[Symbol.asyncIterator]()\n const connected = await stream.next()\n if (connected.done) throw new Error(\"Event stream disconnected before prompt admission\")\n\n const messageID = SessionMessage.ID.create()\n const starts = new Map<string, StartedPart>()\n const tools = new Map<string, ToolState>()\n let submitted = false\n let promoted = false\n let emittedError = false\n let questionRejected = false\n let permissionRejected = false\n let formCancelled = false\n let interrupted = false\n let admission: AbortController | undefined\n\n const emit = (type: string, timestamp: number, data: Record<string, unknown>) => {\n if (input.format !== \"json\") return false\n process.stdout.write(JSON.stringify({ type, timestamp, sessionID: input.sessionID, ...data }) + EOL)\n return true\n }\n\n const writeText = (part: { text: string; [key: string]: unknown }, timestamp: number) => {\n if (emit(\"text\", timestamp, { part })) return\n const text = part.text.trim()\n if (!text) return\n if (!process.stdout.isTTY) {\n process.stdout.write(text + EOL)\n return\n }\n UI.empty()\n UI.println(text)\n UI.empty()\n }\n\n const replyPermission = async (request: { id: string; action: string; resources: ReadonlyArray<string> }) => {\n if (!input.auto) {\n permissionRejected = true\n UI.println(\n UI.Style.TEXT_WARNING_BOLD + \"!\",\n UI.Style.TEXT_NORMAL +\n `permission requested: ${request.action} (${request.resources.join(\", \")}); auto-rejecting`,\n )\n }\n await input.client.permission\n .reply({\n sessionID: input.sessionID,\n requestID: request.id,\n reply: input.auto ? \"once\" : \"reject\",\n })\n .catch(() => {})\n if (!input.auto) {\n await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n }\n\n const rejectQuestion = async (request: { id: string }) => {\n questionRejected = true\n await input.client.question.reject({ sessionID: input.sessionID, requestID: request.id }).catch(() => {})\n }\n\n const cancelForm = async (request: Pick<FormRequest, \"id\" | \"sessionID\">) => {\n formCancelled = true\n await input.client.form.cancel({ sessionID: request.sessionID, formID: request.id }).catch(() => {})\n }\n\n const consume = async () => {\n while (!controller.signal.aborted) {\n const next = await stream.next().catch((error) => {\n if (!emittedError) throw error\n return { done: true as const, value: undefined }\n })\n if (next.done) {\n if (emittedError) return\n throw new Error(\"Event stream disconnected during prompt execution\")\n }\n const event = next.value\n\n if (event.type === \"permission.v2.asked\" && submitted && event.data.sessionID === input.sessionID) {\n await replyPermission(event.data)\n continue\n }\n if (event.type === \"question.v2.asked\" && submitted && event.data.sessionID === input.sessionID) {\n await rejectQuestion(event.data)\n continue\n }\n if (\n event.type === \"form.created\" &&\n submitted &&\n (event.data.form.sessionID === input.sessionID ||\n (!input.attached && event.data.form.sessionID === GLOBAL_FORM_SESSION_ID))\n ) {\n await cancelForm(event.data.form)\n continue\n }\n if (!(\"sessionID\" in event.data) || event.data.sessionID !== input.sessionID) continue\n const time = toMillis(\"created\" in event ? event.created : undefined)\n\n if (event.type === \"session.input.promoted\") {\n if (event.data.inputID === messageID) {\n promoted = true\n continue\n }\n }\n if (\n event.type === \"session.execution.interrupted\" &&\n event.data.reason === \"user\" &&\n (interrupted || permissionRejected || questionRejected || formCancelled)\n ) {\n return\n }\n if (!promoted) continue\n\n if (event.type === \"session.step.started\") {\n const part = {\n id: partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"step-start\",\n snapshot: event.data.snapshot,\n }\n if (!emit(\"step_start\", time, { part }) && input.format !== \"json\") {\n UI.empty()\n UI.println(`> ${event.data.agent} · ${event.data.model.id}`)\n UI.empty()\n }\n continue\n }\n\n if (event.type === \"session.text.started\") {\n starts.set(\"text\", { id: partID(event.id), timestamp: time })\n continue\n }\n if (event.type === \"session.text.ended\") {\n const started = starts.get(\"text\")\n starts.delete(\"text\")\n const part = {\n id: started?.id ?? partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"text\",\n text: event.data.text,\n time: { start: started?.timestamp ?? time, end: time },\n }\n writeText(part, time)\n continue\n }\n\n if (event.type === \"session.reasoning.started\") {\n starts.set(\"reasoning\", { id: partID(event.id), timestamp: time })\n continue\n }\n if (event.type === \"session.reasoning.ended\" && input.thinking) {\n const started = starts.get(\"reasoning\")\n starts.delete(\"reasoning\")\n const part = {\n id: started?.id ?? partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"reasoning\",\n text: event.data.text,\n metadata: event.data.state,\n time: { start: started?.timestamp ?? time, end: time },\n }\n if (emit(\"reasoning\", time, { part })) continue\n const text = part.text.trim()\n if (!text) continue\n const line = `Thinking: ${text}`\n if (!process.stdout.isTTY) {\n process.stdout.write(line + EOL)\n continue\n }\n UI.empty()\n UI.println(`${UI.Style.TEXT_DIM}\\u001b[3m${line}\\u001b[0m${UI.Style.TEXT_NORMAL}`)\n UI.empty()\n continue\n }\n\n if (event.type === \"session.tool.input.started\") {\n tools.set(event.data.callID, {\n id: partID(event.id),\n timestamp: time,\n assistantMessageID: event.data.assistantMessageID,\n tool: event.data.name,\n input: {},\n })\n continue\n }\n if (event.type === \"session.tool.input.ended\") {\n const current = tools.get(event.data.callID)\n if (current) current.raw = event.data.text\n continue\n }\n if (event.type === \"session.tool.called\") {\n const current = tools.get(event.data.callID)\n tools.set(event.data.callID, {\n id: current?.id ?? partID(event.id),\n timestamp: current?.timestamp ?? time,\n assistantMessageID: event.data.assistantMessageID,\n tool: current?.tool ?? \"tool\",\n input: event.data.input,\n raw: current?.raw,\n provider: { executed: event.data.executed, state: event.data.state },\n })\n continue\n }\n if (event.type === \"session.tool.success\") {\n const current = tools.get(event.data.callID) ?? fallbackTool(event)\n const part: MiniToolPart = {\n id: current.id,\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"tool\",\n callID: event.data.callID,\n tool: current.tool,\n state: {\n status: \"completed\",\n input: current.input,\n output: event.data.content\n .filter((item) => item.type === \"text\")\n .map((item) => item.text)\n .join(\"\\n\"),\n title: current.tool,\n metadata: {\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n providerCall: current.provider,\n providerResult: { executed: event.data.executed, state: event.data.resultState },\n rawInput: current.raw,\n },\n time: { start: current.timestamp, end: time },\n },\n }\n tools.delete(event.data.callID)\n if (!emit(\"tool_use\", time, { part })) await input.renderTool(part)\n continue\n }\n if (event.type === \"session.tool.failed\") {\n const current = tools.get(event.data.callID) ?? fallbackTool(event)\n const error = event.data.error.message\n const part: MiniToolPart = {\n id: current.id,\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"tool\",\n callID: event.data.callID,\n tool: current.tool,\n state: {\n status: \"error\",\n input: current.input,\n error,\n metadata: {\n result: event.data.result,\n providerCall: current.provider,\n providerResult: { executed: event.data.executed, state: event.data.resultState },\n rawInput: current.raw,\n },\n time: { start: current.timestamp, end: time },\n },\n }\n tools.delete(event.data.callID)\n if (!emit(\"tool_use\", time, { part })) {\n await input.renderToolError(part)\n UI.error(error)\n }\n continue\n }\n\n if (event.type === \"session.step.ended\") {\n const part = {\n id: partID(event.id),\n sessionID: input.sessionID,\n messageID: event.data.assistantMessageID,\n type: \"step-finish\",\n reason: event.data.finish,\n snapshot: event.data.snapshot,\n cost: event.data.cost,\n tokens: event.data.tokens,\n }\n emit(\"step_finish\", time, { part })\n continue\n }\n if (event.type === \"session.step.failed\") {\n if (interrupted || permissionRejected || questionRejected || formCancelled) continue\n emittedError = true\n process.exitCode = 1\n if (!emit(\"error\", time, { error: event.data.error })) UI.error(event.data.error.message)\n continue\n }\n if (event.type === \"session.execution.failed\") {\n if (!emittedError && !questionRejected && !formCancelled) {\n emittedError = true\n process.exitCode = 1\n if (!emit(\"error\", time, { error: event.data.error })) UI.error(event.data.error.message)\n }\n return\n }\n if (event.type === \"session.execution.interrupted\") {\n if (event.data.reason === \"user\" && interrupted) process.exitCode = 130\n if (event.data.reason !== \"user\" && !emittedError) {\n emittedError = true\n process.exitCode = 1\n const error = { type: \"aborted\" as const, message: `Session interrupted: ${event.data.reason}` }\n if (!emit(\"error\", time, { error })) UI.error(error.message)\n }\n return\n }\n if (event.type === \"session.execution.succeeded\") return\n }\n }\n\n const interrupt = () => {\n if (interrupted) process.exit(130)\n interrupted = true\n process.exitCode = 130\n admission?.abort()\n void input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n process.on(\"SIGINT\", interrupt)\n\n let completed: Promise<void> | undefined\n try {\n if (input.agent) {\n await input.client.session.switchAgent({ sessionID: input.sessionID, agent: input.agent })\n }\n const selected = input.model\n ? { providerID: input.model.providerID, id: input.model.modelID, variant: input.variant }\n : input.variant\n ? await input.client.session\n .get({ sessionID: input.sessionID })\n .then((result) => result.model)\n .then(async (model) => {\n if (model) return { ...model, variant: input.variant }\n const result = await input.client.model.default()\n const fallback = result.data\n return fallback ? { providerID: fallback.providerID, id: fallback.id, variant: input.variant } : undefined\n })\n : undefined\n if (input.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n if (selected) {\n await input.client.session.switchModel({ sessionID: input.sessionID, model: selected })\n }\n\n const prepared = await Promise.all(input.files.map(prepareFile))\n if (interrupted) return\n submitted = true\n completed = consume()\n admission = new AbortController()\n const response = await input.client.session\n .prompt(\n {\n sessionID: input.sessionID,\n id: messageID,\n text: [input.message, ...prepared.flatMap((file) => (file.text ? [file.text] : []))].join(\"\\n\\n\"),\n files: prepared.flatMap((file) => (file.attachment ? [file.attachment] : [])),\n delivery: \"steer\",\n },\n { signal: admission.signal },\n )\n .catch(async (error) => {\n if (interrupted) {\n await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n controller.abort()\n await completed?.catch(() => {})\n if (interrupted || emittedError) return undefined\n throw error\n })\n admission = undefined\n if (!response) return\n if (interrupted) await input.client.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n\n const [permissions, questions, forms] = await Promise.all([\n input.client.permission.list({ sessionID: input.sessionID }).catch(() => undefined),\n input.client.question.list({ sessionID: input.sessionID }).catch(() => undefined),\n Promise.all(\n (input.attached ? [input.sessionID] : [input.sessionID, GLOBAL_FORM_SESSION_ID]).map((sessionID) =>\n input.client.form.list({ sessionID }).catch(() => undefined),\n ),\n ),\n ])\n await Promise.all([\n ...(permissions ?? []).map(replyPermission),\n ...(questions ?? []).map(rejectQuestion),\n ...forms.flatMap((response) => response ?? []).map(cancelForm),\n ])\n await completed\n } finally {\n process.off(\"SIGINT\", interrupt)\n controller.abort()\n await stream.return?.(undefined).catch(() => {})\n }\n}\n\nfunction partID(eventID: string) {\n return `prt_${eventID.replace(/^evt_/, \"\")}`\n}\n\nfunction fallbackTool(event: {\n id: string\n created: number\n data: { assistantMessageID: string; callID: string }\n}): ToolState {\n return {\n id: partID(event.id),\n timestamp: toMillis(event.created),\n assistantMessageID: event.data.assistantMessageID,\n tool: \"tool\",\n input: {},\n }\n}\n\nfunction toMillis(value: unknown) {\n if (typeof value === \"number\") return value\n if (typeof value === \"string\") return new Date(value).getTime()\n return Date.now()\n}\n\nasync function prepareFile(file: File) {\n if (file.mime !== \"text/plain\") {\n const uri = file.url.startsWith(\"data:\")\n ? file.url\n : `data:${file.mime};base64,${Buffer.from(await Bun.file(new URL(file.url)).arrayBuffer()).toString(\"base64\")}`\n return { attachment: { uri, mime: file.mime, name: file.filename } }\n }\n const content = file.url.startsWith(\"data:\")\n ? Buffer.from(file.url.slice(file.url.indexOf(\",\") + 1), \"base64\").toString(\"utf8\")\n : await Bun.file(new URL(file.url)).text()\n return { text: `<file name=\"${file.filename}\">\\n${content}\\n</file>` }\n}\n",
"import { EOL } from \"node:os\"\n\nexport const Style = {\n TEXT_DIM: \"\\x1b[90m\",\n TEXT_NORMAL: \"\\x1b[0m\",\n TEXT_WARNING_BOLD: \"\\x1b[93m\\x1b[1m\",\n TEXT_DANGER_BOLD: \"\\x1b[91m\\x1b[1m\",\n}\n\nexport function println(...message: string[]) {\n process.stderr.write(message.join(\" \") + EOL)\n}\n\nlet blank = false\n\nexport function empty() {\n if (blank) return\n println(Style.TEXT_NORMAL)\n blank = true\n}\n\nexport function error(message: string) {\n if (message.startsWith(\"Error: \")) message = message.slice(\"Error: \".length)\n println(Style.TEXT_DANGER_BOLD + \"Error: \" + Style.TEXT_NORMAL + message)\n}\n\nexport * as UI from \"./ui\"\n"
],
"mappings": "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",
"debugId": "8B4E91319156B92564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mini.ts"],
"sourcesContent": [
"import { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nexport default Runtime.handler(Commands.commands.mini, (input) =>\n Effect.gen(function* () {\n const { runMini, validateMiniTerminal } = yield* Effect.promise(() => import(\"../../mini\"))\n yield* Effect.promise(async () => validateMiniTerminal())\n const serverURL = Option.getOrUndefined(input.server)\n const server = yield* ServerConnection.resolve({ server: serverURL, standalone: input.standalone })\n yield* Effect.promise(() =>\n runMini({\n server,\n continue: input.continue,\n session: Option.getOrUndefined(input.session),\n fork: input.fork,\n model: Option.getOrUndefined(input.model),\n agent: Option.getOrUndefined(input.agent),\n prompt: Option.getOrUndefined(input.prompt),\n replay: input.replay,\n replayLimit: Option.getOrUndefined(input.replayLimit),\n demo: input.demo,\n }),\n )\n }),\n)\n"
],
"mappings": ";mzCAKA,SAAe,SAAQ,aAAQ,OAAS,cAAS,UAAM,MAAC,SACtD,OAAO,SAAI,cAAU,OAAG,MACtB,SAAQ,eAAS,6BAAyB,WAAO,OAAO,aAAQ,SAAa,wCAAa,OAC1F,WAAO,OAAO,aAAQ,cAAY,OAAqB,MAAC,OACxD,SAAM,OAAY,OAAO,oBAAe,OAAM,WAAM,OAC9C,OAAS,MAAO,EAAiB,QAAQ,CAAE,OAAQ,EAAW,WAAY,EAAM,UAAW,CAAC,EAClG,MAAO,EAAO,QAAQ,IACpB,EAAQ,CACN,SACA,SAAU,EAAM,SAChB,QAAS,EAAO,eAAe,EAAM,OAAO,EAC5C,KAAM,EAAM,KACZ,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,MAAO,EAAO,eAAe,EAAM,KAAK,EACxC,OAAQ,EAAO,eAAe,EAAM,MAAM,EAC1C,OAAQ,EAAM,OACd,YAAa,EAAO,eAAe,EAAM,WAAW,EACpD,KAAM,EAAM,IACd,CAAC,CACH,EACD,CACH",
"debugId": "6FB7FE16BEC57EC064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "43CB881BF17231B664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260707120000_migrate_prelaunch_v2_state.ts"],
"sourcesContent": [
"import { sql } from \"drizzle-orm\"\nimport { Effect, Schema } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nconst decodeJson = Schema.decodeUnknownSync(Schema.UnknownFromJsonString)\nconst isObject = Schema.is(Schema.Record(Schema.String, Schema.Unknown))\n\nexport default {\n id: \"20260707120000_migrate_prelaunch_v2_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(\n sql`DELETE FROM session_message WHERE type = 'compaction' AND json_extract(data, '$.status') = 'queued'`,\n )\n const messages = yield* tx.all<{ id: string; type: string; data: string }>(\n sql`SELECT id, type, data FROM session_message WHERE type IN ('skill', 'shell', 'assistant', 'compaction', 'synthetic')`,\n )\n for (const row of messages) {\n const data = object(decodeJson(row.data))\n yield* tx.run(\n sql`UPDATE session_message SET data = ${JSON.stringify(messageData(row.type, data))} WHERE id = ${row.id}`,\n )\n }\n\n yield* tx.run(sql`DELETE FROM event WHERE type = 'session.compaction.delta.1'`)\n const events = yield* tx.all<{ id: string; aggregateID: string; seq: number; type: string; data: string }>(sql`\n SELECT id, aggregate_id as aggregateID, seq, type, data\n FROM event\n WHERE type IN (\n 'session.skill.activated.1',\n 'session.skill.activated.2',\n 'session.compaction.started.1',\n 'session.compaction.started.2',\n 'session.compaction.ended.1',\n 'session.compaction.failed.1',\n 'session.compaction.failed.2',\n 'session.revert.staged.1',\n 'session.revert.staged.2'\n )\n ORDER BY aggregate_id, seq\n `)\n const compactionReasons = new Map<string, \"auto\" | \"manual\">()\n for (const row of events) {\n const data = object(decodeJson(row.data))\n if (row.type.startsWith(\"session.compaction.ended.\")) {\n compactionReasons.delete(row.aggregateID)\n continue\n }\n const event = eventData(row.type, data, compactionReasons.get(row.aggregateID))\n if (row.type.startsWith(\"session.compaction.started.\"))\n compactionReasons.set(row.aggregateID, event.data.reason === \"auto\" ? \"auto\" : \"manual\")\n if (row.type.startsWith(\"session.compaction.failed.\")) compactionReasons.delete(row.aggregateID)\n yield* tx.run(\n sql`UPDATE event SET type = ${event.type}, data = ${JSON.stringify(event.data)} WHERE id = ${row.id}`,\n )\n }\n })\n },\n} satisfies DatabaseMigration.Migration\n\nfunction messageData(type: string, data: Record<string, unknown>) {\n if (type === \"skill\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n skill: data.skill ?? data.id ?? data.name,\n name: data.name,\n text: data.text,\n })\n if (type === \"shell\") {\n const shell = object(data.shell)\n return defined({\n metadata: data.metadata,\n time: data.time,\n shellID: data.shellID ?? shell.id,\n command: data.command ?? shell.command,\n status: data.status ?? shell.status,\n exit: data.exit ?? shell.exit,\n output: data.output,\n })\n }\n if (type === \"assistant\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n agent: data.agent,\n model: data.model,\n content: Array.isArray(data.content) ? data.content.map(assistantContent) : data.content,\n snapshot: data.snapshot,\n finish: data.finish,\n cost: data.cost,\n tokens: data.tokens,\n error: data.error,\n retry: data.retry,\n })\n if (type === \"compaction\") {\n if (data.status === \"failed\")\n return defined({\n metadata: data.metadata,\n time: data.time,\n status: data.status,\n reason: data.reason,\n error: data.error ?? genericCompactionError,\n })\n return defined({\n metadata: data.metadata,\n time: data.time,\n status: data.status,\n reason: data.reason,\n summary: data.summary,\n recent: data.recent,\n })\n }\n if (type === \"synthetic\")\n return defined({ metadata: data.metadata, time: data.time, text: data.text, description: data.description })\n const { sessionID: _, ...current } = data\n return current\n}\n\nfunction assistantContent(value: unknown) {\n const content = object(value)\n if (content.type === \"text\") return defined({ type: content.type, text: content.text })\n if (content.type === \"reasoning\")\n return defined({ type: content.type, text: content.text, state: content.state, time: content.time })\n if (content.type !== \"tool\") return content\n return defined({\n type: content.type,\n id: content.id,\n name: content.name,\n executed: content.executed,\n providerState: content.providerState,\n providerResultState: content.providerResultState,\n state: toolState(content.state),\n time: content.time,\n })\n}\n\nfunction toolState(value: unknown) {\n const state = object(value)\n if (state.status === \"pending\" || state.status === \"streaming\")\n return defined({ status: \"streaming\", input: state.input })\n if (state.status === \"running\")\n return defined({ status: state.status, input: state.input, structured: state.structured, content: state.content })\n if (state.status === \"completed\")\n return defined({\n status: state.status,\n input: state.input,\n structured: state.structured,\n content: state.content,\n result: state.result,\n })\n if (state.status === \"error\")\n return defined({\n status: state.status,\n input: state.input,\n structured: state.structured,\n content: state.content,\n error: state.error,\n result: state.result,\n })\n return state\n}\n\nfunction eventData(type: string, data: Record<string, unknown>, compactionReason?: \"auto\" | \"manual\") {\n if (type.startsWith(\"session.skill.activated.\"))\n return {\n type: \"session.skill.activated.1\",\n data: defined({ sessionID: data.sessionID, id: data.id ?? data.name, name: data.name, text: data.text }),\n }\n if (type.startsWith(\"session.compaction.started.\"))\n return {\n type: \"session.compaction.started.1\",\n data: defined({\n sessionID: data.sessionID,\n reason: data.reason,\n recent: data.recent ?? \"\",\n inputID: data.inputID,\n }),\n }\n if (type.startsWith(\"session.compaction.failed.\"))\n return {\n type: \"session.compaction.failed.1\",\n data: defined({\n sessionID: data.sessionID,\n reason: data.reason ?? compactionReason ?? \"manual\",\n error: data.error ?? genericCompactionError,\n inputID: data.inputID,\n }),\n }\n const revert = object(data.revert)\n return {\n type: \"session.revert.staged.1\",\n data: defined({\n sessionID: data.sessionID,\n revert: defined({\n messageID: revert.messageID,\n partID: revert.partID,\n snapshot: revert.snapshot,\n files: Array.isArray(revert.files)\n ? revert.files.map((value) => {\n const file = object(value)\n return defined({\n file: file.file ?? file.path,\n patch: file.patch,\n additions: file.additions,\n deletions: file.deletions,\n status: file.status,\n })\n })\n : undefined,\n }),\n }),\n }\n}\n\nconst genericCompactionError = {\n type: \"compaction.failed\",\n message: \"Compaction failed before recording an error\",\n}\n\nfunction object(value: unknown): Record<string, unknown> {\n return isObject(value) ? value : {}\n}\n\nfunction defined(value: Record<string, unknown>) {\n return Object.fromEntries(Object.entries(value).filter((entry) => entry[1] !== undefined))\n}\n"
],
"mappings": "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",
"debugId": "4202D2E1E6DA0A5A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709013000_generic_session_input.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709013000_generic_session_input\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n DELETE FROM \\`event\\`\n WHERE \\`type\\` IN ('session.prompt.admitted.1', 'session.prompt.promoted.1')\n AND json_extract(\\`data\\`, '$.inputID') IN (\n SELECT \\`id\\` FROM \\`session_input\\` WHERE \\`type\\` = 'prompt' AND \\`prompt\\` IS NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n INSERT INTO \\`__new_session_input\\`(\n \\`id\\`, \\`session_id\\`, \\`type\\`, \\`data\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`\n )\n SELECT\n \\`id\\`, \\`session_id\\`, CASE WHEN \\`type\\` = 'prompt' THEN 'user' ELSE \\`type\\` END,\n CASE WHEN \\`type\\` = 'prompt' THEN \\`prompt\\` ELSE '{}' END,\n \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`\n FROM \\`session_input\\`\n WHERE \\`type\\` != 'prompt' OR \\`prompt\\` IS NOT NULL;\n `)\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_pending_compaction_idx\\` ON \\`session_input\\` (\\`session_id\\`) WHERE \\`type\\` = 'compaction' and \\`promoted_seq\\` is null;`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n yield* tx.run(`\n UPDATE \\`event\\`\n SET\n \\`type\\` = 'session.input.admitted.1',\n \\`data\\` = json_object(\n 'sessionID', json_extract(\\`data\\`, '$.sessionID'),\n 'inputID', json_extract(\\`data\\`, '$.inputID'),\n 'input', json_object(\n 'type', 'user',\n 'data', json_extract(\\`data\\`, '$.prompt'),\n 'delivery', json_extract(\\`data\\`, '$.delivery')\n )\n )\n WHERE \\`type\\` = 'session.prompt.admitted.1';\n `)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET \\`type\\` = 'session.input.promoted.1'\n WHERE \\`type\\` = 'session.prompt.promoted.1';\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,0RAMb,EACD,MAAO,EAAG,IAAI,gfAYb,EACD,MAAO,EAAG,IAAI,sfAUb,EACD,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IACR,2IACF,EACA,MAAO,EAAG,IACR,8JACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IAAI,ogBAcb,EACD,MAAO,EAAG,IAAI,wIAIb,EACF,EAEL",
"debugId": "2FBCF07611D20E6A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260612174303_project_dir_strategy.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260612174303_project_dir_strategy\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`project_directory\\` ADD \\`strategy\\` text;`)\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_project_directory\\` (\n \\`project_id\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`type\\` text,\n \\`strategy\\` text,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`project_directory_pk\\` PRIMARY KEY(\\`project_id\\`, \\`directory\\`),\n CONSTRAINT \\`fk_project_directory_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_project_directory\\`(\\`project_id\\`, \\`directory\\`, \\`type\\`, \\`time_created\\`) SELECT \\`project_id\\`, \\`directory\\`, \\`type\\`, \\`time_created\\` FROM \\`project_directory\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`project_directory\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_project_directory\\` RENAME TO \\`project_directory\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sDAA0D,EACxE,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,wdAUb,EACD,MAAO,EAAG,IACR,6KACF,EACA,MAAO,EAAG,IAAI,iCAAmC,EACjD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,yBAAyB,EACxC,EAEL",
"debugId": "84253FE019CC8CCC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "CD7F916C31A1902864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "2C35FF81A6ED3E0664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260622170816_reset_v2_session_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260622170816_reset_v2_session_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_context_epoch\\`;`)\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n yield* tx.run(`UPDATE \\`session\\` SET \\`workspace_id\\` = NULL WHERE \\`workspace_id\\` IS NOT NULL;`)\n yield* tx.run(`DELETE FROM \\`workspace\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,sCAAwC,EACtD,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAC/C,MAAO,EAAG,IAAI,8EAAoF,EAClG,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "58EA971EF3E34B4264756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "DFC31ACD12C9721664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/editor.ts", "../tui/src/editor-zed.ts"],
"sourcesContent": [
"import type { CliRenderer } from \"@opentui/core\"\nimport { existsSync, readdirSync, readFileSync, statSync } from \"node:fs\"\nimport { readFile, rm, writeFile } from \"node:fs/promises\"\nimport os from \"node:os\"\nimport path from \"node:path\"\nimport { spawn } from \"node:child_process\"\nimport type { Stream } from \"node:stream\"\nimport { resolveZedDbPath, resolveZedSelection } from \"./editor-zed\"\n\nexport { normalizePromptContent } from \"./prompt/content\"\n\ntype EditorStdio = \"inherit\" | \"pipe\" | \"ignore\" | number | Stream\n\nexport async function openEditor(input: { value: string; renderer: CliRenderer; cwd?: string; stdin?: EditorStdio }) {\n const editor = process.env.VISUAL || process.env.EDITOR\n if (!editor) return\n const file = path.join(os.tmpdir(), `${Date.now()}.md`)\n await writeFile(file, input.value)\n input.renderer.suspend()\n input.renderer.currentRenderBuffer.clear()\n try {\n await new Promise<void>((resolve, reject) => {\n const parts = editor.split(\" \")\n const child = spawn(parts[0]!, [...parts.slice(1), file], {\n cwd: input.cwd && existsSync(input.cwd) ? input.cwd : process.cwd(),\n stdio: [input.stdin ?? \"inherit\", \"inherit\", \"inherit\"],\n shell: process.platform === \"win32\",\n })\n child.on(\"error\", reject)\n child.on(\"exit\", (code, signal) => {\n if (code === 0) return resolve()\n reject(new Error(`Editor exited with ${signal ? `signal ${signal}` : `code ${code}`}`))\n })\n })\n return (await readFile(file, \"utf8\")) || undefined\n } finally {\n await rm(file, { force: true }).catch(() => {})\n input.renderer.currentRenderBuffer.clear()\n input.renderer.resume()\n input.renderer.requestRender()\n }\n}\n\nexport function discoverEditorConnection(directory: string) {\n const root = path.join(os.homedir(), \".claude\", \"ide\")\n const contains = (parent: string) => {\n const resolved = path.resolve(parent)\n const relative = path.relative(resolved, path.resolve(directory))\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative)) ? resolved.length : 0\n }\n try {\n return readdirSync(root)\n .filter((entry) => entry.endsWith(\".lock\"))\n .flatMap((entry) => {\n const file = path.join(root, entry)\n const port = Number.parseInt(path.basename(file, \".lock\"), 10)\n if (!Number.isInteger(port) || port <= 0 || port > 65535) return []\n try {\n const value = JSON.parse(readFileSync(file, \"utf8\")) as Record<string, unknown>\n if (value.transport !== undefined && value.transport !== \"ws\") return []\n const folders = Array.isArray(value.workspaceFolders)\n ? value.workspaceFolders.filter((item): item is string => typeof item === \"string\")\n : []\n const score = Math.max(0, ...folders.map(contains))\n if (!score) return []\n return [\n {\n url: `ws://127.0.0.1:${port}`,\n authToken: typeof value.authToken === \"string\" ? value.authToken : undefined,\n source: `lock:${port}`,\n score,\n mtime: statSync(file).mtimeMs,\n },\n ]\n } catch {\n return []\n }\n })\n .sort((left, right) => right.score - left.score || right.mtime - left.mtime)\n .map(({ url, authToken, source }) => ({ url, authToken, source }))[0]\n } catch {\n return undefined\n }\n}\n\nexport const editorIntegration = {\n connection: discoverEditorConnection,\n selection: (directory: string) => resolveZedSelection(resolveZedDbPath() ?? \"\", directory),\n}\n",
"import { Database } from \"bun:sqlite\"\nimport { statSync } from \"node:fs\"\nimport { readFile as readFileAsync } from \"node:fs/promises\"\nimport os from \"node:os\"\nimport path from \"node:path\"\nimport { Option, Schema } from \"effect\"\nimport type { EditorSelection } from \"./context/editor\"\n\nconst ZedEditorRowSchema = Schema.Struct({\n item_kind: Schema.String,\n editor_id: Schema.NullOr(Schema.Number),\n workspace_id: Schema.Number,\n workspace_paths: Schema.NullOr(Schema.String),\n timestamp: Schema.String,\n buffer_path: Schema.NullOr(Schema.String),\n})\n\nconst ZedSelectionRowSchema = Schema.Struct({\n selection_start: Schema.NullOr(Schema.Number),\n selection_end: Schema.NullOr(Schema.Number),\n})\n\nconst ZedEditorContentsSchema = Schema.Struct({\n contents: Schema.NullOr(Schema.String),\n})\n\nconst decodeZedEditorRow = Schema.decodeUnknownOption(ZedEditorRowSchema)\nconst decodeZedSelectionRow = Schema.decodeUnknownOption(ZedSelectionRowSchema)\nconst decodeZedEditorContents = Schema.decodeUnknownOption(ZedEditorContentsSchema)\n\nconst utf8 = new TextEncoder()\n\ntype ZedEditorRow = Schema.Schema.Type<typeof ZedEditorRowSchema>\ntype ZedActiveEditorRow = ZedEditorRow & { item_kind: \"Editor\"; editor_id: number }\n\nexport type ZedSelectionResult =\n | { type: \"selection\"; selection: EditorSelection }\n | { type: \"empty\" }\n | { type: \"unavailable\" }\n\nexport async function resolveZedSelection(dbPath: string, cwd = process.cwd()): Promise<ZedSelectionResult> {\n const active = queryZedActiveEditor(dbPath, cwd)\n if (active.type !== \"row\") return active\n\n const row = active.row\n if (!row.buffer_path) return { type: \"empty\" }\n\n const selections = queryZedEditorSelections(dbPath, row)\n if (selections.type !== \"selections\") return selections\n const byteRanges = selections.selections\n .flatMap((selection) => {\n if (selection.selection_start == null || selection.selection_end == null) return []\n return [\n {\n start: Math.min(selection.selection_start, selection.selection_end),\n end: Math.max(selection.selection_start, selection.selection_end),\n },\n ]\n })\n .sort((left, right) => left.start - right.start || left.end - right.end)\n if (byteRanges.length === 0) return { type: \"unavailable\" }\n\n const contents = queryZedEditorContents(dbPath, row)\n const text =\n contents.type === \"contents\" && contents.contents != null\n ? contents.contents\n : await readFileAsync(row.buffer_path, \"utf8\").catch(() => undefined)\n if (text == null) return { type: \"unavailable\" }\n\n const ranges = byteRanges.map((range) => {\n const startOffset = utf8ByteOffsetToStringIndex(text, range.start)\n const endOffset = utf8ByteOffsetToStringIndex(text, range.end)\n return {\n text: text.slice(startOffset, endOffset),\n selection: offsetsToSelection(text, startOffset, endOffset),\n }\n })\n\n return {\n type: \"selection\",\n selection: {\n filePath: row.buffer_path,\n source: \"zed\",\n ranges,\n },\n }\n}\n\nfunction queryZedActiveEditor(dbPath: string, cwd: string) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const raw = db\n .query(\n `select\n i.kind as item_kind,\n e.item_id as editor_id,\n i.workspace_id as workspace_id,\n w.paths as workspace_paths,\n w.timestamp as timestamp,\n e.buffer_path as buffer_path\n from items i\n join panes p on p.pane_id = i.pane_id and p.workspace_id = i.workspace_id\n join workspaces w on w.workspace_id = i.workspace_id\n left join editors e on e.item_id = i.item_id and e.workspace_id = i.workspace_id\n where i.active = 1 and p.active = 1\n order by w.timestamp desc`,\n )\n .all()\n\n const rows = raw.flatMap((row) => {\n const parsed = decodeZedEditorRow(row)\n return Option.isSome(parsed) ? [parsed.value] : []\n })\n\n if (raw.length > 0 && rows.length === 0) return { type: \"unavailable\" as const }\n\n const row = rows\n .map((row) => ({ row, score: scoreZedWorkspace(row.workspace_paths, cwd) }))\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score || right.row.timestamp.localeCompare(left.row.timestamp))[0]?.row\n if (!row) return { type: \"empty\" as const }\n if (row.item_kind !== \"Editor\") return { type: \"unavailable\" as const }\n if (!isZedActiveEditorRow(row)) return { type: \"empty\" as const }\n return { type: \"row\" as const, row }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction queryZedEditorSelections(dbPath: string, row: ZedActiveEditorRow) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const raw = db\n .query(\n `select\n start as selection_start,\n end as selection_end\n from editor_selections\n where editor_id = $editorID and workspace_id = $workspaceID`,\n )\n .all({ $editorID: row.editor_id, $workspaceID: row.workspace_id })\n\n const selections = raw.flatMap((selection) => {\n const parsed = decodeZedSelectionRow(selection)\n return Option.isSome(parsed) ? [parsed.value] : []\n })\n\n if (raw.length > 0 && selections.length === 0) return { type: \"unavailable\" as const }\n return { type: \"selections\" as const, selections }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction queryZedEditorContents(dbPath: string, row: ZedActiveEditorRow) {\n let db: Database | undefined\n try {\n db = new Database(dbPath, { readonly: true })\n const parsed = decodeZedEditorContents(\n db\n .query(\n `select contents\n from editors\n where item_id = $editorID and workspace_id = $workspaceID`,\n )\n .get({ $editorID: row.editor_id, $workspaceID: row.workspace_id }),\n )\n if (Option.isNone(parsed)) return { type: \"unavailable\" as const }\n return { type: \"contents\" as const, contents: parsed.value.contents }\n } catch {\n return { type: \"unavailable\" as const }\n } finally {\n db?.close()\n }\n}\n\nfunction isZedActiveEditorRow(row: ZedEditorRow): row is ZedActiveEditorRow {\n return row.item_kind === \"Editor\" && row.editor_id != null\n}\n\nexport function resolveZedDbPath() {\n const candidates = [\n process.env.OPENCODE_ZED_DB,\n path.join(os.homedir(), \"Library\", \"Application Support\", \"Zed\", \"db\", \"0-stable\", \"db.sqlite\"),\n path.join(os.homedir(), \".local\", \"share\", \"zed\", \"db\", \"0-stable\", \"db.sqlite\"),\n ].filter((item): item is string => Boolean(item))\n\n return candidates.find((item) => isFile(item))\n}\n\nexport function isZedTerminal() {\n return process.env.ZED_TERM === \"true\" || process.env.TERM_PROGRAM?.toLowerCase() === \"zed\"\n}\n\nfunction isFile(item: string) {\n try {\n return statSync(item).isFile()\n } catch {\n return false\n }\n}\n\nfunction scoreZedWorkspace(workspacePaths: string | null, cwd: string) {\n return zedWorkspacePaths(workspacePaths).reduce((score, item) => {\n if (pathContains(item, cwd)) return Math.max(score, path.resolve(item).length)\n return score\n }, 0)\n}\n\nfunction zedWorkspacePaths(value: string | null) {\n if (!value) return []\n const parsed = parseJson(value)\n if (Array.isArray(parsed)) return parsed.filter((item): item is string => typeof item === \"string\")\n return value.split(/\\r?\\n/).filter(Boolean)\n}\n\nexport function offsetToPosition(text: string, offset: number) {\n const stringOffset = utf8ByteOffsetToStringIndex(text, offset)\n return offsetsToSelection(text, stringOffset, stringOffset).start\n}\n\nfunction utf8ByteOffsetToStringIndex(text: string, byteOffset: number) {\n if (byteOffset <= 0) return 0\n\n let bytes = 0\n for (let index = 0; index < text.length; ) {\n const codePoint = text.codePointAt(index)\n if (codePoint === undefined) return text.length\n\n const nextIndex = index + (codePoint > 0xffff ? 2 : 1)\n bytes += utf8.encode(text.slice(index, nextIndex)).length\n if (bytes >= byteOffset) return nextIndex\n index = nextIndex\n }\n\n return text.length\n}\n\nfunction offsetsToSelection(text: string, startOffset: number, endOffset: number) {\n const start = Math.max(0, Math.min(startOffset, text.length))\n const end = Math.max(0, Math.min(endOffset, text.length))\n let line = 1\n let lineStart = 0\n let startPosition = position(line, lineStart, start)\n let endPosition = position(line, lineStart, end)\n\n for (let index = 0; index <= end; index++) {\n if (index === start) startPosition = position(line, lineStart, index)\n if (index === end) {\n endPosition = position(line, lineStart, index)\n break\n }\n if (text[index] === \"\\n\") {\n line += 1\n lineStart = index + 1\n }\n }\n\n return { start: startPosition, end: endPosition }\n}\n\nfunction position(line: number, lineStart: number, offset: number) {\n return {\n line,\n character: offset - lineStart + 1,\n }\n}\n\nfunction pathContains(parent: string, child: string) {\n const relative = path.relative(path.resolve(parent), path.resolve(child))\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative))\n}\n\nfunction parseJson(value: string) {\n try {\n return JSON.parse(value) as unknown\n } catch {\n return\n }\n}\n"
],
"mappings": "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",
"debugId": "ECB5EC3DBB0822AD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703200000_reset_v2_session_events.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703200000_reset_v2_session_events\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAChD,EAEL",
"debugId": "EAE5DEBADF095ED264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/api.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect, Option } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { ServerConnection } from \"../../services/server-connection\"\n\nconst methods = new Set([\"delete\", \"get\", \"head\", \"options\", \"patch\", \"post\", \"put\"])\n\ntype Operation = {\n operationId?: string\n}\n\ntype OpenApi = {\n paths?: Record<string, Record<string, Operation>>\n}\n\nexport default Runtime.handler(\n Commands.commands.api,\n Effect.fn(\"cli.api\")(function* (input) {\n const server = yield* ServerConnection.resolve({\n server: Option.getOrUndefined(input.server),\n standalone: input.standalone,\n mismatch: \"ignore\",\n })\n const endpoint = server.endpoint\n const params = Option.getOrElse(input.param, () => ({}))\n const request = yield* resolveRequest(endpoint, input.request, params)\n const headers = new Headers(Service.headers(endpoint))\n for (const header of input.header) {\n const index = header.indexOf(\":\")\n if (index < 1) return yield* Effect.fail(new Error(`Invalid header, expected name:value: ${header}`))\n headers.set(header.slice(0, index).trim(), header.slice(index + 1).trim())\n }\n const body = Option.getOrUndefined(input.data)\n if (body !== undefined && !headers.has(\"content-type\")) headers.set(\"content-type\", \"application/json\")\n\n const response = yield* Effect.tryPromise(() =>\n fetch(new URL(request.path, endpoint.url), {\n method: request.method,\n headers,\n body,\n }),\n )\n const output = yield* Effect.promise(() => response.text())\n if (output) process.stdout.write(output + (output.endsWith(EOL) ? \"\" : EOL))\n }),\n)\n\nexport function resolveOperation(spec: OpenApi, operationID: string, params: Record<string, string>) {\n for (const [path, operations] of Object.entries(spec.paths ?? {})) {\n for (const [method, operation] of Object.entries(operations)) {\n if (!methods.has(method) || operation.operationId !== operationID) continue\n return { method: method.toUpperCase(), path: interpolate(path, params) }\n }\n }\n throw new Error(`Operation not found: ${operationID}`)\n}\n\nexport function rawRequest(input: readonly string[]) {\n if (input.length !== 2 || !methods.has(input[0].toLowerCase()) || !input[1].startsWith(\"/\")) return\n return { method: input[0].toUpperCase(), path: input[1] }\n}\n\nfunction resolveRequest(endpoint: Service.Endpoint, input: readonly string[], params: Record<string, string>) {\n const raw = rawRequest(input)\n if (raw) return Effect.succeed(raw)\n if (input.length !== 1) return Effect.fail(new Error(\"Expected an operation name or an HTTP method and path\"))\n return Effect.tryPromise(async () => {\n const response = await fetch(new URL(\"/openapi.json\", endpoint.url), { headers: Service.headers(endpoint) })\n if (!response.ok) throw new Error(`Failed to load OpenAPI document: HTTP ${response.status}`)\n return resolveOperation((await response.json()) as OpenApi, input[0], params)\n })\n}\n\nfunction interpolate(path: string, params: Record<string, string>) {\n const used = new Set<string>()\n const pathname = path.replaceAll(/\\{([^}]+)\\}/g, (_, name: string) => {\n const value = params[name]\n if (value === undefined) throw new Error(`Missing path parameter: ${name}`)\n used.add(name)\n return encodeURIComponent(value)\n })\n const query = new URLSearchParams(Object.entries(params).filter(([name]) => !used.has(name))).toString()\n return query ? `${pathname}?${query}` : pathname\n}\n"
],
"mappings": "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",
"debugId": "91DCC524EFD62BAD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/createCredentialChain.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/resolveLogins.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentityPool.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/IndexedDbStorage.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/InMemoryStorage.js", "../../node_modules/.bun/@aws-sdk+credential-provider-cognito-identity@3.972.38/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/localStorage.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentity.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentityPool.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromContainerMetadata.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromEnv.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromIni.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromInstanceMetadata.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromLoginCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js", "../../node_modules/.bun/@aws-sdk+credential-provider-node@3.972.47/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromNodeProviderChain.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromProcess.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromSSO.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.base.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromTokenFile.js", "../../node_modules/.bun/@aws-sdk+credential-providers@3.1057.0/node_modules/@aws-sdk/credential-providers/dist-es/fromWebToken.js"],
"sourcesContent": [
"import { ProviderError } from \"@smithy/core/config\";\nexport const createCredentialChain = (...credentialProviders) => {\n let expireAfter = -1;\n const baseFunction = async (awsIdentityProperties) => {\n const credentials = await propertyProviderChain(...credentialProviders)(awsIdentityProperties);\n if (!credentials.expiration && expireAfter !== -1) {\n credentials.expiration = new Date(Date.now() + expireAfter);\n }\n return credentials;\n };\n const withOptions = Object.assign(baseFunction, {\n expireAfter(milliseconds) {\n if (milliseconds < 5 * 60_000) {\n throw new Error(\"@aws-sdk/credential-providers - createCredentialChain(...).expireAfter(ms) may not be called with a duration lower than five minutes.\");\n }\n expireAfter = milliseconds;\n return withOptions;\n },\n });\n return withOptions;\n};\nexport const propertyProviderChain = (...providers) => async (awsIdentityProperties) => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\", { tryNextLink: false });\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { resolveLogins } from \"./resolveLogins\";\nexport function fromCognitoIdentity(parameters) {\n return async (awsIdentityProperties) => {\n parameters.logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const { GetCredentialsForIdentityCommand, CognitoIdentityClient } = await import(\"./loadCognitoIdentity.js\");\n const fromConfigs = (property) => parameters.clientConfig?.[property] ??\n parameters.parentClientConfig?.[property] ??\n awsIdentityProperties?.callerClientConfig?.[property];\n const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(parameters.logger), Expiration, SecretKey = throwOnMissingSecretKey(parameters.logger), SessionToken, } = throwOnMissingCredentials(parameters.logger), } = await (parameters.client ??\n new CognitoIdentityClient(Object.assign({}, parameters.clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\"),\n userAgentAppId: fromConfigs(\"userAgentAppId\"),\n }))).send(new GetCredentialsForIdentityCommand({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await resolveLogins(parameters.logins) : undefined,\n }));\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n };\n };\n}\nfunction throwOnMissingAccessKeyId(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no access key ID\", { logger });\n}\nfunction throwOnMissingCredentials(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no credentials\", { logger });\n}\nfunction throwOnMissingSecretKey(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no secret key\", { logger });\n}\n",
"export function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce((arr, name) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then((token) => [name, token]));\n }\n return arr;\n }, [])).then((resolvedPairs) => resolvedPairs.reduce((logins, [key, value]) => {\n logins[key] = value;\n return logins;\n }, {}));\n}\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\nexport function fromCognitoIdentityPool({ accountId, cache = localStorage(), client, clientConfig, customRoleArn, identityPoolId, logins, userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined, logger, parentClientConfig, }) {\n logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const cacheKey = userIdentifier\n ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}`\n : undefined;\n let provider = async (awsIdentityProperties) => {\n const { GetIdCommand, CognitoIdentityClient } = await import(\"./loadCognitoIdentity.js\");\n const fromConfigs = (property) => clientConfig?.[property] ??\n parentClientConfig?.[property] ??\n awsIdentityProperties?.callerClientConfig?.[property];\n const _client = client ??\n new CognitoIdentityClient(Object.assign({}, clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\"),\n userAgentAppId: fromConfigs(\"userAgentAppId\"),\n }));\n let identityId = (cacheKey && (await cache.getItem(cacheKey)));\n if (!identityId) {\n const { IdentityId = throwOnMissingId(logger) } = await _client.send(new GetIdCommand({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await resolveLogins(logins) : undefined,\n }));\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => { });\n }\n }\n provider = fromCognitoIdentity({\n client: _client,\n customRoleArn,\n logins,\n identityId,\n });\n return provider(awsIdentityProperties);\n };\n return (awsIdentityProperties) => provider(awsIdentityProperties).catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => { });\n }\n throw err;\n });\n}\nfunction throwOnMissingId(logger) {\n throw new CredentialsProviderError(\"Response from Amazon Cognito contained no identity ID\", { logger });\n}\n",
"const STORE_NAME = \"IdentityIds\";\nexport class IndexedDbStorage {\n dbName;\n constructor(dbName = \"aws:cognito-identity-ids\") {\n this.dbName = dbName;\n }\n getItem(key) {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n removeItem(key) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n setItem(id, value) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n getDb() {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n withObjectStore(mode, action) {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n}\n",
"export class InMemoryStorage {\n store;\n constructor(store = {}) {\n this.store = store;\n }\n getItem(key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n }\n removeItem(key) {\n delete this.store[key];\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n}\n",
"import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nconst inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n",
"import { fromCognitoIdentity as _fromCognitoIdentity } from \"@aws-sdk/credential-provider-cognito-identity\";\nexport const fromCognitoIdentity = (options) => _fromCognitoIdentity({\n ...options,\n});\n",
"import { fromCognitoIdentityPool as _fromCognitoIdentityPool } from \"@aws-sdk/credential-provider-cognito-identity\";\nexport const fromCognitoIdentityPool = (options) => _fromCognitoIdentityPool({\n ...options,\n});\n",
"import { fromContainerMetadata as _fromContainerMetadata } from \"@smithy/credential-provider-imds\";\nexport const fromContainerMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromContainerMetadata\");\n return _fromContainerMetadata(init);\n};\n",
"import { fromEnv as _fromEnv } from \"@aws-sdk/credential-provider-env\";\nexport const fromEnv = (init) => _fromEnv(init);\n",
"import { fromIni as _fromIni } from \"@aws-sdk/credential-provider-ini\";\nexport const fromIni = (init = {}) => _fromIni({\n ...init,\n});\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromInstanceMetadata as _fromInstanceMetadata } from \"@smithy/credential-provider-imds\";\nexport const fromInstanceMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromInstanceMetadata\");\n return async () => _fromInstanceMetadata(init)().then((creds) => setCredentialFeature(creds, \"CREDENTIALS_IMDS\", \"0\"));\n};\n",
"import { fromLoginCredentials as _fromLoginCredentials, } from \"@aws-sdk/credential-provider-login\";\nexport const fromLoginCredentials = (init) => _fromLoginCredentials({\n ...init,\n});\n",
"import { ENV_KEY, ENV_SECRET, fromEnv } from \"@aws-sdk/credential-provider-env\";\nimport { CredentialsProviderError, ENV_PROFILE } from \"@smithy/core/config\";\nimport { remoteProvider } from \"./remoteProvider\";\nimport { memoizeChain } from \"./runtime/memoize-chain\";\nlet multipleCredentialSourceWarningEmitted = false;\nexport const defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import(\"@aws-sdk/credential-provider-ini\");\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import(\"@aws-sdk/credential-provider-process\");\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import(\"@aws-sdk/credential-provider-web-identity\");\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nexport const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nexport const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n",
"import { chain, CredentialsProviderError } from \"@smithy/core/config\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n return chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n",
"export function memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nexport const internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n",
"import { defaultProvider } from \"@aws-sdk/credential-provider-node\";\nexport const fromNodeProviderChain = (init = {}) => defaultProvider({\n ...init,\n});\n",
"import { fromProcess as _fromProcess } from \"@aws-sdk/credential-provider-process\";\nexport const fromProcess = (init) => _fromProcess(init);\n",
"import { fromSSO as _fromSSO } from \"@aws-sdk/credential-provider-sso\";\nexport const fromSSO = (init = {}) => {\n return _fromSSO({ ...init });\n};\n",
"import { loadConfig, NODE_REGION_CONFIG_FILE_OPTIONS } from \"@smithy/core/config\";\nimport { fromNodeProviderChain } from \"./fromNodeProviderChain\";\nimport { fromTemporaryCredentials as fromTemporaryCredentialsBase } from \"./fromTemporaryCredentials.base\";\nexport const fromTemporaryCredentials = (options) => {\n return fromTemporaryCredentialsBase(options, fromNodeProviderChain, async ({ profile = process.env.AWS_PROFILE }) => loadConfig({\n environmentVariableSelector: (env) => env.AWS_REGION,\n configFileSelector: (profileData) => {\n return profileData.region;\n },\n default: () => undefined,\n }, { ...NODE_REGION_CONFIG_FILE_OPTIONS, profile })());\n};\n",
"import { normalizeProvider } from \"@smithy/core\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nconst ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nexport const fromTemporaryCredentials = (options, credentialDefaultProvider, regionProvider) => {\n let stsClient;\n return async (awsIdentityProperties = {}) => {\n const { callerClientConfig } = awsIdentityProperties;\n const profile = options.clientConfig?.profile ?? callerClientConfig?.profile;\n const logger = options.logger ?? callerClientConfig?.logger;\n logger?.debug(\"@aws-sdk/credential-providers - fromTemporaryCredentials (STS)\");\n const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? \"aws-sdk-js-\" + Date.now() };\n if (params?.SerialNumber) {\n if (!options.mfaCodeProvider) {\n throw new CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, {\n tryNextLink: false,\n logger,\n });\n }\n params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber);\n }\n const { AssumeRoleCommand, STSClient } = await import(\"./loadSts.js\");\n if (!stsClient) {\n const defaultCredentialsOrError = typeof credentialDefaultProvider === \"function\" ? credentialDefaultProvider() : undefined;\n const credentialSources = [\n options.masterCredentials,\n options.clientConfig?.credentials,\n void callerClientConfig?.credentials,\n callerClientConfig?.credentialDefaultProvider?.(),\n defaultCredentialsOrError,\n ];\n let credentialSource = \"STS client default credentials\";\n if (credentialSources[0]) {\n credentialSource = \"options.masterCredentials\";\n }\n else if (credentialSources[1]) {\n credentialSource = \"options.clientConfig.credentials\";\n }\n else if (credentialSources[2]) {\n credentialSource = \"caller client's credentials\";\n throw new Error(\"fromTemporaryCredentials recursion in callerClientConfig.credentials\");\n }\n else if (credentialSources[3]) {\n credentialSource = \"caller client's credentialDefaultProvider\";\n }\n else if (credentialSources[4]) {\n credentialSource = \"AWS SDK default credentials\";\n }\n const regionSources = [\n options.clientConfig?.region,\n callerClientConfig?.region,\n await regionProvider?.({\n profile,\n }),\n ASSUME_ROLE_DEFAULT_REGION,\n ];\n let regionSource = \"default partition's default region\";\n if (regionSources[0]) {\n regionSource = \"options.clientConfig.region\";\n }\n else if (regionSources[1]) {\n regionSource = \"caller client's region\";\n }\n else if (regionSources[2]) {\n regionSource = \"file or env region\";\n }\n const requestHandlerSources = [\n filterRequestHandler(options.clientConfig?.requestHandler),\n filterRequestHandler(callerClientConfig?.requestHandler),\n ];\n let requestHandlerSource = \"STS default requestHandler\";\n if (requestHandlerSources[0]) {\n requestHandlerSource = \"options.clientConfig.requestHandler\";\n }\n else if (requestHandlerSources[1]) {\n requestHandlerSource = \"caller client's requestHandler\";\n }\n logger?.debug?.(`@aws-sdk/credential-providers - fromTemporaryCredentials STS client init with ` +\n `${regionSource}=${await normalizeProvider(coalesce(regionSources))()}, ${credentialSource}, ${requestHandlerSource}.`);\n stsClient = new STSClient({\n userAgentAppId: callerClientConfig?.userAgentAppId,\n ...options.clientConfig,\n credentials: coalesce(credentialSources),\n logger,\n profile,\n region: coalesce(regionSources),\n requestHandler: coalesce(requestHandlerSources),\n });\n }\n if (options.clientPlugins) {\n for (const plugin of options.clientPlugins) {\n stsClient.middlewareStack.use(plugin);\n }\n }\n const { Credentials } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, {\n logger,\n });\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n credentialScope: Credentials.CredentialScope,\n };\n };\n};\nconst filterRequestHandler = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\" ? undefined : requestHandler;\n};\nconst coalesce = (args) => {\n for (const item of args) {\n if (item !== undefined) {\n return item;\n }\n }\n};\n",
"import { fromTokenFile as _fromTokenFile } from \"@aws-sdk/credential-provider-web-identity\";\nexport const fromTokenFile = (init = {}) => _fromTokenFile({\n ...init,\n});\n",
"import { fromWebToken as _fromWebToken } from \"@aws-sdk/credential-provider-web-identity\";\nexport const fromWebToken = (init) => _fromWebToken({\n ...init,\n});\n"
],
"mappings": "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",
"debugId": "2F93BE0272FADE9764756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260707010146_durable_session_inbox.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260707010146_durable_session_inbox\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_session_input\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`prompt\\` text,\n \\`delivery\\` text,\n \\`admitted_seq\\` integer NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_session_input\\`(\\`id\\`, \\`session_id\\`, \\`type\\`, \\`prompt\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\`) SELECT \\`id\\`, \\`session_id\\`, 'prompt', \\`prompt\\`, \\`delivery\\`, \\`admitted_seq\\`, \\`promoted_seq\\`, \\`time_created\\` FROM \\`session_input\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`session_input\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_session_input\\` RENAME TO \\`session_input\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_input_session_pending_delivery_seq_idx\\`;`)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_type_delivery_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`type\\`,\\`delivery\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_pending_compaction_idx\\` ON \\`session_input\\` (\\`session_id\\`) WHERE \"session_input\".\"type\" = 'compaction' and \"session_input\".\"promoted_seq\" is null;`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_admitted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`admitted_seq\\`);`,\n )\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`session_input_session_promoted_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,uCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,yeAYb,EACD,MAAO,EAAG,IACR,qQACF,EACA,MAAO,EAAG,IAAI,6BAA+B,EAC7C,MAAO,EAAG,IAAI,8DAAkE,EAChF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IAAI,wEAA0E,EACxF,MAAO,EAAG,IACR,uJACF,EACA,MAAO,EAAG,IACR,gMACF,EACA,MAAO,EAAG,IACR,gHACF,EACA,MAAO,EAAG,IACR,gHACF,EACD,EAEL",
"debugId": "17B0474F15D6D01C64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../simulation/src/backend/network.ts", "../simulation/src/backend/openai.ts", "../simulation/src/backend/simulated-provider.ts", "../simulation/src/backend/index.ts"],
"sourcesContent": [
"import { Clock, Effect, Layer, Ref } from \"effect\"\nimport { HttpClient, HttpClientResponse, type HttpMethod } from \"effect/unstable/http\"\nimport { HttpClientError, TransportError } from \"effect/unstable/http/HttpClientError\"\nimport type { HttpClientRequest } from \"effect/unstable/http\"\nimport { SimulationProtocol } from \"../protocol\"\n\n/**\n * Simulated network.\n *\n * Replaces the `HttpClient.HttpClient` platform node in simulation mode. All\n * outbound HTTP resolves against an in-memory route table; unknown\n * destinations fail loudly with a transport error so no simulation run can\n * silently reach the real network. The scripted LLM is one registered route,\n * not a separate mechanism.\n *\n * Each acquired run owns its routes and request log.\n */\n\nexport interface Route {\n /** Return a response effect to claim the request, undefined to pass. */\n readonly match: (\n request: HttpClientRequest.HttpClientRequest,\n url: URL,\n ) => Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError> | undefined\n}\n\nexport type LogEntry = SimulationProtocol.Backend.NetworkLogEntry\n\nconst LOG_LIMIT = 1000\n\n/** Static JSON route: exact method + origin/path match answered with a fixed body. */\nexport function json(method: HttpMethod.HttpMethod, url: string, body: unknown): Route {\n return {\n match: (request, requestUrl) => {\n if (request.method !== method) return undefined\n if (requestUrl.origin + requestUrl.pathname !== url) return undefined\n return Effect.sync(() =>\n HttpClientResponse.fromWeb(\n request,\n new Response(JSON.stringify(body), { status: 200, headers: { \"content-type\": \"application/json\" } }),\n ),\n )\n },\n }\n}\n\nexport interface Run {\n readonly client: HttpClient.HttpClient\n readonly log: () => Effect.Effect<readonly LogEntry[]>\n}\n\nexport const make = Effect.fn(\"SimulationNetwork.make\")(function* (routes: readonly Route[] = []) {\n const log = yield* Ref.make<readonly LogEntry[]>([])\n const client = HttpClient.make((request, url) =>\n Effect.gen(function* () {\n let matched: Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError> | undefined\n for (const route of routes) {\n matched = route.match(request, url)\n if (matched) break\n }\n const entry = {\n time: yield* Clock.currentTimeMillis,\n method: request.method,\n url: url.toString(),\n matched: matched !== undefined,\n }\n yield* Ref.update(log, (entries) => [...entries, entry].slice(-LOG_LIMIT))\n if (matched) return yield* matched\n return yield* Effect.fail(\n new HttpClientError({\n reason: new TransportError({\n request,\n description: `Simulation denied unregistered network destination: ${request.method} ${url}`,\n }),\n }),\n )\n }),\n )\n return { client, log: () => Ref.get(log) } satisfies Run\n})\n\nexport const layer = (routes: readonly Route[] = []) =>\n Layer.effect(HttpClient.HttpClient, make(routes).pipe(Effect.map((run) => run.client)))\n\nexport * as SimulationNetwork from \"./network\"\n",
"import { Effect, Schema, Stream } from \"effect\"\nimport { HttpClientResponse } from \"effect/unstable/http\"\nimport { HttpClientError, TransportError } from \"effect/unstable/http/HttpClientError\"\nimport { OpenAIChatEvent, DEFAULT_BASE_URL, PATH } from \"@opencode-ai/llm/protocols/openai-chat\"\nimport { SimulationNetwork } from \"./network\"\nimport { SimulatedProvider } from \"./simulated-provider\"\n\n/**\n * Driver-answered OpenAI endpoint for the simulated network.\n *\n * Claims `POST {DEFAULT_BASE_URL}{PATH}` (the real openai-chat route\n * endpoint), invokes the simulated provider, and streams the driver's events back as\n * an OpenAI Chat SSE response terminated by `[DONE]`. Everything downstream\n * of the response bytes is the real pipeline: SSE framing, the OpenAIChat\n * event schema, the protocol state machine, and Lifecycle grammar.\n */\n\nconst encodeChunk = Schema.encodeUnknownSync(OpenAIChatEvent)\n\nconst encoder = new TextEncoder()\nconst decodeBody = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Json))\n\n// The simulated model id is echoed back only in non-schema fields; the\n// protocol event schema ignores unknown fields, so id/object/model are\n// decorative wire realism.\ntype ProviderItem = Exclude<SimulatedProvider.ProviderResponseEvent, { readonly type: \"finish\" }>\ntype FinishReason = Extract<SimulatedProvider.ProviderResponseEvent, { readonly type: \"finish\" }>[\"reason\"]\n\nfunction chunkOf(item: ProviderItem): OpenAIChatEvent | unknown {\n if (item.type === \"textDelta\") return { choices: [{ delta: { content: item.text } }] }\n if (item.type === \"reasoningDelta\") return { choices: [{ delta: { reasoning_content: item.text } }] }\n if (item.type === \"toolCall\")\n return {\n choices: [\n {\n delta: {\n tool_calls: [\n {\n index: item.index,\n id: item.id,\n function: { name: item.name, arguments: JSON.stringify(item.input) },\n },\n ],\n },\n },\n ],\n }\n return item.chunk\n}\n\nconst finishReasonWire: Record<FinishReason, string> = {\n stop: \"stop\",\n \"tool-calls\": \"tool_calls\",\n length: \"length\",\n \"content-filter\": \"content_filter\",\n}\n\nfunction frame(payload: unknown): Uint8Array {\n return encoder.encode(`data: ${JSON.stringify(payload)}\\n\\n`)\n}\n\nfunction sseBody(\n events: Stream.Stream<SimulatedProvider.ProviderResponseEvent, SimulatedProvider.ProviderDisconnectedError>,\n): Stream.Stream<Uint8Array, SimulatedProvider.ProviderDisconnectedError> {\n return events.pipe(\n Stream.map((event) => {\n if (event.type === \"finish\")\n return frame(encodeChunk({ choices: [{ delta: {}, finish_reason: finishReasonWire[event.reason] }] }))\n if (event.type === \"raw\") return frame(event.chunk)\n return frame(encodeChunk(chunkOf(event)))\n }),\n Stream.concat(Stream.make(encoder.encode(\"data: [DONE]\\n\\n\"))),\n )\n}\n\nexport const route = (provider: SimulatedProvider.Interface): SimulationNetwork.Route => ({\n match: (request, url) => {\n if (request.method !== \"POST\") return undefined\n if (url.origin + url.pathname !== DEFAULT_BASE_URL + PATH) return undefined\n return Effect.gen(function* () {\n const body =\n request.body._tag === \"Uint8Array\"\n ? yield* decodeBody(new TextDecoder().decode(request.body.body)).pipe(\n Effect.mapError(\n (cause) =>\n new HttpClientError({\n reason: new TransportError({\n request,\n cause,\n description: \"Simulation received an invalid OpenAI request body\",\n }),\n }),\n ),\n )\n : {}\n return HttpClientResponse.fromWeb(\n request,\n new Response(Stream.toReadableStream(sseBody(provider.stream({ url: url.toString(), body }))), {\n status: 200,\n headers: { \"content-type\": \"text/event-stream\" },\n }),\n )\n })\n },\n})\n\nexport * as SimulationOpenAI from \"./openai\"\n",
"import { Cause, Context, Effect, Fiber, FiberSet, Layer, PubSub, Queue, Ref, Schema, Semaphore, Stream } from \"effect\"\nimport { SimulationControlServer } from \"../control-server\"\nimport { SimulationProtocol } from \"../protocol\"\n\nexport interface ProviderRequest {\n readonly url: string\n readonly body: unknown\n}\n\nexport type ProviderResponseEvent =\n | SimulationProtocol.Backend.Item\n | { readonly type: \"finish\"; readonly reason: SimulationProtocol.Backend.FinishReason }\n\nexport class ProviderDisconnectedError extends Schema.TaggedErrorClass<ProviderDisconnectedError>()(\n \"SimulatedProvider.ProviderDisconnectedError\",\n { message: Schema.String },\n) {}\n\nexport interface Interface {\n readonly stream: (request: ProviderRequest) => Stream.Stream<ProviderResponseEvent, ProviderDisconnectedError>\n}\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/simulation/SimulatedProvider\") {}\n\ninterface ProviderInvocation extends ProviderRequest {\n readonly id: string\n}\n\ninterface PendingInvocation extends ProviderInvocation {\n readonly responses: Queue.Queue<ProviderResponseEvent, ProviderDisconnectedError | Cause.Done>\n}\n\ninterface State {\n readonly counter: number\n readonly pending: ReadonlyMap<string, PendingInvocation>\n}\n\ninterface Driver {\n readonly requests: Stream.Stream<ProviderInvocation>\n readonly push: (\n id: string,\n items: readonly SimulationProtocol.Backend.Item[],\n ) => Effect.Effect<void, InvocationNotFoundError>\n readonly finish: (\n id: string,\n reason: SimulationProtocol.Backend.FinishReason,\n ) => Effect.Effect<void, InvocationNotFoundError>\n readonly disconnect: (id: string) => Effect.Effect<void, InvocationNotFoundError>\n readonly pending: () => Effect.Effect<readonly ProviderInvocation[]>\n}\n\nclass InvocationNotFoundError extends Schema.TaggedErrorClass<InvocationNotFoundError>()(\n \"SimulatedProvider.InvocationNotFoundError\",\n { id: Schema.String, message: Schema.String },\n) {}\n\nclass ControllerDisconnectedError extends Schema.TaggedErrorClass<ControllerDisconnectedError>()(\n \"SimulatedProvider.ControllerDisconnectedError\",\n { message: Schema.String },\n) {}\n\ntype ControlSocket = SimulationControlServer.Socket\n\nexport const layerDrive = (options: { readonly endpoint: string }) =>\n Layer.effect(\n Service,\n Effect.gen(function* () {\n const state = yield* Ref.make<State>({ counter: 0, pending: new Map() })\n const opened = yield* PubSub.unbounded<ProviderInvocation>()\n const lock = yield* Semaphore.make(1)\n\n const close = (invocation: PendingInvocation) =>\n Effect.gen(function* () {\n yield* Queue.shutdown(invocation.responses)\n yield* lock.withPermit(\n Ref.update(state, (current) =>\n current.pending.get(invocation.id) === invocation ? remove(current, invocation.id) : current,\n ),\n )\n })\n\n yield* Effect.addFinalizer(() =>\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n yield* Effect.forEach(current.pending.values(), (invocation) => Queue.shutdown(invocation.responses), {\n discard: true,\n })\n yield* PubSub.shutdown(opened)\n }),\n )\n\n const open = (request: ProviderRequest) =>\n lock.withPermit(\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n const id = `inv_${current.counter + 1}`\n const responses = yield* Queue.bounded<ProviderResponseEvent, ProviderDisconnectedError | Cause.Done>(256)\n const invocation: PendingInvocation = { id, ...request, responses }\n yield* Ref.set(state, {\n counter: current.counter + 1,\n pending: new Map(current.pending).set(id, invocation),\n })\n yield* PubSub.publish(opened, { id, ...request })\n return invocation\n }),\n )\n\n const requireInvocation = (id: string) =>\n Effect.gen(function* () {\n const current = yield* Ref.get(state)\n const invocation = current.pending.get(id)\n if (invocation) return invocation\n return yield* Effect.fail(\n new InvocationNotFoundError({\n id,\n message: `Simulated provider invocation not found or already finished: ${id}`,\n }),\n )\n })\n\n const remove = (current: State, id: string) => {\n const pending = new Map(current.pending)\n pending.delete(id)\n return { ...current, pending }\n }\n\n const driver: Driver = {\n requests: Stream.unwrap(\n lock.withPermit(\n Effect.gen(function* () {\n const subscription = yield* PubSub.subscribe(opened)\n const current = yield* Ref.get(state)\n const pending = Array.from(current.pending.values(), ({ id, url, body }) => ({ id, url, body }))\n return Stream.concat(Stream.fromIterable(pending), Stream.fromEffectRepeat(PubSub.take(subscription)))\n }),\n ),\n ),\n push: (id, items) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(requireInvocation(id))\n yield* Queue.offerAll(invocation.responses, items)\n }),\n finish: (id, reason) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(\n Effect.gen(function* () {\n const invocation = yield* requireInvocation(id)\n const current = yield* Ref.get(state)\n yield* Ref.set(state, remove(current, id))\n return invocation\n }),\n )\n yield* Queue.offer(invocation.responses, { type: \"finish\", reason })\n yield* Queue.end(invocation.responses)\n }),\n disconnect: (id) =>\n Effect.gen(function* () {\n const invocation = yield* lock.withPermit(\n Effect.gen(function* () {\n const invocation = yield* requireInvocation(id)\n const current = yield* Ref.get(state)\n yield* Ref.set(state, remove(current, id))\n return invocation\n }),\n )\n yield* Queue.fail(\n invocation.responses,\n new ProviderDisconnectedError({ message: \"Simulated model provider disconnected\" }),\n )\n }),\n pending: () =>\n lock.withPermit(\n Ref.get(state).pipe(\n Effect.map((current) => Array.from(current.pending.values(), ({ id, url, body }) => ({ id, url, body }))),\n ),\n ),\n }\n\n const fibers = yield* FiberSet.make<void, unknown>()\n const activeController = yield* Ref.make<Fiber.Fiber<void> | undefined>(undefined)\n const controllerLock = yield* Semaphore.make(1)\n yield* SimulationControlServer.start({\n endpoint: options.endpoint,\n label: \"opencode drive backend websocket\",\n data: () => ({}),\n decode: SimulationProtocol.Backend.decodeRequestEffect,\n handle: (socket, request) => handle(driver, fibers, activeController, controllerLock, socket, request),\n close: (socket) => releaseController(activeController, controllerLock, socket),\n })\n yield* Effect.sync(() => process.stderr.write(`opencode drive backend websocket: ${options.endpoint}\\n`))\n\n return Service.of({\n stream: (request) =>\n Stream.unwrap(\n Effect.acquireRelease(open(request), close).pipe(\n Effect.map((invocation) =>\n Stream.fromQueue(invocation.responses).pipe(Stream.takeUntil((event) => event.type === \"finish\")),\n ),\n ),\n ),\n })\n }),\n )\n\nfunction handle(\n driver: Driver,\n fibers: FiberSet.FiberSet<void, unknown>,\n activeController: Ref.Ref<Fiber.Fiber<void> | undefined>,\n controllerLock: Semaphore.Semaphore,\n socket: ControlSocket,\n request: SimulationProtocol.Backend.Request,\n) {\n switch (request.method) {\n case \"llm.attach\":\n return controllerLock.withPermit(\n Effect.gen(function* () {\n if (socket.data.closed)\n return yield* Effect.fail(\n new ControllerDisconnectedError({ message: \"Drive controller disconnected before attachment\" }),\n )\n const previous = yield* Ref.get(activeController)\n if (previous) yield* Fiber.interrupt(previous)\n const attachment = yield* FiberSet.run(\n fibers,\n driver.requests.pipe(\n Stream.runForEach((invocation) =>\n Effect.sync(() => {\n socket.send(JSON.stringify({ jsonrpc: \"2.0\", method: \"llm.request\", params: invocation }))\n }),\n ),\n ),\n )\n if (socket.data.closed) {\n yield* Fiber.interrupt(attachment)\n return yield* Effect.fail(\n new ControllerDisconnectedError({ message: \"Drive controller disconnected during attachment\" }),\n )\n }\n socket.data.attachment = attachment\n yield* Ref.set(activeController, attachment)\n return { attached: true }\n }),\n )\n case \"llm.chunk\":\n return driver.push(request.params.id, request.params.items).pipe(Effect.as({ ok: true }))\n case \"llm.finish\":\n return driver.finish(request.params.id, request.params.reason).pipe(Effect.as({ ok: true }))\n case \"llm.disconnect\":\n return driver.disconnect(request.params.id).pipe(Effect.as({ ok: true }))\n case \"llm.pending\":\n return driver.pending().pipe(Effect.map((invocations) => ({ invocations })))\n }\n}\n\nfunction releaseController(\n activeController: Ref.Ref<Fiber.Fiber<void> | undefined>,\n controllerLock: Semaphore.Semaphore,\n socket: ControlSocket,\n) {\n return controllerLock.withPermit(\n Effect.gen(function* () {\n const attachment = socket.data.attachment\n if (!attachment) return\n yield* Fiber.interrupt(attachment)\n yield* Ref.update(activeController, (active) => (active === attachment ? undefined : active))\n }),\n )\n}\n\nexport * as SimulatedProvider from \"./simulated-provider\"\n",
"import { LayerNode } from \"@opencode-ai/core/effect/layer-node\"\nimport { httpClient } from \"@opencode-ai/core/effect/app-node-platform\"\nimport { Config, Effect, Layer } from \"effect\"\nimport { HttpClient } from \"effect/unstable/http\"\nimport { DriveManifest } from \"../manifest\"\nimport { SimulationNetwork } from \"./network\"\nimport { SimulationOpenAI } from \"./openai\"\nimport { SimulatedProvider } from \"./simulated-provider\"\n\n/**\n * Layer replacements applied when the server is built in simulation mode.\n *\n * The server merges these into the app node build when `OPENCODE_SIMULATE`\n * is enabled, via a dynamic import so this module is never loaded eagerly.\n *\n * - Network: all outbound HTTP resolves against the simulated route table;\n * unknown destinations are denied. The driver-answered OpenAI endpoint is\n * registered here as the first route.\n *\n */\n\nexport const simulationReplacements = Effect.fn(\"Simulation.replacements\")(function* () {\n // ModelsDev dies when its catalog fetch fails, so simulation answers it with\n // an empty catalog; providers come from seeded config instead.\n const models = SimulationNetwork.json(\"GET\", \"https://models.dev/api.json\", {})\n const drive = yield* Config.string(\"OPENCODE_DRIVE\").pipe(Config.withDefault(undefined))\n if (!drive) return [[httpClient, SimulationNetwork.layer([models])]] satisfies LayerNode.Replacements\n\n const manifest = yield* DriveManifest.resolve()\n const networkLayer = Layer.effect(\n HttpClient.HttpClient,\n Effect.gen(function* () {\n const provider = yield* SimulatedProvider.Service\n const network = yield* SimulationNetwork.make([SimulationOpenAI.route(provider), models])\n return network.client\n }),\n ).pipe(\n Layer.provide(\n SimulatedProvider.layerDrive({\n endpoint: manifest.endpoints.backend,\n }),\n ),\n )\n return [[httpClient, networkLayer]] satisfies LayerNode.Replacements\n})\n\nexport * as Simulation from \"./index\"\n"
],
"mappings": "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",
"debugId": "8A99CE1607D2615464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-env@3.972.41/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nexport const ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nexport const ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nexport const ENV_SESSION = \"AWS_SESSION_TOKEN\";\nexport const ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nexport const ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nexport const ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nexport const fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n"
],
"mappings": ";kJAAA,oBACA,gBACa,EAAU,oBACV,EAAa,wBACb,EAAc,oBACd,EAAiB,4BACjB,EAAuB,uBACvB,EAAiB,iBACjB,EAAU,CAAC,IAAS,SAAY,CACzC,GAAM,QAAQ,MAAM,4CAA4C,EAChE,IAAM,EAAc,QAAQ,IAAI,GAC1B,EAAkB,QAAQ,IAAI,GAC9B,EAAe,QAAQ,IAAI,GAC3B,EAAS,QAAQ,IAAI,GACrB,EAAkB,QAAQ,IAAI,GAC9B,EAAY,QAAQ,IAAI,GAC9B,GAAI,GAAe,EAAiB,CAChC,IAAM,EAAc,CAChB,cACA,qBACI,GAAgB,CAAE,cAAa,KAC/B,GAAU,CAAE,WAAY,IAAI,KAAK,CAAM,CAAE,KACzC,GAAmB,CAAE,iBAAgB,KACrC,GAAa,CAAE,WAAU,CACjC,EAEA,OADA,uBAAqB,EAAa,uBAAwB,GAAG,EACtD,EAEX,MAAM,IAAI,2BAAyB,mDAAoD,CAAE,OAAQ,GAAM,MAAO,CAAC",
"debugId": "4FE8336DD4C4B56464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/add.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport path from \"node:path\"\nimport { Effect, Option } from \"effect\"\nimport { applyEdits, modify } from \"jsonc-parser\"\nimport { Global } from \"@opencode-ai/core/global\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.add,\n Effect.fn(\"cli.mcp.add\")(function* (input) {\n const url = Option.getOrUndefined(input.url)\n const headers = Option.getOrUndefined(input.header)\n const environment = Option.getOrUndefined(input.env)\n // The CLI framework strands `--` operands on the root command, so read the local server command\n // straight from argv after `--`. This also lets the command carry its own flags (e.g. `npx -y`).\n const dash = process.argv.indexOf(\"--\")\n const command = dash === -1 ? [...input.command] : process.argv.slice(dash + 1)\n\n const hasCommand = command.length > 0\n if (url && hasCommand)\n return yield* Effect.fail(new Error(\"Provide either --url <url> or a command after --, not both\"))\n if (!url && !hasCommand) return yield* Effect.fail(new Error(\"Provide either --url <url> or a command after --\"))\n if (url && !URL.canParse(url)) return yield* Effect.fail(new Error(`Invalid URL: ${url}`))\n if (url && environment) return yield* Effect.fail(new Error(\"--env is only valid for local MCP servers\"))\n if (hasCommand && headers) return yield* Effect.fail(new Error(\"--header is only valid for remote MCP servers\"))\n\n const server = url\n ? { type: \"remote\" as const, url, ...(headers ? { headers } : {}) }\n : { type: \"local\" as const, command, ...(environment ? { environment } : {}) }\n\n const configPath = yield* Effect.promise(() => resolveConfigPath(input.global ? Global.Path.config : process.cwd()))\n yield* Effect.promise(() => write(configPath, input.name, server))\n process.stdout.write(`MCP server \"${input.name}\" added to ${configPath}` + EOL)\n }),\n)\n\nasync function resolveConfigPath(directory: string) {\n const candidates = [\n path.join(directory, \"opencode.json\"),\n path.join(directory, \"opencode.jsonc\"),\n path.join(directory, \".opencode\", \"opencode.json\"),\n path.join(directory, \".opencode\", \"opencode.jsonc\"),\n ]\n for (const candidate of candidates) {\n if (await Bun.file(candidate).exists()) return candidate\n }\n return candidates[0]\n}\n\nasync function write(configPath: string, name: string, server: unknown) {\n const file = Bun.file(configPath)\n const text = (await file.exists()) ? await file.text() : \"{}\"\n const edits = modify(text, [\"mcp\", \"servers\", name], server, {\n formattingOptions: { tabSize: 2, insertSpaces: true },\n })\n await Bun.write(configPath, applyEdits(text, edits))\n}\n"
],
"mappings": ";yvBAAA,mBAAS,gBACT,yBAOA,SAAe,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,SAC/B,OAAO,QAAG,kBAAa,OAAE,cAAU,MAAC,OAAO,MACzC,IAAM,EAAM,EAAO,eAAe,EAAM,GAAG,EACrC,EAAU,EAAO,eAAe,EAAM,MAAM,EAC5C,EAAc,EAAO,eAAe,EAAM,GAAG,EAG7C,EAAO,QAAQ,KAAK,QAAQ,IAAI,EAChC,EAAU,IAAS,GAAK,CAAC,GAAG,EAAM,OAAO,EAAI,QAAQ,KAAK,MAAM,EAAO,CAAC,EAExE,EAAa,EAAQ,OAAS,EACpC,GAAI,GAAO,EACT,OAAO,MAAO,EAAO,KAAS,MAAM,4DAA4D,CAAC,EACnG,GAAI,CAAC,GAAO,CAAC,EAAY,OAAO,MAAO,EAAO,KAAS,MAAM,kDAAkD,CAAC,EAChH,GAAI,GAAO,CAAC,IAAI,SAAS,CAAG,EAAG,OAAO,MAAO,EAAO,KAAS,MAAM,gBAAgB,GAAK,CAAC,EACzF,GAAI,GAAO,EAAa,OAAO,MAAO,EAAO,KAAS,MAAM,2CAA2C,CAAC,EACxG,GAAI,GAAc,EAAS,OAAO,MAAO,EAAO,KAAS,MAAM,+CAA+C,CAAC,EAE/G,IAAM,EAAS,EACX,CAAE,KAAM,SAAmB,SAAS,EAAU,CAAE,SAAQ,EAAI,CAAC,CAAG,EAChE,CAAE,KAAM,QAAkB,aAAa,EAAc,CAAE,aAAY,EAAI,CAAC,CAAG,EAEzE,EAAa,MAAO,EAAO,QAAQ,IAAM,EAAkB,EAAM,OAAS,EAAO,KAAK,OAAS,QAAQ,IAAI,CAAC,CAAC,EACnH,MAAO,EAAO,QAAQ,IAAM,EAAM,EAAY,EAAM,KAAM,CAAM,CAAC,EACjE,QAAQ,OAAO,MAAM,eAAe,EAAM,kBAAkB,IAAe,CAAG,EAC/E,CACH,EAEA,eAAe,CAAiB,CAAC,EAAmB,CAClD,IAAM,EAAa,CACjB,EAAK,KAAK,EAAW,eAAe,EACpC,EAAK,KAAK,EAAW,gBAAgB,EACrC,EAAK,KAAK,EAAW,YAAa,eAAe,EACjD,EAAK,KAAK,EAAW,YAAa,gBAAgB,CACpD,EACA,QAAW,KAAa,EACtB,GAAI,MAAM,IAAI,KAAK,CAAS,EAAE,OAAO,EAAG,OAAO,EAEjD,OAAO,EAAW,GAGpB,eAAe,CAAK,CAAC,EAAoB,EAAc,EAAiB,CACtE,IAAM,EAAO,IAAI,KAAK,CAAU,EAC1B,EAAQ,MAAM,EAAK,OAAO,EAAK,MAAM,EAAK,KAAK,EAAI,KACnD,EAAQ,EAAO,EAAM,CAAC,MAAO,UAAW,CAAI,EAAG,EAAQ,CAC3D,kBAAmB,CAAE,QAAS,EAAG,aAAc,EAAK,CACtD,CAAC,EACD,MAAM,IAAI,MAAM,EAAY,EAAW,EAAM,CAAK,CAAC",
"debugId": "9F3A233885D4B88E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/service/get.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect, Option } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.get,\n Effect.fn(\"cli.service.get\")(function* (input) {\n process.stdout.write((yield* ServiceConfig.get(Option.getOrUndefined(input.key))) + EOL)\n }),\n)\n"
],
"mappings": ";k9BAAA,mBAAS,gBAMT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,SACnC,OAAO,QAAG,sBAAiB,OAAE,cAAU,MAAC,OAAO,MAC7C,aAAQ,YAAO,YAAO,WAAO,OAAc,SAAI,OAAO,oBAAe,EAAM,GAAG,CAAC,GAAK,CAAG,EACxF,CACH",
"debugId": "852A1743ED0A2BBD64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../llm/src/protocols/utils/openai-options.ts", "../llm/src/protocols/utils/lifecycle.ts", "../llm/src/protocols/utils/gemini-tool-schema.ts", "../llm/src/protocols/utils/tool-schema.ts", "../llm/src/protocols/utils/tool-stream.ts", "../llm/src/protocols/openai-chat.ts"],
"sourcesContent": [
"import { Schema } from \"effect\"\nimport type { LLMRequest, TextVerbosity as TextVerbosityValue } from \"../../schema\"\nimport { ReasoningEfforts, TextVerbosity } from \"../../schema\"\n\nexport const OpenAIReasoningEfforts = ReasoningEfforts\nexport type OpenAIReasoningEffort = string\n\n// Mirrors OpenAI's `ResponseIncludable` union from the official SDK. Keep this\n// in lockstep with `openai-node/src/resources/responses/responses.ts`.\nexport const OpenAIResponseIncludables = [\n \"file_search_call.results\",\n \"web_search_call.results\",\n \"web_search_call.action.sources\",\n \"message.input_image.image_url\",\n \"computer_call_output.output.image_url\",\n \"code_interpreter_call.outputs\",\n \"reasoning.encrypted_content\",\n \"message.output_text.logprobs\",\n] as const\nexport type OpenAIResponseIncludable = (typeof OpenAIResponseIncludables)[number]\nexport const OpenAIServiceTiers = [\"auto\", \"default\", \"flex\", \"priority\"] as const\nexport type OpenAIServiceTier = (typeof OpenAIServiceTiers)[number]\n\nconst TEXT_VERBOSITY = new Set<string>([\"low\", \"medium\", \"high\"])\nconst INCLUDABLES = new Set<string>(OpenAIResponseIncludables)\nconst SERVICE_TIERS = new Set<string>(OpenAIServiceTiers)\n\nexport const OpenAIReasoningEffort = Schema.String\nexport const OpenAITextVerbosity = TextVerbosity\nexport const OpenAIResponseIncludable = Schema.Literals(OpenAIResponseIncludables)\nexport const OpenAIServiceTier = Schema.Literals(OpenAIServiceTiers)\n\nexport const isReasoningEffort = (effort: unknown): effort is OpenAIReasoningEffort => typeof effort === \"string\"\n\nconst isTextVerbosity = (value: unknown): value is TextVerbosityValue =>\n typeof value === \"string\" && TEXT_VERBOSITY.has(value)\n\nconst options = (request: LLMRequest) => request.providerOptions?.openai\n\nexport const store = (request: LLMRequest): boolean | undefined => {\n const value = options(request)?.store\n return typeof value === \"boolean\" ? value : undefined\n}\n\nexport const reasoningEffort = (request: LLMRequest): string | undefined => {\n const value = options(request)?.reasoningEffort\n return typeof value === \"string\" ? value : undefined\n}\n\nexport const reasoningSummary = (request: LLMRequest): \"auto\" | undefined =>\n options(request)?.reasoningSummary === \"auto\" ? \"auto\" : undefined\n\n// Resolve the OpenAI Responses `include` field. Filters out unknown\n// includable values defensively so a typo in upstream config drops the\n// invalid entry instead of poisoning the wire body. An empty array (either\n// passed directly or produced by filtering) is treated as \"no include\" and\n// returns undefined so the request body omits the field entirely.\nexport const include = (request: LLMRequest): ReadonlyArray<OpenAIResponseIncludable> | undefined => {\n const value = options(request)?.include\n if (!Array.isArray(value)) return undefined\n const filtered = value.filter((entry): entry is OpenAIResponseIncludable => INCLUDABLES.has(entry))\n return filtered.length > 0 ? filtered : undefined\n}\n\nexport const promptCacheKey = (request: LLMRequest) => {\n const value = options(request)?.promptCacheKey\n return typeof value === \"string\" ? value : undefined\n}\n\nexport const textVerbosity = (request: LLMRequest) => {\n const value = options(request)?.textVerbosity\n return isTextVerbosity(value) ? value : undefined\n}\n\nexport const serviceTier = (request: LLMRequest) => {\n const value = options(request)?.serviceTier\n return typeof value === \"string\" && SERVICE_TIERS.has(value) ? (value as OpenAIServiceTier) : undefined\n}\n\nexport const instructions = (request: LLMRequest) => {\n const value = options(request)?.instructions\n return typeof value === \"string\" ? value : undefined\n}\n\nexport * as OpenAIOptions from \"./openai-options\"\n",
"import { LLMEvent, type FinishReason, type ProviderMetadata, type Usage } from \"../../schema\"\n\nexport interface State {\n readonly stepStarted: boolean\n readonly text: ReadonlySet<string>\n readonly reasoning: ReadonlySet<string>\n}\n\nexport const initial = (): State => ({ stepStarted: false, text: new Set(), reasoning: new Set() })\n\nexport const stepStart = (state: State, events: LLMEvent[]): State => {\n if (state.stepStarted) return state\n events.push(LLMEvent.stepStart({ index: 0 }))\n return { ...state, stepStarted: true }\n}\n\nexport const textDelta = (state: State, events: LLMEvent[], id: string, text: string): State => {\n const stepped = stepStart(state, events)\n if (stepped.text.has(id)) {\n events.push(LLMEvent.textDelta({ id, text }))\n return stepped\n }\n events.push(LLMEvent.textStart({ id }), LLMEvent.textDelta({ id, text }))\n return { ...stepped, text: new Set([...stepped.text, id]) }\n}\n\nexport const reasoningStart = (\n state: State,\n events: LLMEvent[],\n id: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n if (state.reasoning.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.reasoningStart({ id, providerMetadata }))\n return { ...stepped, reasoning: new Set([...stepped.reasoning, id]) }\n}\n\nexport const reasoningDelta = (\n state: State,\n events: LLMEvent[],\n id: string,\n text: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n const started = reasoningStart(state, events, id, providerMetadata)\n events.push(LLMEvent.reasoningDelta({ id, text }))\n return started\n}\n\nexport const reasoningEnd = (\n state: State,\n events: LLMEvent[],\n id: string,\n providerMetadata?: ProviderMetadata,\n): State => {\n if (!state.reasoning.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.reasoningEnd({ id, providerMetadata }))\n const reasoning = new Set(stepped.reasoning)\n reasoning.delete(id)\n return { ...stepped, reasoning }\n}\n\nexport const textEnd = (state: State, events: LLMEvent[], id: string, providerMetadata?: ProviderMetadata): State => {\n if (!state.text.has(id)) return state\n const stepped = stepStart(state, events)\n events.push(LLMEvent.textEnd({ id, providerMetadata }))\n const text = new Set(stepped.text)\n text.delete(id)\n return { ...stepped, text }\n}\n\nconst closeOpenBlocks = (state: State, events: LLMEvent[]): State => {\n for (const id of state.reasoning) events.push(LLMEvent.reasoningEnd({ id }))\n for (const id of state.text) events.push(LLMEvent.textEnd({ id }))\n return { ...state, text: new Set(), reasoning: new Set() }\n}\n\nexport const finish = (\n state: State,\n events: LLMEvent[],\n input: {\n readonly reason: FinishReason\n readonly usage?: Usage\n readonly providerMetadata?: ProviderMetadata\n },\n): State => {\n const stepped = closeOpenBlocks(stepStart(state, events), events)\n events.push(\n LLMEvent.stepFinish({\n index: 0,\n reason: input.reason,\n usage: input.usage,\n providerMetadata: input.providerMetadata,\n }),\n LLMEvent.finish(input),\n )\n return { ...stepped, stepStarted: false }\n}\n\nexport * as Lifecycle from \"./lifecycle\"\n",
"import { isRecord } from \"../../utils/record\"\n\n// Gemini accepts a JSON Schema-like dialect for tool parameters, but rejects a\n// handful of common JSON Schema shapes. Keep this projection isolated so the\n// Gemini protocol file still reads like the other protocol modules.\nconst SCHEMA_INTENT_KEYS = [\n \"type\",\n \"properties\",\n \"items\",\n \"prefixItems\",\n \"enum\",\n \"const\",\n \"$ref\",\n \"additionalProperties\",\n \"patternProperties\",\n \"required\",\n \"not\",\n \"if\",\n \"then\",\n \"else\",\n]\n\nconst hasCombiner = (schema: unknown) =>\n isRecord(schema) && (Array.isArray(schema.anyOf) || Array.isArray(schema.oneOf) || Array.isArray(schema.allOf))\n\nconst hasSchemaIntent = (schema: unknown) =>\n isRecord(schema) && (hasCombiner(schema) || SCHEMA_INTENT_KEYS.some((key) => key in schema))\n\nconst sanitizeNode = (schema: unknown): unknown => {\n if (!isRecord(schema)) return Array.isArray(schema) ? schema.map(sanitizeNode) : schema\n\n const result: Record<string, unknown> = Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [\n key,\n key === \"enum\" && Array.isArray(value) ? value.map(String) : sanitizeNode(value),\n ]),\n )\n\n if (Array.isArray(result.enum) && (result.type === \"integer\" || result.type === \"number\")) result.type = \"string\"\n\n const properties = result.properties\n if (result.type === \"object\" && isRecord(properties) && Array.isArray(result.required)) {\n result.required = result.required.filter((field) => typeof field === \"string\" && field in properties)\n }\n\n if (result.type === \"array\" && !hasCombiner(result)) {\n result.items = result.items ?? {}\n if (isRecord(result.items) && !hasSchemaIntent(result.items)) result.items = { ...result.items, type: \"string\" }\n }\n\n if (typeof result.type === \"string\" && result.type !== \"object\" && !hasCombiner(result)) {\n delete result.properties\n delete result.required\n }\n\n return result\n}\n\nconst emptyObjectSchema = (schema: Record<string, unknown>) =>\n schema.type === \"object\" &&\n (!isRecord(schema.properties) || Object.keys(schema.properties).length === 0) &&\n !schema.additionalProperties\n\nconst projectNode = (schema: unknown): Record<string, unknown> | undefined => {\n if (!isRecord(schema)) return undefined\n if (emptyObjectSchema(schema)) return undefined\n return Object.fromEntries(\n [\n [\"description\", schema.description],\n [\"required\", schema.required],\n [\"format\", schema.format],\n [\"type\", Array.isArray(schema.type) ? schema.type.filter((type) => type !== \"null\")[0] : schema.type],\n [\"nullable\", Array.isArray(schema.type) && schema.type.includes(\"null\") ? true : undefined],\n [\"enum\", schema.const !== undefined ? [schema.const] : schema.enum],\n [\n \"properties\",\n isRecord(schema.properties)\n ? Object.fromEntries(Object.entries(schema.properties).map(([key, value]) => [key, projectNode(value)]))\n : undefined,\n ],\n [\n \"items\",\n Array.isArray(schema.items)\n ? schema.items.map(projectNode)\n : schema.items === undefined\n ? undefined\n : projectNode(schema.items),\n ],\n [\"allOf\", Array.isArray(schema.allOf) ? schema.allOf.map(projectNode) : undefined],\n [\"anyOf\", Array.isArray(schema.anyOf) ? schema.anyOf.map(projectNode) : undefined],\n [\"oneOf\", Array.isArray(schema.oneOf) ? schema.oneOf.map(projectNode) : undefined],\n [\"minLength\", schema.minLength],\n ].filter((entry) => entry[1] !== undefined),\n )\n}\n\nexport const convert = (schema: unknown) => projectNode(sanitizeNode(schema))\n\nexport * as GeminiToolSchema from \"./gemini-tool-schema\"\n",
"import type { JsonSchema, ModelToolSchemaCompatibility } from \"../../schema\"\nimport { isRecord } from \"../../utils/record\"\nimport { GeminiToolSchema } from \"./gemini-tool-schema\"\n\nconst removeNullSchemas = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(removeNullSchemas)\n if (!isRecord(value)) return value\n const fields = Object.fromEntries(\n Object.entries(value)\n .filter(([key]) => key !== \"anyOf\")\n .map(([key, field]) => [key, removeNullSchemas(field)]),\n )\n if (!Array.isArray(value.anyOf)) return fields\n const variants = value.anyOf.filter((variant) => !isRecord(variant) || variant.type !== \"null\").map(removeNullSchemas)\n if (variants.length === 1 && isRecord(variants[0])) return { ...fields, ...variants[0] }\n return { ...fields, anyOf: variants }\n}\n\nconst tupleItemsSchema = (items: ReadonlyArray<unknown>) => {\n const projected = items.map(moonshotNode)\n if (projected.length === 0) return {}\n if (projected.length === 1) return projected[0]\n return { anyOf: projected }\n}\n\nconst moonshotNode = (schema: unknown): unknown => {\n if (Array.isArray(schema)) return schema.map(moonshotNode)\n if (!isRecord(schema)) return schema\n if (typeof schema.$ref === \"string\") return { $ref: schema.$ref }\n return Object.fromEntries(\n Object.entries(schema).flatMap(([key, value]) => {\n if (key === \"items\" && Array.isArray(value)) return [[key, tupleItemsSchema(value)]]\n if (key === \"prefixItems\") {\n if (\"items\" in schema) return []\n return [[\"items\", tupleItemsSchema(Array.isArray(value) ? value : [])]]\n }\n if (key === \"unevaluatedItems\") return []\n return [[key, moonshotNode(value)]]\n }),\n )\n}\n\nconst moonshot = (schema: JsonSchema): JsonSchema => {\n const projected = moonshotNode(schema)\n return isRecord(projected) ? projected : {}\n}\n\nconst openAI = (schema: JsonSchema): JsonSchema => {\n const variants = Array.isArray(schema.anyOf) ? schema.anyOf.filter(isRecord) : []\n const flattened =\n variants.length === 0\n ? { ...schema, type: \"object\" }\n : {\n ...Object.fromEntries(Object.entries(schema).filter(([key]) => key !== \"anyOf\")),\n type: \"object\",\n properties: variants.reduce(\n (properties, variant) => ({ ...(isRecord(variant.properties) ? variant.properties : {}), ...properties }),\n {},\n ),\n additionalProperties: false,\n }\n const normalized = removeNullSchemas(flattened)\n return isRecord(normalized) ? normalized : { type: \"object\" }\n}\n\nconst gemini = (schema: JsonSchema): JsonSchema => GeminiToolSchema.convert(schema) ?? {}\n\nconst modelCompatibility = (\n schema: JsonSchema,\n compatibility: ModelToolSchemaCompatibility | undefined,\n): JsonSchema => {\n if (compatibility === undefined) return schema\n switch (compatibility) {\n case \"gemini\":\n return gemini(schema)\n case \"moonshot\":\n return moonshot(schema)\n }\n}\n\nexport const ToolSchemaProjection = {\n gemini,\n modelCompatibility,\n moonshot,\n openAI,\n} as const\n",
"import { Effect } from \"effect\"\nimport { LLMError, LLMEvent, type ProviderMetadata, type ToolCall } from \"../../schema\"\nimport { eventError, parseToolInput, type ToolAccumulator } from \"../shared\"\n\ntype StreamKey = string | number\n\n/**\n * One pending streamed tool call. Providers emit the tool identity and JSON\n * argument text across separate chunks; `input` is the raw JSON string collected\n * so far, not the parsed object.\n */\nexport interface PendingTool extends ToolAccumulator {\n readonly providerExecuted?: boolean\n readonly providerMetadata?: ProviderMetadata\n}\n\n/**\n * Sparse parser state keyed by the provider's stream-local tool identifier.\n *\n * This key is not the final tool-call id (`call_...`). It is the id/index the\n * provider uses while streaming a partial call: OpenAI Chat / Anthropic /\n * Bedrock use numeric content indexes, while OpenAI Responses uses string\n * `item_id`s. The generic keeps each protocol internally consistent.\n */\nexport type State<K extends StreamKey> = Partial<Record<K, PendingTool>>\n\n/**\n * Result of adding argument text to one pending tool call. It returns both the\n * next `tools` state and the updated `tool` because parsers often need the\n * current id/name immediately. `events` contains lifecycle and delta events\n * produced by the append; metadata-only deltas update identity without output.\n */\nexport interface AppendOutcome<K extends StreamKey> {\n readonly tools: State<K>\n readonly tool: PendingTool\n readonly events: ReadonlyArray<LLMEvent>\n}\n\n/** Create empty accumulator state for one provider stream. */\nexport const empty = <K extends StreamKey>(): State<K> => ({})\n\nconst withTool = <K extends StreamKey>(tools: State<K>, key: K, tool: PendingTool): State<K> => {\n return { ...tools, [key]: tool }\n}\n\nconst withoutTool = <K extends StreamKey>(tools: State<K>, key: K): State<K> => {\n const next = { ...tools }\n delete next[key]\n return next\n}\n\nconst inputStart = (tool: PendingTool) =>\n LLMEvent.toolInputStart({\n id: tool.id,\n name: tool.name,\n providerMetadata: tool.providerMetadata,\n })\n\nconst inputDelta = (tool: PendingTool, text: string) =>\n LLMEvent.toolInputDelta({\n id: tool.id,\n name: tool.name,\n text,\n })\n\nconst toolCall = (route: string, tool: PendingTool, inputOverride?: string) =>\n parseToolInput(route, tool.name, inputOverride ?? tool.input).pipe(\n Effect.map(\n (input): ToolCall =>\n LLMEvent.toolCall({\n id: tool.id,\n name: tool.name,\n input,\n providerExecuted: tool.providerExecuted ? true : undefined,\n providerMetadata: tool.providerMetadata,\n }),\n ),\n )\n\n/** Store the updated tool and produce the optional public delta event. */\nconst appendTool = <K extends StreamKey>(\n tools: State<K>,\n key: K,\n tool: PendingTool,\n text: string,\n): AppendOutcome<K> => {\n const events: LLMEvent[] = []\n if (!tools[key]) events.push(inputStart(tool))\n if (text.length > 0) events.push(inputDelta(tool, text))\n return {\n tools: withTool(tools, key, tool),\n tool,\n events,\n }\n}\n\nexport const isError = <K extends StreamKey>(result: AppendOutcome<K> | LLMError): result is LLMError =>\n result instanceof LLMError\n\n/**\n * Register a tool call whose start event arrived before any argument deltas.\n * Used by Anthropic `content_block_start`, Bedrock `contentBlockStart`, and\n * OpenAI Responses `response.output_item.added`.\n */\nexport const start = <K extends StreamKey>(\n tools: State<K>,\n key: K,\n tool: Omit<PendingTool, \"input\"> & { readonly input?: string },\n) => withTool(tools, key, { ...tool, input: tool.input ?? \"\" })\n\n/**\n * Append a streamed argument delta, starting the tool if this provider encodes\n * identity on the first delta instead of a separate start event. OpenAI Chat has\n * this shape: `tool_calls[].index` is the stream key, and `id` / `name` may only\n * appear on the first delta for that index.\n */\nexport const appendOrStart = <K extends StreamKey>(\n route: string,\n tools: State<K>,\n key: K,\n delta: { readonly id?: string; readonly name?: string; readonly text: string },\n missingToolMessage: string,\n): AppendOutcome<K> | LLMError => {\n const current = tools[key]\n const id = delta.id ?? current?.id\n const name = delta.name ?? current?.name\n if (!id || !name) return eventError(route, missingToolMessage)\n\n const tool = {\n id,\n name,\n input: `${current?.input ?? \"\"}${delta.text}`,\n providerExecuted: current?.providerExecuted,\n providerMetadata: current?.providerMetadata,\n }\n if (current && delta.text.length === 0 && current.id === id && current.name === name)\n return { tools, tool: current, events: [] }\n return appendTool(tools, key, tool, delta.text)\n}\n\n/**\n * Append argument text to a tool that must already have been started. This keeps\n * protocols honest when their stream grammar promises a start event before any\n * argument delta.\n */\nexport const appendExisting = <K extends StreamKey>(\n route: string,\n tools: State<K>,\n key: K,\n text: string,\n missingToolMessage: string,\n): AppendOutcome<K> | LLMError => {\n const current = tools[key]\n if (!current) return eventError(route, missingToolMessage)\n if (text.length === 0) return { tools, tool: current, events: [] }\n return appendTool(tools, key, { ...current, input: `${current.input}${text}` }, text)\n}\n\n/**\n * Finalize one pending tool call: parse the accumulated raw JSON, remove it\n * from state, and return the optional public `tool-call` event. Missing keys are\n * a no-op because some providers emit stop events for non-tool content blocks.\n */\nexport const finish = <K extends StreamKey>(route: string, tools: State<K>, key: K) =>\n Effect.gen(function* () {\n const tool = tools[key]\n if (!tool) return { tools }\n return {\n tools: withoutTool(tools, key),\n events: [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n yield* toolCall(route, tool),\n ],\n }\n })\n\n/**\n * Finalize one pending tool call with an authoritative final input string.\n * OpenAI Responses can send accumulated deltas and then repeat the completed\n * arguments on `response.output_item.done`; the final value wins.\n */\nexport const finishWithInput = <K extends StreamKey>(route: string, tools: State<K>, key: K, input: string) =>\n Effect.gen(function* () {\n const tool = tools[key]\n if (!tool) return { tools }\n return {\n tools: withoutTool(tools, key),\n events: [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n yield* toolCall(route, tool, input),\n ],\n }\n })\n\n/**\n * Finalize every pending tool call at once. OpenAI Chat has this shape: it does\n * not emit per-tool stop events, so all accumulated calls finish when the choice\n * receives a terminal `finish_reason`.\n */\nexport const finishAll = <K extends StreamKey>(route: string, tools: State<K>) =>\n Effect.gen(function* () {\n const pending = Object.values<PendingTool | undefined>(tools).filter(\n (tool): tool is PendingTool => tool !== undefined,\n )\n return {\n tools: empty<K>(),\n events: yield* Effect.forEach(pending, (tool) =>\n toolCall(route, tool).pipe(\n Effect.map((call) => [\n LLMEvent.toolInputEnd({ id: tool.id, name: tool.name, providerMetadata: tool.providerMetadata }),\n call,\n ]),\n ),\n ).pipe(Effect.map((events) => events.flat())),\n }\n })\n\nexport * as ToolStream from \"./tool-stream\"\n",
"import { Effect, Schema } from \"effect\"\nimport { Route } from \"../route/client\"\nimport { Auth } from \"../route/auth\"\nimport { Endpoint } from \"../route/endpoint\"\nimport { HttpTransport } from \"../route/transport\"\nimport { Protocol } from \"../route/protocol\"\nimport {\n LLMEvent,\n Usage,\n type FinishReason,\n type JsonSchema,\n type LLMRequest,\n type MediaPart,\n type ReasoningPart,\n type TextPart,\n type ToolCallPart,\n type ToolDefinition,\n type ToolContent,\n} from \"../schema\"\nimport { isRecord, JsonObject, optionalArray, optionalNull, ProviderShared } from \"./shared\"\nimport { OpenAIOptions } from \"./utils/openai-options\"\nimport { Lifecycle } from \"./utils/lifecycle\"\nimport { ToolSchemaProjection } from \"./utils/tool-schema\"\nimport { ToolStream } from \"./utils/tool-stream\"\n\nconst ADAPTER = \"openai-chat\"\nconst IMAGE_MIMES = new Set<string>(ProviderShared.IMAGE_MIMES)\nexport const DEFAULT_BASE_URL = \"https://api.openai.com/v1\"\nexport const PATH = \"/chat/completions\"\n\n// =============================================================================\n// Request Body Schema\n// =============================================================================\n// The body schema is the provider-native JSON body. `fromRequest` below builds\n// this shape from the common `LLMRequest`, then `Route.make` validates and\n// JSON-encodes it before transport.\nconst OpenAIChatFunction = Schema.Struct({\n name: Schema.String,\n description: Schema.String,\n parameters: JsonObject,\n})\n\nconst OpenAIChatTool = Schema.Struct({\n type: Schema.tag(\"function\"),\n function: OpenAIChatFunction,\n})\ntype OpenAIChatTool = Schema.Schema.Type<typeof OpenAIChatTool>\n\nconst OpenAIChatAssistantToolCall = Schema.Struct({\n id: Schema.String,\n type: Schema.tag(\"function\"),\n function: Schema.Struct({\n name: Schema.String,\n arguments: Schema.String,\n }),\n})\ntype OpenAIChatAssistantToolCall = Schema.Schema.Type<typeof OpenAIChatAssistantToolCall>\n\nconst OpenAIChatUserContent = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"text\"), text: Schema.String }),\n Schema.Struct({\n type: Schema.Literal(\"image_url\"),\n image_url: Schema.Struct({ url: Schema.String }),\n }),\n])\n\nconst OpenAIChatMessage = Schema.Union([\n Schema.Struct({ role: Schema.Literal(\"system\"), content: Schema.String }),\n Schema.Struct({\n role: Schema.Literal(\"user\"),\n content: Schema.Union([Schema.String, Schema.Array(OpenAIChatUserContent)]),\n }),\n Schema.Struct({\n role: Schema.Literal(\"assistant\"),\n content: Schema.NullOr(Schema.String),\n tool_calls: optionalArray(OpenAIChatAssistantToolCall),\n reasoning_content: Schema.optional(Schema.String),\n }),\n Schema.Struct({ role: Schema.Literal(\"tool\"), tool_call_id: Schema.String, content: Schema.String }),\n]).pipe(Schema.toTaggedUnion(\"role\"))\ntype OpenAIChatMessage = Schema.Schema.Type<typeof OpenAIChatMessage>\n\nconst OpenAIChatToolChoice = Schema.Union([\n Schema.Literals([\"auto\", \"none\", \"required\"]),\n Schema.Struct({\n type: Schema.tag(\"function\"),\n function: Schema.Struct({ name: Schema.String }),\n }),\n])\n\nexport const bodyFields = {\n model: Schema.String,\n messages: Schema.Array(OpenAIChatMessage),\n tools: optionalArray(OpenAIChatTool),\n tool_choice: Schema.optional(OpenAIChatToolChoice),\n stream: Schema.Literal(true),\n stream_options: Schema.optional(Schema.Struct({ include_usage: Schema.Boolean })),\n store: Schema.optional(Schema.Boolean),\n reasoning_effort: Schema.optional(OpenAIOptions.OpenAIReasoningEffort),\n max_tokens: Schema.optional(Schema.Number),\n temperature: Schema.optional(Schema.Number),\n top_p: Schema.optional(Schema.Number),\n frequency_penalty: Schema.optional(Schema.Number),\n presence_penalty: Schema.optional(Schema.Number),\n seed: Schema.optional(Schema.Number),\n stop: optionalArray(Schema.String),\n}\nconst OpenAIChatBody = Schema.Struct(bodyFields)\nexport type OpenAIChatBody = Schema.Schema.Type<typeof OpenAIChatBody>\n\n// =============================================================================\n// Streaming Event Schema\n// =============================================================================\n// The event schema is one decoded SSE `data:` payload. `Framing.sse` splits the\n// byte stream into strings, then `Protocol.jsonEvent` decodes each string into\n// this provider-native event shape.\nconst OpenAIChatUsage = Schema.Struct({\n prompt_tokens: Schema.optional(Schema.Number),\n completion_tokens: Schema.optional(Schema.Number),\n total_tokens: Schema.optional(Schema.Number),\n prompt_tokens_details: optionalNull(\n Schema.Struct({\n cached_tokens: Schema.optional(Schema.Number),\n }),\n ),\n completion_tokens_details: optionalNull(\n Schema.Struct({\n reasoning_tokens: Schema.optional(Schema.Number),\n }),\n ),\n})\n\nconst OpenAIChatToolCallDeltaFunction = Schema.Struct({\n name: optionalNull(Schema.String),\n arguments: optionalNull(Schema.String),\n})\n\nconst OpenAIChatToolCallDelta = Schema.Struct({\n index: Schema.Number,\n id: optionalNull(Schema.String),\n function: optionalNull(OpenAIChatToolCallDeltaFunction),\n})\ntype OpenAIChatToolCallDelta = Schema.Schema.Type<typeof OpenAIChatToolCallDelta>\n\nconst OpenAIChatDelta = Schema.Struct({\n content: optionalNull(Schema.String),\n reasoning_content: optionalNull(Schema.String),\n tool_calls: optionalNull(Schema.Array(OpenAIChatToolCallDelta)),\n})\n\nconst OpenAIChatChoice = Schema.Struct({\n delta: optionalNull(OpenAIChatDelta),\n finish_reason: optionalNull(Schema.String),\n})\n\nexport const OpenAIChatEvent = Schema.Struct({\n choices: Schema.Array(OpenAIChatChoice),\n usage: optionalNull(OpenAIChatUsage),\n})\nexport type OpenAIChatEvent = Schema.Schema.Type<typeof OpenAIChatEvent>\ntype OpenAIChatRequestMessage = LLMRequest[\"messages\"][number]\n\ninterface ParserState {\n readonly tools: ToolStream.State<number>\n readonly toolCallEvents: ReadonlyArray<LLMEvent>\n readonly usage?: Usage\n readonly finishReason?: FinishReason\n readonly lifecycle: Lifecycle.State\n}\n\n// =============================================================================\n// Request Lowering\n// =============================================================================\n// Lowering is the only place that knows how common LLM messages map onto the\n// OpenAI Chat wire format. Keep provider quirks here instead of leaking native\n// fields into `LLMRequest`.\nconst lowerTool = (tool: ToolDefinition, inputSchema: JsonSchema): OpenAIChatTool => ({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: ToolSchemaProjection.openAI(inputSchema),\n },\n})\n\nconst lowerToolChoice = (toolChoice: NonNullable<LLMRequest[\"toolChoice\"]>) =>\n ProviderShared.matchToolChoice(\"OpenAI Chat\", toolChoice, {\n auto: () => \"auto\" as const,\n none: () => \"none\" as const,\n required: () => \"required\" as const,\n tool: (name) => ({ type: \"function\" as const, function: { name } }),\n })\n\nconst lowerToolCall = (part: ToolCallPart): OpenAIChatAssistantToolCall => ({\n id: part.id,\n type: \"function\",\n function: {\n name: part.name,\n arguments: ProviderShared.encodeJson(part.input),\n },\n})\n\nconst lowerMedia = Effect.fn(\"OpenAIChat.lowerMedia\")(function* (part: MediaPart) {\n const media = yield* ProviderShared.validateMedia(\"OpenAI Chat\", part, IMAGE_MIMES)\n return { type: \"image_url\" as const, image_url: { url: media.dataUrl } }\n})\n\nconst openAICompatibleReasoningContent = (native: unknown) =>\n isRecord(native) && typeof native.reasoning_content === \"string\" ? native.reasoning_content : undefined\n\nconst lowerUserMessage = Effect.fn(\"OpenAIChat.lowerUserMessage\")(function* (message: OpenAIChatRequestMessage) {\n const content: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n for (const part of message.content) {\n if (part.type === \"text\") {\n content.push({ type: \"text\", text: part.text })\n continue\n }\n if (part.type === \"media\") {\n content.push(yield* lowerMedia(part))\n continue\n }\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"user\", [\"text\", \"media\"])\n }\n if (content.every((part) => part.type === \"text\"))\n return { role: \"user\" as const, content: content.map((part) => part.text).join(\"\") }\n return { role: \"user\" as const, content }\n})\n\nconst lowerAssistantMessage = Effect.fn(\"OpenAIChat.lowerAssistantMessage\")(function* (\n message: OpenAIChatRequestMessage,\n) {\n const content: TextPart[] = []\n const reasoning: ReasoningPart[] = []\n const toolCalls: OpenAIChatAssistantToolCall[] = []\n for (const part of message.content) {\n if (!ProviderShared.supportsContent(part, [\"text\", \"reasoning\", \"tool-call\"]))\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"assistant\", [\"text\", \"reasoning\", \"tool-call\"])\n if (part.type === \"text\") {\n content.push(part)\n continue\n }\n if (part.type === \"reasoning\") {\n reasoning.push(part)\n continue\n }\n if (part.type === \"tool-call\") {\n toolCalls.push(lowerToolCall(part))\n continue\n }\n }\n return {\n role: \"assistant\" as const,\n content: content.length === 0 ? null : ProviderShared.joinText(content),\n tool_calls: toolCalls.length === 0 ? undefined : toolCalls,\n reasoning_content:\n reasoning.length > 0\n ? reasoning.map((part) => part.text).join(\"\")\n : openAICompatibleReasoningContent(message.native?.openaiCompatible),\n }\n})\n\nconst lowerToolMessages = Effect.fn(\"OpenAIChat.lowerToolMessages\")(function* (message: OpenAIChatRequestMessage) {\n const messages: OpenAIChatMessage[] = []\n const images: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n for (const part of message.content) {\n if (!ProviderShared.supportsContent(part, [\"tool-result\"]))\n return yield* ProviderShared.unsupportedContent(\"OpenAI Chat\", \"tool\", [\"tool-result\"])\n if (part.result.type !== \"content\") {\n messages.push({ role: \"tool\", tool_call_id: part.id, content: ProviderShared.toolResultText(part) })\n continue\n }\n const content: ReadonlyArray<ToolContent> = part.result.value\n const text = content.filter((item) => item.type === \"text\").map((item) => item.text)\n messages.push({ role: \"tool\", tool_call_id: part.id, content: text.join(\"\\n\") })\n const files = content.filter((item) => item.type === \"file\")\n images.push(\n ...(yield* Effect.forEach(files, (item) =>\n lowerMedia({ type: \"media\", mediaType: item.mime, data: item.uri, filename: item.name }),\n )),\n )\n }\n return { messages, images }\n})\n\nconst lowerMessage = Effect.fn(\"OpenAIChat.lowerMessage\")(function* (message: OpenAIChatRequestMessage) {\n if (message.role === \"user\") return [yield* lowerUserMessage(message)]\n if (message.role === \"assistant\") return [yield* lowerAssistantMessage(message)]\n return (yield* lowerToolMessages(message)).messages\n})\n\nconst lowerMessages = Effect.fn(\"OpenAIChat.lowerMessages\")(function* (request: LLMRequest) {\n const system: OpenAIChatMessage[] =\n request.system.length === 0 ? [] : [{ role: \"system\", content: ProviderShared.joinText(request.system) }]\n const messages = [...system]\n const pendingImages: Array<Schema.Schema.Type<typeof OpenAIChatUserContent>> = []\n const flushImages = () => {\n if (pendingImages.length === 0) return\n messages.push({ role: \"user\", content: pendingImages.splice(0) })\n }\n for (const message of request.messages) {\n if (message.role === \"system\") {\n const part = yield* ProviderShared.wrappedSystemUpdate(\"OpenAI Chat\", message)\n if (pendingImages.length > 0) {\n messages.push({ role: \"user\", content: [...pendingImages.splice(0), { type: \"text\", text: part.text }] })\n continue\n }\n const previous = messages.at(-1)\n if (previous?.role === \"user\" && typeof previous.content === \"string\")\n messages[messages.length - 1] = { role: \"user\", content: `${previous.content}\\n${part.text}` }\n else if (previous?.role === \"user\" && Array.isArray(previous.content))\n messages[messages.length - 1] = {\n role: \"user\",\n content: [...previous.content, { type: \"text\", text: part.text }],\n }\n else messages.push({ role: \"user\", content: part.text })\n continue\n }\n if (message.role === \"tool\") {\n const lowered = yield* lowerToolMessages(message)\n messages.push(...lowered.messages)\n pendingImages.push(...lowered.images)\n continue\n }\n flushImages()\n messages.push(...(yield* lowerMessage(message)))\n }\n flushImages()\n return messages\n})\n\nconst lowerOptions = Effect.fn(\"OpenAIChat.lowerOptions\")(function* (request: LLMRequest) {\n const store = OpenAIOptions.store(request)\n const reasoningEffort = OpenAIOptions.reasoningEffort(request)\n return {\n ...(store !== undefined ? { store } : {}),\n ...(reasoningEffort ? { reasoning_effort: reasoningEffort } : {}),\n }\n})\n\nconst fromRequest = Effect.fn(\"OpenAIChat.fromRequest\")(function* (request: LLMRequest) {\n // `fromRequest` returns the provider body only. Endpoint, auth, framing,\n // validation, and HTTP execution are composed by `Route.make`.\n const generation = request.generation\n const toolSchemaCompatibility = request.model.compatibility?.toolSchema\n return {\n model: request.model.id,\n messages: yield* lowerMessages(request),\n tools:\n request.tools.length === 0\n ? undefined\n : request.tools.map((tool) =>\n lowerTool(tool, ToolSchemaProjection.modelCompatibility(tool.inputSchema, toolSchemaCompatibility)),\n ),\n tool_choice: request.toolChoice ? yield* lowerToolChoice(request.toolChoice) : undefined,\n stream: true as const,\n stream_options: { include_usage: true },\n max_tokens: generation?.maxTokens,\n temperature: generation?.temperature,\n top_p: generation?.topP,\n frequency_penalty: generation?.frequencyPenalty,\n presence_penalty: generation?.presencePenalty,\n seed: generation?.seed,\n stop: generation?.stop,\n ...(yield* lowerOptions(request)),\n }\n})\n\n// =============================================================================\n// Stream Parsing\n// =============================================================================\n// Streaming parsers are small state machines: every event returns a new state\n// plus the common `LLMEvent`s produced by that event. Tool calls are accumulated\n// because OpenAI streams JSON arguments across multiple deltas.\nconst mapFinishReason = (reason: string | null | undefined): FinishReason => {\n if (reason === \"stop\") return \"stop\"\n if (reason === \"length\") return \"length\"\n if (reason === \"content_filter\") return \"content-filter\"\n if (reason === \"function_call\" || reason === \"tool_calls\") return \"tool-calls\"\n return \"unknown\"\n}\n\n// OpenAI Chat reports `prompt_tokens` (inclusive total) with a\n// `cached_tokens` subset, and `completion_tokens` (inclusive total) with\n// a `reasoning_tokens` subset. We pass the inclusive totals through and\n// derive the non-cached breakdown so the `LLM.Usage` contract is\n// satisfied on both sides.\nconst mapUsage = (usage: OpenAIChatEvent[\"usage\"]): Usage | undefined => {\n if (!usage) return undefined\n const cached = usage.prompt_tokens_details?.cached_tokens\n const reasoning = usage.completion_tokens_details?.reasoning_tokens\n const nonCached = ProviderShared.subtractTokens(usage.prompt_tokens, cached)\n return new Usage({\n inputTokens: usage.prompt_tokens,\n outputTokens: usage.completion_tokens,\n nonCachedInputTokens: nonCached,\n cacheReadInputTokens: cached,\n reasoningTokens: reasoning,\n totalTokens: ProviderShared.totalTokens(usage.prompt_tokens, usage.completion_tokens, usage.total_tokens),\n providerMetadata: { openai: usage },\n })\n}\n\nconst step = (state: ParserState, event: OpenAIChatEvent) =>\n Effect.gen(function* () {\n const events: LLMEvent[] = []\n const usage = mapUsage(event.usage) ?? state.usage\n const choice = event.choices[0]\n const finishReason = choice?.finish_reason ? mapFinishReason(choice.finish_reason) : state.finishReason\n const delta = choice?.delta\n const toolDeltas = delta?.tool_calls ?? []\n let tools = state.tools\n\n let lifecycle = state.lifecycle\n\n if (delta?.reasoning_content)\n lifecycle = Lifecycle.reasoningDelta(lifecycle, events, \"reasoning-0\", delta.reasoning_content)\n\n if (delta?.content) {\n lifecycle = Lifecycle.reasoningEnd(lifecycle, events, \"reasoning-0\")\n lifecycle = Lifecycle.textDelta(lifecycle, events, \"text-0\", delta.content)\n }\n\n if (toolDeltas.length) lifecycle = Lifecycle.reasoningEnd(lifecycle, events, \"reasoning-0\")\n\n for (const tool of toolDeltas) {\n const result = ToolStream.appendOrStart(\n ADAPTER,\n tools,\n tool.index,\n { id: tool.id ?? undefined, name: tool.function?.name ?? undefined, text: tool.function?.arguments ?? \"\" },\n \"OpenAI Chat tool call delta is missing id or name\",\n )\n if (ToolStream.isError(result)) return yield* result\n tools = result.tools\n if (result.events.length) lifecycle = Lifecycle.stepStart(lifecycle, events)\n events.push(...result.events)\n }\n\n // Finalize accumulated tool inputs eagerly when finish_reason arrives so\n // JSON parse failures fail the stream at the boundary rather than at halt.\n const finished =\n finishReason !== undefined && state.finishReason === undefined && Object.keys(tools).length > 0\n ? yield* ToolStream.finishAll(ADAPTER, tools)\n : undefined\n\n return [\n {\n tools: finished?.tools ?? tools,\n toolCallEvents: finished?.events ?? state.toolCallEvents,\n usage,\n finishReason,\n lifecycle,\n },\n events,\n ] as const\n })\n\nconst finishEvents = (state: ParserState): ReadonlyArray<LLMEvent> => {\n const events: LLMEvent[] = []\n const hasToolCalls = state.toolCallEvents.length > 0\n const reason = state.finishReason === \"stop\" && hasToolCalls ? \"tool-calls\" : state.finishReason\n const lifecycle = state.toolCallEvents.length ? Lifecycle.stepStart(state.lifecycle, events) : state.lifecycle\n events.push(...state.toolCallEvents)\n if (reason) Lifecycle.finish(lifecycle, events, { reason, usage: state.usage })\n return events\n}\n\n// =============================================================================\n// Protocol And OpenAI Route\n// =============================================================================\n/**\n * The OpenAI Chat protocol — request body construction, body schema, and the\n * streaming-event state machine. Reused by every route that speaks OpenAI Chat\n * over HTTP+SSE: native OpenAI, DeepSeek, TogetherAI, Cerebras, Baseten,\n * Fireworks, DeepInfra, and (once added) Azure OpenAI Chat.\n */\nexport const protocol = Protocol.make({\n id: ADAPTER,\n body: {\n schema: OpenAIChatBody,\n from: fromRequest,\n },\n stream: {\n event: Protocol.jsonEvent(OpenAIChatEvent),\n initial: () => ({ tools: ToolStream.empty<number>(), toolCallEvents: [], lifecycle: Lifecycle.initial() }),\n step,\n onHalt: finishEvents,\n },\n})\n\nexport const httpTransport = HttpTransport.sseJson.with<OpenAIChatBody>()\n\nexport const route = Route.make({\n id: ADAPTER,\n provider: \"openai\",\n providerMetadataKey: \"openai\",\n protocol,\n endpoint: Endpoint.path(PATH, { baseURL: DEFAULT_BASE_URL }),\n auth: Auth.none,\n transport: httpTransport,\n})\n\nexport * as OpenAIChat from \"./openai-chat\"\n"
],
"mappings": "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",
"debugId": "0C4B0E116336401A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260323234822_events.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260323234822_events\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`event_sequence\\` (\n \\`aggregate_id\\` text PRIMARY KEY,\n \\`seq\\` integer NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`event\\` (\n \\`id\\` text PRIMARY KEY,\n \\`aggregate_id\\` text NOT NULL,\n \\`seq\\` integer NOT NULL,\n \\`type\\` text NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_event_aggregate_id_event_sequence_aggregate_id_fk\\` FOREIGN KEY (\\`aggregate_id\\`) REFERENCES \\`event_sequence\\`(\\`aggregate_id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,wBACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,6IAKb,EACD,MAAO,EAAG,IAAI,8YASb,EACF,EAEL",
"debugId": "74B352A22F666F8164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n try {\n const result = await (0, execAsync_1.execAsync)('ioreg -rd1 -c \"IOPlatformExpertDevice\"');\n const idLine = result.stdout\n .split('\\n')\n .find(line => line.includes('IOPlatformUUID'));\n if (!idLine) {\n return undefined;\n }\n const parts = idLine.split('\" = \"');\n if (parts.length === 2) {\n return parts[1].slice(0, -1);\n }\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-darwin.js.map"
],
"mappings": ";gKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,MACA,MACN,eAAe,CAAY,EAAG,CAC1B,GAAI,CAEA,IAAM,GADS,MAAO,EAAG,EAAY,WAAW,wCAAwC,GAClE,OACjB,MAAM;AAAA,CAAI,EACV,KAAK,KAAQ,EAAK,SAAS,gBAAgB,CAAC,EACjD,GAAI,CAAC,EACD,OAEJ,IAAM,EAAQ,EAAO,MAAM,OAAO,EAClC,GAAI,EAAM,SAAW,EACjB,OAAO,EAAM,GAAG,MAAM,EAAG,EAAE,EAGnC,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "F5A3289D3C80E83B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260427172553_slow_nightmare.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260427172553_slow_nightmare\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_session_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_session_type_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_entry_time_created_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`session_message_session_idx\\` ON \\`session_message\\` (\\`session_id\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`);`,\n )\n yield* tx.run(`CREATE INDEX \\`session_message_time_created_idx\\` ON \\`session_message\\` (\\`time_created\\`);`)\n yield* tx.run(`DROP TABLE \\`session_entry\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+aAUb,EACD,MAAO,EAAG,IAAI,mDAAqD,EACnE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,wDAA0D,EACxE,MAAO,EAAG,IAAI,iFAAuF,EACrG,MAAO,EAAG,IACR,6FACF,EACA,MAAO,EAAG,IAAI,wFAA8F,EAC5G,MAAO,EAAG,IAAI,6BAA+B,EAC9C,EAEL",
"debugId": "93D0D9EF4DC48F4864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+mistral@3.0.27+d6123d32214422cb/node_modules/@ai-sdk/mistral/dist/index.mjs"],
"sourcesContent": [
"// src/mistral-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/mistral-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n injectJsonInstructionIntoMessages,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-mistral-usage.ts\nfunction convertMistralUsage(usage) {\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = usage.prompt_tokens;\n const completionTokens = usage.completion_tokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens,\n reasoning: void 0\n },\n raw: usage\n };\n}\n\n// src/convert-to-mistral-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatFileUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToMistralChatMessages(prompt) {\n var _a;\n const messages = [];\n for (let i = 0; i < prompt.length; i++) {\n const { role, content } = prompt[i];\n const isLastMessage = i === prompt.length - 1;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: formatFileUrl({ data: part.data, mediaType })\n };\n } else if (part.mediaType === \"application/pdf\") {\n return {\n type: \"document_url\",\n document_url: formatFileUrl({\n data: part.data,\n mediaType: \"application/pdf\"\n })\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only images and PDF file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n default: {\n throw new Error(\n `Unsupported content type in assistant message: ${part.type}`\n );\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n prefix: isLastMessage ? true : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n name: toolResponse.toolName,\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/map-mistral-finish-reason.ts\nfunction mapMistralFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n case \"model_length\":\n return \"length\";\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/mistral-chat-options.ts\nimport { z } from \"zod/v4\";\nvar mistralLanguageModelOptions = z.object({\n /**\n * Whether to inject a safety prompt before all conversations.\n *\n * Defaults to `false`.\n */\n safePrompt: z.boolean().optional(),\n documentImageLimit: z.number().optional(),\n documentPageLimit: z.number().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When set to false, the model will use at most one tool per response.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * Controls the reasoning effort for models that support adjustable reasoning.\n *\n * - `'high'`: Enable reasoning\n * - `'none'`: Disable reasoning\n */\n reasoningEffort: z.enum([\"high\", \"none\"]).optional()\n});\n\n// src/mistral-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar mistralErrorDataSchema = z2.object({\n object: z2.literal(\"error\"),\n message: z2.string(),\n type: z2.string(),\n param: z2.string().nullable(),\n code: z2.string().nullable()\n});\nvar mistralFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: mistralErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/mistral-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const mistralTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n mistralTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: mistralTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: mistralTools, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: mistralTools, toolChoice: \"any\", toolWarnings };\n // mistral does not support tool mode directly,\n // so we filter the tools and force the tool choice through 'any'\n case \"tool\":\n return {\n tools: mistralTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"any\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/mistral-chat-language-model.ts\nvar MistralChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"application/pdf\": [/^https:\\/\\/.*$/]\n };\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const options = (_a = await parseProviderOptions({\n provider: \"mistral\",\n providerOptions,\n schema: mistralLanguageModelOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n if (presencePenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const structuredOutputs = (_b = options.structuredOutputs) != null ? _b : true;\n const strictJsonSchema = (_c = options.strictJsonSchema) != null ? _c : false;\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && !(responseFormat == null ? void 0 : responseFormat.schema)) {\n prompt = injectJsonInstructionIntoMessages({\n messages: prompt,\n schema: responseFormat.schema\n });\n }\n const baseArgs = {\n // model id:\n model: this.modelId,\n // model specific settings:\n safe_prompt: options.safePrompt,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n random_seed: seed,\n reasoning_effort: options.reasoningEffort,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && (responseFormat == null ? void 0 : responseFormat.schema) != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // mistral-specific provider options:\n document_image_limit: options.documentImageLimit,\n document_page_limit: options.documentPageLimit,\n // messages:\n messages: convertToMistralChatMessages(prompt)\n };\n const {\n tools: mistralTools,\n toolChoice: mistralToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n return {\n args: {\n ...baseArgs,\n tools: mistralTools,\n tool_choice: mistralToolChoice,\n ...mistralTools != null && options.parallelToolCalls !== void 0 ? { parallel_tool_calls: options.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args: body, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n mistralChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && Array.isArray(choice.message.content)) {\n for (const part of choice.message.content) {\n if (part.type === \"thinking\") {\n const reasoningText = extractReasoningContent(part.thinking);\n if (reasoningText.length > 0) {\n content.push({ type: \"reasoning\", text: reasoningText });\n }\n } else if (part.type === \"text\") {\n if (part.text.length > 0) {\n content.push({ type: \"text\", text: part.text });\n }\n }\n }\n } else {\n const text = extractTextContent(choice.message.content);\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertMistralUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n mistralChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const generateId2 = this.generateId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n const textContent = extractTextContent(delta.content);\n if (delta.content != null && Array.isArray(delta.content)) {\n for (const part of delta.content) {\n if (part.type === \"thinking\") {\n const reasoningDelta = extractReasoningContent(part.thinking);\n if (reasoningDelta.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId2();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: reasoningDelta\n });\n }\n }\n }\n }\n if (textContent != null && textContent.length > 0) {\n if (!activeText) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n if ((delta == null ? void 0 : delta.tool_calls) != null) {\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n const toolName = toolCall.function.name;\n const input = toolCall.function.arguments;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: input\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input\n });\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertMistralUsage(usage)\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction extractReasoningContent(thinking) {\n return thinking.filter((chunk) => chunk.type === \"text\").map((chunk) => chunk.text).join(\"\");\n}\nfunction extractTextContent(content) {\n if (typeof content === \"string\") {\n return content;\n }\n if (content == null) {\n return void 0;\n }\n const textContent = [];\n for (const chunk of content) {\n const { type } = chunk;\n switch (type) {\n case \"text\":\n textContent.push(chunk.text);\n break;\n case \"thinking\":\n case \"image_url\":\n case \"reference\":\n break;\n default: {\n const _exhaustiveCheck = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n return textContent.length ? textContent.join(\"\") : void 0;\n}\nvar mistralContentSchema = z3.union([\n z3.string(),\n z3.array(\n z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"image_url\"),\n image_url: z3.union([\n z3.string(),\n z3.object({\n url: z3.string(),\n detail: z3.string().nullable()\n })\n ])\n }),\n z3.object({\n type: z3.literal(\"reference\"),\n reference_ids: z3.array(z3.union([z3.string(), z3.number()]))\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.array(\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n })\n )\n })\n ])\n )\n]).nullish();\nvar mistralUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number()\n});\nvar mistralChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\"),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n object: z3.literal(\"chat.completion\"),\n usage: mistralUsageSchema\n});\nvar mistralChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).optional(),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: mistralUsageSchema.nullish()\n});\n\n// src/mistral-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar MistralEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 32;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n abortSignal,\n headers\n }) {\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\"\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n MistralTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar MistralTextEmbeddingResponseSchema = z4.object({\n data: z4.array(z4.object({ embedding: z4.array(z4.number()) })),\n usage: z4.object({ prompt_tokens: z4.number() }).nullish()\n});\n\n// src/version.ts\nvar VERSION = true ? \"3.0.27\" : \"0.0.0-test\";\n\n// src/mistral-provider.ts\nfunction createMistral(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.mistral.ai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"MISTRAL_API_KEY\",\n description: \"Mistral\"\n })}`,\n ...options.headers\n },\n `ai-sdk/mistral/${VERSION}`\n );\n const createChatModel = (modelId) => new MistralChatLanguageModel(modelId, {\n provider: \"mistral.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: options.generateId\n });\n const createEmbeddingModel = (modelId) => new MistralEmbeddingModel(modelId, {\n provider: \"mistral.embedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Mistral model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar mistral = createMistral();\nexport {\n VERSION,\n createMistral,\n mistral\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "1F54BA7F5306D4D964756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/constants.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js", "../../node_modules/.bun/@aws-sdk+token-providers@3.1056.0/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js", "../../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.45/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js"],
"sourcesContent": [
"import { CredentialsProviderError, getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/core/config\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n callerClientConfig: init.callerClientConfig,\n profile: profileName,\n filepath: init.filepath,\n configFilepath: init.configFilepath,\n ignoreCache: init.ignoreCache,\n logger: init.logger,\n });\n }\n};\n",
"export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n",
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError, getSSOTokenFromFile } from \"@smithy/core/config\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({\n profile,\n filepath,\n configFilepath,\n ignoreCache,\n })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso.js\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n",
"import { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, TokenProviderError, } from \"@smithy/core/config\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTime = new Date(0);\nexport const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n",
"export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n",
"export const getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: coalesce(\"logger\"),\n userAgentAppId: coalesce(\"userAgentAppId\"),\n }));\n return ssoOidcClient;\n};\n",
"import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n",
"import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n",
"import { TokenProviderError } from \"@smithy/core/config\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n",
"import { getSSOTokenFilepath } from \"@smithy/core/config\";\nimport { promises as fsPromises } from \"node:fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n"
],
"mappings": "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",
"debugId": "69636957C80FF24A64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260601202201_amazing_prowler.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260601202201_amazing_prowler\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP TABLE \\`permission\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,iCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA4B,EAC3C,EAEL",
"debugId": "6CE3EB4B68EACBDC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/util/locale.ts"],
"sourcesContent": [
"export function titlecase(str: string) {\n return str.replace(/\\b\\w/g, (c) => c.toUpperCase())\n}\n\nexport function time(input: number): string {\n const date = new Date(input)\n return date.toLocaleTimeString(undefined, { timeStyle: \"short\" })\n}\n\nexport function datetime(input: number): string {\n const date = new Date(input)\n const localTime = time(input)\n const localDate = date.toLocaleDateString()\n return `${localTime} · ${localDate}`\n}\n\nexport function todayTimeOrDateTime(input: number): string {\n const date = new Date(input)\n const now = new Date()\n const isToday =\n date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()\n\n if (isToday) {\n return time(input)\n } else {\n return datetime(input)\n }\n}\n\nexport function number(num: number): string {\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1) + \"M\"\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1) + \"K\"\n }\n return num.toString()\n}\n\nexport function duration(input: number) {\n if (input < 1000) {\n return `${input}ms`\n }\n if (input < 60000) {\n return `${(input / 1000).toFixed(1)}s`\n }\n if (input < 3600000) {\n const minutes = Math.floor(input / 60000)\n const seconds = Math.floor((input % 60000) / 1000)\n return `${minutes}m ${seconds}s`\n }\n if (input < 86400000) {\n const hours = Math.floor(input / 3600000)\n const minutes = Math.floor((input % 3600000) / 60000)\n return `${hours}h ${minutes}m`\n }\n const days = Math.floor(input / 86400000)\n const hours = Math.floor((input % 86400000) / 3600000)\n return `${days}d ${hours}h`\n}\n\nexport function truncate(str: string, len: number): string {\n if (str.length <= len) return str\n return str.slice(0, len - 1) + \"…\"\n}\n\nconst graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" })\n\nexport function truncateWidth(str: string, width: number): string {\n if (width <= 0) return \"\"\n if (Bun.stringWidth(str) <= width) return str\n if (width === 1) return \"…\"\n\n const result: string[] = []\n let used = 0\n for (const item of graphemeSegmenter.segment(str)) {\n const next = Bun.stringWidth(item.segment)\n if (used + next > width - 1) break\n result.push(item.segment)\n used += next\n }\n return result.join(\"\") + \"…\"\n}\n\nexport function truncateLeft(str: string, len: number): string {\n if (str.length <= len) return str\n return \"…\" + str.slice(-(len - 1))\n}\n\nexport function truncateMiddle(str: string, maxLength: number = 35): string {\n if (str.length <= maxLength) return str\n\n const ellipsis = \"…\"\n const keepStart = Math.ceil((maxLength - ellipsis.length) / 2)\n const keepEnd = Math.floor((maxLength - ellipsis.length) / 2)\n\n return str.slice(0, keepStart) + ellipsis + str.slice(-keepEnd)\n}\n\nexport function pluralize(count: number, singular: string, plural: string): string {\n const template = count === 1 ? singular : plural\n return template.replace(\"{}\", count.toString())\n}\n\nexport * as Locale from \"./locale\"\n"
],
"mappings": ";4QAAO,SAAS,CAAS,CAAC,EAAa,CACrC,OAAO,EAAI,QAAQ,QAAS,CAAC,IAAM,EAAE,YAAY,CAAC,EAG7C,SAAS,CAAI,CAAC,EAAuB,CAE1C,OADa,IAAI,KAAK,CAAK,EACf,mBAAmB,OAAW,CAAE,UAAW,OAAQ,CAAC,EAG3D,SAAS,CAAQ,CAAC,EAAuB,CAC9C,IAAM,EAAO,IAAI,KAAK,CAAK,EACrB,EAAY,EAAK,CAAK,EACtB,EAAY,EAAK,mBAAmB,EAC1C,MAAO,GAAG,UAAc,IAGnB,SAAS,CAAmB,CAAC,EAAuB,CACzD,IAAM,EAAO,IAAI,KAAK,CAAK,EACrB,EAAM,IAAI,KAIhB,GAFE,EAAK,YAAY,IAAM,EAAI,YAAY,GAAK,EAAK,SAAS,IAAM,EAAI,SAAS,GAAK,EAAK,QAAQ,IAAM,EAAI,QAAQ,EAGjH,OAAO,EAAK,CAAK,EAEjB,YAAO,EAAS,CAAK,EAIlB,SAAS,CAAM,CAAC,EAAqB,CAC1C,GAAI,GAAO,IACT,OAAQ,EAAM,KAAS,QAAQ,CAAC,EAAI,IAC/B,QAAI,GAAO,KAChB,OAAQ,EAAM,MAAM,QAAQ,CAAC,EAAI,IAEnC,OAAO,EAAI,SAAS,EAGf,SAAS,CAAQ,CAAC,EAAe,CACtC,GAAI,EAAQ,KACV,MAAO,GAAG,MAEZ,GAAI,EAAQ,MACV,MAAO,IAAI,EAAQ,MAAM,QAAQ,CAAC,KAEpC,GAAI,EAAQ,QAAS,CACnB,IAAM,EAAU,KAAK,MAAM,EAAQ,KAAK,EAClC,EAAU,KAAK,MAAO,EAAQ,MAAS,IAAI,EACjD,MAAO,GAAG,MAAY,KAExB,GAAI,EAAQ,SAAU,CACpB,IAAM,EAAQ,KAAK,MAAM,EAAQ,OAAO,EAClC,EAAU,KAAK,MAAO,EAAQ,QAAW,KAAK,EACpD,MAAO,GAAG,MAAU,KAEtB,IAAM,EAAO,KAAK,MAAM,EAAQ,QAAQ,EAClC,EAAQ,KAAK,MAAO,EAAQ,SAAY,OAAO,EACrD,MAAO,GAAG,MAAS,KAGd,SAAS,CAAQ,CAAC,EAAa,EAAqB,CACzD,GAAI,EAAI,QAAU,EAAK,OAAO,EAC9B,OAAO,EAAI,MAAM,EAAG,EAAM,CAAC,EAAI,SAGjC,IAAM,EAAoB,IAAI,KAAK,UAAU,OAAW,CAAE,YAAa,UAAW,CAAC,EAE5E,SAAS,CAAa,CAAC,EAAa,EAAuB,CAChE,GAAI,GAAS,EAAG,MAAO,GACvB,GAAI,IAAI,YAAY,CAAG,GAAK,EAAO,OAAO,EAC1C,GAAI,IAAU,EAAG,MAAO,SAExB,IAAM,EAAmB,CAAC,EACtB,EAAO,EACX,QAAW,KAAQ,EAAkB,QAAQ,CAAG,EAAG,CACjD,IAAM,EAAO,IAAI,YAAY,EAAK,OAAO,EACzC,GAAI,EAAO,EAAO,EAAQ,EAAG,MAC7B,EAAO,KAAK,EAAK,OAAO,EACxB,GAAQ,EAEV,OAAO,EAAO,KAAK,EAAE,EAAI,SAGpB,SAAS,CAAY,CAAC,EAAa,EAAqB,CAC7D,GAAI,EAAI,QAAU,EAAK,OAAO,EAC9B,MAAO,SAAK,EAAI,MAAM,EAAE,EAAM,EAAE,EAG3B,SAAS,CAAc,CAAC,EAAa,EAAoB,GAAY,CAC1E,GAAI,EAAI,QAAU,EAAW,OAAO,EAEpC,IAAM,EAAW,SACX,EAAY,KAAK,MAAM,EAAY,EAAS,QAAU,CAAC,EACvD,EAAU,KAAK,OAAO,EAAY,EAAS,QAAU,CAAC,EAE5D,OAAO,EAAI,MAAM,EAAG,CAAS,EAAI,EAAW,EAAI,MAAM,CAAC,CAAO,EAGzD,SAAS,CAAS,CAAC,EAAe,EAAkB,EAAwB,CAEjF,OADiB,IAAU,EAAI,EAAW,GAC1B,QAAQ,KAAM,EAAM,SAAS,CAAC",
"debugId": "1162861614A99BA164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+cerebras@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/cerebras/dist/index.mjs"],
"sourcesContent": [
"// src/cerebras-provider.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/cerebras-provider.ts\nvar cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string()\n});\nvar cerebrasErrorStructure = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: (data) => data.message\n};\nfunction createCerebras(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.cerebras.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"CEREBRAS_API_KEY\",\n description: \"Cerebras API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cerebras/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cerebras = createCerebras();\nexport {\n VERSION,\n cerebras,\n createCerebras\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";qRAaA,SAAI,OAAiB,cAGjB,OAAsB,OAAE,OAAO,CACjC,QAAS,EAAE,OAAO,EAClB,KAAM,EAAE,OAAO,EACf,MAAO,EAAE,OAAO,EAChB,KAAM,EAAE,OAAO,CACjB,CAAC,EACG,EAAyB,CAC3B,YAAa,EACb,eAAgB,CAAC,IAAS,EAAK,OACjC,EACA,SAAS,CAAc,CAAC,EAAU,CAAC,EAAG,CACpC,IAAI,EACJ,IAAM,EAAU,GACb,EAAK,EAAQ,UAAY,KAAO,EAAK,4BACxC,EACM,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,mBACzB,YAAa,kBACf,CAAC,OACE,EAAQ,OACb,EACA,mBAAmB,GACrB,EACM,EAAsB,CAAC,IAAY,CACvC,OAAO,IAAI,EAAkC,EAAS,CACpD,SAAU,gBACV,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,MACf,eAAgB,EAChB,0BAA2B,EAC7B,CAAC,GAEG,EAAW,CAAC,IAAY,EAAoB,CAAO,EAWzD,OAVA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,KAAO,EAChB,EAAS,eAAiB,CAAC,IAAY,CACrC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,gBAAiB,CAAC,GAErE,EAAS,mBAAqB,EAAS,eACvC,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAE1D,EAET,IAAI,EAAW,EAAe",
"debugId": "8CFD26CF2CDF7B8F64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.execAsync = void 0;\nconst child_process = require(\"child_process\");\nconst util = require(\"util\");\nexports.execAsync = util.promisify(child_process.exec);\n//# sourceMappingURL=execAsync.js.map"
],
"mappings": ";0EAKA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,YAAiB,OACzB,IAAM,qBACA,YACE,YAAY,EAAK,UAAU,EAAc,IAAI",
"debugId": "007958FDDC4F358E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/demo.ts"],
"sourcesContent": [
"// Demo mode for testing direct interactive mode without a real SDK.\n//\n// Enabled with `--demo`. Intercepts prompt submissions and drives the same\n// presentation commits and footer actions as the live transport. This\n// lets you test scrollback formatting, permission UI, question UI, and tool\n// snapshots without making actual model calls. Pass a demo slash command as\n// the initial interactive message to trigger a preview immediately.\n//\n// Slash commands:\n// /permission [kind] → triggers a permission request variant\n// /question [kind] → triggers a question request variant\n// /fmt <kind> → emits a specific tool/text type (text, reasoning, shell,\n// write, edit, patch, task, question, error, mix)\n//\n// Demo mode also handles permission and question replies locally, completing\n// or failing the synthetic tool parts as appropriate.\nimport path from \"path\"\nimport type { PermissionV2Request, QuestionV2Request } from \"@opencode-ai/client/promise\"\nimport { writeSessionOutput } from \"./stream\"\nimport { toolCommit } from \"./stream-v2.subagent\"\nimport type {\n FooterApi,\n MiniToolPart,\n PermissionReply,\n QuestionReject,\n QuestionReply,\n RunPrompt,\n StreamCommit,\n} from \"./types\"\n\nconst KINDS = [\n \"markdown\",\n \"table\",\n \"text\",\n \"reasoning\",\n \"shell\",\n \"write\",\n \"edit\",\n \"patch\",\n \"task\",\n \"question\",\n \"error\",\n \"mix\",\n]\nconst PERMISSIONS = [\"edit\", \"shell\", \"read\", \"task\", \"external\", \"doom\"] as const\nconst QUESTIONS = [\"multi\", \"single\", \"checklist\", \"custom\"] as const\n\ntype PermissionKind = (typeof PERMISSIONS)[number]\ntype QuestionKind = (typeof QUESTIONS)[number]\n\nfunction permissionKind(value: string | undefined): PermissionKind | undefined {\n const next = (value || \"edit\").toLowerCase()\n return PERMISSIONS.find((item) => item === next)\n}\n\nfunction questionKind(value: string | undefined): QuestionKind | undefined {\n const next = (value || \"multi\").toLowerCase()\n return QUESTIONS.find((item) => item === next)\n}\n\nconst SAMPLE_MARKDOWN = [\n \"# Direct Mode Demo\",\n \"\",\n \"This is a realistic assistant response for direct-mode formatting checks.\",\n \"It mixes **bold**, _italic_, `inline code`, links, code fences, and tables in one streamed reply.\",\n \"\",\n \"## Summary\",\n \"\",\n \"- Restored the final markdown flush so the last block is committed on idle.\",\n \"- Switched markdown scrollback commits back to top-level block boundaries.\",\n \"- Added footer-level regression coverage for split-footer rendering.\",\n \"\",\n \"## Status\",\n \"\",\n \"| Area | Before | After | Notes |\",\n \"| --- | --- | --- | --- |\",\n \"| Direct mode | Missing final rows | Stable | Final markdown block now flushes on idle |\",\n \"| Tables | Dropped in streaming mode | Visible | Block-based commits match the working OpenTUI demo |\",\n \"| Tests | Partial coverage | Broader coverage | Includes a footer-level split render capture |\",\n \"\",\n \"> This sample intentionally includes a wide table so you can spot wrapping and commit bugs quickly.\",\n \"\",\n \"```ts\",\n \"const result = { markdown: true, tables: 2, stable: true }\",\n \"```\",\n \"\",\n \"## Files\",\n \"\",\n \"| File | Change |\",\n \"| --- | --- |\",\n \"| `scrollback.surface.ts` | Align markdown commit logic with the split-footer demo |\",\n \"| `footer.ts` | Keep active surfaces across footer-height-only resizes |\",\n \"| `footer.test.ts` | Capture real split-footer markdown payloads during idle completion |\",\n \"\",\n \"Next step: run `/fmt table` if you want a tighter table-only sample.\",\n].join(\"\\n\")\n\nconst SAMPLE_TABLE = [\n \"# Table Sample\",\n \"\",\n \"| Kind | Example | Notes |\",\n \"| --- | --- | --- |\",\n \"| Pipe | `A\\\\|B` | Escaped pipes should stay in one cell |\",\n \"| Unicode | `漢字` | Wide characters should remain aligned |\",\n \"| Wrap | `LongTokenWithoutNaturalBreaks_1234567890` | Useful for width stress |\",\n \"| Status | done | Final row should still appear after idle |\",\n].join(\"\\n\")\n\ntype Ref = {\n msg: string\n part: string\n call: string\n tool: string\n input: Record<string, unknown>\n start: number\n}\n\ntype Ask = {\n ref: Ref\n}\n\ntype Perm = {\n ref: Ref\n done: {\n title: string\n output: string\n metadata?: Record<string, unknown>\n }\n}\n\ntype Permit = {\n ref: Ref\n permission: string\n patterns: string[]\n metadata?: PermissionV2Request[\"metadata\"]\n always: string[]\n done: Perm[\"done\"]\n}\n\ntype State = {\n id: string\n thinking: boolean\n footer: FooterApi\n msg: number\n part: number\n call: number\n perm: number\n ask: number\n perms: Map<string, Perm>\n asks: Map<string, Ask>\n started: Set<string>\n}\n\ntype Input = {\n sessionID: string\n thinking: boolean\n footer: FooterApi\n}\n\nfunction note(footer: FooterApi, text: string): void {\n footer.append({\n kind: \"system\",\n text,\n phase: \"start\",\n source: \"system\",\n })\n}\n\nfunction clearSubagent(footer: FooterApi): void {\n footer.event({\n type: \"stream.subagent\",\n state: {\n tabs: [],\n details: {},\n permissions: [],\n questions: [],\n },\n })\n}\n\nfunction showSubagent(\n state: State,\n input: {\n sessionID: string\n partID: string\n callID: string\n label: string\n description: string\n status: \"running\" | \"completed\" | \"cancelled\" | \"error\"\n title?: string\n toolCalls?: number\n commits: StreamCommit[]\n },\n) {\n state.footer.event({\n type: \"stream.subagent\",\n state: {\n tabs: [\n {\n sessionID: input.sessionID,\n partID: input.partID,\n callID: input.callID,\n label: input.label,\n description: input.description,\n status: input.status,\n title: input.title,\n toolCalls: input.toolCalls,\n lastUpdatedAt: Date.now(),\n },\n ],\n details: {\n [input.sessionID]: {\n sessionID: input.sessionID,\n commits: input.commits,\n },\n },\n permissions: [],\n questions: [],\n },\n })\n}\n\nfunction wait(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n if (!signal) {\n setTimeout(resolve, ms)\n return\n }\n\n if (signal.aborted) {\n resolve()\n return\n }\n\n const done = () => {\n clearTimeout(timer)\n signal.removeEventListener(\"abort\", done)\n resolve()\n }\n\n const timer = setTimeout(() => {\n signal.removeEventListener(\"abort\", done)\n resolve()\n }, ms)\n\n signal.addEventListener(\"abort\", done, { once: true })\n })\n}\n\nfunction split(text: string): string[] {\n if (text.length <= 48) {\n return [text]\n }\n\n const size = Math.ceil(text.length / 3)\n return [text.slice(0, size), text.slice(size, size * 2), text.slice(size * 2)]\n}\n\nfunction take(state: State, key: \"msg\" | \"part\" | \"call\" | \"perm\" | \"ask\", prefix: string): string {\n state[key] += 1\n return `demo_${prefix}_${state[key]}`\n}\n\nfunction present(state: State, commits: StreamCommit[], view?: QuestionV2Request | PermissionV2Request): void {\n writeSessionOutput(\n { footer: state.footer },\n {\n commits,\n footer: view\n ? {\n view: \"action\" in view ? { type: \"permission\", request: view } : { type: \"question\", request: view },\n patch: { status: \"action\" in view ? \"awaiting permission\" : \"awaiting answer\" },\n }\n : undefined,\n },\n )\n}\n\nfunction clearBlocker(state: State): void {\n writeSessionOutput(\n { footer: state.footer },\n { commits: [], footer: { view: { type: \"prompt\" }, patch: { status: \"\" } } },\n )\n}\n\nfunction open(state: State): string {\n return take(state, \"msg\", \"msg\")\n}\n\nasync function emitText(state: State, body: string, signal?: AbortSignal): Promise<void> {\n const msg = open(state)\n const part = take(state, \"part\", \"part\")\n for (const item of split(body)) {\n if (signal?.aborted) {\n return\n }\n\n present(state, [{ kind: \"assistant\", source: \"assistant\", text: item, phase: \"progress\", messageID: msg, partID: part }])\n await wait(45, signal)\n }\n}\n\nasync function emitReasoning(state: State, body: string, signal?: AbortSignal): Promise<void> {\n const msg = open(state)\n const part = take(state, \"part\", \"part\")\n let first = true\n for (const item of split(body)) {\n if (signal?.aborted) {\n return\n }\n\n if (state.thinking) {\n present(state, [\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: first ? `Thinking: ${item.replace(/\\[REDACTED\\]/g, \"\")}` : item.replace(/\\[REDACTED\\]/g, \"\"),\n phase: \"progress\",\n messageID: msg,\n partID: part,\n },\n ])\n first = false\n }\n await wait(45, signal)\n }\n}\n\nfunction make(state: State, tool: string, input: Record<string, unknown>): Ref {\n return {\n msg: open(state),\n part: take(state, \"part\", \"part\"),\n call: take(state, \"call\", \"call\"),\n tool,\n input,\n start: Date.now(),\n }\n}\n\nfunction startTool(state: State, ref: Ref, metadata: Record<string, unknown> = {}): void {\n state.started.add(ref.part)\n present(\n state,\n [\n toolCommit(\n {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: { status: \"running\", input: ref.input, metadata, time: { start: ref.start } },\n },\n \"start\",\n ),\n ],\n )\n}\n\nfunction askPermission(state: State, item: Permit): void {\n startTool(state, item.ref)\n\n const id = take(state, \"perm\", \"perm\")\n state.perms.set(id, {\n ref: item.ref,\n done: item.done,\n })\n\n present(state, [], {\n id,\n sessionID: state.id,\n action: item.permission,\n resources: item.patterns,\n metadata: item.metadata ?? {},\n save: item.always,\n source: { type: \"tool\", messageID: item.ref.msg, callID: item.ref.call },\n })\n}\n\nfunction doneTool(\n state: State,\n ref: Ref,\n output: {\n title: string\n output: string\n metadata?: Record<string, unknown>\n },\n): void {\n if (!state.started.has(ref.part)) startTool(state, ref)\n const part: MiniToolPart = {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: {\n status: \"completed\",\n input: ref.input,\n output: output.output,\n title: output.title,\n metadata: output.metadata ?? {},\n time: { start: ref.start, end: Date.now() },\n },\n }\n present(state, [toolCommit(part, output.output ? \"progress\" : \"final\")])\n}\n\nfunction failTool(state: State, ref: Ref, error: string): void {\n if (!state.started.has(ref.part)) startTool(state, ref)\n present(\n state,\n [\n toolCommit(\n {\n id: ref.part,\n sessionID: state.id,\n messageID: ref.msg,\n callID: ref.call,\n tool: ref.tool,\n state: {\n status: \"error\",\n input: ref.input,\n error,\n metadata: {},\n time: { start: ref.start, end: Date.now() },\n },\n },\n \"final\",\n ),\n ],\n )\n}\n\nfunction emitError(state: State, text: string): void {\n present(state, [{ kind: \"error\", source: \"system\", text, phase: \"start\" }])\n}\n\nasync function emitBash(state: State, signal?: AbortSignal): Promise<void> {\n const ref = make(state, \"shell\", {\n command: \"git status\",\n workdir: process.cwd(),\n description: \"Show git status\",\n })\n startTool(state, ref)\n await wait(70, signal)\n doneTool(state, ref, {\n title: \"git status\",\n output: `${process.cwd()}\\ngit status\\nOn branch demo\\nnothing to commit, working tree clean\\n`,\n metadata: {\n exitCode: 0,\n },\n })\n}\n\nfunction emitWrite(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"write\", {\n filePath: file,\n content: \"export const demo = 42\\n\",\n })\n doneTool(state, ref, {\n title: \"write\",\n output: \"\",\n metadata: {},\n })\n}\n\nfunction emitEdit(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"edit\", {\n filePath: file,\n })\n doneTool(state, ref, {\n title: \"edit\",\n output: \"\",\n metadata: {\n diff: \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\",\n },\n })\n}\n\nfunction emitPatch(state: State): void {\n const file = path.join(process.cwd(), \"src\", \"demo-format.ts\")\n const ref = make(state, \"patch\", {\n patchText: \"*** Begin Patch\\n*** End Patch\",\n })\n doneTool(state, ref, {\n title: \"patch\",\n output: \"\",\n metadata: {\n files: [\n {\n type: \"update\",\n filePath: file,\n relativePath: \"src/demo-format.ts\",\n diff: \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\",\n deletions: 1,\n },\n {\n type: \"add\",\n filePath: path.join(process.cwd(), \"README-demo.md\"),\n relativePath: \"README-demo.md\",\n diff: \"@@ -0,0 +1,4 @@\\n+# Demo\\n+This is a generated preview file.\\n\",\n deletions: 0,\n },\n ],\n },\n })\n}\n\nfunction emitTask(state: State): void {\n const ref = make(state, \"task\", {\n description: \"Scan run/* for reducer touchpoints\",\n subagent_type: \"explore\",\n })\n doneTool(state, ref, {\n title: \"Reducer touchpoints found\",\n output: \"\",\n metadata: {\n toolcalls: 4,\n sessionId: \"sub_demo_1\",\n },\n })\n const part = {\n id: \"sub_demo_tool_1\",\n type: \"tool\",\n sessionID: \"sub_demo_1\",\n messageID: \"sub_demo_msg_tool\",\n callID: \"sub_demo_call_1\",\n tool: \"read\",\n state: {\n status: \"running\",\n input: {\n filePath: \"packages/cli/src/mini/stream.ts\",\n offset: 1,\n limit: 200,\n },\n time: {\n start: Date.now(),\n },\n },\n } satisfies MiniToolPart\n showSubagent(state, {\n sessionID: \"sub_demo_1\",\n partID: ref.part,\n callID: ref.call,\n label: \"Explore\",\n description: \"Scan run/* for reducer touchpoints\",\n status: \"completed\",\n title: \"Reducer touchpoints found\",\n toolCalls: 4,\n commits: [\n {\n kind: \"user\",\n text: \"Scan run/* for reducer touchpoints\",\n phase: \"start\",\n source: \"system\",\n },\n {\n kind: \"reasoning\",\n text: \"Thinking: tracing reducer and footer boundaries\",\n phase: \"progress\",\n source: \"reasoning\",\n messageID: \"sub_demo_msg_reasoning\",\n partID: \"sub_demo_reasoning_1\",\n },\n {\n kind: \"tool\",\n text: \"running read\",\n phase: \"start\",\n source: \"tool\",\n messageID: \"sub_demo_msg_tool\",\n partID: \"sub_demo_tool_1\",\n tool: \"read\",\n part,\n },\n {\n kind: \"assistant\",\n text: \"Footer updates flow through stream.ts into RunFooter\",\n phase: \"progress\",\n source: \"assistant\",\n messageID: \"sub_demo_msg_text\",\n partID: \"sub_demo_text_1\",\n },\n ],\n })\n}\n\nfunction emitQuestionTool(state: State): void {\n const ref = make(state, \"question\", {\n questions: [\n {\n header: \"Style\",\n question: \"Which output style do you want to inspect?\",\n options: [\n { label: \"Diff\", description: \"Show diff block\" },\n { label: \"Code\", description: \"Show code block\" },\n ],\n multiple: false,\n },\n {\n header: \"Extras\",\n question: \"Pick extra rows\",\n options: [\n { label: \"Usage\", description: \"Add usage row\" },\n { label: \"Duration\", description: \"Add duration row\" },\n ],\n multiple: true,\n custom: true,\n },\n ],\n })\n doneTool(state, ref, {\n title: \"question\",\n output: \"\",\n metadata: {\n answers: [[\"Diff\"], [\"Usage\", \"custom-note\"]],\n },\n })\n}\n\nfunction emitPermission(state: State, kind: PermissionKind = \"edit\"): void {\n const root = process.cwd()\n const file = path.join(root, \"src\", \"demo-format.ts\")\n\n if (kind === \"shell\") {\n const command = \"git status --short\"\n const ref = make(state, \"shell\", {\n command,\n workdir: root,\n description: \"Inspect worktree changes\",\n })\n askPermission(state, {\n ref,\n permission: \"shell\",\n patterns: [command],\n always: [\"*\"],\n done: {\n title: \"git status --short\",\n output: `${root}\\ngit status --short\\n M src/demo-format.ts\\n?? src/demo-permission.ts\\n`,\n metadata: {\n exitCode: 0,\n },\n },\n })\n return\n }\n\n if (kind === \"read\") {\n const target = path.join(root, \"package.json\")\n const ref = make(state, \"read\", {\n filePath: target,\n offset: 1,\n limit: 80,\n })\n askPermission(state, {\n ref,\n permission: \"read\",\n patterns: [target],\n always: [target],\n done: {\n title: \"read\",\n output: [\"1: {\", '2: \"name\": \"opencode\",', '3: \"private\": true', \"4: }\"].join(\"\\n\"),\n metadata: {},\n },\n })\n return\n }\n\n if (kind === \"task\") {\n const ref = make(state, \"task\", {\n description: \"Inspect footer spacing across direct-mode prompts\",\n subagent_type: \"explore\",\n })\n askPermission(state, {\n ref,\n permission: \"task\",\n patterns: [\"explore\"],\n always: [\"*\"],\n done: {\n title: \"Footer spacing checked\",\n output: \"\",\n metadata: {\n toolcalls: 3,\n sessionId: \"sub_demo_perm_1\",\n },\n },\n })\n return\n }\n\n if (kind === \"external\") {\n const dir = path.join(path.dirname(root), \"demo-shared\")\n const target = path.join(dir, \"README.md\")\n const ref = make(state, \"read\", {\n filePath: target,\n offset: 1,\n limit: 40,\n })\n askPermission(state, {\n ref,\n permission: \"external_directory\",\n patterns: [`${dir}/**`],\n metadata: {\n parentDir: dir,\n filepath: target,\n },\n always: [`${dir}/**`],\n done: {\n title: \"read\",\n output: `1: # External demo\\n2: Shared preview file\\nPath: ${target}`,\n metadata: {},\n },\n })\n return\n }\n\n if (kind === \"doom\") {\n const ref = make(state, \"task\", {\n description: \"Retry the formatter after repeated failures\",\n subagent_type: \"general\",\n })\n askPermission(state, {\n ref,\n permission: \"doom_loop\",\n patterns: [\"*\"],\n always: [\"*\"],\n done: {\n title: \"Retry allowed\",\n output: \"Continuing after repeated failures.\\n\",\n metadata: {},\n },\n })\n return\n }\n\n const diff = \"@@ -1 +1 @@\\n-export const demo = 1\\n+export const demo = 42\\n\"\n const ref = make(state, \"edit\", {\n filePath: file,\n filepath: file,\n diff,\n })\n askPermission(state, {\n ref,\n permission: \"edit\",\n patterns: [file],\n always: [file],\n done: {\n title: \"edit\",\n output: \"\",\n metadata: {\n diff,\n },\n },\n })\n}\n\nfunction emitQuestion(state: State, kind: QuestionKind = \"multi\"): void {\n const questions = (() => {\n if (kind === \"single\") {\n return [\n {\n header: \"Mode\",\n question: \"Which footer should be the reference for spacing checks?\",\n options: [\n { label: \"Permission\", description: \"Inspect the permission footer\" },\n { label: \"Question\", description: \"Keep this question footer open\" },\n { label: \"Prompt\", description: \"Return to the normal composer\" },\n ],\n multiple: false,\n custom: false,\n },\n ]\n }\n\n if (kind === \"checklist\") {\n return [\n {\n header: \"Checks\",\n question: \"Select the direct-mode cases you want to inspect next\",\n options: [\n { label: \"Diff\", description: \"Show an edit diff in the footer\" },\n { label: \"Task\", description: \"Show a structured task summary\" },\n { label: \"Error\", description: \"Show an error transcript row\" },\n ],\n multiple: true,\n custom: false,\n },\n ]\n }\n\n if (kind === \"custom\") {\n return [\n {\n header: \"Reply\",\n question: \"What custom answer should appear in the footer preview?\",\n options: [\n { label: \"Short note\", description: \"Keep the answer to one line\" },\n { label: \"Wrapped note\", description: \"Use a longer answer to test wrapping\" },\n ],\n multiple: false,\n custom: true,\n },\n ]\n }\n\n return [\n {\n header: \"Layout\",\n question: \"Which footer view should stay active while testing?\",\n options: [\n { label: \"Prompt\", description: \"Return to prompt\" },\n { label: \"Question\", description: \"Keep question open\" },\n ],\n multiple: false,\n },\n {\n header: \"Rows\",\n question: \"Pick formatting previews\",\n options: [\n { label: \"Diff\", description: \"Emit edit diff\" },\n { label: \"Task\", description: \"Emit task card\" },\n ],\n multiple: true,\n custom: true,\n },\n ]\n })()\n\n const ref = make(state, \"question\", { questions })\n startTool(state, ref)\n\n const id = take(state, \"ask\", \"ask\")\n state.asks.set(id, { ref })\n\n present(state, [], {\n id,\n sessionID: state.id,\n questions,\n tool: { messageID: ref.msg, callID: ref.call },\n })\n}\n\nasync function emitFmt(state: State, kind: string, body: string, signal?: AbortSignal): Promise<boolean> {\n if (kind === \"text\") {\n await emitText(state, body || SAMPLE_MARKDOWN, signal)\n return true\n }\n\n if (kind === \"markdown\" || kind === \"md\") {\n await emitText(state, body || SAMPLE_MARKDOWN, signal)\n return true\n }\n\n if (kind === \"table\") {\n await emitText(state, body || SAMPLE_TABLE, signal)\n return true\n }\n\n if (kind === \"reasoning\") {\n await emitReasoning(state, body || \"Planning next steps [REDACTED] while preserving reducer ordering.\", signal)\n return true\n }\n\n if (kind === \"shell\") {\n await emitBash(state, signal)\n return true\n }\n\n if (kind === \"write\") {\n emitWrite(state)\n return true\n }\n\n if (kind === \"edit\") {\n emitEdit(state)\n return true\n }\n\n if (kind === \"patch\") {\n emitPatch(state)\n return true\n }\n\n if (kind === \"task\") {\n emitTask(state)\n return true\n }\n\n if (kind === \"question\") {\n emitQuestionTool(state)\n return true\n }\n\n if (kind === \"error\") {\n emitError(state, body || \"demo error event\")\n return true\n }\n\n if (kind === \"mix\") {\n await emitText(state, SAMPLE_MARKDOWN, signal)\n await wait(50, signal)\n await emitReasoning(state, \"Thinking through formatter edge cases [REDACTED].\", signal)\n await wait(50, signal)\n await emitBash(state, signal)\n emitWrite(state)\n emitEdit(state)\n emitPatch(state)\n emitTask(state)\n emitQuestionTool(state)\n emitError(state, \"demo mixed scenario error\")\n return true\n }\n\n return false\n}\n\nfunction intro(state: State): void {\n note(\n state.footer,\n [\n \"Demo slash commands enabled for interactive mode.\",\n `- /permission [kind] (${PERMISSIONS.join(\", \")})`,\n `- /question [kind] (${QUESTIONS.join(\", \")})`,\n `- /fmt <kind> (${KINDS.join(\", \")})`,\n \"Examples:\",\n \"- /permission shell\",\n \"- /question custom\",\n \"- /fmt markdown\",\n \"- /fmt table\",\n \"- /fmt text your custom text\",\n ].join(\"\\n\"),\n )\n}\n\nexport function createRunDemo(input: Input) {\n const state: State = {\n id: input.sessionID,\n thinking: input.thinking,\n footer: input.footer,\n msg: 0,\n part: 0,\n call: 0,\n perm: 0,\n ask: 0,\n perms: new Map(),\n asks: new Map(),\n started: new Set(),\n }\n\n const start = async (): Promise<void> => {\n intro(state)\n }\n\n const prompt = async (line: RunPrompt, signal?: AbortSignal): Promise<boolean> => {\n const text = line.text.trim()\n const list = text.split(/\\s+/)\n const cmd = list[0] || \"\"\n\n clearSubagent(state.footer)\n\n if (cmd === \"/help\") {\n intro(state)\n return true\n }\n\n if (cmd === \"/permission\") {\n const kind = permissionKind(list[1])\n if (!kind) {\n note(state.footer, `Pick a permission kind: ${PERMISSIONS.join(\", \")}`)\n return true\n }\n\n emitPermission(state, kind)\n return true\n }\n\n if (cmd === \"/question\") {\n const kind = questionKind(list[1])\n if (!kind) {\n note(state.footer, `Pick a question kind: ${QUESTIONS.join(\", \")}`)\n return true\n }\n\n emitQuestion(state, kind)\n return true\n }\n\n if (cmd === \"/fmt\") {\n const kind = (list[1] || \"\").toLowerCase()\n const body = list.slice(2).join(\" \")\n if (!kind) {\n note(state.footer, `Pick a kind: ${KINDS.join(\", \")}`)\n return true\n }\n\n const ok = await emitFmt(state, kind, body, signal)\n if (ok) {\n return true\n }\n\n note(state.footer, `Unknown kind \"${kind}\". Use: ${KINDS.join(\", \")}`)\n return true\n }\n\n return false\n }\n\n const permission = (input: PermissionReply): boolean => {\n const item = state.perms.get(input.requestID)\n if (!item || !input.reply) {\n return false\n }\n\n state.perms.delete(input.requestID)\n clearBlocker(state)\n\n if (input.reply === \"reject\") {\n failTool(state, item.ref, input.message || \"permission rejected\")\n return true\n }\n\n doneTool(state, item.ref, item.done)\n return true\n }\n\n const questionReply = (input: QuestionReply): boolean => {\n const ask = state.asks.get(input.requestID)\n if (!ask || !input.answers) {\n return false\n }\n\n state.asks.delete(input.requestID)\n clearBlocker(state)\n doneTool(state, ask.ref, {\n title: \"question\",\n output: \"\",\n metadata: {\n answers: input.answers,\n },\n })\n return true\n }\n\n const questionReject = (input: QuestionReject): boolean => {\n const ask = state.asks.get(input.requestID)\n if (!ask) {\n return false\n }\n\n state.asks.delete(input.requestID)\n clearBlocker(state)\n failTool(state, ask.ref, \"question rejected\")\n return true\n }\n\n return {\n start,\n prompt,\n permission,\n questionReply,\n questionReject,\n }\n}\n"
],
"mappings": "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",
"debugId": "CD89C3C104FD559564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/llm.ts"],
"sourcesContent": [
"export * as LLM from \"./llm.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\n\nexport const ProviderMetadata = Schema.Record(Schema.String, Schema.Record(Schema.String, Schema.Unknown)).annotate({\n identifier: \"LLM.ProviderMetadata\",\n})\nexport type ProviderMetadata = Schema.Schema.Type<typeof ProviderMetadata>\n\nexport const FinishReason = Schema.Literals([\"stop\", \"length\", \"tool-calls\", \"content-filter\", \"error\", \"unknown\"])\nexport type FinishReason = typeof FinishReason.Type\n\nexport interface ToolTextContent extends Schema.Schema.Type<typeof ToolTextContent> {}\nexport const ToolTextContent = Schema.Struct({\n type: Schema.Literal(\"text\"),\n text: Schema.String,\n}).annotate({ identifier: \"Tool.TextContent\" })\n\nexport interface ToolFileContent extends Schema.Schema.Type<typeof ToolFileContent> {}\nexport const ToolFileContent = Schema.Struct({\n type: Schema.Literal(\"file\"),\n uri: Schema.String,\n mime: Schema.String,\n name: optional(Schema.String),\n}).annotate({ identifier: \"Tool.FileContent\" })\n\nexport const ToolContent = Schema.Union([ToolTextContent, ToolFileContent])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"LLM.ToolContent\" })\nexport type ToolContent = Schema.Schema.Type<typeof ToolContent>\n"
],
"mappings": ";oRAKO,SAAM,OAAmB,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,EAAO,OAAQ,EAAO,OAAO,CAAC,EAAE,SAAS,CAClH,WAAY,sBACd,CAAC,EAGY,EAAe,EAAO,SAAS,CAAC,OAAQ,SAAU,aAAc,iBAAkB,QAAS,SAAS,CAAC,EAIrG,EAAkB,EAAO,OAAO,CAC3C,KAAM,EAAO,QAAQ,MAAM,EAC3B,KAAM,EAAO,MACf,CAAC,EAAE,SAAS,CAAE,WAAY,kBAAmB,CAAC,EAGjC,EAAkB,EAAO,OAAO,CAC3C,KAAM,EAAO,QAAQ,MAAM,EAC3B,IAAK,EAAO,OACZ,KAAM,EAAO,OACb,KAAM,EAAS,EAAO,MAAM,CAC9B,CAAC,EAAE,SAAS,CAAE,WAAY,kBAAmB,CAAC,EAEjC,EAAc,EAAO,MAAM,CAAC,EAAiB,CAAe,CAAC,EACvE,KAAK,EAAO,cAAc,MAAM,CAAC,EACjC,SAAS,CAAE,WAAY,iBAAkB,CAAC",
"debugId": "3AFBF18BCDB2A83664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E633BA7310180E4264756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/service/restart.ts"],
"sourcesContent": [
"import { EOL } from \"os\"\nimport { Effect } from \"effect\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.restart,\n Effect.fn(\"cli.service.restart\")(function* () {\n const options = yield* ServiceConfig.options()\n yield* Service.stop(options, { targetVersion: options.version })\n const transport = yield* Service.start(options)\n process.stdout.write(transport.url + EOL)\n }),\n)\n"
],
"mappings": ";u9BAAA,mBAAS,gBAOT,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,aACnC,OAAO,QAAG,0BAAqB,OAAE,cAAU,OAAG,MAC5C,SAAM,OAAU,WAAO,OAAc,aAAQ,OAC7C,WAAO,OAAQ,UAAK,EAAS,CAAE,cAAe,EAAQ,OAAQ,CAAC,EAC/D,IAAM,EAAY,MAAO,EAAQ,MAAM,CAAO,EAC9C,QAAQ,OAAO,MAAM,EAAU,IAAM,CAAG,EACzC,CACH",
"debugId": "2D9BA204C0E22F1E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js", "../../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.43/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/retry-wrapper.js"],
"sourcesContent": [
"import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { CredentialsProviderError } from \"@smithy/core/config\";\nimport { NodeHttpHandler } from \"@smithy/node-http-handler\";\nimport fs from \"node:fs/promises\";\nimport { checkUrl } from \"./checkUrl\";\nimport { createGetRequest, getCredentials } from \"./requestHelpers\";\nimport { retryWrapper } from \"./retry-wrapper\";\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nexport const fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger?.warn\n ? console.warn\n : options.logger.warn.bind(options.logger);\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n checkUrl(url, options.logger);\n const requestHandler = NodeHttpHandler.create({ connectionTimeout: options.timeout ?? 1000 });\n const requestTimeout = options.timeout ?? 1000;\n const provider = retryWrapper(async () => {\n const request = createGetRequest(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await fs.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request, { requestTimeout });\n return getCredentials(result.response).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n return async () => {\n try {\n return await provider();\n }\n finally {\n requestHandler.destroy?.();\n }\n };\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nexport const checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { HttpRequest } from \"@smithy/core/protocols\";\nimport { parseRfc3339DateTime } from \"@smithy/core/serde\";\nimport { sdkStreamMixin } from \"@smithy/core/serde\";\nexport function createGetRequest(url) {\n return new HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nexport async function getCredentials(response, logger) {\n const stream = sdkStreamMixin(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: parseRfc3339DateTime(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n",
"export const retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\n"
],
"mappings": "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",
"debugId": "39BE08726FAD6F5C64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+node-http-handler@4.7.5/node_modules/@smithy/node-http-handler/dist-cjs/index.js"],
"sourcesContent": [
"'use strict';\n\nvar node_https = require('node:https');\nvar protocols = require('@smithy/core/protocols');\nvar node_stream = require('node:stream');\nvar http2 = require('node:http2');\n\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name in headers) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\n\nconst timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n\nconst DEFER_EVENT_LISTENER_TIME$2 = 1000;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2);\n};\n\nconst setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n\nconst DEFER_EVENT_LISTENER_TIME$1 = 3000;\nconst setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n\nconst MIN_WAIT_TIME = 6_000;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers;\n const expect = headers ? headers.Expect || headers.expect : undefined;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof node_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n\nconst DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nclass NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n let socketWarningTimeoutId = -1;\n let connectionTimeoutId = -1;\n let requestTimeoutId = -1;\n let socketTimeoutId = -1;\n let keepAliveTimeoutId = -1;\n const clearTimeouts = () => {\n timing.clearTimeout(socketWarningTimeoutId);\n timing.clearTimeout(connectionTimeoutId);\n timing.clearTimeout(requestTimeoutId);\n timing.clearTimeout(socketTimeoutId);\n timing.clearTimeout(keepAliveTimeoutId);\n };\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers;\n const expectContinue = headers ? (headers.Expect ?? headers.expect) === \"100-continue\" : false;\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n socketWarningTimeoutId = timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000));\n const queryString = request.query ? protocols.buildQueryString(request.query) : \"\";\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);\n requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console);\n socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n keepAliveTimeoutId = setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n });\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n clearTimeouts();\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const { Agent, request } = await import('node:http');\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n\nconst ids = new Uint16Array(1);\nclass ClientHttp2SessionRef {\n id = ids[0]++;\n total = 0;\n max = 0;\n session;\n refs = 0;\n constructor(session) {\n session.unref();\n this.session = session;\n }\n retain() {\n if (this.session.destroyed) {\n throw new Error(\"@smithy/node-http-handler - cannot acquire reference to destroyed session.\");\n }\n this.refs += 1;\n this.total += 1;\n this.max = Math.max(this.refs, this.max);\n this.session.ref();\n }\n free() {\n if (this.session.destroyed) {\n return;\n }\n this.refs -= 1;\n if (this.refs === 0) {\n this.session.unref();\n }\n if (this.refs < 0) {\n throw new Error(\"@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.\");\n }\n }\n deref() {\n return this.session;\n }\n close() {\n if (!this.session.closed) {\n this.session.close();\n }\n }\n destroy() {\n this.refs = 0;\n if (!this.session.destroyed) {\n this.session.destroy();\n }\n }\n useCount() {\n return this.refs;\n }\n}\n\nclass NodeHttp2ConnectionPool {\n sessions = [];\n maxConcurrency = 0;\n constructor(sessions) {\n this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));\n }\n poll() {\n let cleanup = false;\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n cleanup = true;\n continue;\n }\n if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {\n return session;\n }\n }\n if (cleanup) {\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n this.remove(session);\n }\n }\n }\n }\n offerLast(ref) {\n this.sessions.push(ref);\n }\n remove(ref) {\n const ix = this.sessions.indexOf(ref);\n if (ix > -1) {\n this.sessions.splice(ix, 1);\n }\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n setMaxConcurrency(maxConcurrency) {\n this.maxConcurrency = maxConcurrency;\n }\n destroy(ref) {\n this.remove(ref);\n ref.destroy();\n }\n}\n\nclass NodeHttp2ConnectionManager {\n config;\n connectOptions;\n connectionPools = new Map();\n constructor(config) {\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const pool = this.getPool(url);\n if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {\n const available = pool.poll();\n if (available) {\n available.retain();\n return available;\n }\n }\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\"Fail to set maxConcurrentStreams to \" +\n this.config.maxConcurrency +\n \"when creating new session for \" +\n requestContext.destination.toString());\n }\n });\n }\n const graceful = () => {\n this.removeFromPoolAndClose(url, ref);\n };\n const ensureDestroyed = () => {\n this.removeFromPoolAndCheckedDestroy(url, ref);\n };\n session.on(\"goaway\", graceful);\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n pool.offerLast(ref);\n ref.retain();\n return ref;\n }\n release(_requestContext, ref) {\n ref.free();\n }\n createIsolatedSession(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n session.settings({ maxConcurrentStreams: 1 });\n const ensureDestroyed = () => {\n ref.destroy();\n };\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n ref.retain();\n return ref;\n }\n destroy() {\n for (const [url, connectionPool] of this.connectionPools) {\n for (const session of [...connectionPool]) {\n session.destroy();\n }\n this.connectionPools.delete(url);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (maxConcurrentStreams && maxConcurrentStreams <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n for (const pool of this.connectionPools.values()) {\n pool.setMaxConcurrency(maxConcurrentStreams);\n }\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions) {\n this.connectOptions = nodeHttp2ConnectOptions;\n }\n debug() {\n const pools = {};\n for (const [url, pool] of this.connectionPools) {\n const sessions = [];\n for (const ref of pool) {\n sessions.push({\n id: ref.id,\n active: ref.useCount(),\n maxConcurrent: ref.max,\n totalRequests: ref.total,\n });\n }\n pools[url] = { sessions };\n }\n return pools;\n }\n removeFromPoolAndClose(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.close();\n }\n removeFromPoolAndCheckedDestroy(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.destroy();\n }\n getPool(url) {\n if (!this.connectionPools.has(url)) {\n const pool = new NodeHttp2ConnectionPool();\n if (this.config.maxConcurrency) {\n pool.setMaxConcurrency(this.config.maxConcurrency);\n }\n this.connectionPools.set(url, pool);\n }\n return this.connectionPools.get(url);\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n connect(url) {\n return this.connectOptions === undefined ? http2.connect(url) : http2.connect(url, this.connectOptions);\n }\n}\n\nclass NodeHttp2Handler {\n config;\n configProvider;\n metadata = { handlerProtocol: \"h2\" };\n connectionManager = new NodeHttp2ConnectionManager({});\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttp2Handler(instanceOrOptions);\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n const { disableConcurrentStreams, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config;\n this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);\n if (maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);\n }\n if (nodeHttp2ConnectOptions) {\n this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions);\n }\n }\n const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;\n const useIsolatedSession = disableConcurrentStreams || isEventStream;\n const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;\n return new Promise((_resolve, _reject) => {\n let fulfilled = false;\n let writeRequestBodyPromise = undefined;\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n fulfilled = true;\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const connectConfig = {\n requestTimeout: this.config?.sessionTimeout,\n isEventStream,\n };\n const ref = useIsolatedSession\n ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)\n : this.connectionManager.lease(requestContext, connectConfig);\n const session = ref.deref();\n const rejectWithDestroy = (err) => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n fulfilled = true;\n reject(err);\n };\n const queryString = query ? protocols.buildQueryString(query) : \"\";\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const clientHttp2Stream = session.request({\n ...request.headers,\n [http2.constants.HTTP2_HEADER_PATH]: path,\n [http2.constants.HTTP2_HEADER_METHOD]: method,\n });\n if (effectiveRequestTimeout) {\n clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {\n clientHttp2Stream.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = () => {\n clientHttp2Stream.close();\n const abortError = buildAbortError(abortSignal);\n rejectWithDestroy(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n clientHttp2Stream.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n clientHttp2Stream.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n clientHttp2Stream.on(\"error\", rejectWithDestroy);\n clientHttp2Stream.on(\"aborted\", () => {\n rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));\n });\n clientHttp2Stream.on(\"response\", (headers) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: headers[\":status\"] ?? -1,\n headers: getTransformedHeaders(headers),\n body: clientHttp2Stream,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (useIsolatedSession) {\n session.close();\n }\n });\n clientHttp2Stream.on(\"close\", () => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n else {\n this.connectionManager.release(requestContext, ref);\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\n\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n\nexports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT;\nexports.NodeHttp2Handler = NodeHttp2Handler;\nexports.NodeHttpHandler = NodeHttpHandler;\nexports.streamCollector = streamCollector;\n"
],
"mappings": ";2HAEA,SAAI,aACA,MACA,cACA,aAEJ,SAAS,CAAe,CAAC,EAAa,CAClC,IAAM,EAAS,GAAe,OAAO,IAAgB,UAAY,WAAY,EACvE,EAAY,OACZ,OACN,GAAI,EAAQ,CACR,GAAI,aAAkB,MAAO,CACzB,IAAM,EAAiB,MAAM,iBAAiB,EAG9C,OAFA,EAAW,KAAO,aAClB,EAAW,MAAQ,EACZ,EAEX,IAAM,EAAiB,MAAM,OAAO,CAAM,CAAC,EAE3C,OADA,EAAW,KAAO,aACX,EAEX,IAAM,EAAiB,MAAM,iBAAiB,EAE9C,OADA,EAAW,KAAO,aACX,EAGX,IAAM,GAA6B,CAAC,aAAc,QAAS,WAAW,EAEhE,EAAwB,CAAC,IAAY,CACvC,IAAM,EAAqB,CAAC,EAC5B,QAAW,KAAQ,EAAS,CACxB,IAAM,EAAe,EAAQ,GAC7B,EAAmB,GAAQ,MAAM,QAAQ,CAAY,EAAI,EAAa,KAAK,GAAG,EAAI,EAEtF,OAAO,GAGL,EAAS,CACX,WAAY,CAAC,EAAI,IAAO,WAAW,EAAI,CAAE,EACzC,aAAc,CAAC,IAAc,aAAa,CAAS,CACvD,EAEM,EAA8B,KAC9B,GAAuB,CAAC,EAAS,EAAQ,EAAc,IAAM,CAC/D,GAAI,CAAC,EACD,MAAO,GAEX,IAAM,EAAkB,CAAC,IAAW,CAChC,IAAM,EAAY,EAAO,WAAW,IAAM,CACtC,EAAQ,QAAQ,EAChB,EAAO,OAAO,OAAW,MAAM,kIAAkI,OAAiB,EAAG,CACjL,KAAM,cACV,CAAC,CAAC,GACH,EAAc,CAAM,EACjB,EAAe,CAAC,IAAW,CAC7B,GAAI,GAAQ,WACR,EAAO,GAAG,UAAW,IAAM,CACvB,EAAO,aAAa,CAAS,EAChC,EAGD,OAAO,aAAa,CAAS,GAGrC,GAAI,EAAQ,OACR,EAAa,EAAQ,MAAM,EAG3B,OAAQ,GAAG,SAAU,CAAY,GAGzC,GAAI,EAAc,KAEd,OADA,EAAgB,CAAC,EACV,EAEX,OAAO,EAAO,WAAW,EAAgB,KAAK,KAAM,CAA2B,EAAG,CAA2B,GAG3G,GAAoB,CAAC,EAAK,EAAQ,EAAc,EAAG,EAAuB,IAAW,CACvF,GAAI,EACA,OAAO,EAAO,WAAW,IAAM,CAC3B,IAAI,EAAM,gCAAgC,EAAwB,QAAU,iDAAiD,uBAC7H,GAAI,EAAuB,CACvB,IAAM,EAAQ,OAAO,OAAW,MAAM,CAAG,EAAG,CACxC,KAAM,eACN,KAAM,WACV,CAAC,EACD,EAAI,QAAQ,CAAK,EACjB,EAAO,CAAK,EAGZ,QAAO,0FACP,GAAQ,OAAO,CAAG,GAEvB,CAAW,EAElB,MAAO,IAGL,GAA8B,KAC9B,GAAqB,CAAC,GAAW,YAAW,kBAAkB,EAAc,KAAgC,CAC9G,GAAI,IAAc,GACd,MAAO,GAEX,IAAM,EAAmB,IAAM,CAC3B,GAAI,EAAQ,OACR,EAAQ,OAAO,aAAa,EAAW,GAAkB,CAAC,EAG1D,OAAQ,GAAG,SAAU,CAAC,IAAW,CAC7B,EAAO,aAAa,EAAW,GAAkB,CAAC,EACrD,GAGT,GAAI,IAAgB,EAEhB,OADA,EAAiB,EACV,EAEX,OAAO,EAAO,WAAW,EAAkB,CAAW,GAGpD,EAA4B,KAC5B,GAAmB,CAAC,EAAS,EAAQ,EAAc,IAAM,CAC3D,IAAM,EAAkB,CAAC,IAAW,CAChC,IAAM,EAAU,EAAc,EACxB,EAAY,IAAM,CACpB,EAAQ,QAAQ,EAChB,EAAO,OAAO,OAAW,MAAM,kEAAkE,2DAAqE,EAAG,CAAE,KAAM,cAAe,CAAC,CAAC,GAEtM,GAAI,EAAQ,OACR,EAAQ,OAAO,WAAW,EAAS,CAAS,EAC5C,EAAQ,GAAG,QAAS,IAAM,EAAQ,QAAQ,eAAe,UAAW,CAAS,CAAC,EAG9E,OAAQ,WAAW,EAAS,CAAS,GAG7C,GAAI,EAAI,GAAe,EAAc,KAEjC,OADA,EAAgB,CAAC,EACV,EAEX,OAAO,EAAO,WAAW,EAAgB,KAAK,KAAM,IAAgB,EAAI,EAAI,CAAyB,EAAG,CAAyB,GAG/H,EAAgB,KACtB,eAAe,CAAgB,CAAC,EAAa,EAAS,EAAuB,EAAe,EAAgB,GAAO,CAC/G,IAAM,EAAU,EAAQ,QAClB,EAAS,EAAU,EAAQ,QAAU,EAAQ,OAAS,OACxD,EAAY,GACZ,EAAW,GACf,GAAI,CAAC,GAAiB,IAAW,eAC7B,EAAW,MAAM,QAAQ,KAAK,CAC1B,IAAI,QAAQ,CAAC,IAAY,CACrB,EAAY,OAAO,EAAO,WAAW,IAAM,EAAQ,EAAI,EAAG,KAAK,IAAI,EAAe,CAAoB,CAAC,CAAC,EAC3G,EACD,IAAI,QAAQ,CAAC,IAAY,CACrB,EAAY,GAAG,WAAY,IAAM,CAC7B,EAAO,aAAa,CAAS,EAC7B,EAAQ,EAAI,EACf,EACD,EAAY,GAAG,WAAY,IAAM,CAC7B,EAAO,aAAa,CAAS,EAC7B,EAAQ,EAAK,EAChB,EACD,EAAY,GAAG,QAAS,IAAM,CAC1B,EAAO,aAAa,CAAS,EAC7B,EAAQ,EAAK,EAChB,EACJ,CACL,CAAC,EAEL,GAAI,EACA,GAAU,EAAa,EAAQ,IAAI,EAG3C,SAAS,EAAS,CAAC,EAAa,EAAM,CAClC,GAAI,aAAgB,EAAY,SAAU,CACtC,EAAK,KAAK,CAAW,EACrB,OAEJ,GAAI,EAAM,CACN,IAAM,EAAW,OAAO,SAAS,CAAI,EAErC,GAAI,GADa,OAAO,IAAS,SACP,CACtB,GAAI,GAAY,EAAK,aAAe,EAChC,EAAY,IAAI,EAGhB,OAAY,IAAI,CAAI,EAExB,OAEJ,IAAM,EAAQ,EACd,GAAI,OAAO,IAAU,UACjB,EAAM,QACN,OAAO,EAAM,aAAe,UAC5B,OAAO,EAAM,aAAe,SAAU,CACtC,EAAY,IAAI,OAAO,KAAK,EAAM,OAAQ,EAAM,WAAY,EAAM,UAAU,CAAC,EAC7E,OAEJ,EAAY,IAAI,OAAO,KAAK,CAAI,CAAC,EACjC,OAEJ,EAAY,IAAI,EAGpB,IAAM,GAA0B,EAC5B,EAAS,OACT,EAAW,OACf,MAAM,CAAgB,CAClB,OACA,eACA,uBAAyB,EACzB,cAAgB,GAChB,SAAW,CAAE,gBAAiB,UAAW,QAClC,OAAM,CAAC,EAAmB,CAC7B,GAAI,OAAO,GAAmB,SAAW,WACrC,OAAO,EAEX,OAAO,IAAI,EAAgB,CAAiB,QAEzC,iBAAgB,CAAC,EAAO,EAAwB,EAAS,QAAS,CACrE,IAAQ,UAAS,WAAU,cAAe,EAC1C,GAAI,OAAO,IAAe,UAAY,IAAe,IACjD,OAAO,EAEX,IAAM,EAAW,MACjB,GAAI,KAAK,IAAI,EAAI,EAAW,EACxB,OAAO,EAEX,GAAI,GAAW,EACX,QAAW,KAAU,EAAS,CAC1B,IAAM,EAAe,EAAQ,IAAS,QAAU,EAC1C,EAAmB,EAAS,IAAS,QAAU,EACrD,GAAI,GAAgB,GAAc,GAAoB,EAAI,EAItD,OAHA,GAAQ,OAAO,6DAA6D,SAAoB;AAAA;AAAA,oFAEhC,EACzD,KAAK,IAAI,EAI5B,OAAO,EAEX,WAAW,CAAC,EAAS,CACjB,KAAK,eAAiB,IAAI,QAAQ,CAAC,EAAS,IAAW,CACnD,GAAI,OAAO,IAAY,WACnB,EAAQ,EACH,KAAK,CAAC,IAAa,CACpB,EAAQ,KAAK,qBAAqB,CAAQ,CAAC,EAC9C,EACI,MAAM,CAAM,EAGjB,OAAQ,KAAK,qBAAqB,CAAO,CAAC,EAEjD,EAEL,OAAO,EAAG,CACN,KAAK,QAAQ,WAAW,QAAQ,EAChC,KAAK,QAAQ,YAAY,QAAQ,OAE/B,OAAM,CAAC,GAAW,cAAa,kBAAmB,CAAC,EAAG,CACxD,GAAI,CAAC,KAAK,OACN,KAAK,OAAS,MAAM,KAAK,eAE7B,IAAM,EAAS,KAAK,OACd,EAAQ,EAAQ,WAAa,SACnC,GAAI,CAAC,GAAS,CAAC,KAAK,OAAO,UACvB,KAAK,OAAO,UAAY,MAAM,KAAK,OAAO,kBAAkB,EAEhE,OAAO,IAAI,QAAQ,CAAC,EAAU,IAAY,CACtC,IAAI,EAA0B,OAC1B,EAAyB,GACzB,EAAsB,GACtB,EAAmB,GACnB,EAAkB,GAClB,EAAqB,GACnB,EAAgB,IAAM,CACxB,EAAO,aAAa,CAAsB,EAC1C,EAAO,aAAa,CAAmB,EACvC,EAAO,aAAa,CAAgB,EACpC,EAAO,aAAa,CAAe,EACnC,EAAO,aAAa,CAAkB,GAEpC,EAAU,MAAO,IAAQ,CAC3B,MAAM,EACN,EAAc,EACd,EAAS,CAAG,GAEV,EAAS,MAAO,IAAQ,CAC1B,MAAM,EACN,EAAc,EACd,EAAQ,CAAG,GAEf,GAAI,GAAa,QAAS,CACtB,IAAM,EAAa,EAAgB,CAAW,EAC9C,EAAO,CAAU,EACjB,OAEJ,IAAM,EAAU,EAAQ,QAClB,EAAiB,GAAW,EAAQ,QAAU,EAAQ,UAAY,eAAiB,GACrF,EAAQ,EAAQ,EAAO,WAAa,EAAO,UAC/C,GAAI,GAAkB,CAAC,KAAK,cACxB,EAAQ,IAAK,EAAQ,EAAW,MAAQ,GAAQ,CAC5C,UAAW,GACX,WAAY,GAChB,CAAC,EAEL,EAAyB,EAAO,WAAW,IAAM,CAC7C,KAAK,uBAAyB,EAAgB,iBAAiB,EAAO,KAAK,uBAAwB,EAAO,MAAM,GACjH,EAAO,kCAAoC,EAAO,gBAAkB,OAAS,EAAO,mBAAqB,KAAK,EACjH,IAAM,EAAc,EAAQ,MAAQ,EAAU,iBAAiB,EAAQ,KAAK,EAAI,GAC5E,EAAO,OACX,GAAI,EAAQ,UAAY,MAAQ,EAAQ,UAAY,KAAM,CACtD,IAAM,EAAW,EAAQ,UAAY,GAC/B,EAAW,EAAQ,UAAY,GACrC,EAAO,GAAG,KAAY,IAE1B,IAAI,EAAO,EAAQ,KACnB,GAAI,EACA,GAAQ,IAAI,IAEhB,GAAI,EAAQ,SACR,GAAQ,IAAI,EAAQ,WAExB,IAAI,EAAW,EAAQ,UAAY,GACnC,GAAI,EAAS,KAAO,KAAO,EAAS,SAAS,GAAG,EAC5C,EAAW,EAAQ,SAAS,MAAM,EAAG,EAAE,EAGvC,OAAW,EAAQ,SAEvB,IAAM,EAAmB,CACrB,QAAS,EAAQ,QACjB,KAAM,EACN,OAAQ,EAAQ,OAChB,OACA,KAAM,EAAQ,KACd,QACA,MACJ,EAEM,GADc,EAAQ,EAAW,QAAU,GACzB,EAAkB,CAAC,IAAQ,CAC/C,IAAM,EAAe,IAAI,EAAU,aAAa,CAC5C,WAAY,EAAI,YAAc,GAC9B,OAAQ,EAAI,cACZ,QAAS,EAAsB,EAAI,OAAO,EAC1C,KAAM,CACV,CAAC,EACD,EAAQ,CAAE,SAAU,CAAa,CAAC,EACrC,EASD,GARA,EAAI,GAAG,QAAS,CAAC,IAAQ,CACrB,GAAI,GAA2B,SAAS,EAAI,IAAI,EAC5C,EAAO,OAAO,OAAO,EAAK,CAAE,KAAM,cAAe,CAAC,CAAC,EAGnD,OAAO,CAAG,EAEjB,EACG,EAAa,CACb,IAAM,EAAU,IAAM,CAClB,EAAI,QAAQ,EACZ,IAAM,EAAa,EAAgB,CAAW,EAC9C,EAAO,CAAU,GAErB,GAAI,OAAO,EAAY,mBAAqB,WAAY,CACpD,IAAM,EAAS,EACf,EAAO,iBAAiB,QAAS,EAAS,CAAE,KAAM,EAAK,CAAC,EACxD,EAAI,KAAK,QAAS,IAAM,EAAO,oBAAoB,QAAS,CAAO,CAAC,EAGpE,OAAY,QAAU,EAG9B,IAAM,EAA0B,GAAkB,EAAO,eACzD,EAAsB,GAAqB,EAAK,EAAQ,EAAO,iBAAiB,EAChF,EAAmB,GAAkB,EAAK,EAAQ,EAAyB,EAAO,sBAAuB,EAAO,QAAU,OAAO,EACjI,EAAkB,GAAiB,EAAK,EAAQ,EAAO,aAAa,EACpE,IAAM,EAAY,EAAiB,MACnC,GAAI,OAAO,IAAc,UAAY,cAAe,EAChD,EAAqB,GAAmB,EAAK,CACzC,UAAW,EAAU,UACrB,eAAgB,EAAU,cAC9B,CAAC,EAEL,EAA0B,EAAiB,EAAK,EAAS,EAAyB,KAAK,aAAa,EAAE,MAAM,CAAC,IAAM,CAE/G,OADA,EAAc,EACP,EAAQ,CAAC,EACnB,EACJ,EAEL,sBAAsB,CAAC,EAAK,EAAO,CAC/B,KAAK,OAAS,OACd,KAAK,eAAiB,KAAK,eAAe,KAAK,CAAC,IAAW,CACvD,MAAO,IACA,GACF,GAAM,CACX,EACH,EAEL,kBAAkB,EAAG,CACjB,OAAO,KAAK,QAAU,CAAC,EAE3B,oBAAoB,CAAC,EAAS,CAC1B,IAAQ,iBAAgB,oBAAmB,gBAAe,kCAAiC,YAAW,aAAY,wBAAuB,UAAY,GAAW,CAAC,EAC3J,EAAY,GACZ,EAAa,GACnB,MAAO,CACH,oBACA,iBACA,gBACA,kCACA,wBACA,kBAAmB,SAAY,CAC3B,IAAQ,QAAO,WAAY,KAAa,gBAGxC,GAFA,EAAW,EACX,EAAS,EACL,aAAqB,GAAU,OAAO,GAAW,UAAY,WAE7D,OADA,KAAK,cAAgB,GACd,EAEX,OAAO,IAAI,EAAO,CAAE,UAhBV,GAgBqB,WAfpB,MAemC,CAAU,CAAC,GAE7D,YAAa,IAAM,CACf,GAAI,aAAsB,EAAW,OAAS,OAAO,GAAY,UAAY,WAEzE,OADA,KAAK,cAAgB,GACd,EAEX,OAAO,IAAI,EAAW,MAAM,CAAE,UAvBpB,GAuB+B,WAtB9B,MAsB6C,CAAW,CAAC,IACrE,EACH,QACJ,EAER,CAEA,IAAM,GAAM,IAAI,YAAY,CAAC,EAC7B,MAAM,CAAsB,CACxB,GAAK,GAAI,KACT,MAAQ,EACR,IAAM,EACN,QACA,KAAO,EACP,WAAW,CAAC,EAAS,CACjB,EAAQ,MAAM,EACd,KAAK,QAAU,EAEnB,MAAM,EAAG,CACL,GAAI,KAAK,QAAQ,UACb,MAAU,MAAM,4EAA4E,EAEhG,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,IAAM,KAAK,IAAI,KAAK,KAAM,KAAK,GAAG,EACvC,KAAK,QAAQ,IAAI,EAErB,IAAI,EAAG,CACH,GAAI,KAAK,QAAQ,UACb,OAGJ,GADA,KAAK,MAAQ,EACT,KAAK,OAAS,EACd,KAAK,QAAQ,MAAM,EAEvB,GAAI,KAAK,KAAO,EACZ,MAAU,MAAM,oFAAoF,EAG5G,KAAK,EAAG,CACJ,OAAO,KAAK,QAEhB,KAAK,EAAG,CACJ,GAAI,CAAC,KAAK,QAAQ,OACd,KAAK,QAAQ,MAAM,EAG3B,OAAO,EAAG,CAEN,GADA,KAAK,KAAO,EACR,CAAC,KAAK,QAAQ,UACd,KAAK,QAAQ,QAAQ,EAG7B,QAAQ,EAAG,CACP,OAAO,KAAK,KAEpB,CAEA,MAAM,CAAwB,CAC1B,SAAW,CAAC,EACZ,eAAiB,EACjB,WAAW,CAAC,EAAU,CAClB,KAAK,UAAY,GAAY,CAAC,GAAG,IAAI,CAAC,IAAY,IAAI,EAAsB,CAAO,CAAC,EAExF,IAAI,EAAG,CACH,IAAI,EAAU,GACd,QAAW,KAAW,KAAK,SAAU,CACjC,GAAI,EAAQ,MAAM,EAAE,UAAW,CAC3B,EAAU,GACV,SAEJ,GAAI,CAAC,KAAK,gBAAkB,EAAQ,SAAS,EAAI,KAAK,eAClD,OAAO,EAGf,GAAI,GACA,QAAW,KAAW,KAAK,SACvB,GAAI,EAAQ,MAAM,EAAE,UAChB,KAAK,OAAO,CAAO,GAKnC,SAAS,CAAC,EAAK,CACX,KAAK,SAAS,KAAK,CAAG,EAE1B,MAAM,CAAC,EAAK,CACR,IAAM,EAAK,KAAK,SAAS,QAAQ,CAAG,EACpC,GAAI,EAAK,GACL,KAAK,SAAS,OAAO,EAAI,CAAC,GAGjC,OAAO,SAAS,EAAG,CAChB,OAAO,KAAK,SAAS,OAAO,UAAU,EAE1C,iBAAiB,CAAC,EAAgB,CAC9B,KAAK,eAAiB,EAE1B,OAAO,CAAC,EAAK,CACT,KAAK,OAAO,CAAG,EACf,EAAI,QAAQ,EAEpB,CAEA,MAAM,CAA2B,CAC7B,OACA,eACA,gBAAkB,IAAI,IACtB,WAAW,CAAC,EAAQ,CAEhB,GADA,KAAK,OAAS,EACV,KAAK,OAAO,gBAAkB,KAAK,OAAO,gBAAkB,EAC5D,MAAU,WAAW,2CAA2C,EAGxE,KAAK,CAAC,EAAgB,EAAyB,CAC3C,IAAM,EAAM,KAAK,aAAa,CAAc,EACtC,EAAO,KAAK,QAAQ,CAAG,EAC7B,GAAI,CAAC,KAAK,OAAO,oBAAsB,CAAC,EAAwB,cAAe,CAC3E,IAAM,EAAY,EAAK,KAAK,EAC5B,GAAI,EAEA,OADA,EAAU,OAAO,EACV,EAGf,IAAM,EAAM,IAAI,EAAsB,KAAK,QAAQ,CAAG,CAAC,EACjD,EAAU,EAAI,MAAM,EAC1B,GAAI,KAAK,OAAO,eACZ,EAAQ,SAAS,CAAE,qBAAsB,KAAK,OAAO,cAAe,EAAG,CAAC,IAAQ,CAC5E,GAAI,EACA,MAAU,MAAM,uCACZ,KAAK,OAAO,eACZ,iCACA,EAAe,YAAY,SAAS,CAAC,EAEhD,EAEL,IAAM,EAAW,IAAM,CACnB,KAAK,uBAAuB,EAAK,CAAG,GAElC,EAAkB,IAAM,CAC1B,KAAK,gCAAgC,EAAK,CAAG,GAMjD,GAJA,EAAQ,GAAG,SAAU,CAAQ,EAC7B,EAAQ,GAAG,QAAS,CAAe,EACnC,EAAQ,GAAG,aAAc,CAAe,EACxC,EAAQ,GAAG,QAAS,CAAe,EAC/B,EAAwB,eACxB,EAAQ,WAAW,EAAwB,eAAgB,CAAe,EAI9E,OAFA,EAAK,UAAU,CAAG,EAClB,EAAI,OAAO,EACJ,EAEX,OAAO,CAAC,EAAiB,EAAK,CAC1B,EAAI,KAAK,EAEb,qBAAqB,CAAC,EAAgB,EAAyB,CAC3D,IAAM,EAAM,KAAK,aAAa,CAAc,EACtC,EAAM,IAAI,EAAsB,KAAK,QAAQ,CAAG,CAAC,EACjD,EAAU,EAAI,MAAM,EAC1B,EAAQ,SAAS,CAAE,qBAAsB,CAAE,CAAC,EAC5C,IAAM,EAAkB,IAAM,CAC1B,EAAI,QAAQ,GAKhB,GAHA,EAAQ,GAAG,QAAS,CAAe,EACnC,EAAQ,GAAG,aAAc,CAAe,EACxC,EAAQ,GAAG,QAAS,CAAe,EAC/B,EAAwB,eACxB,EAAQ,WAAW,EAAwB,eAAgB,CAAe,EAG9E,OADA,EAAI,OAAO,EACJ,EAEX,OAAO,EAAG,CACN,QAAY,EAAK,KAAmB,KAAK,gBAAiB,CACtD,QAAW,IAAW,CAAC,GAAG,CAAc,EACpC,EAAQ,QAAQ,EAEpB,KAAK,gBAAgB,OAAO,CAAG,GAGvC,uBAAuB,CAAC,EAAsB,CAC1C,GAAI,GAAwB,GAAwB,EAChD,MAAU,WAAW,iDAAiD,EAE1E,KAAK,OAAO,eAAiB,EAC7B,QAAW,KAAQ,KAAK,gBAAgB,OAAO,EAC3C,EAAK,kBAAkB,CAAoB,EAGnD,2BAA2B,CAAC,EAA0B,CAClD,KAAK,OAAO,mBAAqB,EAErC,0BAA0B,CAAC,EAAyB,CAChD,KAAK,eAAiB,EAE1B,KAAK,EAAG,CACJ,IAAM,EAAQ,CAAC,EACf,QAAY,EAAK,KAAS,KAAK,gBAAiB,CAC5C,IAAM,EAAW,CAAC,EAClB,QAAW,KAAO,EACd,EAAS,KAAK,CACV,GAAI,EAAI,GACR,OAAQ,EAAI,SAAS,EACrB,cAAe,EAAI,IACnB,cAAe,EAAI,KACvB,CAAC,EAEL,EAAM,GAAO,CAAE,UAAS,EAE5B,OAAO,EAEX,sBAAsB,CAAC,EAAW,EAAK,CACnC,KAAK,gBAAgB,IAAI,CAAS,GAAG,OAAO,CAAG,EAC/C,EAAI,MAAM,EAEd,+BAA+B,CAAC,EAAW,EAAK,CAC5C,KAAK,gBAAgB,IAAI,CAAS,GAAG,OAAO,CAAG,EAC/C,EAAI,QAAQ,EAEhB,OAAO,CAAC,EAAK,CACT,GAAI,CAAC,KAAK,gBAAgB,IAAI,CAAG,EAAG,CAChC,IAAM,EAAO,IAAI,EACjB,GAAI,KAAK,OAAO,eACZ,EAAK,kBAAkB,KAAK,OAAO,cAAc,EAErD,KAAK,gBAAgB,IAAI,EAAK,CAAI,EAEtC,OAAO,KAAK,gBAAgB,IAAI,CAAG,EAEvC,YAAY,CAAC,EAAS,CAClB,OAAO,EAAQ,YAAY,SAAS,EAExC,OAAO,CAAC,EAAK,CACT,OAAO,KAAK,iBAAmB,OAAY,EAAM,QAAQ,CAAG,EAAI,EAAM,QAAQ,EAAK,KAAK,cAAc,EAE9G,CAEA,MAAM,CAAiB,CACnB,OACA,eACA,SAAW,CAAE,gBAAiB,IAAK,EACnC,kBAAoB,IAAI,EAA2B,CAAC,CAAC,QAC9C,OAAM,CAAC,EAAmB,CAC7B,GAAI,OAAO,GAAmB,SAAW,WACrC,OAAO,EAEX,OAAO,IAAI,EAAiB,CAAiB,EAEjD,WAAW,CAAC,EAAS,CACjB,KAAK,eAAiB,IAAI,QAAQ,CAAC,EAAS,IAAW,CACnD,GAAI,OAAO,IAAY,WACnB,EAAQ,EACH,KAAK,CAAC,IAAS,CAChB,EAAQ,GAAQ,CAAC,CAAC,EACrB,EACI,MAAM,CAAM,EAGjB,OAAQ,GAAW,CAAC,CAAC,EAE5B,EAEL,OAAO,EAAG,CACN,KAAK,kBAAkB,QAAQ,OAE7B,OAAM,CAAC,GAAW,cAAa,iBAAgB,iBAAkB,CAAC,EAAG,CACvE,GAAI,CAAC,KAAK,OAAQ,CACd,KAAK,OAAS,MAAM,KAAK,eACzB,IAAQ,2BAA0B,uBAAsB,2BAA4B,KAAK,OAEzF,GADA,KAAK,kBAAkB,4BAA4B,GAA4B,EAAK,EAChF,EACA,KAAK,kBAAkB,wBAAwB,CAAoB,EAEvE,GAAI,EACA,KAAK,kBAAkB,2BAA2B,CAAuB,EAGjF,IAAQ,eAAgB,EAAsB,4BAA6B,KAAK,OAC1E,EAAqB,GAA4B,EACjD,EAA0B,GAAkB,EAClD,OAAO,IAAI,QAAQ,CAAC,EAAU,IAAY,CACtC,IAAI,EAAY,GACZ,EAA0B,OACxB,EAAU,MAAO,IAAQ,CAC3B,MAAM,EACN,EAAS,CAAG,GAEV,EAAS,MAAO,IAAQ,CAC1B,MAAM,EACN,EAAQ,CAAG,GAEf,GAAI,GAAa,QAAS,CACtB,EAAY,GACZ,IAAM,EAAa,EAAgB,CAAW,EAC9C,EAAO,CAAU,EACjB,OAEJ,IAAQ,WAAU,SAAQ,OAAM,WAAU,SAAU,EAChD,EAAO,GACX,GAAI,EAAQ,UAAY,MAAQ,EAAQ,UAAY,KAAM,CACtD,IAAM,EAAW,EAAQ,UAAY,GAC/B,EAAW,EAAQ,UAAY,GACrC,EAAO,GAAG,KAAY,KAE1B,IAAM,EAAY,GAAG,MAAa,IAAO,IAAW,EAAO,IAAI,IAAS,KAClE,EAAiB,CAAE,YAAa,IAAI,IAAI,CAAS,CAAE,EACnD,EAAgB,CAClB,eAAgB,KAAK,QAAQ,eAC7B,eACJ,EACM,EAAM,EACN,KAAK,kBAAkB,sBAAsB,EAAgB,CAAa,EAC1E,KAAK,kBAAkB,MAAM,EAAgB,CAAa,EAC1D,EAAU,EAAI,MAAM,EACpB,EAAoB,CAAC,IAAQ,CAC/B,GAAI,EACA,EAAI,QAAQ,EAEhB,EAAY,GACZ,EAAO,CAAG,GAER,EAAc,EAAQ,EAAU,iBAAiB,CAAK,EAAI,GAC5D,EAAO,EAAQ,KACnB,GAAI,EACA,GAAQ,IAAI,IAEhB,GAAI,EAAQ,SACR,GAAQ,IAAI,EAAQ,WAExB,IAAM,EAAoB,EAAQ,QAAQ,IACnC,EAAQ,SACV,EAAM,UAAU,mBAAoB,GACpC,EAAM,UAAU,qBAAsB,CAC3C,CAAC,EACD,GAAI,EACA,EAAkB,WAAW,EAAyB,IAAM,CACxD,EAAkB,MAAM,EACxB,IAAM,EAAmB,MAAM,+CAA+C,MAA4B,EAC1G,EAAa,KAAO,eACpB,EAAkB,CAAY,EACjC,EAEL,GAAI,EAAa,CACb,IAAM,EAAU,IAAM,CAClB,EAAkB,MAAM,EACxB,IAAM,EAAa,EAAgB,CAAW,EAC9C,EAAkB,CAAU,GAEhC,GAAI,OAAO,EAAY,mBAAqB,WAAY,CACpD,IAAM,EAAS,EACf,EAAO,iBAAiB,QAAS,EAAS,CAAE,KAAM,EAAK,CAAC,EACxD,EAAkB,KAAK,QAAS,IAAM,EAAO,oBAAoB,QAAS,CAAO,CAAC,EAGlF,OAAY,QAAU,EAG9B,EAAkB,GAAG,aAAc,CAAC,EAAM,EAAM,IAAO,CACnD,EAAsB,MAAM,iBAAiB,kBAAqB,0BAA2B,IAAO,CAAC,EACxG,EACD,EAAkB,GAAG,QAAS,CAAiB,EAC/C,EAAkB,GAAG,UAAW,IAAM,CAClC,EAAsB,MAAM,6EAA6E,EAAkB,UAAU,CAAC,EACzI,EACD,EAAkB,GAAG,WAAY,CAAC,IAAY,CAC1C,IAAM,EAAe,IAAI,EAAU,aAAa,CAC5C,WAAY,EAAQ,YAAc,GAClC,QAAS,EAAsB,CAAO,EACtC,KAAM,CACV,CAAC,EAGD,GAFA,EAAY,GACZ,EAAQ,CAAE,SAAU,CAAa,CAAC,EAC9B,EACA,EAAQ,MAAM,EAErB,EACD,EAAkB,GAAG,QAAS,IAAM,CAChC,GAAI,EACA,EAAI,QAAQ,EAGZ,UAAK,kBAAkB,QAAQ,EAAgB,CAAG,EAEtD,GAAI,CAAC,EACD,EAAsB,MAAM,wDAAwD,CAAC,EAE5F,EACD,EAA0B,EAAiB,EAAmB,EAAS,CAAuB,EACjG,EAEL,sBAAsB,CAAC,EAAK,EAAO,CAC/B,KAAK,OAAS,OACd,KAAK,eAAiB,KAAK,eAAe,KAAK,CAAC,IAAW,CACvD,MAAO,IACA,GACF,GAAM,CACX,EACH,EAEL,kBAAkB,EAAG,CACjB,OAAO,KAAK,QAAU,CAAC,EAE/B,CAEA,MAAM,UAAkB,EAAY,QAAS,CACzC,cAAgB,CAAC,EACjB,MAAM,CAAC,EAAO,EAAU,EAAU,CAC9B,KAAK,cAAc,KAAK,CAAK,EAC7B,EAAS,EAEjB,CAEA,IAAM,GAAkB,CAAC,IAAW,CAChC,GAAI,GAAyB,CAAM,EAC/B,OAAO,GAAsB,CAAM,EAEvC,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,IAAM,EAAY,IAAI,EACtB,EAAO,KAAK,CAAS,EACrB,EAAO,GAAG,QAAS,CAAC,IAAQ,CACxB,EAAU,IAAI,EACd,EAAO,CAAG,EACb,EACD,EAAU,GAAG,QAAS,CAAM,EAC5B,EAAU,GAAG,SAAU,QAAS,EAAG,CAC/B,IAAM,EAAQ,IAAI,WAAW,OAAO,OAAO,KAAK,aAAa,CAAC,EAC9D,EAAQ,CAAK,EAChB,EACJ,GAEC,GAA2B,CAAC,IAAW,OAAO,iBAAmB,YAAc,aAAkB,eACvG,eAAe,EAAqB,CAAC,EAAQ,CACzC,IAAM,EAAS,CAAC,EACV,EAAS,EAAO,UAAU,EAC5B,EAAS,GACT,EAAS,EACb,MAAO,CAAC,EAAQ,CACZ,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACA,EAAO,KAAK,CAAK,EACjB,GAAU,EAAM,OAEpB,EAAS,EAEb,IAAM,EAAY,IAAI,WAAW,CAAM,EACnC,EAAS,EACb,QAAW,KAAS,EAChB,EAAU,IAAI,EAAO,CAAM,EAC3B,GAAU,EAAM,OAEpB,OAAO,EAGH,2BAA0B,GAC1B,oBAAmB,EACnB,mBAAkB,EAClB,mBAAkB",
"debugId": "80469AF37F3822FD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "1F3FCE81484537AA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+core@3.24.5/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js"],
"sourcesContent": [
"'use strict';\n\nvar crc32 = require('@aws-crypto/crc32');\nvar serde = require('@smithy/core/serde');\nvar node_stream = require('node:stream');\n\nclass Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(serde.toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n\nclass HeaderMarshaller {\n toUtf8;\n fromUtf8;\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(serde.fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${serde.toHex(uuidBytes.subarray(0, 4))}-${serde.toHex(uuidBytes.subarray(4, 6))}-${serde.toHex(uuidBytes.subarray(6, 8))}-${serde.toHex(uuidBytes.subarray(8, 10))}-${serde.toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nfunction splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new crc32.Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n\nclass EventStreamCodec {\n headerMarshaller;\n messageBuffer;\n isEndOfStream;\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new crc32.Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n\nclass MessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n\nclass MessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n\nclass SmithyMessageDecoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n\nclass SmithyMessageEncoderStream {\n options;\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n\nfunction getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n\nfunction getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nfunction getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n\nlet EventStreamMarshaller$1 = class EventStreamMarshaller {\n eventStreamCodec;\n utfEncoder;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n};\nconst eventStreamSerdeProvider$1 = (options) => new EventStreamMarshaller$1(options);\n\nclass EventStreamMarshaller {\n universalMarshaller;\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new EventStreamMarshaller$1({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : readableToIterable(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return node_stream.Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n}\nconst eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\nasync function* readableToIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\n\nconst readableStreamToIterable = (readableStream) => ({\n [Symbol.asyncIterator]: async function* () {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n }\n finally {\n reader.releaseLock();\n }\n },\n});\nconst iterableToReadableStream = (asyncIterable) => {\n const iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n return controller.close();\n }\n controller.enqueue(value);\n },\n });\n};\n\nconst resolveEventStreamSerdeConfig = (input) => Object.assign(input, {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n\nclass EventStreamSerde {\n marshaller;\n serializer;\n deserializer;\n serdeContext;\n defaultContentType;\n constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType, }) {\n this.marshaller = marshaller;\n this.serializer = serializer;\n this.deserializer = deserializer;\n this.serdeContext = serdeContext;\n this.defaultContentType = defaultContentType;\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = requestSchema.getEventStreamMember();\n const unionSchema = requestSchema.getMemberSchema(eventStreamMember);\n const serializer = this.serializer;\n const defaultContentType = this.defaultContentType;\n const initialRequestMarker = Symbol(\"initialRequestMarker\");\n const eventStreamIterable = {\n async *[Symbol.asyncIterator]() {\n if (initialRequest) {\n const headers = {\n \":event-type\": { type: \"string\", value: \"initial-request\" },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: defaultContentType },\n };\n serializer.write(requestSchema, initialRequest);\n const body = serializer.flush();\n yield {\n [initialRequestMarker]: true,\n headers,\n body,\n };\n }\n for await (const page of eventStream) {\n yield page;\n }\n },\n };\n return marshaller.serialize(eventStreamIterable, (event) => {\n if (event[initialRequestMarker]) {\n return {\n headers: event.headers,\n body: event.body,\n };\n }\n let unionMember = \"\";\n for (const key in event) {\n if (key !== \"__type\") {\n unionMember = key;\n break;\n }\n }\n const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);\n const headers = {\n \":event-type\": { type: \"string\", value: eventType },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: explicitPayloadContentType ?? defaultContentType },\n ...additionalHeaders,\n };\n return {\n headers,\n body,\n };\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = responseSchema.getEventStreamMember();\n const unionSchema = responseSchema.getMemberSchema(eventStreamMember);\n const memberSchemas = unionSchema.getMemberSchemas();\n const initialResponseMarker = Symbol(\"initialResponseMarker\");\n const asyncIterable = marshaller.deserialize(response.body, async (event) => {\n let unionMember = \"\";\n for (const key in event) {\n if (key !== \"__type\") {\n unionMember = key;\n break;\n }\n }\n const body = event[unionMember].body;\n if (unionMember === \"initial-response\") {\n const dataObject = await this.deserializer.read(responseSchema, body);\n delete dataObject[eventStreamMember];\n return {\n [initialResponseMarker]: true,\n ...dataObject,\n };\n }\n else if (unionMember in memberSchemas) {\n const eventStreamSchema = memberSchemas[unionMember];\n if (eventStreamSchema.isStructSchema()) {\n const out = {};\n let hasBindings = false;\n for (const [name, member] of eventStreamSchema.structIterator()) {\n const { eventHeader, eventPayload } = member.getMergedTraits();\n hasBindings = hasBindings || Boolean(eventHeader || eventPayload);\n if (eventPayload) {\n if (member.isBlobSchema()) {\n out[name] = body;\n }\n else if (member.isStringSchema()) {\n out[name] = (this.serdeContext?.utf8Encoder ?? serde.toUtf8)(body);\n }\n else if (member.isStructSchema()) {\n out[name] = await this.deserializer.read(member, body);\n }\n }\n else if (eventHeader) {\n const value = event[unionMember].headers[name]?.value;\n if (value != null) {\n if (member.isNumericSchema()) {\n if (value && typeof value === \"object\" && \"bytes\" in value) {\n out[name] = BigInt(value.toString());\n }\n else {\n out[name] = Number(value);\n }\n }\n else {\n out[name] = value;\n }\n }\n }\n }\n if (hasBindings) {\n return {\n [unionMember]: out,\n };\n }\n if (body.byteLength === 0) {\n return {\n [unionMember]: {},\n };\n }\n }\n return {\n [unionMember]: await this.deserializer.read(eventStreamSchema, body),\n };\n }\n else {\n return {\n $unknown: event,\n };\n }\n });\n const asyncIterator = asyncIterable[Symbol.asyncIterator]();\n const firstEvent = await asyncIterator.next();\n if (firstEvent.done) {\n return asyncIterable;\n }\n if (firstEvent.value?.[initialResponseMarker]) {\n if (!responseSchema) {\n throw new Error(\"@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.\");\n }\n for (const key in firstEvent.value) {\n initialResponseContainer[key] = firstEvent.value[key];\n }\n }\n return {\n async *[Symbol.asyncIterator]() {\n if (!firstEvent?.value?.[initialResponseMarker]) {\n yield firstEvent.value;\n }\n while (true) {\n const { done, value } = await asyncIterator.next();\n if (done) {\n break;\n }\n yield value;\n }\n },\n };\n }\n writeEventBody(unionMember, unionSchema, event) {\n const serializer = this.serializer;\n let eventType = unionMember;\n let explicitPayloadMember = null;\n let explicitPayloadContentType;\n const isKnownSchema = (() => {\n const struct = unionSchema.getSchema();\n return struct[4].includes(unionMember);\n })();\n const additionalHeaders = {};\n if (!isKnownSchema) {\n const [type, value] = event[unionMember];\n eventType = type;\n serializer.write(15, value);\n }\n else {\n const eventSchema = unionSchema.getMemberSchema(unionMember);\n if (eventSchema.isStructSchema()) {\n for (const [memberName, memberSchema] of eventSchema.structIterator()) {\n const { eventHeader, eventPayload } = memberSchema.getMergedTraits();\n if (eventPayload) {\n explicitPayloadMember = memberName;\n }\n else if (eventHeader) {\n const value = event[unionMember][memberName];\n let type = \"binary\";\n if (memberSchema.isNumericSchema()) {\n if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) {\n type = \"integer\";\n }\n else {\n type = \"long\";\n }\n }\n else if (memberSchema.isTimestampSchema()) {\n type = \"timestamp\";\n }\n else if (memberSchema.isStringSchema()) {\n type = \"string\";\n }\n else if (memberSchema.isBooleanSchema()) {\n type = \"boolean\";\n }\n if (value != null) {\n additionalHeaders[memberName] = {\n type,\n value,\n };\n delete event[unionMember][memberName];\n }\n }\n }\n if (explicitPayloadMember !== null) {\n const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);\n if (payloadSchema.isBlobSchema()) {\n explicitPayloadContentType = \"application/octet-stream\";\n }\n else if (payloadSchema.isStringSchema()) {\n explicitPayloadContentType = \"text/plain\";\n }\n serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);\n }\n else {\n serializer.write(eventSchema, event[unionMember]);\n }\n }\n else if (eventSchema.isUnitSchema()) {\n serializer.write(eventSchema, {});\n }\n else {\n throw new Error(\"@smithy/core/event-streams - non-struct member not supported in event stream union.\");\n }\n }\n const messageSerialization = serializer.flush() ?? new Uint8Array();\n const body = typeof messageSerialization === \"string\"\n ? (this.serdeContext?.utf8Decoder ?? serde.fromUtf8)(messageSerialization)\n : messageSerialization;\n return {\n body,\n eventType,\n explicitPayloadContentType,\n additionalHeaders,\n };\n }\n}\n\nexports.EventStreamCodec = EventStreamCodec;\nexports.EventStreamMarshaller = EventStreamMarshaller;\nexports.EventStreamSerde = EventStreamSerde;\nexports.HeaderMarshaller = HeaderMarshaller;\nexports.Int64 = Int64;\nexports.MessageDecoderStream = MessageDecoderStream;\nexports.MessageEncoderStream = MessageEncoderStream;\nexports.SmithyMessageDecoderStream = SmithyMessageDecoderStream;\nexports.SmithyMessageEncoderStream = SmithyMessageEncoderStream;\nexports.UniversalEventStreamMarshaller = EventStreamMarshaller$1;\nexports.eventStreamSerdeProvider = eventStreamSerdeProvider;\nexports.getChunkedStream = getChunkedStream;\nexports.getMessageUnmarshaller = getMessageUnmarshaller;\nexports.getUnmarshalledStream = getUnmarshalledStream;\nexports.iterableToReadableStream = iterableToReadableStream;\nexports.readableStreamToIterable = readableStreamToIterable;\nexports.resolveEventStreamSerdeConfig = resolveEventStreamSerdeConfig;\nexports.universalEventStreamSerdeProvider = eventStreamSerdeProvider$1;\n"
],
"mappings": ";0JAMA,WAAM,MAAM,CACR,MACA,WAAW,CAAC,EAAO,CAEf,GADA,KAAK,MAAQ,EACT,EAAM,aAAe,EACrB,MAAU,MAAM,uCAAuC,QAGxD,WAAU,CAAC,EAAQ,CACtB,GAAI,EAAS,qBAA6B,EAAS,qBAC/C,MAAU,MAAM,GAAG,sEAA2E,EAElG,IAAM,EAAQ,IAAI,WAAW,CAAC,EAC9B,QAAS,EAAI,EAAG,EAAY,KAAK,IAAI,KAAK,MAAM,CAAM,CAAC,EAAG,EAAI,IAAM,EAAY,EAAG,IAAK,GAAa,IACjG,EAAM,GAAK,EAEf,GAAI,EAAS,EACT,EAAO,CAAK,EAEhB,OAAO,IAAI,EAAM,CAAK,EAE1B,OAAO,EAAG,CACN,IAAM,EAAQ,KAAK,MAAM,MAAM,CAAC,EAC1B,EAAW,EAAM,GAAK,IAC5B,GAAI,EACA,EAAO,CAAK,EAEhB,OAAO,SAAS,EAAM,MAAM,CAAK,EAAG,EAAE,GAAK,EAAW,GAAK,GAE/D,QAAQ,EAAG,CACP,OAAO,OAAO,KAAK,QAAQ,CAAC,EAEpC,CACA,SAAS,CAAM,CAAC,EAAO,CACnB,QAAS,EAAI,EAAG,EAAI,EAAG,IACnB,EAAM,IAAM,IAEhB,QAAS,EAAI,EAAG,EAAI,GAAI,IAEpB,GADA,EAAM,KACF,EAAM,KAAO,EACb,MAIZ,MAAM,CAAiB,CACnB,OACA,SACA,WAAW,CAAC,EAAQ,EAAU,CAC1B,KAAK,OAAS,EACd,KAAK,SAAW,EAEpB,MAAM,CAAC,EAAS,CACZ,IAAM,EAAS,CAAC,EAChB,QAAW,KAAc,OAAO,KAAK,CAAO,EAAG,CAC3C,IAAM,EAAQ,KAAK,SAAS,CAAU,EACtC,EAAO,KAAK,WAAW,KAAK,CAAC,EAAM,UAAU,CAAC,EAAG,EAAO,KAAK,kBAAkB,EAAQ,EAAW,CAAC,EAEvG,IAAM,EAAM,IAAI,WAAW,EAAO,OAAO,CAAC,EAAO,IAAU,EAAQ,EAAM,WAAY,CAAC,CAAC,EACnF,EAAW,EACf,QAAW,KAAS,EAChB,EAAI,IAAI,EAAO,CAAQ,EACvB,GAAY,EAAM,WAEtB,OAAO,EAEX,iBAAiB,CAAC,EAAQ,CACtB,OAAQ,EAAO,UACN,UACD,OAAO,WAAW,KAAK,CAAC,EAAO,MAAQ,EAAI,CAAC,CAAC,MAC5C,OACD,OAAO,WAAW,KAAK,CAAC,EAAG,EAAO,KAAK,CAAC,MACvC,QACD,IAAM,EAAY,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAGjD,OAFA,EAAU,SAAS,EAAG,CAAC,EACvB,EAAU,SAAS,EAAG,EAAO,MAAO,EAAK,EAClC,IAAI,WAAW,EAAU,MAAM,MACrC,UACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAG/C,OAFA,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,SAAS,EAAG,EAAO,MAAO,EAAK,EAChC,IAAI,WAAW,EAAQ,MAAM,MACnC,OACD,IAAM,EAAY,IAAI,WAAW,CAAC,EAGlC,OAFA,EAAU,GAAK,EACf,EAAU,IAAI,EAAO,MAAM,MAAO,CAAC,EAC5B,MACN,SACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAO,MAAM,UAAU,CAAC,EACzE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAO,MAAM,WAAY,EAAK,EACnD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAO,MAAO,CAAC,EACrB,MACN,SACD,IAAM,EAAY,KAAK,SAAS,EAAO,KAAK,EACtC,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAU,UAAU,CAAC,EACtE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAU,WAAY,EAAK,EAChD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAW,CAAC,EAClB,MACN,YACD,IAAM,EAAU,IAAI,WAAW,CAAC,EAGhC,OAFA,EAAQ,GAAK,EACb,EAAQ,IAAI,EAAM,WAAW,EAAO,MAAM,QAAQ,CAAC,EAAE,MAAO,CAAC,EACtD,MACN,OACD,GAAI,CAAC,GAAa,KAAK,EAAO,KAAK,EAC/B,MAAU,MAAM,0BAA0B,EAAO,OAAO,EAE5D,IAAM,EAAY,IAAI,WAAW,EAAE,EAGnC,OAFA,EAAU,GAAK,EACf,EAAU,IAAI,EAAM,QAAQ,EAAO,MAAM,QAAQ,MAAO,EAAE,CAAC,EAAG,CAAC,EACxD,GAGnB,KAAK,CAAC,EAAS,CACX,IAAM,EAAM,CAAC,EACT,EAAW,EACf,MAAO,EAAW,EAAQ,WAAY,CAClC,IAAM,EAAa,EAAQ,SAAS,GAAU,EACxC,EAAO,KAAK,OAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAU,CAAC,EAElG,OADA,GAAY,EACJ,EAAQ,SAAS,GAAU,OAC1B,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,EACX,EACA,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,EACX,EACA,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,EAAQ,QAAQ,GAAU,CACrC,EACA,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,EAAQ,SAAS,EAAU,EAAK,CAC3C,EACA,GAAY,EACZ,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,EAAQ,SAAS,EAAU,EAAK,CAC3C,EACA,GAAY,EACZ,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,IAAI,EAAM,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAC,CAAC,CACrF,EACA,GAAY,EACZ,UACC,GACD,IAAM,EAAe,EAAQ,UAAU,EAAU,EAAK,EACtD,GAAY,EACZ,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAY,CACrF,EACA,GAAY,EACZ,UACC,GACD,IAAM,EAAe,EAAQ,UAAU,EAAU,EAAK,EACtD,GAAY,EACZ,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,KAAK,OAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAY,CAAC,CAClG,EACA,GAAY,EACZ,UACC,GACD,EAAI,GAAQ,CACR,KAAM,EACN,MAAO,IAAI,KAAK,IAAI,EAAM,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CACzG,EACA,GAAY,EACZ,UACC,GACD,IAAM,EAAY,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,EAAE,EAClF,GAAY,GACZ,EAAI,GAAQ,CACR,KAAM,GACN,MAAO,GAAG,EAAM,MAAM,EAAU,SAAS,EAAG,CAAC,CAAC,KAAK,EAAM,MAAM,EAAU,SAAS,EAAG,CAAC,CAAC,KAAK,EAAM,MAAM,EAAU,SAAS,EAAG,CAAC,CAAC,KAAK,EAAM,MAAM,EAAU,SAAS,EAAG,EAAE,CAAC,KAAK,EAAM,MAAM,EAAU,SAAS,EAAE,CAAC,GACrN,EACA,cAEA,MAAU,MAAM,8BAA8B,GAG1D,OAAO,EAEf,CA6BA,SAAS,EAAY,EAAG,aAAY,aAAY,UAAU,CACtD,GAAI,EAAa,GACb,MAAU,MAAM,yEAAyE,EAE7F,IAAM,EAAO,IAAI,SAAS,EAAQ,EAAY,CAAU,EAClD,EAAgB,EAAK,UAAU,EAAG,EAAK,EAC7C,GAAI,IAAe,EACf,MAAU,MAAM,gEAAgE,EAEpF,IAAM,EAAe,EAAK,UAAU,EAAuB,EAAK,EAC1D,EAA0B,EAAK,UAAU,EAAgB,EAAK,EAC9D,EAA0B,EAAK,UAAU,EAAa,EAAiB,EAAK,EAC5E,EAAc,IAAI,EAAM,MAAM,EAAE,OAAO,IAAI,WAAW,EAAQ,EAAY,CAAc,CAAC,EAC/F,GAAI,IAA4B,EAAY,OAAO,EAC/C,MAAU,MAAM,kDAAkD,oDAA0E,EAAY,OAAO,IAAI,EAGvK,GADA,EAAY,OAAO,IAAI,WAAW,EAAQ,EAAa,EAAgB,GAAc,EAAiB,EAAgB,CAAC,EACnH,IAA4B,EAAY,OAAO,EAC/C,MAAU,MAAM,yBAAyB,EAAY,OAAO,0CAA0C,GAAyB,EAEnI,MAAO,CACH,QAAS,IAAI,SAAS,EAAQ,EAAa,EAAiB,EAAiB,CAAY,EACzF,KAAM,IAAI,WAAW,EAAQ,EAAa,EAAiB,EAAkB,EAAc,EAAgB,GAAgB,EAAiB,EAAkB,EAAgB,CAClL,EAGJ,MAAM,CAAiB,CACnB,iBACA,cACA,cACA,WAAW,CAAC,EAAQ,EAAU,CAC1B,KAAK,iBAAmB,IAAI,EAAiB,EAAQ,CAAQ,EAC7D,KAAK,cAAgB,CAAC,EACtB,KAAK,cAAgB,GAEzB,IAAI,CAAC,EAAS,CACV,KAAK,cAAc,KAAK,KAAK,OAAO,CAAO,CAAC,EAEhD,WAAW,EAAG,CACV,KAAK,cAAgB,GAEzB,UAAU,EAAG,CACT,IAAM,EAAU,KAAK,cAAc,IAAI,EACjC,EAAgB,KAAK,cAC3B,MAAO,CACH,UAAU,EAAG,CACT,OAAO,GAEX,aAAa,EAAG,CACZ,OAAO,EAEf,EAEJ,oBAAoB,EAAG,CACnB,IAAM,EAAW,KAAK,cACtB,KAAK,cAAgB,CAAC,EACtB,IAAM,EAAgB,KAAK,cAC3B,MAAO,CACH,WAAW,EAAG,CACV,OAAO,GAEX,aAAa,EAAG,CACZ,OAAO,EAEf,EAEJ,MAAM,EAAG,QAAS,EAAY,QAAQ,CAClC,IAAM,EAAU,KAAK,iBAAiB,OAAO,CAAU,EACjD,EAAS,EAAQ,WAAa,EAAK,WAAa,GAChD,EAAM,IAAI,WAAW,CAAM,EAC3B,EAAO,IAAI,SAAS,EAAI,OAAQ,EAAI,WAAY,EAAI,UAAU,EAC9D,EAAW,IAAI,EAAM,MAO3B,OANA,EAAK,UAAU,EAAG,EAAQ,EAAK,EAC/B,EAAK,UAAU,EAAG,EAAQ,WAAY,EAAK,EAC3C,EAAK,UAAU,EAAG,EAAS,OAAO,EAAI,SAAS,EAAG,CAAC,CAAC,EAAE,OAAO,EAAG,EAAK,EACrE,EAAI,IAAI,EAAS,EAAE,EACnB,EAAI,IAAI,EAAM,EAAQ,WAAa,EAAE,EACrC,EAAK,UAAU,EAAS,EAAG,EAAS,OAAO,EAAI,SAAS,EAAG,EAAS,CAAC,CAAC,EAAE,OAAO,EAAG,EAAK,EAChF,EAEX,MAAM,CAAC,EAAS,CACZ,IAAQ,UAAS,QAAS,GAAa,CAAO,EAC9C,MAAO,CAAE,QAAS,KAAK,iBAAiB,MAAM,CAAO,EAAG,MAAK,EAEjE,aAAa,CAAC,EAAY,CACtB,OAAO,KAAK,iBAAiB,OAAO,CAAU,EAEtD,CAuEA,SAAS,CAAgB,CAAC,EAAQ,CAC9B,IAAI,EAA4B,EAC5B,EAA8B,EAC9B,EAAiB,KACjB,EAAsB,KACpB,EAAkB,CAAC,IAAS,CAC9B,GAAI,OAAO,IAAS,SAChB,MAAU,MAAM,uEAAyE,CAAI,EAEjG,EAA4B,EAC5B,EAA8B,EAC9B,EAAiB,IAAI,WAAW,CAAI,EACT,IAAI,SAAS,EAAe,MAAM,EAC1C,UAAU,EAAG,EAAM,EAAK,GAEzC,EAAW,eAAgB,EAAG,CAChC,IAAM,EAAiB,EAAO,OAAO,eAAe,EACpD,MAAO,GAAM,CACT,IAAQ,QAAO,QAAS,MAAM,EAAe,KAAK,EAClD,GAAI,EAAM,CACN,GAAI,CAAC,EACD,OAEC,QAAI,IAA8B,EACnC,MAAM,EAGN,WAAU,MAAM,mCAAmC,EAEvD,OAEJ,IAAM,EAAc,EAAM,OACtB,EAAgB,EACpB,MAAO,EAAgB,EAAa,CAChC,GAAI,CAAC,EAAgB,CACjB,IAAM,EAAiB,EAAc,EACrC,GAAI,CAAC,EACD,EAAsB,IAAI,WAAW,CAAC,EAE1C,IAAM,EAAmB,KAAK,IAAI,EAAI,EAA6B,CAAc,EAIjF,GAHA,EAAoB,IAAI,EAAM,MAAM,EAAe,EAAgB,CAAgB,EAAG,CAA2B,EACjH,GAA+B,EAC/B,GAAiB,EACb,EAA8B,EAC9B,MAEJ,EAAgB,IAAI,SAAS,EAAoB,MAAM,EAAE,UAAU,EAAG,EAAK,CAAC,EAC5E,EAAsB,KAE1B,IAAM,EAAkB,KAAK,IAAI,EAA4B,EAA6B,EAAc,CAAa,EAIrH,GAHA,EAAe,IAAI,EAAM,MAAM,EAAe,EAAgB,CAAe,EAAG,CAA2B,EAC3G,GAA+B,EAC/B,GAAiB,EACb,GAA6B,IAA8B,EAC3D,MAAM,EACN,EAAiB,KACjB,EAA4B,EAC5B,EAA8B,KAK9C,MAAO,EACF,OAAO,eAAgB,CAC5B,EAGJ,SAAS,EAAqB,CAAC,EAAQ,EAAS,CAC5C,IAAM,EAAsB,EAAuB,EAAQ,aAAc,EAAQ,MAAM,EACvF,MAAO,EACF,OAAO,eAAgB,eAAgB,EAAG,CACvC,cAAiB,KAAS,EAAQ,CAC9B,IAAM,EAAU,EAAQ,iBAAiB,OAAO,CAAK,EAC/C,EAAO,MAAM,EAAoB,CAAO,EAC9C,GAAI,IAAS,OACT,SACJ,MAAM,GAGlB,EAEJ,SAAS,CAAsB,CAAC,EAAc,EAAQ,CAClD,OAAO,cAAe,CAAC,EAAS,CAC5B,IAAQ,MAAO,GAAgB,EAAQ,QAAQ,iBAC/C,GAAI,IAAgB,QAAS,CACzB,IAAM,EAAqB,MAAM,EAAQ,QAAQ,kBAAkB,OAAS,cAAc,EAE1F,MADA,EAAe,KAAO,EAAQ,QAAQ,eAAe,MAC/C,EAEL,QAAI,IAAgB,YAAa,CAClC,IAAM,EAAO,EAAQ,QAAQ,mBAAmB,MAC1C,EAAY,EAAG,GAAO,CAAQ,EAC9B,EAAwB,MAAM,EAAa,CAAS,EAC1D,GAAI,EAAsB,SAAU,CAChC,IAAM,EAAY,MAAM,EAAO,EAAQ,IAAI,CAAC,EAE5C,MADA,EAAM,KAAO,EACP,EAEV,MAAM,EAAsB,GAE3B,QAAI,IAAgB,QAAS,CAC9B,IAAM,EAAQ,EACT,EAAQ,QAAQ,eAAe,OAAQ,CAC5C,EACM,EAAe,MAAM,EAAa,CAAK,EAC7C,GAAI,EAAa,SACb,OACJ,OAAO,EAGP,WAAM,MAAM,8BAA8B,EAAQ,QAAQ,eAAe,OAAO,GA6B5F,MAAM,CAAsB,CACxB,oBACA,WAAW,EAAG,cAAa,eAAe,CACtC,KAAK,oBAAsB,IAAI,EAAwB,CACnD,cACA,aACJ,CAAC,EAEL,WAAW,CAAC,EAAM,EAAc,CAC5B,IAAM,EAAe,OAAO,EAAK,OAAO,iBAAmB,WAAa,EAAO,GAAmB,CAAI,EACtG,OAAO,KAAK,oBAAoB,YAAY,EAAc,CAAY,EAE1E,SAAS,CAAC,EAAO,EAAY,CACzB,OAAO,EAAY,SAAS,KAAK,KAAK,oBAAoB,UAAU,EAAO,CAAU,CAAC,EAE9F,CAEA,eAAgB,EAAkB,CAAC,EAAY,CAC3C,IAAI,EAAc,GACd,EAAkB,GAChB,EAAU,GAChB,EAAW,GAAG,QAAS,CAAC,IAAQ,CAC5B,GAAI,CAAC,EACD,EAAc,GAElB,GAAI,EACA,MAAM,EAEb,EACD,EAAW,GAAG,OAAQ,CAAC,IAAS,CAC5B,EAAQ,KAAK,CAAI,EACpB,EACD,EAAW,GAAG,MAAO,IAAM,CACvB,EAAc,GACjB,EACD,MAAO,CAAC,EAAiB,CACrB,IAAM,EAAQ,MAAM,IAAI,QAAQ,CAAC,IAAY,WAAW,IAAM,EAAQ,EAAQ,MAAM,CAAC,EAAG,CAAC,CAAC,EAC1F,GAAI,EACA,MAAM,EAEV,EAAkB,GAAe,EAAQ,SAAW,GAqC5D,MAAM,CAAiB,CACnB,WACA,WACA,aACA,aACA,mBACA,WAAW,EAAG,aAAY,aAAY,eAAc,eAAc,sBAAuB,CACrF,KAAK,WAAa,EAClB,KAAK,WAAa,EAClB,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,mBAAqB,OAExB,qBAAoB,EAAG,cAAa,gBAAe,kBAAmB,CACxE,IAAM,EAAa,KAAK,WAClB,EAAoB,EAAc,qBAAqB,EACvD,EAAc,EAAc,gBAAgB,CAAiB,EAC7D,EAAa,KAAK,WAClB,EAAqB,KAAK,mBAC1B,EAAuB,OAAO,sBAAsB,EACpD,EAAsB,QAChB,OAAO,cAAc,EAAG,CAC5B,GAAI,EAAgB,CAChB,IAAM,EAAU,CACZ,cAAe,CAAE,KAAM,SAAU,MAAO,iBAAkB,EAC1D,gBAAiB,CAAE,KAAM,SAAU,MAAO,OAAQ,EAClD,gBAAiB,CAAE,KAAM,SAAU,MAAO,CAAmB,CACjE,EACA,EAAW,MAAM,EAAe,CAAc,EAC9C,IAAM,EAAO,EAAW,MAAM,EAC9B,KAAM,EACD,GAAuB,GACxB,UACA,MACJ,EAEJ,cAAiB,KAAQ,EACrB,MAAM,EAGlB,EACA,OAAO,EAAW,UAAU,EAAqB,CAAC,IAAU,CACxD,GAAI,EAAM,GACN,MAAO,CACH,QAAS,EAAM,QACf,KAAM,EAAM,IAChB,EAEJ,IAAI,EAAc,GAClB,QAAW,KAAO,EACd,GAAI,IAAQ,SAAU,CAClB,EAAc,EACd,MAGR,IAAQ,oBAAmB,OAAM,YAAW,8BAA+B,KAAK,eAAe,EAAa,EAAa,CAAK,EAO9H,MAAO,CACH,QAPY,CACZ,cAAe,CAAE,KAAM,SAAU,MAAO,CAAU,EAClD,gBAAiB,CAAE,KAAM,SAAU,MAAO,OAAQ,EAClD,gBAAiB,CAAE,KAAM,SAAU,MAAO,GAA8B,CAAmB,KACxF,CACP,EAGI,MACJ,EACH,OAEC,uBAAsB,EAAG,WAAU,iBAAgB,4BAA6B,CAClF,IAAM,EAAa,KAAK,WAClB,EAAoB,EAAe,qBAAqB,EAExD,EADc,EAAe,gBAAgB,CAAiB,EAClC,iBAAiB,EAC7C,EAAwB,OAAO,uBAAuB,EACtD,EAAgB,EAAW,YAAY,EAAS,KAAM,MAAO,IAAU,CACzE,IAAI,EAAc,GAClB,QAAW,KAAO,EACd,GAAI,IAAQ,SAAU,CAClB,EAAc,EACd,MAGR,IAAM,EAAO,EAAM,GAAa,KAChC,GAAI,IAAgB,mBAAoB,CACpC,IAAM,EAAa,MAAM,KAAK,aAAa,KAAK,EAAgB,CAAI,EAEpE,OADA,OAAO,EAAW,GACX,EACF,GAAwB,MACtB,CACP,EAEC,QAAI,KAAe,EAAe,CACnC,IAAM,EAAoB,EAAc,GACxC,GAAI,EAAkB,eAAe,EAAG,CACpC,IAAM,EAAM,CAAC,EACT,EAAc,GAClB,QAAY,EAAM,KAAW,EAAkB,eAAe,EAAG,CAC7D,IAAQ,cAAa,gBAAiB,EAAO,gBAAgB,EAE7D,GADA,EAAc,GAAe,QAAQ,GAAe,CAAY,EAC5D,GACA,GAAI,EAAO,aAAa,EACpB,EAAI,GAAQ,EAEX,QAAI,EAAO,eAAe,EAC3B,EAAI,IAAS,KAAK,cAAc,aAAe,EAAM,QAAQ,CAAI,EAEhE,QAAI,EAAO,eAAe,EAC3B,EAAI,GAAQ,MAAM,KAAK,aAAa,KAAK,EAAQ,CAAI,EAGxD,QAAI,EAAa,CAClB,IAAM,EAAQ,EAAM,GAAa,QAAQ,IAAO,MAChD,GAAI,GAAS,KACT,GAAI,EAAO,gBAAgB,EACvB,GAAI,GAAS,OAAO,IAAU,UAAY,UAAW,EACjD,EAAI,GAAQ,OAAO,EAAM,SAAS,CAAC,EAGnC,OAAI,GAAQ,OAAO,CAAK,EAI5B,OAAI,GAAQ,GAK5B,GAAI,EACA,MAAO,EACF,GAAc,CACnB,EAEJ,GAAI,EAAK,aAAe,EACpB,MAAO,EACF,GAAc,CAAC,CACpB,EAGR,MAAO,EACF,GAAc,MAAM,KAAK,aAAa,KAAK,EAAmB,CAAI,CACvE,EAGA,WAAO,CACH,SAAU,CACd,EAEP,EACK,EAAgB,EAAc,OAAO,eAAe,EACpD,EAAa,MAAM,EAAc,KAAK,EAC5C,GAAI,EAAW,KACX,OAAO,EAEX,GAAI,EAAW,QAAQ,GAAwB,CAC3C,GAAI,CAAC,EACD,MAAU,MAAM,4GAA4G,EAEhI,QAAW,KAAO,EAAW,MACzB,EAAyB,GAAO,EAAW,MAAM,GAGzD,MAAO,QACK,OAAO,cAAc,EAAG,CAC5B,GAAI,CAAC,GAAY,QAAQ,GACrB,MAAM,EAAW,MAErB,MAAO,GAAM,CACT,IAAQ,OAAM,SAAU,MAAM,EAAc,KAAK,EACjD,GAAI,EACA,MAEJ,MAAM,GAGlB,EAEJ,cAAc,CAAC,EAAa,EAAa,EAAO,CAC5C,IAAM,EAAa,KAAK,WACpB,EAAY,EACZ,EAAwB,KACxB,EACE,GAAiB,IAAM,CAEzB,OADe,EAAY,UAAU,EACvB,GAAG,SAAS,CAAW,IACtC,EACG,EAAoB,CAAC,EAC3B,GAAI,CAAC,EAAe,CAChB,IAAO,EAAM,GAAS,EAAM,GAC5B,EAAY,EACZ,EAAW,MAAM,GAAI,CAAK,EAEzB,KACD,IAAM,EAAc,EAAY,gBAAgB,CAAW,EAC3D,GAAI,EAAY,eAAe,EAAG,CAC9B,QAAY,EAAY,KAAiB,EAAY,eAAe,EAAG,CACnE,IAAQ,cAAa,gBAAiB,EAAa,gBAAgB,EACnE,GAAI,EACA,EAAwB,EAEvB,QAAI,EAAa,CAClB,IAAM,EAAQ,EAAM,GAAa,GAC7B,EAAO,SACX,GAAI,EAAa,gBAAgB,EAC7B,GAAK,aAAa,GAAS,GAAS,WAChC,EAAO,UAGP,OAAO,OAGV,QAAI,EAAa,kBAAkB,EACpC,EAAO,YAEN,QAAI,EAAa,eAAe,EACjC,EAAO,SAEN,QAAI,EAAa,gBAAgB,EAClC,EAAO,UAEX,GAAI,GAAS,KACT,EAAkB,GAAc,CAC5B,OACA,OACJ,EACA,OAAO,EAAM,GAAa,IAItC,GAAI,IAA0B,KAAM,CAChC,IAAM,EAAgB,EAAY,gBAAgB,CAAqB,EACvE,GAAI,EAAc,aAAa,EAC3B,EAA6B,2BAE5B,QAAI,EAAc,eAAe,EAClC,EAA6B,aAEjC,EAAW,MAAM,EAAe,EAAM,GAAa,EAAsB,EAGzE,OAAW,MAAM,EAAa,EAAM,EAAY,EAGnD,QAAI,EAAY,aAAa,EAC9B,EAAW,MAAM,EAAa,CAAC,CAAC,EAGhC,WAAU,MAAM,qFAAqF,EAG7G,IAAM,EAAuB,EAAW,MAAM,GAAK,IAAI,WAIvD,MAAO,CACH,KAJS,OAAO,IAAyB,UACtC,KAAK,cAAc,aAAe,EAAM,UAAU,CAAoB,EACvE,EAGF,YACA,6BACA,mBACJ,EAER,KAr2BI,EACA,EACA,EA6MA,EAaE,EAAc,UACd,EAAW,OACX,EAAY,QACZ,EAAU,UACV,EAAW,OACX,EAAa,SACb,EAAa,SACb,EAAgB,YAChB,GAAW,OACX,GAEA,EAAwB,EACxB,EACA,EAAkB,EAClB,GA0FA,EAgBA,EAmBA,EAkBA,EAmIF,EAA0B,KAA4B,CACtD,iBACA,WACA,WAAW,EAAG,cAAa,eAAe,CACtC,KAAK,iBAAmB,IAAI,EAAiB,EAAa,CAAW,EACrE,KAAK,WAAa,EAEtB,WAAW,CAAC,EAAM,EAAc,CAC5B,IAAM,EAAc,EAAiB,CAAI,EACzC,OAAO,IAAI,EAA2B,CAClC,cAAe,IAAI,EAAqB,CAAE,cAAa,QAAS,KAAK,gBAAiB,CAAC,EACvF,aAAc,EAAuB,EAAc,KAAK,UAAU,CACtE,CAAC,EAEL,SAAS,CAAC,EAAa,EAAY,CAC/B,OAAO,IAAI,EAAqB,CAC5B,cAAe,IAAI,EAA2B,CAAE,cAAa,YAAW,CAAC,EACzE,QAAS,KAAK,iBACd,gBAAiB,EACrB,CAAC,EAET,EACM,GAA6B,CAAC,IAAY,IAAI,EAAwB,CAAO,EAkB7E,GAA2B,CAAC,IAAY,IAAI,EAAsB,CAAO,EA4BzE,GAA2B,CAAC,KAAoB,EACjD,OAAO,eAAgB,eAAgB,EAAG,CACvC,IAAM,EAAS,EAAe,UAAU,EACxC,GAAI,CACA,MAAO,GAAM,CACT,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACA,OACJ,MAAM,UAGd,CACI,EAAO,YAAY,GAG/B,GACM,GAA2B,CAAC,IAAkB,CAChD,IAAM,EAAW,EAAc,OAAO,eAAe,EACrD,OAAO,IAAI,eAAe,MAChB,KAAI,CAAC,EAAY,CACnB,IAAQ,OAAM,SAAU,MAAM,EAAS,KAAK,EAC5C,GAAI,EACA,OAAO,EAAW,MAAM,EAE5B,EAAW,QAAQ,CAAK,EAEhC,CAAC,GAGC,GAAgC,CAAC,IAAU,OAAO,OAAO,EAAO,CAClE,sBAAuB,EAAM,yBAAyB,CAAK,CAC/D,CAAC,EAwQO,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,iBAx3BJ,MACA,MACA,eA8MH,QAAS,CAAC,EAAmB,CAC1B,EAAkB,EAAkB,SAAc,GAAK,WACvD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,MAAW,GAAK,QACpD,EAAkB,EAAkB,QAAa,GAAK,UACtD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,OAAY,GAAK,SACrD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,SACpD,IAAsB,EAAoB,CAAC,EAAE,EAU1C,GAAe,iEAGf,EAAiB,EAAwB,EAEzC,GAAyB,EAAiB,EAAkB,EA0F5D,EAAN,MAAM,CAAqB,CACvB,QACA,WAAW,CAAC,EAAS,CACjB,KAAK,QAAU,GAElB,OAAO,cAAc,EAAG,CACrB,OAAO,KAAK,cAAc,QAEvB,aAAa,EAAG,CACnB,cAAiB,KAAS,KAAK,QAAQ,YAEnC,MADgB,KAAK,QAAQ,QAAQ,OAAO,CAAK,EAI7D,EAEM,EAAN,MAAM,CAAqB,CACvB,QACA,WAAW,CAAC,EAAS,CACjB,KAAK,QAAU,GAElB,OAAO,cAAc,EAAG,CACrB,OAAO,KAAK,cAAc,QAEvB,aAAa,EAAG,CACnB,cAAiB,KAAO,KAAK,QAAQ,cAEjC,MADgB,KAAK,QAAQ,QAAQ,OAAO,CAAG,EAGnD,GAAI,KAAK,QAAQ,gBACb,MAAM,IAAI,WAAW,CAAC,EAGlC,EAEM,EAAN,MAAM,CAA2B,CAC7B,QACA,WAAW,CAAC,EAAS,CACjB,KAAK,QAAU,GAElB,OAAO,cAAc,EAAG,CACrB,OAAO,KAAK,cAAc,QAEvB,aAAa,EAAG,CACnB,cAAiB,KAAW,KAAK,QAAQ,cAAe,CACpD,IAAM,EAAe,MAAM,KAAK,QAAQ,aAAa,CAAO,EAC5D,GAAI,IAAiB,OACjB,SACJ,MAAM,GAGlB,EAEM,EAAN,MAAM,CAA2B,CAC7B,QACA,WAAW,CAAC,EAAS,CACjB,KAAK,QAAU,GAElB,OAAO,cAAc,EAAG,CACrB,OAAO,KAAK,cAAc,QAEvB,aAAa,EAAG,CACnB,cAAiB,KAAS,KAAK,QAAQ,YAEnC,MADmB,KAAK,QAAQ,WAAW,CAAK,EAI5D,EAgeQ,GAAmB,EACnB,GAAwB,EACxB,GAAmB,EACnB,GAAmB,EACnB,GAAQ,EACR,GAAuB,EACvB,GAAuB,EACvB,GAA6B,EAC7B,GAA6B,EAC7B,GAAiC,EACjC,GAA2B,GAC3B,GAAmB,EACnB,GAAyB,EACzB,GAAwB,GACxB,GAA2B,GAC3B,GAA2B,GAC3B,GAAgC,GAChC,GAAoC",
"debugId": "BF1C7C63EF194F7664756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260611192811_lush_chimera.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260611192811_lush_chimera\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`credential_connector_active_idx\\`;`)\n yield* tx.run(`DROP TABLE \\`credential\\`;`)\n yield* tx.run(`\n CREATE TABLE \\`credential\\` (\n \\`id\\` text PRIMARY KEY,\n \\`integration_id\\` text,\n \\`label\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`connector_id\\` text,\n \\`method_id\\` text,\n \\`active\\` integer,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,yDAA2D,EACzE,MAAO,EAAG,IAAI,0BAA4B,EAC1C,MAAO,EAAG,IAAI,oXAYb,EACF,EAEL",
"debugId": "056EF92AA0D1AE4364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260309230000_move_org_to_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260309230000_move_org_to_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`account_state\\` ADD \\`active_org_id\\` text;`)\n yield* tx.run(\n `UPDATE \\`account_state\\` SET \\`active_org_id\\` = (SELECT \\`selected_org_id\\` FROM \\`account\\` WHERE \\`account\\`.\\`id\\` = \\`account_state\\`.\\`active_account_id\\`);`,\n )\n yield* tx.run(`ALTER TABLE \\`account\\` DROP COLUMN \\`selected_org_id\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,mCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,uDAA2D,EACzE,MAAO,EAAG,IACR,oJACF,EACA,MAAO,EAAG,IAAI,sDAA0D,EACzE,EAEL",
"debugId": "0A228E4AE372169E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "7850CC4D8970D0EB64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260602182828_add_project_directories.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260602182828_add_project_directories\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`project_directory\\` (\n \\`project_id\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`project_directory_pk\\` PRIMARY KEY(\\`project_id\\`, \\`directory\\`),\n CONSTRAINT \\`fk_project_directory_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+bASb,EACF,EAEL",
"debugId": "37717C029EA3906764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+provider@3.0.8/node_modules/@ai-sdk/provider/dist/index.mjs"],
"sourcesContent": [
"// src/errors/ai-sdk-error.ts\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name14,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name14;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker15) {\n const markerSymbol = Symbol.for(marker15);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\n\n// src/errors/api-call-error.ts\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\n\n// src/errors/empty-response-body-error.ts\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\n\n// src/errors/get-error-message.ts\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\n\n// src/errors/invalid-argument-error.ts\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\n\n// src/errors/invalid-prompt-error.ts\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5, _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\n\n// src/errors/invalid-response-data-error.ts\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\n\n// src/errors/json-parse-error.ts\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\n\n// src/errors/load-api-key-error.ts\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8, _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\n\n// src/errors/load-setting-error.ts\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9, _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\n\n// src/errors/no-content-generated-error.ts\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10, _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\n\n// src/errors/no-such-model-error.ts\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11, _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\n\n// src/errors/too-many-embedding-values-for-call-error.ts\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12, _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\n\n// src/errors/type-validation-error.ts\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13, _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a15, _b15, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a15 = cause.context) == null ? void 0 : _a15.field) === (context == null ? void 0 : context.field) && ((_b15 = cause.context) == null ? void 0 : _b15.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\n\n// src/errors/unsupported-functionality-error.ts\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14, _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// src/json-value/is-json.ts\nfunction isJSONValue(value) {\n if (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n }\n return false;\n}\nfunction isJSONArray(value) {\n return Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n return value != null && typeof value === \"object\" && Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n}\nexport {\n AISDKError,\n APICallError,\n EmptyResponseBodyError,\n InvalidArgumentError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n LoadSettingError,\n NoContentGeneratedError,\n NoSuchModelError,\n TooManyEmbeddingValuesForCallError,\n TypeValidationError,\n UnsupportedFunctionalityError,\n getErrorMessage,\n isJSONArray,\n isJSONObject,\n isJSONValue\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "8E485A6A8F7442FB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260710025429_instruction_sync.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260710025429_instruction_sync\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`fork_seq\\` integer;`)\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_instruction_entry\\` (\n \\`session_id\\` text NOT NULL,\n \\`key\\` text NOT NULL,\n \\`value\\` text,\n \\`removed\\` integer DEFAULT false NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`instruction_entry_pk\\` PRIMARY KEY(\\`session_id\\`, \\`key\\`),\n CONSTRAINT \\`fk_instruction_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n INSERT INTO \\`__new_instruction_entry\\`(\n \\`session_id\\`, \\`key\\`, \\`value\\`, \\`removed\\`, \\`time_created\\`, \\`time_updated\\`\n )\n SELECT \\`session_id\\`, \\`key\\`, \\`value\\`, false, \\`time_created\\`, \\`time_updated\\`\n FROM \\`instruction_entry\\`;\n `)\n yield* tx.run(`DROP TABLE \\`instruction_entry\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_instruction_entry\\` RENAME TO \\`instruction_entry\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n yield* tx.run(`\n CREATE TABLE \\`instruction_blob\\` (\n \\`hash\\` text PRIMARY KEY,\n \\`value\\` text\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`instruction_state\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`epoch_start\\` integer NOT NULL,\n \\`through_seq\\` integer NOT NULL,\n \\`initial_values\\` text NOT NULL,\n \\`current_values\\` text NOT NULL,\n CONSTRAINT \\`fk_instruction_state_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n // Persisted System rows were exclusively pre-beta instruction prose,\n // including fork copies whose message IDs no longer match the source event.\n yield* tx.run(`DELETE FROM \\`session_message\\` WHERE \\`type\\` = 'system';`)\n yield* tx.run(`\n UPDATE \\`session\\`\n SET \\`fork_seq\\` = COALESCE(\n (\n SELECT MIN(\\`seq\\`) - 1\n FROM \\`event\\`\n WHERE \\`aggregate_id\\` = \\`session\\`.\\`id\\` AND \\`seq\\` > 0\n ),\n (\n SELECT \\`seq\\`\n FROM \\`event_sequence\\`\n WHERE \\`aggregate_id\\` = \\`session\\`.\\`id\\`\n ),\n 0\n )\n WHERE \\`fork_session_id\\` IS NOT NULL;\n `)\n yield* tx.run(`\n UPDATE \\`event\\`\n SET\n \\`type\\` = 'session.forked.2',\n \\`data\\` = json_set(\n \\`data\\`,\n '$.parentSeq',\n COALESCE(\n (SELECT \\`fork_seq\\` FROM \\`session\\` WHERE \\`id\\` = \\`event\\`.\\`aggregate_id\\`),\n 0\n )\n )\n WHERE \\`type\\` = 'session.forked.1';\n `)\n yield* tx.run(`DELETE FROM \\`event\\` WHERE \\`type\\` = 'session.instructions.updated.1';`)\n yield* tx.run(`DROP TABLE \\`instruction_checkpoint\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,+CAAmD,EACjE,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,khBAWb,EACD,MAAO,EAAG,IAAI,+QAMb,EACD,MAAO,EAAG,IAAI,iCAAmC,EACjD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,yBAAyB,EACvC,MAAO,EAAG,IAAI,6HAKb,EACD,MAAO,EAAG,IAAI,saASb,EAGD,MAAO,EAAG,IAAI,wDAA4D,EAC1E,MAAO,EAAG,IAAI,kbAgBb,EACD,MAAO,EAAG,IAAI,6WAab,EACD,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,sCAAwC,EACvD,EAEL",
"debugId": "700382B19C3A394E64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260410174513_workspace-name.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260410174513_workspace-name\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`PRAGMA foreign_keys=OFF;`)\n yield* tx.run(`\n CREATE TABLE \\`__new_workspace\\` (\n \\`id\\` text PRIMARY KEY,\n \\`type\\` text NOT NULL,\n \\`name\\` text DEFAULT '' NOT NULL,\n \\`branch\\` text,\n \\`directory\\` text,\n \\`extra\\` text,\n \\`project_id\\` text NOT NULL,\n CONSTRAINT \\`fk_workspace_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `INSERT INTO \\`__new_workspace\\`(\\`id\\`, \\`type\\`, \\`branch\\`, \\`name\\`, \\`directory\\`, \\`extra\\`, \\`project_id\\`) SELECT \\`id\\`, \\`type\\`, \\`branch\\`, \\`name\\`, \\`directory\\`, \\`extra\\`, \\`project_id\\` FROM \\`workspace\\`;`,\n )\n yield* tx.run(`DROP TABLE \\`workspace\\`;`)\n yield* tx.run(`ALTER TABLE \\`__new_workspace\\` RENAME TO \\`workspace\\`;`)\n yield* tx.run(`PRAGMA foreign_keys=ON;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,gCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0BAA0B,EACxC,MAAO,EAAG,IAAI,4aAWb,EACD,MAAO,EAAG,IACR,+LACF,EACA,MAAO,EAAG,IAAI,yBAA2B,EACzC,MAAO,EAAG,IAAI,sDAA0D,EACxE,MAAO,EAAG,IAAI,yBAAyB,EACxC,EAEL",
"debugId": "E054296D2CC650D264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "C12335D2112B8E6564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/resolve.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { OpenCodeClient } from \"@opencode-ai/client\"\n\n// Resolve through the MCP-owned integrationID rather than matching integration names: the shared\n// integration registry also holds provider/plugin integrations, whose names could collide with a server.\n// Fails when the server is unknown; returns undefined when the server has no integration (e.g. a local\n// or anonymous server), leaving that case for the caller to interpret.\nexport const resolveIntegration = (client: OpenCodeClient, name: string, location: { directory: string }) =>\n Effect.gen(function* () {\n const servers = yield* Effect.promise(() => client.mcp.list({ location }))\n const server = servers.data.find((entry) => entry.name === name)\n if (!server) return yield* Effect.fail(new Error(`MCP server not found: ${name}`))\n const integrationID = server.integrationID\n if (!integrationID) return undefined\n return yield* Effect.promise(() => client.integration.get({ integrationID, location })).pipe(\n Effect.map((result) => result.data ?? undefined),\n )\n })\n"
],
"mappings": ";oDAOO,IAAM,EAAqB,CAAC,EAAwB,EAAc,IACvE,EAAO,IAAI,SAAU,EAAG,CAEtB,IAAM,GADU,MAAO,EAAO,QAAQ,IAAM,EAAO,IAAI,KAAK,CAAE,UAAS,CAAC,CAAC,GAClD,KAAK,KAAK,CAAC,IAAU,EAAM,OAAS,CAAI,EAC/D,GAAI,CAAC,EAAQ,OAAO,MAAO,EAAO,KAAS,MAAM,yBAAyB,GAAM,CAAC,EACjF,IAAM,EAAgB,EAAO,cAC7B,GAAI,CAAC,EAAe,OACpB,OAAO,MAAO,EAAO,QAAQ,IAAM,EAAO,YAAY,IAAI,CAAE,gBAAe,UAAS,CAAC,CAAC,EAAE,KACtF,EAAO,IAAI,CAAC,IAAW,EAAO,MAAQ,MAAS,CACjD,EACD",
"debugId": "80A4ED3D2085093564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+cohere@3.0.27+d6123d32214422cb/node_modules/@ai-sdk/cohere/dist/index.mjs"],
"sourcesContent": [
"// src/cohere-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/cohere-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/cohere-chat-options.ts\nimport { z } from \"zod/v4\";\nvar cohereLanguageModelOptions = z.object({\n /**\n * Configuration for reasoning features (optional)\n *\n * Can be set to an object with the two properties `type` and `tokenBudget`. `type` can be set to `'enabled'` or `'disabled'` (defaults to `'enabled'`).\n * `tokenBudget` is the maximum number of tokens the model can use for thinking, which must be set to a positive integer. The model will stop thinking if it reaches the thinking token budget and will proceed with the response\n *\n * @see https://docs.cohere.com/reference/chat#request.body.thinking\n */\n thinking: z.object({\n type: z.enum([\"enabled\", \"disabled\"]).optional(),\n tokenBudget: z.number().optional()\n }).optional()\n});\n\n// src/cohere-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar cohereErrorDataSchema = z2.object({\n message: z2.string()\n});\nvar cohereFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: cohereErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/cohere-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const cohereTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n cohereTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: cohereTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return { tools: cohereTools, toolChoice: void 0, toolWarnings };\n case \"none\":\n return { tools: cohereTools, toolChoice: \"NONE\", toolWarnings };\n case \"required\":\n return { tools: cohereTools, toolChoice: \"REQUIRED\", toolWarnings };\n case \"tool\":\n return {\n tools: cohereTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"REQUIRED\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/convert-cohere-usage.ts\nfunction convertCohereUsage(tokens) {\n if (tokens == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const inputTokens = tokens.input_tokens;\n const outputTokens = tokens.output_tokens;\n return {\n inputTokens: {\n total: inputTokens,\n noCache: inputTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: outputTokens,\n text: outputTokens,\n reasoning: void 0\n },\n raw: tokens\n };\n}\n\n// src/convert-to-cohere-chat-prompt.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction convertToCohereChatPrompt(prompt) {\n const messages = [];\n const documents = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"file\": {\n let textContent;\n if (typeof part.data === \"string\") {\n textContent = part.data;\n } else if (part.data instanceof Uint8Array) {\n if (!(((_a = part.mediaType) == null ? void 0 : _a.startsWith(\"text/\")) || part.mediaType === \"application/json\")) {\n throw new UnsupportedFunctionalityError2({\n functionality: `document media type: ${part.mediaType}`,\n message: `Media type '${part.mediaType}' is not supported. Supported media types are: text/* and application/json.`\n });\n }\n textContent = new TextDecoder().decode(part.data);\n } else {\n throw new UnsupportedFunctionalityError2({\n functionality: \"File URL data\",\n message: \"URLs should be downloaded by the AI SDK and not reach this point. This indicates a configuration issue.\"\n });\n }\n documents.push({\n data: {\n text: textContent,\n title: part.filename\n }\n });\n return \"\";\n }\n }\n }).join(\"\")\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: toolCalls.length > 0 ? void 0 : text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n tool_plan: void 0\n });\n break;\n }\n case \"tool\": {\n messages.push(\n ...content.filter((toolResult) => toolResult.type !== \"tool-approval-response\").map((toolResult) => {\n var _a;\n const output = toolResult.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n return {\n role: \"tool\",\n content: contentValue,\n tool_call_id: toolResult.toolCallId\n };\n })\n );\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { messages, documents, warnings };\n}\n\n// src/map-cohere-finish-reason.ts\nfunction mapCohereFinishReason(finishReason) {\n switch (finishReason) {\n case \"COMPLETE\":\n case \"STOP_SEQUENCE\":\n return \"stop\";\n case \"MAX_TOKENS\":\n return \"length\";\n case \"ERROR\":\n return \"error\";\n case \"TOOL_CALL\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/cohere-chat-language-model.ts\nvar CohereChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b;\n const cohereOptions = (_a = await parseProviderOptions({\n provider: \"cohere\",\n providerOptions,\n schema: cohereLanguageModelOptions\n })) != null ? _a : {};\n const {\n messages: chatPrompt,\n documents: cohereDocuments,\n warnings: promptWarnings\n } = convertToCohereChatPrompt(prompt);\n const {\n tools: cohereTools,\n toolChoice: cohereToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice });\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n max_tokens: maxOutputTokens,\n temperature,\n p: topP,\n k: topK,\n seed,\n stop_sequences: stopSequences,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? { type: \"json_object\", json_schema: responseFormat.schema } : void 0,\n // messages:\n messages: chatPrompt,\n // tools:\n tools: cohereTools,\n tool_choice: cohereToolChoice,\n // documents for RAG:\n ...cohereDocuments.length > 0 && { documents: cohereDocuments },\n // reasoning\n ...cohereOptions.thinking && {\n thinking: {\n type: (_b = cohereOptions.thinking.type) != null ? _b : \"enabled\",\n token_budget: cohereOptions.thinking.tokenBudget\n }\n }\n },\n warnings: [...toolWarnings, ...promptWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n cohereChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const content = [];\n for (const item of (_a = response.message.content) != null ? _a : []) {\n if (item.type === \"text\" && item.text.length > 0) {\n content.push({ type: \"text\", text: item.text });\n continue;\n }\n if (item.type === \"thinking\" && item.thinking.length > 0) {\n content.push({ type: \"reasoning\", text: item.thinking });\n continue;\n }\n }\n for (const citation of (_b = response.message.citations) != null ? _b : []) {\n content.push({\n type: \"source\",\n sourceType: \"document\",\n id: this.config.generateId(),\n mediaType: \"text/plain\",\n title: ((_d = (_c = citation.sources[0]) == null ? void 0 : _c.document) == null ? void 0 : _d.title) || \"Document\",\n providerMetadata: {\n cohere: {\n start: citation.start,\n end: citation.end,\n text: citation.text,\n sources: citation.sources,\n ...citation.type && { citationType: citation.type }\n }\n }\n });\n }\n for (const toolCall of (_e = response.message.tool_calls) != null ? _e : []) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n // Cohere sometimes returns `null` for tool call arguments for tools\n // defined as having no arguments.\n input: toolCall.function.arguments.replace(/^null$/, \"{}\")\n });\n }\n return {\n content,\n finishReason: {\n unified: mapCohereFinishReason(response.finish_reason),\n raw: (_f = response.finish_reason) != null ? _f : void 0\n },\n usage: convertCohereUsage(response.usage.tokens),\n request: { body: args },\n response: {\n // TODO timestamp, model id\n id: (_g = response.generation_id) != null ? _g : void 0,\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: { ...args, stream: true },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n cohereChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let pendingToolCall = null;\n let isActiveReasoning = false;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n const type = value.type;\n switch (type) {\n case \"content-start\": {\n if (value.delta.message.content.type === \"thinking\") {\n controller.enqueue({\n type: \"reasoning-start\",\n id: String(value.index)\n });\n isActiveReasoning = true;\n return;\n }\n controller.enqueue({\n type: \"text-start\",\n id: String(value.index)\n });\n return;\n }\n case \"content-delta\": {\n if (\"thinking\" in value.delta.message.content) {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: String(value.index),\n delta: value.delta.message.content.thinking\n });\n return;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: String(value.index),\n delta: value.delta.message.content.text\n });\n return;\n }\n case \"content-end\": {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: String(value.index)\n });\n isActiveReasoning = false;\n return;\n }\n controller.enqueue({\n type: \"text-end\",\n id: String(value.index)\n });\n return;\n }\n case \"tool-call-start\": {\n const toolId = value.delta.message.tool_calls.id;\n const toolName = value.delta.message.tool_calls.function.name;\n const initialArgs = value.delta.message.tool_calls.function.arguments;\n pendingToolCall = {\n id: toolId,\n name: toolName,\n arguments: initialArgs,\n hasFinished: false\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolId,\n toolName\n });\n if (initialArgs.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolId,\n delta: initialArgs\n });\n }\n return;\n }\n case \"tool-call-delta\": {\n if (pendingToolCall && !pendingToolCall.hasFinished) {\n const argsDelta = value.delta.message.tool_calls.function.arguments;\n pendingToolCall.arguments += argsDelta;\n controller.enqueue({\n type: \"tool-input-delta\",\n id: pendingToolCall.id,\n delta: argsDelta\n });\n }\n return;\n }\n case \"tool-call-end\": {\n if (pendingToolCall && !pendingToolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: pendingToolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: pendingToolCall.id,\n toolName: pendingToolCall.name,\n input: JSON.stringify(\n JSON.parse(((_a = pendingToolCall.arguments) == null ? void 0 : _a.trim()) || \"{}\")\n )\n });\n pendingToolCall.hasFinished = true;\n pendingToolCall = null;\n }\n return;\n }\n case \"message-start\": {\n controller.enqueue({\n type: \"response-metadata\",\n id: (_b = value.id) != null ? _b : void 0\n });\n return;\n }\n case \"message-end\": {\n finishReason = {\n unified: mapCohereFinishReason(value.delta.finish_reason),\n raw: value.delta.finish_reason\n };\n usage = value.delta.usage.tokens;\n return;\n }\n default: {\n return;\n }\n }\n },\n flush(controller) {\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertCohereUsage(usage)\n });\n }\n })\n ),\n request: { body: { ...args, stream: true } },\n response: { headers: responseHeaders }\n };\n }\n};\nvar cohereChatResponseSchema = z3.object({\n generation_id: z3.string().nullish(),\n message: z3.object({\n role: z3.string(),\n content: z3.array(\n z3.union([\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.string()\n })\n ])\n ).nullish(),\n tool_plan: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish(),\n citations: z3.array(\n z3.object({\n start: z3.number(),\n end: z3.number(),\n text: z3.string(),\n sources: z3.array(\n z3.object({\n type: z3.string().optional(),\n id: z3.string().optional(),\n document: z3.object({\n id: z3.string().optional(),\n text: z3.string(),\n title: z3.string()\n })\n })\n ),\n type: z3.string().optional()\n })\n ).nullish()\n }),\n finish_reason: z3.string(),\n usage: z3.object({\n billed_units: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n }),\n tokens: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n })\n })\n});\nvar cohereChatChunkSchema = z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"citation-start\")\n }),\n z3.object({\n type: z3.literal(\"citation-end\")\n }),\n z3.object({\n type: z3.literal(\"content-start\"),\n index: z3.number(),\n delta: z3.object({\n message: z3.object({\n content: z3.union([\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.string()\n })\n ])\n })\n })\n }),\n z3.object({\n type: z3.literal(\"content-delta\"),\n index: z3.number(),\n delta: z3.object({\n message: z3.object({\n content: z3.union([\n z3.object({\n text: z3.string()\n }),\n z3.object({\n thinking: z3.string()\n })\n ])\n })\n })\n }),\n z3.object({\n type: z3.literal(\"content-end\"),\n index: z3.number()\n }),\n z3.object({\n type: z3.literal(\"message-start\"),\n id: z3.string().nullish()\n }),\n z3.object({\n type: z3.literal(\"message-end\"),\n delta: z3.object({\n finish_reason: z3.string(),\n usage: z3.object({\n tokens: z3.object({\n input_tokens: z3.number(),\n output_tokens: z3.number()\n })\n })\n })\n }),\n // https://docs.cohere.com/v2/docs/streaming#tool-use-stream-events-for-tool-calling\n z3.object({\n type: z3.literal(\"tool-plan-delta\"),\n delta: z3.object({\n message: z3.object({\n tool_plan: z3.string()\n })\n })\n }),\n z3.object({\n type: z3.literal(\"tool-call-start\"),\n delta: z3.object({\n message: z3.object({\n tool_calls: z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n })\n })\n }),\n // A single tool call's `arguments` stream in chunks and must be accumulated\n // in a string and so the full tool object info can only be parsed once we see\n // `tool-call-end`.\n z3.object({\n type: z3.literal(\"tool-call-delta\"),\n delta: z3.object({\n message: z3.object({\n tool_calls: z3.object({\n function: z3.object({\n arguments: z3.string()\n })\n })\n })\n })\n }),\n z3.object({\n type: z3.literal(\"tool-call-end\")\n })\n]);\n\n// src/cohere-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/cohere-embedding-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar cohereEmbeddingModelOptions = z4.object({\n /**\n * Specifies the type of input passed to the model. Default is `search_query`.\n *\n * - \"search_document\": Used for embeddings stored in a vector database for search use-cases.\n * - \"search_query\": Used for embeddings of search queries run against a vector DB to find relevant documents.\n * - \"classification\": Used for embeddings passed through a text classifier.\n * - \"clustering\": Used for embeddings run through a clustering algorithm.\n */\n inputType: z4.enum([\"search_document\", \"search_query\", \"classification\", \"clustering\"]).optional(),\n /**\n * Specifies how the API will handle inputs longer than the maximum token length.\n * Default is `END`.\n *\n * - \"NONE\": If selected, when the input exceeds the maximum input token length will return an error.\n * - \"START\": Will discard the start of the input until the remaining input is exactly the maximum input token length for the model.\n * - \"END\": Will discard the end of the input until the remaining input is exactly the maximum input token length for the model.\n */\n truncate: z4.enum([\"NONE\", \"START\", \"END\"]).optional(),\n /**\n * The number of dimensions of the output embedding.\n * Only available for `embed-v4.0` and newer models.\n *\n * Possible values are `256`, `512`, `1024`, and `1536`.\n * The default is `1536`.\n */\n outputDimension: z4.union([z4.literal(256), z4.literal(512), z4.literal(1024), z4.literal(1536)]).optional()\n});\n\n// src/cohere-embedding-model.ts\nvar CohereEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 96;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n var _a;\n const embeddingOptions = await parseProviderOptions2({\n provider: \"cohere\",\n providerOptions,\n schema: cohereEmbeddingModelOptions\n });\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embed`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n // The AI SDK only supports 'float' embeddings. Note that the Cohere API\n // supports other embedding types, but they are not currently supported by the AI SDK.\n // https://docs.cohere.com/v2/reference/embed#request.body.embedding_types\n embedding_types: [\"float\"],\n texts: values,\n input_type: (_a = embeddingOptions == null ? void 0 : embeddingOptions.inputType) != null ? _a : \"search_query\",\n truncate: embeddingOptions == null ? void 0 : embeddingOptions.truncate,\n output_dimension: embeddingOptions == null ? void 0 : embeddingOptions.outputDimension\n },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n cohereTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.embeddings.float,\n usage: { tokens: response.meta.billed_units.input_tokens },\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar cohereTextEmbeddingResponseSchema = z5.object({\n embeddings: z5.object({\n float: z5.array(z5.array(z5.number()))\n }),\n meta: z5.object({\n billed_units: z5.object({\n input_tokens: z5.number()\n })\n })\n});\n\n// src/reranking/cohere-reranking-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/cohere-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar cohereRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z6.object({\n id: z6.string().nullish(),\n results: z6.array(\n z6.object({\n index: z6.number(),\n relevance_score: z6.number()\n })\n ),\n meta: z6.any()\n })\n )\n);\n\n// src/reranking/cohere-reranking-options.ts\nimport { lazySchema as lazySchema2, zodSchema as zodSchema2 } from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar cohereRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z7.object({\n maxTokensPerDoc: z7.number().optional(),\n priority: z7.number().optional()\n })\n )\n);\n\n// src/reranking/cohere-reranking-model.ts\nvar CohereRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // current implementation is based on v2 of the API: https://docs.cohere.com/v2/reference/rerank\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a;\n const rerankingOptions = await parseProviderOptions3({\n provider: \"cohere\",\n providerOptions,\n schema: cohereRerankingModelOptionsSchema\n });\n const warnings = [];\n if (documents.type === \"object\") {\n warnings.push({\n type: \"compatibility\",\n feature: \"object documents\",\n details: \"Object documents are converted to strings.\"\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi3({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders3(this.config.headers(), headers),\n body: {\n model: this.modelId,\n query,\n documents: documents.type === \"text\" ? documents.values : documents.values.map((value) => JSON.stringify(value)),\n top_n: topN,\n max_tokens_per_doc: rerankingOptions == null ? void 0 : rerankingOptions.maxTokensPerDoc,\n priority: rerankingOptions == null ? void 0 : rerankingOptions.priority\n },\n failedResponseHandler: cohereFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n cohereRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n warnings,\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.27\" : \"0.0.0-test\";\n\n// src/cohere-provider.ts\nfunction createCohere(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.cohere.com/v2\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"COHERE_API_KEY\",\n description: \"Cohere\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cohere/${VERSION}`\n );\n const createChatModel = (modelId) => {\n var _a2;\n return new CohereChatLanguageModel(modelId, {\n provider: \"cohere.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId\n });\n };\n const createEmbeddingModel = (modelId) => new CohereEmbeddingModel(modelId, {\n provider: \"cohere.textEmbedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createRerankingModel = (modelId) => new CohereRerankingModel(modelId, {\n provider: \"cohere.reranking\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Cohere model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cohere = createCohere();\nexport {\n VERSION,\n cohere,\n createCohere\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";8TAuBA,SAAI,OAA6B,OAAE,YAAO,CASxC,SAAU,EAAE,OAAO,CACjB,KAAM,EAAE,KAAK,CAAC,UAAW,UAAU,CAAC,EAAE,SAAS,EAC/C,YAAa,EAAE,OAAO,EAAE,SAAS,CACnC,CAAC,EAAE,SAAS,CACd,CAAC,EAKG,EAAwB,EAAG,OAAO,CACpC,QAAS,EAAG,OAAO,CACrB,CAAC,EACG,EAA8B,EAA+B,CAC/D,YAAa,EACb,eAAgB,CAAC,IAAS,EAAK,OACjC,CAAC,EAMD,SAAS,CAAY,EACnB,QACA,cACC,CACD,GAAS,GAAS,KAAY,OAAI,EAAM,QAAU,EAAa,OAC/D,IAAM,EAAe,CAAC,EACtB,GAAI,GAAS,KACX,MAAO,CAAE,MAAY,OAAG,WAAiB,OAAG,cAAa,EAE3D,IAAM,EAAc,CAAC,EACrB,QAAW,KAAQ,EACjB,GAAI,EAAK,OAAS,WAChB,EAAa,KAAK,CAChB,KAAM,cACN,QAAS,yBAAyB,EAAK,IACzC,CAAC,EAED,OAAY,KAAK,CACf,KAAM,WACN,SAAU,CACR,KAAM,EAAK,KACX,YAAa,EAAK,YAClB,WAAY,EAAK,WACnB,CACF,CAAC,EAGL,GAAI,GAAc,KAChB,MAAO,CAAE,MAAO,EAAa,WAAiB,OAAG,cAAa,EAEhE,IAAM,EAAO,EAAW,KACxB,OAAQ,OACD,OACH,MAAO,CAAE,MAAO,EAAa,WAAiB,OAAG,cAAa,MAC3D,OACH,MAAO,CAAE,MAAO,EAAa,WAAY,OAAQ,cAAa,MAC3D,WACH,MAAO,CAAE,MAAO,EAAa,WAAY,WAAY,cAAa,MAC/D,OACH,MAAO,CACL,MAAO,EAAY,OACjB,CAAC,IAAS,EAAK,SAAS,OAAS,EAAW,QAC9C,EACA,WAAY,WACZ,cACF,UAGA,MAAM,IAAI,EAA8B,CACtC,cAAe,qBAFQ,GAGzB,CAAC,GAMP,SAAS,CAAkB,CAAC,EAAQ,CAClC,GAAI,GAAU,KACZ,MAAO,CACL,YAAa,CACX,MAAY,OACZ,QAAc,OACd,UAAgB,OAChB,WAAiB,MACnB,EACA,aAAc,CACZ,MAAY,OACZ,KAAW,OACX,UAAgB,MAClB,EACA,IAAU,MACZ,EAEF,IAA2B,aAArB,EACsB,cAAtB,GAAe,EACrB,MAAO,CACL,YAAa,CACX,MAAO,EACP,QAAS,EACT,UAAgB,OAChB,WAAiB,MACnB,EACA,aAAc,CACZ,MAAO,EACP,KAAM,EACN,UAAgB,MAClB,EACA,IAAK,CACP,EAOF,SAAS,CAAyB,CAAC,EAAQ,CACzC,IAAM,EAAW,CAAC,EACZ,EAAY,CAAC,EACb,EAAW,CAAC,EAClB,QAAa,OAAM,aAAa,EAC9B,OAAQ,OACD,SAAU,CACb,EAAS,KAAK,CAAE,KAAM,SAAU,SAAQ,CAAC,EACzC,KACF,KACK,OAAQ,CACX,EAAS,KAAK,CACZ,KAAM,OACN,QAAS,EAAQ,IAAI,CAAC,IAAS,CAC7B,IAAI,EACJ,OAAQ,EAAK,UACN,OACH,OAAO,EAAK,SAET,OAAQ,CACX,IAAI,EACJ,GAAI,OAAO,EAAK,OAAS,SACvB,EAAc,EAAK,KACd,QAAI,EAAK,gBAAgB,WAAY,CAC1C,GAAI,IAAI,EAAK,EAAK,YAAc,KAAY,OAAI,EAAG,WAAW,OAAO,IAAM,EAAK,YAAc,oBAC5F,MAAM,IAAI,EAA+B,CACvC,cAAe,wBAAwB,EAAK,YAC5C,QAAS,eAAe,EAAK,sFAC/B,CAAC,EAEH,EAAc,IAAI,YAAY,EAAE,OAAO,EAAK,IAAI,EAEhD,WAAM,IAAI,EAA+B,CACvC,cAAe,gBACf,QAAS,yGACX,CAAC,EAQH,OANA,EAAU,KAAK,CACb,KAAM,CACJ,KAAM,EACN,MAAO,EAAK,QACd,CACF,CAAC,EACM,EACT,GAEH,EAAE,KAAK,EAAE,CACZ,CAAC,EACD,KACF,KACK,YAAa,CAChB,IAAI,EAAO,GACL,EAAY,CAAC,EACnB,QAAW,KAAQ,EACjB,OAAQ,EAAK,UACN,OAAQ,CACX,GAAQ,EAAK,KACb,KACF,KACK,YAAa,CAChB,EAAU,KAAK,CACb,GAAI,EAAK,WACT,KAAM,WACN,SAAU,CACR,KAAM,EAAK,SACX,UAAW,KAAK,UAAU,EAAK,KAAK,CACtC,CACF,CAAC,EACD,KACF,EAGJ,EAAS,KAAK,CACZ,KAAM,YACN,QAAS,EAAU,OAAS,EAAS,OAAI,EACzC,WAAY,EAAU,OAAS,EAAI,EAAiB,OACpD,UAAgB,MAClB,CAAC,EACD,KACF,KACK,OAAQ,CACX,EAAS,KACP,GAAG,EAAQ,OAAO,CAAC,IAAe,EAAW,OAAS,wBAAwB,EAAE,IAAI,CAAC,IAAe,CAClG,IAAI,EACJ,IAAM,EAAS,EAAW,OACtB,EACJ,OAAQ,EAAO,UACR,WACA,aACH,EAAe,EAAO,MACtB,UACG,mBACH,GAAgB,EAAK,EAAO,SAAW,KAAO,EAAK,yBACnD,UACG,cACA,WACA,aACH,EAAe,KAAK,UAAU,EAAO,KAAK,EAC1C,MAEJ,MAAO,CACL,KAAM,OACN,QAAS,EACT,aAAc,EAAW,UAC3B,EACD,CACH,EACA,KACF,SAGE,MAAU,MAAM,qBADS,GAC8B,EAI7D,MAAO,CAAE,WAAU,YAAW,UAAS,EAIzC,SAAS,CAAqB,CAAC,EAAc,CAC3C,OAAQ,OACD,eACA,gBACH,MAAO,WACJ,aACH,MAAO,aACJ,QACH,MAAO,YACJ,YACH,MAAO,qBAEP,MAAO,SAKb,IAAI,EAA0B,KAAM,CAClC,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,qBAAuB,KAC5B,KAAK,cAAgB,CAErB,EACA,KAAK,QAAU,EACf,KAAK,OAAS,KAEZ,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,EACX,SACA,kBACA,cACA,OACA,OACA,mBACA,kBACA,gBACA,iBACA,OACA,QACA,aACA,mBACC,CACD,IAAI,EAAI,EACR,IAAM,GAAiB,EAAK,MAAM,EAAqB,CACrD,SAAU,SACV,kBACA,OAAQ,CACV,CAAC,IAAM,KAAO,EAAK,CAAC,GAElB,SAAU,EACV,UAAW,EACX,SAAU,GACR,EAA0B,CAAM,GAElC,MAAO,EACP,WAAY,EACZ,gBACE,EAAa,CAAE,QAAO,YAAW,CAAC,EACtC,MAAO,CACL,KAAM,CAEJ,MAAO,KAAK,QAEZ,kBAAmB,EACnB,iBAAkB,EAClB,WAAY,EACZ,cACA,EAAG,EACH,EAAG,EACH,OACA,eAAgB,EAEhB,iBAAkB,GAAkB,KAAY,OAAI,EAAe,QAAU,OAAS,CAAE,KAAM,cAAe,YAAa,EAAe,MAAO,EAAS,OAEzJ,SAAU,EAEV,MAAO,EACP,YAAa,KAEV,EAAgB,OAAS,GAAK,CAAE,UAAW,CAAgB,KAE3D,EAAc,UAAY,CAC3B,SAAU,CACR,MAAO,EAAK,EAAc,SAAS,OAAS,KAAO,EAAK,UACxD,aAAc,EAAc,SAAS,WACvC,CACF,CACF,EACA,SAAU,CAAC,GAAG,EAAc,GAAG,CAAc,CAC/C,OAEI,WAAU,CAAC,EAAS,CACxB,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5B,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,CAAO,GAEnD,kBACA,MAAO,EACP,SAAU,GACR,MAAM,EAAc,CACtB,IAAK,GAAG,KAAK,OAAO,eACpB,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,EAAQ,OAAO,EAC9D,KAAM,EACN,sBAAuB,EACvB,0BAA2B,EACzB,CACF,EACA,YAAa,EAAQ,YACrB,MAAO,KAAK,OAAO,KACrB,CAAC,EACK,EAAU,CAAC,EACjB,QAAW,KAAS,EAAK,EAAS,QAAQ,UAAY,KAAO,EAAK,CAAC,EAAG,CACpE,GAAI,EAAK,OAAS,QAAU,EAAK,KAAK,OAAS,EAAG,CAChD,EAAQ,KAAK,CAAE,KAAM,OAAQ,KAAM,EAAK,IAAK,CAAC,EAC9C,SAEF,GAAI,EAAK,OAAS,YAAc,EAAK,SAAS,OAAS,EAAG,CACxD,EAAQ,KAAK,CAAE,KAAM,YAAa,KAAM,EAAK,QAAS,CAAC,EACvD,UAGJ,QAAW,KAAa,EAAK,EAAS,QAAQ,YAAc,KAAO,EAAK,CAAC,EACvE,EAAQ,KAAK,CACX,KAAM,SACN,WAAY,WACZ,GAAI,KAAK,OAAO,WAAW,EAC3B,UAAW,aACX,QAAS,GAAM,EAAK,EAAS,QAAQ,KAAO,KAAY,OAAI,EAAG,WAAa,KAAY,OAAI,EAAG,QAAU,WACzG,iBAAkB,CAChB,OAAQ,CACN,MAAO,EAAS,MAChB,IAAK,EAAS,IACd,KAAM,EAAS,KACf,QAAS,EAAS,WACf,EAAS,MAAQ,CAAE,aAAc,EAAS,IAAK,CACpD,CACF,CACF,CAAC,EAEH,QAAW,KAAa,EAAK,EAAS,QAAQ,aAAe,KAAO,EAAK,CAAC,EACxE,EAAQ,KAAK,CACX,KAAM,YACN,WAAY,EAAS,GACrB,SAAU,EAAS,SAAS,KAG5B,MAAO,EAAS,SAAS,UAAU,QAAQ,SAAU,IAAI,CAC3D,CAAC,EAEH,MAAO,CACL,UACA,aAAc,CACZ,QAAS,EAAsB,EAAS,aAAa,EACrD,KAAM,EAAK,EAAS,gBAAkB,KAAO,EAAU,MACzD,EACA,MAAO,EAAmB,EAAS,MAAM,MAAM,EAC/C,QAAS,CAAE,KAAM,CAAK,EACtB,SAAU,CAER,IAAK,EAAK,EAAS,gBAAkB,KAAO,EAAU,OACtD,QAAS,EACT,KAAM,CACR,EACA,UACF,OAEI,SAAQ,CAAC,EAAS,CACtB,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,CAAO,GAC7C,kBAAiB,MAAO,GAAa,MAAM,EAAc,CAC/D,IAAK,GAAG,KAAK,OAAO,eACpB,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,EAAQ,OAAO,EAC9D,KAAM,IAAK,EAAM,OAAQ,EAAK,EAC9B,sBAAuB,EACvB,0BAA2B,EACzB,CACF,EACA,YAAa,EAAQ,YACrB,MAAO,KAAK,OAAO,KACrB,CAAC,EACG,EAAe,CACjB,QAAS,QACT,IAAU,MACZ,EACI,EAAa,OACb,EAAkB,KAClB,EAAoB,GACxB,MAAO,CACL,OAAQ,EAAS,YACf,IAAI,gBAAgB,CAClB,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CAAE,KAAM,eAAgB,UAAS,CAAC,GAEvD,SAAS,CAAC,EAAO,EAAY,CAC3B,IAAI,EAAI,EACR,GAAI,EAAQ,iBACV,EAAW,QAAQ,CAAE,KAAM,MAAO,SAAU,EAAM,QAAS,CAAC,EAE9D,GAAI,CAAC,EAAM,QAAS,CAClB,EAAe,CAAE,QAAS,QAAS,IAAU,MAAE,EAC/C,EAAW,QAAQ,CAAE,KAAM,QAAS,MAAO,EAAM,KAAM,CAAC,EACxD,OAEF,IAAM,EAAQ,EAAM,MAEpB,OADa,EAAM,UAEZ,gBAAiB,CACpB,GAAI,EAAM,MAAM,QAAQ,QAAQ,OAAS,WAAY,CACnD,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,OAAO,EAAM,KAAK,CACxB,CAAC,EACD,EAAoB,GACpB,OAEF,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,OAAO,EAAM,KAAK,CACxB,CAAC,EACD,MACF,KACK,gBAAiB,CACpB,GAAI,aAAc,EAAM,MAAM,QAAQ,QAAS,CAC7C,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,OAAO,EAAM,KAAK,EACtB,MAAO,EAAM,MAAM,QAAQ,QAAQ,QACrC,CAAC,EACD,OAEF,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,OAAO,EAAM,KAAK,EACtB,MAAO,EAAM,MAAM,QAAQ,QAAQ,IACrC,CAAC,EACD,MACF,KACK,cAAe,CAClB,GAAI,EAAmB,CACrB,EAAW,QAAQ,CACjB,KAAM,gBACN,GAAI,OAAO,EAAM,KAAK,CACxB,CAAC,EACD,EAAoB,GACpB,OAEF,EAAW,QAAQ,CACjB,KAAM,WACN,GAAI,OAAO,EAAM,KAAK,CACxB,CAAC,EACD,MACF,KACK,kBAAmB,CACtB,IAAM,EAAS,EAAM,MAAM,QAAQ,WAAW,GACxC,EAAW,EAAM,MAAM,QAAQ,WAAW,SAAS,KACnD,EAAc,EAAM,MAAM,QAAQ,WAAW,SAAS,UAY5D,GAXA,EAAkB,CAChB,GAAI,EACJ,KAAM,EACN,UAAW,EACX,YAAa,EACf,EACA,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EACJ,UACF,CAAC,EACG,EAAY,OAAS,EACvB,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EACJ,MAAO,CACT,CAAC,EAEH,MACF,KACK,kBAAmB,CACtB,GAAI,GAAmB,CAAC,EAAgB,YAAa,CACnD,IAAM,EAAY,EAAM,MAAM,QAAQ,WAAW,SAAS,UAC1D,EAAgB,WAAa,EAC7B,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EAAgB,GACpB,MAAO,CACT,CAAC,EAEH,MACF,KACK,gBAAiB,CACpB,GAAI,GAAmB,CAAC,EAAgB,YACtC,EAAW,QAAQ,CACjB,KAAM,iBACN,GAAI,EAAgB,EACtB,CAAC,EACD,EAAW,QAAQ,CACjB,KAAM,YACN,WAAY,EAAgB,GAC5B,SAAU,EAAgB,KAC1B,MAAO,KAAK,UACV,KAAK,QAAQ,EAAK,EAAgB,YAAc,KAAY,OAAI,EAAG,KAAK,IAAM,IAAI,CACpF,CACF,CAAC,EACD,EAAgB,YAAc,GAC9B,EAAkB,KAEpB,MACF,KACK,gBAAiB,CACpB,EAAW,QAAQ,CACjB,KAAM,oBACN,IAAK,EAAK,EAAM,KAAO,KAAO,EAAU,MAC1C,CAAC,EACD,MACF,KACK,cAAe,CAClB,EAAe,CACb,QAAS,EAAsB,EAAM,MAAM,aAAa,EACxD,IAAK,EAAM,MAAM,aACnB,EACA,EAAQ,EAAM,MAAM,MAAM,OAC1B,MACF,SAEE,SAIN,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CACjB,KAAM,SACN,eACA,MAAO,EAAmB,CAAK,CACjC,CAAC,EAEL,CAAC,CACH,EACA,QAAS,CAAE,KAAM,IAAK,EAAM,OAAQ,EAAK,CAAE,EAC3C,SAAU,CAAE,QAAS,CAAgB,CACvC,EAEJ,EACI,EAA2B,EAAG,OAAO,CACvC,cAAe,EAAG,OAAO,EAAE,QAAQ,EACnC,QAAS,EAAG,OAAO,CACjB,KAAM,EAAG,OAAO,EAChB,QAAS,EAAG,MACV,EAAG,MAAM,CACP,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,OAAO,CAClB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,UAAU,EAC3B,SAAU,EAAG,OAAO,CACtB,CAAC,CACH,CAAC,CACH,EAAE,QAAQ,EACV,UAAW,EAAG,OAAO,EAAE,QAAQ,EAC/B,WAAY,EAAG,MACb,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EACd,KAAM,EAAG,QAAQ,UAAU,EAC3B,SAAU,EAAG,OAAO,CAClB,KAAM,EAAG,OAAO,EAChB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,EAAE,QAAQ,EACV,UAAW,EAAG,MACZ,EAAG,OAAO,CACR,MAAO,EAAG,OAAO,EACjB,IAAK,EAAG,OAAO,EACf,KAAM,EAAG,OAAO,EAChB,QAAS,EAAG,MACV,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,SAAS,EAC3B,GAAI,EAAG,OAAO,EAAE,SAAS,EACzB,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EAAE,SAAS,EACzB,KAAM,EAAG,OAAO,EAChB,MAAO,EAAG,OAAO,CACnB,CAAC,CACH,CAAC,CACH,EACA,KAAM,EAAG,OAAO,EAAE,SAAS,CAC7B,CAAC,CACH,EAAE,QAAQ,CACZ,CAAC,EACD,cAAe,EAAG,OAAO,EACzB,MAAO,EAAG,OAAO,CACf,aAAc,EAAG,OAAO,CACtB,aAAc,EAAG,OAAO,EACxB,cAAe,EAAG,OAAO,CAC3B,CAAC,EACD,OAAQ,EAAG,OAAO,CAChB,aAAc,EAAG,OAAO,EACxB,cAAe,EAAG,OAAO,CAC3B,CAAC,CACH,CAAC,CACH,CAAC,EACG,EAAwB,EAAG,mBAAmB,OAAQ,CACxD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,gBAAgB,CACnC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,cAAc,CACjC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,eAAe,EAChC,MAAO,EAAG,OAAO,EACjB,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,CACjB,QAAS,EAAG,MAAM,CAChB,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,OAAO,CAClB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,UAAU,EAC3B,SAAU,EAAG,OAAO,CACtB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,eAAe,EAChC,MAAO,EAAG,OAAO,EACjB,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,CACjB,QAAS,EAAG,MAAM,CAChB,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,CAClB,CAAC,EACD,EAAG,OAAO,CACR,SAAU,EAAG,OAAO,CACtB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,aAAa,EAC9B,MAAO,EAAG,OAAO,CACnB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,eAAe,EAChC,GAAI,EAAG,OAAO,EAAE,QAAQ,CAC1B,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,aAAa,EAC9B,MAAO,EAAG,OAAO,CACf,cAAe,EAAG,OAAO,EACzB,MAAO,EAAG,OAAO,CACf,OAAQ,EAAG,OAAO,CAChB,aAAc,EAAG,OAAO,EACxB,cAAe,EAAG,OAAO,CAC3B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAED,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,iBAAiB,EAClC,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,CACjB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,iBAAiB,EAClC,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,CACjB,WAAY,EAAG,OAAO,CACpB,GAAI,EAAG,OAAO,EACd,KAAM,EAAG,QAAQ,UAAU,EAC3B,SAAU,EAAG,OAAO,CAClB,KAAM,EAAG,OAAO,EAChB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAID,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,iBAAiB,EAClC,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,CACjB,WAAY,EAAG,OAAO,CACpB,SAAU,EAAG,OAAO,CAClB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,eAAe,CAClC,CAAC,CACH,CAAC,EAgBG,EAA8B,EAAG,OAAO,CAS1C,UAAW,EAAG,KAAK,CAAC,kBAAmB,eAAgB,iBAAkB,YAAY,CAAC,EAAE,SAAS,EASjG,SAAU,EAAG,KAAK,CAAC,OAAQ,QAAS,KAAK,CAAC,EAAE,SAAS,EAQrD,gBAAiB,EAAG,MAAM,CAAC,EAAG,QAAQ,GAAG,EAAG,EAAG,QAAQ,GAAG,EAAG,EAAG,QAAQ,IAAI,EAAG,EAAG,QAAQ,IAAI,CAAC,CAAC,EAAE,SAAS,CAC7G,CAAC,EAGG,EAAuB,KAAM,CAC/B,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,qBAAuB,KAC5B,KAAK,qBAAuB,GAC5B,KAAK,sBAAwB,GAC7B,KAAK,QAAU,EACf,KAAK,OAAS,KAEZ,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,EACX,SACA,UACA,cACA,mBACC,CACD,IAAI,EACJ,IAAM,EAAmB,MAAM,EAAsB,CACnD,SAAU,SACV,kBACA,OAAQ,CACV,CAAC,EACD,GAAI,EAAO,OAAS,KAAK,qBACvB,MAAM,IAAI,EAAmC,CAC3C,SAAU,KAAK,SACf,QAAS,KAAK,QACd,qBAAsB,KAAK,qBAC3B,QACF,CAAC,EAEH,IACE,kBACA,MAAO,EACP,YACE,MAAM,EAAe,CACvB,IAAK,GAAG,KAAK,OAAO,gBACpB,QAAS,EAAgB,KAAK,OAAO,QAAQ,EAAG,CAAO,EACvD,KAAM,CACJ,MAAO,KAAK,QAIZ,gBAAiB,CAAC,OAAO,EACzB,MAAO,EACP,YAAa,EAAK,GAAoB,KAAY,OAAI,EAAiB,YAAc,KAAO,EAAK,eACjG,SAAU,GAAoB,KAAY,OAAI,EAAiB,SAC/D,iBAAkB,GAAoB,KAAY,OAAI,EAAiB,eACzE,EACA,sBAAuB,EACvB,0BAA2B,EACzB,CACF,EACA,cACA,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,SAAU,CAAC,EACX,WAAY,EAAS,WAAW,MAChC,MAAO,CAAE,OAAQ,EAAS,KAAK,aAAa,YAAa,EACzD,SAAU,CAAE,QAAS,EAAiB,KAAM,CAAS,CACvD,EAEJ,EACI,EAAoC,EAAG,OAAO,CAChD,WAAY,EAAG,OAAO,CACpB,MAAO,EAAG,MAAM,EAAG,MAAM,EAAG,OAAO,CAAC,CAAC,CACvC,CAAC,EACD,KAAM,EAAG,OAAO,CACd,aAAc,EAAG,OAAO,CACtB,aAAc,EAAG,OAAO,CAC1B,CAAC,CACH,CAAC,CACH,CAAC,EAaG,EAAgC,EAClC,IAAM,EACJ,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EAAE,QAAQ,EACxB,QAAS,EAAG,MACV,EAAG,OAAO,CACR,MAAO,EAAG,OAAO,EACjB,gBAAiB,EAAG,OAAO,CAC7B,CAAC,CACH,EACA,KAAM,EAAG,IAAI,CACf,CAAC,CACH,CACF,EAKI,EAAoC,EACtC,IAAM,EACJ,EAAG,OAAO,CACR,gBAAiB,EAAG,OAAO,EAAE,SAAS,EACtC,SAAU,EAAG,OAAO,EAAE,SAAS,CACjC,CAAC,CACH,CACF,EAGI,EAAuB,KAAM,CAC/B,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,qBAAuB,KAC5B,KAAK,QAAU,EACf,KAAK,OAAS,KAEZ,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAGf,SAAQ,EACZ,YACA,UACA,QACA,OACA,cACA,mBACC,CACD,IAAI,EACJ,IAAM,EAAmB,MAAM,EAAsB,CACnD,SAAU,SACV,kBACA,OAAQ,CACV,CAAC,EACK,EAAW,CAAC,EAClB,GAAI,EAAU,OAAS,SACrB,EAAS,KAAK,CACZ,KAAM,gBACN,QAAS,mBACT,QAAS,4CACX,CAAC,EAEH,IACE,kBACA,MAAO,EACP,YACE,MAAM,EAAe,CACvB,IAAK,GAAG,KAAK,OAAO,iBACpB,QAAS,EAAgB,KAAK,OAAO,QAAQ,EAAG,CAAO,EACvD,KAAM,CACJ,MAAO,KAAK,QACZ,QACA,UAAW,EAAU,OAAS,OAAS,EAAU,OAAS,EAAU,OAAO,IAAI,CAAC,IAAU,KAAK,UAAU,CAAK,CAAC,EAC/G,MAAO,EACP,mBAAoB,GAAoB,KAAY,OAAI,EAAiB,gBACzE,SAAU,GAAoB,KAAY,OAAI,EAAiB,QACjE,EACA,sBAAuB,EACvB,0BAA2B,EACzB,CACF,EACA,cACA,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,QAAS,EAAS,QAAQ,IAAI,CAAC,KAAY,CACzC,MAAO,EAAO,MACd,eAAgB,EAAO,eACzB,EAAE,EACF,WACA,SAAU,CACR,IAAK,EAAK,EAAS,KAAO,KAAO,EAAU,OAC3C,QAAS,EACT,KAAM,CACR,CACF,EAEJ,EAGI,GAAiB,SAGrB,SAAS,EAAY,CAAC,EAAU,CAAC,EAAG,CAClC,IAAI,EACJ,IAAM,GAAW,EAAK,EAAqB,EAAQ,OAAO,IAAM,KAAO,EAAK,4BACtE,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,iBACzB,YAAa,QACf,CAAC,OACE,EAAQ,OACb,EACA,iBAAiB,IACnB,EACM,EAAkB,CAAC,IAAY,CACnC,IAAI,EACJ,OAAO,IAAI,EAAwB,EAAS,CAC1C,SAAU,cACV,UACA,QAAS,EACT,MAAO,EAAQ,MACf,YAAa,EAAM,EAAQ,aAAe,KAAO,EAAM,CACzD,CAAC,GAEG,EAAuB,CAAC,IAAY,IAAI,EAAqB,EAAS,CAC1E,SAAU,uBACV,UACA,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,EACK,EAAuB,CAAC,IAAY,IAAI,EAAqB,EAAS,CAC1E,SAAU,mBACV,UACA,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,EACK,EAAW,QAAQ,CAAC,EAAS,CACjC,GAAI,WACF,MAAU,MACR,kEACF,EAEF,OAAO,EAAgB,CAAO,GAahC,OAXA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,UAAY,EACrB,EAAS,eAAiB,EAC1B,EAAS,cAAgB,EACzB,EAAS,mBAAqB,EAC9B,EAAS,UAAY,EACrB,EAAS,eAAiB,EAC1B,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAE1D,EAET,IAAI,GAAS,GAAa",
"debugId": "797F18F19BBCCC4164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@aws-sdk+nested-clients@3.997.13/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js"],
"sourcesContent": [
"'use strict';\n\nvar client$1 = require('@aws-sdk/core/client');\nvar core = require('@smithy/core');\nvar client = require('@smithy/core/client');\nvar config = require('@smithy/core/config');\nvar endpoints = require('@smithy/core/endpoints');\nvar protocols = require('@smithy/core/protocols');\nvar retry = require('@smithy/core/retry');\nvar schema = require('@smithy/core/schema');\nvar httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');\nvar serde = require('@smithy/core/serde');\nvar nodeHttpHandler = require('@smithy/node-http-handler');\nvar protocols$1 = require('@aws-sdk/core/protocols');\n\nconst defaultSigninHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: client.getSmithyContext(context).operation,\n region: (await client.normalizeProvider(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"signin\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSigninHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateOAuth2Token\": {\n options.push(createSmithyApiNoAuthHttpAuthOption());\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = httpAuthSchemes.resolveAwsSdkSigV4Config(config);\n return Object.assign(config_0, {\n authSchemePreference: client.normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"signin\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nvar version = \"3.997.12\";\nvar packageInfo = {\n\tversion: version};\n\nconst m = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = \"stringEquals\", h = { [m]: \"Endpoint\" }, i = { [m]: d }, j = { fn: f, argv: [i, \"name\"] }, k = {}, l = [{ [m]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [h]],\n [c, l],\n [\"aws.partition\", l, d],\n [e, [{ [m]: \"UseFIPS\" }, b]],\n [e, [{ [m]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [i, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [i, \"supportsFIPS\"] }, b]],\n [g, [j, \"aws\"]],\n [g, [j, \"aws-cn\"]],\n [g, [j, \"aws-us-gov\"]],\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [h, k],\n [\"https://{Region}.signin.aws.amazon.com\", k],\n [\"https://{Region}.signin.amazonaws.cn\", k],\n [\"https://{Region}.signin.amazonaws-us-gov.com\", k],\n [\"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}\", k],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://signin.{Region}.{PartitionResult#dnsSuffix}\", k],\n [a, \"Invalid Configuration: Missing Region\"],\n ],\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1,\n 1,\n -1,\n 0,\n 15,\n 3,\n 1,\n 4,\n r + 14,\n 2,\n 5,\n r + 14,\n 3,\n 11,\n 6,\n 4,\n 10,\n 7,\n 7,\n r + 4,\n 8,\n 8,\n r + 5,\n 9,\n 9,\n r + 6,\n r + 13,\n 5,\n r + 11,\n r + 12,\n 4,\n 13,\n 12,\n 6,\n r + 9,\n r + 10,\n 5,\n 14,\n r + 8,\n 6,\n r + 7,\n r + 8,\n 3,\n r + 1,\n 16,\n 4,\n r + 2,\n r + 3,\n]);\nconst bdd = endpoints.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n\nconst cache = new endpoints.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => endpoints.decideEndpoint(bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nendpoints.customEndpointFunctions.aws = client$1.awsEndpointFunctions;\n\nclass SigninServiceException extends client.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SigninServiceException.prototype);\n }\n}\n\nclass AccessDeniedException extends SigninServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n this.error = opts.error;\n }\n}\nclass InternalServerException extends SigninServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n error;\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n this.error = opts.error;\n }\n}\nclass TooManyRequestsError extends SigninServiceException {\n name = \"TooManyRequestsError\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"TooManyRequestsError\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TooManyRequestsError.prototype);\n this.error = opts.error;\n }\n}\nclass ValidationException extends SigninServiceException {\n name = \"ValidationException\";\n $fault = \"client\";\n error;\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ValidationException.prototype);\n this.error = opts.error;\n }\n}\n\nconst _ADE = \"AccessDeniedException\";\nconst _AT = \"AccessToken\";\nconst _COAT = \"CreateOAuth2Token\";\nconst _COATR = \"CreateOAuth2TokenRequest\";\nconst _COATRB = \"CreateOAuth2TokenRequestBody\";\nconst _COATRBr = \"CreateOAuth2TokenResponseBody\";\nconst _COATRr = \"CreateOAuth2TokenResponse\";\nconst _ISE = \"InternalServerException\";\nconst _RT = \"RefreshToken\";\nconst _TMRE = \"TooManyRequestsError\";\nconst _VE = \"ValidationException\";\nconst _aKI = \"accessKeyId\";\nconst _aT = \"accessToken\";\nconst _c = \"client\";\nconst _cI = \"clientId\";\nconst _cV = \"codeVerifier\";\nconst _co = \"code\";\nconst _e = \"error\";\nconst _eI = \"expiresIn\";\nconst _gT = \"grantType\";\nconst _h = \"http\";\nconst _hE = \"httpError\";\nconst _iT = \"idToken\";\nconst _jN = \"jsonName\";\nconst _m = \"message\";\nconst _rT = \"refreshToken\";\nconst _rU = \"redirectUri\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.signin\";\nconst _sAK = \"secretAccessKey\";\nconst _sT = \"sessionToken\";\nconst _se = \"server\";\nconst _tI = \"tokenInput\";\nconst _tO = \"tokenOutput\";\nconst _tT = \"tokenType\";\nconst n0 = \"com.amazonaws.signin\";\nconst _s_registry = schema.TypeRegistry.for(_s);\nvar SigninServiceException$ = [-3, _s, \"SigninServiceException\", 0, [], []];\n_s_registry.registerError(SigninServiceException$, SigninServiceException);\nconst n0_registry = schema.TypeRegistry.for(n0);\nvar AccessDeniedException$ = [-3, n0, _ADE, { [_e]: _c }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(AccessDeniedException$, AccessDeniedException);\nvar InternalServerException$ = [-3, n0, _ISE, { [_e]: _se, [_hE]: 500 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(InternalServerException$, InternalServerException);\nvar TooManyRequestsError$ = [-3, n0, _TMRE, { [_e]: _c, [_hE]: 429 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(TooManyRequestsError$, TooManyRequestsError);\nvar ValidationException$ = [-3, n0, _VE, { [_e]: _c, [_hE]: 400 }, [_e, _m], [0, 0], 2];\nn0_registry.registerError(ValidationException$, ValidationException);\nconst errorTypeRegistries = [_s_registry, n0_registry];\nvar RefreshToken = [0, n0, _RT, 8, 0];\nvar AccessToken$ = [\n 3,\n n0,\n _AT,\n 8,\n [_aKI, _sAK, _sT],\n [\n [0, { [_jN]: _aKI }],\n [0, { [_jN]: _sAK }],\n [0, { [_jN]: _sT }],\n ],\n 3,\n];\nvar CreateOAuth2TokenRequest$ = [\n 3,\n n0,\n _COATR,\n 0,\n [_tI],\n [[() => CreateOAuth2TokenRequestBody$, 16]],\n 1,\n];\nvar CreateOAuth2TokenRequestBody$ = [\n 3,\n n0,\n _COATRB,\n 0,\n [_cI, _gT, _co, _rU, _cV, _rT],\n [\n [0, { [_jN]: _cI }],\n [0, { [_jN]: _gT }],\n 0,\n [0, { [_jN]: _rU }],\n [0, { [_jN]: _cV }],\n [() => RefreshToken, { [_jN]: _rT }],\n ],\n 2,\n];\nvar CreateOAuth2TokenResponse$ = [\n 3,\n n0,\n _COATRr,\n 0,\n [_tO],\n [[() => CreateOAuth2TokenResponseBody$, 16]],\n 1,\n];\nvar CreateOAuth2TokenResponseBody$ = [\n 3,\n n0,\n _COATRBr,\n 0,\n [_aT, _tT, _eI, _rT, _iT],\n [\n [() => AccessToken$, { [_jN]: _aT }],\n [0, { [_jN]: _tT }],\n [1, { [_jN]: _eI }],\n [() => RefreshToken, { [_jN]: _rT }],\n [0, { [_jN]: _iT }],\n ],\n 4,\n];\nvar CreateOAuth2Token$ = [\n 9,\n n0,\n _COAT,\n { [_h]: [\"POST\", \"/v1/token\", 200] },\n () => CreateOAuth2TokenRequest$,\n () => CreateOAuth2TokenResponse$,\n];\n\nconst getRuntimeConfig$1 = (config) => {\n return {\n apiVersion: \"2023-01-01\",\n base64Decoder: config?.base64Decoder ?? serde.fromBase64,\n base64Encoder: config?.base64Encoder ?? serde.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSigninHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new client.NoOpLogger(),\n protocol: config?.protocol ?? protocols$1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.signin\",\n errorTypeRegistries,\n version: \"2023-01-01\",\n serviceTarget: \"Signin\",\n },\n serviceId: config?.serviceId ?? \"Signin\",\n urlParser: config?.urlParser ?? protocols.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? serde.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? serde.toUtf8,\n };\n};\n\nconst getRuntimeConfig = (config$1) => {\n client.emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = config.resolveDefaultsModeConfig(config$1);\n const defaultConfigProvider = () => defaultsMode().then(client.loadConfigsForDefaultMode);\n const clientSharedValues = getRuntimeConfig$1(config$1);\n client$1.emitWarningIfUnsupportedVersion(process.version);\n const loaderConfig = {\n profile: config$1?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config$1,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config$1?.authSchemePreference ?? config.loadConfig(httpAuthSchemes.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config$1?.bodyLengthChecker ?? serde.calculateBodyLength,\n defaultUserAgentProvider: config$1?.defaultUserAgentProvider ??\n client$1.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config$1?.maxAttempts ?? config.loadConfig(retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config$1),\n region: config$1?.region ??\n config.loadConfig(config.NODE_REGION_CONFIG_OPTIONS, { ...config.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: nodeHttpHandler.NodeHttpHandler.create(config$1?.requestHandler ?? defaultConfigProvider),\n retryMode: config$1?.retryMode ??\n config.loadConfig({\n ...retry.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || retry.DEFAULT_RETRY_MODE,\n }, config$1),\n sha256: config$1?.sha256 ?? serde.Hash.bind(null, \"sha256\"),\n streamCollector: config$1?.streamCollector ?? nodeHttpHandler.streamCollector,\n useDualstackEndpoint: config$1?.useDualstackEndpoint ?? config.loadConfig(config.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config$1?.useFipsEndpoint ?? config.loadConfig(config.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config$1?.userAgentAppId ?? config.loadConfig(client$1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(client$1.getAwsRegionExtensionConfiguration(runtimeConfig), client.getDefaultExtensionConfiguration(runtimeConfig), protocols.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, client$1.resolveAwsRegionExtensionConfiguration(extensionConfiguration), client.resolveDefaultRuntimeConfig(extensionConfiguration), protocols.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass SigninClient extends client.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = client$1.resolveUserAgentConfig(_config_1);\n const _config_3 = retry.resolveRetryConfig(_config_2);\n const _config_4 = config.resolveRegionConfig(_config_3);\n const _config_5 = client$1.resolveHostHeaderConfig(_config_4);\n const _config_6 = endpoints.resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(client$1.getUserAgentPlugin(this.config));\n this.middlewareStack.use(retry.getRetryPlugin(this.config));\n this.middlewareStack.use(protocols.getContentLengthPlugin(this.config));\n this.middlewareStack.use(client$1.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(client$1.getLoggerPlugin(this.config));\n this.middlewareStack.use(client$1.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultSigninHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateOAuth2TokenCommand extends client.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"Signin\", \"CreateOAuth2Token\", {})\n .n(\"SigninClient\", \"CreateOAuth2TokenCommand\")\n .sc(CreateOAuth2Token$)\n .build() {\n}\n\nconst commands = {\n CreateOAuth2TokenCommand,\n};\nclass Signin extends SigninClient {\n}\nclient.createAggregatedClient(commands, Signin);\n\nconst OAuth2ErrorCode = {\n AUTHCODE_EXPIRED: \"AUTHCODE_EXPIRED\",\n INSUFFICIENT_PERMISSIONS: \"INSUFFICIENT_PERMISSIONS\",\n INVALID_REQUEST: \"INVALID_REQUEST\",\n SERVER_ERROR: \"server_error\",\n TOKEN_EXPIRED: \"TOKEN_EXPIRED\",\n USER_CREDENTIALS_CHANGED: \"USER_CREDENTIALS_CHANGED\",\n};\n\nexports.$Command = client.Command;\nexports.__Client = client.Client;\nexports.AccessDeniedException = AccessDeniedException;\nexports.AccessDeniedException$ = AccessDeniedException$;\nexports.AccessToken$ = AccessToken$;\nexports.CreateOAuth2Token$ = CreateOAuth2Token$;\nexports.CreateOAuth2TokenCommand = CreateOAuth2TokenCommand;\nexports.CreateOAuth2TokenRequest$ = CreateOAuth2TokenRequest$;\nexports.CreateOAuth2TokenRequestBody$ = CreateOAuth2TokenRequestBody$;\nexports.CreateOAuth2TokenResponse$ = CreateOAuth2TokenResponse$;\nexports.CreateOAuth2TokenResponseBody$ = CreateOAuth2TokenResponseBody$;\nexports.InternalServerException = InternalServerException;\nexports.InternalServerException$ = InternalServerException$;\nexports.OAuth2ErrorCode = OAuth2ErrorCode;\nexports.Signin = Signin;\nexports.SigninClient = SigninClient;\nexports.SigninServiceException = SigninServiceException;\nexports.SigninServiceException$ = SigninServiceException$;\nexports.TooManyRequestsError = TooManyRequestsError;\nexports.TooManyRequestsError$ = TooManyRequestsError$;\nexports.ValidationException = ValidationException;\nexports.ValidationException$ = ValidationException$;\nexports.errorTypeRegistries = errorTypeRegistries;\n"
],
"mappings": "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",
"debugId": "69B3F789BC572FEB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260611035744_credential.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260611035744_credential\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`credential\\` (\n \\`id\\` text PRIMARY KEY,\n \\`connector_id\\` text NOT NULL,\n \\`method_id\\` text NOT NULL,\n \\`label\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`active\\` integer DEFAULT false NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL\n );\n `)\n yield* tx.run(\n `CREATE UNIQUE INDEX \\`credential_connector_active_idx\\` ON \\`credential\\` (\\`connector_id\\`) WHERE \"credential\".\"active\" = 1;`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,4BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2XAWb,EACD,MAAO,EAAG,IACR,yHACF,EACD,EAEL",
"debugId": "4C5831C27797D8A364756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "802172186216958964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "18DD1B394AAAA8BB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260428004200_add_session_path.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260428004200_add_session_path\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`path\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,wCAA4C,EAC3D,EAEL",
"debugId": "542B4371F342B07164756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+vercel@2.0.39+d6123d32214422cb/node_modules/@ai-sdk/vercel/dist/index.mjs"],
"sourcesContent": [
"// src/vercel-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.39\" : \"0.0.0-test\";\n\n// src/vercel-provider.ts\nfunction createVercel(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.v0.dev/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"VERCEL_API_KEY\",\n description: \"Vercel\"\n })}`,\n ...options.headers\n },\n `ai-sdk/vercel/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `vercel.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig(\"chat\")\n });\n };\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar vercel = createVercel();\nexport {\n VERSION,\n createVercel,\n vercel\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";wQAYA,SAAI,OAAiB,cAGrB,cAAS,MAAY,CAAC,EAAU,CAAC,EAAG,CAClC,IAAI,EACJ,IAAM,EAAU,GACb,EAAK,EAAQ,UAAY,KAAO,EAAK,uBACxC,EACM,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,iBACzB,YAAa,QACf,CAAC,OACE,EAAQ,OACb,EACA,iBAAiB,GACnB,EACM,EAAuB,CAAC,KAAe,CAC3C,SAAU,UAAU,IACpB,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,KACjB,GACM,EAAkB,CAAC,IAAY,CACnC,OAAO,IAAI,EAAkC,EAAS,IACjD,EAAqB,MAAM,CAChC,CAAC,GAEG,EAAW,CAAC,IAAY,EAAgB,CAAO,EAUrD,OATA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,eAAiB,CAAC,IAAY,CACrC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,gBAAiB,CAAC,GAErE,EAAS,mBAAqB,EAAS,eACvC,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAE1D,EAET,IAAI,EAAS,EAAa",
"debugId": "3558145B1B3FB07D64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/services/service-config.ts"],
"sourcesContent": [
"import { Global } from \"@opencode-ai/core/global\"\nimport { InstallationChannel, InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { Hash } from \"@opencode-ai/core/util/hash\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { Effect, FileSystem, Option, Schema } from \"effect\"\nimport { randomBytes } from \"crypto\"\nimport path from \"path\"\n\n// The CLI's service configuration file, plus the Service.Options binding that\n// points the client package's service operations at this CLI: which\n// registration file (by channel), which version, and how to spawn opencode.\n\nexport const Info = Schema.Struct({\n hostname: Schema.optional(Schema.String),\n port: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(65_535))),\n password: Schema.optional(Schema.String),\n})\nexport type Info = typeof Info.Type\n\nconst keys = [\"hostname\", \"port\", \"password\"] as const\ntype Key = (typeof keys)[number]\n\nconst decodeInfo = Schema.decodeUnknownEffect(Schema.fromJsonString(Info))\nconst decodeRegistration = Schema.decodeUnknownEffect(Schema.fromJsonString(Service.Info))\n\nexport function filename(channel = InstallationChannel) {\n if (channel === \"latest\") return \"service.json\"\n if (channel === \"local\") return \"service-local.json\"\n return `service-${Hash.fast(channel)}.json`\n}\n\nexport function versionBelongsToChannel(\n version: string | undefined,\n channel = InstallationChannel,\n installedVersion = InstallationVersion,\n) {\n if (version === undefined) return false\n if (version === installedVersion) return true\n const prefix = `0.0.0-${channel}-`\n if (!version.startsWith(prefix)) return false\n return /^\\d+(?:\\.\\d+)?$/.test(version.slice(prefix.length))\n}\n\nexport const migrateRegistration = Effect.fnUntraced(function* (\n legacy: string,\n file: string,\n channel = InstallationChannel,\n installedVersion = InstallationVersion,\n) {\n if (channel === \"latest\" || channel === \"local\") return\n const fs = yield* FileSystem.FileSystem\n const text = yield* fs.readFileString(legacy).pipe(Effect.option)\n if (Option.isNone(text)) return\n const registration = yield* decodeRegistration(text.value).pipe(Effect.option)\n if (Option.isNone(registration)) return\n if (!versionBelongsToChannel(registration.value.version, channel, installedVersion)) return\n yield* fs.writeFileString(file, text.value, { flag: \"wx\", mode: 0o600 }).pipe(Effect.ignore)\n})\n\nfunction configKey(key: string): Key {\n if (key === \"hostname\" || key === \"port\" || key === \"password\") return key\n throw new Error(`Unknown service config key: ${key}`)\n}\n\nconst paths = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n const global = yield* Global.Service\n const name = filename()\n const file = path.join(global.state, name)\n return {\n fs,\n file,\n legacyFile: path.join(global.state, \"service.json\"),\n configFile: path.join(global.config, name),\n }\n})\n\nexport const options = Effect.fnUntraced(function* () {\n const { file, legacyFile } = yield* paths\n yield* migrateRegistration(legacyFile, file)\n const compiled = path.basename(process.execPath).replace(/\\.exe$/, \"\") !== \"bun\"\n const entrypoint = compiled ? undefined : process.argv[1]\n if (!compiled && entrypoint === undefined) return yield* Effect.fail(new Error(\"Failed to resolve CLI entrypoint\"))\n return {\n file,\n version: InstallationVersion,\n command: [process.execPath, ...(entrypoint ? [entrypoint] : []), \"serve\", \"--service\"],\n }\n})\n\nexport const read = Effect.fn(\"cli.service-config.read\")(function* () {\n const { fs, configFile } = yield* paths\n return yield* fs.readFileString(configFile).pipe(\n Effect.flatMap(decodeInfo),\n Effect.catch(() => Effect.succeed({} as Info)),\n )\n})\n\nconst write = Effect.fn(\"cli.service-config.write\")(function* (value: Info) {\n const { fs, configFile } = yield* paths\n const temp = configFile + \".tmp\"\n yield* fs.makeDirectory(path.dirname(configFile), { recursive: true })\n yield* fs.writeFileString(temp, JSON.stringify(value, null, 2) + \"\\n\", { mode: 0o600 })\n yield* fs.rename(temp, configFile)\n})\n\nexport const password = Effect.fn(\"cli.service-config.password\")(function* (value?: string) {\n const existing = yield* read()\n if (value === undefined && existing.password) return existing.password\n const next = value ?? randomBytes(32).toString(\"base64url\")\n\n // Keep one private credential across server restarts so discovered clients\n // can reconnect without exposing a password flag or environment variable.\n yield* write({ ...existing, password: next })\n return next\n})\n\nexport const get = Effect.fn(\"cli.service-config.get\")(function* (key?: string) {\n if (key === undefined) {\n const { password: _password, ...safe } = yield* read()\n return JSON.stringify(safe, null, 2)\n }\n switch (configKey(key)) {\n case \"hostname\": {\n return (yield* read()).hostname ?? \"\"\n }\n case \"port\": {\n const port = (yield* read()).port\n return port === undefined ? \"\" : String(port)\n }\n case \"password\": {\n return yield* password()\n }\n }\n throw new Error(`Unknown service config key: ${key}`)\n})\n\nexport const set = Effect.fn(\"cli.service-config.set\")(function* (key: string, value: string) {\n switch (configKey(key)) {\n case \"hostname\": {\n yield* Service.stop(yield* options())\n yield* write({ ...(yield* read()), hostname: value })\n return\n }\n case \"port\": {\n const port = Number(value)\n if (!Number.isInteger(port) || port < 1 || port > 65_535) throw new Error(\"Port must be between 1 and 65535\")\n yield* Service.stop(yield* options())\n yield* write({ ...(yield* read()), port })\n return\n }\n case \"password\": {\n yield* Service.stop(yield* options())\n yield* password(value)\n return\n }\n }\n})\n\nexport const unset = Effect.fn(\"cli.service-config.unset\")(function* (key: string) {\n switch (configKey(key)) {\n case \"hostname\": {\n yield* Service.stop(yield* options())\n const { hostname: _hostname, ...next } = yield* read()\n yield* write(next)\n return\n }\n case \"port\": {\n yield* Service.stop(yield* options())\n const { port: _port, ...next } = yield* read()\n yield* write(next)\n return\n }\n case \"password\": {\n yield* Service.stop(yield* options())\n const { password: _password, ...next } = yield* read()\n yield* write(next)\n return\n }\n }\n})\n\nexport * as ServiceConfig from \"./service-config\"\n"
],
"mappings": "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",
"debugId": "C4C85D722E4EEDEF64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260605003541_add_session_context_snapshot.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260605003541_add_session_context_snapshot\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_context_epoch\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`baseline\\` text NOT NULL,\n \\`snapshot\\` text NOT NULL,\n \\`baseline_seq\\` integer NOT NULL,\n \\`replacement_seq\\` integer,\n \\`revision\\` integer DEFAULT 0 NOT NULL,\n CONSTRAINT \\`fk_session_context_epoch_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,8CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gdAUb,EACF,EAEL",
"debugId": "8A043807805E424764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260127222353_familiar_lady_ursula.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260127222353_familiar_lady_ursula\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`project\\` (\n \\`id\\` text PRIMARY KEY,\n \\`worktree\\` text NOT NULL,\n \\`vcs\\` text,\n \\`name\\` text,\n \\`icon_url\\` text,\n \\`icon_color\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_initialized\\` integer,\n \\`sandboxes\\` text NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`part\\` (\n \\`id\\` text PRIMARY KEY,\n \\`message_id\\` text NOT NULL,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_part_message_id_message_id_fk\\` FOREIGN KEY (\\`message_id\\`) REFERENCES \\`message\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`permission\\` (\n \\`project_id\\` text PRIMARY KEY,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_permission_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session\\` (\n \\`id\\` text PRIMARY KEY,\n \\`project_id\\` text NOT NULL,\n \\`parent_id\\` text,\n \\`slug\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`title\\` text NOT NULL,\n \\`version\\` text NOT NULL,\n \\`share_url\\` text,\n \\`summary_additions\\` integer,\n \\`summary_deletions\\` integer,\n \\`summary_files\\` integer,\n \\`summary_diffs\\` text,\n \\`revert\\` text,\n \\`permission\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_compacting\\` integer,\n \\`time_archived\\` integer,\n CONSTRAINT \\`fk_session_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`todo\\` (\n \\`session_id\\` text NOT NULL,\n \\`content\\` text NOT NULL,\n \\`status\\` text NOT NULL,\n \\`priority\\` text NOT NULL,\n \\`position\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`todo_pk\\` PRIMARY KEY(\\`session_id\\`, \\`position\\`),\n CONSTRAINT \\`fk_todo_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session_share\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`id\\` text NOT NULL,\n \\`secret\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_share_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`CREATE INDEX \\`message_session_idx\\` ON \\`message\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_message_idx\\` ON \\`part\\` (\\`message_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_session_idx\\` ON \\`part\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_project_idx\\` ON \\`session\\` (\\`project_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_parent_idx\\` ON \\`session\\` (\\`parent_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`todo_session_idx\\` ON \\`todo\\` (\\`session_id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4YAab,EACD,MAAO,EAAG,IAAI,8XASb,EACD,MAAO,EAAG,IAAI,+ZAUb,EACD,MAAO,EAAG,IAAI,qWAQb,EACD,MAAO,EAAG,IAAI,2zBAsBb,EACD,MAAO,EAAG,IAAI,ghBAYb,EACD,MAAO,EAAG,IAAI,4aAUb,EACD,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,+DAAqE,EACnF,MAAO,EAAG,IAAI,2DAAiE,EAChF,EAEL",
"debugId": "77CD33DCE189982464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260703190000_reset_v2_shell_event_payloads.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703190000_reset_v2_shell_event_payloads\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DELETE FROM \\`session_input\\`;`)\n yield* tx.run(`DELETE FROM \\`session_message\\`;`)\n yield* tx.run(`DELETE FROM \\`event\\`;`)\n yield* tx.run(`DELETE FROM \\`event_sequence\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,+CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,8BAAgC,EAC9C,MAAO,EAAG,IAAI,gCAAkC,EAChD,MAAO,EAAG,IAAI,sBAAwB,EACtC,MAAO,EAAG,IAAI,+BAAiC,EAChD,EAEL",
"debugId": "511FF81D8171EFD664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentelemetry+resources@2.6.1+460773ef8ff1e07c/node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js"],
"sourcesContent": [
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMachineId = void 0;\nconst fs_1 = require(\"fs\");\nconst execAsync_1 = require(\"./execAsync\");\nconst api_1 = require(\"@opentelemetry/api\");\nasync function getMachineId() {\n try {\n const result = await fs_1.promises.readFile('/etc/hostid', { encoding: 'utf8' });\n return result.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n try {\n const result = await (0, execAsync_1.execAsync)('kenv -q smbios.system.uuid');\n return result.stdout.trim();\n }\n catch (e) {\n api_1.diag.debug(`error reading machine id: ${e}`);\n }\n return undefined;\n}\nexports.getMachineId = getMachineId;\n//# sourceMappingURL=getMachineId-bsd.js.map"
],
"mappings": ";wKAKA,YAAO,oBAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAoB,OAC5B,IAAM,UACA,MACA,MACN,eAAe,CAAY,EAAG,CAC1B,GAAI,CAEA,OADe,MAAM,EAAK,SAAS,SAAS,cAAe,CAAE,SAAU,MAAO,CAAC,GACjE,KAAK,EAEvB,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,GAAI,CAEA,OADe,MAAO,EAAG,EAAY,WAAW,4BAA4B,GAC9D,OAAO,KAAK,EAE9B,MAAO,EAAG,CACN,EAAM,KAAK,MAAM,6BAA6B,GAAG,EAErD,OAEI,eAAe",
"debugId": "0319A8EFBA56886764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260702134641_add_session_context_entry.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260702134641_add_session_context_entry\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_context_entry\\` (\n \\`session_id\\` text NOT NULL,\n \\`key\\` text NOT NULL,\n \\`value\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`session_context_entry_pk\\` PRIMARY KEY(\\`session_id\\`, \\`key\\`),\n CONSTRAINT \\`fk_session_context_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2CACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4eAUb,EACF,EAEL",
"debugId": "548CE37C7294DAB864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/entity.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/column-common.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/column.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/table.utils.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/table.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/subquery.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/tracing-utils.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/tracing.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/view-common.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/sql.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/expressions/conditions.js", "../../node_modules/.bun/drizzle-orm@1.0.0-rc.2+a86099c5389f280c/node_modules/drizzle-orm/sql/expressions/select.js"],
"sourcesContent": [
"//#region src/entity.ts\nconst entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n\tif (!value || typeof value !== \"object\") return false;\n\tif (value instanceof type) return true;\n\tif (!Object.prototype.hasOwnProperty.call(type, entityKind)) throw new Error(`Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);\n\tlet cls = Object.getPrototypeOf(value)?.constructor;\n\tif (cls) while (cls) {\n\t\tif (entityKind in cls && cls[entityKind] === type[entityKind]) return true;\n\t\tcls = Object.getPrototypeOf(cls);\n\t}\n\treturn false;\n}\n\n//#endregion\nexport { entityKind, hasOwnEntityKind, is };\n//# sourceMappingURL=entity.js.map",
"//#region src/column-common.ts\nconst OriginalColumn = Symbol.for(\"drizzle:OriginalColumn\");\n\n//#endregion\nexport { OriginalColumn };\n//# sourceMappingURL=column-common.js.map",
"import { entityKind } from \"./entity.js\";\nimport { OriginalColumn } from \"./column-common.js\";\n\n//#region src/column.ts\nconst noop = (v) => v;\nnoop.isNoop = true;\nvar Column = class {\n\tstatic [entityKind] = \"Column\";\n\t/** @internal */\n\tcodec;\n\tname;\n\tkeyAsName;\n\tprimary;\n\tnotNull;\n\tdefault;\n\tdefaultFn;\n\tonUpdateFn;\n\thasDefault;\n\tisUnique;\n\tuniqueName;\n\tuniqueType;\n\tdataType;\n\tcolumnType;\n\tenumValues = void 0;\n\tgenerated = void 0;\n\tgeneratedIdentity = void 0;\n\tlength;\n\tisLengthExact;\n\tisAlias;\n\t/** @internal */\n\tconfig;\n\t/** @internal */\n\ttable;\n\t/** @internal */\n\tonInit() {}\n\tconstructor(table, config) {\n\t\tthis.config = config;\n\t\tthis.onInit();\n\t\tthis.table = table;\n\t\tthis.name = config.name;\n\t\tthis.isAlias = false;\n\t\tthis.keyAsName = config.keyAsName;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.onUpdateFn = config.onUpdateFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType;\n\t\tthis.columnType = config.columnType;\n\t\tthis.generated = config.generated;\n\t\tthis.generatedIdentity = config.generatedIdentity;\n\t\tthis.length = config[\"length\"];\n\t\tthis.isLengthExact = config[\"isLengthExact\"];\n\t}\n\tmapFromDriverValue = noop;\n\tmapToDriverValue = noop;\n\t/** @internal */\n\tpostBuild() {\n\t\treturn this;\n\t}\n\t/** @internal */\n\tshouldDisableInsert() {\n\t\treturn this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n\t}\n\t/** @internal */\n\t[OriginalColumn]() {\n\t\treturn this;\n\t}\n};\nfunction getColumnTable(column) {\n\treturn column.table;\n}\n\n//#endregion\nexport { Column, getColumnTable };\n//# sourceMappingURL=column.js.map",
"//#region src/table.utils.ts\n/** @internal */\nconst TableName = Symbol.for(\"drizzle:Name\");\n\n//#endregion\nexport { TableName };\n//# sourceMappingURL=table.utils.js.map",
"import { entityKind } from \"./entity.js\";\nimport { TableName } from \"./table.utils.js\";\n\n//#region src/table.ts\n/** @internal */\nconst TableSchema = Symbol.for(\"drizzle:Schema\");\n/** @internal */\nconst TableColumns = Symbol.for(\"drizzle:Columns\");\n/** @internal */\nconst ExtraConfigColumns = Symbol.for(\"drizzle:ExtraConfigColumns\");\n/** @internal */\nconst OriginalName = Symbol.for(\"drizzle:OriginalName\");\n/** @internal */\nconst BaseName = Symbol.for(\"drizzle:BaseName\");\n/** @internal */\nconst IsAlias = Symbol.for(\"drizzle:IsAlias\");\n/** @internal */\nconst ExtraConfigBuilder = Symbol.for(\"drizzle:ExtraConfigBuilder\");\nconst IsDrizzleTable = Symbol.for(\"drizzle:IsDrizzleTable\");\nvar Table = class {\n\tstatic [entityKind] = \"Table\";\n\t/** @internal */\n\tstatic Symbol = {\n\t\tName: TableName,\n\t\tSchema: TableSchema,\n\t\tOriginalName,\n\t\tColumns: TableColumns,\n\t\tExtraConfigColumns,\n\t\tBaseName,\n\t\tIsAlias,\n\t\tExtraConfigBuilder\n\t};\n\t/**\n\t* @internal\n\t* Can be changed if the table is aliased.\n\t*/\n\t[TableName];\n\t/**\n\t* @internal\n\t* Used to store the original name of the table, before any aliasing.\n\t*/\n\t[OriginalName];\n\t/** @internal */\n\t[TableSchema];\n\t/** @internal */\n\t[TableColumns];\n\t/** @internal */\n\t[ExtraConfigColumns];\n\t/**\n\t* @internal\n\t* Used to store the table name before the transformation via the `tableCreator` functions.\n\t*/\n\t[BaseName];\n\t/** @internal */\n\t[IsAlias] = false;\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\t/** @internal */\n\t[ExtraConfigBuilder] = void 0;\n\tconstructor(name, schema, baseName) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[TableSchema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n};\nfunction isTable(table) {\n\treturn typeof table === \"object\" && table !== null && IsDrizzleTable in table;\n}\nfunction getTableName(table) {\n\treturn table[TableName];\n}\nfunction getTableUniqueName(table) {\n\treturn `${table[TableSchema] ?? \"public\"}.${table[TableName]}`;\n}\n\n//#endregion\nexport { BaseName, ExtraConfigBuilder, ExtraConfigColumns, IsAlias, OriginalName, Table, TableColumns, TableSchema, getTableName, getTableUniqueName, isTable };\n//# sourceMappingURL=table.js.map",
"import { entityKind } from \"./entity.js\";\n\n//#region src/subquery.ts\nvar Subquery = class {\n\tstatic [entityKind] = \"Subquery\";\n\tconstructor(sql, fields, alias, isWith = false, usedTables = []) {\n\t\tthis._ = {\n\t\t\tbrand: \"Subquery\",\n\t\t\tsql,\n\t\t\tselectedFields: fields,\n\t\t\talias,\n\t\t\tisWith,\n\t\t\tusedTables\n\t\t};\n\t}\n};\nvar WithSubquery = class extends Subquery {\n\tstatic [entityKind] = \"WithSubquery\";\n};\n\n//#endregion\nexport { Subquery, WithSubquery };\n//# sourceMappingURL=subquery.js.map",
"//#region src/tracing-utils.ts\nfunction iife(fn, ...args) {\n\treturn fn(...args);\n}\n\n//#endregion\nexport { iife };\n//# sourceMappingURL=tracing-utils.js.map",
"import { iife } from \"./tracing-utils.js\";\nimport { npmVersion } from \"./version.js\";\n\n//#region src/tracing.ts\nconst hasTelemetry = false;\n/** @internal */\nconst tracer = { startActiveSpan(name, fn) {\n\treturn fn();\n} };\n\n//#endregion\nexport { hasTelemetry, tracer };\n//# sourceMappingURL=tracing.js.map",
"//#region src/view-common.ts\nconst ViewBaseConfig = Symbol.for(\"drizzle:ViewBaseConfig\");\n\n//#endregion\nexport { ViewBaseConfig };\n//# sourceMappingURL=view-common.js.map",
"import { Column } from \"../column.js\";\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from \"../table.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { TableName } from \"../table.utils.js\";\nimport { tracer } from \"../tracing.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\n\n//#region src/sql/sql.ts\n/**\n* This class is used to indicate a primitive param value that is used in `sql` tag.\n* It is only used on type level and is never instantiated at runtime.\n* If you see a value of this type in the code, its runtime value is actually the primitive param value.\n*/\nvar FakePrimitiveParam = class {\n\tstatic [entityKind] = \"FakePrimitiveParam\";\n};\nfunction isSQLWrapper(value) {\n\treturn value !== null && value !== void 0 && typeof value.getSQL === \"function\";\n}\nfunction mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t}\n\treturn result;\n}\nfunction _mergeQueries(queries) {\n\tconst result = {\n\t\tsql: \"\",\n\t\tparams: []\n\t};\n\tconst sqls = [];\n\tfor (const query of queries) {\n\t\tsqls.push(query.sql);\n\t\tresult.params.push(...query.params);\n\t}\n\tresult._sql = Object.assign(sqls, { raw: sqls });\n\treturn result;\n}\nvar StringChunk = class {\n\tstatic [entityKind] = \"StringChunk\";\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\nvar SQL = class SQL {\n\tstatic [entityKind] = \"SQL\";\n\t/** @internal */\n\tdecoder = noopDecoder;\n\t/** @internal */\n\tshouldInlineParams = false;\n\t/** @internal */\n\tusedTables = [];\n\tconstructor(queryChunks) {\n\t\tthis.queryChunks = queryChunks;\n\t\tfor (const chunk of queryChunks) if (is(chunk, Table)) {\n\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\tthis.usedTables.push(schemaName === void 0 ? chunk[Table.Symbol.Name] : schemaName + \".\" + chunk[Table.Symbol.Name]);\n\t\t}\n\t}\n\tappend(query) {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\ttoQuery(config) {\n\t\treturn tracer.startActiveSpan(\"drizzle.buildSQL\", (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t\"drizzle.query.text\": query.sql,\n\t\t\t\t\"drizzle.query.params\": JSON.stringify(query.params)\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\tbuildQueryFromSourceParams(chunks, _config) {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 }\n\t\t});\n\t\tconst { escapeName, escapeParam, codecs, inlineParams, paramStartIndex, invokeSource } = config;\n\t\tconst mappedChunks = chunks.map((chunk) => {\n\t\t\tif (is(chunk, StringChunk)) return {\n\t\t\t\tsql: chunk.value.join(\"\"),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Name)) return {\n\t\t\t\tsql: escapeName(chunk.value),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (chunk === void 0) return {\n\t\t\t\tsql: \"\",\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result = [new StringChunk(\"(\")];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) result.push(new StringChunk(\", \"));\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(\")\"));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\t\t\tif (is(chunk, SQL)) return this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t...config,\n\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams\n\t\t\t});\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\tif (invokeSource === \"mssql-view-with-schemabinding\") return {\n\t\t\t\t\tsql: (schemaName === void 0 ? escapeName(\"dbo\") : escapeName(schemaName)) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[IsAlias] ? escapeName(tableName) : escapeName(schemaName) + \".\" + escapeName(tableName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = chunk.name;\n\t\t\t\tif (_config.invokeSource === \"indexes\") return {\n\t\t\t\t\tsql: escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst schemaName = invokeSource === \"mssql-check\" ? void 0 : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === void 0 ? escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName) : escapeName(schemaName) + \".\" + escapeName(chunk.table[Table.Symbol.Name]) + \".\" + escapeName(columnName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === void 0 || chunk[ViewBaseConfig].isAlias ? escapeName(viewName) : escapeName(schemaName) + \".\" + escapeName(viewName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, SQL)) return this.buildQueryFromSourceParams([chunk.value], config);\n\t\t\t\tconst useCodecs = codecs && is(chunk.encoder, Column);\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, chunk);\n\t\t\t\t\tchunk.codec = useCodecs ? (value) => codecs.apply(chunk.encoder, \"normalizeParam\", value) : void 0;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\t\tparams: [chunk]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tlet mappedValue;\n\t\t\t\tif (chunk.value === null) mappedValue = chunk.value;\n\t\t\t\telse {\n\t\t\t\t\tmappedValue = chunk.encoder.mapToDriverValue.isNoop ? chunk.value : chunk.encoder.mapToDriverValue(chunk.value);\n\t\t\t\t\tif (is(mappedValue, SQL)) return this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t\tif (useCodecs) mappedValue = codecs.apply(chunk.encoder, \"normalizeParam\", mappedValue);\n\t\t\t\t}\n\t\t\t\tif (inlineParams) return {\n\t\t\t\t\tsql: this.mapInlineParam(mappedValue, config),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, mappedValue);\n\t\t\t\treturn {\n\t\t\t\t\tsql: useCodecs ? codecs.apply(chunk.encoder, \"castParam\", escaped) : escaped,\n\t\t\t\t\tparams: [mappedValue]\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is(chunk, Placeholder)) return {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== void 0) return {\n\t\t\t\tsql: (chunk.origin !== void 0 ? escapeName(chunk.origin) + \".\" : \"\") + escapeName(chunk.fieldAlias),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) return {\n\t\t\t\t\tsql: escapeName(chunk._.alias),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(\") \"),\n\t\t\t\t\tnew Name(chunk._.alias)\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (typeof chunk === \"function\" && \"enumName\" in chunk) {\n\t\t\t\tif (\"schema\" in chunk && chunk.schema) return {\n\t\t\t\t\tsql: escapeName(chunk.schema) + \".\" + escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsql: escapeName(chunk.enumName),\n\t\t\t\t\tparams: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) return this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk(\"(\"),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(\")\")\n\t\t\t\t], config);\n\t\t\t}\n\t\t\tif (inlineParams) return {\n\t\t\t\tsql: this.mapInlineParam(chunk, config),\n\t\t\t\tparams: []\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsql: escapeParam(paramStartIndex.value++, chunk),\n\t\t\t\tparams: [chunk]\n\t\t\t};\n\t\t});\n\t\tif (_config.tagged) return _mergeQueries(mappedChunks);\n\t\treturn mergeQueries(mappedChunks);\n\t}\n\tmapInlineParam(chunk, { escapeString }) {\n\t\tif (chunk === null) return \"null\";\n\t\tif (typeof chunk === \"number\" || typeof chunk === \"boolean\" || typeof chunk === \"bigint\") return chunk.toString();\n\t\tif (typeof chunk === \"string\") return escapeString(chunk);\n\t\tif (typeof chunk === \"object\") {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === \"[object Object]\") return escapeString(JSON.stringify(chunk));\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error(\"Unexpected param value: \" + chunk);\n\t}\n\tgetSQL() {\n\t\treturn this;\n\t}\n\tas(alias) {\n\t\tif (alias === void 0) return this;\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\tmapWith(decoder) {\n\t\tthis.decoder = typeof decoder === \"function\" ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this;\n\t}\n\tinlineParams() {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\t/**\n\t* This method is used to conditionally include a part of the query.\n\t*\n\t* @param condition - Condition to check\n\t* @returns itself if the condition is `true`, otherwise `undefined`\n\t*/\n\tif(condition) {\n\t\treturn condition ? this : void 0;\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n*/\nvar Name = class {\n\tstatic [entityKind] = \"Name\";\n\tbrand;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/**\n* Any DB name (table, column, index etc.)\n* @deprecated Use `sql.identifier` instead.\n*/\nfunction name(value) {\n\treturn new Name(value);\n}\nfunction isDriverValueEncoder(value) {\n\treturn typeof value === \"object\" && value !== null && \"mapToDriverValue\" in value && typeof value.mapToDriverValue === \"function\";\n}\nconst noopDecoder = { mapFromDriverValue: (value) => value };\nnoopDecoder.mapFromDriverValue.isNoop = true;\nconst noopEncoder = { mapToDriverValue: (value) => value };\nnoopEncoder.mapToDriverValue.isNoop = true;\nfunction isNoop(mapper) {\n\treturn mapper.isNoop;\n}\nconst noopMapper = {\n\t...noopDecoder,\n\t...noopEncoder\n};\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nvar Param = class {\n\tstatic [entityKind] = \"Param\";\n\tbrand;\n\t/**\n\t* @param value - Parameter value\n\t* @param encoder - Encoder to convert the value to a driver parameter\n\t*/\n\tconstructor(value, encoder = noopEncoder, codec) {\n\t\tthis.value = value;\n\t\tthis.encoder = encoder;\n\t\tthis.codec = codec;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.param` instead. */\nfunction param(value, encoder) {\n\treturn new Param(value, encoder);\n}\nfunction sql(strings, ...params) {\n\tconst queryChunks = [];\n\tif (params.length > 0 || strings.length > 0 && strings[0] !== \"\") queryChunks.push(new StringChunk(strings[0]));\n\tfor (const [paramIndex, param] of params.entries()) queryChunks.push(param, new StringChunk(strings[paramIndex + 1]));\n\treturn new SQL(queryChunks);\n}\n(function(_sql) {\n\tfunction empty() {\n\t\treturn new SQL([]);\n\t}\n\t_sql.empty = empty;\n\tfunction fromList(list) {\n\t\treturn new SQL(list);\n\t}\n\t_sql.fromList = fromList;\n\tfunction raw(str) {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\t_sql.raw = raw;\n\tfunction join(chunks, separator) {\n\t\tconst result = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== void 0) result.push(separator);\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\t_sql.join = join;\n\tfunction identifier(value) {\n\t\treturn new Name(value);\n\t}\n\t_sql.identifier = identifier;\n\tfunction placeholder(name) {\n\t\treturn new Placeholder(name);\n\t}\n\t_sql.placeholder = placeholder;\n\tfunction param(value, encoder) {\n\t\treturn new Param(value, encoder);\n\t}\n\t_sql.param = param;\n\tfunction comment(input) {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return void 0;\n\t\treturn sql.raw(encoded);\n\t}\n\t_sql.comment = comment;\n})(sql || (sql = {}));\nfunction sqlCommenter(input) {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return \"\";\n\treturn `/*${encoded}*/`;\n}\n(function(_sqlCommenter) {\n\tfunction merge(input1, input2) {\n\t\tlet encoded;\n\t\tif (typeof input1 === \"object\" && typeof input2 === \"object\") encoded = encodeInput({\n\t\t\t...input1,\n\t\t\t...input2\n\t\t});\n\t\telse if (input1 && input2) encoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(\",\");\n\t\telse if (input2) encoded = encodeInput(input2);\n\t\telse if (input1) encoded = encodeInput(input1);\n\t\telse return \"\";\n\t\tif (!encoded.length) return \"\";\n\t\treturn `/*${encoded}*/`;\n\t}\n\t_sqlCommenter.merge = merge;\n\tfunction encodeInput(input) {\n\t\tif (typeof input === \"string\") {\n\t\t\tif (!input.length) return input;\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\t\tconst parts = [];\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === void 0 || value === \"\") continue;\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\t\tif (!parts.length) return \"\";\n\t\treturn parts.sort().join(\",\");\n\t}\n\t_sqlCommenter.encodeInput = encodeInput;\n\tfunction sanitizeObjectElement(key) {\n\t\treturn encodeURIComponent(key).replace(/'/g, `\\\\'`);\n\t}\n\t_sqlCommenter.sanitizeObjectElement = sanitizeObjectElement;\n\tfunction sanitizeStringInput(input) {\n\t\treturn input.replace(/\\/\\*/g, \"/ *\").replace(/\\*\\//g, \"* /\");\n\t}\n\t_sqlCommenter.sanitizeStringInput = sanitizeStringInput;\n})(sqlCommenter || (sqlCommenter = {}));\n(function(_SQL) {\n\tclass Aliased {\n\t\tstatic [entityKind] = \"SQL.Aliased\";\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin;\n\t\tconstructor(sql, fieldAlias) {\n\t\t\tthis.sql = sql;\n\t\t\tthis.fieldAlias = fieldAlias;\n\t\t}\n\t\tgetSQL() {\n\t\t\treturn this.sql;\n\t\t}\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n\t_SQL.Aliased = Aliased;\n})(SQL || (SQL = {}));\nvar Placeholder = class {\n\tstatic [entityKind] = \"Placeholder\";\n\tconstructor(name) {\n\t\tthis.name = name;\n\t}\n\tgetSQL() {\n\t\treturn new SQL([this]);\n\t}\n};\n/** @deprecated Use `sql.placeholder` instead. */\nfunction placeholder(name) {\n\treturn new Placeholder(name);\n}\nfunction fillPlaceholders(params, values) {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) throw new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\treturn values[p.name];\n\t\t}\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) throw new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\tif (values[p.value.name] === null) return values[p.value.name];\n\t\t\tconst mapped = p.encoder.mapToDriverValue.isNoop ? values[p.value.name] : p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t\treturn p.codec ? p.codec(mapped) : mapped;\n\t\t}\n\t\treturn p;\n\t});\n}\nconst IsDrizzleView = Symbol.for(\"drizzle:IsDrizzleView\");\nvar View = class {\n\tstatic [entityKind] = \"View\";\n\t/** @internal */\n\t[ViewBaseConfig];\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\t/** @internal */\n\tget [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\t/** @internal */\n\tget [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\t/** @internal */\n\tget [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\t/** @internal */\n\tget [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\t/** @internal */\n\tget [TableColumns]() {\n\t\treturn this[ViewBaseConfig].selectedFields;\n\t}\n\tconstructor({ name, schema, selectedFields, query }) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery,\n\t\t\tisExisting: !query,\n\t\t\tisAlias: false\n\t\t};\n\t}\n};\nfunction isView(view) {\n\treturn typeof view === \"object\" && view !== null && IsDrizzleView in view;\n}\nfunction getViewName(view) {\n\treturn view[ViewBaseConfig].name;\n}\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n//#endregion\nexport { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };\n//# sourceMappingURL=sql.js.map",
"import { Param, Placeholder, SQL, StringChunk, View, isDriverValueEncoder, isSQLWrapper, sql } from \"../sql.js\";\nimport { is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { Column } from \"../../column.js\";\n\n//#region src/sql/expressions/conditions.ts\nfunction bindIfParam(value, column) {\n\tif (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) return new Param(value, column);\n\treturn value;\n}\n/**\n* Test that two values are equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is null, you may want to use\n* `isNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made by Ford\n* db.select().from(cars)\n* .where(eq(cars.make, 'Ford'))\n* ```\n*\n* @see isNull for a way to test equality to NULL.\n*/\nconst eq = (left, right) => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n/**\n* Test that two values are not equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is not null, you may want to use\n* `isNotNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars not made by Ford\n* db.select().from(cars)\n* .where(ne(cars.make, 'Ford'))\n* ```\n*\n* @see isNotNull for a way to test whether a value is not null.\n*/\nconst ne = (left, right) => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" and \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\nfunction or(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" or \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\n/**\n* Negate the meaning of an expression using the `not` keyword.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars _not_ made by GM or Ford.\n* db.select().from(cars)\n* .where(not(inArray(cars.make, ['GM', 'Ford'])))\n* ```\n*/\nfunction not(condition) {\n\treturn is(condition, SQL) ? sql`not (${condition})` : sql`not ${condition}`;\n}\n/**\n* Test that the first expression passed is greater than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made after 2000.\n* db.select().from(cars)\n* .where(gt(cars.year, 2000))\n* ```\n*\n* @see gte for greater-than-or-equal\n*/\nconst gt = (left, right) => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is greater than\n* or equal to the second expression. Use `gt` to\n* test whether an expression is strictly greater\n* than another.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made on or after 2000.\n* db.select().from(cars)\n* .where(gte(cars.year, 2000))\n* ```\n*\n* @see gt for a strictly greater-than condition\n*/\nconst gte = (left, right) => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lt(cars.year, 2000))\n* ```\n*\n* @see lte for less-than-or-equal\n*/\nconst lt = (left, right) => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* or equal to the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lte(cars.year, 2000))\n* ```\n*\n* @see lt for a strictly less-than condition\n*/\nconst lte = (left, right) => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`false`;\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`true`;\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n/**\n* Test whether an expression is NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have no discontinuedAt date.\n* db.select().from(cars)\n* .where(isNull(cars.discontinuedAt))\n* ```\n*\n* @see isNotNull for the inverse of this test\n*/\nfunction isNull(value) {\n\treturn sql`(${value} is null)`;\n}\n/**\n* Test whether an expression is not NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have been discontinued.\n* db.select().from(cars)\n* .where(isNotNull(cars.discontinuedAt))\n* ```\n*\n* @see isNull for the inverse of this test\n*/\nfunction isNotNull(value) {\n\treturn sql`(${value} is not null)`;\n}\n/**\n* Test whether a subquery evaluates to have any rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column has a match in a cities\n* // table.\n* db\n* .select()\n* .from(users)\n* .where(\n* exists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see notExists for the inverse of this test\n*/\nfunction exists(subquery) {\n\treturn sql`exists ${subquery}`;\n}\n/**\n* Test whether a subquery doesn't include any result\n* rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column doesn't match\n* // a row in the cities table.\n* db\n* .select()\n* .from(users)\n* .where(\n* notExists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see exists for the inverse of this test\n*/\nfunction notExists(subquery) {\n\treturn sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction notBetween(column, min, max) {\n\treturn sql`${column} not between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\n/**\n* Compare a column to a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(like(cars.name, '%Turbo%'))\n* ```\n*\n* @see ilike for a case-insensitive version of this condition\n*/\nfunction like(column, value) {\n\treturn sql`${column} like ${value}`;\n}\n/**\n* The inverse of like - this tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"ROver\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see like for the inverse condition\n* @see notIlike for a case-insensitive version of this condition\n*/\nfunction notLike(column, value) {\n\treturn sql`${column} not like ${value}`;\n}\n/**\n* Case-insensitively compare a column to a pattern,\n* which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* Unlike like, this performs a case-insensitive comparison.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(ilike(cars.name, '%Turbo%'))\n* ```\n*\n* @see like for a case-sensitive version of this condition\n*/\nfunction ilike(column, value) {\n\treturn sql`${column} ilike ${value}`;\n}\n/**\n* The inverse of ilike - this case-insensitively tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"Rover\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see ilike for the inverse condition\n* @see notLike for a case-sensitive version of this condition\n*/\nfunction notIlike(column, value) {\n\treturn sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContains requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} @> ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContained requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} <@ ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayOverlaps requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} && ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n\n//#endregion\nexport { and, arrayContained, arrayContains, arrayOverlaps, between, bindIfParam, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or };\n//# sourceMappingURL=conditions.js.map",
"import { sql } from \"../sql.js\";\n\n//#region src/sql/expressions/select.ts\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in ascending\n* order. By the SQL standard, ascending order is the\n* default, so it is not usually necessary to specify\n* ascending sort order.\n*\n* ## Examples\n*\n* ```ts\n* // Return cars, starting with the oldest models\n* // and going in ascending order to the newest.\n* db.select().from(cars)\n* .orderBy(asc(cars.year));\n* ```\n*\n* @see desc to sort in descending order\n*/\nfunction asc(column) {\n\treturn sql`${column} asc`;\n}\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in descending\n* order.\n*\n* ## Examples\n*\n* ```ts\n* // Select users, with the most recently created\n* // records coming first.\n* db.select().from(users)\n* .orderBy(desc(users.createdAt));\n* ```\n*\n* @see asc to sort in ascending order\n*/\nfunction desc(column) {\n\treturn sql`${column} desc`;\n}\n\n//#endregion\nexport { asc, desc };\n//# sourceMappingURL=select.js.map"
],
"mappings": "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",
"debugId": "91D2E58AA46A43BB64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/integration-id.ts", "../schema/src/credential.ts", "../schema/src/connection.ts", "../schema/src/integration.ts", "../schema/src/provider.ts", "../schema/src/money.ts", "../schema/src/model.ts", "../schema/src/prompt.ts", "../schema/src/shell.ts", "../schema/src/session-error.ts", "../schema/src/session-id.ts", "../schema/src/permission.ts", "../schema/src/agent.ts", "../schema/src/skill.ts", "../schema/src/snapshot.ts", "../schema/src/token-usage.ts", "../schema/src/session-message.ts"],
"sourcesContent": [
"import { Schema } from \"effect\"\n\nexport const IntegrationID = Schema.String.pipe(Schema.brand(\"Integration.ID\"))\nexport type IntegrationID = typeof IntegrationID.Type\n\nexport const IntegrationMethodID = Schema.String.pipe(Schema.brand(\"Integration.MethodID\"))\nexport type IntegrationMethodID = typeof IntegrationMethodID.Type\n",
"export * as Credential from \"./credential.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { IntegrationMethodID } from \"./integration-id.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.pipe(\n Schema.brand(\"Credential.ID\"),\n statics((schema) => ({ create: () => schema.make(\"cred_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport interface OAuth extends Schema.Schema.Type<typeof OAuth> {}\nexport const OAuth = Schema.Struct({\n type: Schema.Literal(\"oauth\"),\n methodID: IntegrationMethodID,\n refresh: Schema.String,\n access: Schema.String,\n expires: NonNegativeInt,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n}).annotate({ identifier: \"Credential.OAuth\" })\n\nexport interface Key extends Schema.Schema.Type<typeof Key> {}\nexport const Key = Schema.Struct({\n type: Schema.Literal(\"key\"),\n key: Schema.String,\n metadata: optional(Schema.Record(Schema.String, Schema.Unknown)),\n}).annotate({ identifier: \"Credential.Key\" })\n\nexport const Value = Schema.Union([OAuth, Key])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Credential.Value\" })\nexport type Value = Schema.Schema.Type<typeof Value>\n",
"export * as Connection from \"./connection.js\"\n\nimport { Schema } from \"effect\"\nimport { Credential } from \"./credential.js\"\n\nexport interface CredentialInfo extends Schema.Schema.Type<typeof CredentialInfo> {}\nexport const CredentialInfo = Schema.Struct({\n type: Schema.Literal(\"credential\"),\n id: Credential.ID,\n label: Schema.String,\n}).annotate({ identifier: \"Connection.CredentialInfo\" })\n\nexport interface EnvInfo extends Schema.Schema.Type<typeof EnvInfo> {}\nexport const EnvInfo = Schema.Struct({\n type: Schema.Literal(\"env\"),\n name: Schema.String,\n}).annotate({ identifier: \"Connection.EnvInfo\" })\n\nexport const Info = Schema.Union([CredentialInfo, EnvInfo])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Connection.Info\" })\nexport type Info = typeof Info.Type\n",
"export * as Integration from \"./integration.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { Connection } from \"./connection.js\"\nimport { ascending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\nimport { IntegrationID, IntegrationMethodID } from \"./integration-id.js\"\n\nexport const ID = IntegrationID\nexport type ID = typeof ID.Type\n\nexport const MethodID = IntegrationMethodID\nexport type MethodID = typeof MethodID.Type\n\nexport interface When extends Schema.Schema.Type<typeof When> {}\nexport const When = Schema.Struct({\n key: Schema.String,\n op: Schema.Literals([\"eq\", \"neq\"]),\n value: Schema.String,\n}).annotate({ identifier: \"Integration.When\" })\n\nexport interface TextPrompt extends Schema.Schema.Type<typeof TextPrompt> {}\nexport const TextPrompt = Schema.Struct({\n type: Schema.Literal(\"text\"),\n key: Schema.String,\n message: Schema.String,\n placeholder: optional(Schema.String),\n when: optional(When),\n}).annotate({ identifier: \"Integration.TextPrompt\" })\n\nexport interface SelectPrompt extends Schema.Schema.Type<typeof SelectPrompt> {}\nexport const SelectPrompt = Schema.Struct({\n type: Schema.Literal(\"select\"),\n key: Schema.String,\n message: Schema.String,\n options: Schema.Array(\n Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n hint: optional(Schema.String),\n }),\n ),\n when: optional(When),\n}).annotate({ identifier: \"Integration.SelectPrompt\" })\n\nexport const Prompt = Schema.Union([TextPrompt, SelectPrompt]).pipe(Schema.toTaggedUnion(\"type\"))\nexport type Prompt = typeof Prompt.Type\n\nexport interface OAuthMethod extends Schema.Schema.Type<typeof OAuthMethod> {}\nexport const OAuthMethod = Schema.Struct({\n id: MethodID,\n type: Schema.Literal(\"oauth\"),\n label: Schema.String,\n prompts: optional(Schema.Array(Prompt)),\n}).annotate({ identifier: \"Integration.OAuthMethod\" })\n\nexport interface KeyMethod extends Schema.Schema.Type<typeof KeyMethod> {}\nexport const KeyMethod = Schema.Struct({\n type: Schema.Literal(\"key\"),\n label: optional(Schema.String),\n}).annotate({ identifier: \"Integration.KeyMethod\" })\n\nexport interface EnvMethod extends Schema.Schema.Type<typeof EnvMethod> {}\nexport const EnvMethod = Schema.Struct({\n type: Schema.Literal(\"env\"),\n names: Schema.Array(Schema.String),\n}).annotate({ identifier: \"Integration.EnvMethod\" })\n\nexport const Method = Schema.Union([OAuthMethod, KeyMethod, EnvMethod])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Integration.Method\" })\nexport type Method = typeof Method.Type\n\nexport const Inputs = Schema.Record(Schema.String, Schema.String).annotate({ identifier: \"Integration.Inputs\" })\nexport type Inputs = typeof Inputs.Type\n\nconst Updated = ephemeral({\n type: \"integration.updated\",\n schema: {},\n})\nconst ConnectionUpdated = ephemeral({\n type: \"integration.connection.updated\",\n schema: { integrationID: ID },\n})\nexport const Event = { Updated, ConnectionUpdated, Definitions: inventory(Updated, ConnectionUpdated) }\n\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\nexport const Ref = Schema.Struct({\n id: ID,\n name: Schema.String,\n}).annotate({ identifier: \"Integration.Ref\" })\n\nexport const Info = Schema.Struct({\n id: ID,\n name: Schema.String,\n methods: Schema.Array(Method),\n connections: Schema.Array(Connection.Info),\n}).annotate({ identifier: \"Integration.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nexport const AttemptID = Schema.String.pipe(\n Schema.brand(\"Integration.AttemptID\"),\n statics((schema) => ({ create: () => schema.make(\"con_\" + ascending()) })),\n)\nexport type AttemptID = typeof AttemptID.Type\n\nconst AttemptTime = Schema.Struct({\n created: Schema.Number,\n expires: Schema.Number,\n})\n\nexport class Attempt extends Schema.Class<Attempt>(\"Integration.Attempt\")({\n attemptID: AttemptID,\n url: Schema.String,\n instructions: Schema.String,\n mode: Schema.Literals([\"auto\", \"code\"]),\n time: AttemptTime,\n}) {}\n\nexport const AttemptStatus = Schema.Union([\n Schema.Struct({ status: Schema.Literal(\"pending\"), time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"complete\"), time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"failed\"), message: Schema.String, time: AttemptTime }),\n Schema.Struct({ status: Schema.Literal(\"expired\"), time: AttemptTime }),\n])\n .pipe(Schema.toTaggedUnion(\"status\"))\n .annotate({ identifier: \"Integration.AttemptStatus\" })\nexport type AttemptStatus = typeof AttemptStatus.Type\n",
"export * as Provider from \"./provider.js\"\n\nimport { Effect, Schema } from \"effect\"\nimport { Integration } from \"./integration.js\"\nimport { optional, statics } from \"./schema.js\"\n\nexport const ID = Schema.String.pipe(\n Schema.brand(\"ProviderV2.ID\"),\n statics((schema) => ({\n opencode: schema.make(\"opencode\"),\n anthropic: schema.make(\"anthropic\"),\n openai: schema.make(\"openai\"),\n google: schema.make(\"google\"),\n googleVertex: schema.make(\"google-vertex\"),\n githubCopilot: schema.make(\"github-copilot\"),\n amazonBedrock: schema.make(\"amazon-bedrock\"),\n azure: schema.make(\"azure\"),\n openrouter: schema.make(\"openrouter\"),\n mistral: schema.make(\"mistral\"),\n gitlab: schema.make(\"gitlab\"),\n })),\n)\nexport type ID = typeof ID.Type\n\nexport const Package = Schema.String\nexport type Package = typeof Package.Type\n\nexport const Overlays = {\n settings: Schema.Record(Schema.String, Schema.Json).pipe(optional),\n headers: Schema.Record(Schema.String, Schema.String).pipe(optional),\n body: Schema.Record(Schema.String, Schema.Json).pipe(optional),\n}\n\nexport const Settings = Schema.Record(Schema.String, Schema.Json).annotate({ identifier: \"Provider.Settings\" })\nexport type Settings = typeof Settings.Type\n\nexport interface Request extends Schema.Schema.Type<typeof Request> {}\nexport const Request = Schema.Struct({\n settings: Settings.pipe(Schema.withConstructorDefault(Effect.succeed({}))),\n headers: Schema.Record(Schema.String, Schema.String),\n body: Schema.Record(Schema.String, Schema.Json),\n}).annotate({ identifier: \"Provider.Request\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n integrationID: Integration.ID.pipe(optional),\n name: Schema.String,\n disabled: Schema.Boolean.pipe(optional),\n package: Package,\n ...Overlays,\n})\n .annotate({ identifier: \"ProviderV2.Info\" })\n .pipe(\n statics(() => ({\n empty: (id: ID): Info => ({ id, name: id, package: \"\" }),\n })),\n )\n",
"export * as Money from \"./money.js\"\n\nimport { Schema } from \"effect\"\nimport { statics } from \"./schema.js\"\n\nexport const USD = Schema.Finite.pipe(\n Schema.brand(\"Money.USD\"),\n Schema.annotate({ identifier: \"Money.USD\" }),\n statics((schema) => ({ zero: schema.make(0) })),\n)\nexport type USD = typeof USD.Type\n\nexport const USDPerMillionTokens = Schema.Finite.pipe(\n Schema.brand(\"Money.USDPerMillionTokens\"),\n Schema.annotate({ identifier: \"Money.USDPerMillionTokens\" }),\n statics((schema) => ({ zero: schema.make(0) })),\n)\nexport type USDPerMillionTokens = typeof USDPerMillionTokens.Type\n",
"export * as Model from \"./model.js\"\n\nimport { Schema } from \"effect\"\nimport { optional, statics } from \"./schema.js\"\nimport { Provider } from \"./provider.js\"\nimport { Money } from \"./money.js\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Model.ID\"))\nexport type ID = typeof ID.Type\n\nexport const VariantID = Schema.String.pipe(Schema.brand(\"Model.VariantID\"))\nexport type VariantID = typeof VariantID.Type\n\nexport const Ref = Schema.Struct({\n id: ID,\n providerID: Provider.ID,\n variant: VariantID.pipe(optional),\n})\n .annotate({ identifier: \"Model.Ref\" })\n .pipe(\n statics((schema) => ({\n parse: (input: string) => {\n const providerEnd = input.indexOf(\"/\")\n if (providerEnd <= 0) throw new Error(`Invalid model reference: ${input}`)\n const providerID = input.slice(0, providerEnd)\n const variantStart = input.indexOf(\"#\", providerEnd + 1)\n const id = input.slice(providerEnd + 1, variantStart === -1 ? undefined : variantStart)\n const variant = variantStart === -1 ? undefined : input.slice(variantStart + 1)\n if (!id || providerID.includes(\"#\") || (variant !== undefined && (!variant || variant.includes(\"#\"))))\n throw new Error(`Invalid model reference: ${input}`)\n return schema.make({\n providerID: Provider.ID.make(providerID),\n id: ID.make(id),\n ...(variant ? { variant: VariantID.make(variant) } : {}),\n })\n },\n })),\n )\nexport interface Ref extends Schema.Schema.Type<typeof Ref> {}\n\nexport const Family = Schema.String.pipe(Schema.brand(\"Model.Family\"))\nexport type Family = typeof Family.Type\n\nexport interface Capabilities extends Schema.Schema.Type<typeof Capabilities> {}\nexport const Capabilities = Schema.Struct({\n tools: Schema.Boolean,\n input: Schema.Array(Schema.String),\n output: Schema.Array(Schema.String),\n}).annotate({ identifier: \"Model.Capabilities\" })\n\nexport interface Cost extends Schema.Schema.Type<typeof Cost> {}\nexport const Cost = Schema.Struct({\n tier: Schema.Struct({\n type: Schema.tag(\"context\"),\n size: Schema.Int,\n }).pipe(optional),\n input: Money.USDPerMillionTokens,\n output: Money.USDPerMillionTokens,\n cache: Schema.Struct({\n read: Money.USDPerMillionTokens,\n write: Money.USDPerMillionTokens,\n }),\n}).annotate({ identifier: \"Model.Cost\" })\n\nexport interface Variant extends Schema.Schema.Type<typeof Variant> {}\nexport const Variant = Schema.Struct({\n id: VariantID,\n ...Provider.Overlays,\n}).annotate({ identifier: \"Model.Variant\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n modelID: ID,\n providerID: Provider.ID,\n family: Family.pipe(optional),\n name: Schema.String,\n package: Provider.Package.pipe(optional),\n ...Provider.Overlays,\n capabilities: Capabilities,\n variants: Schema.Array(Variant),\n time: Schema.Struct({\n released: Schema.Finite,\n }),\n cost: Schema.Array(Cost),\n status: Schema.Literals([\"alpha\", \"beta\", \"deprecated\", \"active\"]),\n enabled: Schema.Boolean,\n limit: Schema.Struct({\n context: Schema.Int,\n input: Schema.Int.pipe(optional),\n output: Schema.Int,\n }),\n})\n .annotate({ identifier: \"Model.Info\" })\n .pipe(\n statics(() => ({\n empty: (providerID: Provider.ID, id: ID) =>\n ({\n id,\n modelID: id,\n providerID,\n name: id,\n capabilities: { tools: false, input: [], output: [] },\n variants: [],\n time: { released: 0 },\n cost: [],\n status: \"active\",\n enabled: true,\n limit: { context: 0, output: 0 },\n }) satisfies Info,\n })),\n )\n",
"import { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { statics } from \"./schema.js\"\n\nexport interface PromptMention extends Schema.Schema.Type<typeof PromptMention> {}\nexport const PromptMention = Schema.Struct({\n start: Schema.Finite,\n end: Schema.Finite,\n text: Schema.String,\n}).annotate({ identifier: \"Prompt.Mention\" })\n\nexport const FileSource = Schema.Union([\n Schema.Struct({ type: Schema.Literal(\"inline\") }),\n Schema.Struct({ type: Schema.Literal(\"uri\"), uri: Schema.String }),\n])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Prompt.FileSource\" })\nexport type FileSource = typeof FileSource.Type\n\nexport const Base64 = Schema.String.check(\n Schema.isPattern(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/),\n).annotate({ identifier: \"Prompt.Base64\" })\nexport type Base64 = typeof Base64.Type\n\nexport interface FileAttachment extends Schema.Schema.Type<typeof FileAttachment> {}\nexport const FileAttachment = Schema.Struct({\n data: Base64,\n mime: Schema.String,\n source: FileSource,\n name: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n mention: PromptMention.pipe(optional),\n})\n .annotate({ identifier: \"Prompt.FileAttachment\" })\n .pipe(\n statics((schema) => ({\n create: (input: FileAttachment) =>\n schema.make({\n data: input.data,\n mime: input.mime,\n source: input.source,\n name: input.name,\n description: input.description,\n mention: input.mention,\n }),\n })),\n )\n\nexport interface AgentAttachment extends Schema.Schema.Type<typeof AgentAttachment> {}\nexport const AgentAttachment = Schema.Struct({\n name: Schema.String,\n mention: PromptMention.pipe(optional),\n}).annotate({ identifier: \"Prompt.AgentAttachment\" })\n\nexport interface Prompt extends Schema.Schema.Type<typeof Prompt> {}\nexport const Prompt = Schema.Struct({\n text: Schema.String,\n files: Schema.Array(FileAttachment).pipe(optional),\n agents: Schema.Array(AgentAttachment).pipe(optional),\n})\n .annotate({ identifier: \"Prompt\" })\n .pipe(\n statics((schema) => ({\n equivalence: Schema.toEquivalence(schema),\n fromUserMessage: (input: Pick<Prompt, \"text\" | \"files\" | \"agents\">) =>\n schema.make({\n text: input.text,\n ...(input.files === undefined ? {} : { files: input.files }),\n ...(input.agents === undefined ? {} : { agents: input.agents }),\n }),\n })),\n )\n",
"export * as Shell from \"./shell.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, statics } from \"./schema.js\"\n\nconst IDSchema = Schema.String.check(Schema.isStartsWith(\"sh_\")).pipe(Schema.brand(\"Shell.ID\"))\n\nexport const ID = IDSchema.pipe(\n statics((schema: typeof IDSchema) => {\n const create = () => schema.make(\"sh_\" + ascending())\n return {\n create,\n ascending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type ID = typeof ID.Type\n\nexport const Status = Schema.Literals([\"running\", \"exited\", \"timeout\", \"killed\"])\nexport type Status = typeof Status.Type\n\nexport const Time = Schema.Struct({\n started: Schema.Finite,\n completed: optional(Schema.Finite),\n})\nexport interface Time extends Schema.Schema.Type<typeof Time> {}\n\n// Opaque caller-supplied tags echoed back on Info and events. The Shell service never interprets\n// these; callers (e.g. ShellTool stores the originating session ID) use them to filter or correlate.\nexport const Metadata = Schema.Record(Schema.String, Schema.Unknown)\nexport type Metadata = typeof Metadata.Type\n\nexport const Info = Schema.Struct({\n id: ID,\n status: Status,\n command: Schema.String,\n cwd: Schema.String,\n shell: Schema.String,\n // Absolute path of the file capturing combined stdout/stderr. Page through it via `output`.\n file: Schema.String,\n pid: optional(NonNegativeInt),\n exit: optional(Schema.Finite),\n // Always present; defaults to an empty object when the creator supplies no metadata.\n metadata: Metadata,\n time: Time,\n}).annotate({ identifier: \"Shell.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nconst Created = ephemeral({ type: \"shell.created\", schema: { info: Info } })\nconst Exited = ephemeral({ type: \"shell.exited\", schema: { id: ID, exit: optional(Schema.Finite), status: Status } })\nconst Deleted = ephemeral({ type: \"shell.deleted\", schema: { id: ID } })\nexport const Event = { Created, Exited, Deleted, Definitions: inventory(Created, Exited, Deleted) }\n\nexport const CreateInput = Schema.Struct({\n command: Schema.String,\n cwd: optional(Schema.String),\n timeout: NonNegativeInt,\n metadata: optional(Metadata),\n})\nexport interface CreateInput extends Schema.Schema.Type<typeof CreateInput> {}\n\nexport const OutputInput = Schema.Struct({\n cursor: optional(NonNegativeInt),\n limit: optional(NonNegativeInt),\n})\nexport interface OutputInput extends Schema.Schema.Type<typeof OutputInput> {}\n\nexport const Output = Schema.Struct({\n output: Schema.String,\n // Absolute cursor after this page. Equals `size` once fully caught up.\n cursor: NonNegativeInt,\n // Total bytes captured so far. A consumer has more to page while `cursor < size`.\n size: NonNegativeInt,\n truncated: Schema.Boolean,\n})\nexport interface Output extends Schema.Schema.Type<typeof Output> {}\n",
"export * as SessionError from \"./session-error.js\"\n\nimport { Schema } from \"effect\"\n\nexport interface Error extends Schema.Schema.Type<typeof Error> {}\nexport const Error = Schema.Struct({\n type: Schema.String,\n message: Schema.String,\n}).annotate({ identifier: \"Session.StructuredError\" })\n",
"import { Schema } from \"effect\"\nimport { descending } from \"./identifier.js\"\nimport { statics } from \"./schema.js\"\n\nexport const SessionID = Schema.String.check(Schema.isStartsWith(\"ses\")).pipe(\n Schema.brand(\"SessionID\"),\n statics((schema) => {\n const create = () => schema.make(\"ses_\" + descending())\n return {\n create,\n descending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type SessionID = typeof SessionID.Type\n",
"export * as Permission from \"./permission.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { SessionID } from \"./session-id.js\"\nimport { statics } from \"./schema.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"per\")).pipe(\n Schema.brand(\"PermissionV2.ID\"),\n statics((schema) => ({ create: (id?: string) => schema.make(id ?? \"per_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport const Source = Schema.Union([\n Schema.Struct({\n type: Schema.Literal(\"tool\"),\n messageID: Schema.String,\n callID: Schema.String,\n }),\n]).annotate({ identifier: \"PermissionV2.Source\" })\nexport type Source = typeof Source.Type\n\nconst RequestFields = {\n sessionID: SessionID,\n action: Schema.String,\n resources: Schema.Array(Schema.String),\n save: Schema.Array(Schema.String).pipe(optional),\n metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),\n source: Source.pipe(optional),\n}\n\nexport const Request = Schema.Struct({\n id: ID,\n ...RequestFields,\n}).annotate({ identifier: \"PermissionV2.Request\" })\nexport interface Request extends Schema.Schema.Type<typeof Request> {}\n\nexport const Reply = Schema.Literals([\"once\", \"always\", \"reject\"]).annotate({ identifier: \"PermissionV2.Reply\" })\nexport type Reply = typeof Reply.Type\n\nconst Asked = ephemeral({ type: \"permission.v2.asked\", schema: Request.fields })\nconst Replied = ephemeral({\n type: \"permission.v2.replied\",\n schema: {\n sessionID: SessionID,\n requestID: ID,\n reply: Reply,\n },\n})\nexport const Event = { Asked, Replied, Definitions: inventory(Asked, Replied) }\n\nexport const Effect = Schema.Literals([\"allow\", \"deny\", \"ask\"]).annotate({ identifier: \"PermissionV2.Effect\" })\nexport type Effect = typeof Effect.Type\n\nexport interface Rule extends Schema.Schema.Type<typeof Rule> {}\nexport const Rule = Schema.Struct({\n action: Schema.String,\n resource: Schema.String,\n effect: Effect,\n}).annotate({ identifier: \"PermissionV2.Rule\" })\n\nexport const Ruleset = Schema.Array(Rule).annotate({ identifier: \"PermissionV2.Ruleset\" })\nexport type Ruleset = typeof Ruleset.Type\n",
"export * as Agent from \"./agent.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { optional } from \"./schema.js\"\nimport { Model } from \"./model.js\"\nimport { Permission } from \"./permission.js\"\nimport { Provider } from \"./provider.js\"\nimport { PositiveInt, statics } from \"./schema.js\"\n\nconst Updated = ephemeral({ type: \"agent.updated\", schema: {} })\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Agent.ID\"))\nexport type ID = typeof ID.Type\n\nexport const Name = Schema.String.pipe(Schema.brand(\"Agent.Name\"))\nexport type Name = typeof Name.Type\n\nexport const Color = Schema.Union([\n Schema.String.check(Schema.isPattern(/^#[0-9a-fA-F]{6}$/)),\n Schema.Literals([\"primary\", \"secondary\", \"accent\", \"success\", \"warning\", \"error\", \"info\"]),\n]).annotate({ identifier: \"Agent.Color\" })\nexport type Color = typeof Color.Type\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n name: Name,\n model: Model.Ref.pipe(optional),\n request: Provider.Request,\n system: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n mode: Schema.Literals([\"subagent\", \"primary\", \"all\"]),\n hidden: Schema.Boolean,\n color: Color.pipe(optional),\n steps: PositiveInt.pipe(optional),\n permissions: Permission.Ruleset,\n})\n .annotate({ identifier: \"Agent.Info\" })\n .pipe(\n statics(() => ({\n empty: (id: ID) =>\n ({\n id,\n name: Name.make(id),\n request: { settings: {}, headers: {}, body: {} },\n mode: \"all\",\n hidden: false,\n permissions: [\n { action: \"*\", resource: \"*\", effect: \"allow\" },\n { action: \"external_directory\", resource: \"*\", effect: \"ask\" },\n ],\n }) satisfies Info,\n })),\n )\n\nexport const Event = {\n Updated,\n Definitions: inventory(Updated),\n}\n",
"export * as Skill from \"./skill.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { AbsolutePath } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Skill.ID\"))\nexport type ID = typeof ID.Type\n\nexport const Name = Schema.String.pipe(Schema.brand(\"Skill.Name\"))\nexport type Name = typeof Name.Type\n\nexport interface DirectorySource extends Schema.Schema.Type<typeof DirectorySource> {}\nexport const DirectorySource = Schema.Struct({\n type: Schema.tag(\"directory\"),\n path: AbsolutePath,\n}).annotate({ identifier: \"Skill.DirectorySource\" })\n\nexport interface UrlSource extends Schema.Schema.Type<typeof UrlSource> {}\nexport const UrlSource = Schema.Struct({\n type: Schema.tag(\"url\"),\n url: Schema.String,\n}).annotate({ identifier: \"Skill.UrlSource\" })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n name: Name,\n description: Schema.String.pipe(optional),\n slash: Schema.Boolean.pipe(optional),\n autoinvoke: Schema.Boolean.pipe(optional),\n location: AbsolutePath,\n content: Schema.String,\n}).annotate({ identifier: \"Skill.Info\" })\n\nconst Updated = ephemeral({ type: \"skill.updated\", schema: {} })\nexport const Event = { Updated, Definitions: inventory(Updated) }\n\nexport interface EmbeddedSource extends Schema.Schema.Type<typeof EmbeddedSource> {}\nexport const EmbeddedSource = Schema.Struct({\n type: Schema.tag(\"embedded\"),\n skill: Schema.suspend(() => Info),\n}).annotate({ identifier: \"Skill.EmbeddedSource\" })\n\nexport type Source = DirectorySource | UrlSource | EmbeddedSource\nexport const Source = Object.assign(\n Schema.Union([DirectorySource, UrlSource, EmbeddedSource]).pipe(\n Schema.toTaggedUnion(\"type\"),\n Schema.annotate({ identifier: \"Skill.Source\" }),\n ),\n {\n equals: (a: Source, b: Source) => {\n if (a.type !== b.type) return false\n if (a.type === \"directory\" && b.type === \"directory\") return a.path === b.path\n if (a.type === \"url\" && b.type === \"url\") return a.url === b.url\n if (a.type === \"embedded\" && b.type === \"embedded\") return a.skill.id === b.skill.id\n return false\n },\n key: (source: Source) =>\n source.type === \"directory\"\n ? `directory:${source.path}`\n : source.type === \"url\"\n ? `url:${source.url}`\n : `embedded:${source.skill.id}`,\n },\n)\n",
"export * as Snapshot from \"./snapshot.js\"\n\nimport { Schema } from \"effect\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Snapshot.ID\"))\nexport type ID = typeof ID.Type\n",
"export * as TokenUsage from \"./token-usage.js\"\n\nimport { Schema } from \"effect\"\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n input: Schema.Finite,\n output: Schema.Finite,\n reasoning: Schema.Finite,\n cache: Schema.Struct({\n read: Schema.Finite,\n write: Schema.Finite,\n }),\n}).annotate({ identifier: \"TokenUsage.Info\" })\n",
"export * as SessionMessage from \"./session-message.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ToolContent } from \"./llm.js\"\nimport { Model } from \"./model.js\"\nimport { Prompt } from \"./prompt.js\"\nimport { DateTimeUtcFromMillis, PositiveInt, RelativePath, statics } from \"./schema.js\"\nimport { ascending } from \"./identifier.js\"\nimport { Event } from \"./event.js\"\nimport { Shell as ShellSchema } from \"./shell.js\"\nimport { FinishReason } from \"./llm.js\"\nimport { SessionError } from \"./session-error.js\"\nimport { Agent } from \"./agent.js\"\nimport { Skill as SkillSchema } from \"./skill.js\"\nimport { Money } from \"./money.js\"\nimport { Snapshot } from \"./snapshot.js\"\nimport { TokenUsage } from \"./token-usage.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"msg_\")).pipe(\n Schema.brand(\"Session.Message.ID\"),\n statics((schema) => ({\n create: () => schema.make(\"msg_\" + ascending()),\n fromEvent: (eventID: Event.ID) => schema.make(eventID.replace(/^evt_/, \"msg_\")),\n })),\n)\nexport type ID = typeof ID.Type\n\nconst Base = {\n id: ID,\n metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),\n time: Schema.Struct({ created: DateTimeUtcFromMillis }),\n}\n\nexport const ProviderState = Schema.Record(Schema.String, Schema.Unknown).annotate({\n identifier: \"Session.Message.ProviderState\",\n})\nexport type ProviderState = typeof ProviderState.Type\n\nexport interface AgentSelected extends Schema.Schema.Type<typeof AgentSelected> {}\nexport const AgentSelected = Schema.Struct({\n ...Base,\n type: Schema.tag(\"agent-switched\"),\n agent: Agent.ID,\n}).annotate({ identifier: \"Session.Message.AgentSelected\" })\n\nexport interface ModelSelected extends Schema.Schema.Type<typeof ModelSelected> {}\nexport const ModelSelected = Schema.Struct({\n ...Base,\n type: Schema.tag(\"model-switched\"),\n model: Model.Ref,\n previous: Model.Ref.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ModelSelected\" })\n\nexport interface User extends Schema.Schema.Type<typeof User> {}\nexport const User = Schema.Struct({\n ...Base,\n text: Prompt.fields.text,\n files: Prompt.fields.files,\n agents: Prompt.fields.agents,\n type: Schema.tag(\"user\"),\n}).annotate({ identifier: \"Session.Message.User\" })\n\nexport interface Synthetic extends Schema.Schema.Type<typeof Synthetic> {}\nexport const Synthetic = Schema.Struct({\n ...Base,\n text: Schema.String,\n description: Schema.String.pipe(optional),\n type: Schema.tag(\"synthetic\"),\n}).annotate({ identifier: \"Session.Message.Synthetic\" })\n\nexport interface System extends Schema.Schema.Type<typeof System> {}\nexport const System = Schema.Struct({\n ...Base,\n type: Schema.tag(\"system\"),\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.System\" })\n\nexport interface Skill extends Schema.Schema.Type<typeof Skill> {}\nexport const Skill = Schema.Struct({\n ...Base,\n type: Schema.tag(\"skill\"),\n skill: SkillSchema.ID,\n name: SkillSchema.Name,\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.Skill\" })\n\nexport interface Shell extends Schema.Schema.Type<typeof Shell> {}\nexport const Shell = Schema.Struct({\n ...Base,\n type: Schema.tag(\"shell\"),\n shellID: ShellSchema.ID,\n command: Schema.String,\n status: ShellSchema.Status,\n exit: Schema.Number.pipe(optional),\n output: ShellSchema.Output.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Shell\" })\n\nexport interface ToolStateStreaming extends Schema.Schema.Type<typeof ToolStateStreaming> {}\nexport const ToolStateStreaming = Schema.Struct({\n status: Schema.tag(\"streaming\"),\n input: Schema.String,\n}).annotate({ identifier: \"Session.Message.ToolState.Streaming\" })\n\nexport interface ToolStateRunning extends Schema.Schema.Type<typeof ToolStateRunning> {}\nexport const ToolStateRunning = Schema.Struct({\n status: Schema.tag(\"running\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n}).annotate({ identifier: \"Session.Message.ToolState.Running\" })\n\nexport interface ToolStateCompleted extends Schema.Schema.Type<typeof ToolStateCompleted> {}\nexport const ToolStateCompleted = Schema.Struct({\n status: Schema.tag(\"completed\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n result: Schema.Unknown.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ToolState.Completed\" })\n\nexport interface ToolStateError extends Schema.Schema.Type<typeof ToolStateError> {}\nexport const ToolStateError = Schema.Struct({\n status: Schema.tag(\"error\"),\n input: Schema.Record(Schema.String, Schema.Unknown),\n content: ToolContent.pipe(Schema.Array),\n structured: Schema.Record(Schema.String, Schema.Unknown),\n error: SessionError.Error,\n result: Schema.Unknown.pipe(optional),\n}).annotate({ identifier: \"Session.Message.ToolState.Error\" })\n\nexport const ToolState = Schema.Union([ToolStateStreaming, ToolStateRunning, ToolStateCompleted, ToolStateError]).pipe(\n Schema.toTaggedUnion(\"status\"),\n)\nexport type ToolState = ToolStateStreaming | ToolStateRunning | ToolStateCompleted | ToolStateError\n\nexport interface AssistantTool extends Schema.Schema.Type<typeof AssistantTool> {}\nexport const AssistantTool = Schema.Struct({\n type: Schema.tag(\"tool\"),\n id: Schema.String,\n name: Schema.String,\n executed: Schema.Boolean.pipe(optional),\n providerState: ProviderState.pipe(optional),\n providerResultState: ProviderState.pipe(optional),\n state: ToolState,\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n ran: DateTimeUtcFromMillis.pipe(optional),\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Assistant.Tool\" })\n\nexport interface AssistantText extends Schema.Schema.Type<typeof AssistantText> {}\nexport const AssistantText = Schema.Struct({\n type: Schema.tag(\"text\"),\n text: Schema.String,\n}).annotate({ identifier: \"Session.Message.Assistant.Text\" })\n\nexport interface AssistantReasoning extends Schema.Schema.Type<typeof AssistantReasoning> {}\nexport const AssistantReasoning = Schema.Struct({\n type: Schema.tag(\"reasoning\"),\n text: Schema.String,\n state: ProviderState.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }).pipe(optional),\n}).annotate({ identifier: \"Session.Message.Assistant.Reasoning\" })\n\nexport const AssistantContent = Schema.Union([AssistantText, AssistantReasoning, AssistantTool]).pipe(\n Schema.toTaggedUnion(\"type\"),\n)\nexport type AssistantContent = AssistantText | AssistantReasoning | AssistantTool\n\nexport interface AssistantRetry extends Schema.Schema.Type<typeof AssistantRetry> {}\nexport const AssistantRetry = Schema.Struct({\n attempt: PositiveInt,\n at: DateTimeUtcFromMillis,\n error: SessionError.Error,\n}).annotate({ identifier: \"Session.Message.Assistant.Retry\" })\n\nexport interface Assistant extends Schema.Schema.Type<typeof Assistant> {}\nexport const Assistant = Schema.Struct({\n ...Base,\n type: Schema.tag(\"assistant\"),\n agent: Agent.ID,\n model: Model.Ref,\n content: AssistantContent.pipe(Schema.Array),\n snapshot: Schema.Struct({\n start: Snapshot.ID.pipe(optional),\n end: Snapshot.ID.pipe(optional),\n files: Schema.Array(RelativePath).pipe(optional),\n }).pipe(optional),\n finish: FinishReason.pipe(optional),\n cost: Money.USD.pipe(optional),\n tokens: TokenUsage.Info.pipe(optional),\n error: SessionError.Error.pipe(optional),\n retry: AssistantRetry.pipe(optional),\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n completed: DateTimeUtcFromMillis.pipe(optional),\n }),\n}).annotate({ identifier: \"Session.Message.Assistant\" })\n\nconst CompactionBase = { type: Schema.tag(\"compaction\"), ...Base }\n\nexport interface CompactionRunning extends Schema.Schema.Type<typeof CompactionRunning> {}\nexport const CompactionRunning = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"running\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n summary: Schema.String,\n recent: Schema.String,\n}).annotate({ identifier: \"Session.Message.Compaction.Running\" })\n\nexport interface CompactionCompleted extends Schema.Schema.Type<typeof CompactionCompleted> {}\nexport const CompactionCompleted = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"completed\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n summary: Schema.String,\n recent: Schema.String,\n}).annotate({ identifier: \"Session.Message.Compaction.Completed\" })\n\nexport interface CompactionFailed extends Schema.Schema.Type<typeof CompactionFailed> {}\nexport const CompactionFailed = Schema.Struct({\n ...CompactionBase,\n status: Schema.tag(\"failed\"),\n reason: Schema.Literals([\"auto\", \"manual\"]),\n error: SessionError.Error,\n}).annotate({ identifier: \"Session.Message.Compaction.Failed\" })\n\nexport const Compaction = Schema.Union([CompactionRunning, CompactionCompleted, CompactionFailed]).pipe(\n Schema.toTaggedUnion(\"status\"),\n Schema.annotate({ identifier: \"Session.Message.Compaction\" }),\n)\nexport type Compaction = CompactionRunning | CompactionCompleted | CompactionFailed\n\nexport const Info = Schema.Union([\n AgentSelected,\n ModelSelected,\n User,\n Synthetic,\n System,\n Skill,\n Shell,\n Assistant,\n Compaction,\n])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Session.Message.Info\" })\nexport type Info = AgentSelected | ModelSelected | User | Synthetic | System | Skill | Shell | Assistant | Compaction\nexport type Type = Info[\"type\"]\n"
],
"mappings": "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",
"debugId": "25719DF6F92B98C964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/schema.ts"],
"sourcesContent": [
"import { DateTime, Option, Schema, SchemaGetter } from \"effect\"\n\nexport const PositiveInt = Schema.Int.check(Schema.isGreaterThan(0))\nexport const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))\n\nexport const RelativePath = Schema.String.pipe(Schema.brand(\"RelativePath\"))\nexport type RelativePath = typeof RelativePath.Type\n\nexport const AbsolutePath = Schema.String.pipe(Schema.brand(\"AbsolutePath\"))\nexport type AbsolutePath = typeof AbsolutePath.Type\n\nexport const optional = <S extends Schema.Top>(schema: S) =>\n Schema.optionalKey(schema).pipe(\n Schema.decodeTo(Schema.optional(Schema.toType(schema)), {\n decode: SchemaGetter.passthrough({ strict: false }),\n encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)),\n }),\n )\n\nexport const statics =\n <S extends object, M extends Record<string, unknown>>(methods: (schema: S) => M) =>\n (schema: S): S & M =>\n Object.assign(schema, methods(schema))\n\nexport const DateTimeUtcFromMillis = Schema.Finite.pipe(\n Schema.decodeTo(Schema.DateTimeUtc, {\n decode: SchemaGetter.transform((value) => DateTime.makeUnsafe(value)),\n encode: SchemaGetter.transform((value) => DateTime.toEpochMillis(value)),\n }),\n)\n"
],
"mappings": ";4EAEO,IAAM,EAAc,EAAO,IAAI,MAAM,EAAO,cAAc,CAAC,CAAC,EACtD,EAAiB,EAAO,IAAI,MAAM,EAAO,uBAAuB,CAAC,CAAC,EAElE,EAAe,EAAO,OAAO,KAAK,EAAO,MAAM,cAAc,CAAC,EAG9D,EAAe,EAAO,OAAO,KAAK,EAAO,MAAM,cAAc,CAAC,EAG9D,EAAW,CAAuB,IAC7C,EAAO,YAAY,CAAM,EAAE,KACzB,EAAO,SAAS,EAAO,SAAS,EAAO,OAAO,CAAM,CAAC,EAAG,CACtD,OAAQ,EAAa,YAAY,CAAE,OAAQ,EAAM,CAAC,EAClD,OAAQ,EAAa,kBAAkB,EAAO,OAAO,CAAC,IAAU,IAAU,MAAS,CAAC,CACtF,CAAC,CACH,EAEW,EACX,CAAsD,IACtD,CAAC,IACC,OAAO,OAAO,EAAQ,EAAQ,CAAM,CAAC,EAE5B,EAAwB,EAAO,OAAO,KACjD,EAAO,SAAS,EAAO,YAAa,CAClC,OAAQ,EAAa,UAAU,CAAC,IAAU,EAAS,WAAW,CAAK,CAAC,EACpE,OAAQ,EAAa,UAAU,CAAC,IAAU,EAAS,cAAc,CAAK,CAAC,CACzE,CAAC,CACH",
"debugId": "04FCD6434627714E64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260511000411_data_migration_state.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260511000411_data_migration_state\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`data_migration\\` (\n \\`name\\` text PRIMARY KEY,\n \\`time_completed\\` integer NOT NULL\n );\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gJAKb,EACF,EAEL",
"debugId": "86AC9A6F866B378364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260511173437_session-metadata.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260511173437_session-metadata\",\n up(tx) {\n return Effect.gen(function* () {\n // This column briefly shipped again under 20260530232709_lovely_romulus.\n if (\n (yield* tx.all<{ name: string }>(`PRAGMA table_info(\\`session\\`)`)).some((column) => column.name === \"metadata\")\n )\n return\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`metadata\\` text;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,kCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAE7B,IACG,MAAO,EAAG,IAAsB,8BAAgC,GAAG,KAAK,CAAC,IAAW,EAAO,OAAS,UAAU,EAE/G,OACF,MAAO,EAAG,IAAI,4CAAgD,EAC/D,EAEL",
"debugId": "478D1F7867CD91A264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260605042240_add_context_epoch_agent.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260605042240_add_context_epoch_agent\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session_context_epoch\\` ADD \\`agent\\` text DEFAULT 'build' NOT NULL;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,yCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,gFAAoF,EACnG,EAEL",
"debugId": "9E9B6545224C974F64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260603141458_session_input_inbox.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603141458_session_input_inbox\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_input\\` (\n \\`seq\\` integer PRIMARY KEY AUTOINCREMENT,\n \\`id\\` text NOT NULL UNIQUE,\n \\`session_id\\` text NOT NULL,\n \\`prompt\\` text NOT NULL,\n \\`delivery\\` text NOT NULL,\n \\`promoted_seq\\` integer,\n \\`time_created\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_input_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(\n `CREATE INDEX \\`session_input_session_pending_seq_idx\\` ON \\`session_input\\` (\\`session_id\\`,\\`promoted_seq\\`,\\`seq\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,qCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,geAWb,EACD,MAAO,EAAG,IACR,8GACF,EACD,EAEL",
"debugId": "D71DDF4D0CE803BF64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260709025533_drop-todo.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260709025533_drop-todo\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`todo_session_idx\\`;`)\n yield* tx.run(`DROP TABLE \\`todo\\`;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,2BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,0CAA4C,EAC1D,MAAO,EAAG,IAAI,oBAAsB,EACrC,EAEL",
"debugId": "47FB98F6CA4E9FE764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "E50775C9C888BA6B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../schema/src/command.ts", "../schema/src/form.ts", "../schema/src/session.ts", "../schema/src/prompt-input.ts", "../schema/src/question.ts", "../schema/src/permission-saved.ts", "../schema/src/pty.ts", "../schema/src/reference.ts", "../schema/src/project-copy.ts", "../schema/src/catalog.ts", "../schema/src/mcp.ts", "../schema/src/mcp-event.ts", "../schema/src/workspace-event.ts", "../schema/src/workspace.ts", "../schema/src/plugin.ts", "../schema/src/project-directories.ts", "../schema/src/instruction-entry.ts", "../schema/src/vcs.ts", "../schema/src/models-dev.ts", "../schema/src/v1/filesystem.ts", "../schema/src/installation-event.ts", "../schema/src/v1/legacy-event.ts", "../schema/src/lsp-event.ts", "../schema/src/v1/question.ts", "../schema/src/server-event.ts", "../schema/src/session-compaction-event.ts", "../schema/src/session-status-event.ts", "../schema/src/tui-event.ts", "../schema/src/vcs-event.ts", "../schema/src/worktree-event.ts", "../schema/src/event-manifest.ts"],
"sourcesContent": [
"export * as Command from \"./command.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { optional } from \"./schema.js\"\nimport { Model } from \"./model.js\"\nimport { Agent } from \"./agent.js\"\n\nconst Updated = ephemeral({ type: \"command.updated\", schema: {} })\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n name: Schema.String,\n template: Schema.String,\n description: Schema.String.pipe(optional),\n agent: Agent.ID.pipe(optional),\n model: Model.Ref.pipe(optional),\n subtask: Schema.Boolean.pipe(optional),\n}).annotate({ identifier: \"Command.Info\" })\n\nexport const Event = {\n Updated,\n Definitions: inventory(Updated),\n}\n",
"export * as Form from \"./form.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, optional, statics } from \"./schema.js\"\n\nconst IDSchema = Schema.String.check(Schema.isStartsWith(\"frm_\")).pipe(Schema.brand(\"Form.ID\"))\n\nexport const ID = IDSchema.pipe(\n statics((schema: typeof IDSchema) => ({ create: (id?: string) => schema.make(id ?? \"frm_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport const Metadata = Schema.Record(Schema.String, Schema.Unknown).annotate({ identifier: \"Form.Metadata\" })\nexport type Metadata = typeof Metadata.Type\n\nexport const Option = Schema.Struct({\n value: Schema.String,\n label: Schema.String,\n description: Schema.String.pipe(optional),\n}).annotate({ identifier: \"Form.Option\" })\nexport interface Option extends Schema.Schema.Type<typeof Option> {}\n\n// One visibility condition on a field. A field's `when` is a list of conditions that must all\n// hold (AND) against the current answers for the field to be active. Semantics:\n// - `value` must match the referenced field's type; against a multiselect answer, `eq` means\n// \"selection includes value\" and `neq` means \"selection does not include value\".\n// - An unanswered referenced field makes the condition false for both ops.\n// - `key` must reference a field defined earlier in the form's field list.\n// Inactive fields are neither required nor answerable.\nexport const When = Schema.Struct({\n key: Schema.String,\n op: Schema.Literals([\"eq\", \"neq\"]),\n value: Schema.Union([Schema.String, Schema.Number, Schema.Boolean]),\n}).annotate({ identifier: \"Form.When\" })\nexport interface When extends Schema.Schema.Type<typeof When> {}\n\nconst FieldBase = {\n key: Schema.String,\n title: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n required: Schema.Boolean.pipe(optional),\n when: Schema.Array(When).pipe(optional),\n}\n\nexport const StringField = Schema.Struct({\n ...FieldBase,\n type: Schema.Literal(\"string\"),\n format: Schema.Literals([\"email\", \"uri\", \"date\", \"date-time\"]).pipe(optional),\n minLength: NonNegativeInt.pipe(optional),\n maxLength: NonNegativeInt.pipe(optional),\n pattern: Schema.String.pipe(optional),\n placeholder: Schema.String.pipe(optional),\n default: Schema.String.pipe(optional),\n options: Schema.Array(Option).pipe(optional),\n custom: Schema.Boolean.pipe(optional),\n}).annotate({ identifier: \"Form.StringField\" })\nexport interface StringField extends Schema.Schema.Type<typeof StringField> {}\n\nexport const NumberField = Schema.Struct({\n ...FieldBase,\n type: Schema.Literal(\"number\"),\n minimum: Schema.Number.pipe(optional),\n maximum: Schema.Number.pipe(optional),\n default: Schema.Number.pipe(optional),\n}).annotate({ identifier: \"Form.NumberField\" })\nexport interface NumberField extends Schema.Schema.Type<typeof NumberField> {}\n\nexport const IntegerField = Schema.Struct({\n ...FieldBase,\n type: Schema.Literal(\"integer\"),\n minimum: Schema.Number.pipe(optional),\n maximum: Schema.Number.pipe(optional),\n default: Schema.Number.pipe(optional),\n}).annotate({ identifier: \"Form.IntegerField\" })\nexport interface IntegerField extends Schema.Schema.Type<typeof IntegerField> {}\n\nexport const BooleanField = Schema.Struct({\n ...FieldBase,\n type: Schema.Literal(\"boolean\"),\n default: Schema.Boolean.pipe(optional),\n}).annotate({ identifier: \"Form.BooleanField\" })\nexport interface BooleanField extends Schema.Schema.Type<typeof BooleanField> {}\n\nexport const MultiselectField = Schema.Struct({\n ...FieldBase,\n type: Schema.Literal(\"multiselect\"),\n options: Schema.Array(Option),\n minItems: NonNegativeInt.pipe(optional),\n maxItems: NonNegativeInt.pipe(optional),\n custom: Schema.Boolean.pipe(optional),\n default: Schema.Array(Schema.String).pipe(optional),\n}).annotate({ identifier: \"Form.MultiselectField\" })\nexport interface MultiselectField extends Schema.Schema.Type<typeof MultiselectField> {}\n\nexport const ExternalField = Schema.Struct({\n key: Schema.String,\n type: Schema.Literal(\"external\"),\n url: Schema.String,\n title: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n}).annotate({ identifier: \"Form.ExternalField\" })\nexport interface ExternalField extends Schema.Schema.Type<typeof ExternalField> {}\n\nexport const Field = Schema.Union([\n StringField,\n NumberField,\n IntegerField,\n BooleanField,\n MultiselectField,\n ExternalField,\n]).pipe(Schema.toTaggedUnion(\"type\"), Schema.annotate({ identifier: \"Form.Field\" }))\nexport type Field = StringField | NumberField | IntegerField | BooleanField | MultiselectField | ExternalField\n\nexport const Fields = Schema.NonEmptyArray(Field).annotate({ identifier: \"Form.Fields\" })\nexport type Fields = typeof Fields.Type\n\nconst InfoBase = {\n id: ID,\n // This should be typed as SessionID. It is a plain string only because MCP elicitation\n // temporarily needs the `\"global\"` sentinel owner, which is not a real session. Once\n // elicitations can be attributed to real sessions, revert this to SessionID. Do not rely\n // on non-session owners anywhere else.\n sessionID: Schema.String,\n title: Schema.String,\n metadata: Metadata.pipe(optional),\n}\n\nexport const Info = Schema.Struct({\n ...InfoBase,\n fields: Fields,\n}).annotate({ identifier: \"Form.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nexport const Value = Schema.Union([Schema.String, Schema.Number, Schema.Boolean, Schema.Array(Schema.String)]).annotate(\n {\n identifier: \"Form.Value\",\n },\n)\nexport type Value = typeof Value.Type\n\nexport const Answer = Schema.Record(Schema.String, Value).annotate({ identifier: \"Form.Answer\" })\nexport type Answer = typeof Answer.Type\n\nexport const State = Schema.Union([\n Schema.Struct({ status: Schema.Literal(\"pending\") }),\n Schema.Struct({ status: Schema.Literal(\"answered\"), answer: Answer }),\n Schema.Struct({ status: Schema.Literal(\"cancelled\") }),\n])\n .pipe(Schema.toTaggedUnion(\"status\"))\n .annotate({ identifier: \"Form.State\" })\nexport type State = typeof State.Type\n\nexport const Reply = Schema.Struct({\n answer: Answer,\n}).annotate({ identifier: \"Form.Reply\" })\nexport interface Reply extends Schema.Schema.Type<typeof Reply> {}\n\nconst Created = ephemeral({ type: \"form.created\", schema: { form: Info } })\nconst Replied = ephemeral({ type: \"form.replied\", schema: { id: ID, sessionID: Schema.String, answer: Answer } })\nconst Cancelled = ephemeral({ type: \"form.cancelled\", schema: { id: ID, sessionID: Schema.String } })\n\nexport const Event = { Created, Replied, Cancelled, Definitions: inventory(Created, Replied, Cancelled) }\n",
"export * as Session from \"./session.js\"\n\nimport { Schema } from \"effect\"\nimport { Agent } from \"./agent.js\"\nimport { Location } from \"./location.js\"\nimport { Model } from \"./model.js\"\nimport { Project } from \"./project.js\"\nimport { DateTimeUtcFromMillis, optional, RelativePath } from \"./schema.js\"\nimport { SessionEvent } from \"./session-event.js\"\nimport { SessionID } from \"./session-id.js\"\nimport { SessionMessage } from \"./session-message.js\"\nimport { Money } from \"./money.js\"\nimport { TokenUsage } from \"./token-usage.js\"\nimport { Revert } from \"./session-revert.js\"\n\nexport const ID = SessionID\nexport type ID = SessionID\n\nexport const Event = SessionEvent\n\nexport { Revert }\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n parentID: ID.pipe(optional),\n fork: Schema.Struct({\n sessionID: ID,\n /** Messages before this exclusive boundary are copied into the fork. */\n messageID: SessionMessage.ID.pipe(optional),\n }).pipe(optional),\n projectID: Project.ID,\n agent: Agent.ID.pipe(optional),\n model: Model.Ref.pipe(optional),\n cost: Money.USD,\n tokens: TokenUsage.Info,\n time: Schema.Struct({\n created: DateTimeUtcFromMillis,\n updated: DateTimeUtcFromMillis,\n archived: DateTimeUtcFromMillis.pipe(optional),\n }),\n title: Schema.String,\n location: Location.Ref,\n subpath: RelativePath.pipe(optional),\n revert: Revert.pipe(optional),\n}).annotate({ identifier: \"Session.Info\" })\n\nexport const ListAnchor = Schema.Struct({\n id: ID,\n time: Schema.Finite,\n direction: Schema.Literals([\"previous\", \"next\"]),\n}).annotate({ identifier: \"Session.ListAnchor\" })\nexport interface ListAnchor extends Schema.Schema.Type<typeof ListAnchor> {}\n",
"export * as PromptInput from \"./prompt-input.js\"\n\nimport { Schema } from \"effect\"\nimport { AgentAttachment, PromptMention } from \"./prompt.js\"\nimport { optional, statics } from \"./schema.js\"\n\nexport interface FileAttachment extends Schema.Schema.Type<typeof FileAttachment> {}\nexport const FileAttachment = Schema.Struct({\n uri: Schema.String,\n name: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n mention: PromptMention.pipe(optional),\n})\n .annotate({ identifier: \"PromptInput.FileAttachment\" })\n .pipe(\n statics((schema) => ({\n create: (input: FileAttachment) => schema.make(input),\n })),\n )\n\nexport interface Prompt extends Schema.Schema.Type<typeof Prompt> {}\nexport const Prompt = Schema.Struct({\n text: Schema.String,\n files: Schema.Array(FileAttachment).pipe(optional),\n agents: Schema.Array(AgentAttachment).pipe(optional),\n}).annotate({ identifier: \"PromptInput\" })\n",
"export * as Question from \"./question.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { SessionID } from \"./session-id.js\"\nimport { statics } from \"./schema.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"que\")).pipe(\n Schema.brand(\"QuestionV2.ID\"),\n statics((schema) => {\n const create = () => schema.make(\"que_\" + ascending())\n return {\n create,\n ascending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type ID = typeof ID.Type\n\nexport const Option = Schema.Struct({\n label: Schema.String.annotate({ description: \"Display text (1-5 words, concise)\" }),\n description: Schema.String.annotate({ description: \"Explanation of choice\" }),\n}).annotate({ identifier: \"QuestionV2.Option\" })\nexport interface Option extends Schema.Schema.Type<typeof Option> {}\n\nconst base = {\n question: Schema.String.annotate({ description: \"Complete question\" }),\n header: Schema.String.annotate({ description: \"Very short label (max 30 chars)\" }),\n options: Schema.Array(Option).annotate({ description: \"Available choices\" }),\n multiple: Schema.Boolean.pipe(optional).annotate({ description: \"Allow selecting multiple choices\" }),\n}\n\nexport const Info = Schema.Struct({\n ...base,\n custom: Schema.Boolean.pipe(optional).annotate({\n description: \"Allow typing a custom answer (default: true)\",\n }),\n}).annotate({ identifier: \"QuestionV2.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nexport const Prompt = Schema.Struct(base).annotate({ identifier: \"QuestionV2.Prompt\" })\nexport interface Prompt extends Schema.Schema.Type<typeof Prompt> {}\n\nexport const Tool = Schema.Struct({\n messageID: Schema.String,\n callID: Schema.String,\n}).annotate({ identifier: \"QuestionV2.Tool\" })\nexport interface Tool extends Schema.Schema.Type<typeof Tool> {}\n\nexport const Request = Schema.Struct({\n id: ID,\n sessionID: SessionID,\n questions: Schema.Array(Info).annotate({ description: \"Questions to ask\" }),\n tool: Tool.pipe(optional),\n}).annotate({ identifier: \"QuestionV2.Request\" })\nexport interface Request extends Schema.Schema.Type<typeof Request> {}\n\nexport const Answer = Schema.Array(Schema.String).annotate({ identifier: \"QuestionV2.Answer\" })\nexport type Answer = typeof Answer.Type\n\nexport const Reply = Schema.Struct({\n answers: Schema.Array(Answer).annotate({\n description: \"User answers in order of questions (each answer is an array of selected labels)\",\n }),\n}).annotate({ identifier: \"QuestionV2.Reply\" })\nexport interface Reply extends Schema.Schema.Type<typeof Reply> {}\n\nconst Asked = ephemeral({ type: \"question.v2.asked\", schema: Request.fields })\nconst Replied = ephemeral({\n type: \"question.v2.replied\",\n schema: {\n sessionID: SessionID,\n requestID: ID,\n answers: Schema.Array(Answer),\n },\n})\nconst Rejected = ephemeral({\n type: \"question.v2.rejected\",\n schema: {\n sessionID: SessionID,\n requestID: ID,\n },\n})\nexport const Event = { Asked, Replied, Rejected, Definitions: inventory(Asked, Replied, Rejected) }\n",
"export * as PermissionSaved from \"./permission-saved.js\"\n\nimport { Schema } from \"effect\"\nimport { ascending } from \"./identifier.js\"\nimport { ProjectID } from \"./project-id.js\"\nimport { statics } from \"./schema.js\"\n\nexport const ID = Schema.String.pipe(\n Schema.brand(\"PermissionSaved.ID\"),\n statics((schema) => ({ create: () => schema.make(\"psv_\" + ascending()) })),\n)\nexport type ID = typeof ID.Type\n\nexport const Info = Schema.Struct({\n id: ID,\n projectID: ProjectID,\n action: Schema.String,\n resource: Schema.String,\n}).annotate({ identifier: \"PermissionSaved.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n",
"export * as Pty from \"./pty.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { ascending } from \"./identifier.js\"\nimport { NonNegativeInt, PositiveInt, statics } from \"./schema.js\"\n\nconst IDSchema = Schema.String.check(Schema.isStartsWith(\"pty\")).pipe(Schema.brand(\"PtyID\"))\n\nexport const ID = IDSchema.pipe(\n statics((schema: typeof IDSchema) => {\n const create = () => schema.make(\"pty_\" + ascending())\n return {\n create,\n ascending: (id?: string) => (id === undefined ? create() : schema.make(id)),\n }\n }),\n)\nexport type ID = typeof ID.Type\n\nexport const Info = Schema.Struct({\n id: ID,\n title: Schema.String,\n command: Schema.String,\n args: Schema.Array(Schema.String),\n cwd: Schema.String,\n status: Schema.Literals([\"running\", \"exited\"]),\n pid: NonNegativeInt,\n exitCode: optional(NonNegativeInt),\n}).annotate({ identifier: \"Pty\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nconst Created = ephemeral({ type: \"pty.created\", schema: { info: Info } })\nconst Updated = ephemeral({ type: \"pty.updated\", schema: { info: Info } })\nconst Exited = ephemeral({ type: \"pty.exited\", schema: { id: ID, exitCode: NonNegativeInt } })\nconst Deleted = ephemeral({ type: \"pty.deleted\", schema: { id: ID } })\nexport const Event = { Created, Updated, Exited, Deleted, Definitions: inventory(Created, Updated, Exited, Deleted) }\n\nexport const CreateInput = Schema.Struct({\n command: optional(Schema.String),\n args: optional(Schema.Array(Schema.String)),\n cwd: optional(Schema.String),\n title: optional(Schema.String),\n env: optional(Schema.Record(Schema.String, Schema.String)),\n})\nexport interface CreateInput extends Schema.Schema.Type<typeof CreateInput> {}\n\nexport const UpdateInput = Schema.Struct({\n title: optional(Schema.String),\n size: optional(\n Schema.Struct({\n rows: PositiveInt,\n cols: PositiveInt,\n }),\n ),\n})\nexport interface UpdateInput extends Schema.Schema.Type<typeof UpdateInput> {}\n",
"export * as Reference from \"./reference.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ephemeral, inventory } from \"./event.js\"\nimport { AbsolutePath } from \"./schema.js\"\n\nconst Updated = ephemeral({ type: \"reference.updated\", schema: {} })\nexport const Event = { Updated, Definitions: inventory(Updated) }\n\nexport interface LocalSource extends Schema.Schema.Type<typeof LocalSource> {}\nexport const LocalSource = Schema.Struct({\n type: Schema.Literal(\"local\"),\n path: AbsolutePath,\n description: Schema.String.pipe(optional),\n hidden: Schema.Boolean.pipe(optional),\n}).annotate({ identifier: \"Reference.LocalSource\" })\n\nexport interface GitSource extends Schema.Schema.Type<typeof GitSource> {}\nexport const GitSource = Schema.Struct({\n type: Schema.Literal(\"git\"),\n repository: Schema.String,\n branch: Schema.String.pipe(optional),\n description: Schema.String.pipe(optional),\n hidden: Schema.Boolean.pipe(optional),\n}).annotate({ identifier: \"Reference.GitSource\" })\n\nexport const Source = Schema.Union([LocalSource, GitSource])\n .pipe(Schema.toTaggedUnion(\"type\"))\n .annotate({ identifier: \"Reference.Source\" })\nexport type Source = typeof Source.Type\n\nexport const Info = Schema.Struct({\n name: Schema.String,\n path: AbsolutePath,\n description: Schema.String.pipe(optional),\n hidden: Schema.Boolean.pipe(optional),\n source: Source,\n}).annotate({ identifier: \"Reference.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n",
"export * as ProjectCopy from \"./project-copy.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { ProjectID } from \"./project-id.js\"\nimport { AbsolutePath } from \"./schema.js\"\n\nexport const StrategyID = Schema.Trim.pipe(Schema.check(Schema.isNonEmpty()), Schema.brand(\"ProjectCopy.StrategyID\"))\nexport type StrategyID = typeof StrategyID.Type\n\nexport const CreateInput = Schema.Struct({\n projectID: ProjectID,\n strategy: StrategyID,\n sourceDirectory: AbsolutePath,\n directory: AbsolutePath,\n name: optional(Schema.String),\n}).annotate({ identifier: \"ProjectCopy.CreateInput\" })\nexport interface CreateInput extends Schema.Schema.Type<typeof CreateInput> {}\n\nexport const RemoveInput = Schema.Struct({\n projectID: ProjectID,\n directory: AbsolutePath,\n force: Schema.Boolean,\n}).annotate({ identifier: \"ProjectCopy.RemoveInput\" })\nexport interface RemoveInput extends Schema.Schema.Type<typeof RemoveInput> {}\n\nexport const Copy = Schema.Struct({\n directory: AbsolutePath,\n}).annotate({ identifier: \"ProjectCopy.Copy\" })\nexport interface Copy extends Schema.Schema.Type<typeof Copy> {}\n",
"export * as Catalog from \"./catalog.js\"\n\nimport { ephemeral, inventory } from \"./event.js\"\n\nconst Updated = ephemeral({ type: \"catalog.updated\", schema: {} })\nexport const Event = { Updated, Definitions: inventory(Updated) }\n",
"export * as Mcp from \"./mcp.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { IntegrationID } from \"./integration-id.js\"\n\nconst Connected = Schema.Struct({ status: Schema.Literal(\"connected\") }).annotate({\n identifier: \"Mcp.Status.Connected\",\n})\nconst Pending = Schema.Struct({ status: Schema.Literal(\"pending\") }).annotate({\n identifier: \"Mcp.Status.Pending\",\n})\nconst Disabled = Schema.Struct({ status: Schema.Literal(\"disabled\") }).annotate({\n identifier: \"Mcp.Status.Disabled\",\n})\nconst Failed = Schema.Struct({ status: Schema.Literal(\"failed\"), error: Schema.String }).annotate({\n identifier: \"Mcp.Status.Failed\",\n})\nconst NeedsAuth = Schema.Struct({ status: Schema.Literal(\"needs_auth\") }).annotate({\n identifier: \"Mcp.Status.NeedsAuth\",\n})\nconst NeedsClientRegistration = Schema.Struct({\n status: Schema.Literal(\"needs_client_registration\"),\n error: Schema.String,\n}).annotate({ identifier: \"Mcp.Status.NeedsClientRegistration\" })\n\nexport type Status = typeof Status.Type\nexport const Status = Schema.Union([Connected, Pending, Disabled, Failed, NeedsAuth, NeedsClientRegistration]).pipe(\n Schema.toTaggedUnion(\"status\"),\n)\n\nexport interface Server extends Schema.Schema.Type<typeof Server> {}\nexport const Server = Schema.Struct({\n name: Schema.String,\n status: Status,\n // Set for remote servers registered as OAuth integrations; lets clients act on the right integration\n // without matching by name, which could collide with provider or plugin integrations.\n integrationID: optional(IntegrationID),\n}).annotate({ identifier: \"Mcp.Server\" })\n\nexport interface Resource extends Schema.Schema.Type<typeof Resource> {}\nexport const Resource = Schema.Struct({\n server: Schema.String,\n name: Schema.String,\n uri: Schema.String,\n description: optional(Schema.String),\n mimeType: optional(Schema.String),\n}).annotate({ identifier: \"Mcp.Resource\" })\n\nexport interface ResourceTemplate extends Schema.Schema.Type<typeof ResourceTemplate> {}\nexport const ResourceTemplate = Schema.Struct({\n server: Schema.String,\n name: Schema.String,\n uriTemplate: Schema.String,\n description: optional(Schema.String),\n mimeType: optional(Schema.String),\n}).annotate({ identifier: \"Mcp.ResourceTemplate\" })\n\nexport interface ResourceCatalog extends Schema.Schema.Type<typeof ResourceCatalog> {}\nexport const ResourceCatalog = Schema.Struct({\n resources: Schema.Array(Resource),\n templates: Schema.Array(ResourceTemplate),\n}).annotate({ identifier: \"Mcp.ResourceCatalog\" })\n\nexport const ResourceContentPart = Schema.Union([\n Schema.Struct({\n type: Schema.Literal(\"text\"),\n uri: Schema.String,\n text: Schema.String,\n mimeType: optional(Schema.String),\n }),\n Schema.Struct({\n type: Schema.Literal(\"blob\"),\n uri: Schema.String,\n blob: Schema.String,\n mimeType: optional(Schema.String),\n }),\n]).pipe(Schema.toTaggedUnion(\"type\"), Schema.annotate({ identifier: \"Mcp.ResourceContentPart\" }))\nexport type ResourceContentPart = typeof ResourceContentPart.Type\n\nexport interface ResourceContent extends Schema.Schema.Type<typeof ResourceContent> {}\nexport const ResourceContent = Schema.Struct({\n server: Schema.String,\n uri: Schema.String,\n contents: Schema.Array(ResourceContentPart),\n}).annotate({ identifier: \"Mcp.ResourceContent\" })\n",
"export * as McpEvent from \"./mcp-event.js\"\n\nimport { Schema } from \"effect\"\nimport { Event } from \"./event.js\"\n\nexport const ToolsChanged = Event.ephemeral({\n type: \"mcp.tools.changed\",\n schema: {\n server: Schema.String,\n },\n})\n\nexport const ResourcesChanged = Event.ephemeral({\n type: \"mcp.resources.changed\",\n schema: {\n server: Schema.String,\n },\n})\n\nexport const BrowserOpenFailed = Event.ephemeral({\n type: \"mcp.browser.open.failed\",\n schema: {\n mcpName: Schema.String,\n url: Schema.String,\n },\n})\n\n// Emitted whenever a server's connection status settles (connected, failed, needs_auth, closed) so\n// observers can refresh status without polling.\nexport const StatusChanged = Event.ephemeral({\n type: \"mcp.status.changed\",\n schema: {\n server: Schema.String,\n },\n})\n\nexport const Definitions = Event.inventory(ToolsChanged, ResourcesChanged, StatusChanged)\n",
"export * as WorkspaceEvent from \"./workspace-event.js\"\n\nimport { Schema } from \"effect\"\nimport { Event } from \"./event.js\"\nimport { WorkspaceID } from \"./workspace-id.js\"\n\nexport const ConnectionStatus = Schema.Struct({\n workspaceID: WorkspaceID,\n status: Schema.Literals([\"connected\", \"connecting\", \"disconnected\", \"error\"]),\n}).annotate({ identifier: \"WorkspaceEvent.ConnectionStatus\" })\nexport interface ConnectionStatus extends Schema.Schema.Type<typeof ConnectionStatus> {}\n\nexport const Ready = Event.ephemeral({\n type: \"workspace.ready\",\n schema: {\n name: Schema.String,\n },\n})\n\nexport const Failed = Event.ephemeral({\n type: \"workspace.failed\",\n schema: {\n message: Schema.String,\n },\n})\n\nexport const Status = Event.ephemeral({\n type: \"workspace.status\",\n schema: ConnectionStatus.fields,\n})\n\nexport const Definitions = Event.inventory(Ready, Failed, Status)\n",
"export * as Workspace from \"./workspace.js\"\n\nimport { WorkspaceEvent } from \"./workspace-event.js\"\nimport { WorkspaceID } from \"./workspace-id.js\"\n\nexport const ID = WorkspaceID\nexport type ID = WorkspaceID\n\nexport const Event = WorkspaceEvent\n",
"export * as Plugin from \"./plugin.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"./event.js\"\n\nexport const ID = Schema.String.pipe(Schema.brand(\"Plugin.ID\"))\nexport type ID = typeof ID.Type\n\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\nexport const Info = Schema.Struct({\n id: ID,\n}).annotate({ identifier: \"Plugin.Info\" })\n\nconst Added = ephemeral({\n type: \"plugin.added\",\n schema: { id: ID },\n})\nconst Updated = ephemeral({\n type: \"plugin.updated\",\n schema: {},\n})\nexport const Event = { Added, Updated, Definitions: inventory(Added, Updated) }\n",
"export * as ProjectDirectories from \"./project-directories.js\"\n\nimport { ephemeral, inventory } from \"./event.js\"\nimport { Project } from \"./project.js\"\n\nconst Updated = ephemeral({\n type: \"project.directories.updated\",\n schema: { projectID: Project.ID },\n})\nexport const Event = { Updated, Definitions: inventory(Updated) }\n",
"export * as InstructionEntry from \"./instruction-entry.js\"\n\nimport { Schema } from \"effect\"\n\n/**\n * Slash-free client-facing key for one API-managed instruction entry. The server\n * derives the namespaced Instructions key as `api/<key>`, keeping the\n * `api/*` namespace enforced by construction.\n */\nexport const Key = Schema.String.check(Schema.isPattern(/^[a-z0-9][a-z0-9._-]*$/)).annotate({\n identifier: \"InstructionEntry.Key\",\n description: \"Instruction entry key (lowercase alphanumerics plus . _ -)\",\n})\nexport type Key = typeof Key.Type\n\nexport const Info = Schema.Struct({\n key: Key,\n value: Schema.Json.annotate({ description: \"JSON value attached to the session's instructions\" }),\n}).annotate({ identifier: \"InstructionEntry.Info\" })\nexport interface Info extends Schema.Schema.Type<typeof Info> {}\n\nexport const MaxValueBytes = 8 * 1024\n\nexport class ValueTooLargeError extends Schema.TaggedErrorClass<ValueTooLargeError>()(\n \"InstructionEntryValueTooLargeError\",\n {\n actualBytes: Schema.Int,\n maxBytes: Schema.Int,\n message: Schema.String,\n },\n { httpApiStatus: 413 },\n) {}\n",
"export * as Vcs from \"./vcs.js\"\n\nimport { Schema } from \"effect\"\nimport { NonNegativeInt } from \"./schema.js\"\n\nexport const Mode = Schema.Literals([\"working\", \"branch\"]).annotate({ identifier: \"Vcs.Mode\" })\nexport type Mode = typeof Mode.Type\n\nexport const FileStatus = Schema.Struct({\n file: Schema.String,\n additions: NonNegativeInt,\n deletions: NonNegativeInt,\n status: Schema.Literals([\"added\", \"deleted\", \"modified\"]),\n}).annotate({ identifier: \"Vcs.FileStatus\" })\nexport interface FileStatus extends Schema.Schema.Type<typeof FileStatus> {}\n",
"export * as ModelsDev from \"./models-dev.js\"\n\nimport { ephemeral, inventory } from \"./event.js\"\n\nconst Refreshed = ephemeral({\n type: \"models-dev.refreshed\",\n schema: {},\n})\nexport const Event = { Refreshed, Definitions: inventory(Refreshed) }\n",
"export * as FileSystemV1 from \"./filesystem.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"../event.js\"\n\nconst Edited = ephemeral({\n type: \"file.edited\",\n schema: { file: Schema.String },\n})\n\nexport const Event = { Edited, Definitions: inventory(Edited) }\n",
"export * as InstallationEvent from \"./installation-event.js\"\n\nimport { Schema } from \"effect\"\nimport { Event } from \"./event.js\"\n\nexport const Updated = Event.ephemeral({\n type: \"installation.updated\",\n schema: {\n version: Schema.String,\n },\n})\n\nexport const UpdateAvailable = Event.ephemeral({\n type: \"installation.update-available\",\n schema: {\n version: Schema.String,\n },\n})\n\nexport const Definitions = Event.inventory(Updated, UpdateAvailable)\n",
"export * as LegacyEvent from \"./legacy-event.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"../event.js\"\nimport { SessionID } from \"../session-id.js\"\nimport { SessionV1 } from \"./session.js\"\n\nexport const CommandExecuted = ephemeral({\n type: \"command.executed\",\n schema: {\n name: Schema.String,\n sessionID: SessionID,\n arguments: Schema.String,\n messageID: SessionV1.MessageID,\n },\n})\n\nexport const Definitions = inventory(CommandExecuted)\n",
"export * as LspEvent from \"./lsp-event.js\"\n\nimport { Event } from \"./event.js\"\n\nexport const Updated = Event.ephemeral({ type: \"lsp.updated\", schema: {} })\n\nexport const Definitions = Event.inventory(Updated)\n",
"export * as QuestionV1 from \"./question.js\"\n\nimport { Schema } from \"effect\"\nimport { ephemeral, inventory } from \"../event.js\"\nimport { ascending } from \"../identifier.js\"\nimport { statics } from \"../schema.js\"\nimport { SessionID } from \"../session-id.js\"\nimport { SessionV1 } from \"./session.js\"\n\nexport const ID = Schema.String.check(Schema.isStartsWith(\"que\")).pipe(\n Schema.brand(\"QuestionID\"),\n statics((schema) => ({ ascending: (id?: string) => schema.make(id ?? \"que_\" + ascending()) })),\n)\n\nexport const Option = Schema.Struct({\n label: Schema.String.annotate({ description: \"Display text (1-5 words, concise)\" }),\n description: Schema.String.annotate({ description: \"Explanation of choice\" }),\n}).annotate({ identifier: \"QuestionOption\" })\n\nconst base = {\n question: Schema.String.annotate({ description: \"Complete question\" }),\n header: Schema.String.annotate({ description: \"Very short label (max 30 chars)\" }),\n options: Schema.Array(Option).annotate({ description: \"Available choices\" }),\n multiple: Schema.optional(Schema.Boolean).annotate({ description: \"Allow selecting multiple choices\" }),\n}\n\nexport const Info = Schema.Struct({\n ...base,\n custom: Schema.optional(Schema.Boolean).annotate({ description: \"Allow typing a custom answer (default: true)\" }),\n}).annotate({ identifier: \"QuestionInfo\" })\nexport const Prompt = Schema.Struct(base).annotate({ identifier: \"QuestionPrompt\" })\nexport const Tool = Schema.Struct({ messageID: SessionV1.MessageID, callID: Schema.String }).annotate({\n identifier: \"QuestionTool\",\n})\nexport const Request = Schema.Struct({\n id: ID,\n sessionID: SessionID,\n questions: Schema.Array(Info).annotate({ description: \"Questions to ask\" }),\n tool: Schema.optional(Tool),\n}).annotate({ identifier: \"QuestionRequest\" })\nexport const Answer = Schema.Array(Schema.String).annotate({ identifier: \"QuestionAnswer\" })\nexport const Reply = Schema.Struct({\n answers: Schema.Array(Answer).annotate({\n description: \"User answers in order of questions (each answer is an array of selected labels)\",\n }),\n}).annotate({ identifier: \"QuestionReply\" })\nexport const Replied = Schema.Struct({\n sessionID: SessionID,\n requestID: ID,\n answers: Schema.Array(Answer),\n}).annotate({\n identifier: \"QuestionReplied\",\n})\nexport const Rejected = Schema.Struct({ sessionID: SessionID, requestID: ID }).annotate({\n identifier: \"QuestionRejected\",\n})\n\nconst Asked = ephemeral({ type: \"question.asked\", schema: Request.fields })\nconst RepliedEvent = ephemeral({ type: \"question.replied\", schema: Replied.fields })\nconst RejectedEvent = ephemeral({ type: \"question.rejected\", schema: Rejected.fields })\nexport const Event = {\n Asked,\n Replied: RepliedEvent,\n Rejected: RejectedEvent,\n Definitions: inventory(Asked, RepliedEvent, RejectedEvent),\n}\n",
"export * as ServerEvent from \"./server-event.js\"\n\nimport { Event } from \"./event.js\"\n\nexport const Connected = Event.ephemeral({ type: \"server.connected\", schema: {} })\nexport const Disposed = Event.ephemeral({ type: \"global.disposed\", schema: {} })\n\nexport const Definitions = Event.inventory(Connected, Disposed)\n",
"export * as SessionCompactionEvent from \"./session-compaction-event.js\"\n\nimport { Event } from \"./event.js\"\nimport { SessionID } from \"./session-id.js\"\n\nexport const Compacted = Event.ephemeral({\n type: \"session.compacted\",\n schema: {\n sessionID: SessionID,\n },\n})\n\nexport const Definitions = Event.inventory(Compacted)\n",
"export * as SessionStatusEvent from \"./session-status-event.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { Event } from \"./event.js\"\nimport { NonNegativeInt } from \"./schema.js\"\nimport { SessionID } from \"./session-id.js\"\n\nexport const Info = Schema.Union([\n Schema.Struct({\n type: Schema.Literal(\"idle\"),\n }),\n Schema.Struct({\n type: Schema.Literal(\"retry\"),\n attempt: NonNegativeInt,\n message: Schema.String,\n action: optional(\n Schema.Struct({\n reason: Schema.String,\n provider: Schema.String,\n title: Schema.String,\n message: Schema.String,\n label: Schema.String,\n link: optional(Schema.String),\n }),\n ),\n next: NonNegativeInt,\n }),\n Schema.Struct({\n type: Schema.Literal(\"busy\"),\n }),\n]).annotate({ identifier: \"SessionStatus\" })\nexport type Info = Schema.Schema.Type<typeof Info>\n\nexport const Status = Event.ephemeral({\n type: \"session.status\",\n schema: {\n sessionID: SessionID,\n status: Info,\n },\n})\n\n// deprecated\nexport const Idle = Event.ephemeral({\n type: \"session.idle\",\n schema: {\n sessionID: SessionID,\n },\n})\n\nexport const Definitions = Event.inventory(Status, Idle)\n",
"export * as TuiEvent from \"./tui-event.js\"\n\nimport { Effect, Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { Event } from \"./event.js\"\nimport { PositiveInt } from \"./schema.js\"\nimport { SessionID } from \"./session-id.js\"\n\nconst DEFAULT_TOAST_DURATION = 5000\n\nexport const PromptAppend = Event.ephemeral({ type: \"tui.prompt.append\", schema: { text: Schema.String } })\n\nexport const CommandExecute = Event.ephemeral({\n type: \"tui.command.execute\",\n schema: {\n command: Schema.Union([\n Schema.Literals([\n \"session.list\",\n \"session.new\",\n \"session.share\",\n \"session.interrupt\",\n \"session.background\",\n \"session.compact\",\n \"session.page.up\",\n \"session.page.down\",\n \"session.line.up\",\n \"session.line.down\",\n \"session.half.page.up\",\n \"session.half.page.down\",\n \"session.first\",\n \"session.last\",\n \"prompt.clear\",\n \"prompt.submit\",\n \"agent.cycle\",\n ]),\n Schema.String,\n ]),\n },\n})\n\nexport const ToastShow = Event.ephemeral({\n type: \"tui.toast.show\",\n schema: {\n title: optional(Schema.String),\n message: Schema.String,\n variant: Schema.Literals([\"info\", \"success\", \"warning\", \"error\"]),\n duration: PositiveInt.pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_TOAST_DURATION))).annotate({\n description: \"Duration in milliseconds\",\n }),\n },\n})\n\nexport const SessionSelect = Event.ephemeral({\n type: \"tui.session.select\",\n schema: {\n sessionID: SessionID.annotate({ description: \"Session ID to navigate to\" }),\n },\n})\n\nexport const Definitions = Event.inventory(PromptAppend, CommandExecute, ToastShow, SessionSelect)\n",
"export * as VcsEvent from \"./vcs-event.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { Event } from \"./event.js\"\n\nexport const BranchUpdated = Event.ephemeral({\n type: \"vcs.branch.updated\",\n schema: {\n branch: optional(Schema.String),\n },\n})\n\nexport const Definitions = Event.inventory(BranchUpdated)\n",
"export * as WorktreeEvent from \"./worktree-event.js\"\n\nimport { Schema } from \"effect\"\nimport { optional } from \"./schema.js\"\nimport { Event } from \"./event.js\"\n\nexport const Ready = Event.ephemeral({\n type: \"worktree.ready\",\n schema: {\n name: Schema.String,\n branch: optional(Schema.String),\n },\n})\n\nexport const Failed = Event.ephemeral({\n type: \"worktree.failed\",\n schema: {\n message: Schema.String,\n },\n})\n\nexport const Definitions = Event.inventory(Ready, Failed)\n",
"export * as EventManifest from \"./event-manifest.js\"\n\nimport { Schema } from \"effect\"\nimport { Agent } from \"./agent.js\"\nimport { Catalog } from \"./catalog.js\"\nimport { Command } from \"./command.js\"\nimport { Config } from \"./config.js\"\nimport { Durable } from \"./durable-event-manifest.js\"\nimport { Event } from \"./event.js\"\nimport { FileSystem } from \"./filesystem.js\"\nimport { FileSystemV1 } from \"./filesystem-v1.js\"\nimport { Form } from \"./form.js\"\nimport { InstallationEvent } from \"./installation-event.js\"\nimport { Integration } from \"./integration.js\"\nimport { LegacyEvent } from \"./legacy-event.js\"\nimport { LspEvent } from \"./lsp-event.js\"\nimport { McpEvent } from \"./mcp-event.js\"\nimport { ModelsDev } from \"./models-dev.js\"\nimport { Permission } from \"./permission.js\"\nimport { PermissionV1 } from \"./permission-v1.js\"\nimport { Plugin } from \"./plugin.js\"\nimport { Project } from \"./project.js\"\nimport { ProjectDirectories } from \"./project-directories.js\"\nimport { Pty } from \"./pty.js\"\nimport { Question } from \"./question.js\"\nimport { QuestionV1 } from \"./question-v1.js\"\nimport { Reference } from \"./reference.js\"\nimport { ServerEvent } from \"./server-event.js\"\nimport { Shell } from \"./shell.js\"\nimport { Skill } from \"./skill.js\"\nimport { SessionCompactionEvent } from \"./session-compaction-event.js\"\nimport { SessionEvent } from \"./session-event.js\"\nimport { SessionStatusEvent } from \"./session-status-event.js\"\nimport { SessionV1 } from \"./session-v1.js\"\nimport { TuiEvent } from \"./tui-event.js\"\nimport { VcsEvent } from \"./vcs-event.js\"\nimport { WorkspaceEvent } from \"./workspace-event.js\"\nimport { WorktreeEvent } from \"./worktree-event.js\"\n\nconst sessionV1DurableDefinitions = SessionV1.Event.Definitions.filter(\n (definition) => definition.durability === \"durable\",\n)\nconst sessionV1LiveDefinitions = SessionV1.Event.Definitions.filter(\n (definition) => definition.durability === \"ephemeral\",\n)\n\nconst coreDefinitions = Event.inventory(...sessionV1DurableDefinitions, ...SessionEvent.Definitions)\n\nconst foundationDefinitions = Event.inventory(\n ...ModelsDev.Event.Definitions,\n ...Integration.Event.Definitions,\n ...Catalog.Event.Definitions,\n ...Agent.Event.Definitions,\n ...coreDefinitions,\n)\n\nconst featureDefinitions = Event.inventory(\n ...FileSystem.Event.Definitions,\n ...Reference.Event.Definitions,\n ...Permission.Event.Definitions,\n ...Plugin.Event.Definitions,\n ...ProjectDirectories.Event.Definitions,\n ...Command.Event.Definitions,\n ...Config.Event.Definitions,\n ...Skill.Event.Definitions,\n ...Pty.Event.Definitions,\n ...Shell.Event.Definitions,\n ...Question.Event.Definitions,\n ...Form.Event.Definitions,\n)\n\nexport const ServerDefinitions = Event.inventory(\n ...foundationDefinitions,\n ...featureDefinitions,\n // Current events the TUI consumes from the public stream.\n ...SessionStatusEvent.Definitions,\n ...TuiEvent.Definitions,\n ...InstallationEvent.Definitions,\n ...VcsEvent.Definitions,\n McpEvent.StatusChanged,\n McpEvent.ResourcesChanged,\n // Shared transitional: V1 contracts the current TUI still consumes during\n // the migration (permission.asked/replied, question.asked, session.error).\n // Remove when the TUI moves to the current permission/question surfaces.\n ...PermissionV1.Event.Definitions,\n ...QuestionV1.Event.Definitions,\n SessionV1.Error,\n)\nexport const Server = Event.latest(ServerDefinitions)\nexport type ServerEvent = Schema.Schema.Type<(typeof ServerDefinitions)[number]>\nexport const isServer = (event: { readonly type: string }): event is ServerEvent => Server.has(event.type)\n\nexport const Definitions = Event.inventory(\n ...foundationDefinitions,\n ...sessionV1LiveDefinitions,\n ...InstallationEvent.Definitions,\n ...featureDefinitions,\n ...LspEvent.Definitions,\n ...PermissionV1.Event.Definitions,\n ...TuiEvent.Definitions,\n ...McpEvent.Definitions,\n ...LegacyEvent.Definitions,\n ...FileSystemV1.Event.Definitions,\n ...Project.Event.Definitions,\n ...SessionStatusEvent.Definitions,\n ...QuestionV1.Event.Definitions,\n ...SessionCompactionEvent.Definitions,\n ...VcsEvent.Definitions,\n ...WorkspaceEvent.Definitions,\n ...WorktreeEvent.Definitions,\n ...ServerEvent.Definitions,\n)\nexport const Latest = Event.latest(Definitions)\nexport { Durable }\n"
],
"mappings": "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",
"debugId": "529DA5ACB352C35E64756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+core@0.4.3+2240c214a0f33214/node_modules/@opentui/core/testing.js"],
"sourcesContent": [
"import {\n ANSI,\n CliRenderer\n} from \"./index-xt9f071j.js\";\nimport {\n SystemClock,\n TreeSitterClient\n} from \"./index-d5xqskty.js\";\n\n// src/testing/mock-keys.ts\nimport { Buffer as Buffer2 } from \"node:buffer\";\nfunction pasteBytes(text) {\n return Uint8Array.from(Buffer2.from(text));\n}\nvar KeyCodes = {\n RETURN: \"\\r\",\n LINEFEED: `\n`,\n TAB: \"\\t\",\n BACKSPACE: \"\\b\",\n DELETE: \"\\x1B[3~\",\n HOME: \"\\x1B[H\",\n END: \"\\x1B[F\",\n ESCAPE: \"\\x1B\",\n ARROW_UP: \"\\x1B[A\",\n ARROW_DOWN: \"\\x1B[B\",\n ARROW_RIGHT: \"\\x1B[C\",\n ARROW_LEFT: \"\\x1B[D\",\n F1: \"\\x1BOP\",\n F2: \"\\x1BOQ\",\n F3: \"\\x1BOR\",\n F4: \"\\x1BOS\",\n F5: \"\\x1B[15~\",\n F6: \"\\x1B[17~\",\n F7: \"\\x1B[18~\",\n F8: \"\\x1B[19~\",\n F9: \"\\x1B[20~\",\n F10: \"\\x1B[21~\",\n F11: \"\\x1B[23~\",\n F12: \"\\x1B[24~\"\n};\nvar kittyKeyCodeMap = {\n escape: 27,\n tab: 9,\n return: 13,\n backspace: 127,\n insert: 57348,\n delete: 57349,\n left: 57350,\n right: 57351,\n up: 57352,\n down: 57353,\n pageup: 57354,\n pagedown: 57355,\n home: 57356,\n end: 57357,\n f1: 57364,\n f2: 57365,\n f3: 57366,\n f4: 57367,\n f5: 57368,\n f6: 57369,\n f7: 57370,\n f8: 57371,\n f9: 57372,\n f10: 57373,\n f11: 57374,\n f12: 57375\n};\nfunction encodeKittySequence(codepoint, modifiers) {\n let modMask = 0;\n if (modifiers?.shift)\n modMask |= 1;\n if (modifiers?.meta)\n modMask |= 2;\n if (modifiers?.ctrl)\n modMask |= 4;\n if (modifiers?.super)\n modMask |= 8;\n if (modifiers?.hyper)\n modMask |= 16;\n if (modMask === 0) {\n return `\\x1B[${codepoint}u`;\n } else {\n return `\\x1B[${codepoint};${modMask + 1}u`;\n }\n}\nfunction encodeModifyOtherKeysSequence(charCode, modifiers) {\n let modMask = 0;\n if (modifiers?.shift)\n modMask |= 1;\n if (modifiers?.meta)\n modMask |= 2;\n if (modifiers?.ctrl)\n modMask |= 4;\n if (modifiers?.super)\n modMask |= 8;\n if (modifiers?.hyper)\n modMask |= 16;\n if (modMask === 0) {\n return String.fromCharCode(charCode);\n }\n return `\\x1B[27;${modMask + 1};${charCode}~`;\n}\nfunction resolveKeyInput(key) {\n let keyValue;\n let keyName;\n if (typeof key === \"string\") {\n if (key in KeyCodes) {\n keyValue = KeyCodes[key];\n keyName = key.toLowerCase();\n } else {\n keyValue = key;\n keyName = undefined;\n }\n } else {\n keyValue = KeyCodes[key];\n if (!keyValue) {\n throw new Error(`Unknown key: ${key}`);\n }\n keyName = String(key).toLowerCase();\n }\n return { keyValue, keyName };\n}\nfunction createMockKeys(renderer, options) {\n const useKittyKeyboard = options?.kittyKeyboard ?? false;\n const useOtherModifiersMode = options?.otherModifiersMode ?? false;\n const effectiveOtherModifiersMode = useOtherModifiersMode && !useKittyKeyboard;\n const pressKeys = async (keys, delayMs = 0) => {\n for (const key of keys) {\n const { keyValue: keyCode } = resolveKeyInput(key);\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n };\n const pressKey = (key, modifiers) => {\n if (useKittyKeyboard) {\n let { keyValue, keyName } = resolveKeyInput(key);\n const valueToKeyNameMap = {\n \"\\b\": \"backspace\",\n \"\\r\": \"return\",\n \"\\n\": \"return\",\n \"\\t\": \"tab\",\n \"\\x1B\": \"escape\",\n \"\\x1B[A\": \"up\",\n \"\\x1B[B\": \"down\",\n \"\\x1B[C\": \"right\",\n \"\\x1B[D\": \"left\",\n \"\\x1B[H\": \"home\",\n \"\\x1B[F\": \"end\",\n \"\\x1B[3~\": \"delete\"\n };\n if (keyValue && valueToKeyNameMap[keyValue]) {\n keyName = valueToKeyNameMap[keyValue];\n }\n if (keyName && keyName.startsWith(\"arrow_\")) {\n keyName = keyName.substring(6);\n }\n if (keyName && kittyKeyCodeMap[keyName]) {\n const kittyCode = kittyKeyCodeMap[keyName];\n const sequence = encodeKittySequence(kittyCode, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n if (keyValue && keyValue.length === 1 && !keyValue.startsWith(\"\\x1B\")) {\n const codepoint = keyValue.codePointAt(0);\n if (codepoint) {\n const sequence = encodeKittySequence(codepoint, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n }\n }\n if (effectiveOtherModifiersMode && modifiers) {\n let { keyValue, keyName } = resolveKeyInput(key);\n const valueToCharCodeMap = {\n \"\\b\": 127,\n \"\\r\": 13,\n \"\\n\": 13,\n \"\\t\": 9,\n \"\\x1B\": 27,\n \" \": 32\n };\n let charCode;\n if (keyValue && valueToCharCodeMap[keyValue] !== undefined) {\n charCode = valueToCharCodeMap[keyValue];\n } else if (keyValue && keyValue.length === 1 && !keyValue.startsWith(\"\\x1B\")) {\n charCode = keyValue.charCodeAt(0);\n }\n if (charCode !== undefined) {\n const sequence = encodeModifyOtherKeysSequence(charCode, modifiers);\n renderer.stdin.emit(\"data\", Buffer2.from(sequence));\n return;\n }\n }\n let keyCode = resolveKeyInput(key).keyValue;\n if (modifiers) {\n if (keyCode.startsWith(\"\\x1B[\") && keyCode.length > 2) {\n const modifier = 1 + (modifiers.shift ? 1 : 0) + (modifiers.meta ? 2 : 0) + (modifiers.ctrl ? 4 : 0) + (modifiers.super ? 8 : 0) + (modifiers.hyper ? 16 : 0);\n if (modifier > 1) {\n const tildeMatch = keyCode.match(/^\\x1b\\[(\\d+)~$/);\n if (tildeMatch) {\n keyCode = `\\x1B[${tildeMatch[1]};${modifier}~`;\n } else {\n const ending = keyCode.slice(-1);\n keyCode = `\\x1B[1;${modifier}${ending}`;\n }\n }\n } else if (keyCode.length === 1) {\n let char = keyCode;\n if (char === \"\\t\" && modifiers.shift) {\n keyCode = modifiers.meta ? \"\\x1B\\x1B[Z\" : \"\\x1B[Z\";\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n return;\n }\n if (char === \"\\b\" && (modifiers.ctrl || modifiers.super || modifiers.hyper)) {\n const modifier = 1 + (modifiers.shift ? 1 : 0) + (modifiers.meta ? 2 : 0) + (modifiers.ctrl ? 4 : 0) + (modifiers.super ? 8 : 0) + (modifiers.hyper ? 16 : 0);\n keyCode = `\\x1B[27;${modifier};127~`;\n } else if (modifiers.ctrl) {\n if (char >= \"a\" && char <= \"z\") {\n keyCode = String.fromCharCode(char.charCodeAt(0) - 96);\n } else if (char >= \"A\" && char <= \"Z\") {\n keyCode = String.fromCharCode(char.charCodeAt(0) - 64);\n } else {\n const specialCtrlMap = {\n \"[\": \"\\x1B\",\n \"\\\\\": \"\\x1C\",\n \"]\": \"\\x1D\",\n \"^\": \"\\x1E\",\n _: \"\\x1F\",\n \"?\": \"\",\n \"/\": \"\\x1F\",\n \"-\": \"\\x1F\",\n \".\": \"\\x1E\",\n \",\": \"\\x1C\",\n \"@\": \"\\x00\",\n \" \": \"\\x00\"\n };\n if (char in specialCtrlMap) {\n keyCode = specialCtrlMap[char];\n }\n }\n if (modifiers.meta) {\n keyCode = `\\x1B${keyCode}`;\n }\n } else {\n if (modifiers.shift && char >= \"a\" && char <= \"z\") {\n char = char.toUpperCase();\n }\n if (modifiers.meta) {\n keyCode = `\\x1B${char}`;\n } else {\n keyCode = char;\n }\n }\n } else if (modifiers.meta && !keyCode.startsWith(\"\\x1B\")) {\n keyCode = `\\x1B${keyCode}`;\n }\n }\n renderer.stdin.emit(\"data\", Buffer2.from(keyCode));\n };\n const typeText = async (text, delayMs = 0) => {\n const keys = text.split(\"\");\n await pressKeys(keys, delayMs);\n };\n const pressReturn = (modifiers) => {\n pressKey(KeyCodes.RETURN, modifiers);\n };\n const pressEscape = (modifiers) => {\n pressKey(KeyCodes.ESCAPE, modifiers);\n };\n const pressTab = (modifiers) => {\n pressKey(KeyCodes.TAB, modifiers);\n };\n const pressBackspace = (modifiers) => {\n pressKey(KeyCodes.BACKSPACE, modifiers);\n };\n const pressArrow = (direction, modifiers) => {\n const keyMap = {\n up: KeyCodes.ARROW_UP,\n down: KeyCodes.ARROW_DOWN,\n left: KeyCodes.ARROW_LEFT,\n right: KeyCodes.ARROW_RIGHT\n };\n pressKey(keyMap[direction], modifiers);\n };\n const pressCtrlC = () => {\n pressKey(\"c\", { ctrl: true });\n };\n const pasteBracketedText = (text) => {\n return pressKeys([ANSI.bracketedPasteStart, text, ANSI.bracketedPasteEnd]);\n };\n return {\n pressKeys,\n pressKey,\n typeText,\n pressEnter: pressReturn,\n pressEscape,\n pressTab,\n pressBackspace,\n pressArrow,\n pressCtrlC,\n pasteBracketedText\n };\n}\n\n// src/testing/mock-mouse.ts\nvar MouseButtons = {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n WHEEL_UP: 64,\n WHEEL_DOWN: 65,\n WHEEL_LEFT: 66,\n WHEEL_RIGHT: 67\n};\nfunction createMockMouse(renderer) {\n let currentPosition = { x: 0, y: 0 };\n let buttonsPressed = new Set;\n const generateMouseEvent = (type, x, y, button = MouseButtons.LEFT, modifiers = {}) => {\n let buttonCode = button;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n switch (type) {\n case \"move\":\n buttonCode = 32 | 3;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n break;\n case \"drag\":\n buttonCode = (buttonsPressed.size > 0 ? Array.from(buttonsPressed)[0] : button) | 32;\n if (modifiers.shift)\n buttonCode |= 4;\n if (modifiers.alt)\n buttonCode |= 8;\n if (modifiers.ctrl)\n buttonCode |= 16;\n break;\n case \"scroll\":\n break;\n }\n const ansiX = x + 1;\n const ansiY = y + 1;\n let pressRelease = \"M\";\n if (type === \"up\" || type === \"move\" || type === \"drag\") {\n pressRelease = \"m\";\n }\n return `\\x1B[<${buttonCode};${ansiX};${ansiY}${pressRelease}`;\n };\n const emitMouseEvent = async (type, x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n const eventSequence = generateMouseEvent(type, x, y, button, modifiers);\n renderer.stdin.emit(\"data\", Buffer.from(eventSequence));\n currentPosition = { x, y };\n if (type === \"down\" && button < 64) {\n buttonsPressed.add(button);\n } else if (type === \"up\") {\n buttonsPressed.delete(button);\n }\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n };\n const moveTo = async (x, y, options = {}) => {\n const { button = MouseButtons.LEFT, delayMs = 0, modifiers = {} } = options;\n if (buttonsPressed.size > 0) {\n await emitMouseEvent(\"drag\", x, y, Array.from(buttonsPressed)[0], { modifiers, delayMs });\n } else {\n await emitMouseEvent(\"move\", x, y, button, { modifiers, delayMs });\n }\n currentPosition = { x, y };\n };\n const click = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await emitMouseEvent(\"down\", x, y, button, { modifiers, delayMs });\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n await emitMouseEvent(\"up\", x, y, button, { modifiers, delayMs });\n };\n const doubleClick = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await click(x, y, button, { modifiers, delayMs });\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n await click(x, y, button, { modifiers, delayMs });\n };\n const pressDown = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n await emitMouseEvent(\"down\", x, y, button, { modifiers, delayMs });\n };\n const release = async (x, y, button = MouseButtons.LEFT, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n await emitMouseEvent(\"up\", x, y, button, { modifiers, delayMs });\n };\n const drag = async (startX, startY, endX, endY, button = MouseButtons.LEFT, options = {}) => {\n const { delayMs = 10, modifiers = {} } = options;\n await pressDown(startX, startY, button, { modifiers });\n const steps = 5;\n const dx = (endX - startX) / steps;\n const dy = (endY - startY) / steps;\n for (let i = 1;i <= steps; i++) {\n const currentX = Math.round(startX + dx * i);\n const currentY = Math.round(startY + dy * i);\n await emitMouseEvent(\"drag\", currentX, currentY, button, { modifiers, delayMs });\n }\n await release(endX, endY, button, { modifiers });\n };\n const scroll = async (x, y, direction, options = {}) => {\n const { modifiers = {}, delayMs = 0 } = options;\n let button;\n switch (direction) {\n case \"up\":\n button = MouseButtons.WHEEL_UP;\n break;\n case \"down\":\n button = MouseButtons.WHEEL_DOWN;\n break;\n case \"left\":\n button = MouseButtons.WHEEL_LEFT;\n break;\n case \"right\":\n button = MouseButtons.WHEEL_RIGHT;\n break;\n }\n await emitMouseEvent(\"scroll\", x, y, button, { modifiers, delayMs });\n };\n const getCurrentPosition = () => {\n return { ...currentPosition };\n };\n const getPressedButtons = () => {\n return Array.from(buttonsPressed);\n };\n return {\n moveTo,\n click,\n doubleClick,\n pressDown,\n release,\n drag,\n scroll,\n getCurrentPosition,\n getPressedButtons,\n emitMouseEvent\n };\n}\n\n// src/testing/test-streams.ts\nimport { Readable, Writable } from \"stream\";\n\nclass TestWriteStream extends Writable {\n isTTY = true;\n columns;\n rows;\n constructor(columns = 80, rows = 24) {\n super();\n this.columns = columns;\n this.rows = rows;\n }\n _write(_chunk, _encoding, callback) {\n callback();\n }\n getColorDepth() {\n return 24;\n }\n}\nfunction createTestStdin() {\n return new Readable({ read() {} });\n}\nfunction createTestStdout(columns = 80, rows = 24) {\n return new TestWriteStream(columns, rows);\n}\n\n// src/testing/test-renderer.ts\nvar decoder = new TextDecoder;\nvar DEFAULT_MAX_PASSES = 20;\nvar DEFAULT_MAX_VISUAL_IDLE_FRAMES = 20;\nvar DEFAULT_QUIET_FRAMES = 1;\nasync function drainImmediateWork() {\n await Promise.resolve();\n await new Promise((resolve) => process.nextTick(resolve));\n await Promise.resolve();\n}\nfunction normalizePositiveInteger(value, fallback) {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n return fallback;\n }\n return Math.floor(value);\n}\nfunction createWaitError(renderer, message, frame) {\n const stats = renderer.getStats();\n const scheduler = renderer.getSchedulerState();\n const details = [\n message,\n `frameId: ${renderer.frameId}`,\n `nativeFrameCount: ${stats.nativeFrameCount}`,\n `cellsUpdated: ${stats.cellsUpdated}`,\n `isRunning: ${scheduler.isRunning}`,\n `isRendering: ${scheduler.isRendering}`,\n `hasScheduledRender: ${scheduler.hasScheduledRender}`\n ];\n if (frame !== undefined) {\n details.push(`lastFrame:\n${frame}`);\n }\n return new Error(details.join(`\n`));\n}\n\nclass TestExternalOutputRecorder {\n commits = [];\n constructor(renderer) {\n renderer.on(\"external_output\" /* EXTERNAL_OUTPUT */, this.record);\n renderer.once(\"destroy\" /* DESTROY */, () => {\n renderer.off(\"external_output\" /* EXTERNAL_OUTPUT */, this.record);\n });\n }\n record = (event) => {\n const raw = decoder.decode(event.snapshot.getRealCharBytes(false));\n const rows = Array.from({ length: event.snapshot.height }, (_, index) => raw.slice(index * event.snapshot.width, (index + 1) * event.snapshot.width).trimEnd());\n this.commits.push({\n text: rows.join(`\n`),\n rows,\n width: event.snapshot.width,\n height: event.snapshot.height,\n rowColumns: event.rowColumns,\n startOnNewLine: event.startOnNewLine,\n trailingNewline: event.trailingNewline\n });\n };\n take() {\n const commits = this.commits;\n this.commits = [];\n return commits;\n }\n takeText() {\n return this.take().flatMap((commit) => commit.rows).join(`\n`);\n }\n clear() {\n this.commits = [];\n }\n}\nfunction waitForNextFrameOrIdle(renderer) {\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return Promise.resolve(null);\n }\n return new Promise((resolve) => {\n let settled = false;\n const cleanup = () => {\n renderer.off(\"frame\" /* FRAME */, onFrame);\n renderer.off(\"destroy\" /* DESTROY */, onDestroy);\n };\n const finish = (event) => {\n if (settled)\n return;\n settled = true;\n cleanup();\n resolve(event);\n };\n const onFrame = (event) => {\n finish(event);\n };\n const onDestroy = () => {\n finish(null);\n };\n renderer.on(\"frame\" /* FRAME */, onFrame);\n renderer.once(\"destroy\" /* DESTROY */, onDestroy);\n if (!scheduler.isRunning) {\n renderer.idle().then(() => finish(null));\n }\n });\n}\nasync function createTestRenderer(options) {\n const useKittyKeyboard = options.kittyKeyboard ? { events: true } : options.useKittyKeyboard;\n const renderer = await setupTestRenderer({\n ...options,\n useKittyKeyboard,\n screenMode: options.screenMode ?? \"main-screen\",\n footerHeight: options.footerHeight ?? 12,\n consoleMode: options.consoleMode ?? \"disabled\",\n externalOutputMode: options.externalOutputMode ?? \"passthrough\"\n });\n const externalOutput = new TestExternalOutputRecorder(renderer);\n const mockInput = createMockKeys(renderer, {\n kittyKeyboard: options.kittyKeyboard,\n otherModifiersMode: options.otherModifiersMode\n });\n const mockMouse = createMockMouse(renderer);\n const renderOnce = async () => {\n const feed = renderer._feed;\n if (feed?.isBackpressured()) {\n await feed.idle();\n }\n await renderer.loop();\n };\n const captureCharFrame = () => {\n const currentBuffer = renderer.currentRenderBuffer;\n const frameBytes = currentBuffer.getRealCharBytes(true);\n return decoder.decode(frameBytes);\n };\n const waitForVisualIdle = async (waitOptions = {}) => {\n const maxFrames = normalizePositiveInteger(waitOptions.maxFrames, DEFAULT_MAX_VISUAL_IDLE_FRAMES);\n const quietFrames = normalizePositiveInteger(waitOptions.quietFrames, DEFAULT_QUIET_FRAMES);\n let consecutiveQuietFrames = 0;\n for (let frame = 0;frame < maxFrames; frame++) {\n await drainImmediateWork();\n const scheduler2 = renderer.getSchedulerState();\n if (!scheduler2.isRunning && !scheduler2.isRendering && !scheduler2.hasScheduledRender) {\n return;\n }\n const event = await waitForNextFrameOrIdle(renderer);\n if (!event) {\n return;\n }\n if (renderer.getNativeStats().cellsUpdated === 0) {\n consecutiveQuietFrames++;\n if (consecutiveQuietFrames >= quietFrames) {\n return;\n }\n } else {\n consecutiveQuietFrames = 0;\n }\n }\n await drainImmediateWork();\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return;\n }\n throw createWaitError(renderer, `Timed out waiting for visual idle after ${maxFrames} frames`);\n };\n const flush = async (flushOptions = {}) => {\n await waitForVisualIdle({ maxFrames: normalizePositiveInteger(flushOptions.maxPasses, DEFAULT_MAX_PASSES) });\n };\n const waitFor = async (predicate, waitOptions = {}) => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES);\n for (let pass = 0;pass <= maxPasses; pass++) {\n await drainImmediateWork();\n if (await predicate()) {\n return;\n }\n if (pass === maxPasses) {\n break;\n }\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break;\n }\n await waitForNextFrameOrIdle(renderer);\n }\n throw createWaitError(renderer, `Timed out waiting for predicate after ${maxPasses} passes`);\n };\n const waitForFrame = async (predicate, waitOptions = {}) => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES);\n let frame = captureCharFrame();\n for (let pass = 0;pass <= maxPasses; pass++) {\n await drainImmediateWork();\n frame = captureCharFrame();\n if (await predicate(frame)) {\n return frame;\n }\n if (pass === maxPasses) {\n break;\n }\n const scheduler = renderer.getSchedulerState();\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break;\n }\n await waitForNextFrameOrIdle(renderer);\n }\n frame = captureCharFrame();\n throw createWaitError(renderer, `Timed out waiting for frame predicate after ${maxPasses} passes`, frame);\n };\n return {\n renderer,\n mockInput,\n mockMouse,\n renderOnce,\n flush,\n waitFor,\n waitForFrame,\n waitForVisualIdle,\n externalOutput,\n getNativeStats: () => renderer.getNativeStats(),\n captureCharFrame,\n captureSpans: () => {\n const currentBuffer = renderer.currentRenderBuffer;\n const lines = currentBuffer.getSpanLines();\n const cursorState = renderer.getCursorState();\n return {\n cols: currentBuffer.width,\n rows: currentBuffer.height,\n cursor: [cursorState.x, cursorState.y],\n lines\n };\n },\n resize: (width, height) => {\n renderer.processResize(width, height);\n }\n };\n}\nasync function setupTestRenderer(config) {\n const stdin = config.stdin || createTestStdin();\n const width = config.width || config.stdout?.columns || process.stdout.columns || 80;\n const height = config.height || config.stdout?.rows || process.stdout.rows || 24;\n const stdout = config.stdout || createTestStdout(width, height);\n return new CliRenderer(stdin, stdout, width, height, {\n ...config,\n bufferedOutput: config.bufferedOutput ?? \"memory\"\n });\n}\n// src/testing/mock-tree-sitter-client.ts\nclass MockTreeSitterClient extends TreeSitterClient {\n _highlightPromises = [];\n _mockResult = { highlights: [] };\n _autoResolveTimeout;\n _clock;\n constructor(options) {\n super({ dataPath: \"/tmp/mock\" }, { autoStartWorker: false });\n this._autoResolveTimeout = options?.autoResolveTimeout;\n this._clock = options?.clock ?? new SystemClock;\n }\n async destroy() {\n this.resolveAllHighlightOnce();\n await super.destroy();\n }\n async highlightOnce(content, filetype) {\n const { promise, resolve } = Promise.withResolvers();\n let timeout;\n if (this._autoResolveTimeout !== undefined) {\n timeout = this._clock.setTimeout(() => {\n const index = this._highlightPromises.findIndex((p) => p.promise === promise);\n if (index !== -1) {\n resolve(this._mockResult);\n this._highlightPromises.splice(index, 1);\n }\n }, this._autoResolveTimeout);\n }\n this._highlightPromises.push({ promise, resolve, timeout });\n return promise;\n }\n setMockResult(result) {\n this._mockResult = result;\n }\n resolveHighlightOnce(index = 0) {\n if (index >= 0 && index < this._highlightPromises.length) {\n const item = this._highlightPromises[index];\n if (item.timeout) {\n this._clock.clearTimeout(item.timeout);\n }\n item.resolve(this._mockResult);\n this._highlightPromises.splice(index, 1);\n }\n }\n resolveAllHighlightOnce() {\n for (const { resolve, timeout } of this._highlightPromises) {\n if (timeout) {\n this._clock.clearTimeout(timeout);\n }\n resolve(this._mockResult);\n }\n this._highlightPromises = [];\n }\n isHighlighting() {\n return this._highlightPromises.length > 0;\n }\n}\n// src/testing/terminal-capabilities.ts\nfunction createTerminalCapabilities(overrides = {}) {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal\n }\n };\n}\nfunction setRendererCapabilities(renderer, overrides = {}) {\n const capabilities = createTerminalCapabilities(overrides);\n renderer._capabilities = capabilities;\n return capabilities;\n}\n// src/testing/spy.ts\nfunction createSpy() {\n const calls = [];\n const spy = (...args) => {\n calls.push(args);\n };\n spy.calls = calls;\n spy.callCount = () => calls.length;\n spy.calledWith = (...expected) => {\n return calls.some((call) => JSON.stringify(call) === JSON.stringify(expected));\n };\n spy.reset = () => calls.length = 0;\n return spy;\n}\n// src/testing/manual-clock.ts\nfunction compareTimers(left, right) {\n if (left.fireAt !== right.fireAt) {\n return left.fireAt - right.fireAt;\n }\n return left.order - right.order;\n}\n\nclass ManualClock {\n time = 0;\n nextId = 1;\n nextOrder = 0;\n timers = new Map;\n now() {\n return this.time;\n }\n setTime(time) {\n const targetTime = Math.floor(time);\n if (targetTime >= this.time) {\n this.advance(targetTime - this.time);\n return;\n }\n this.time = targetTime;\n }\n setTimeout(fn, delayMs) {\n return this.schedule(fn, delayMs, false);\n }\n clearTimeout(handle) {\n this.timers.delete(Number(handle));\n }\n setInterval(fn, delayMs) {\n return this.schedule(fn, delayMs, true);\n }\n clearInterval(handle) {\n this.clearTimeout(handle);\n }\n advance(delayMs) {\n const targetTime = this.time + Math.max(0, Math.floor(delayMs));\n while (true) {\n const nextTimer = this.peekNextTimer();\n if (!nextTimer || nextTimer.fireAt > targetTime) {\n break;\n }\n this.timers.delete(nextTimer.id);\n this.time = nextTimer.fireAt;\n nextTimer.fn();\n if (nextTimer.repeat && !this.timers.has(nextTimer.id)) {\n this.timers.set(nextTimer.id, {\n ...nextTimer,\n fireAt: this.time + nextTimer.delayMs,\n order: this.nextOrder++\n });\n }\n }\n this.time = targetTime;\n }\n runAll() {\n while (true) {\n const nextTimer = this.peekNextTimer();\n if (!nextTimer) {\n return;\n }\n this.advance(nextTimer.fireAt - this.time);\n }\n }\n schedule(fn, delayMs, repeat) {\n const id = this.nextId++;\n const normalizedDelay = Math.max(0, Math.floor(delayMs));\n this.timers.set(id, {\n id,\n fireAt: this.time + normalizedDelay,\n order: this.nextOrder++,\n delayMs: normalizedDelay,\n repeat,\n fn\n });\n return id;\n }\n peekNextTimer() {\n let nextTimer = null;\n for (const timer of this.timers.values()) {\n if (!nextTimer || compareTimers(timer, nextTimer) < 0) {\n nextTimer = timer;\n }\n }\n return nextTimer;\n }\n}\n// src/testing/test-recorder.ts\nclass TestRecorder {\n renderer;\n frames = [];\n recording = false;\n frameNumber = 0;\n startTime = 0;\n decoder = new TextDecoder;\n recordBuffers;\n now;\n onFrame = () => {\n if (!this.recording)\n return;\n this.captureFrame();\n };\n constructor(renderer, options) {\n this.renderer = renderer;\n this.recordBuffers = options?.recordBuffers || {};\n this.now = options?.now ?? (() => performance.now());\n }\n rec() {\n if (this.recording) {\n return;\n }\n this.recording = true;\n this.frames = [];\n this.frameNumber = 0;\n this.startTime = this.now();\n this.renderer.on(\"frame\" /* FRAME */, this.onFrame);\n }\n stop() {\n if (!this.recording) {\n return;\n }\n this.recording = false;\n this.renderer.off(\"frame\" /* FRAME */, this.onFrame);\n }\n get recordedFrames() {\n return [...this.frames];\n }\n clear() {\n this.frames = [];\n this.frameNumber = 0;\n }\n get isRecording() {\n return this.recording;\n }\n captureFrame() {\n const currentBuffer = this.renderer.currentRenderBuffer;\n const frameBytes = currentBuffer.getRealCharBytes(true);\n const frame = this.decoder.decode(frameBytes);\n const recordedFrame = {\n frame,\n timestamp: this.now() - this.startTime,\n frameNumber: this.frameNumber++\n };\n if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {\n const buffers = currentBuffer.buffers;\n recordedFrame.buffers = {};\n if (this.recordBuffers.fg) {\n recordedFrame.buffers.fg = new Uint16Array(buffers.fg);\n }\n if (this.recordBuffers.bg) {\n recordedFrame.buffers.bg = new Uint16Array(buffers.bg);\n }\n if (this.recordBuffers.attributes) {\n recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes);\n }\n }\n this.frames.push(recordedFrame);\n }\n}\nexport {\n setRendererCapabilities,\n pasteBytes,\n createTestRenderer,\n createTerminalCapabilities,\n createSpy,\n createMockMouse,\n createMockKeys,\n TestRecorder,\n MouseButtons,\n MockTreeSitterClient,\n ManualClock,\n KeyCodes\n};\n\n//# debugId=08D19767EB8430A064756E2164756E21\n//# sourceMappingURL=testing.js.map\n"
],
"mappings": "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",
"debugId": "F89B7BEC474A5BFD64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../tui/src/config/v1/index.tsx"],
"sourcesContent": [
"import { createComponent as _$createComponent } from \"@opentui/solid\";\nexport * as TuiConfig from \".\";\nexport * as TuiConfigV1 from \".\";\nimport { createBindingLookup } from \"@opentui/keymap/extras\";\nimport { Schema } from \"effect\";\nimport { createContext, useContext } from \"solid-js\";\nimport { TuiKeybind } from \"./keybind\";\nexport const AttentionSoundName = Schema.Literals([\"default\", \"question\", \"permission\", \"error\", \"done\", \"subagent_done\"]);\nexport const PluginOptions = Schema.Record(Schema.String, Schema.Unknown);\nexport const PluginSpec = Schema.Union([Schema.String, Schema.mutable(Schema.Tuple([Schema.String, PluginOptions]))]);\nexport const LeaderTimeoutDefault = 2000;\nexport const LeaderTimeout = Schema.Int.check(Schema.isGreaterThan(0)).annotate({\n description: \"Leader key timeout in milliseconds\"\n});\nexport const ScrollSpeed = Schema.Number.check(Schema.isGreaterThanOrEqualTo(0.001));\nexport const ScrollAcceleration = Schema.Struct({\n enabled: Schema.Boolean.annotate({\n description: \"Enable scroll acceleration\"\n })\n}).annotate({\n description: \"Scroll acceleration settings\"\n});\nexport const DiffStyle = Schema.Literals([\"auto\", \"stacked\"]).annotate({\n description: \"Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column\"\n});\nexport const AttentionSounds = Schema.Record(AttentionSoundName, Schema.optionalKey(Schema.String));\nexport const Attention = Schema.Struct({\n enabled: Schema.optional(Schema.Boolean),\n notifications: Schema.optional(Schema.Boolean),\n sound: Schema.optional(Schema.Boolean),\n volume: Schema.optional(Schema.Number.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(1))),\n sound_pack: Schema.optional(Schema.String),\n sounds: Schema.optional(AttentionSounds)\n}).annotate({\n description: \"Attention notification and sound settings\"\n});\nconst PromptSize = Schema.Int.check(Schema.isGreaterThan(0));\nexport const Prompt = Schema.Struct({\n max_height: Schema.optional(PromptSize).annotate({\n description: \"Prompt textarea max height\"\n }),\n max_width: Schema.optional(Schema.Union([PromptSize, Schema.Literal(\"auto\")])).annotate({\n description: \"Home prompt max width: a positive integer for a fixed cap, or 'auto' to scale with terminal width\"\n })\n}).annotate({\n description: \"Prompt size settings\"\n});\nexport const Info = Schema.Struct({\n $schema: Schema.optional(Schema.String),\n theme: Schema.optional(Schema.String),\n keybinds: Schema.optional(TuiKeybind.KeybindOverrides),\n plugin: Schema.optional(Schema.Array(PluginSpec)),\n plugin_enabled: Schema.optional(Schema.Record(Schema.String, Schema.Boolean)),\n leader_timeout: Schema.optional(LeaderTimeout),\n attention: Schema.optional(Attention),\n prompt: Schema.optional(Prompt),\n scroll_speed: Schema.optional(ScrollSpeed).annotate({\n description: \"TUI scroll speed\"\n }),\n scroll_acceleration: Schema.optional(ScrollAcceleration),\n diff_style: Schema.optional(DiffStyle),\n mouse: Schema.optional(Schema.Boolean).annotate({\n description: \"Enable or disable mouse capture (default: true)\"\n })\n});\nexport const ResolveOptions = Schema.Struct({\n terminalSuspend: Schema.Boolean\n});\nexport function resolve(input, options) {\n const keybinds = {\n ...input.keybinds\n };\n if (!options.terminalSuspend) {\n keybinds.terminal_suspend = \"none\";\n if (keybinds.input_undo === undefined) {\n const inputUndo = TuiKeybind.defaultValue(\"input_undo\");\n keybinds.input_undo = [\"ctrl+z\", ...(typeof inputUndo === \"string\" ? inputUndo.split(\",\") : [])].filter((value, index, values) => values.indexOf(value) === index).join(\",\");\n }\n }\n return {\n ...input,\n attention: {\n enabled: input.attention?.enabled ?? false,\n notifications: input.attention?.notifications ?? true,\n sound: input.attention?.sound ?? true,\n volume: input.attention?.volume ?? 0.4,\n sound_pack: input.attention?.sound_pack ?? \"opencode.default\",\n sounds: input.attention?.sounds ?? {}\n },\n keybinds: createBindingLookup(TuiKeybind.toBindingConfig(TuiKeybind.parse(keybinds)), {\n commandMap: TuiKeybind.CommandMap,\n bindingDefaults: TuiKeybind.bindingDefaults()\n }),\n leader_timeout: input.leader_timeout ?? LeaderTimeoutDefault,\n mouse: input.mouse ?? true\n };\n}\nconst ConfigContext = createContext();\nexport function TuiConfigProvider(props) {\n return _$createComponent(ConfigContext.Provider, {\n get value() {\n return props.config;\n },\n get children() {\n return props.children;\n }\n });\n}\nexport function useTuiConfig() {\n const value = useContext(ConfigContext);\n if (!value) throw new Error(\"TuiConfigProvider is missing\");\n return value;\n}"
],
"mappings": "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",
"debugId": "CB136857B5275B3564756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260510033149_session_usage.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260510033149_session_usage\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`cost\\` real DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_input\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_output\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_reasoning\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_read\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_write\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`\n UPDATE session\n SET\n cost = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.cost'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_input = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.input'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_output = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.output'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_reasoning = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.reasoning'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_read = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.read'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_write = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.write'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0)\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,+BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2DAA+D,EAC7E,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,uEAA2E,EACzF,MAAO,EAAG,IAAI,0EAA8E,EAC5F,MAAO,EAAG,IAAI,2EAA+E,EAC7F,MAAO,EAAG,IAAI,4EAAgF,EAC9F,MAAO,EAAG,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAuCb,EACF,EAEL",
"debugId": "91229C3309E1F58764756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/mcp/list.ts"],
"sourcesContent": [
"import { EOL } from \"node:os\"\nimport { Effect } from \"effect\"\nimport { OpenCode, type McpServer } from \"@opencode-ai/client\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { Service } from \"@opencode-ai/client/effect\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.mcp.commands.list,\n Effect.fn(\"cli.mcp.list\")(function* () {\n const options = yield* ServiceConfig.options()\n const found = yield* Service.discover(options)\n const endpoint = found ?? (yield* Service.start(options))\n const client = OpenCode.make({ baseUrl: endpoint.url, headers: Service.headers(endpoint) })\n const response = yield* Effect.promise(() => client.mcp.list({ location: { directory: process.cwd() } }))\n const servers = response.data.toSorted((a, b) => a.name.localeCompare(b.name))\n if (servers.length === 0) {\n process.stdout.write(\"No MCP servers configured\" + EOL)\n return\n }\n const width = Math.max(...servers.map((server) => server.name.length))\n const lines = servers.map(\n (server) => `${icon(server.status)} ${server.name.padEnd(width)} ${describe(server.status)}`,\n )\n process.stdout.write(lines.join(EOL) + EOL)\n }),\n)\n\nfunction icon(status: McpServer[\"status\"]) {\n switch (status.status) {\n case \"connected\":\n return \"✓\"\n case \"needs_auth\":\n return \"⚠\"\n case \"failed\":\n case \"needs_client_registration\":\n return \"✗\"\n default:\n return \"○\"\n }\n}\n\nfunction describe(status: McpServer[\"status\"]) {\n switch (status.status) {\n case \"needs_auth\":\n return \"needs authentication\"\n case \"needs_client_registration\":\n return `needs client registration: ${status.error}`\n case \"failed\":\n return `failed: ${status.error}`\n default:\n return status.status\n }\n}\n"
],
"mappings": ";sgCAAA,mBAAS,gBAQT,SAAe,SAAQ,aACrB,OAAS,cAAS,SAAI,cAAS,UAC/B,OAAO,QAAG,mBAAc,OAAE,cAAU,OAAG,MACrC,SAAM,OAAU,WAAO,OAAc,aAAQ,OAEvC,QADQ,WAAO,OAAQ,cAAS,CAAO,KAClB,MAAO,EAAQ,MAAM,CAAO,GACjD,EAAS,EAAS,KAAK,CAAE,QAAS,EAAS,IAAK,QAAS,EAAQ,QAAQ,CAAQ,CAAE,CAAC,EAEpF,GADW,MAAO,EAAO,QAAQ,IAAM,EAAO,IAAI,KAAK,CAAE,SAAU,CAAE,UAAW,QAAQ,IAAI,CAAE,CAAE,CAAC,CAAC,GAC/E,KAAK,SAAS,CAAC,EAAG,IAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC,EAC7E,GAAI,EAAQ,SAAW,EAAG,CACxB,QAAQ,OAAO,MAAM,4BAA8B,CAAG,EACtD,OAEF,IAAM,EAAQ,KAAK,IAAI,GAAG,EAAQ,IAAI,CAAC,IAAW,EAAO,KAAK,MAAM,CAAC,EAC/D,EAAQ,EAAQ,IACpB,CAAC,IAAW,GAAG,EAAK,EAAO,MAAM,KAAK,EAAO,KAAK,OAAO,CAAK,MAAM,EAAS,EAAO,MAAM,GAC5F,EACA,QAAQ,OAAO,MAAM,EAAM,KAAK,CAAG,EAAI,CAAG,EAC3C,CACH,EAEA,SAAS,CAAI,CAAC,EAA6B,CACzC,OAAQ,EAAO,YACR,YACH,MAAO,aACJ,aACH,MAAO,aACJ,aACA,4BACH,MAAO,iBAEP,MAAO,UAIb,SAAS,CAAQ,CAAC,EAA6B,CAC7C,OAAQ,EAAO,YACR,aACH,MAAO,2BACJ,4BACH,MAAO,8BAA8B,EAAO,YACzC,SACH,MAAO,WAAW,EAAO,gBAEzB,OAAO,EAAO",
"debugId": "4707F234E47DE64264756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+groq@3.0.31+d6123d32214422cb/node_modules/@ai-sdk/groq/dist/index.mjs"],
"sourcesContent": [
"// src/groq-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/groq-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n isParsableJson,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-groq-usage.ts\nfunction convertGroqUsage(usage) {\n var _a, _b, _c, _d;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.completion_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : void 0;\n const textTokens = reasoningTokens != null ? completionTokens - reasoningTokens : completionTokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: textTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-groq-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToGroqChatMessages(prompt) {\n var _a;\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (!part.mediaType.startsWith(\"image/\")) {\n throw new UnsupportedFunctionalityError({\n functionality: \"Non-image file content parts\"\n });\n }\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n }\n };\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n // groq supports reasoning for tool-calls in multi-turn conversations\n // https://github.com/vercel/ai/issues/7860\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n ...reasoning.length > 0 ? { reasoning } : null,\n ...toolCalls.length > 0 ? { tool_calls: toolCalls } : null\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/groq-chat-options.ts\nimport { z } from \"zod/v4\";\nvar groqLanguageModelOptions = z.object({\n reasoningFormat: z.enum([\"parsed\", \"raw\", \"hidden\"]).optional(),\n /**\n * Specifies the reasoning effort level for model inference.\n * @see https://console.groq.com/docs/reasoning#reasoning-effort\n */\n reasoningEffort: z.enum([\"none\", \"default\", \"low\", \"medium\", \"high\"]).optional(),\n /**\n * Whether to enable parallel function calling during tool use. Default to true.\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse. Learn more.\n */\n user: z.string().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n * When true, the model uses constrained decoding to guarantee schema compliance.\n * Only used when structured outputs are enabled and a schema is provided.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Service tier for the request.\n * - 'on_demand': Default tier with consistent performance and fairness\n * - 'flex': Higher throughput tier optimized for workloads that can handle occasional request failures\n * - 'auto': Uses on_demand rate limits, then falls back to flex tier if exceeded\n *\n * @default 'on_demand'\n */\n serviceTier: z.enum([\"on_demand\", \"flex\", \"auto\"]).optional()\n});\n\n// src/groq-error.ts\nimport { z as z2 } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar groqErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n type: z2.string()\n })\n});\nvar groqFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: groqErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/groq-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/groq-browser-search-models.ts\nvar BROWSER_SEARCH_SUPPORTED_MODELS = [\n \"openai/gpt-oss-20b\",\n \"openai/gpt-oss-120b\"\n];\nfunction isBrowserSearchSupportedModel(modelId) {\n return BROWSER_SEARCH_SUPPORTED_MODELS.includes(modelId);\n}\nfunction getSupportedModelsString() {\n return BROWSER_SEARCH_SUPPORTED_MODELS.join(\", \");\n}\n\n// src/groq-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice,\n modelId\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const groqTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n if (tool.id === \"groq.browser_search\") {\n if (!isBrowserSearchSupportedModel(modelId)) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: `Browser search is only supported on the following models: ${getSupportedModelsString()}. Current model: ${modelId}`\n });\n } else {\n groqTools2.push({\n type: \"browser_search\"\n });\n }\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n }\n } else {\n groqTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: groqTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: groqTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: groqTools2,\n toolChoice: {\n type: \"function\",\n function: {\n name: toolChoice.toolName\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/map-groq-finish-reason.ts\nfunction mapGroqFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/groq-chat-language-model.ts\nvar GroqChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n stream,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c;\n const warnings = [];\n const groqOptions = await parseProviderOptions({\n provider: \"groq\",\n providerOptions,\n schema: groqLanguageModelOptions\n });\n const structuredOutputs = (_a = groqOptions == null ? void 0 : groqOptions.structuredOutputs) != null ? _a : true;\n const strictJsonSchema = (_b = groqOptions == null ? void 0 : groqOptions.strictJsonSchema) != null ? _b : true;\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !structuredOutputs) {\n warnings.push({\n type: \"unsupported\",\n feature: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const {\n tools: groqTools2,\n toolChoice: groqToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n user: groqOptions == null ? void 0 : groqOptions.user,\n parallel_tool_calls: groqOptions == null ? void 0 : groqOptions.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_c = responseFormat.name) != null ? _c : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // provider options:\n reasoning_format: groqOptions == null ? void 0 : groqOptions.reasoningFormat,\n reasoning_effort: groqOptions == null ? void 0 : groqOptions.reasoningEffort,\n service_tier: groqOptions == null ? void 0 : groqOptions.serviceTier,\n // messages:\n messages: convertToGroqChatMessages(prompt),\n // tools:\n tools: groqTools2,\n tool_choice: groqToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args, warnings } = await this.getArgs({\n ...options,\n stream: false\n });\n const body = JSON.stringify(args);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n groqChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertGroqUsage(response.usage),\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n request: { body }\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options, stream: true });\n const body = JSON.stringify({ ...args, stream: true });\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...args,\n stream: true\n },\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(groqChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let isActiveText = false;\n let isActiveReasoning = false;\n let providerMetadata;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (((_a = value.x_groq) == null ? void 0 : _a.usage) != null) {\n usage = value.x_groq.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n if (delta.reasoning != null && delta.reasoning.length > 0) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: delta.reasoning\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_d = toolCall2.function) == null ? void 0 : _d.name) != null && ((_e = toolCall2.function) == null ? void 0 : _e.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n if (isParsableJson(toolCall2.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_f = toolCall2.id) != null ? _f : generateId(),\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments\n });\n toolCall2.hasFinished = true;\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_g = toolCallDelta.function) == null ? void 0 : _g.arguments) != null) {\n toolCall.function.arguments += (_i = (_h = toolCallDelta.function) == null ? void 0 : _h.arguments) != null ? _i : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_j = toolCallDelta.function.arguments) != null ? _j : \"\"\n });\n if (((_k = toolCall.function) == null ? void 0 : _k.name) != null && ((_l = toolCall.function) == null ? void 0 : _l.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_m = toolCall.id) != null ? _m : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n }\n },\n flush(controller) {\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGroqUsage(usage),\n ...providerMetadata != null ? { providerMetadata } : {}\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar groqChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string().nullish(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n});\nvar groqChatChunkSchema = z3.union([\n z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n index: z3.number(),\n id: z3.string().nullish(),\n type: z3.literal(\"function\").optional(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z3.string().nullable().optional(),\n index: z3.number()\n })\n ),\n x_groq: z3.object({\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n }).nullish()\n }),\n groqErrorDataSchema\n]);\n\n// src/groq-transcription-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertBase64ToUint8Array,\n createJsonResponseHandler as createJsonResponseHandler2,\n mediaTypeToExtension,\n parseProviderOptions as parseProviderOptions2,\n postFormDataToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/groq-transcription-options.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar groqTranscriptionModelOptions = lazySchema(\n () => zodSchema(\n z4.object({\n language: z4.string().nullish(),\n prompt: z4.string().nullish(),\n responseFormat: z4.string().nullish(),\n temperature: z4.number().min(0).max(1).nullish(),\n timestampGranularities: z4.array(z4.string()).nullish()\n })\n )\n);\n\n// src/groq-transcription-model.ts\nvar GroqTranscriptionModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n audio,\n mediaType,\n providerOptions\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const groqOptions = await parseProviderOptions2({\n provider: \"groq\",\n providerOptions,\n schema: groqTranscriptionModelOptions\n });\n const formData = new FormData();\n const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);\n formData.append(\"model\", this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n \"file\",\n new File([blob], \"audio\", { type: mediaType }),\n `audio.${fileExtension}`\n );\n if (groqOptions) {\n const transcriptionModelOptions = {\n language: (_a = groqOptions.language) != null ? _a : void 0,\n prompt: (_b = groqOptions.prompt) != null ? _b : void 0,\n response_format: (_c = groqOptions.responseFormat) != null ? _c : void 0,\n temperature: (_d = groqOptions.temperature) != null ? _d : void 0,\n timestamp_granularities: (_e = groqOptions.timestampGranularities) != null ? _e : void 0\n };\n for (const key in transcriptionModelOptions) {\n const value = transcriptionModelOptions[key];\n if (value !== void 0) {\n if (Array.isArray(value)) {\n for (const item of value) {\n formData.append(`${key}[]`, String(item));\n }\n } else {\n formData.append(key, String(value));\n }\n }\n }\n }\n return {\n formData,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { formData, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postFormDataToApi({\n url: this.config.url({\n path: \"/audio/transcriptions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n groqTranscriptionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n text: response.text,\n segments: (_e = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n text: segment.text,\n startSecond: segment.start,\n endSecond: segment.end\n }))) != null ? _e : [],\n language: (_f = response.language) != null ? _f : void 0,\n durationInSeconds: (_g = response.duration) != null ? _g : void 0,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar groqTranscriptionResponseSchema = z5.object({\n text: z5.string(),\n x_groq: z5.object({\n id: z5.string()\n }),\n // additional properties are returned when `response_format: 'verbose_json'` is\n task: z5.string().nullish(),\n language: z5.string().nullish(),\n duration: z5.number().nullish(),\n segments: z5.array(\n z5.object({\n id: z5.number(),\n seek: z5.number(),\n start: z5.number(),\n end: z5.number(),\n text: z5.string(),\n tokens: z5.array(z5.number()),\n temperature: z5.number(),\n avg_logprob: z5.number(),\n compression_ratio: z5.number(),\n no_speech_prob: z5.number()\n })\n ).nullish()\n});\n\n// src/tool/browser-search.ts\nimport { createProviderToolFactory } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar browserSearch = createProviderToolFactory({\n id: \"groq.browser_search\",\n inputSchema: z6.object({})\n});\n\n// src/groq-tools.ts\nvar groqTools = {\n browserSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.31\" : \"0.0.0-test\";\n\n// src/groq-provider.ts\nfunction createGroq(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.groq.com/openai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GROQ_API_KEY\",\n description: \"Groq\"\n })}`,\n ...options.headers\n },\n `ai-sdk/groq/${VERSION}`\n );\n const createChatModel = (modelId) => new GroqChatLanguageModel(modelId, {\n provider: \"groq.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => {\n if (new.target) {\n throw new Error(\n \"The Groq model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n const createTranscriptionModel = (modelId) => {\n return new GroqTranscriptionModel(modelId, {\n provider: \"groq.transcription\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = function(modelId) {\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.tools = groqTools;\n return provider;\n}\nvar groq = createGroq();\nexport {\n VERSION,\n browserSearch,\n createGroq,\n groq\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";qXA0BA,cAAS,MAAgB,MAAC,OAAO,CAC/B,IAAI,EAAI,EAAI,EAAI,EAChB,GAAI,GAAS,KACX,MAAO,CACL,YAAa,CACX,MAAY,OACZ,QAAc,OACd,UAAgB,OAChB,WAAiB,MACnB,EACA,aAAc,CACZ,MAAY,OACZ,KAAW,OACX,UAAgB,MAClB,EACA,IAAU,MACZ,EAEF,IAAM,GAAgB,EAAK,EAAM,gBAAkB,KAAO,EAAK,EACzD,GAAoB,EAAK,EAAM,oBAAsB,KAAO,EAAK,EACjE,GAAmB,GAAM,EAAK,EAAM,4BAA8B,KAAY,OAAI,EAAG,mBAAqB,KAAO,EAAU,OAC3H,EAAa,GAAmB,KAAO,EAAmB,EAAkB,EAClF,MAAO,CACL,YAAa,CACX,MAAO,EACP,QAAS,EACT,UAAgB,OAChB,WAAiB,MACnB,EACA,aAAc,CACZ,MAAO,EACP,KAAM,EACN,UAAW,CACb,EACA,IAAK,CACP,EAQF,SAAS,EAAyB,CAAC,EAAQ,CACzC,IAAI,EACJ,IAAM,EAAW,CAAC,EAClB,QAAa,OAAM,aAAa,EAC9B,OAAQ,OACD,SAAU,CACb,EAAS,KAAK,CAAE,KAAM,SAAU,SAAQ,CAAC,EACzC,KACF,KACK,OAAQ,CACX,GAAI,EAAQ,SAAW,GAAK,EAAQ,GAAG,OAAS,OAAQ,CACtD,EAAS,KAAK,CAAE,KAAM,OAAQ,QAAS,EAAQ,GAAG,IAAK,CAAC,EACxD,MAEF,EAAS,KAAK,CACZ,KAAM,OACN,QAAS,EAAQ,IAAI,CAAC,IAAS,CAC7B,OAAQ,EAAK,UACN,OACH,MAAO,CAAE,KAAM,OAAQ,KAAM,EAAK,IAAK,MAEpC,OAAQ,CACX,GAAI,CAAC,EAAK,UAAU,WAAW,QAAQ,EACrC,MAAM,IAAI,EAA8B,CACtC,cAAe,8BACjB,CAAC,EAEH,IAAM,EAAY,EAAK,YAAc,UAAY,aAAe,EAAK,UACrE,MAAO,CACL,KAAM,YACN,UAAW,CACT,IAAK,EAAK,gBAAgB,IAAM,EAAK,KAAK,SAAS,EAAI,QAAQ,YAAoB,EAAgB,EAAK,IAAI,GAC9G,CACF,CACF,GAEH,CACH,CAAC,EACD,KACF,KACK,YAAa,CAChB,IAAI,EAAO,GACP,EAAY,GACV,EAAY,CAAC,EACnB,QAAW,KAAQ,EACjB,OAAQ,EAAK,UAGN,YAAa,CAChB,GAAa,EAAK,KAClB,KACF,KACK,OAAQ,CACX,GAAQ,EAAK,KACb,KACF,KACK,YAAa,CAChB,EAAU,KAAK,CACb,GAAI,EAAK,WACT,KAAM,WACN,SAAU,CACR,KAAM,EAAK,SACX,UAAW,KAAK,UAAU,EAAK,KAAK,CACtC,CACF,CAAC,EACD,KACF,EAGJ,EAAS,KAAK,CACZ,KAAM,YACN,QAAS,KACN,EAAU,OAAS,EAAI,CAAE,WAAU,EAAI,QACvC,EAAU,OAAS,EAAI,CAAE,WAAY,CAAU,EAAI,IACxD,CAAC,EACD,KACF,KACK,OAAQ,CACX,QAAW,KAAgB,EAAS,CAClC,GAAI,EAAa,OAAS,yBACxB,SAEF,IAAM,EAAS,EAAa,OACxB,EACJ,OAAQ,EAAO,UACR,WACA,aACH,EAAe,EAAO,MACtB,UACG,mBACH,GAAgB,EAAK,EAAO,SAAW,KAAO,EAAK,yBACnD,UACG,cACA,WACA,aACH,EAAe,KAAK,UAAU,EAAO,KAAK,EAC1C,MAEJ,EAAS,KAAK,CACZ,KAAM,OACN,aAAc,EAAa,WAC3B,QAAS,CACX,CAAC,EAEH,KACF,SAGE,MAAU,MAAM,qBADS,GAC8B,EAI7D,OAAO,EAIT,SAAS,CAAmB,EAC1B,KACA,QACA,WACC,CACD,MAAO,CACL,GAAI,GAAM,KAAO,EAAU,OAC3B,QAAS,GAAS,KAAO,EAAa,OACtC,UAAW,GAAW,KAAO,IAAI,KAAK,EAAU,IAAG,EAAS,MAC9D,EAKF,IAAI,GAA2B,EAAE,OAAO,CACtC,gBAAiB,EAAE,KAAK,CAAC,SAAU,MAAO,QAAQ,CAAC,EAAE,SAAS,EAK9D,gBAAiB,EAAE,KAAK,CAAC,OAAQ,UAAW,MAAO,SAAU,MAAM,CAAC,EAAE,SAAS,EAI/E,kBAAmB,EAAE,QAAQ,EAAE,SAAS,EAKxC,KAAM,EAAE,OAAO,EAAE,SAAS,EAM1B,kBAAmB,EAAE,QAAQ,EAAE,SAAS,EAQxC,iBAAkB,EAAE,QAAQ,EAAE,SAAS,EASvC,YAAa,EAAE,KAAK,CAAC,YAAa,OAAQ,MAAM,CAAC,EAAE,SAAS,CAC9D,CAAC,EAKG,GAAsB,EAAG,OAAO,CAClC,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,EACnB,KAAM,EAAG,OAAO,CAClB,CAAC,CACH,CAAC,EACG,EAA4B,GAA+B,CAC7D,YAAa,GACb,eAAgB,CAAC,IAAS,EAAK,MAAM,OACvC,CAAC,EAQG,GAAkC,CACpC,qBACA,qBACF,EACA,SAAS,EAA6B,CAAC,EAAS,CAC9C,OAAO,GAAgC,SAAS,CAAO,EAEzD,SAAS,EAAwB,EAAG,CAClC,OAAO,GAAgC,KAAK,IAAI,EAIlD,SAAS,EAAY,EACnB,QACA,aACA,WACC,CACD,GAAS,GAAS,KAAY,OAAI,EAAM,QAAU,EAAa,OAC/D,IAAM,EAAe,CAAC,EACtB,GAAI,GAAS,KACX,MAAO,CAAE,MAAY,OAAG,WAAiB,OAAG,cAAa,EAE3D,IAAM,EAAa,CAAC,EACpB,QAAW,KAAQ,EACjB,GAAI,EAAK,OAAS,WAChB,GAAI,EAAK,KAAO,sBACd,GAAI,CAAC,GAA8B,CAAO,EACxC,EAAa,KAAK,CAChB,KAAM,cACN,QAAS,yBAAyB,EAAK,KACvC,QAAS,6DAA6D,GAAyB,qBAAqB,GACtH,CAAC,EAED,OAAW,KAAK,CACd,KAAM,gBACR,CAAC,EAGH,OAAa,KAAK,CAChB,KAAM,cACN,QAAS,yBAAyB,EAAK,IACzC,CAAC,EAGH,OAAW,KAAK,CACd,KAAM,WACN,SAAU,CACR,KAAM,EAAK,KACX,YAAa,EAAK,YAClB,WAAY,EAAK,eACd,EAAK,QAAU,KAAO,CAAE,OAAQ,EAAK,MAAO,EAAI,CAAC,CACtD,CACF,CAAC,EAGL,GAAI,GAAc,KAChB,MAAO,CAAE,MAAO,EAAY,WAAiB,OAAG,cAAa,EAE/D,IAAM,EAAO,EAAW,KACxB,OAAQ,OACD,WACA,WACA,WACH,MAAO,CAAE,MAAO,EAAY,WAAY,EAAM,cAAa,MACxD,OACH,MAAO,CACL,MAAO,EACP,WAAY,CACV,KAAM,WACN,SAAU,CACR,KAAM,EAAW,QACnB,CACF,EACA,cACF,UAGA,MAAM,IAAI,EAA+B,CACvC,cAAe,qBAFQ,GAGzB,CAAC,GAMP,SAAS,CAAmB,CAAC,EAAc,CACzC,OAAQ,OACD,OACH,MAAO,WACJ,SACH,MAAO,aACJ,iBACH,MAAO,qBACJ,oBACA,aACH,MAAO,qBAEP,MAAO,SAKb,IAAI,GAAwB,KAAM,CAChC,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,qBAAuB,KAC5B,KAAK,cAAgB,CACnB,UAAW,CAAC,iBAAiB,CAC/B,EACA,KAAK,QAAU,EACf,KAAK,OAAS,KAEZ,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,EACX,SACA,kBACA,cACA,OACA,OACA,mBACA,kBACA,gBACA,iBACA,OACA,SACA,QACA,aACA,mBACC,CACD,IAAI,EAAI,EAAI,EACZ,IAAM,EAAW,CAAC,EACZ,EAAc,MAAM,EAAqB,CAC7C,SAAU,OACV,kBACA,OAAQ,EACV,CAAC,EACK,GAAqB,EAAK,GAAe,KAAY,OAAI,EAAY,oBAAsB,KAAO,EAAK,GACvG,GAAoB,EAAK,GAAe,KAAY,OAAI,EAAY,mBAAqB,KAAO,EAAK,GAC3G,GAAI,GAAQ,KACV,EAAS,KAAK,CAAE,KAAM,cAAe,QAAS,MAAO,CAAC,EAExD,IAAK,GAAkB,KAAY,OAAI,EAAe,QAAU,QAAU,EAAe,QAAU,MAAQ,CAAC,EAC1G,EAAS,KAAK,CACZ,KAAM,cACN,QAAS,iBACT,QAAS,sEACX,CAAC,EAEH,IACE,MAAO,EACP,WAAY,EACZ,gBACE,GAAa,CAAE,QAAO,aAAY,QAAS,KAAK,OAAQ,CAAC,EAC7D,MAAO,CACL,KAAM,CAEJ,MAAO,KAAK,QAEZ,KAAM,GAAe,KAAY,OAAI,EAAY,KACjD,oBAAqB,GAAe,KAAY,OAAI,EAAY,kBAEhE,WAAY,EACZ,cACA,MAAO,EACP,kBAAmB,EACnB,iBAAkB,EAClB,KAAM,EACN,OAEA,iBAAkB,GAAkB,KAAY,OAAI,EAAe,QAAU,OAAS,GAAqB,EAAe,QAAU,KAAO,CACzI,KAAM,cACN,YAAa,CACX,OAAQ,EAAe,OACvB,OAAQ,EACR,MAAO,EAAK,EAAe,OAAS,KAAO,EAAK,WAChD,YAAa,EAAe,WAC9B,CACF,EAAI,CAAE,KAAM,aAAc,EAAS,OAEnC,iBAAkB,GAAe,KAAY,OAAI,EAAY,gBAC7D,iBAAkB,GAAe,KAAY,OAAI,EAAY,gBAC7D,aAAc,GAAe,KAAY,OAAI,EAAY,YAEzD,SAAU,GAA0B,CAAM,EAE1C,MAAO,EACP,YAAa,CACf,EACA,SAAU,CAAC,GAAG,EAAU,GAAG,CAAY,CACzC,OAEI,WAAU,CAAC,EAAS,CACxB,IAAI,EAAI,EACR,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,IACzC,EACH,OAAQ,EACV,CAAC,EACK,EAAO,KAAK,UAAU,CAAI,GAE9B,kBACA,MAAO,EACP,SAAU,GACR,MAAM,EAAc,CACtB,IAAK,KAAK,OAAO,IAAI,CACnB,KAAM,oBACN,QAAS,KAAK,OAChB,CAAC,EACD,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,EAAQ,OAAO,EAC9D,KAAM,EACN,sBAAuB,EACvB,0BAA2B,EACzB,EACF,EACA,YAAa,EAAQ,YACrB,MAAO,KAAK,OAAO,KACrB,CAAC,EACK,EAAS,EAAS,QAAQ,GAC1B,EAAU,CAAC,EACX,EAAO,EAAO,QAAQ,QAC5B,GAAI,GAAQ,MAAQ,EAAK,OAAS,EAChC,EAAQ,KAAK,CAAE,KAAM,OAAQ,MAAK,CAAC,EAErC,IAAM,EAAY,EAAO,QAAQ,UACjC,GAAI,GAAa,MAAQ,EAAU,OAAS,EAC1C,EAAQ,KAAK,CACX,KAAM,YACN,KAAM,CACR,CAAC,EAEH,GAAI,EAAO,QAAQ,YAAc,KAC/B,QAAW,KAAY,EAAO,QAAQ,WACpC,EAAQ,KAAK,CACX,KAAM,YACN,YAAa,EAAK,EAAS,KAAO,KAAO,EAAK,EAAW,EACzD,SAAU,EAAS,SAAS,KAC5B,MAAO,EAAS,SAAS,SAC3B,CAAC,EAGL,MAAO,CACL,UACA,aAAc,CACZ,QAAS,EAAoB,EAAO,aAAa,EACjD,KAAM,EAAK,EAAO,gBAAkB,KAAO,EAAU,MACvD,EACA,MAAO,EAAiB,EAAS,KAAK,EACtC,SAAU,IACL,EAAoB,CAAQ,EAC/B,QAAS,EACT,KAAM,CACR,EACA,WACA,QAAS,CAAE,MAAK,CAClB,OAEI,SAAQ,CAAC,EAAS,CACtB,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,IAAK,EAAS,OAAQ,EAAK,CAAC,EACpE,EAAO,KAAK,UAAU,IAAK,EAAM,OAAQ,EAAK,CAAC,GAC7C,kBAAiB,MAAO,GAAa,MAAM,EAAc,CAC/D,IAAK,KAAK,OAAO,IAAI,CACnB,KAAM,oBACN,QAAS,KAAK,OAChB,CAAC,EACD,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,EAAQ,OAAO,EAC9D,KAAM,IACD,EACH,OAAQ,EACV,EACA,sBAAuB,EACvB,0BAA2B,GAAiC,EAAmB,EAC/E,YAAa,EAAQ,YACrB,MAAO,KAAK,OAAO,KACrB,CAAC,EACK,EAAY,CAAC,EACf,EAAe,CACjB,QAAS,QACT,IAAU,MACZ,EACI,EAAa,OACb,EAAe,GACf,EAAe,GACf,EAAoB,GACpB,EACJ,MAAO,CACL,OAAQ,EAAS,YACf,IAAI,gBAAgB,CAClB,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CAAE,KAAM,eAAgB,UAAS,CAAC,GAEvD,SAAS,CAAC,EAAO,EAAY,CAC3B,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EACpD,GAAI,EAAQ,iBACV,EAAW,QAAQ,CAAE,KAAM,MAAO,SAAU,EAAM,QAAS,CAAC,EAE9D,GAAI,CAAC,EAAM,QAAS,CAClB,EAAe,CACb,QAAS,QACT,IAAU,MACZ,EACA,EAAW,QAAQ,CAAE,KAAM,QAAS,MAAO,EAAM,KAAM,CAAC,EACxD,OAEF,IAAM,EAAQ,EAAM,MACpB,GAAI,UAAW,EAAO,CACpB,EAAe,CACb,QAAS,QACT,IAAU,MACZ,EACA,EAAW,QAAQ,CAAE,KAAM,QAAS,MAAO,EAAM,KAAM,CAAC,EACxD,OAEF,GAAI,EACF,EAAe,GACf,EAAW,QAAQ,CACjB,KAAM,uBACH,EAAoB,CAAK,CAC9B,CAAC,EAEH,KAAM,EAAK,EAAM,SAAW,KAAY,OAAI,EAAG,QAAU,KACvD,EAAQ,EAAM,OAAO,MAEvB,IAAM,EAAS,EAAM,QAAQ,GAC7B,IAAK,GAAU,KAAY,OAAI,EAAO,gBAAkB,KACtD,EAAe,CACb,QAAS,EAAoB,EAAO,aAAa,EACjD,IAAK,EAAO,aACd,EAEF,IAAK,GAAU,KAAY,OAAI,EAAO,QAAU,KAC9C,OAEF,IAAM,EAAQ,EAAO,MACrB,GAAI,EAAM,WAAa,MAAQ,EAAM,UAAU,OAAS,EAAG,CACzD,GAAI,CAAC,EACH,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,aACN,CAAC,EACD,EAAoB,GAEtB,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,cACJ,MAAO,EAAM,SACf,CAAC,EAEH,GAAI,EAAM,SAAW,MAAQ,EAAM,QAAQ,OAAS,EAAG,CACrD,GAAI,EACF,EAAW,QAAQ,CACjB,KAAM,gBACN,GAAI,aACN,CAAC,EACD,EAAoB,GAEtB,GAAI,CAAC,EACH,EAAW,QAAQ,CAAE,KAAM,aAAc,GAAI,OAAQ,CAAC,EACtD,EAAe,GAEjB,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,QACJ,MAAO,EAAM,OACf,CAAC,EAEH,GAAI,EAAM,YAAc,KAAM,CAC5B,GAAI,EACF,EAAW,QAAQ,CACjB,KAAM,gBACN,GAAI,aACN,CAAC,EACD,EAAoB,GAEtB,QAAW,KAAiB,EAAM,WAAY,CAC5C,IAAM,EAAQ,EAAc,MAC5B,GAAI,EAAU,IAAU,KAAM,CAC5B,GAAI,EAAc,OAAS,WACzB,MAAM,IAAI,EAAyB,CACjC,KAAM,EACN,QAAS,2BACX,CAAC,EAEH,GAAI,EAAc,IAAM,KACtB,MAAM,IAAI,EAAyB,CACjC,KAAM,EACN,QAAS,+BACX,CAAC,EAEH,KAAM,EAAK,EAAc,WAAa,KAAY,OAAI,EAAG,OAAS,KAChE,MAAM,IAAI,EAAyB,CACjC,KAAM,EACN,QAAS,0CACX,CAAC,EAEH,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EAAc,GAClB,SAAU,EAAc,SAAS,IACnC,CAAC,EACD,EAAU,GAAS,CACjB,GAAI,EAAc,GAClB,KAAM,WACN,SAAU,CACR,KAAM,EAAc,SAAS,KAC7B,WAAY,EAAK,EAAc,SAAS,YAAc,KAAO,EAAK,EACpE,EACA,YAAa,EACf,EACA,IAAM,EAAY,EAAU,GAC5B,KAAM,EAAK,EAAU,WAAa,KAAY,OAAI,EAAG,OAAS,QAAU,EAAK,EAAU,WAAa,KAAY,OAAI,EAAG,YAAc,KAAM,CACzI,GAAI,EAAU,SAAS,UAAU,OAAS,EACxC,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EAAU,GACd,MAAO,EAAU,SAAS,SAC5B,CAAC,EAEH,GAAI,EAAe,EAAU,SAAS,SAAS,EAC7C,EAAW,QAAQ,CACjB,KAAM,iBACN,GAAI,EAAU,EAChB,CAAC,EACD,EAAW,QAAQ,CACjB,KAAM,YACN,YAAa,EAAK,EAAU,KAAO,KAAO,EAAK,EAAW,EAC1D,SAAU,EAAU,SAAS,KAC7B,MAAO,EAAU,SAAS,SAC5B,CAAC,EACD,EAAU,YAAc,GAG5B,SAEF,IAAM,EAAW,EAAU,GAC3B,GAAI,EAAS,YACX,SAEF,KAAM,EAAK,EAAc,WAAa,KAAY,OAAI,EAAG,YAAc,KACrE,EAAS,SAAS,YAAc,GAAM,EAAK,EAAc,WAAa,KAAY,OAAI,EAAG,YAAc,KAAO,EAAK,GAOrH,GALA,EAAW,QAAQ,CACjB,KAAM,mBACN,GAAI,EAAS,GACb,OAAQ,EAAK,EAAc,SAAS,YAAc,KAAO,EAAK,EAChE,CAAC,IACK,EAAK,EAAS,WAAa,KAAY,OAAI,EAAG,OAAS,QAAU,EAAK,EAAS,WAAa,KAAY,OAAI,EAAG,YAAc,MAAQ,EAAe,EAAS,SAAS,SAAS,EACnL,EAAW,QAAQ,CACjB,KAAM,iBACN,GAAI,EAAS,EACf,CAAC,EACD,EAAW,QAAQ,CACjB,KAAM,YACN,YAAa,EAAK,EAAS,KAAO,KAAO,EAAK,EAAW,EACzD,SAAU,EAAS,SAAS,KAC5B,MAAO,EAAS,SAAS,SAC3B,CAAC,EACD,EAAS,YAAc,MAK/B,KAAK,CAAC,EAAY,CAChB,GAAI,EACF,EAAW,QAAQ,CAAE,KAAM,gBAAiB,GAAI,aAAc,CAAC,EAEjE,GAAI,EACF,EAAW,QAAQ,CAAE,KAAM,WAAY,GAAI,OAAQ,CAAC,EAEtD,EAAW,QAAQ,CACjB,KAAM,SACN,eACA,MAAO,EAAiB,CAAK,KAC1B,GAAoB,KAAO,CAAE,kBAAiB,EAAI,CAAC,CACxD,CAAC,EAEL,CAAC,CACH,EACA,QAAS,CAAE,MAAK,EAChB,SAAU,CAAE,QAAS,CAAgB,CACvC,EAEJ,EACI,GAAyB,EAAG,OAAO,CACrC,GAAI,EAAG,OAAO,EAAE,QAAQ,EACxB,QAAS,EAAG,OAAO,EAAE,QAAQ,EAC7B,MAAO,EAAG,OAAO,EAAE,QAAQ,EAC3B,QAAS,EAAG,MACV,EAAG,OAAO,CACR,QAAS,EAAG,OAAO,CACjB,QAAS,EAAG,OAAO,EAAE,QAAQ,EAC7B,UAAW,EAAG,OAAO,EAAE,QAAQ,EAC/B,WAAY,EAAG,MACb,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EAAE,QAAQ,EACxB,KAAM,EAAG,QAAQ,UAAU,EAC3B,SAAU,EAAG,OAAO,CAClB,KAAM,EAAG,OAAO,EAChB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,EAAE,QAAQ,CACZ,CAAC,EACD,MAAO,EAAG,OAAO,EACjB,cAAe,EAAG,OAAO,EAAE,QAAQ,CACrC,CAAC,CACH,EACA,MAAO,EAAG,OAAO,CACf,cAAe,EAAG,OAAO,EAAE,QAAQ,EACnC,kBAAmB,EAAG,OAAO,EAAE,QAAQ,EACvC,aAAc,EAAG,OAAO,EAAE,QAAQ,EAClC,sBAAuB,EAAG,OAAO,CAC/B,cAAe,EAAG,OAAO,EAAE,QAAQ,CACrC,CAAC,EAAE,QAAQ,EACX,0BAA2B,EAAG,OAAO,CACnC,iBAAkB,EAAG,OAAO,EAAE,QAAQ,CACxC,CAAC,EAAE,QAAQ,CACb,CAAC,EAAE,QAAQ,CACb,CAAC,EACG,GAAsB,EAAG,MAAM,CACjC,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EAAE,QAAQ,EACxB,QAAS,EAAG,OAAO,EAAE,QAAQ,EAC7B,MAAO,EAAG,OAAO,EAAE,QAAQ,EAC3B,QAAS,EAAG,MACV,EAAG,OAAO,CACR,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,EAAE,QAAQ,EAC7B,UAAW,EAAG,OAAO,EAAE,QAAQ,EAC/B,WAAY,EAAG,MACb,EAAG,OAAO,CACR,MAAO,EAAG,OAAO,EACjB,GAAI,EAAG,OAAO,EAAE,QAAQ,EACxB,KAAM,EAAG,QAAQ,UAAU,EAAE,SAAS,EACtC,SAAU,EAAG,OAAO,CAClB,KAAM,EAAG,OAAO,EAAE,QAAQ,EAC1B,UAAW,EAAG,OAAO,EAAE,QAAQ,CACjC,CAAC,CACH,CAAC,CACH,EAAE,QAAQ,CACZ,CAAC,EAAE,QAAQ,EACX,cAAe,EAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAC/C,MAAO,EAAG,OAAO,CACnB,CAAC,CACH,EACA,OAAQ,EAAG,OAAO,CAChB,MAAO,EAAG,OAAO,CACf,cAAe,EAAG,OAAO,EAAE,QAAQ,EACnC,kBAAmB,EAAG,OAAO,EAAE,QAAQ,EACvC,aAAc,EAAG,OAAO,EAAE,QAAQ,EAClC,sBAAuB,EAAG,OAAO,CAC/B,cAAe,EAAG,OAAO,EAAE,QAAQ,CACrC,CAAC,EAAE,QAAQ,EACX,0BAA2B,EAAG,OAAO,CACnC,iBAAkB,EAAG,OAAO,EAAE,QAAQ,CACxC,CAAC,EAAE,QAAQ,CACb,CAAC,EAAE,QAAQ,CACb,CAAC,EAAE,QAAQ,CACb,CAAC,EACD,EACF,CAAC,EAgBG,GAAgC,GAClC,IAAM,GACJ,EAAG,OAAO,CACR,SAAU,EAAG,OAAO,EAAE,QAAQ,EAC9B,OAAQ,EAAG,OAAO,EAAE,QAAQ,EAC5B,eAAgB,EAAG,OAAO,EAAE,QAAQ,EACpC,YAAa,EAAG,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAC/C,uBAAwB,EAAG,MAAM,EAAG,OAAO,CAAC,EAAE,QAAQ,CACxD,CAAC,CACH,CACF,EAGI,GAAyB,KAAM,CACjC,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,qBAAuB,QAE1B,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,EACX,QACA,YACA,mBACC,CACD,IAAI,EAAI,EAAI,EAAI,EAAI,EACpB,IAAM,EAAW,CAAC,EACZ,EAAc,MAAM,EAAsB,CAC9C,SAAU,OACV,kBACA,OAAQ,EACV,CAAC,EACK,EAAW,IAAI,SACf,EAAO,aAAiB,WAAa,IAAI,KAAK,CAAC,CAAK,CAAC,EAAI,IAAI,KAAK,CAAC,EAA0B,CAAK,CAAC,CAAC,EAC1G,EAAS,OAAO,QAAS,KAAK,OAAO,EACrC,IAAM,EAAgB,EAAqB,CAAS,EAMpD,GALA,EAAS,OACP,OACA,IAAI,KAAK,CAAC,CAAI,EAAG,QAAS,CAAE,KAAM,CAAU,CAAC,EAC7C,SAAS,GACX,EACI,EAAa,CACf,IAAM,EAA4B,CAChC,UAAW,EAAK,EAAY,WAAa,KAAO,EAAU,OAC1D,QAAS,EAAK,EAAY,SAAW,KAAO,EAAU,OACtD,iBAAkB,EAAK,EAAY,iBAAmB,KAAO,EAAU,OACvE,aAAc,EAAK,EAAY,cAAgB,KAAO,EAAU,OAChE,yBAA0B,EAAK,EAAY,yBAA2B,KAAO,EAAU,MACzF,EACA,QAAW,KAAO,EAA2B,CAC3C,IAAM,EAAQ,EAA0B,GACxC,GAAI,IAAe,OACjB,GAAI,MAAM,QAAQ,CAAK,EACrB,QAAW,KAAQ,EACjB,EAAS,OAAO,GAAG,MAAS,OAAO,CAAI,CAAC,EAG1C,OAAS,OAAO,EAAK,OAAO,CAAK,CAAC,GAK1C,MAAO,CACL,WACA,UACF,OAEI,WAAU,CAAC,EAAS,CACxB,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5B,IAAM,GAAe,GAAM,GAAM,EAAK,KAAK,OAAO,YAAc,KAAY,OAAI,EAAG,cAAgB,KAAY,OAAI,EAAG,KAAK,CAAE,IAAM,KAAO,EAAqB,IAAI,MAC3J,WAAU,YAAa,MAAM,KAAK,QAAQ,CAAO,GAEvD,MAAO,EACP,kBACA,SAAU,GACR,MAAM,GAAkB,CAC1B,IAAK,KAAK,OAAO,IAAI,CACnB,KAAM,wBACN,QAAS,KAAK,OAChB,CAAC,EACD,QAAS,EAAgB,KAAK,OAAO,QAAQ,EAAG,EAAQ,OAAO,EAC/D,WACA,sBAAuB,EACvB,0BAA2B,EACzB,EACF,EACA,YAAa,EAAQ,YACrB,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,KAAM,EAAS,KACf,UAAW,GAAM,EAAK,EAAS,WAAa,KAAY,OAAI,EAAG,IAAI,CAAC,KAAa,CAC/E,KAAM,EAAQ,KACd,YAAa,EAAQ,MACrB,UAAW,EAAQ,GACrB,EAAE,IAAM,KAAO,EAAK,CAAC,EACrB,UAAW,EAAK,EAAS,WAAa,KAAO,EAAU,OACvD,mBAAoB,EAAK,EAAS,WAAa,KAAO,EAAU,OAChE,WACA,SAAU,CACR,UAAW,EACX,QAAS,KAAK,QACd,QAAS,EACT,KAAM,CACR,CACF,EAEJ,EACI,GAAkC,EAAG,OAAO,CAC9C,KAAM,EAAG,OAAO,EAChB,OAAQ,EAAG,OAAO,CAChB,GAAI,EAAG,OAAO,CAChB,CAAC,EAED,KAAM,EAAG,OAAO,EAAE,QAAQ,EAC1B,SAAU,EAAG,OAAO,EAAE,QAAQ,EAC9B,SAAU,EAAG,OAAO,EAAE,QAAQ,EAC9B,SAAU,EAAG,MACX,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EACd,KAAM,EAAG,OAAO,EAChB,MAAO,EAAG,OAAO,EACjB,IAAK,EAAG,OAAO,EACf,KAAM,EAAG,OAAO,EAChB,OAAQ,EAAG,MAAM,EAAG,OAAO,CAAC,EAC5B,YAAa,EAAG,OAAO,EACvB,YAAa,EAAG,OAAO,EACvB,kBAAmB,EAAG,OAAO,EAC7B,eAAgB,EAAG,OAAO,CAC5B,CAAC,CACH,EAAE,QAAQ,CACZ,CAAC,EAKG,GAAgB,GAA0B,CAC5C,GAAI,sBACJ,YAAa,EAAG,OAAO,CAAC,CAAC,CAC3B,CAAC,EAGG,GAAY,CACd,gBACF,EAGI,GAAiB,SAGrB,SAAS,EAAU,CAAC,EAAU,CAAC,EAAG,CAChC,IAAI,EACJ,IAAM,GAAW,EAAK,GAAqB,EAAQ,OAAO,IAAM,KAAO,EAAK,iCACtE,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,eACzB,YAAa,MACf,CAAC,OACE,EAAQ,OACb,EACA,eAAe,IACjB,EACM,EAAkB,CAAC,IAAY,IAAI,GAAsB,EAAS,CACtE,SAAU,YACV,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,EACK,EAAsB,CAAC,IAAY,CACvC,GAAI,WACF,MAAU,MACR,gEACF,EAEF,OAAO,EAAgB,CAAO,GAE1B,EAA2B,CAAC,IAAY,CAC5C,OAAO,IAAI,GAAuB,EAAS,CACzC,SAAU,qBACV,IAAK,EAAG,UAAW,GAAG,IAAU,IAChC,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,GAEG,EAAW,QAAQ,CAAC,EAAS,CACjC,OAAO,EAAoB,CAAO,GAepC,OAbA,EAAS,qBAAuB,KAChC,EAAS,cAAgB,EACzB,EAAS,KAAO,EAChB,EAAS,eAAiB,CAAC,IAAY,CACrC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,gBAAiB,CAAC,GAErE,EAAS,mBAAqB,EAAS,eACvC,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,EAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAEjE,EAAS,cAAgB,EACzB,EAAS,mBAAqB,EAC9B,EAAS,MAAQ,GACV,EAET,IAAI,GAAO,GAAW",
"debugId": "6D123117271FAE2264756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "B41E8AF63856D0E364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["src/commands/handlers/service/set.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../../commands\"\nimport { Runtime } from \"../../../framework/runtime\"\nimport { ServiceConfig } from \"../../../services/service-config\"\n\nexport default Runtime.handler(\n Commands.commands.service.commands.set,\n Effect.fn(\"cli.service.set\")(function* (input) {\n yield* ServiceConfig.set(input.key, input.value)\n }),\n)\n"
],
"mappings": ";08BAKA,SAAe,SAAQ,aACrB,OAAS,cAAS,aAAQ,cAAS,SACnC,OAAO,QAAG,sBAAiB,OAAE,cAAU,MAAC,OAAO,MAC7C,WAAO,OAAc,SAAI,OAAM,SAAK,OAAM,UAAK,OAChD,MACH",
"debugId": "903BBD5116076DA864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+perplexity@3.0.26+d6123d32214422cb/node_modules/@ai-sdk/perplexity/dist/index.mjs"],
"sourcesContent": [
"// src/perplexity-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/perplexity-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/convert-perplexity-usage.ts\nfunction convertPerplexityUsage(usage) {\n var _a, _b, _c;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_c = usage.reasoning_tokens) != null ? _c : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-perplexity-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertUint8ArrayToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToPerplexityMessages(prompt) {\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\":\n case \"assistant\": {\n const hasMultipartContent = content.some(\n (part) => part.type === \"file\" && part.mediaType.startsWith(\"image/\") || part.type === \"file\" && part.mediaType === \"application/pdf\"\n );\n const messageContent = content.map((part, index) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text\n };\n }\n case \"file\": {\n if (part.mediaType === \"application/pdf\") {\n return part.data instanceof URL ? {\n type: \"file_url\",\n file_url: {\n url: part.data.toString()\n },\n file_name: part.filename\n } : {\n type: \"file_url\",\n file_url: {\n url: typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)\n },\n file_name: part.filename || `document-${index}.pdf`\n };\n } else if (part.mediaType.startsWith(\"image/\")) {\n return part.data instanceof URL ? {\n type: \"image_url\",\n image_url: {\n url: part.data.toString()\n }\n } : {\n type: \"image_url\",\n image_url: {\n url: `data:${(_a = part.mediaType) != null ? _a : \"image/jpeg\"};base64,${typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)}`\n }\n };\n }\n }\n }\n }).filter(Boolean);\n messages.push({\n role,\n content: hasMultipartContent ? messageContent : messageContent.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\")\n });\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"Tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/map-perplexity-finish-reason.ts\nfunction mapPerplexityFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"length\":\n return finishReason;\n default:\n return \"other\";\n }\n}\n\n// src/perplexity-language-model.ts\nvar PerplexityLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"perplexity\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions\n }) {\n var _a;\n const warnings = [];\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n max_tokens: maxOutputTokens,\n presence_penalty: presencePenalty,\n temperature,\n top_k: topK,\n top_p: topP,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? {\n type: \"json_schema\",\n json_schema: { schema: responseFormat.schema }\n } : void 0,\n // provider extensions\n ...(_a = providerOptions == null ? void 0 : providerOptions.perplexity) != null ? _a : {},\n // messages:\n messages: convertToPerplexityMessages(prompt)\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const { args: body, warnings } = this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n if (response.citations != null) {\n for (const url of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata: {\n perplexity: {\n images: (_c = (_b = response.images) == null ? void 0 : _b.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }))) != null ? _c : null,\n usage: {\n citationTokens: (_e = (_d = response.usage) == null ? void 0 : _d.citation_tokens) != null ? _e : null,\n numSearchQueries: (_g = (_f = response.usage) == null ? void 0 : _f.num_search_queries) != null ? _g : null\n },\n cost: ((_h = response.usage) == null ? void 0 : _h.cost) ? {\n inputTokensCost: (_i = response.usage.cost.input_tokens_cost) != null ? _i : null,\n outputTokensCost: (_j = response.usage.cost.output_tokens_cost) != null ? _j : null,\n requestCost: (_k = response.usage.cost.request_cost) != null ? _k : null,\n totalCost: (_l = response.usage.cost.total_cost) != null ? _l : null\n } : null\n }\n }\n };\n }\n async doStream(options) {\n const { args, warnings } = this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n const providerMetadata = {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries: null\n },\n cost: null,\n images: null\n }\n };\n let isFirstChunk = true;\n let isActive = false;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n (_a = value.citations) == null ? void 0 : _a.forEach((url) => {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url\n });\n });\n isFirstChunk = false;\n }\n if (value.usage != null) {\n usage = value.usage;\n providerMetadata.perplexity.usage = {\n citationTokens: (_b = value.usage.citation_tokens) != null ? _b : null,\n numSearchQueries: (_c = value.usage.num_search_queries) != null ? _c : null\n };\n providerMetadata.perplexity.cost = value.usage.cost ? {\n inputTokensCost: (_d = value.usage.cost.input_tokens_cost) != null ? _d : null,\n outputTokensCost: (_e = value.usage.cost.output_tokens_cost) != null ? _e : null,\n requestCost: (_f = value.usage.cost.request_cost) != null ? _f : null,\n totalCost: (_g = value.usage.cost.total_cost) != null ? _g : null\n } : null;\n }\n if (value.images != null) {\n providerMetadata.perplexity.images = value.images.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }));\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const textContent = delta.content;\n if (textContent != null) {\n if (!isActive) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n isActive = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n },\n flush(controller) {\n if (isActive) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id,\n modelId: model,\n timestamp: new Date(created * 1e3)\n };\n}\nvar perplexityCostSchema = z.object({\n input_tokens_cost: z.number().nullish(),\n output_tokens_cost: z.number().nullish(),\n request_cost: z.number().nullish(),\n total_cost: z.number().nullish()\n});\nvar perplexityUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number().nullish(),\n citation_tokens: z.number().nullish(),\n num_search_queries: z.number().nullish(),\n reasoning_tokens: z.number().nullish(),\n cost: perplexityCostSchema.nullish()\n});\nvar perplexityImageSchema = z.object({\n image_url: z.string(),\n origin_url: z.string(),\n height: z.number(),\n width: z.number()\n});\nvar perplexityResponseSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityChunkSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityErrorSchema = z.object({\n error: z.object({\n code: z.number(),\n message: z.string().nullish(),\n type: z.string().nullish()\n })\n});\nvar errorToMessage = (data) => {\n var _a, _b;\n return (_b = (_a = data.error.message) != null ? _a : data.error.type) != null ? _b : \"unknown error\";\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.26\" : \"0.0.0-test\";\n\n// src/perplexity-provider.ts\nfunction createPerplexity(options = {}) {\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"PERPLEXITY_API_KEY\",\n description: \"Perplexity\"\n })}`,\n ...options.headers\n },\n `ai-sdk/perplexity/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a;\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.perplexity.ai\"\n ),\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar perplexity = createPerplexity();\nexport {\n VERSION,\n createPerplexity,\n perplexity\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "DAA23497C98A882764756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260703181610_event_created_column.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260703181610_event_created_column\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`event\\` ADD \\`created\\` integer NOT NULL;`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAyD,EACxE,EAEL",
"debugId": "6932B3D5512A70C664756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "18649092C456CFC464756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+deepinfra@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/deepinfra/dist/index.mjs"],
"sourcesContent": [
"// src/deepinfra-provider.ts\nimport {\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/deepinfra-image-model.ts\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n convertToFormData,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n downloadBlob,\n postFormDataToApi,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar DeepInfraImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n if (files != null && files.length > 0) {\n const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n url: this.getEditUrl(),\n headers: combineHeaders(this.config.headers(), headers),\n formData: convertToFormData(\n {\n model: this.modelId,\n prompt,\n image: await Promise.all(files.map((file) => fileToBlob(file))),\n mask: mask != null ? await fileToBlob(mask) : void 0,\n n,\n size,\n ...(_d = providerOptions.deepinfra) != null ? _d : {}\n },\n { useArrayBrackets: false }\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraEditErrorSchema,\n errorToMessage: (error) => {\n var _a2, _b2;\n return (_b2 = (_a2 = error.error) == null ? void 0 : _a2.message) != null ? _b2 : \"Unknown error\";\n }\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraEditResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response2.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders2\n }\n };\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/${this.modelId}`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n num_images: n,\n ...aspectRatio && { aspect_ratio: aspectRatio },\n ...splitSize && { width: splitSize[0], height: splitSize[1] },\n ...seed != null && { seed },\n ...(_e = providerOptions.deepinfra) != null ? _e : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraErrorSchema,\n errorToMessage: (error) => error.detail.error\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.images.map(\n (image) => image.replace(/^data:image\\/\\w+;base64,/, \"\")\n ),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n getEditUrl() {\n const baseUrl = this.config.baseURL.replace(\"/inference\", \"/openai\");\n return `${baseUrl}/images/edits`;\n }\n};\nvar deepInfraErrorSchema = z.object({\n detail: z.object({\n error: z.string()\n })\n});\nvar deepInfraImageResponseSchema = z.object({\n images: z.array(z.string())\n});\nvar deepInfraEditErrorSchema = z.object({\n error: z.object({\n message: z.string()\n }).optional()\n});\nvar deepInfraEditResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() }))\n});\nasync function fileToBlob(file) {\n if (file.type === \"url\") {\n return downloadBlob(file.url);\n }\n const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array(file.data);\n return new Blob([data], { type: file.mediaType });\n}\n\n// src/deepinfra-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nvar DeepInfraChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n constructor(modelId, config) {\n super(modelId, config);\n }\n /**\n * Fixes incorrect token usage for Gemini/Gemma models from DeepInfra.\n *\n * DeepInfra's API returns completion_tokens that don't include reasoning_tokens\n * for Gemini/Gemma models, which violates the OpenAI-compatible spec.\n * According to the spec, completion_tokens should include reasoning_tokens.\n *\n * Example of incorrect data from DeepInfra:\n * {\n * \"completion_tokens\": 84, // text-only tokens\n * \"completion_tokens_details\": {\n * \"reasoning_tokens\": 1081 // reasoning tokens not included above\n * }\n * }\n *\n * This would result in negative text tokens: 84 - 1081 = -997\n *\n * The fix: If reasoning_tokens > completion_tokens, add reasoning_tokens\n * to completion_tokens: 84 + 1081 = 1165\n */\n fixUsageForGeminiModels(usage) {\n var _a, _b;\n if (!usage || !((_a = usage.completion_tokens_details) == null ? void 0 : _a.reasoning_tokens)) {\n return usage;\n }\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = usage.completion_tokens_details.reasoning_tokens;\n if (reasoningTokens > completionTokens) {\n const correctedCompletionTokens = completionTokens + reasoningTokens;\n return {\n ...usage,\n // Add reasoning_tokens to completion_tokens to get the correct total\n completion_tokens: correctedCompletionTokens,\n // Update total_tokens if present\n total_tokens: usage.total_tokens != null ? usage.total_tokens + reasoningTokens : void 0\n };\n }\n return usage;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = await super.doGenerate(options);\n if ((_a = result.usage) == null ? void 0 : _a.raw) {\n const fixedRawUsage = this.fixUsageForGeminiModels(result.usage.raw);\n if (fixedRawUsage !== result.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n return {\n ...result,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n };\n }\n }\n return result;\n }\n async doStream(options) {\n const result = await super.doStream(options);\n const originalStream = result.stream;\n const fixUsage = this.fixUsageForGeminiModels.bind(this);\n const transformedStream = new ReadableStream({\n async start(controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n const reader = originalStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\" && ((_a = value.usage) == null ? void 0 : _a.raw)) {\n const fixedRawUsage = fixUsage(value.usage.raw);\n if (fixedRawUsage !== value.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n controller.enqueue({\n ...value,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n });\n } else {\n controller.enqueue(value);\n }\n } else {\n controller.enqueue(value);\n }\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n }\n });\n return {\n ...result,\n stream: transformedStream\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/deepinfra-provider.ts\nfunction createDeepInfra(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepinfra.com/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPINFRA_API_KEY\",\n description: \"DeepInfra's API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepinfra/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `deepinfra.${modelType}`,\n url: ({ path }) => `${baseURL}/openai${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new DeepInfraChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new DeepInfraImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL ? `${baseURL}/inference` : \"https://api.deepinfra.com/v1/inference\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.languageModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n return provider;\n}\nvar deepinfra = createDeepInfra();\nexport {\n VERSION,\n createDeepInfra,\n deepinfra\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": ";wVAuBA,SAAI,OAAsB,UAAM,MAC9B,gBAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,qBAAuB,KAC5B,KAAK,iBAAmB,KAEtB,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,WAAU,EACd,SACA,IACA,OACA,cACA,OACA,kBACA,UACA,cACA,QACA,QACC,CACD,IAAI,EAAI,EAAI,EAAI,EAAI,EACpB,IAAM,EAAW,CAAC,EACZ,GAAe,GAAM,GAAM,EAAK,KAAK,OAAO,YAAc,KAAY,OAAI,EAAG,cAAgB,KAAY,OAAI,EAAG,KAAK,CAAE,IAAM,KAAO,EAAqB,IAAI,KACnK,GAAI,GAAS,MAAQ,EAAM,OAAS,EAAG,CACrC,IAAQ,MAAO,EAAW,gBAAiB,GAAqB,MAAM,EAAkB,CACtF,IAAK,KAAK,WAAW,EACrB,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,CAAO,EACtD,SAAU,EACR,CACE,MAAO,KAAK,QACZ,SACA,MAAO,MAAM,QAAQ,IAAI,EAAM,IAAI,CAAC,IAAS,EAAW,CAAI,CAAC,CAAC,EAC9D,KAAM,GAAQ,KAAO,MAAM,EAAW,CAAI,EAAS,OACnD,IACA,WACI,EAAK,EAAgB,YAAc,KAAO,EAAK,CAAC,CACtD,EACA,CAAE,iBAAkB,EAAM,CAC5B,EACA,sBAAuB,EAA+B,CACpD,YAAa,EACb,eAAgB,CAAC,IAAU,CACzB,IAAI,EAAK,EACT,OAAQ,GAAO,EAAM,EAAM,QAAU,KAAY,OAAI,EAAI,UAAY,KAAO,EAAM,gBAEtF,CAAC,EACD,0BAA2B,EACzB,CACF,EACA,cACA,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,OAAQ,EAAU,KAAK,IAAI,CAAC,IAAS,EAAK,QAAQ,EAClD,WACA,SAAU,CACR,UAAW,EACX,QAAS,KAAK,QACd,QAAS,CACX,CACF,EAEF,IAAM,EAAY,GAAQ,KAAY,OAAI,EAAK,MAAM,GAAG,GAChD,MAAO,EAAU,mBAAoB,MAAM,EAAc,CAC/D,IAAK,GAAG,KAAK,OAAO,WAAW,KAAK,UACpC,QAAS,EAAe,KAAK,OAAO,QAAQ,EAAG,CAAO,EACtD,KAAM,CACJ,SACA,WAAY,KACT,GAAe,CAAE,aAAc,CAAY,KAC3C,GAAa,CAAE,MAAO,EAAU,GAAI,OAAQ,EAAU,EAAG,KACzD,GAAQ,MAAQ,CAAE,MAAK,MACtB,EAAK,EAAgB,YAAc,KAAO,EAAK,CAAC,CACtD,EACA,sBAAuB,EAA+B,CACpD,YAAa,EACb,eAAgB,CAAC,IAAU,EAAM,OAAO,KAC1C,CAAC,EACD,0BAA2B,EACzB,CACF,EACA,cACA,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,OAAQ,EAAS,OAAO,IACtB,CAAC,IAAU,EAAM,QAAQ,2BAA4B,EAAE,CACzD,EACA,WACA,SAAU,CACR,UAAW,EACX,QAAS,KAAK,QACd,QAAS,CACX,CACF,EAEF,UAAU,EAAG,CAEX,MAAO,GADS,KAAK,OAAO,QAAQ,QAAQ,aAAc,SAAS,iBAGvE,EACI,EAAuB,EAAE,OAAO,CAClC,OAAQ,EAAE,OAAO,CACf,MAAO,EAAE,OAAO,CAClB,CAAC,CACH,CAAC,EACG,EAA+B,EAAE,OAAO,CAC1C,OAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAC5B,CAAC,EACG,EAA2B,EAAE,OAAO,CACtC,MAAO,EAAE,OAAO,CACd,QAAS,EAAE,OAAO,CACpB,CAAC,EAAE,SAAS,CACd,CAAC,EACG,EAA8B,EAAE,OAAO,CACzC,KAAM,EAAE,MAAM,EAAE,OAAO,CAAE,SAAU,EAAE,OAAO,CAAE,CAAC,CAAC,CAClD,CAAC,EACD,eAAe,CAAU,CAAC,EAAM,CAC9B,GAAI,EAAK,OAAS,MAChB,OAAO,EAAa,EAAK,GAAG,EAE9B,IAAM,EAAO,EAAK,gBAAgB,WAAa,EAAK,KAAO,EAA0B,EAAK,IAAI,EAC9F,OAAO,IAAI,KAAK,CAAC,CAAI,EAAG,CAAE,KAAM,EAAK,SAAU,CAAC,EAKlD,IAAI,EAA6B,cAAc,CAAkC,CAC/E,WAAW,CAAC,EAAS,EAAQ,CAC3B,MAAM,EAAS,CAAM,EAsBvB,uBAAuB,CAAC,EAAO,CAC7B,IAAI,EAAI,EACR,GAAI,CAAC,GAAS,GAAG,EAAK,EAAM,4BAA8B,KAAY,OAAI,EAAG,kBAC3E,OAAO,EAET,IAAM,GAAoB,EAAK,EAAM,oBAAsB,KAAO,EAAK,EACjE,EAAkB,EAAM,0BAA0B,iBACxD,GAAI,EAAkB,EAAkB,CACtC,IAAM,EAA4B,EAAmB,EACrD,MAAO,IACF,EAEH,kBAAmB,EAEnB,aAAc,EAAM,cAAgB,KAAO,EAAM,aAAe,EAAuB,MACzF,EAEF,OAAO,OAEH,WAAU,CAAC,EAAS,CACxB,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5B,IAAM,EAAS,MAAM,MAAM,WAAW,CAAO,EAC7C,IAAK,EAAK,EAAO,QAAU,KAAY,OAAI,EAAG,IAAK,CACjD,IAAM,EAAgB,KAAK,wBAAwB,EAAO,MAAM,GAAG,EACnE,GAAI,IAAkB,EAAO,MAAM,IAAK,CACtC,IAAM,GAAgB,EAAK,EAAc,gBAAkB,KAAO,EAAK,EACjE,GAAoB,EAAK,EAAc,oBAAsB,KAAO,EAAK,EACzE,GAAmB,GAAM,EAAK,EAAc,wBAA0B,KAAY,OAAI,EAAG,gBAAkB,KAAO,EAAK,EACvH,GAAmB,GAAM,EAAK,EAAc,4BAA8B,KAAY,OAAI,EAAG,mBAAqB,KAAO,EAAK,EACpI,MAAO,IACF,EACH,MAAO,CACL,YAAa,CACX,MAAO,EACP,QAAS,EAAe,EACxB,UAAW,EACX,WAAiB,MACnB,EACA,aAAc,CACZ,MAAO,EACP,KAAM,EAAmB,EACzB,UAAW,CACb,EACA,IAAK,CACP,CACF,GAGJ,OAAO,OAEH,SAAQ,CAAC,EAAS,CACtB,IAAM,EAAS,MAAM,MAAM,SAAS,CAAO,EACrC,EAAiB,EAAO,OACxB,EAAW,KAAK,wBAAwB,KAAK,IAAI,EACjD,EAAoB,IAAI,eAAe,MACrC,MAAK,CAAC,EAAY,CACtB,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5B,IAAM,EAAS,EAAe,UAAU,EACxC,GAAI,CACF,MAAO,GAAM,CACX,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EAAM,MACV,GAAI,EAAM,OAAS,YAAc,EAAK,EAAM,QAAU,KAAY,OAAI,EAAG,KAAM,CAC7E,IAAM,EAAgB,EAAS,EAAM,MAAM,GAAG,EAC9C,GAAI,IAAkB,EAAM,MAAM,IAAK,CACrC,IAAM,GAAgB,EAAK,EAAc,gBAAkB,KAAO,EAAK,EACjE,GAAoB,EAAK,EAAc,oBAAsB,KAAO,EAAK,EACzE,GAAmB,GAAM,EAAK,EAAc,wBAA0B,KAAY,OAAI,EAAG,gBAAkB,KAAO,EAAK,EACvH,GAAmB,GAAM,EAAK,EAAc,4BAA8B,KAAY,OAAI,EAAG,mBAAqB,KAAO,EAAK,EACpI,EAAW,QAAQ,IACd,EACH,MAAO,CACL,YAAa,CACX,MAAO,EACP,QAAS,EAAe,EACxB,UAAW,EACX,WAAiB,MACnB,EACA,aAAc,CACZ,MAAO,EACP,KAAM,EAAmB,EACzB,UAAW,CACb,EACA,IAAK,CACP,CACF,CAAC,EAED,OAAW,QAAQ,CAAK,EAG1B,OAAW,QAAQ,CAAK,EAG5B,EAAW,MAAM,EACjB,MAAO,EAAO,CACd,EAAW,MAAM,CAAK,GAG5B,CAAC,EACD,MAAO,IACF,EACH,OAAQ,CACV,EAEJ,EAGI,EAAiB,SAGrB,SAAS,CAAe,CAAC,EAAU,CAAC,EAAG,CACrC,IAAI,EACJ,IAAM,EAAU,GACb,EAAK,EAAQ,UAAY,KAAO,EAAK,8BACxC,EACM,EAAa,IAAM,EACvB,CACE,cAAe,UAAU,EAAW,CAClC,OAAQ,EAAQ,OAChB,wBAAyB,oBACzB,YAAa,qBACf,CAAC,OACE,EAAQ,OACb,EACA,oBAAoB,GACtB,EACM,EAAuB,CAAC,KAAe,CAC3C,SAAU,aAAa,IACvB,IAAK,EAAG,UAAW,GAAG,WAAiB,IACvC,QAAS,EACT,MAAO,EAAQ,KACjB,GACM,EAAkB,CAAC,IAAY,CACnC,OAAO,IAAI,EACT,EACA,EAAqB,MAAM,CAC7B,GAEI,EAAwB,CAAC,IAAY,IAAI,EAC7C,EACA,EAAqB,YAAY,CACnC,EACM,EAAuB,CAAC,IAAY,IAAI,EAC5C,EACA,EAAqB,WAAW,CAClC,EACM,EAAmB,CAAC,IAAY,IAAI,EAAoB,EAAS,IAClE,EAAqB,OAAO,EAC/B,QAAS,EAAU,GAAG,cAAsB,wCAC9C,CAAC,EACK,EAAW,CAAC,IAAY,EAAgB,CAAO,EASrD,OARA,EAAS,qBAAuB,KAChC,EAAS,gBAAkB,EAC3B,EAAS,UAAY,EACrB,EAAS,MAAQ,EACjB,EAAS,WAAa,EACtB,EAAS,cAAgB,EACzB,EAAS,eAAiB,EAC1B,EAAS,mBAAqB,EACvB,EAET,IAAI,GAAY,EAAgB",
"debugId": "707B5ED38D6C6DF864756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+togetherai@2.0.41+d6123d32214422cb/node_modules/@ai-sdk/togetherai/dist/index.mjs"],
"sourcesContent": [
"// src/togetherai-provider.ts\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-model.ts\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar togetheraiErrorSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n message: z.string()\n })\n })\n )\n);\nvar togetheraiRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number()\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number()\n })\n })\n )\n);\n\n// src/reranking/togetherai-reranking-options.ts\nimport { lazySchema as lazySchema2, zodSchema as zodSchema2 } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar togetheraiRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n rankFields: z2.array(z2.string()).optional()\n })\n )\n);\n\n// src/reranking/togetherai-reranking-model.ts\nvar TogetherAIRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a, _b;\n const rerankingOptions = await parseProviderOptions({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema\n });\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions == null ? void 0 : rerankingOptions.rankFields,\n return_documents: false\n // reduce response size\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n modelId: (_b = response.model) != null ? _b : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/togetherai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createJsonResponseHandler as createJsonResponseHandler2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n lazySchema as lazySchema3,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar TogetherAIImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c;\n const warnings = [];\n if (mask != null) {\n throw new Error(\n \"Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"This model does not support the `aspectRatio` option. Use `size` instead.\"\n });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const togetheraiOptions = await parseProviderOptions2({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiImageModelOptionsSchema\n });\n let imageUrl;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n if (files.length > 1) {\n warnings.push({\n type: \"other\",\n message: \"Together AI only supports a single input image. Additional images are ignored.\"\n });\n }\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n seed,\n ...n > 1 ? { n } : {},\n ...splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1])\n },\n ...imageUrl != null ? { image_url: imageUrl } : {},\n response_format: \"base64\",\n ...togetheraiOptions != null ? togetheraiOptions : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: togetheraiErrorSchema2,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler2(\n togetheraiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar togetheraiImageResponseSchema = z3.object({\n data: z3.array(\n z3.object({\n b64_json: z3.string()\n })\n )\n});\nvar togetheraiErrorSchema2 = z3.object({\n error: z3.object({\n message: z3.string()\n })\n});\nvar togetheraiImageModelOptionsSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z3.number().nullish(),\n /**\n * Guidance scale for image generation.\n */\n guidance: z3.number().nullish(),\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z3.string().nullish(),\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z3.boolean().nullish()\n }).passthrough()\n )\n);\n\n// src/version.ts\nvar VERSION = true ? \"2.0.41\" : \"0.0.0-test\";\n\n// src/togetherai-provider.ts\nfunction loadDeprecatedApiKey() {\n if (typeof process === \"undefined\") {\n return void 0;\n }\n if (typeof process.env.TOGETHER_API_KEY === \"string\") {\n return void 0;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === \"string\") {\n console.warn(\n \"TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.\"\n );\n }\n return key;\n}\nfunction createTogetherAI(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.together.xyz/v1/\"\n );\n const getHeaders = () => {\n var _a2;\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),\n environmentVariableName: \"TOGETHER_API_KEY\",\n description: \"TogetherAI\"\n })}`,\n ...options.headers\n },\n `ai-sdk/togetherai/${VERSION}`\n );\n };\n const getCommonModelConfig = (modelType) => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const createRerankingModel = (modelId) => new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig(\"reranking\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n return provider;\n}\nvar togetherai = createTogetherAI();\nexport {\n VERSION,\n createTogetherAI,\n togetherai\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "45AEEB8BBEFE23D464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "242123EF460EFC2464756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@ai-sdk+provider@3.0.10/node_modules/@ai-sdk/provider/dist/index.mjs"],
"sourcesContent": [
"// src/errors/ai-sdk-error.ts\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name14,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name14;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker15) {\n const markerSymbol = Symbol.for(marker15);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\n\n// src/errors/api-call-error.ts\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\n\n// src/errors/empty-response-body-error.ts\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\n\n// src/errors/get-error-message.ts\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\n\n// src/errors/invalid-argument-error.ts\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\n\n// src/errors/invalid-prompt-error.ts\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5, _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\n\n// src/errors/invalid-response-data-error.ts\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\n\n// src/errors/json-parse-error.ts\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\n\n// src/errors/load-api-key-error.ts\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8, _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\n\n// src/errors/load-setting-error.ts\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9, _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\n\n// src/errors/no-content-generated-error.ts\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10, _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\n\n// src/errors/no-such-model-error.ts\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11, _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\n\n// src/errors/too-many-embedding-values-for-call-error.ts\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12, _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\n\n// src/errors/type-validation-error.ts\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13, _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a15, _b15, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a15 = cause.context) == null ? void 0 : _a15.field) === (context == null ? void 0 : context.field) && ((_b15 = cause.context) == null ? void 0 : _b15.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\n\n// src/errors/unsupported-functionality-error.ts\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14, _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// src/json-value/is-json.ts\nfunction isJSONValue(value) {\n if (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n if (typeof value === \"object\") {\n return Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n }\n return false;\n}\nfunction isJSONArray(value) {\n return Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n return value != null && typeof value === \"object\" && Object.entries(value).every(\n ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n );\n}\nexport {\n AISDKError,\n APICallError,\n EmptyResponseBodyError,\n InvalidArgumentError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n LoadSettingError,\n NoContentGeneratedError,\n NoSuchModelError,\n TooManyEmbeddingValuesForCallError,\n TypeValidationError,\n UnsupportedFunctionalityError,\n getErrorMessage,\n isJSONArray,\n isJSONObject,\n isJSONValue\n};\n//# sourceMappingURL=index.mjs.map"
],
"mappings": "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",
"debugId": "723416815678083B64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js", "../../node_modules/.bun/@smithy+credential-provider-imds@4.3.6/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js"],
"sourcesContent": [
"import { CredentialsProviderError } from \"@smithy/core/config\";\nimport { fromImdsCredentials, isImdsCredentials } from \"./remoteProvider/ImdsCredentials\";\nimport { providerConfigFromInit } from \"./remoteProvider/RemoteProviderInit\";\nimport { httpRequest } from \"./remoteProvider/httpRequest\";\nimport { retry } from \"./remoteProvider/retry\";\nexport const ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nexport const ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nexport const ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nexport const fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = providerConfigFromInit(init);\n return () => retry(async () => {\n const requestOptions = await getCmdsUri({ logger: init.logger });\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!isImdsCredentials(credsResponse)) {\n throw new CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credsResponse);\n }, maxRetries);\n};\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await httpRequest({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = new Set([\"localhost\", \"127.0.0.1\"]);\nconst GREENGRASS_PROTOCOLS = new Set([\"http:\", \"https:\"]);\nconst getCmdsUri = async ({ logger }) => {\n if (process.env[ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[ENV_CMDS_FULL_URI]) {\n let parsed;\n try {\n parsed = new URL(process.env[ENV_CMDS_FULL_URI]);\n }\n catch {\n throw new CredentialsProviderError(`${process.env[ENV_CMDS_FULL_URI]} is not a valid container metadata service URL`, { tryNextLink: false, logger });\n }\n if (!parsed.hostname || !GREENGRASS_HOSTS.has(parsed.hostname)) {\n throw new CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {\n tryNextLink: false,\n logger,\n });\n }\n if (!parsed.protocol || !GREENGRASS_PROTOCOLS.has(parsed.protocol)) {\n throw new CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {\n tryNextLink: false,\n logger,\n });\n }\n return {\n protocol: parsed.protocol,\n hostname: parsed.hostname,\n path: parsed.pathname + parsed.search,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", {\n tryNextLink: false,\n logger,\n });\n};\n",
"export const isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nexport const fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n ...(creds.AccountId && { accountId: creds.AccountId }),\n});\n",
"export const DEFAULT_TIMEOUT = 1000;\nexport const DEFAULT_MAX_RETRIES = 0;\nexport const providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\n",
"import { request } from \"node:http\";\nimport { ProviderError } from \"@smithy/core/config\";\nexport function httpRequest(options) {\n return new Promise((resolve, reject) => {\n const req = request({\n method: \"GET\",\n ...options,\n hostname: options.hostname?.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\n",
"export const retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\n",
"import { CredentialsProviderError, loadConfig } from \"@smithy/core/config\";\nimport { InstanceMetadataV1FallbackError } from \"./error/InstanceMetadataV1FallbackError\";\nimport { fromImdsCredentials, isImdsCredentials } from \"./remoteProvider/ImdsCredentials\";\nimport { providerConfigFromInit } from \"./remoteProvider/RemoteProviderInit\";\nimport { httpRequest } from \"./remoteProvider/httpRequest\";\nimport { retry } from \"./remoteProvider/retry\";\nimport { getInstanceMetadataEndpoint } from \"./utils/getInstanceMetadataEndpoint\";\nimport { staticStabilityProvider } from \"./utils/staticStabilityProvider\";\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nconst PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nconst X_AWS_EC2_METADATA_TOKEN = \"x-aws-ec2-metadata-token\";\nexport const fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });\nconst getInstanceMetadataProvider = (init = {}) => {\n let disableFetchToken = false;\n const { logger, profile } = init;\n const { timeout, maxRetries } = providerConfigFromInit(init);\n const getCredentials = async (maxRetries, options) => {\n const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;\n if (isImdsV1Fallback) {\n let fallbackBlockedFromProfile = false;\n let fallbackBlockedFromProcessEnv = false;\n const configValue = await loadConfig({\n environmentVariableSelector: (env) => {\n const envValue = env[AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProcessEnv = !!envValue && envValue !== \"false\";\n if (envValue === undefined) {\n throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });\n }\n return fallbackBlockedFromProcessEnv;\n },\n configFileSelector: (profile) => {\n const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProfile = !!profileValue && profileValue !== \"false\";\n return fallbackBlockedFromProfile;\n },\n default: false,\n }, {\n profile,\n })();\n if (init.ec2MetadataV1Disabled || configValue) {\n const causes = [];\n if (init.ec2MetadataV1Disabled)\n causes.push(\"credential provider initialization (runtime option ec2MetadataV1Disabled)\");\n if (fallbackBlockedFromProfile)\n causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);\n if (fallbackBlockedFromProcessEnv)\n causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);\n throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(\", \")}].`);\n }\n }\n const imdsProfile = (await retry(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return retry(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(imdsProfile, options, init);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await getInstanceMetadataEndpoint();\n if (disableFetchToken) {\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (no token fetch)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if (error?.statusCode === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (initial)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n [X_AWS_EC2_METADATA_TOKEN]: token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => httpRequest({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options, init) => {\n const credentialsResponse = JSON.parse((await httpRequest({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!isImdsCredentials(credentialsResponse)) {\n throw new CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credentialsResponse);\n};\n",
"import { CredentialsProviderError } from \"@smithy/core/config\";\nexport class InstanceMetadataV1FallbackError extends CredentialsProviderError {\n tryNextLink;\n name = \"InstanceMetadataV1FallbackError\";\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);\n }\n}\n",
"import { loadConfig } from \"@smithy/core/config\";\nimport { parseUrl } from \"@smithy/core/protocols\";\nimport { Endpoint as InstanceMetadataEndpoint } from \"../config/Endpoint\";\nimport { ENDPOINT_CONFIG_OPTIONS } from \"../config/EndpointConfigOptions\";\nimport { EndpointMode } from \"../config/EndpointMode\";\nimport { ENDPOINT_MODE_CONFIG_OPTIONS, } from \"../config/EndpointModeConfigOptions\";\nexport const getInstanceMetadataEndpoint = async () => parseUrl((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nconst getFromEndpointConfig = async () => loadConfig(ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode.IPv4:\n return InstanceMetadataEndpoint.IPv4;\n case EndpointMode.IPv6:\n return InstanceMetadataEndpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);\n }\n};\n",
"export var Endpoint;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(Endpoint || (Endpoint = {}));\n",
"export const ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nexport const CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nexport const ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n",
"export var EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode || (EndpointMode = {}));\n",
"import { EndpointMode } from \"./EndpointMode\";\nexport const ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nexport const CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nexport const ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode.IPv4,\n};\n",
"const STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nexport const getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n `credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: ` +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = credentials.originalExpiration ?? credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\n",
"import { getExtendedInstanceMetadataCredentials } from \"./getExtendedInstanceMetadataCredentials\";\nexport const staticStabilityProvider = (provider, options = {}) => {\n const logger = options?.logger || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = getExtendedInstanceMetadataCredentials(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\n"
],
"mappings": "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",
"debugId": "1B24A70CFC0ADCDA64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": [],
"sourcesContent": [
],
"mappings": "",
"debugId": "16CBEEB628BA615064756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/mini/session-data.ts", "src/mini/stream-v2.transport.ts"],
"sourcesContent": [
"import type { PermissionV2Request, QuestionV2Request } from \"@opencode-ai/client/promise\"\nimport type { FooterView } from \"./types\"\n\nexport function pickBlockerView(input: {\n permission?: PermissionV2Request\n question?: QuestionV2Request\n}): FooterView {\n if (input.permission) return { type: \"permission\", request: input.permission }\n if (input.question) return { type: \"question\", request: input.question }\n return { type: \"prompt\" }\n}\n\nexport function blockerStatus(view: FooterView) {\n if (view.type === \"permission\") return \"awaiting permission\"\n if (view.type === \"question\") return \"awaiting answer\"\n return \"\"\n}\n",
"import type {\n EventSubscribeOutput,\n OpenCodeClient,\n PermissionV2Request,\n QuestionV2Request,\n SessionMessageAssistantTool,\n SessionMessageInfo,\n} from \"@opencode-ai/client/promise\"\nimport { Event } from \"@opencode-ai/schema/event\"\nimport { blockerStatus, pickBlockerView } from \"./session-data\"\nimport { writeSessionOutput } from \"./stream\"\nimport { createSubagentTracker, miniTool, toolCommit } from \"./stream-v2.subagent\"\nimport type {\n FooterApi,\n FooterView,\n LocalReplayAnchor,\n LocalReplayRow,\n RunFilePart,\n RunInput,\n RunPrompt,\n RunPromptPart,\n RunProvider,\n StreamCommit,\n} from \"./types\"\n\ntype Trace = {\n write(type: string, data?: unknown): void\n}\n\ntype StreamInput = {\n sdk: OpenCodeClient\n directory?: string\n sessionID: string\n thinking: boolean\n replay?: boolean\n replayLimit?: number\n limits: () => Record<string, number>\n providers?: () => RunProvider[]\n footer: FooterApi\n trace?: Trace\n signal?: AbortSignal\n onCatalogRefresh?: () => void\n}\n\nexport type SessionTurnInput = {\n agent: string | undefined\n model: RunInput[\"model\"]\n variant: string | undefined\n prompt: RunPrompt\n files: RunFilePart[]\n includeFiles: boolean\n onVisibleOutput?: (anchor: LocalReplayAnchor) => void\n signal?: AbortSignal\n}\n\nexport type SessionResizeReplayInput = {\n localRows: () => LocalReplayRow[]\n reset: () => Promise<void>\n}\n\nexport type SessionTransport = {\n runPromptTurn(input: SessionTurnInput): Promise<void>\n interruptActiveTurn(): Promise<void>\n selectSubagent(sessionID: string | undefined): void\n replayOnResize(input: SessionResizeReplayInput): Promise<boolean>\n close(): Promise<void>\n}\n\ntype Wait = {\n messageID: string\n promoted: boolean\n interrupted: boolean\n failureRendered: boolean\n resolve: () => void\n reject: (error: unknown) => void\n onVisibleOutput?: (anchor: LocalReplayAnchor) => void\n}\n\n// One active session.shell call. The HTTP response is the completion signal;\n// callID correlates the live shell events once shell.started is observed, and\n// abort cancels the blocking request when the user interrupts the turn.\ntype ShellWait = {\n eventID: string\n messageID: string\n callID?: string\n resolve: () => void\n abort: () => void\n}\n\ntype RunV2Event = EventSubscribeOutput\ntype PromptFilePart = Extract<RunPromptPart, { type: \"file\" }>\n\ntype ToolState = {\n messageID: string\n name: string\n input: Record<string, unknown>\n started: number\n running: boolean\n providerState?: Record<string, unknown>\n}\n\ntype State = {\n permissions: PermissionV2Request[]\n questions: QuestionV2Request[]\n view: FooterView\n messageIDs: Set<string>\n text: Map<string, string>\n projectedText: Map<string, string>\n reasoning: Map<string, string>\n projectedReasoning: Map<string, string>\n tools: Map<string, ToolState>\n finishedTools: Set<string>\n skillMessages: Set<string>\n shellCommands: Map<string, string>\n shellStarted: Set<string>\n shellEnded: Set<string>\n shellWait?: ShellWait\n wait?: Wait\n connected: boolean\n closed: boolean\n initial: boolean\n buffered?: RunV2Event[]\n errors: Set<string>\n}\n\nconst money = new Intl.NumberFormat(\"en-US\", { style: \"currency\", currency: \"USD\" })\n\nexport function formatUnknownError(error: unknown): string {\n if (typeof error === \"string\") return error\n if (error instanceof Error) return error.message || error.name\n if (error && typeof error === \"object\") {\n const message = Reflect.get(error, \"message\")\n if (typeof message === \"string\" && message.trim()) return message\n const tag = Reflect.get(error, \"_tag\")\n if (typeof tag === \"string\" && tag.trim()) return tag\n }\n return \"unknown error\"\n}\n\nfunction sessionID(event: RunV2Event) {\n return \"sessionID\" in event.data && typeof event.data.sessionID === \"string\" ? event.data.sessionID : undefined\n}\n\nfunction errorMessage(error: { message?: string; _tag?: string }) {\n return error.message || error._tag || \"Session execution failed\"\n}\n\nfunction wait(delay: number, signal: AbortSignal) {\n return new Promise<void>((resolve) => {\n const timer = setTimeout(done, delay)\n signal.addEventListener(\"abort\", done, { once: true })\n function done() {\n clearTimeout(timer)\n signal.removeEventListener(\"abort\", done)\n resolve()\n }\n })\n}\n\nasync function prepareFile(file: RunFilePart) {\n if (file.mime !== \"text/plain\") return { attachment: { uri: file.url, name: file.filename } }\n const content = file.url.startsWith(\"data:\")\n ? Buffer.from(file.url.slice(file.url.indexOf(\",\") + 1), \"base64\").toString(\"utf8\")\n : await Bun.file(new URL(file.url)).text()\n return { text: `<file name=\"${file.filename}\">\\n${content}\\n</file>` }\n}\n\nfunction promptFileMention(part: PromptFilePart) {\n if (!part.source?.text) return\n return {\n start: part.source.text.start,\n end: part.source.text.end,\n text: part.source.text.value,\n }\n}\n\nfunction promptFiles(next: SessionTurnInput) {\n return next.prompt.parts.flatMap((part) =>\n part.type === \"file\"\n ? [\n {\n uri: part.url,\n name: part.filename,\n mention: promptFileMention(part),\n },\n ]\n : [],\n )\n}\n\nfunction promptAgents(next: SessionTurnInput) {\n return next.prompt.parts.flatMap((part) =>\n part.type === \"agent\"\n ? [\n {\n name: part.name,\n mention: part.source\n ? { start: part.source.start, end: part.source.end, text: part.source.value }\n : undefined,\n },\n ]\n : [],\n )\n}\n\nfunction streamPartKey(messageID: string, partID: string) {\n return `${messageID}\\u0000${partID}`\n}\n\n// Direct shell calls use one \"start\" commit rendering `$ command` and one \"progress\"\n// commit rendering the merged output (see toolEntryBody in tool.ts).\nfunction shellCommit(\n callID: string,\n command: string,\n next: Pick<StreamCommit, \"text\" | \"phase\" | \"toolState\" | \"toolError\">,\n): StreamCommit {\n return {\n kind: \"tool\",\n source: \"tool\",\n partID: `shell:${callID}`,\n tool: \"shell\",\n shell: { callID, command },\n ...next,\n }\n}\n\nfunction shellTerminal(\n callID: string,\n command: string,\n shell: { status: string; exit?: number | string },\n output: { output: string; cursor: number; size: number; truncated: boolean },\n) {\n const incomplete = output.truncated || output.cursor < output.size\n const text = `${output.output}${incomplete ? `${output.output.endsWith(\"\\n\") || !output.output ? \"\" : \"\\n\"}[output truncated]` : \"\"}`\n const error =\n shell.status === \"exited\" && shell.exit === 0\n ? undefined\n : shell.status === \"exited\"\n ? `Shell exited with code ${shell.exit ?? \"unknown\"}`\n : `Shell ${shell.status}`\n if (!error) return [shellCommit(callID, command, { text, phase: \"progress\", toolState: \"completed\" })]\n return [\n ...(text ? [shellCommit(callID, command, { text, phase: \"progress\", toolState: \"running\" })] : []),\n shellCommit(callID, command, { text: error, phase: \"final\", toolState: \"error\", toolError: error }),\n ]\n}\n\nfunction messageIDFromEvent(id: string) {\n return id.replace(/^evt_/, \"msg_\")\n}\n\nconst catalogEvents = new Set([\n \"catalog.updated\",\n \"integration.updated\",\n \"agent.updated\",\n \"command.updated\",\n \"skill.updated\",\n \"reference.updated\",\n])\n\n// session.shell resolves after the command settled server-side; the matching\n// live shell.ended event usually lands within the same tick, but hold the turn\n// briefly so the output commit renders inside it.\nconst SHELL_OUTPUT_GRACE_MS = 1500\n\nfunction skillCommit(messageID: string, name: string): StreamCommit {\n return {\n kind: \"system\",\n source: \"system\",\n messageID,\n partID: `skill:${messageID}`,\n text: `→ Skill \"${name}\"`,\n phase: \"start\",\n }\n}\n\nasync function resolveSelectedModel(input: StreamInput, next: Pick<SessionTurnInput, \"model\" | \"variant\" | \"signal\">) {\n if (next.model) return { providerID: next.model.providerID, id: next.model.modelID, variant: next.variant }\n if (!next.variant) return\n\n const session = await input.sdk.session\n .get({ sessionID: input.sessionID }, { signal: next.signal })\n .then((response) => response.model)\n if (session) return { ...session, variant: next.variant }\n\n const fallback = await input.sdk.model.default(undefined, { signal: next.signal }).then((response) => response.data)\n if (!fallback) return\n return { providerID: fallback.providerID, id: fallback.id, variant: next.variant }\n}\n\nexport async function createSessionTransport(input: StreamInput): Promise<SessionTransport> {\n const controller = new AbortController()\n input.signal?.addEventListener(\"abort\", () => controller.abort(), { once: true })\n const state: State = {\n permissions: [],\n questions: [],\n view: { type: \"prompt\" },\n messageIDs: new Set(),\n text: new Map(),\n projectedText: new Map(),\n reasoning: new Map(),\n projectedReasoning: new Map(),\n tools: new Map(),\n finishedTools: new Set(),\n skillMessages: new Set(),\n shellCommands: new Map(),\n shellStarted: new Set(),\n shellEnded: new Set(),\n connected: false,\n closed: false,\n initial: true,\n errors: new Set(),\n }\n let readyResolve!: () => void\n let readyReject!: (error: unknown) => void\n const ready = new Promise<void>((resolve, reject) => {\n readyResolve = resolve\n readyReject = reject\n })\n const abortReady = () => readyReject(new Error(\"Mini closed before the event stream connected\"))\n controller.signal.addEventListener(\"abort\", abortReady, { once: true })\n const offFooterClose = input.footer.onClose(() => controller.abort())\n\n const subagents = createSubagentTracker({\n sdk: input.sdk,\n sessionID: input.sessionID,\n thinking: input.thinking,\n emit: () => {\n if (state.closed || input.footer.isClosed) return\n writeSessionOutput(\n { footer: input.footer, trace: input.trace },\n { commits: [], footer: { subagent: subagents.snapshot() } },\n )\n },\n })\n\n const write = (commits: StreamCommit[], patch?: { phase?: \"idle\" | \"running\"; status?: string; usage?: string }) => {\n const visible = commits.at(-1)\n if (visible) {\n state.wait?.onVisibleOutput?.({\n kind: visible.kind,\n text: visible.text,\n phase: visible.phase,\n messageID: visible.messageID,\n partID: visible.partID,\n toolState: visible.toolState,\n })\n }\n writeSessionOutput({ footer: input.footer, trace: input.trace }, { commits, footer: patch ? { patch } : undefined })\n }\n\n const syncBlockers = () => {\n const next = pickBlockerView({ permission: state.permissions[0], question: state.questions[0] })\n if (next.type === \"prompt\" && state.view.type === \"prompt\") return\n if (next.type !== \"prompt\" && state.view.type === next.type && next.request.id === state.view.request.id) return\n state.view = next\n writeSessionOutput(\n { footer: input.footer, trace: input.trace },\n { commits: [], footer: { view: next, patch: { status: blockerStatus(next) } } },\n )\n }\n\n const renderTool = (messageID: string, item: SessionMessageAssistantTool) => {\n const part = miniTool({\n sessionID: input.sessionID,\n messageID,\n tool: item,\n })\n if (item.state.status === \"streaming\") return\n if (item.state.status === \"running\") {\n if (state.tools.get(item.id)?.running) return\n state.tools.set(item.id, {\n messageID,\n name: item.name,\n input: item.state.input,\n started: item.time.ran ?? item.time.created,\n running: true,\n providerState: item.providerState,\n })\n write([toolCommit(part, \"start\")], { phase: \"running\", status: `running ${item.name}` })\n return\n }\n if (state.finishedTools.has(item.id)) return\n if (!state.tools.get(item.id)?.running) write([toolCommit(part, \"start\")])\n state.finishedTools.add(item.id)\n state.tools.delete(item.id)\n write([\n toolCommit(\n part,\n item.state.status === \"completed\" && part.state.status === \"completed\" && part.state.output\n ? \"progress\"\n : \"final\",\n ),\n ])\n }\n\n const renderMessage = (message: SessionMessageInfo, render: boolean, reuseVisibleWait: boolean) => {\n if (message.type === \"user\") {\n const waiting = state.wait?.messageID === message.id\n if (waiting && state.wait) state.wait.promoted = true\n if (!render || state.messageIDs.has(message.id)) return\n state.messageIDs.add(message.id)\n if (reuseVisibleWait && waiting) return\n write([{ kind: \"user\", source: \"system\", text: message.text, phase: \"start\", messageID: message.id }])\n return\n }\n if (message.type === \"skill\") {\n if (state.wait?.messageID === message.id) state.wait.promoted = true\n if (!render || state.skillMessages.has(message.id)) {\n state.skillMessages.add(message.id)\n return\n }\n state.skillMessages.add(message.id)\n write([skillCommit(message.id, message.name)])\n return\n }\n if (message.type === \"shell\") {\n state.shellCommands.set(message.shellID, message.command)\n if (state.shellWait?.messageID === message.id) state.shellWait.callID = message.shellID\n const completed = message.time.completed !== undefined\n if (!render) {\n // Suppressed history: mark settled shells rendered so live redelivery\n // stays silent. A still-running shell stays unmarked and renders in\n // full when its live shell.ended event arrives.\n if (completed) {\n state.shellStarted.add(message.shellID)\n state.shellEnded.add(message.shellID)\n }\n return\n }\n if (!state.shellStarted.has(message.shellID)) {\n state.shellStarted.add(message.shellID)\n write([\n shellCommit(message.shellID, message.command, {\n text: \"running shell\",\n phase: \"start\",\n toolState: \"running\",\n }),\n ])\n }\n if (completed && message.output && !state.shellEnded.has(message.shellID)) {\n state.shellEnded.add(message.shellID)\n write(shellTerminal(message.shellID, message.command, message, message.output))\n }\n if (completed && state.shellWait?.callID === message.shellID) state.shellWait.resolve()\n return\n }\n if (message.type !== \"assistant\") return\n state.messageIDs.add(message.id)\n let textOrdinal = 0\n let reasoningOrdinal = 0\n for (const item of message.content) {\n if (item.type === \"text\") {\n const id = `text:${textOrdinal++}`\n const key = streamPartKey(message.id, id)\n const sent = state.text.get(key)?.length ?? 0\n state.text.set(key, item.text)\n if (render) state.projectedText.set(key, item.text)\n if (render && item.text.length > sent)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: item.text.slice(sent),\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n },\n ])\n continue\n }\n if (item.type === \"reasoning\") {\n const id = `reasoning:${reasoningOrdinal++}`\n const key = streamPartKey(message.id, id)\n const sent = state.reasoning.get(key)?.length ?? 0\n state.reasoning.set(key, item.text)\n if (render) state.projectedReasoning.set(key, item.text)\n if (render && input.thinking && item.text.length > sent)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: sent === 0 ? `Thinking: ${item.text}` : item.text.slice(sent),\n phase: \"progress\",\n messageID: message.id,\n partID: id,\n },\n ])\n continue\n }\n if (render) renderTool(message.id, item)\n }\n if (render && message.error && !state.errors.has(message.id)) {\n state.errors.add(message.id)\n write([\n {\n kind: \"error\",\n source: \"system\",\n text: errorMessage(message.error),\n phase: \"start\",\n messageID: message.id,\n },\n ])\n }\n }\n\n const hydrate = async (next: { render: boolean; reuseVisibleWait: boolean }) => {\n const [messages, permissions, questions, active] = await Promise.all([\n input.sdk.message.list({ sessionID: input.sessionID, limit: input.replayLimit ?? 200, order: \"desc\" }),\n input.sdk.permission.list({ sessionID: input.sessionID }),\n input.sdk.question.list({ sessionID: input.sessionID }),\n input.sdk.session.active(),\n ])\n const projected = structuredClone(messages.data).toReversed() as SessionMessageInfo[]\n for (const message of projected) renderMessage(message, next.render, next.reuseVisibleWait)\n state.permissions = permissions\n state.questions = questions\n syncBlockers()\n await subagents.hydrate({ messages: [...projected], active })\n const running = input.sessionID in active\n write([], { phase: running ? \"running\" : \"idle\", status: running ? \"assistant responding\" : \"\" })\n if (!running && state.wait && (state.wait.promoted || state.wait.interrupted)) {\n const current = state.wait\n state.wait = undefined\n current.resolve()\n }\n }\n\n const apply = (event: RunV2Event) => {\n if (catalogEvents.has(event.type)) {\n if (input.directory && event.location?.directory && event.location.directory !== input.directory) return\n input.onCatalogRefresh?.()\n return\n }\n const source = sessionID(event)\n if (source !== input.sessionID) {\n if (source) subagents.foreign(source, event)\n return\n }\n input.trace?.write(\"recv.event\", event)\n subagents.main(event)\n if (event.type === \"session.input.promoted\") {\n if (state.wait?.messageID === event.data.inputID) state.wait.promoted = true\n state.messageIDs.add(event.data.inputID)\n write([], { phase: \"running\", status: \"waiting for assistant\" })\n return\n }\n if (event.type === \"session.step.started\") {\n write([], { phase: \"running\", status: \"assistant responding\" })\n return\n }\n if (event.type === \"session.skill.activated\") {\n const messageID = messageIDFromEvent(event.id)\n if (state.wait?.messageID === messageID) state.wait.promoted = true\n if (state.skillMessages.has(messageID)) return\n state.skillMessages.add(messageID)\n write([skillCommit(messageID, event.data.name)])\n return\n }\n if (event.type === \"session.shell.started\") {\n state.shellCommands.set(event.data.shell.id, event.data.shell.command)\n const wait = state.shellWait\n if (wait?.eventID === event.id) wait.callID = event.data.shell.id\n if (state.shellStarted.has(event.data.shell.id)) return\n state.shellStarted.add(event.data.shell.id)\n write(\n [\n shellCommit(event.data.shell.id, event.data.shell.command, {\n text: \"running shell\",\n phase: \"start\",\n toolState: \"running\",\n }),\n ],\n {\n phase: \"running\",\n status: \"running shell\",\n },\n )\n return\n }\n if (event.type === \"session.shell.ended\") {\n const command = state.shellCommands.get(event.data.shell.id) ?? event.data.shell.command\n const commits: StreamCommit[] = []\n if (!state.shellStarted.has(event.data.shell.id)) {\n state.shellStarted.add(event.data.shell.id)\n if (command)\n commits.push(\n shellCommit(event.data.shell.id, command, { text: \"running shell\", phase: \"start\", toolState: \"running\" }),\n )\n }\n if (!state.shellEnded.has(event.data.shell.id)) {\n state.shellEnded.add(event.data.shell.id)\n commits.push(...shellTerminal(event.data.shell.id, command, event.data.shell, event.data.output))\n }\n const wait = state.shellWait\n const owned = wait?.callID === event.data.shell.id\n write(commits, owned || state.wait || state.shellWait ? undefined : { phase: \"idle\", status: \"\" })\n if (owned) wait.resolve()\n return\n }\n if (event.type === \"session.text.started\") {\n return\n }\n if (event.type === \"session.text.delta\") {\n const id = `text:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const projected = state.projectedText.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n state.projectedText.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const previous = state.text.get(key) ?? \"\"\n state.text.set(key, previous + event.data.delta)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.delta,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n return\n }\n if (event.type === \"session.text.ended\") {\n const id = `text:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const previous = state.text.get(key) ?? \"\"\n if (event.data.text.length > previous.length)\n write([\n {\n kind: \"assistant\",\n source: \"assistant\",\n text: event.data.text.slice(previous.length),\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n state.text.set(key, event.data.text)\n state.projectedText.delete(key)\n return\n }\n if (event.type === \"session.reasoning.started\") {\n return\n }\n if (event.type === \"session.reasoning.delta\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const projected = state.projectedReasoning.get(key)\n const covered = projected?.indexOf(event.data.delta) ?? -1\n if (projected && covered >= 0) {\n state.projectedReasoning.set(key, projected.slice(covered + event.data.delta.length))\n return\n }\n const previous = state.reasoning.get(key) ?? \"\"\n state.reasoning.set(key, previous + event.data.delta)\n if (input.thinking)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: previous ? event.data.delta : `Thinking: ${event.data.delta}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n return\n }\n if (event.type === \"session.reasoning.ended\") {\n const id = `reasoning:${event.data.ordinal}`\n const key = streamPartKey(event.data.assistantMessageID, id)\n const previous = state.reasoning.get(key) ?? \"\"\n if (input.thinking && event.data.text.length > previous.length)\n write([\n {\n kind: \"reasoning\",\n source: \"reasoning\",\n text: previous ? event.data.text.slice(previous.length) : `Thinking: ${event.data.text}`,\n phase: \"progress\",\n messageID: event.data.assistantMessageID,\n partID: id,\n },\n ])\n state.reasoning.set(key, event.data.text)\n state.projectedReasoning.delete(key)\n return\n }\n if (event.type === \"session.tool.input.started\") {\n state.tools.set(event.data.callID, {\n messageID: event.data.assistantMessageID,\n name: event.data.name,\n input: {},\n started: event.created,\n running: false,\n })\n return\n }\n if (event.type === \"session.tool.called\") {\n if (state.finishedTools.has(event.data.callID)) return\n const current = state.tools.get(event.data.callID)\n const item = structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: event.data.state,\n state: { status: \"running\", input: event.data.input, structured: {}, content: [] },\n time: { created: current?.started ?? event.created, ran: event.created },\n }) as SessionMessageAssistantTool\n renderTool(event.data.assistantMessageID, item)\n return\n }\n if (event.type === \"session.tool.progress\") return\n if (event.type === \"session.tool.success\" || event.type === \"session.tool.failed\") {\n const current = state.tools.get(event.data.callID)\n const failed = event.type === \"session.tool.failed\"\n const item = structuredClone({\n type: \"tool\",\n id: event.data.callID,\n name: current?.name ?? \"tool\",\n executed: event.data.executed,\n providerState: current?.providerState,\n providerResultState: event.data.resultState,\n state: failed\n ? {\n status: \"error\",\n input: current?.input ?? {},\n structured: {},\n content: [],\n error: event.data.error,\n result: event.data.result,\n }\n : {\n status: \"completed\",\n input: current?.input ?? {},\n structured: event.data.structured,\n content: event.data.content,\n result: event.data.result,\n },\n time: { created: current?.started ?? event.created, ran: current?.started, completed: event.created },\n }) as SessionMessageAssistantTool\n renderTool(event.data.assistantMessageID, item)\n return\n }\n if (event.type === \"permission.v2.asked\") {\n if (!state.permissions.some((item) => item.id === event.data.id)) state.permissions.push(event.data)\n syncBlockers()\n return\n }\n if (event.type === \"permission.v2.replied\") {\n state.permissions = state.permissions.filter((item) => item.id !== event.data.requestID)\n syncBlockers()\n return\n }\n if (event.type === \"question.v2.asked\") {\n if (!state.questions.some((item) => item.id === event.data.id)) state.questions.push(event.data)\n syncBlockers()\n return\n }\n if (event.type === \"question.v2.replied\" || event.type === \"question.v2.rejected\") {\n state.questions = state.questions.filter((item) => item.id !== event.data.requestID)\n syncBlockers()\n return\n }\n if (event.type === \"session.step.ended\") {\n const total =\n event.data.tokens.input +\n event.data.tokens.output +\n event.data.tokens.reasoning +\n event.data.tokens.cache.read +\n event.data.tokens.cache.write\n const usage = total > 0 ? total.toLocaleString() : \"\"\n write([], {\n usage: event.data.cost ? `${usage} · ${money.format(event.data.cost)}` : usage,\n })\n return\n }\n if (event.type === \"session.step.failed\") {\n state.errors.add(event.data.assistantMessageID)\n if (state.wait) state.wait.failureRendered = true\n write([{ kind: \"error\", source: \"system\", text: errorMessage(event.data.error), phase: \"start\" }])\n return\n }\n if (event.type === \"session.execution.started\") {\n write([], { phase: \"running\" })\n return\n }\n if (\n event.type === \"session.execution.succeeded\" ||\n event.type === \"session.execution.failed\" ||\n event.type === \"session.execution.interrupted\"\n ) {\n write([], { phase: \"idle\", status: \"\" })\n const current = state.wait\n if (!current || (!current.promoted && !current.interrupted)) return\n state.wait = undefined\n if (current.interrupted && event.type === \"session.execution.interrupted\" && event.data.reason === \"user\") {\n current.resolve()\n return\n }\n if (event.type === \"session.execution.failed\") {\n if (current.failureRendered) {\n current.resolve()\n return\n }\n current.reject(new Error(errorMessage(event.data.error)))\n return\n }\n if (event.type === \"session.execution.interrupted\") {\n current.reject(new Error(`Session interrupted: ${event.data.reason}`))\n return\n }\n current.resolve()\n }\n }\n\n const receive = (event: RunV2Event) => {\n if (state.buffered) {\n state.buffered.push(event)\n return\n }\n apply(event)\n }\n\n const connect = async () => {\n while (!controller.signal.aborted && !input.footer.isClosed) {\n const error = await (async () => {\n const connection = new AbortController()\n const abortConnection = () => connection.abort()\n controller.signal.addEventListener(\"abort\", abortConnection, { once: true })\n const stream = input.sdk.event.subscribe({ signal: connection.signal })[Symbol.asyncIterator]()\n try {\n const first = await stream.next()\n if (first.done || first.value.type !== \"server.connected\") throw new Error(\"Event stream disconnected\")\n const buffered: RunV2Event[] = []\n let booting = true\n const consume = (async () => {\n while (!connection.signal.aborted) {\n const next = await stream.next()\n if (next.done) throw new Error(\"Event stream disconnected\")\n if (booting) buffered.push(next.value)\n else receive(next.value)\n }\n })()\n void consume.catch(() => {})\n await hydrate({ render: state.initial ? input.replay === true : true, reuseVisibleWait: !state.initial })\n input.onCatalogRefresh?.()\n state.initial = false\n booting = false\n for (const event of buffered.splice(0)) apply(event)\n state.connected = true\n readyResolve()\n await consume\n } finally {\n controller.signal.removeEventListener(\"abort\", abortConnection)\n connection.abort()\n void stream.return?.(undefined).catch(() => {})\n }\n })().catch((error) => error)\n state.connected = false\n if (controller.signal.aborted || input.footer.isClosed) return\n input.trace?.write(\"recv.reconnect\", { error: formatUnknownError(error) })\n write([], { phase: \"running\", status: \"reconnecting\" })\n await wait(250, controller.signal)\n }\n }\n const connection = connect()\n try {\n await ready\n } catch (error) {\n offFooterClose()\n throw error\n } finally {\n controller.signal.removeEventListener(\"abort\", abortReady)\n }\n\n const runShellTurn = async (next: SessionTurnInput) => {\n if (state.wait || state.shellWait) throw new Error(\"prompt already running\")\n if (!state.connected) throw new Error(\"Event stream is reconnecting\")\n const abort = new AbortController()\n const onAbort = () => abort.abort()\n next.signal?.addEventListener(\"abort\", onAbort, { once: true })\n let rendered!: () => void\n const output = new Promise<void>((resolve) => {\n rendered = resolve\n })\n const eventID = Event.ID.create()\n const active: ShellWait = {\n eventID,\n messageID: messageIDFromEvent(eventID),\n resolve: rendered,\n abort: () => abort.abort(),\n }\n state.shellWait = active\n input.trace?.write(\"send.shell\", { sessionID: input.sessionID, id: eventID, command: next.prompt.text })\n write([], { phase: \"running\", status: \"running shell\" })\n try {\n await input.sdk.session.shell(\n { sessionID: input.sessionID, id: eventID, command: next.prompt.text },\n { signal: abort.signal },\n )\n await Promise.race([output, wait(SHELL_OUTPUT_GRACE_MS, abort.signal)])\n } catch (error) {\n if (abort.signal.aborted) return\n throw error\n } finally {\n next.signal?.removeEventListener(\"abort\", onAbort)\n if (state.shellWait === active) state.shellWait = undefined\n }\n }\n\n // Shared settlement scaffolding for prompt-shaped turns: registers the wait,\n // wires interruption, sends, then blocks until the live settled event (or a\n // hydration pass over an idle session) resolves it.\n const runTurnWait = async (\n next: SessionTurnInput,\n messageID: string,\n turn: { promoted?: boolean; send: () => Promise<unknown> },\n ) => {\n let resolve!: () => void\n let reject!: (error: unknown) => void\n const done = new Promise<void>((ok, fail) => {\n resolve = ok\n reject = fail\n })\n const active: Wait = {\n messageID,\n promoted: turn.promoted === true,\n interrupted: false,\n failureRendered: false,\n resolve,\n reject,\n onVisibleOutput: next.onVisibleOutput,\n }\n state.wait = active\n const interrupt = () => {\n active.interrupted = true\n void input.sdk.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n }\n next.signal?.addEventListener(\"abort\", interrupt, { once: true })\n try {\n await turn.send()\n await done\n } catch (error) {\n if (state.wait === active) state.wait = undefined\n if (next.signal?.aborted) return\n throw error\n } finally {\n next.signal?.removeEventListener(\"abort\", interrupt)\n }\n }\n\n return {\n async runPromptTurn(next) {\n if (next.prompt.mode === \"shell\") {\n await runShellTurn(next)\n return\n }\n if (state.wait || state.shellWait) throw new Error(\"prompt already running\")\n if (!state.connected) throw new Error(\"Event stream is reconnecting\")\n const messageID = next.prompt.messageID\n if (!messageID) throw new Error(\"Prompt message ID is required\")\n\n const command = next.prompt.command\n if (command?.source === \"skill\") {\n input.trace?.write(\"send.skill\", { sessionID: input.sessionID, messageID, skill: command.name })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.skill(\n { sessionID: input.sessionID, id: messageID, skill: command.name },\n { signal: next.signal },\n ),\n })\n return\n }\n if (command) {\n const selected = await resolveSelectedModel(input, next)\n if (next.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n // Agent and model ride the command payload; the server switches only\n // when the command itself does not pin them.\n const files = [\n ...(next.includeFiles ? next.files : []).map((file) => ({ uri: file.url, name: file.filename })),\n ...promptFiles(next),\n ]\n const agents = promptAgents(next)\n input.trace?.write(\"send.command\", { sessionID: input.sessionID, messageID, command: command.name })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.command(\n {\n sessionID: input.sessionID,\n id: messageID,\n command: command.name,\n arguments: command.arguments,\n agent: next.agent,\n model: selected,\n files: files.length ? files : undefined,\n agents: agents.length ? agents : undefined,\n delivery: \"steer\",\n },\n { signal: next.signal },\n ),\n })\n return\n }\n\n if (next.agent) {\n await input.sdk.session.switchAgent({ sessionID: input.sessionID, agent: next.agent }, { signal: next.signal })\n }\n const selected = await resolveSelectedModel(input, next)\n if (next.variant && !selected) throw new Error(\"Cannot select a variant before selecting a model\")\n if (selected)\n await input.sdk.session.switchModel({ sessionID: input.sessionID, model: selected }, { signal: next.signal })\n\n const prepared = await Promise.all((next.includeFiles ? next.files : []).map(prepareFile))\n const attachments = [\n ...prepared.flatMap((file) => (file.attachment ? [file.attachment] : [])),\n ...promptFiles(next),\n ]\n const agents = promptAgents(next)\n input.trace?.write(\"send.prompt\", { sessionID: input.sessionID, messageID })\n await runTurnWait(next, messageID, {\n send: () =>\n input.sdk.session.prompt(\n {\n sessionID: input.sessionID,\n id: messageID,\n text: [next.prompt.text, ...prepared.flatMap((file) => (file.text ? [file.text] : []))].join(\"\\n\\n\"),\n files: attachments.length ? attachments : undefined,\n agents: agents.length ? agents : undefined,\n delivery: \"steer\",\n },\n { signal: next.signal },\n ),\n })\n },\n async interruptActiveTurn() {\n // A running shell holds no drain, so session.interrupt cannot reach it;\n // abort the blocking request instead. The server-side command keeps its\n // own lifecycle and simply loses its waiter.\n const shell = state.shellWait\n if (shell) {\n shell.abort()\n return\n }\n if (state.wait) state.wait.interrupted = true\n await input.sdk.session.interrupt({ sessionID: input.sessionID }).catch(() => {})\n },\n selectSubagent(sessionID) {\n subagents.select(sessionID)\n },\n async replayOnResize(next) {\n if (!input.replay || state.closed || input.footer.isClosed) return false\n const buffered: RunV2Event[] = []\n state.buffered = buffered\n try {\n await input.footer.idle()\n await next.reset()\n state.messageIDs.clear()\n state.text.clear()\n state.projectedText.clear()\n state.reasoning.clear()\n state.projectedReasoning.clear()\n state.tools.clear()\n state.finishedTools.clear()\n state.skillMessages.clear()\n state.shellCommands.clear()\n state.shellStarted.clear()\n state.shellEnded.clear()\n state.errors.clear()\n await hydrate({ render: true, reuseVisibleWait: false })\n } finally {\n state.buffered = undefined\n }\n for (const event of buffered) apply(event)\n for (const row of next.localRows()) {\n if (row.commit.messageID && state.messageIDs.has(row.commit.messageID)) continue\n input.footer.append(row.commit)\n }\n return true\n },\n async close() {\n state.closed = true\n offFooterClose()\n controller.abort()\n void connection.catch(() => {})\n },\n }\n}\n"
],
"mappings": "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",
"debugId": "54C84A8871D22EB364756E2164756E21",
"names": []
}

Sorry, the diff of this file is too big to display

{
"version": 3,
"sources": ["../core/src/database/migration/20260603001617_session_message_projection_indexes.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260603001617_session_message_projection_indexes\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_idx\\`;`)\n yield* tx.run(`DROP INDEX IF EXISTS \\`session_message_session_type_idx\\`;`)\n yield* tx.run(`CREATE INDEX \\`event_aggregate_seq_idx\\` ON \\`event\\` (\\`aggregate_id\\`,\\`seq\\`);`)\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`time_created\\`,\\`id\\`);`,\n )\n yield* tx.run(\n `CREATE INDEX \\`session_message_session_type_time_created_id_idx\\` ON \\`session_message\\` (\\`session_id\\`,\\`type\\`,\\`time_created\\`,\\`id\\`);`,\n )\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,oDACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,qDAAuD,EACrE,MAAO,EAAG,IAAI,0DAA4D,EAC1E,MAAO,EAAG,IAAI,2EAAmF,EACjG,MAAO,EAAG,IACR,qHACF,EACA,MAAO,EAAG,IACR,iIACF,EACD,EAEL",
"debugId": "B46CF9CF888446F164756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["src/commands/handlers/migrate.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\n\nexport default Runtime.handler(Commands.commands.migrate, (_input) => Effect.log(\"No migrations to run.\"))\n"
],
"mappings": ";+sBAIA,SAAe,SAAQ,aAAQ,OAAS,cAAS,aAAS,MAAC,SAAW,OAAO,SAAI,4BAAuB,MAAC",
"debugId": "DFAA8B521E80C25964756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../../node_modules/.bun/@opentui+core-linux-arm64@0.4.3/node_modules/@opentui/core-linux-arm64/index.bun.js"],
"sourcesContent": [
"const module = await import(\"./libopentui.so\", { with: { type: \"file\" } })\n\nexport default module.default\n"
],
"mappings": ";oDAAA,IAAM,EAAS,KAAa,yCAAmB,CAAE,KAAM,CAAE,KAAM,MAAO,CAAE,GAEzD,IAAO",
"debugId": "30E2D27A4EA23DCC64756E2164756E21",
"names": []
}
{
"version": 3,
"sources": ["../core/src/database/migration/20260413175956_chief_energizer.ts"],
"sourcesContent": [
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260413175956_chief_energizer\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`session_entry\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`type\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_session_entry_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`CREATE INDEX \\`session_entry_session_idx\\` ON \\`session_entry\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_entry_session_type_idx\\` ON \\`session_entry\\` (\\`session_id\\`,\\`type\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_entry_time_created_idx\\` ON \\`session_entry\\` (\\`time_created\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
],
"mappings": ";wHAGA,SAAe,QACb,GAAI,iCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2aAUb,EACD,MAAO,EAAG,IAAI,6EAAmF,EACjG,MAAO,EAAG,IAAI,yFAAiG,EAC/G,MAAO,EAAG,IAAI,oFAA0F,EACzG,EAEL",
"debugId": "90F2AEA7A6483A6264756E2164756E21",
"names": []
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display