@agent-native/core 0.20.8 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/action.d.ts +61 -0
  2. package/dist/action.d.ts.map +1 -1
  3. package/dist/action.js +14 -0
  4. package/dist/action.js.map +1 -1
  5. package/dist/agent/production-agent.d.ts +4 -0
  6. package/dist/agent/production-agent.d.ts.map +1 -1
  7. package/dist/agent/production-agent.js +19 -7
  8. package/dist/agent/production-agent.js.map +1 -1
  9. package/dist/agent/types.d.ts +2 -0
  10. package/dist/agent/types.d.ts.map +1 -1
  11. package/dist/agent/types.js.map +1 -1
  12. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  13. package/dist/cli/code-agent-executor.js +1 -0
  14. package/dist/cli/code-agent-executor.js.map +1 -1
  15. package/dist/cli/connect.d.ts +26 -4
  16. package/dist/cli/connect.d.ts.map +1 -1
  17. package/dist/cli/connect.js +578 -10
  18. package/dist/cli/connect.js.map +1 -1
  19. package/dist/cli/templates-meta.d.ts.map +1 -1
  20. package/dist/cli/templates-meta.js +1 -0
  21. package/dist/cli/templates-meta.js.map +1 -1
  22. package/dist/client/AssistantChat.d.ts.map +1 -1
  23. package/dist/client/AssistantChat.js +6 -5
  24. package/dist/client/AssistantChat.js.map +1 -1
  25. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  26. package/dist/client/agent-chat-adapter.js +25 -4
  27. package/dist/client/agent-chat-adapter.js.map +1 -1
  28. package/dist/client/code-agent-chat-adapter.js +1 -0
  29. package/dist/client/code-agent-chat-adapter.js.map +1 -1
  30. package/dist/client/composer/TiptapComposer.js +1 -1
  31. package/dist/client/composer/TiptapComposer.js.map +1 -1
  32. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  33. package/dist/client/conversation/AgentConversation.js +3 -2
  34. package/dist/client/conversation/AgentConversation.js.map +1 -1
  35. package/dist/client/conversation/code-agent-transcript.js +1 -0
  36. package/dist/client/conversation/code-agent-transcript.js.map +1 -1
  37. package/dist/client/conversation/types.d.ts +2 -0
  38. package/dist/client/conversation/types.d.ts.map +1 -1
  39. package/dist/client/conversation/types.js.map +1 -1
  40. package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
  41. package/dist/client/extensions/EmbeddedExtension.js +2 -1
  42. package/dist/client/extensions/EmbeddedExtension.js.map +1 -1
  43. package/dist/client/extensions/ExtensionEditor.d.ts.map +1 -1
  44. package/dist/client/extensions/ExtensionEditor.js +6 -3
  45. package/dist/client/extensions/ExtensionEditor.js.map +1 -1
  46. package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
  47. package/dist/client/extensions/ExtensionViewer.js +66 -2
  48. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  49. package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
  50. package/dist/client/extensions/ExtensionsListPage.js +2 -1
  51. package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
  52. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  53. package/dist/client/extensions/ExtensionsSidebarSection.js +5 -7
  54. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  55. package/dist/client/extensions/index.d.ts +1 -0
  56. package/dist/client/extensions/index.d.ts.map +1 -1
  57. package/dist/client/extensions/index.js +1 -0
  58. package/dist/client/extensions/index.js.map +1 -1
  59. package/dist/client/index.d.ts +1 -0
  60. package/dist/client/index.d.ts.map +1 -1
  61. package/dist/client/index.js +1 -0
  62. package/dist/client/index.js.map +1 -1
  63. package/dist/client/mcp-apps/McpAppRenderer.d.ts +10 -0
  64. package/dist/client/mcp-apps/McpAppRenderer.d.ts.map +1 -0
  65. package/dist/client/mcp-apps/McpAppRenderer.js +296 -0
  66. package/dist/client/mcp-apps/McpAppRenderer.js.map +1 -0
  67. package/dist/client/sse-event-processor.d.ts +3 -0
  68. package/dist/client/sse-event-processor.d.ts.map +1 -1
  69. package/dist/client/sse-event-processor.js +2 -0
  70. package/dist/client/sse-event-processor.js.map +1 -1
  71. package/dist/code-agents/transcript-normalizer.d.ts +2 -0
  72. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  73. package/dist/code-agents/transcript-normalizer.js +17 -0
  74. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  75. package/dist/db/client.d.ts +19 -0
  76. package/dist/db/client.d.ts.map +1 -1
  77. package/dist/db/client.js +139 -6
  78. package/dist/db/client.js.map +1 -1
  79. package/dist/extensions/actions.d.ts.map +1 -1
  80. package/dist/extensions/actions.js +6 -2
  81. package/dist/extensions/actions.js.map +1 -1
  82. package/dist/extensions/path.d.ts +6 -0
  83. package/dist/extensions/path.d.ts.map +1 -0
  84. package/dist/extensions/path.js +38 -0
  85. package/dist/extensions/path.js.map +1 -0
  86. package/dist/index.browser.d.ts +1 -1
  87. package/dist/index.browser.d.ts.map +1 -1
  88. package/dist/index.browser.js +1 -1
  89. package/dist/index.browser.js.map +1 -1
  90. package/dist/index.d.ts +1 -1
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +1 -1
  93. package/dist/index.js.map +1 -1
  94. package/dist/mcp/build-server.d.ts.map +1 -1
  95. package/dist/mcp/build-server.js +154 -4
  96. package/dist/mcp/build-server.js.map +1 -1
  97. package/dist/mcp/connect-store.d.ts +1 -1
  98. package/dist/mcp/connect-store.d.ts.map +1 -1
  99. package/dist/mcp/connect-store.js +1 -1
  100. package/dist/mcp/connect-store.js.map +1 -1
  101. package/dist/mcp/stdio.d.ts +2 -2
  102. package/dist/mcp/stdio.d.ts.map +1 -1
  103. package/dist/mcp/stdio.js +26 -8
  104. package/dist/mcp/stdio.js.map +1 -1
  105. package/dist/mcp-client/app-result.d.ts +40 -0
  106. package/dist/mcp-client/app-result.d.ts.map +1 -0
  107. package/dist/mcp-client/app-result.js +19 -0
  108. package/dist/mcp-client/app-result.js.map +1 -0
  109. package/dist/mcp-client/index.d.ts +5 -2
  110. package/dist/mcp-client/index.d.ts.map +1 -1
  111. package/dist/mcp-client/index.js +185 -23
  112. package/dist/mcp-client/index.js.map +1 -1
  113. package/dist/mcp-client/manager.d.ts +16 -0
  114. package/dist/mcp-client/manager.d.ts.map +1 -1
  115. package/dist/mcp-client/manager.js +58 -1
  116. package/dist/mcp-client/manager.js.map +1 -1
  117. package/dist/mcp-client/routes.d.ts +4 -1
  118. package/dist/mcp-client/routes.d.ts.map +1 -1
  119. package/dist/mcp-client/routes.js +146 -0
  120. package/dist/mcp-client/routes.js.map +1 -1
  121. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  122. package/dist/server/agent-chat-plugin.js +8 -1
  123. package/dist/server/agent-chat-plugin.js.map +1 -1
  124. package/dist/server/auth.d.ts +2 -0
  125. package/dist/server/auth.d.ts.map +1 -1
  126. package/dist/server/auth.js +2 -2
  127. package/dist/server/auth.js.map +1 -1
  128. package/dist/server/framework-request-handler.d.ts +4 -2
  129. package/dist/server/framework-request-handler.d.ts.map +1 -1
  130. package/dist/server/framework-request-handler.js +25 -11
  131. package/dist/server/framework-request-handler.js.map +1 -1
  132. package/dist/server/index.d.ts +1 -1
  133. package/dist/server/index.d.ts.map +1 -1
  134. package/dist/server/index.js +1 -1
  135. package/dist/server/index.js.map +1 -1
  136. package/dist/styles/agent-conversation.css +53 -0
  137. package/docs/content/actions.md +25 -2
  138. package/docs/content/external-agents.md +62 -8
  139. package/docs/content/key-concepts.md +1 -1
  140. package/docs/content/mcp-clients.md +1 -1
  141. package/docs/content/mcp-protocol.md +16 -11
  142. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"code-agent-chat-adapter.js","sourceRoot":"","sources":["../../src/client/code-agent-chat-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ChatModelAdapter,\n ChatModelRunOptions,\n ChatModelRunResult,\n} from \"@assistant-ui/react\";\nimport { unwrapAttachmentEnvelope } from \"./composer/pasted-text.js\";\nimport type { AgentPromptAttachment } from \"./composer/prompt-attachments.js\";\nimport type { ReasoningEffort } from \"../shared/reasoning-effort.js\";\nimport {\n compareCodeAgentTranscriptEvents,\n isCodeAgentRunActive,\n type CodeAgentRunStateLike,\n} from \"../code-agents/transcript-order.js\";\nimport {\n normalizeCodeAgentTranscript,\n type CodeAgentTranscriptEvent as CoreCodeAgentTranscriptEvent,\n type NormalizedCodeAgentStatusEvent,\n type NormalizedCodeAgentToolEvent,\n type NormalizedCodeAgentTranscriptItem,\n} from \"../code-agents/transcript-normalizer.js\";\nimport type { ContentPart } from \"./sse-event-processor.js\";\n\nexport type CodeAgentChatFollowUpMode = \"immediate\" | \"queued\";\n\nexport interface CodeAgentChatTranscriptEvent {\n id: string;\n runId: string;\n kind?: CoreCodeAgentTranscriptEvent[\"kind\"];\n type?: CoreCodeAgentTranscriptEvent[\"kind\"] | \"note\";\n message?: string;\n text?: string;\n createdAt: string;\n metadata?: Record<string, unknown>;\n artifactPath?: string;\n artifactUrl?: string;\n}\n\nexport interface CodeAgentChatControlResult {\n ok: boolean;\n run?: CodeAgentRunStateLike | null;\n queued?: boolean;\n message?: string;\n error?: string;\n}\n\nexport interface CodeAgentChatController {\n get(runId: string): Promise<CodeAgentRunStateLike | null>;\n transcript(runId: string): Promise<CodeAgentChatTranscriptEvent[]>;\n sendFollowUp(input: {\n runId: string;\n prompt: string;\n mode?: CodeAgentChatFollowUpMode;\n permissionMode?: string;\n engine?: string;\n model?: string;\n reasoningEffort?: ReasoningEffort;\n source?: string;\n metadata?: Record<string, unknown>;\n }): Promise<CodeAgentChatControlResult>;\n control(input: {\n runId: string;\n command: \"stop\";\n }): Promise<CodeAgentChatControlResult>;\n}\n\nexport interface CreateCodeAgentChatAdapterOptions {\n controller: CodeAgentChatController;\n runIdRef: { current: string | null };\n permissionModeRef?: { current: string | undefined };\n modelRef?: { current: string | undefined };\n engineRef?: { current: string | undefined };\n effortRef?: { current: ReasoningEffort | undefined };\n followUpModeRef?: { current: CodeAgentChatFollowUpMode | undefined };\n attachOnlyRef?: { current: boolean };\n tabId?: string;\n pollIntervalMs?: number;\n idlePollIntervalMs?: number;\n terminalIdlePolls?: number;\n /**\n * Assistant-ui may abort a run for UI lifecycle reasons, such as switching\n * selected sessions. Code sessions keep running unless the host sends an\n * explicit stop command.\n */\n stopOnAbort?: boolean;\n}\n\ntype AssistantUiAttachment = {\n name?: string;\n contentType?: string;\n content?: readonly Record<string, unknown>[];\n};\n\nexport function createCodeAgentChatAdapter(\n options: CreateCodeAgentChatAdapterOptions,\n): ChatModelAdapter {\n const pollIntervalMs = options.pollIntervalMs ?? 1000;\n const idlePollIntervalMs = options.idlePollIntervalMs ?? 5000;\n const terminalIdlePolls = options.terminalIdlePolls ?? 3;\n const stopOnAbort = options.stopOnAbort === true;\n\n return {\n async *run({ messages, abortSignal }: ChatModelRunOptions) {\n const runId = options.runIdRef.current;\n if (!runId) {\n yield errorResult(\"Select an Agent-Native Code session first.\");\n return;\n }\n\n const lastUserMessage = latestUserMessage(messages);\n const attachments = lastUserMessage\n ? extractPromptAttachmentsFromAssistantMessage(lastUserMessage)\n : [];\n const prompt =\n latestUserText(messages).trim() ||\n (attachments.length > 0 ? \"Use the attached context.\" : \"\");\n if (!prompt.trim()) {\n yield errorResult(\"Enter a follow-up prompt.\");\n return;\n }\n\n let stoppedFromAbort = false;\n const stopForAbort = () => {\n stoppedFromAbort = true;\n if (stopOnAbort) {\n void options.controller.control({ runId, command: \"stop\" });\n }\n };\n if (abortSignal.aborted) {\n stopForAbort();\n return;\n }\n abortSignal.addEventListener(\"abort\", stopForAbort, { once: true });\n\n try {\n const initialEvents = await options.controller.transcript(runId);\n const seenEventIds = new Set(initialEvents.map((event) => event.id));\n const tailedEvents: CodeAgentChatTranscriptEvent[] = [];\n\n if (!options.attachOnlyRef?.current) {\n const beforeSendRun = await options.controller.get(runId);\n const response = await options.controller.sendFollowUp({\n runId,\n prompt,\n mode:\n options.followUpModeRef?.current ??\n (beforeSendRun && isCodeAgentRunActive(beforeSendRun)\n ? \"queued\"\n : \"immediate\"),\n permissionMode: options.permissionModeRef?.current,\n engine: options.engineRef?.current,\n model: options.modelRef?.current,\n reasoningEffort: options.effortRef?.current,\n source: \"code-agent-chat\",\n metadata: attachments.length > 0 ? { attachments } : undefined,\n });\n if (!response.ok) {\n yield errorResult(\n response.error ?? response.message ?? \"Could not send follow-up.\",\n runId,\n );\n return;\n }\n }\n\n let yieldedContent = false;\n let idleTerminalPolls = 0;\n while (!abortSignal.aborted) {\n const [events, run] = await Promise.all([\n options.controller.transcript(runId),\n options.controller.get(runId),\n ]);\n const nextEvents = events\n .filter((event) => !seenEventIds.has(event.id))\n .sort(compareCodeAgentTranscriptEvents);\n for (const event of nextEvents) {\n seenEventIds.add(event.id);\n tailedEvents.push(event);\n }\n\n const content = codeAgentTranscriptEventsToContent(tailedEvents);\n if (content.length > 0 && nextEvents.length > 0) {\n yieldedContent = true;\n yield withRunMetadata({ content: [...content] }, runId);\n }\n\n if (run && isCodeAgentRunActive(run)) {\n idleTerminalPolls = 0;\n } else if (nextEvents.length === 0) {\n idleTerminalPolls += 1;\n } else {\n idleTerminalPolls = 0;\n }\n\n if (idleTerminalPolls >= terminalIdlePolls) {\n if (content.length > 0 && !yieldedContent) {\n yield withRunMetadata({ content: [...content] }, runId);\n }\n return;\n }\n\n await sleep(\n run && isCodeAgentRunActive(run)\n ? pollIntervalMs\n : idlePollIntervalMs,\n abortSignal,\n );\n }\n } finally {\n abortSignal.removeEventListener(\"abort\", stopForAbort);\n if (stoppedFromAbort) {\n return;\n }\n }\n },\n };\n}\n\nexport function codeAgentTranscriptEventsToContent(\n events: readonly CodeAgentChatTranscriptEvent[],\n): ContentPart[] {\n const normalized = normalizeCodeAgentTranscript(\n events.map(toCoreCodeAgentTranscriptEvent),\n );\n const content: ContentPart[] = [];\n\n const appendText = (text: string) => {\n const trimmed = text.trim();\n if (!trimmed) return;\n const last = content.at(-1);\n if (last?.type === \"text\") {\n last.text = `${last.text}${last.text ? \"\\n\\n\" : \"\"}${trimmed}`;\n } else {\n content.push({ type: \"text\", text: trimmed });\n }\n };\n\n for (const item of normalized.items) {\n const part = contentPartForCodeAgentTranscriptItem(item);\n if (!part) continue;\n if (part.type === \"text\") {\n appendText(part.text);\n } else {\n content.push(part);\n }\n }\n\n return content;\n}\n\nfunction latestUserMessage(\n messages: ChatModelRunOptions[\"messages\"],\n): ChatModelRunOptions[\"messages\"][number] | undefined {\n for (let index = messages.length - 1; index >= 0; index--) {\n const message = messages[index];\n if (message.role === \"user\") return message;\n }\n return undefined;\n}\n\nfunction latestUserText(messages: ChatModelRunOptions[\"messages\"]): string {\n const message = latestUserMessage(messages);\n return (\n message?.content\n .filter(\n (part): part is { type: \"text\"; text: string } => part.type === \"text\",\n )\n .map((part) => part.text)\n .join(\"\\n\") ?? \"\"\n );\n}\n\nfunction extractPromptAttachmentsFromAssistantMessage(message: {\n attachments?: readonly AssistantUiAttachment[];\n}): AgentPromptAttachment[] {\n const attachments: AgentPromptAttachment[] = [];\n for (const att of message.attachments ?? []) {\n const name = att.name ?? \"attachment\";\n for (const part of att.content ?? []) {\n if (part.type === \"image\" && typeof part.image === \"string\") {\n attachments.push({\n name,\n type: att.contentType,\n dataUrl: part.image,\n });\n } else if (part.type === \"file\" && typeof part.data === \"string\") {\n attachments.push({\n name,\n type:\n att.contentType ??\n (typeof part.mimeType === \"string\" ? part.mimeType : undefined),\n ...(part.data.startsWith(\"data:\")\n ? { dataUrl: part.data }\n : { text: part.data }),\n });\n } else if (part.type === \"text\" && typeof part.text === \"string\") {\n attachments.push({\n name,\n type: att.contentType,\n text: unwrapAttachmentEnvelope(part.text),\n });\n }\n }\n }\n return attachments;\n}\n\nfunction toCoreCodeAgentTranscriptEvent(\n event: CodeAgentChatTranscriptEvent,\n): CoreCodeAgentTranscriptEvent {\n return {\n schemaVersion: 1,\n id: event.id,\n runId: event.runId,\n kind: (event.kind ??\n event.type ??\n \"status\") as CoreCodeAgentTranscriptEvent[\"kind\"],\n message: event.message ?? event.text ?? \"\",\n createdAt: event.createdAt,\n metadata: {\n ...(event.metadata ?? {}),\n ...(event.artifactPath ? { artifactPath: event.artifactPath } : {}),\n ...(event.artifactUrl ? { artifactUrl: event.artifactUrl } : {}),\n },\n };\n}\n\nfunction contentPartForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentTranscriptItem,\n): ContentPart | null {\n if (item.type === \"assistant\") {\n return item.text.trim() ? { type: \"text\", text: item.text.trim() } : null;\n }\n if (item.type === \"tool\") {\n return toolContentPartForCodeAgentTranscriptItem(item);\n }\n if (item.type === \"status\") {\n const text = statusTextForCodeAgentTranscriptItem(item);\n return text ? { type: \"text\", text } : null;\n }\n return null;\n}\n\nfunction toolContentPartForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentToolEvent,\n): ContentPart {\n return {\n type: \"tool-call\",\n toolCallId: `code-tool-${item.id}`,\n toolName: item.tool ?? item.label ?? \"code-agent\",\n argsText: previewValue(item.input) ?? \"\",\n args: recordArgs(item.input),\n ...(item.result !== undefined\n ? { result: previewValue(item.result) ?? \"\" }\n : {}),\n };\n}\n\nfunction statusTextForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentStatusEvent,\n): string | null {\n if (item.statusKind === \"artifact\") {\n const event = item.events[0];\n const path =\n stringMetadata(event?.metadata, \"artifactPath\") ??\n stringMetadata(event?.metadata, \"path\");\n const url = stringMetadata(event?.metadata, \"artifactUrl\");\n const target = url ?? path;\n return target\n ? `Artifact: ${item.text}\\n${target}`\n : `Artifact: ${item.text}`;\n }\n if (item.level === \"info\" && item.statusKind !== \"note\") return null;\n return item.text;\n}\n\nfunction recordArgs(value: unknown): Record<string, string> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return {};\n const result: Record<string, string> = {};\n for (const [key, entry] of Object.entries(value)) {\n result[key] =\n typeof entry === \"string\" ? entry : (previewValue(entry) ?? \"\");\n }\n return result;\n}\n\nfunction previewValue(value: unknown): string | undefined {\n if (value === undefined || value === null) return undefined;\n const text =\n typeof value === \"string\" ? value : (JSON.stringify(value, null, 2) ?? \"\");\n const trimmed = text.trim();\n if (!trimmed) return undefined;\n return trimmed.length > 4000 ? `${trimmed.slice(0, 4000)}\\n...` : trimmed;\n}\n\nfunction stringMetadata(\n metadata: Record<string, unknown> | undefined,\n key: string,\n): string | undefined {\n const value = metadata?.[key];\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction withRunMetadata(\n result: ChatModelRunResult,\n runId: string,\n): ChatModelRunResult {\n const metadata = (result.metadata ?? {}) as Record<string, unknown>;\n const custom =\n metadata.custom && typeof metadata.custom === \"object\"\n ? (metadata.custom as Record<string, unknown>)\n : {};\n return {\n ...result,\n metadata: {\n ...metadata,\n custom: { ...custom, runId },\n },\n };\n}\n\nfunction errorResult(message: string, runId?: string): ChatModelRunResult {\n return withRunMetadata(\n {\n content: [{ type: \"text\", text: message }],\n status: { type: \"incomplete\", reason: \"error\" },\n } as ChatModelRunResult,\n runId ?? \"code-agent\",\n );\n}\n\nfunction sleep(ms: number, abortSignal: AbortSignal): Promise<void> {\n if (abortSignal.aborted) return Promise.resolve();\n return new Promise((resolve) => {\n const timeout = setTimeout(resolve, ms);\n abortSignal.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timeout);\n resolve();\n },\n { once: true },\n );\n });\n}\n"]}
1
+ {"version":3,"file":"code-agent-chat-adapter.js","sourceRoot":"","sources":["../../src/client/code-agent-chat-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,EACL,gCAAgC,EAChC,oBAAoB,GAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,4BAA4B,GAK7B,MAAM,yCAAyC,CAAC;AAyEjD,MAAM,UAAU,0BAA0B,CACxC,OAA0C;IAE1C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;IAEjD,OAAO;QACL,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAuB;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,WAAW,CAAC,4CAA4C,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,eAAe;gBACjC,CAAC,CAAC,4CAA4C,CAAC,eAAe,CAAC;gBAC/D,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,MAAM,GACV,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;gBAC/B,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,WAAW,CAAC,2BAA2B,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC,CAAC;YACF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,YAAY,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YACD,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM,YAAY,GAAmC,EAAE,CAAC;gBAExD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;oBACpC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;wBACrD,KAAK;wBACL,MAAM;wBACN,IAAI,EACF,OAAO,CAAC,eAAe,EAAE,OAAO;4BAChC,CAAC,aAAa,IAAI,oBAAoB,CAAC,aAAa,CAAC;gCACnD,CAAC,CAAC,QAAQ;gCACV,CAAC,CAAC,WAAW,CAAC;wBAClB,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO;wBAClD,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO;wBAClC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO;wBAChC,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO;wBAC3C,MAAM,EAAE,iBAAiB;wBACzB,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;qBAC/D,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,MAAM,WAAW,CACf,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,2BAA2B,EACjE,KAAK,CACN,CAAC;wBACF,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;gBAC1B,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACtC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;wBACpC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;qBAC9B,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM;yBACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBAC9C,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBAC1C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;wBAC/B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC3B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;oBAED,MAAM,OAAO,GAAG,kCAAkC,CAAC,YAAY,CAAC,CAAC;oBACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChD,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC1D,CAAC;oBAED,IAAI,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrC,iBAAiB,GAAG,CAAC,CAAC;oBACxB,CAAC;yBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACnC,iBAAiB,IAAI,CAAC,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBACN,iBAAiB,GAAG,CAAC,CAAC;oBACxB,CAAC;oBAED,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;wBAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;4BAC1C,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;wBAC1D,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,MAAM,KAAK,CACT,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC;wBAC9B,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,kBAAkB,EACtB,WAAW,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACvD,IAAI,gBAAgB,EAAE,CAAC;oBACrB,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,MAA+C;IAE/C,MAAM,UAAU,GAAG,4BAA4B,CAC7C,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAC3C,CAAC;IACF,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,qCAAqC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAyC;IAEzC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,QAAyC;IAC/D,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,CACL,OAAO,EAAE,OAAO;SACb,MAAM,CACL,CAAC,IAAI,EAA0C,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CACvE;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,4CAA4C,CAAC,OAErD;IACC,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5D,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI;oBACJ,IAAI,EAAE,GAAG,CAAC,WAAW;oBACrB,OAAO,EAAE,IAAI,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjE,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI;oBACJ,IAAI,EACF,GAAG,CAAC,WAAW;wBACf,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;wBAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;wBACxB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;iBACzB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjE,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI;oBACJ,IAAI,EAAE,GAAG,CAAC,WAAW;oBACrB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAmC;IAEnC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI;YACf,KAAK,CAAC,IAAI;YACV,QAAQ,CAAyC;QACnD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAC5C,IAAuC;IAEvC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,yCAAyC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yCAAyC,CAChD,IAAkC;IAElC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE;QAClC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY;QACjD,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,IAAoC;IAEpC,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GACR,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC;YAC/C,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;QAC3B,OAAO,MAAM;YACX,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACrC,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3E,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC;YACT,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5E,CAAC;AAED,SAAS,cAAc,CACrB,QAA6C,EAC7C,GAAW;IAEX,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CACtB,MAA0B,EAC1B,KAAa;IAEb,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IACpE,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACpD,CAAC,CAAE,QAAQ,CAAC,MAAkC;QAC9C,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE;SAC7B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,KAAc;IAClD,OAAO,eAAe,CACpB;QACE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;KAC1B,EACvB,KAAK,IAAI,YAAY,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,WAAwB;IACjD,IAAI,WAAW,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,WAAW,CAAC,gBAAgB,CAC1B,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type {\n ChatModelAdapter,\n ChatModelRunOptions,\n ChatModelRunResult,\n} from \"@assistant-ui/react\";\nimport { unwrapAttachmentEnvelope } from \"./composer/pasted-text.js\";\nimport type { AgentPromptAttachment } from \"./composer/prompt-attachments.js\";\nimport type { ReasoningEffort } from \"../shared/reasoning-effort.js\";\nimport {\n compareCodeAgentTranscriptEvents,\n isCodeAgentRunActive,\n type CodeAgentRunStateLike,\n} from \"../code-agents/transcript-order.js\";\nimport {\n normalizeCodeAgentTranscript,\n type CodeAgentTranscriptEvent as CoreCodeAgentTranscriptEvent,\n type NormalizedCodeAgentStatusEvent,\n type NormalizedCodeAgentToolEvent,\n type NormalizedCodeAgentTranscriptItem,\n} from \"../code-agents/transcript-normalizer.js\";\nimport type { ContentPart } from \"./sse-event-processor.js\";\n\nexport type CodeAgentChatFollowUpMode = \"immediate\" | \"queued\";\n\nexport interface CodeAgentChatTranscriptEvent {\n id: string;\n runId: string;\n kind?: CoreCodeAgentTranscriptEvent[\"kind\"];\n type?: CoreCodeAgentTranscriptEvent[\"kind\"] | \"note\";\n message?: string;\n text?: string;\n createdAt: string;\n metadata?: Record<string, unknown>;\n artifactPath?: string;\n artifactUrl?: string;\n}\n\nexport interface CodeAgentChatControlResult {\n ok: boolean;\n run?: CodeAgentRunStateLike | null;\n queued?: boolean;\n message?: string;\n error?: string;\n}\n\nexport interface CodeAgentChatController {\n get(runId: string): Promise<CodeAgentRunStateLike | null>;\n transcript(runId: string): Promise<CodeAgentChatTranscriptEvent[]>;\n sendFollowUp(input: {\n runId: string;\n prompt: string;\n mode?: CodeAgentChatFollowUpMode;\n permissionMode?: string;\n engine?: string;\n model?: string;\n reasoningEffort?: ReasoningEffort;\n source?: string;\n metadata?: Record<string, unknown>;\n }): Promise<CodeAgentChatControlResult>;\n control(input: {\n runId: string;\n command: \"stop\";\n }): Promise<CodeAgentChatControlResult>;\n}\n\nexport interface CreateCodeAgentChatAdapterOptions {\n controller: CodeAgentChatController;\n runIdRef: { current: string | null };\n permissionModeRef?: { current: string | undefined };\n modelRef?: { current: string | undefined };\n engineRef?: { current: string | undefined };\n effortRef?: { current: ReasoningEffort | undefined };\n followUpModeRef?: { current: CodeAgentChatFollowUpMode | undefined };\n attachOnlyRef?: { current: boolean };\n tabId?: string;\n pollIntervalMs?: number;\n idlePollIntervalMs?: number;\n terminalIdlePolls?: number;\n /**\n * Assistant-ui may abort a run for UI lifecycle reasons, such as switching\n * selected sessions. Code sessions keep running unless the host sends an\n * explicit stop command.\n */\n stopOnAbort?: boolean;\n}\n\ntype AssistantUiAttachment = {\n name?: string;\n contentType?: string;\n content?: readonly Record<string, unknown>[];\n};\n\nexport function createCodeAgentChatAdapter(\n options: CreateCodeAgentChatAdapterOptions,\n): ChatModelAdapter {\n const pollIntervalMs = options.pollIntervalMs ?? 1000;\n const idlePollIntervalMs = options.idlePollIntervalMs ?? 5000;\n const terminalIdlePolls = options.terminalIdlePolls ?? 3;\n const stopOnAbort = options.stopOnAbort === true;\n\n return {\n async *run({ messages, abortSignal }: ChatModelRunOptions) {\n const runId = options.runIdRef.current;\n if (!runId) {\n yield errorResult(\"Select an Agent-Native Code session first.\");\n return;\n }\n\n const lastUserMessage = latestUserMessage(messages);\n const attachments = lastUserMessage\n ? extractPromptAttachmentsFromAssistantMessage(lastUserMessage)\n : [];\n const prompt =\n latestUserText(messages).trim() ||\n (attachments.length > 0 ? \"Use the attached context.\" : \"\");\n if (!prompt.trim()) {\n yield errorResult(\"Enter a follow-up prompt.\");\n return;\n }\n\n let stoppedFromAbort = false;\n const stopForAbort = () => {\n stoppedFromAbort = true;\n if (stopOnAbort) {\n void options.controller.control({ runId, command: \"stop\" });\n }\n };\n if (abortSignal.aborted) {\n stopForAbort();\n return;\n }\n abortSignal.addEventListener(\"abort\", stopForAbort, { once: true });\n\n try {\n const initialEvents = await options.controller.transcript(runId);\n const seenEventIds = new Set(initialEvents.map((event) => event.id));\n const tailedEvents: CodeAgentChatTranscriptEvent[] = [];\n\n if (!options.attachOnlyRef?.current) {\n const beforeSendRun = await options.controller.get(runId);\n const response = await options.controller.sendFollowUp({\n runId,\n prompt,\n mode:\n options.followUpModeRef?.current ??\n (beforeSendRun && isCodeAgentRunActive(beforeSendRun)\n ? \"queued\"\n : \"immediate\"),\n permissionMode: options.permissionModeRef?.current,\n engine: options.engineRef?.current,\n model: options.modelRef?.current,\n reasoningEffort: options.effortRef?.current,\n source: \"code-agent-chat\",\n metadata: attachments.length > 0 ? { attachments } : undefined,\n });\n if (!response.ok) {\n yield errorResult(\n response.error ?? response.message ?? \"Could not send follow-up.\",\n runId,\n );\n return;\n }\n }\n\n let yieldedContent = false;\n let idleTerminalPolls = 0;\n while (!abortSignal.aborted) {\n const [events, run] = await Promise.all([\n options.controller.transcript(runId),\n options.controller.get(runId),\n ]);\n const nextEvents = events\n .filter((event) => !seenEventIds.has(event.id))\n .sort(compareCodeAgentTranscriptEvents);\n for (const event of nextEvents) {\n seenEventIds.add(event.id);\n tailedEvents.push(event);\n }\n\n const content = codeAgentTranscriptEventsToContent(tailedEvents);\n if (content.length > 0 && nextEvents.length > 0) {\n yieldedContent = true;\n yield withRunMetadata({ content: [...content] }, runId);\n }\n\n if (run && isCodeAgentRunActive(run)) {\n idleTerminalPolls = 0;\n } else if (nextEvents.length === 0) {\n idleTerminalPolls += 1;\n } else {\n idleTerminalPolls = 0;\n }\n\n if (idleTerminalPolls >= terminalIdlePolls) {\n if (content.length > 0 && !yieldedContent) {\n yield withRunMetadata({ content: [...content] }, runId);\n }\n return;\n }\n\n await sleep(\n run && isCodeAgentRunActive(run)\n ? pollIntervalMs\n : idlePollIntervalMs,\n abortSignal,\n );\n }\n } finally {\n abortSignal.removeEventListener(\"abort\", stopForAbort);\n if (stoppedFromAbort) {\n return;\n }\n }\n },\n };\n}\n\nexport function codeAgentTranscriptEventsToContent(\n events: readonly CodeAgentChatTranscriptEvent[],\n): ContentPart[] {\n const normalized = normalizeCodeAgentTranscript(\n events.map(toCoreCodeAgentTranscriptEvent),\n );\n const content: ContentPart[] = [];\n\n const appendText = (text: string) => {\n const trimmed = text.trim();\n if (!trimmed) return;\n const last = content.at(-1);\n if (last?.type === \"text\") {\n last.text = `${last.text}${last.text ? \"\\n\\n\" : \"\"}${trimmed}`;\n } else {\n content.push({ type: \"text\", text: trimmed });\n }\n };\n\n for (const item of normalized.items) {\n const part = contentPartForCodeAgentTranscriptItem(item);\n if (!part) continue;\n if (part.type === \"text\") {\n appendText(part.text);\n } else {\n content.push(part);\n }\n }\n\n return content;\n}\n\nfunction latestUserMessage(\n messages: ChatModelRunOptions[\"messages\"],\n): ChatModelRunOptions[\"messages\"][number] | undefined {\n for (let index = messages.length - 1; index >= 0; index--) {\n const message = messages[index];\n if (message.role === \"user\") return message;\n }\n return undefined;\n}\n\nfunction latestUserText(messages: ChatModelRunOptions[\"messages\"]): string {\n const message = latestUserMessage(messages);\n return (\n message?.content\n .filter(\n (part): part is { type: \"text\"; text: string } => part.type === \"text\",\n )\n .map((part) => part.text)\n .join(\"\\n\") ?? \"\"\n );\n}\n\nfunction extractPromptAttachmentsFromAssistantMessage(message: {\n attachments?: readonly AssistantUiAttachment[];\n}): AgentPromptAttachment[] {\n const attachments: AgentPromptAttachment[] = [];\n for (const att of message.attachments ?? []) {\n const name = att.name ?? \"attachment\";\n for (const part of att.content ?? []) {\n if (part.type === \"image\" && typeof part.image === \"string\") {\n attachments.push({\n name,\n type: att.contentType,\n dataUrl: part.image,\n });\n } else if (part.type === \"file\" && typeof part.data === \"string\") {\n attachments.push({\n name,\n type:\n att.contentType ??\n (typeof part.mimeType === \"string\" ? part.mimeType : undefined),\n ...(part.data.startsWith(\"data:\")\n ? { dataUrl: part.data }\n : { text: part.data }),\n });\n } else if (part.type === \"text\" && typeof part.text === \"string\") {\n attachments.push({\n name,\n type: att.contentType,\n text: unwrapAttachmentEnvelope(part.text),\n });\n }\n }\n }\n return attachments;\n}\n\nfunction toCoreCodeAgentTranscriptEvent(\n event: CodeAgentChatTranscriptEvent,\n): CoreCodeAgentTranscriptEvent {\n return {\n schemaVersion: 1,\n id: event.id,\n runId: event.runId,\n kind: (event.kind ??\n event.type ??\n \"status\") as CoreCodeAgentTranscriptEvent[\"kind\"],\n message: event.message ?? event.text ?? \"\",\n createdAt: event.createdAt,\n metadata: {\n ...(event.metadata ?? {}),\n ...(event.artifactPath ? { artifactPath: event.artifactPath } : {}),\n ...(event.artifactUrl ? { artifactUrl: event.artifactUrl } : {}),\n },\n };\n}\n\nfunction contentPartForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentTranscriptItem,\n): ContentPart | null {\n if (item.type === \"assistant\") {\n return item.text.trim() ? { type: \"text\", text: item.text.trim() } : null;\n }\n if (item.type === \"tool\") {\n return toolContentPartForCodeAgentTranscriptItem(item);\n }\n if (item.type === \"status\") {\n const text = statusTextForCodeAgentTranscriptItem(item);\n return text ? { type: \"text\", text } : null;\n }\n return null;\n}\n\nfunction toolContentPartForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentToolEvent,\n): ContentPart {\n return {\n type: \"tool-call\",\n toolCallId: `code-tool-${item.id}`,\n toolName: item.tool ?? item.label ?? \"code-agent\",\n argsText: previewValue(item.input) ?? \"\",\n args: recordArgs(item.input),\n ...(item.result !== undefined\n ? { result: previewValue(item.result) ?? \"\" }\n : {}),\n ...(item.mcpApp ? { mcpApp: item.mcpApp } : {}),\n };\n}\n\nfunction statusTextForCodeAgentTranscriptItem(\n item: NormalizedCodeAgentStatusEvent,\n): string | null {\n if (item.statusKind === \"artifact\") {\n const event = item.events[0];\n const path =\n stringMetadata(event?.metadata, \"artifactPath\") ??\n stringMetadata(event?.metadata, \"path\");\n const url = stringMetadata(event?.metadata, \"artifactUrl\");\n const target = url ?? path;\n return target\n ? `Artifact: ${item.text}\\n${target}`\n : `Artifact: ${item.text}`;\n }\n if (item.level === \"info\" && item.statusKind !== \"note\") return null;\n return item.text;\n}\n\nfunction recordArgs(value: unknown): Record<string, string> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return {};\n const result: Record<string, string> = {};\n for (const [key, entry] of Object.entries(value)) {\n result[key] =\n typeof entry === \"string\" ? entry : (previewValue(entry) ?? \"\");\n }\n return result;\n}\n\nfunction previewValue(value: unknown): string | undefined {\n if (value === undefined || value === null) return undefined;\n const text =\n typeof value === \"string\" ? value : (JSON.stringify(value, null, 2) ?? \"\");\n const trimmed = text.trim();\n if (!trimmed) return undefined;\n return trimmed.length > 4000 ? `${trimmed.slice(0, 4000)}\\n...` : trimmed;\n}\n\nfunction stringMetadata(\n metadata: Record<string, unknown> | undefined,\n key: string,\n): string | undefined {\n const value = metadata?.[key];\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction withRunMetadata(\n result: ChatModelRunResult,\n runId: string,\n): ChatModelRunResult {\n const metadata = (result.metadata ?? {}) as Record<string, unknown>;\n const custom =\n metadata.custom && typeof metadata.custom === \"object\"\n ? (metadata.custom as Record<string, unknown>)\n : {};\n return {\n ...result,\n metadata: {\n ...metadata,\n custom: { ...custom, runId },\n },\n };\n}\n\nfunction errorResult(message: string, runId?: string): ChatModelRunResult {\n return withRunMetadata(\n {\n content: [{ type: \"text\", text: message }],\n status: { type: \"incomplete\", reason: \"error\" },\n } as ChatModelRunResult,\n runId ?? \"code-agent\",\n );\n}\n\nfunction sleep(ms: number, abortSignal: AbortSignal): Promise<void> {\n if (abortSignal.aborted) return Promise.resolve();\n return new Promise((resolve) => {\n const timeout = setTimeout(resolve, ms);\n abortSignal.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timeout);\n resolve();\n },\n { once: true },\n );\n });\n}\n"]}
@@ -157,7 +157,7 @@ Use manage-automations with action=define to create it. Ask clarifying questions
157
157
 
158
158
  Use the create-extension action with Alpine.js HTML content. The extension runs as a sandboxed iframe with Tailwind CSS and modest default canvas padding. For edge-to-edge layouts, put data-extension-layout="full-bleed" on the outermost element.
159
159
 
160
- After creating the extension, navigate the user to it with set-url-path using pathname "/extensions/<id>".
160
+ After creating the extension, navigate the user to it with the path returned by create-extension; extension URLs may include a friendly "/extensions/<id>/<slug>" suffix.
161
161
 
162
162
  Make the extension functional and visually polished. Extensions can use extensionFetch() for external API calls, appAction()/appFetch() for app operations, extensionData for per-extension persistence, and dbQuery()/dbExec() only for existing app tables.
163
163