@letta-ai/letta-code 0.30.20 → 0.30.21
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.
- package/dist/app-server-client.cjs +2 -2
- package/dist/app-server-client.cjs.map +3 -3
- package/dist/app-server-client.js +2 -2
- package/dist/app-server-client.js.map +3 -3
- package/dist/channels-public.js +29 -6
- package/dist/channels-public.js.map +4 -5
- package/dist/channels-slack.js +98 -9
- package/dist/channels-slack.js.map +7 -6
- package/dist/gateway-core.js +2 -4
- package/dist/gateway-core.js.map +3 -3
- package/dist/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/types/backend/dev/headless-turn-executor.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-model-factory.d.ts +1 -0
- package/dist/types/backend/dev/pi-model-factory.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-models-runtime.d.ts +3 -1
- package/dist/types/backend/dev/pi-models-runtime.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-ollama-provider.d.ts +35 -0
- package/dist/types/backend/dev/pi-ollama-provider.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-stream-adapter.d.ts.map +1 -1
- package/dist/types/backend/dev/provider-turn-executor.d.ts +8 -0
- package/dist/types/backend/dev/provider-turn-executor.d.ts.map +1 -1
- package/dist/types/channels/message-references.d.ts +12 -0
- package/dist/types/channels/message-references.d.ts.map +1 -0
- package/dist/types/channels/slack/ingress-policy.d.ts +3 -0
- package/dist/types/channels/slack/ingress-policy.d.ts.map +1 -1
- package/dist/types/channels/slack/public-utils.d.ts +0 -1
- package/dist/types/channels/slack/public-utils.d.ts.map +1 -1
- package/dist/types/channels/slack/user-mentions.d.ts +10 -0
- package/dist/types/channels/slack/user-mentions.d.ts.map +1 -0
- package/dist/types/channels/slack/utils.d.ts +0 -1
- package/dist/types/channels/slack/utils.d.ts.map +1 -1
- package/dist/types/channels/types.d.ts +8 -1
- package/dist/types/channels/types.d.ts.map +1 -1
- package/dist/types/channels/xml.d.ts +2 -7
- package/dist/types/channels/xml.d.ts.map +1 -1
- package/dist/types/channels-public.d.ts +1 -0
- package/dist/types/channels-public.d.ts.map +1 -1
- package/dist/types/channels-slack.d.ts +2 -1
- package/dist/types/channels-slack.d.ts.map +1 -1
- package/dist/types/mods/conversation-handle.d.ts.map +1 -1
- package/dist/types/mods/conversation-title-events.d.ts +9 -0
- package/dist/types/mods/conversation-title-events.d.ts.map +1 -0
- package/dist/types/mods/types.d.ts +2 -0
- package/dist/types/mods/types.d.ts.map +1 -1
- package/dist/types/permissions/checker.d.ts.map +1 -1
- package/dist/types/permissions/workspace-sandbox.d.ts +19 -0
- package/dist/types/permissions/workspace-sandbox.d.ts.map +1 -0
- package/dist/types/runtime-context.d.ts +7 -0
- package/dist/types/runtime-context.d.ts.map +1 -1
- package/dist/types/telemetry/fatal-error-handler.d.ts +13 -0
- package/dist/types/telemetry/fatal-error-handler.d.ts.map +1 -0
- package/dist/types/telemetry/index.d.ts +2 -0
- package/dist/types/telemetry/index.d.ts.map +1 -1
- package/dist/types/tools/impl/shell-sandbox.d.ts +1 -1
- package/dist/types/tools/impl/shell-sandbox.d.ts.map +1 -1
- package/dist/types/tools/toolset.d.ts +1 -0
- package/dist/types/tools/toolset.d.ts.map +1 -1
- package/dist/types/types/app-server-info.d.ts +1 -0
- package/dist/types/types/app-server-info.d.ts.map +1 -1
- package/dist/types/types/protocol.d.ts +1 -1
- package/dist/types/types/protocol_v2.d.ts +4 -0
- package/dist/types/types/protocol_v2.d.ts.map +1 -1
- package/dist/types/utils/error.d.ts +1 -1
- package/dist/types/utils/error.d.ts.map +1 -1
- package/dist/types/websocket/listener/runtime.d.ts.map +1 -1
- package/dist/types/websocket/listener/types.d.ts +3 -0
- package/dist/types/websocket/listener/types.d.ts.map +1 -1
- package/letta.js +3210 -2631
- package/package.json +1 -1
- package/scripts/isolated-unit-tests.json +5 -0
- package/scripts/source-file-size-baseline.json +2 -2
- package/skills/creating-mods/references/tools.md +1 -0
- package/dist/types/cli/helpers/session-context.d.ts +0 -25
- package/dist/types/cli/helpers/session-context.d.ts.map +0 -1
- package/dist/types/utils/shell-context.d.ts +0 -7
- package/dist/types/utils/shell-context.d.ts.map +0 -1
package/dist/gateway-core.js.map
CHANGED
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"import type { MessageCreate } from \"@letta-ai/letta-client/resources/agents/agents\";\nimport { getInteractiveApprovalKind } from \"@/tools/interactive-policy\";\nimport type {\n ApprovalResponseBody,\n ControlRequest,\n ExternalToolCallRequestMessage,\n ExternalToolCallResult,\n ExternalToolDefinitionPayload,\n InputAcceptedResponseMessage,\n InputCommand,\n QueueUpdateMessage,\n RuntimeExternalToolsUpdateGroup,\n RuntimeExternalToolsUpdateResponseMessage,\n RuntimeScope,\n RuntimeStartCommand,\n RuntimeStartResponseMessage,\n StopReasonType,\n StreamDeltaMessage,\n WsProtocolMessage,\n} from \"@/types/app-server-protocol\";\nimport {\n createMessageChannelIdempotencyScope,\n type MessageChannelIdempotencyScope,\n} from \"./message-channel-idempotency\";\nimport { createChannelTurnProgressBuilder } from \"./progress-builder\";\nimport type {\n ChannelControlRequestEvent,\n ChannelDefaultPermissionMode,\n ChannelTurnLifecycleEvent,\n ChannelTurnProgressEvent,\n ChannelTurnSource,\n} from \"./types\";\n\nconst MAX_ACCEPTED_CLIENT_MESSAGE_IDS = 2048;\n\nexport interface ChannelGatewayClient {\n close(): void;\n onMessage(listener: (message: WsProtocolMessage) => void): () => void;\n onExternalToolCall(\n handler: (\n request: ExternalToolCallRequestMessage,\n ) => Promise<ExternalToolCallResult> | ExternalToolCallResult,\n ): () => void;\n submitInput(\n command: Omit<InputCommand, \"type\">,\n ): Promise<InputAcceptedResponseMessage>;\n runtimeStart(\n options: Omit<RuntimeStartCommand, \"type\" | \"request_id\"> & {\n request_id?: string;\n },\n ): Promise<RuntimeStartResponseMessage>;\n runtimeExternalToolsUpdate(options: {\n updates: readonly RuntimeExternalToolsUpdateGroup[];\n }): Promise<RuntimeExternalToolsUpdateResponseMessage>;\n}\n\nexport interface ChannelGatewayDelivery {\n runtime: RuntimeScope;\n content: MessageCreate[\"content\"];\n sources: ChannelTurnSource[];\n clientMessageId: string;\n defaultPermissionMode?: ChannelDefaultPermissionMode;\n}\n\nexport interface ChannelGatewayHooks {\n buildExternalTool(\n runtime: RuntimeScope,\n sources: ChannelTurnSource[],\n ): Promise<ExternalToolDefinitionPayload | null>;\n executeExternalTool(\n request: ExternalToolCallRequestMessage,\n sources: ChannelTurnSource[],\n idempotencyScope?: MessageChannelIdempotencyScope | null,\n ): Promise<ExternalToolCallResult> | ExternalToolCallResult;\n onLifecycle(event: ChannelTurnLifecycleEvent): void | Promise<void>;\n onProgress(event: ChannelTurnProgressEvent): void | Promise<void>;\n onControlRequest(event: ChannelControlRequestEvent): void | Promise<void>;\n createRichDraft?(options: {\n batchId: string;\n sources: ChannelTurnSource[];\n }): ChannelGatewayRichDraft | null;\n}\n\nexport interface ChannelGatewayRichDraft {\n handleDelta(delta: StreamDeltaMessage[\"delta\"]): void;\n flushPending(): Promise<void>;\n dispose(): void;\n}\n\nexport interface ChannelGatewayModelStatus {\n modelHandle: string | null;\n scope: \"agent\" | \"conversation\";\n}\n\ntype ActiveGatewayTurn = {\n batchId: string;\n routingSources: ChannelTurnSource[];\n lifecycleSources: ChannelTurnSource[];\n progress: ReturnType<typeof createChannelTurnProgressBuilder>;\n richDraft: ChannelGatewayRichDraft | null;\n runId?: string;\n idempotencyScope: MessageChannelIdempotencyScope;\n};\n\ntype GatewayRuntimeState = {\n runtime: RuntimeScope;\n pendingSourcesByClientMessageId: Map<\n string,\n {\n sources: ChannelTurnSource[];\n disposition: \"submitting\" | \"queued\";\n removalDisposition?: \"dequeued\" | \"cancelled\";\n }\n >;\n active: ActiveGatewayTurn | null;\n registrationSignature: string | null;\n registration: Promise<void> | null;\n routedSources: ChannelTurnSource[];\n replayedControlRequestIds: Set<string>;\n submissionQueue: Promise<void>;\n hookQueue: Promise<void> | null;\n acceptedClientMessageIds: Set<string>;\n modelStatus: ChannelGatewayModelStatus | null;\n};\n\nfunction runtimeKey(runtime: RuntimeScope): string {\n return `${runtime.agent_id}:${runtime.conversation_id}`;\n}\n\nfunction sourceRouteKey(source: ChannelTurnSource): string {\n return [\n source.channel,\n source.accountId ?? \"\",\n source.chatId,\n source.threadId ?? \"\",\n ].join(\":\");\n}\n\nfunction sourceLifecycleKey(source: ChannelTurnSource): string {\n return [\n sourceRouteKey(source),\n source.messageId ?? \"\",\n source.agentId,\n source.conversationId,\n ].join(\":\");\n}\n\nfunction uniqueSourcesBy(\n sources: ChannelTurnSource[],\n getKey: (source: ChannelTurnSource) => string,\n): ChannelTurnSource[] {\n const byKey = new Map<string, ChannelTurnSource>();\n for (const source of sources) byKey.set(getKey(source), source);\n return [...byKey.values()];\n}\n\nfunction uniqueRoutedSources(\n sources: ChannelTurnSource[],\n): ChannelTurnSource[] {\n return uniqueSourcesBy(sources, sourceRouteKey);\n}\n\nfunction uniqueLifecycleSources(\n sources: ChannelTurnSource[],\n): ChannelTurnSource[] {\n return uniqueSourcesBy(sources, sourceLifecycleKey);\n}\n\nfunction channelTagsForSources(sources: ChannelTurnSource[]): string[] {\n return [...new Set(sources.map((source) => `channel:${source.channel}`))];\n}\n\nfunction stopReasonFromDelta(\n message: StreamDeltaMessage,\n): StopReasonType | null {\n const delta = message.delta;\n return delta.message_type === \"stop_reason\" &&\n \"stop_reason\" in delta &&\n typeof delta.stop_reason === \"string\"\n ? delta.stop_reason\n : null;\n}\n\nfunction runIdFromDelta(message: StreamDeltaMessage): string | undefined {\n const runId = \"run_id\" in message.delta ? message.delta.run_id : undefined;\n return typeof runId === \"string\" && runId.length > 0 ? runId : undefined;\n}\n\nfunction lifecycleOutcome(\n stopReason: StopReasonType,\n): \"completed\" | \"error\" | \"cancelled\" {\n if (stopReason === \"cancelled\") return \"cancelled\";\n if (stopReason === \"end_turn\" || stopReason === \"tool_rule\") {\n return \"completed\";\n }\n return \"error\";\n}\n\n/**\n * Process-neutral Channels bridge. It only speaks the public App Server\n * protocol; channel adapters and credentials stay behind the injected hooks.\n */\nexport class ChannelGateway {\n private readonly states = new Map<string, GatewayRuntimeState>();\n private readonly disposers: Array<() => void> = [];\n // Tool publication and runtime_start both replace the same connection-owned\n // registration. Keep them ordered so a late runtime_start cannot resurrect a\n // route that an overlapping route-removal update just revoked.\n private registrationQueue = Promise.resolve();\n\n constructor(\n private readonly client: ChannelGatewayClient,\n private readonly hooks: ChannelGatewayHooks,\n ) {\n this.disposers.push(\n client.onMessage((message) => this.handleMessage(message)),\n client.onExternalToolCall((request) => {\n const state = request.runtime\n ? this.states.get(runtimeKey(request.runtime))\n : undefined;\n const active = state?.active;\n const sources = active?.routingSources ?? state?.routedSources ?? [];\n // Pass the per-turn idempotency scope only when a turn is active;\n // process-owned calls (no active batch) are not deduped.\n return hooks.executeExternalTool(\n request,\n sources,\n active?.idempotencyScope ?? null,\n );\n }),\n );\n }\n\n close(): void {\n for (const dispose of this.disposers.splice(0)) dispose();\n this.client.close();\n this.states.clear();\n }\n\n async submit(delivery: ChannelGatewayDelivery): Promise<boolean> {\n const state = this.getState(delivery.runtime);\n const submission = state.submissionQueue.then(() =>\n this.submitDelivery(state, delivery),\n );\n state.submissionQueue = submission.then(\n () => undefined,\n () => undefined,\n );\n return submission;\n }\n\n private async submitDelivery(\n state: GatewayRuntimeState,\n delivery: ChannelGatewayDelivery,\n ): Promise<boolean> {\n if (state.acceptedClientMessageIds.has(delivery.clientMessageId)) {\n state.acceptedClientMessageIds.delete(delivery.clientMessageId);\n state.acceptedClientMessageIds.add(delivery.clientMessageId);\n return true;\n }\n state.pendingSourcesByClientMessageId.set(delivery.clientMessageId, {\n sources: uniqueLifecycleSources(delivery.sources),\n disposition: \"submitting\",\n });\n try {\n await this.enqueueRegistration(async () => {\n state.routedSources = uniqueRoutedSources([\n ...state.routedSources,\n ...delivery.sources,\n ]);\n await this.performRuntimeRegistration(state, delivery);\n });\n const response = await this.client.submitInput({\n runtime: delivery.runtime,\n payload: {\n kind: \"create_message\",\n messages: [\n {\n role: \"user\",\n content: delivery.content,\n client_message_id: delivery.clientMessageId,\n },\n ],\n image_failure_mode: \"drop\",\n },\n });\n if (!response.accepted) {\n state.pendingSourcesByClientMessageId.delete(delivery.clientMessageId);\n return false;\n }\n state.acceptedClientMessageIds.add(delivery.clientMessageId);\n if (\n state.acceptedClientMessageIds.size > MAX_ACCEPTED_CLIENT_MESSAGE_IDS\n ) {\n const oldest = state.acceptedClientMessageIds.values().next().value;\n if (oldest) state.acceptedClientMessageIds.delete(oldest);\n }\n const queuedEvents = delivery.sources.map((source) =>\n this.enqueueHook(state, () =>\n this.hooks.onLifecycle({ type: \"queued\", source }),\n ),\n );\n if (response.disposition === \"started\") {\n this.activateSources(state, delivery.clientMessageId, delivery.sources);\n state.pendingSourcesByClientMessageId.delete(delivery.clientMessageId);\n } else if (response.disposition === \"queued\") {\n const pending = state.pendingSourcesByClientMessageId.get(\n delivery.clientMessageId,\n );\n if (pending) {\n pending.disposition = \"queued\";\n }\n this.reconcileExplicitQueueRemovals(state);\n }\n await Promise.all(queuedEvents);\n return true;\n } catch (error) {\n state.pendingSourcesByClientMessageId.delete(delivery.clientMessageId);\n throw error;\n }\n }\n\n async restoreRuntime(\n runtime: RuntimeScope,\n sources: ChannelTurnSource[],\n ): Promise<Set<string>> {\n const state = this.getState(runtime);\n state.replayedControlRequestIds.clear();\n let recoveredTurn: ActiveGatewayTurn | null = null;\n if (!state.active) {\n recoveredTurn = {\n batchId: `channel-recovered-${crypto.randomUUID()}`,\n routingSources: uniqueRoutedSources(sources),\n lifecycleSources: uniqueLifecycleSources(sources),\n progress: createChannelTurnProgressBuilder(),\n richDraft: null,\n idempotencyScope: createMessageChannelIdempotencyScope(),\n };\n state.active = recoveredTurn;\n }\n try {\n await this.registerRuntime(runtime, sources);\n } catch (error) {\n if (state.active === recoveredTurn) state.active = null;\n throw error;\n }\n const replayedRequestIds = new Set(state.replayedControlRequestIds);\n if (replayedRequestIds.size === 0 && state.active === recoveredTurn) {\n state.active = null;\n }\n return replayedRequestIds;\n }\n\n async registerRuntime(\n runtime: RuntimeScope,\n sources: ChannelTurnSource[] = [],\n defaultPermissionMode?: ChannelDefaultPermissionMode,\n ): Promise<void> {\n const state = this.getState(runtime);\n await this.enqueueRegistration(async () => {\n this.setRoutedSources(runtime, sources);\n await this.performRuntimeRegistration(state, {\n runtime,\n content: \"\",\n sources,\n clientMessageId: \"recovered\",\n ...(defaultPermissionMode ? { defaultPermissionMode } : {}),\n });\n });\n }\n\n /** Publish tools for a listener-owned turn without subscribing to its stream. */\n async publishRuntimeTools(\n runtime: RuntimeScope,\n sources: ChannelTurnSource[] = [],\n ): Promise<boolean> {\n return await this.enqueueRegistration(async () => {\n if (this.states.has(runtimeKey(runtime))) return false;\n const tool = await this.hooks.buildExternalTool(runtime, sources);\n const response = await this.client.runtimeExternalToolsUpdate({\n updates: [\n {\n runtimes: [runtime],\n external_tools: tool ? [{ tools: [tool] }] : [],\n },\n ],\n });\n if (!response.success) {\n throw new Error(\n response.error ?? \"Failed to publish channel runtime tools\",\n );\n }\n return tool !== null;\n });\n }\n\n async releaseRuntimeTools(\n runtime: RuntimeScope,\n routedSources: ChannelTurnSource[] = [],\n ): Promise<void> {\n await this.enqueueRegistration(async () => {\n if (routedSources.length > 0 || this.states.has(runtimeKey(runtime))) {\n return;\n }\n const response = await this.client.runtimeExternalToolsUpdate({\n updates: [{ runtimes: [runtime], external_tools: [] }],\n });\n if (!response.success) {\n throw new Error(\n response.error ?? \"Failed to release channel runtime tools\",\n );\n }\n });\n }\n\n async submitApprovalResponse(\n runtime: RuntimeScope,\n response: ApprovalResponseBody,\n ): Promise<boolean> {\n const result = await this.client.submitInput({\n runtime,\n payload: { kind: \"approval_response\", ...response },\n });\n return result.accepted;\n }\n\n setRoutedSources(runtime: RuntimeScope, sources: ChannelTurnSource[]): void {\n this.getState(runtime).routedSources = uniqueRoutedSources(sources);\n }\n\n getKnownRuntimes(): RuntimeScope[] {\n return [...this.states.values()].map((state) => state.runtime);\n }\n\n updateRoutedRuntimeTools(\n updates: readonly RuntimeExternalToolsUpdateGroup[],\n routedSources: Array<{\n runtime: RuntimeScope;\n sources: ChannelTurnSource[];\n }>,\n ): Promise<void> {\n return this.enqueueRegistration(async () => {\n if (updates.length > 0) {\n const response = await this.client.runtimeExternalToolsUpdate({\n updates,\n });\n if (!response.success) {\n throw new Error(\n response.error ?? \"Failed to update routed runtime tools\",\n );\n }\n }\n for (const update of routedSources) {\n this.setRoutedSources(update.runtime, update.sources);\n }\n });\n }\n\n getModelStatus(runtime: RuntimeScope): ChannelGatewayModelStatus | null {\n return this.states.get(runtimeKey(runtime))?.modelStatus ?? null;\n }\n\n updateModelStatus(runtime: RuntimeScope, modelHandle: string | null): void {\n const state = this.getState(runtime);\n state.modelStatus = {\n modelHandle,\n scope: runtime.conversation_id === \"default\" ? \"agent\" : \"conversation\",\n };\n }\n\n private getState(runtime: RuntimeScope): GatewayRuntimeState {\n const key = runtimeKey(runtime);\n let state = this.states.get(key);\n if (!state) {\n state = {\n runtime,\n pendingSourcesByClientMessageId: new Map(),\n active: null,\n registrationSignature: null,\n registration: null,\n routedSources: [],\n replayedControlRequestIds: new Set(),\n submissionQueue: Promise.resolve(),\n hookQueue: null,\n acceptedClientMessageIds: new Set(),\n modelStatus: null,\n };\n this.states.set(key, state);\n }\n return state;\n }\n\n private enqueueHook(\n state: GatewayRuntimeState,\n hook: () => void | Promise<void>,\n ): Promise<void> {\n let pending: Promise<void>;\n if (state.hookQueue) {\n pending = state.hookQueue.then(hook);\n } else {\n try {\n pending = Promise.resolve(hook());\n } catch (error) {\n pending = Promise.reject(error);\n }\n }\n const settled = pending.then(\n () => undefined,\n () => undefined,\n );\n state.hookQueue = settled;\n void settled.then(() => {\n if (state.hookQueue === settled) state.hookQueue = null;\n });\n return pending;\n }\n\n private enqueueRegistration<T>(task: () => Promise<T>): Promise<T> {\n const result = this.registrationQueue.then(task, task);\n this.registrationQueue = result.then(\n () => undefined,\n () => undefined,\n );\n return result;\n }\n\n private async performRuntimeRegistration(\n state: GatewayRuntimeState,\n delivery: ChannelGatewayDelivery,\n ): Promise<void> {\n const tool = await this.hooks.buildExternalTool(\n delivery.runtime,\n delivery.sources,\n );\n const conversationTags = channelTagsForSources(delivery.sources);\n const signature = JSON.stringify({\n mode: delivery.defaultPermissionMode ?? null,\n tool,\n conversationTags,\n });\n if (state.registrationSignature === signature && state.registration) {\n return state.registration;\n }\n\n const registration = this.client\n .runtimeStart({\n agent_id: delivery.runtime.agent_id,\n conversation_id: delivery.runtime.conversation_id,\n ...(conversationTags.length > 0\n ? { conversation_source_tags: conversationTags }\n : {}),\n ...(delivery.defaultPermissionMode\n ? { mode: delivery.defaultPermissionMode }\n : {}),\n recover_approvals: true,\n force_device_status: false,\n wait_for_replay: true,\n preserve_skill_sources: true,\n client_info: { name: \"channel-gateway\", title: \"Channel Gateway\" },\n external_tools: tool ? [{ tools: [tool] }] : [],\n })\n .then((response) => {\n if (!response.success) {\n throw new Error(\n response.error ?? \"Failed to register channel runtime\",\n );\n }\n const agentRecord = response.agent as unknown as Record<\n string,\n unknown\n > | null;\n const conversationRecord = response.conversation as unknown as Record<\n string,\n unknown\n > | null;\n const agentModel =\n typeof agentRecord?.model === \"string\"\n ? agentRecord.model\n : (response.agent?.llm_config?.model ?? null);\n const conversationModel =\n typeof conversationRecord?.model === \"string\"\n ? conversationRecord.model\n : null;\n state.modelStatus = {\n modelHandle:\n delivery.runtime.conversation_id === \"default\"\n ? agentModel\n : (conversationModel ?? agentModel),\n scope:\n delivery.runtime.conversation_id === \"default\"\n ? \"agent\"\n : \"conversation\",\n };\n });\n state.registrationSignature = signature;\n state.registration = registration;\n try {\n await registration;\n } catch (error) {\n if (state.registration === registration) {\n state.registration = null;\n state.registrationSignature = null;\n }\n throw error;\n }\n }\n\n private handleMessage(message: WsProtocolMessage): void {\n if (message.type === \"update_queue\") {\n this.handleQueueUpdate(message);\n return;\n }\n if (message.type === \"stream_delta\") {\n this.handleStreamDelta(message);\n return;\n }\n if (message.type === \"turn_finished\") {\n this.handleTurnFinished(message.runtime, {\n stopReason: message.stop_reason,\n runId: message.run_id,\n error: message.error,\n });\n return;\n }\n if (message.type === \"control_request\") {\n this.handleControlRequest(message);\n }\n }\n\n private handleQueueUpdate(message: QueueUpdateMessage): void {\n const state = this.getState(message.runtime);\n for (const transition of message.removed) {\n const pending = state.pendingSourcesByClientMessageId.get(\n transition.client_message_id,\n );\n if (pending) {\n pending.removalDisposition = transition.disposition;\n }\n }\n this.reconcileExplicitQueueRemovals(state);\n }\n\n private reconcileExplicitQueueRemovals(state: GatewayRuntimeState): void {\n const dequeued: Array<{\n clientMessageId: string;\n sources: ChannelTurnSource[];\n }> = [];\n const cancelled: Array<{\n clientMessageId: string;\n sources: ChannelTurnSource[];\n }> = [];\n\n for (const [\n clientMessageId,\n pending,\n ] of state.pendingSourcesByClientMessageId) {\n if (pending.disposition !== \"queued\" || !pending.removalDisposition) {\n continue;\n }\n const target =\n pending.removalDisposition === \"dequeued\" ? dequeued : cancelled;\n target.push({ clientMessageId, sources: pending.sources });\n state.pendingSourcesByClientMessageId.delete(clientMessageId);\n }\n\n const firstDequeued = dequeued[0];\n if (firstDequeued) {\n this.activateSources(\n state,\n firstDequeued.clientMessageId,\n dequeued.flatMap((entry) => entry.sources),\n );\n }\n for (const entry of cancelled) {\n void this.enqueueHook(state, () =>\n this.hooks.onLifecycle({\n type: \"finished\",\n batchId: `channel-${entry.clientMessageId}`,\n sources: entry.sources,\n outcome: \"cancelled\",\n stopReason: \"cancelled\",\n }),\n );\n }\n }\n\n private activateSources(\n state: GatewayRuntimeState,\n clientMessageId: string,\n sources: ChannelTurnSource[],\n ): void {\n if (state.active) {\n const knownLifecycleKeys = new Set(\n state.active.lifecycleSources.map(sourceLifecycleKey),\n );\n const addedLifecycleSources = uniqueLifecycleSources(sources).filter(\n (source) => !knownLifecycleKeys.has(sourceLifecycleKey(source)),\n );\n if (addedLifecycleSources.length === 0) return;\n state.active.lifecycleSources = uniqueLifecycleSources([\n ...state.active.lifecycleSources,\n ...addedLifecycleSources,\n ]);\n state.active.routingSources = uniqueRoutedSources([\n ...state.active.routingSources,\n ...sources,\n ]);\n const processingEvent: ChannelTurnLifecycleEvent = {\n type: \"processing\",\n batchId: state.active.batchId,\n sources: addedLifecycleSources,\n };\n void this.enqueueHook(state, () =>\n this.hooks.onLifecycle(processingEvent),\n );\n return;\n }\n const routingSources = uniqueRoutedSources(sources);\n const lifecycleSources = uniqueLifecycleSources(sources);\n state.active = {\n batchId: `channel-${clientMessageId}`,\n routingSources,\n lifecycleSources,\n progress: createChannelTurnProgressBuilder(),\n richDraft:\n this.hooks.createRichDraft?.({\n batchId: `channel-${clientMessageId}`,\n sources: routingSources,\n }) ?? null,\n idempotencyScope: createMessageChannelIdempotencyScope(),\n };\n const processingEvent: ChannelTurnLifecycleEvent = {\n type: \"processing\",\n batchId: state.active.batchId,\n sources: state.active.lifecycleSources,\n };\n void this.enqueueHook(state, () => this.hooks.onLifecycle(processingEvent));\n }\n\n private handleStreamDelta(message: StreamDeltaMessage): void {\n if (message.subagent_id) return;\n\n const state = this.getState(message.runtime);\n const active = state.active;\n if (!active) return;\n\n const runId = runIdFromDelta(message);\n if (runId) active.runId = runId;\n for (const update of active.progress.buildUpdates(message.delta)) {\n void this.enqueueHook(state, () =>\n this.hooks.onProgress({\n type: \"progress\",\n batchId: active.batchId,\n sources: active.routingSources,\n ...update,\n }),\n );\n }\n active.richDraft?.handleDelta(message.delta);\n\n const stopReason = stopReasonFromDelta(message);\n if (stopReason === \"requires_approval\" || stopReason === \"end_turn\") {\n void active.richDraft?.flushPending();\n }\n // The listener sends a canonical turn_finished event after it classifies\n // terminal failures. Finalizing from this earlier delta would discard that\n // user-safe error detail.\n }\n\n private handleTurnFinished(\n runtime: RuntimeScope,\n terminal: {\n stopReason: StopReasonType;\n runId?: string;\n error?: string;\n },\n ): void {\n const state = this.getState(runtime);\n const active = state.active;\n if (!active) return;\n state.active = null;\n active.richDraft?.dispose();\n void this.enqueueHook(state, () =>\n this.hooks.onLifecycle({\n type: \"finished\",\n batchId: active.batchId,\n sources: active.lifecycleSources,\n outcome: lifecycleOutcome(terminal.stopReason),\n stopReason: terminal.stopReason,\n ...((terminal.runId ?? active.runId)\n ? { runId: terminal.runId ?? active.runId }\n : {}),\n ...(terminal.error ? { error: terminal.error } : {}),\n }),\n );\n }\n\n private handleControlRequest(message: ControlRequest): void {\n if (!message.agent_id || !message.conversation_id) return;\n const state = this.states.get(\n runtimeKey({\n agent_id: message.agent_id,\n conversation_id: message.conversation_id,\n }),\n );\n if (!state) return;\n const sources = state.active?.routingSources ?? [];\n state.replayedControlRequestIds.add(message.request_id);\n const sourceScopes = new Map(\n sources.map((source) => [sourceRouteKey(source), source]),\n );\n if (sourceScopes.size !== 1) return;\n const source = [...sourceScopes.values()][0];\n if (!source) return;\n void this.enqueueHook(state, () =>\n this.hooks.onControlRequest({\n requestId: message.request_id,\n kind:\n getInteractiveApprovalKind(message.request.tool_name) ??\n \"generic_tool_approval\",\n source,\n toolName: message.request.tool_name,\n input: message.request.input,\n }),\n );\n }\n}\n",
|
|
12
12
|
"import type { OutboundChannelMessage } from \"./types\";\n\nconst TELEGRAM_CHANNEL_ID = \"telegram\";\nconst SIGNAL_CHANNEL_ID = \"signal\";\nconst TELEGRAM_PLACEHOLDER_PREFIX = \"LCTELEGRAMHTMLPLACEHOLDER\";\nconst TELEGRAM_PLACEHOLDER_SUFFIX = \"X\";\nconst TELEGRAM_PLACEHOLDER_PATTERN = /LCTELEGRAMHTMLPLACEHOLDER(\\d+)X/g;\nconst SLACK_PLACEHOLDER_PREFIX = \"LCSLACKMRKDWNPLACEHOLDER\";\nconst SLACK_PLACEHOLDER_SUFFIX = \"X\";\nconst SLACK_PLACEHOLDER_PATTERN = /LCSLACKMRKDWNPLACEHOLDER(\\d+)X/g;\nconst SLACK_ANGLE_TOKEN_RE = /<[^>\\n]+>/g;\n\ntype OutboundChannelFormatter = (\n text: string,\n) => Pick<OutboundChannelMessage, \"text\" | \"parseMode\" | \"textStyle\">;\n\nfunction decodeBasicXmlEntities(text: string): string {\n return text\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/'/g, \"'\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/&/g, \"&\");\n}\n\nfunction escapeTelegramHtml(text: string): string {\n return text\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n}\n\nfunction escapeTelegramHtmlAttribute(text: string): string {\n return escapeTelegramHtml(text)\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n\nfunction createTelegramPlaceholder(\n placeholders: string[],\n value: string,\n): string {\n const placeholder = `${TELEGRAM_PLACEHOLDER_PREFIX}${placeholders.length}${TELEGRAM_PLACEHOLDER_SUFFIX}`;\n placeholders.push(value);\n return placeholder;\n}\n\nfunction restoreTelegramPlaceholders(\n text: string,\n placeholders: string[],\n): string {\n return text.replace(TELEGRAM_PLACEHOLDER_PATTERN, (_match, index) => {\n return placeholders[Number(index)] ?? \"\";\n });\n}\n\nfunction createSlackPlaceholder(placeholders: string[], value: string): string {\n const placeholder = `${SLACK_PLACEHOLDER_PREFIX}${placeholders.length}${SLACK_PLACEHOLDER_SUFFIX}`;\n placeholders.push(value);\n return placeholder;\n}\n\nfunction restoreSlackPlaceholders(\n text: string,\n placeholders: string[],\n): string {\n return text.replace(SLACK_PLACEHOLDER_PATTERN, (_match, index) => {\n return placeholders[Number(index)] ?? \"\";\n });\n}\n\nfunction replaceFencedCodeBlocks(text: string, placeholders: string[]): string {\n return text.replace(\n /```([^\\n`]*)\\n?([\\s\\S]*?)```/g,\n (_match, _lang, code) => {\n return createTelegramPlaceholder(\n placeholders,\n `<pre>${escapeTelegramHtml(String(code).trimEnd())}</pre>`,\n );\n },\n );\n}\n\nfunction replaceInlineCode(text: string, placeholders: string[]): string {\n return text.replace(/`([^`\\n]+)`/g, (_match, code) => {\n return createTelegramPlaceholder(\n placeholders,\n `<code>${escapeTelegramHtml(String(code))}</code>`,\n );\n });\n}\n\ntype ParsedMarkdownLink = {\n label: string;\n url: string;\n endIndex: number;\n};\n\nfunction parseMarkdownLink(\n text: string,\n startIndex: number,\n): ParsedMarkdownLink | null {\n if (text[startIndex] !== \"[\") {\n return null;\n }\n\n let labelEnd = startIndex + 1;\n let bracketDepth = 1;\n while (labelEnd < text.length) {\n const char = text[labelEnd];\n if (char === \"\\\\\") {\n labelEnd += 2;\n continue;\n }\n if (char === \"[\") {\n bracketDepth++;\n } else if (char === \"]\") {\n bracketDepth--;\n if (bracketDepth === 0) {\n break;\n }\n }\n labelEnd++;\n }\n\n if (bracketDepth !== 0 || text[labelEnd + 1] !== \"(\") {\n return null;\n }\n\n let urlEnd = labelEnd + 2;\n let parenDepth = 1;\n while (urlEnd < text.length) {\n const char = text[urlEnd];\n if (char === \"\\\\\") {\n urlEnd += 2;\n continue;\n }\n if (char === \"(\") {\n parenDepth++;\n } else if (char === \")\") {\n parenDepth--;\n if (parenDepth === 0) {\n break;\n }\n }\n urlEnd++;\n }\n\n if (parenDepth !== 0) {\n return null;\n }\n\n const label = text.slice(startIndex + 1, labelEnd);\n const url = text.slice(labelEnd + 2, urlEnd).trim();\n if (!url) {\n return null;\n }\n\n return {\n label,\n url,\n endIndex: urlEnd + 1,\n };\n}\n\nfunction replaceMarkdownLinks(\n text: string,\n placeholders: string[],\n renderLabel: (label: string) => string,\n): string {\n let result = \"\";\n let index = 0;\n\n while (index < text.length) {\n if (text[index] !== \"[\") {\n result += text[index];\n index++;\n continue;\n }\n\n const link = parseMarkdownLink(text, index);\n if (!link) {\n result += text[index];\n index++;\n continue;\n }\n\n result += createTelegramPlaceholder(\n placeholders,\n `<a href=\"${escapeTelegramHtmlAttribute(link.url)}\">${renderLabel(link.label)}</a>`,\n );\n index = link.endIndex;\n }\n\n return result;\n}\n\nfunction applyTelegramInlineFormatting(text: string): string {\n return text\n .replace(/\\*\\*\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*\\*\\*/g, \"<b><i>$1</i></b>\")\n .replace(/___([^\\s_](?:[\\s\\S]*?[^\\s_])?)___/g, \"<b><i>$1</i></b>\")\n .replace(/\\*\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*\\*/g, \"<b>$1</b>\")\n .replace(/__([^\\s_](?:[\\s\\S]*?[^\\s_])?)__/g, \"<b>$1</b>\")\n .replace(/~~([^\\s~](?:[\\s\\S]*?[^\\s~])?)~~/g, \"<s>$1</s>\")\n .replace(/(^|[^\\w*])\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*(?!\\w)/g, \"$1<i>$2</i>\")\n .replace(/(^|[^\\w_])_([^\\s_](?:[\\s\\S]*?[^\\s_])?)_(?!\\w)/g, \"$1<i>$2</i>\");\n}\n\nfunction replaceTelegramBlockQuotes(\n text: string,\n placeholders: string[],\n): string {\n const lines = text.split(\"\\n\");\n const formattedLines: string[] = [];\n\n for (let index = 0; index < lines.length; index++) {\n const quoteMatch = lines[index]?.match(/^ {0,3}> ?(.*)$/);\n if (!quoteMatch) {\n formattedLines.push(lines[index] ?? \"\");\n continue;\n }\n\n const quoteLines: string[] = [quoteMatch[1] ?? \"\"];\n while (index + 1 < lines.length) {\n const nextMatch = lines[index + 1]?.match(/^ {0,3}> ?(.*)$/);\n if (!nextMatch) {\n break;\n }\n quoteLines.push(nextMatch[1] ?? \"\");\n index++;\n }\n\n formattedLines.push(\n createTelegramPlaceholder(\n placeholders,\n `<blockquote>${formatTelegramText(quoteLines.join(\"\\n\"), {\n enableBlockQuotes: false,\n })}</blockquote>`,\n ),\n );\n }\n\n return formattedLines.join(\"\\n\");\n}\n\nfunction formatTelegramText(\n text: string,\n options?: { enableBlockQuotes?: boolean; enableLinks?: boolean },\n): string {\n const placeholders: string[] = [];\n let result = replaceFencedCodeBlocks(text, placeholders);\n result = replaceInlineCode(result, placeholders);\n\n if (options?.enableLinks !== false) {\n result = replaceMarkdownLinks(result, placeholders, (label) =>\n formatTelegramText(label, {\n enableBlockQuotes: false,\n enableLinks: false,\n }),\n );\n }\n\n if (options?.enableBlockQuotes !== false) {\n result = replaceTelegramBlockQuotes(result, placeholders);\n }\n\n result = escapeTelegramHtml(result);\n result = applyTelegramInlineFormatting(result);\n\n return restoreTelegramPlaceholders(result, placeholders);\n}\n\nexport function markdownToTelegramHtml(text: string): string {\n return formatTelegramText(text);\n}\n\nfunction escapeSlackMrkdwnSegment(text: string): string {\n return text\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n}\n\nfunction isAllowedSlackAngleToken(token: string): boolean {\n if (!token.startsWith(\"<\") || !token.endsWith(\">\")) {\n return false;\n }\n const inner = token.slice(1, -1);\n return (\n inner.startsWith(\"@\") ||\n inner.startsWith(\"#\") ||\n inner.startsWith(\"!\") ||\n inner.startsWith(\"mailto:\") ||\n inner.startsWith(\"tel:\") ||\n inner.startsWith(\"http://\") ||\n inner.startsWith(\"https://\") ||\n inner.startsWith(\"slack://\")\n );\n}\n\nfunction escapeSlackMrkdwnContent(text: string): string {\n if (!text) {\n return \"\";\n }\n if (!text.includes(\"&\") && !text.includes(\"<\") && !text.includes(\">\")) {\n return text;\n }\n\n SLACK_ANGLE_TOKEN_RE.lastIndex = 0;\n const out: string[] = [];\n let lastIndex = 0;\n\n for (\n let match = SLACK_ANGLE_TOKEN_RE.exec(text);\n match;\n match = SLACK_ANGLE_TOKEN_RE.exec(text)\n ) {\n const matchIndex = match.index ?? 0;\n out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex, matchIndex)));\n const token = match[0] ?? \"\";\n out.push(\n isAllowedSlackAngleToken(token) ? token : escapeSlackMrkdwnSegment(token),\n );\n lastIndex = matchIndex + token.length;\n }\n\n out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex)));\n return out.join(\"\");\n}\n\nfunction escapeSlackMrkdwnText(text: string): string {\n if (!text) {\n return \"\";\n }\n if (!text.includes(\"&\") && !text.includes(\"<\") && !text.includes(\">\")) {\n return text;\n }\n\n return text\n .split(\"\\n\")\n .map((line) => {\n if (line.startsWith(\"> \")) {\n return `> ${escapeSlackMrkdwnContent(line.slice(2))}`;\n }\n return escapeSlackMrkdwnContent(line);\n })\n .join(\"\\n\");\n}\n\nfunction replaceSlackFencedCodeBlocks(\n text: string,\n placeholders: string[],\n): string {\n return text.replace(\n /```([^\\n`]*)\\n?([\\s\\S]*?)```/g,\n (_match, _lang, code) => {\n const normalized = String(code).trimEnd();\n return createSlackPlaceholder(\n placeholders,\n normalized.length > 0 ? `\\`\\`\\`\\n${normalized}\\n\\`\\`\\`` : \"```\\n```\",\n );\n },\n );\n}\n\nfunction replaceSlackInlineCode(text: string, placeholders: string[]): string {\n return text.replace(/`([^`\\n]+)`/g, (_match, code) => {\n return createSlackPlaceholder(placeholders, `\\`${String(code)}\\``);\n });\n}\n\nfunction applySlackInlineFormatting(text: string): string {\n return text\n .replace(/~~([^\\s~](?:[\\s\\S]*?[^\\s~])?)~~/g, \"~$1~\")\n .replace(/(^|[^\\w*])\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*(?!\\w)/g, \"$1_$2_\")\n .replace(/\\*\\*\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*\\*\\*/g, \"_*$1*_\")\n .replace(/___([^\\s_](?:[\\s\\S]*?[^\\s_])?)___/g, \"_*$1*_\")\n .replace(/\\*\\*([^\\s*](?:[\\s\\S]*?[^\\s*])?)\\*\\*/g, \"*$1*\")\n .replace(/__([^\\s_](?:[\\s\\S]*?[^\\s_])?)__/g, \"*$1*\");\n}\n\nfunction formatSlackLinkLabel(text: string): string {\n return applySlackInlineFormatting(escapeSlackMrkdwnText(text));\n}\n\nfunction replaceSlackMarkdownLinks(\n text: string,\n placeholders: string[],\n): string {\n let result = \"\";\n let index = 0;\n\n while (index < text.length) {\n if (text[index] !== \"[\") {\n result += text[index];\n index++;\n continue;\n }\n\n const link = parseMarkdownLink(text, index);\n if (!link) {\n result += text[index];\n index++;\n continue;\n }\n\n result += createSlackPlaceholder(\n placeholders,\n `<${escapeSlackMrkdwnSegment(link.url)}|${formatSlackLinkLabel(link.label)}>`,\n );\n index = link.endIndex;\n }\n\n return result;\n}\n\nfunction normalizeSlackBlockFormatting(text: string): string {\n return text\n .split(\"\\n\")\n .map((line) => {\n const headingMatch = line.match(/^\\s{0,3}#{1,6}\\s+(.+)$/);\n if (headingMatch) {\n return `*${headingMatch[1]?.trim() ?? \"\"}*`;\n }\n\n const bulletMatch = line.match(/^(\\s*)[-+*]\\s+(.+)$/);\n if (bulletMatch) {\n return `${bulletMatch[1] ?? \"\"}- ${bulletMatch[2] ?? \"\"}`;\n }\n\n return line;\n })\n .join(\"\\n\");\n}\n\nfunction formatSlackText(\n text: string,\n options?: { enableLinks?: boolean },\n): string {\n const placeholders: string[] = [];\n let result = replaceSlackFencedCodeBlocks(text, placeholders);\n result = replaceSlackInlineCode(result, placeholders);\n\n if (options?.enableLinks !== false) {\n result = replaceSlackMarkdownLinks(result, placeholders);\n }\n\n result = escapeSlackMrkdwnText(result);\n result = applySlackInlineFormatting(result);\n result = normalizeSlackBlockFormatting(result);\n\n return restoreSlackPlaceholders(result, placeholders);\n}\n\nexport function markdownToSlackMrkdwn(text: string): string {\n return formatSlackText(text);\n}\n\ntype SignalMarkdownStyle =\n | \"BOLD\"\n | \"ITALIC\"\n | \"SPOILER\"\n | \"STRIKETHROUGH\"\n | \"MONOSPACE\";\n\ntype SignalMarkdownRange = {\n start: number;\n length: number;\n style: SignalMarkdownStyle;\n};\n\ntype SignalMarkdownState = {\n text: string;\n ranges: SignalMarkdownRange[];\n};\n\ntype SignalInlineMarker = {\n delimiter: string;\n styles: SignalMarkdownStyle[];\n requireWordBoundary?: boolean;\n};\n\nconst SIGNAL_INLINE_MARKERS: SignalInlineMarker[] = [\n { delimiter: \"***\", styles: [\"BOLD\", \"ITALIC\"] },\n { delimiter: \"___\", styles: [\"BOLD\", \"ITALIC\"] },\n { delimiter: \"**\", styles: [\"BOLD\"] },\n { delimiter: \"__\", styles: [\"BOLD\"] },\n { delimiter: \"~~\", styles: [\"STRIKETHROUGH\"] },\n { delimiter: \"||\", styles: [\"SPOILER\"] },\n { delimiter: \"*\", styles: [\"ITALIC\"], requireWordBoundary: true },\n { delimiter: \"_\", styles: [\"ITALIC\"], requireWordBoundary: true },\n];\n\nfunction isEscaped(text: string, index: number): boolean {\n let slashCount = 0;\n for (let i = index - 1; i >= 0 && text[i] === \"\\\\\"; i--) {\n slashCount++;\n }\n return slashCount % 2 === 1;\n}\n\nfunction isWordLike(char: string | undefined): boolean {\n return !!char && /[A-Za-z0-9_]/.test(char);\n}\n\nfunction addSignalStyle(\n state: SignalMarkdownState,\n start: number,\n style: SignalMarkdownStyle,\n): void {\n const length = state.text.length - start;\n if (length <= 0) {\n return;\n }\n state.ranges.push({ start, length, style });\n}\n\nfunction canOpenSignalMarker(\n text: string,\n index: number,\n marker: SignalInlineMarker,\n): boolean {\n const next = text[index + marker.delimiter.length];\n if (!next || /\\s/.test(next)) {\n return false;\n }\n if (!marker.requireWordBoundary) {\n return true;\n }\n const previous = text[index - 1];\n return !isWordLike(previous);\n}\n\nfunction isValidSignalMarkerContent(\n text: string,\n closeIndex: number,\n content: string,\n marker: SignalInlineMarker,\n): boolean {\n if (content.length === 0 || /^\\s|\\s$/.test(content)) {\n return false;\n }\n if (!marker.requireWordBoundary) {\n return true;\n }\n const next = text[closeIndex + marker.delimiter.length];\n return !isWordLike(next);\n}\n\nfunction findSignalClosingMarker(\n text: string,\n contentStart: number,\n marker: SignalInlineMarker,\n): number {\n let searchIndex = contentStart;\n while (searchIndex < text.length) {\n const closeIndex = text.indexOf(marker.delimiter, searchIndex);\n if (closeIndex < 0) {\n return -1;\n }\n if (isEscaped(text, closeIndex)) {\n searchIndex = closeIndex + marker.delimiter.length;\n continue;\n }\n const content = text.slice(contentStart, closeIndex);\n if (isValidSignalMarkerContent(text, closeIndex, content, marker)) {\n return closeIndex;\n }\n searchIndex = closeIndex + marker.delimiter.length;\n }\n return -1;\n}\n\nfunction parseSignalInline(text: string, state: SignalMarkdownState): void {\n let index = 0;\n while (index < text.length) {\n if (text[index] === \"\\\\\" && index + 1 < text.length) {\n state.text += text[index + 1] ?? \"\";\n index += 2;\n continue;\n }\n\n if (text[index] === \"`\") {\n const closeIndex = text.indexOf(\"`\", index + 1);\n if (\n closeIndex > index + 1 &&\n !text.slice(index + 1, closeIndex).includes(\"\\n\")\n ) {\n const start = state.text.length;\n state.text += text.slice(index + 1, closeIndex);\n addSignalStyle(state, start, \"MONOSPACE\");\n index = closeIndex + 1;\n continue;\n }\n }\n\n if (text[index] === \"[\") {\n const link = parseMarkdownLink(text, index);\n if (link) {\n parseSignalInline(link.label, state);\n state.text += ` (${link.url})`;\n index = link.endIndex;\n continue;\n }\n }\n\n const marker = SIGNAL_INLINE_MARKERS.find(\n (candidate) =>\n text.startsWith(candidate.delimiter, index) &&\n !isEscaped(text, index) &&\n canOpenSignalMarker(text, index, candidate),\n );\n if (marker) {\n const contentStart = index + marker.delimiter.length;\n const closeIndex = findSignalClosingMarker(text, contentStart, marker);\n if (closeIndex >= 0) {\n const start = state.text.length;\n parseSignalInline(text.slice(contentStart, closeIndex), state);\n for (const style of marker.styles) {\n addSignalStyle(state, start, style);\n }\n index = closeIndex + marker.delimiter.length;\n continue;\n }\n }\n\n state.text += text[index] ?? \"\";\n index++;\n }\n}\n\nfunction parseSignalMarkdownLine(\n line: string,\n state: SignalMarkdownState,\n): void {\n const lineStyles: SignalMarkdownStyle[] = [];\n let content = line;\n\n const headingMatch = content.match(/^\\s{0,3}#{1,6}\\s+(.+)$/);\n if (headingMatch) {\n content = headingMatch[1]?.trim() ?? \"\";\n lineStyles.push(\"BOLD\");\n } else {\n const quoteMatch = content.match(/^\\s{0,3}> ?(.*)$/);\n if (quoteMatch) {\n content = quoteMatch[1] ?? \"\";\n lineStyles.push(\"ITALIC\");\n } else {\n const bulletMatch = content.match(/^(\\s*)[+*]\\s+(.+)$/);\n if (bulletMatch) {\n content = `${bulletMatch[1] ?? \"\"}- ${bulletMatch[2] ?? \"\"}`;\n }\n }\n }\n\n const start = state.text.length;\n parseSignalInline(content, state);\n for (const style of lineStyles) {\n addSignalStyle(state, start, style);\n }\n}\n\nfunction flushSignalCodeBlock(\n state: SignalMarkdownState,\n lines: string[],\n): void {\n const code = lines.join(\"\\n\").trimEnd();\n if (code.length === 0) {\n return;\n }\n const start = state.text.length;\n state.text += code;\n addSignalStyle(state, start, \"MONOSPACE\");\n}\n\nfunction signalTextStyleToString(range: SignalMarkdownRange): string {\n return `${range.start}:${range.length}:${range.style}`;\n}\n\nexport function markdownToSignalTextStyles(\n text: string,\n): Pick<OutboundChannelMessage, \"text\" | \"textStyle\"> {\n const state: SignalMarkdownState = { text: \"\", ranges: [] };\n const lines = text.split(\"\\n\");\n let inCodeBlock = false;\n let codeBlockLines: string[] = [];\n\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index] ?? \"\";\n const isLastLine = index === lines.length - 1;\n\n if (inCodeBlock) {\n if (/^\\s{0,3}```\\s*$/.test(line)) {\n flushSignalCodeBlock(state, codeBlockLines);\n codeBlockLines = [];\n inCodeBlock = false;\n if (!isLastLine) {\n state.text += \"\\n\";\n }\n } else {\n codeBlockLines.push(line);\n }\n continue;\n }\n\n if (/^\\s{0,3}```[^`]*$/.test(line)) {\n inCodeBlock = true;\n codeBlockLines = [];\n continue;\n }\n\n parseSignalMarkdownLine(line, state);\n if (!isLastLine) {\n state.text += \"\\n\";\n }\n }\n\n if (inCodeBlock) {\n flushSignalCodeBlock(state, codeBlockLines);\n }\n\n const seenStyles = new Set<string>();\n const textStyle = state.ranges\n .map(signalTextStyleToString)\n .filter((style) => {\n if (seenStyles.has(style)) {\n return false;\n }\n seenStyles.add(style);\n return true;\n });\n return {\n text: state.text,\n ...(textStyle.length > 0 ? { textStyle } : {}),\n };\n}\n\nconst CHANNEL_OUTBOUND_FORMATTERS: Partial<\n Record<string, OutboundChannelFormatter>\n> = {\n [SIGNAL_CHANNEL_ID](text) {\n return markdownToSignalTextStyles(text);\n },\n [TELEGRAM_CHANNEL_ID](text) {\n return {\n text: markdownToTelegramHtml(text),\n parseMode: \"HTML\",\n };\n },\n slack(text) {\n return {\n text: markdownToSlackMrkdwn(text),\n };\n },\n};\n\nexport function formatOutboundChannelMessage(\n channel: string,\n text: string,\n): Pick<OutboundChannelMessage, \"text\" | \"parseMode\" | \"textStyle\"> {\n const normalizedText = decodeBasicXmlEntities(text);\n const formatter = CHANNEL_OUTBOUND_FORMATTERS[channel];\n if (!formatter) {\n return { text: normalizedText };\n }\n return formatter(normalizedText);\n}\n",
|
|
13
13
|
"import type { ExternalToolCallResult } from \"@/types/app-server-protocol\";\nimport { formatOutboundChannelMessage } from \"./message-channel-formatting\";\nimport {\n MessageChannelDuplicateActionError,\n type MessageChannelIdempotencyScope,\n} from \"./message-channel-idempotency\";\nimport type {\n MessageChannelInput,\n NormalizedMessageChannelInput,\n} from \"./message-channel-types\";\nimport type {\n ChannelMessageActionAdapter,\n ChannelMessageActionRequest,\n ChannelMessageActionRoute,\n ChannelMessageActionTransport,\n ChannelResolvedMessageTarget,\n} from \"./plugin-types\";\nimport type { ChannelTurnSource, SupportedChannelId } from \"./types\";\n\nexport interface MessageChannelExecutionScope {\n agentId: string;\n conversationId: string;\n}\n\nexport interface ResolvedMessageChannelContext {\n route: ChannelMessageActionRoute;\n transport: ChannelMessageActionTransport;\n messageActions: ChannelMessageActionAdapter;\n}\n\nexport interface ResolvedProactiveMessageChannelContext {\n accountId: string;\n target: ChannelResolvedMessageTarget;\n transport: ChannelMessageActionTransport;\n messageActions: ChannelMessageActionAdapter;\n}\n\nexport interface MessageChannelExecutionResolver {\n isSupportedChannel(channel: string): boolean;\n resolveRoutedContext(params: {\n channel: SupportedChannelId;\n chatId: string;\n accountId?: string;\n scope: MessageChannelExecutionScope;\n }):\n | Promise<ResolvedMessageChannelContext | string | null>\n | ResolvedMessageChannelContext\n | string\n | null;\n resolveProactiveContext?(params: {\n channel: SupportedChannelId;\n target: string;\n accountId?: string;\n scope: MessageChannelExecutionScope;\n }):\n | Promise<ResolvedProactiveMessageChannelContext | string>\n | ResolvedProactiveMessageChannelContext\n | string;\n}\n\nexport interface ExecuteMessageChannelOptions {\n scope: MessageChannelExecutionScope;\n resolver: MessageChannelExecutionResolver;\n channelTurnSources?: ChannelTurnSource[];\n idempotencyScope?: MessageChannelIdempotencyScope | null;\n}\n\nexport function createMessageChannelExternalToolResult(\n text: string,\n): ExternalToolCallResult {\n return {\n content: [{ type: \"text\", text }],\n is_error: text.startsWith(\"Error:\"),\n };\n}\n\nfunction firstNonEmptyString(...values: unknown[]): string | undefined {\n for (const value of values) {\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed.length > 0) return trimmed;\n }\n }\n return undefined;\n}\n\nfunction firstDefinedBoolean(...values: unknown[]): boolean | undefined {\n for (const value of values) {\n if (typeof value === \"boolean\") return value;\n }\n return undefined;\n}\n\nfunction normalizeChatTarget(\n channel: SupportedChannelId,\n value: string,\n): string {\n const trimmed = value.trim();\n if (channel === \"signal\") return trimmed;\n const parts = trimmed\n .split(\":\")\n .map((part) => part.trim())\n .filter(Boolean);\n if (parts.length === 2 && /^[a-z_-]+$/i.test(parts[0] ?? \"\")) {\n return parts[1] ?? trimmed;\n }\n if (\n parts.length === 3 &&\n /^[a-z_-]+$/i.test(parts[0] ?? \"\") &&\n /^[a-z_-]+$/i.test(parts[1] ?? \"\")\n ) {\n return parts[2] ?? trimmed;\n }\n return trimmed;\n}\n\nfunction normalizeMessageChannelInput(\n input: MessageChannelInput | Record<string, unknown>,\n resolver: MessageChannelExecutionResolver,\n): NormalizedMessageChannelInput | string {\n const channel = firstNonEmptyString(input.channel)?.toLowerCase();\n if (!channel) return \"Error: MessageChannel requires channel.\";\n if (!resolver.isSupportedChannel(channel)) {\n return `Error: Unsupported channel \"${channel}\".`;\n }\n\n const rawAction = firstNonEmptyString(input.action);\n if (!rawAction) return \"Error: MessageChannel requires action.\";\n const action = rawAction.trim().toLowerCase();\n if (!action) {\n return `Error: Unsupported MessageChannel action \"${input.action}\".`;\n }\n\n const rawChatId = firstNonEmptyString(input.chat_id);\n const rawTarget = firstNonEmptyString(input.target);\n if ((!rawChatId && !rawTarget) || (rawChatId && rawTarget)) {\n return \"Error: MessageChannel requires exactly one of chat_id or target.\";\n }\n\n return {\n action,\n channel,\n ...(rawChatId ? { chatId: normalizeChatTarget(channel, rawChatId) } : {}),\n ...(rawTarget ? { target: rawTarget } : {}),\n accountId: firstNonEmptyString(input.accountId),\n message: firstNonEmptyString(input.message),\n replyToMessageId: firstNonEmptyString(input.replyTo),\n threadId: firstNonEmptyString(input.threadId) ?? null,\n messageId: firstNonEmptyString(input.messageId),\n attachmentId: firstNonEmptyString(input.attachmentId),\n emoji: firstNonEmptyString(input.emoji),\n remove: firstDefinedBoolean(input.remove),\n mediaPath: firstNonEmptyString(input.media),\n filename: firstNonEmptyString(input.filename),\n title: firstNonEmptyString(input.title),\n };\n}\n\nfunction buildMessageChannelRequest(\n input: NormalizedMessageChannelInput,\n chatId: string,\n threadId?: string | null,\n): ChannelMessageActionRequest {\n return {\n action: input.action,\n channel: input.channel,\n chatId,\n message: input.message,\n replyToMessageId: input.replyToMessageId,\n threadId: threadId ?? input.threadId ?? null,\n messageId: input.messageId,\n attachmentId: input.attachmentId,\n emoji: input.emoji,\n remove: input.remove,\n mediaPath: input.mediaPath,\n filename: input.filename,\n title: input.title,\n };\n}\n\nfunction inferAccountIdFromChannelTurnSources(params: {\n input: NormalizedMessageChannelInput;\n scope: MessageChannelExecutionScope;\n channelTurnSources?: ChannelTurnSource[];\n}): string | undefined {\n const chatId = params.input.chatId;\n if (!chatId) return undefined;\n\n const accountIds = new Set<string>();\n for (const source of params.channelTurnSources ?? []) {\n if (\n source.channel !== params.input.channel ||\n source.chatId !== chatId ||\n source.agentId !== params.scope.agentId ||\n source.conversationId !== params.scope.conversationId ||\n (params.input.threadId !== null &&\n source.threadId !== params.input.threadId)\n ) {\n continue;\n }\n if (source.accountId?.trim()) accountIds.add(source.accountId.trim());\n }\n return accountIds.size === 1 ? [...accountIds][0] : undefined;\n}\n\nfunction inferThreadIdFromChannelTurnSources(params: {\n input: NormalizedMessageChannelInput;\n scope: MessageChannelExecutionScope;\n accountId?: string;\n channelTurnSources?: ChannelTurnSource[];\n}): string | null | undefined {\n if (!params.input.chatId || params.input.threadId !== null) return undefined;\n\n const threadIds = new Set<string | null>();\n for (const source of params.channelTurnSources ?? []) {\n if (\n source.channel !== params.input.channel ||\n source.chatId !== params.input.chatId ||\n source.agentId !== params.scope.agentId ||\n source.conversationId !== params.scope.conversationId ||\n (params.accountId && source.accountId !== params.accountId)\n ) {\n continue;\n }\n const fallbackThreadId =\n params.input.channel === \"slack\" && source.chatType !== \"direct\"\n ? source.messageId\n : null;\n threadIds.add(source.threadId ?? fallbackThreadId ?? null);\n }\n return threadIds.size === 1 ? [...threadIds][0] : undefined;\n}\n\nfunction noRouteError(params: {\n input: NormalizedMessageChannelInput;\n accountId?: string;\n}): string {\n return params.accountId\n ? `Error: No route for chat_id \"${params.input.chatId}\" on \"${params.input.channel}\" account \"${params.accountId}\" for this agent/conversation.`\n : `Error: No route for chat_id \"${params.input.chatId}\" on \"${params.input.channel}\" for this agent/conversation. If multiple channel accounts can receive this chat, pass accountId (from the channel notification's account_id) to disambiguate.`;\n}\n\nfunction validateResolvedRoute(\n context: ResolvedMessageChannelContext,\n scope: MessageChannelExecutionScope,\n chatId: string,\n accountId?: string,\n): string | null {\n const route = context.route;\n if (\n route.chatId !== chatId ||\n route.agentId !== scope.agentId ||\n route.conversationId !== scope.conversationId ||\n (accountId !== undefined && route.accountId !== accountId)\n ) {\n return \"Error: Resolved MessageChannel route is outside the current execution scope.\";\n }\n return null;\n}\n\nfunction buildProactiveRoute(params: {\n context: ResolvedProactiveMessageChannelContext;\n scope: MessageChannelExecutionScope;\n}): ChannelMessageActionRoute {\n return {\n accountId: params.context.accountId,\n chatId: params.context.target.chatId,\n chatType: params.context.target.chatType,\n threadId: params.context.target.threadId ?? null,\n agentId: params.scope.agentId,\n conversationId: params.scope.conversationId,\n };\n}\n\nasync function dispatchMessageChannelAction(params: {\n request: ChannelMessageActionRequest;\n context: ResolvedMessageChannelContext;\n}): Promise<string> {\n const discovery = params.context.messageActions.describeMessageTool({\n accountId: params.context.route.accountId ?? null,\n });\n const supportedActions = new Set<string>([\"send\"]);\n for (const action of discovery.actions ?? []) supportedActions.add(action);\n if (!supportedActions.has(params.request.action)) {\n return `Error: Action \"${params.request.action}\" is not supported on ${params.request.channel}.`;\n }\n\n return await params.context.messageActions.handleAction({\n request: params.request,\n route: params.context.route,\n adapter: params.context.transport,\n formatText: (text) =>\n formatOutboundChannelMessage(params.request.channel, text),\n });\n}\n\nfunction trimmedOrNull(value: string | null | undefined): string | null {\n const trimmed = value?.trim();\n return trimmed ? trimmed : null;\n}\n\nfunction effectiveTextThreadId(\n request: ChannelMessageActionRequest,\n route: ChannelMessageActionRoute,\n): string | null {\n const requestThreadId = trimmedOrNull(request.threadId);\n const routeThreadId = trimmedOrNull(route.threadId);\n\n if (request.channel === \"telegram\") {\n if (requestThreadId) return requestThreadId;\n if (route.chatType === \"direct\") return null;\n return route.chatId.trim().startsWith(\"-\") ? routeThreadId : null;\n }\n if (request.channel === \"discord\") {\n return route.chatType === \"direct\"\n ? route.chatId\n : (requestThreadId ?? routeThreadId);\n }\n if (request.channel === \"slack\") {\n const isDirect =\n route.chatType === \"direct\" || request.chatId.startsWith(\"D\");\n if (isDirect) return requestThreadId ?? routeThreadId;\n return request.replyToMessageId ? null : (requestThreadId ?? routeThreadId);\n }\n return null;\n}\n\nfunction effectiveTextReplyId(\n request: ChannelMessageActionRequest,\n route: ChannelMessageActionRoute,\n): string | null {\n const isSlackDirect =\n request.channel === \"slack\" &&\n (route.chatType === \"direct\" || request.chatId.startsWith(\"D\"));\n return isSlackDirect ? null : trimmedOrNull(request.replyToMessageId);\n}\n\n/**\n * Fingerprint only immutable text deliveries. Reactions are reversible,\n * downloads are repeatable, and a local media path can change contents during\n * a turn, so those actions intentionally bypass suppression.\n */\nfunction messageIdempotencyKey(\n request: ChannelMessageActionRequest,\n route: ChannelMessageActionRoute,\n): string | null {\n if (\n (request.action !== \"send\" && request.action !== \"send-rich\") ||\n request.mediaPath\n ) {\n return null;\n }\n return JSON.stringify({\n action: request.action,\n channel: request.channel,\n chatId: route.chatId,\n accountId: route.accountId ?? null,\n chatType: route.chatType ?? null,\n threadId: effectiveTextThreadId(request, route),\n message: request.message ?? null,\n replyToMessageId: effectiveTextReplyId(request, route),\n });\n}\n\n/**\n * Execute the canonical MessageChannel contract against host-owned routing and\n * transport adapters. This owns normalization, scope checks, thread/account\n * inference, action discovery, and outbound formatting without requiring the\n * local channel registry or local credentials.\n */\nexport async function executeMessageChannel(\n input: MessageChannelInput | Record<string, unknown>,\n options: ExecuteMessageChannelOptions,\n): Promise<string> {\n const normalized = normalizeMessageChannelInput(input, options.resolver);\n if (typeof normalized === \"string\") return normalized;\n if (\n normalized.channel === \"slack\" &&\n normalized.action === \"download-file\" &&\n normalized.target\n ) {\n return \"Error: Slack download-file requires chat_id from a routed channel context; target is not supported.\";\n }\n\n try {\n if (normalized.chatId) {\n const accountId =\n normalized.accountId ??\n inferAccountIdFromChannelTurnSources({\n input: normalized,\n scope: options.scope,\n channelTurnSources: options.channelTurnSources,\n });\n const context = await options.resolver.resolveRoutedContext({\n channel: normalized.channel,\n chatId: normalized.chatId,\n accountId,\n scope: options.scope,\n });\n if (typeof context === \"string\") return context;\n if (!context) return noRouteError({ input: normalized, accountId });\n const routeError = validateResolvedRoute(\n context,\n options.scope,\n normalized.chatId,\n accountId,\n );\n if (routeError) return routeError;\n\n const inferredThreadId = inferThreadIdFromChannelTurnSources({\n input: normalized,\n scope: options.scope,\n accountId,\n channelTurnSources: options.channelTurnSources,\n });\n const requestThreadId =\n normalized.action === \"download-file\"\n ? normalized.threadId\n : (inferredThreadId ??\n (normalized.channel === \"telegram\" &&\n context.route.chatType === \"direct\"\n ? normalized.threadId\n : (context.route.threadId ?? normalized.threadId)));\n const request = buildMessageChannelRequest(\n normalized,\n normalized.chatId,\n requestThreadId,\n );\n return await dispatchWithIdempotency(\n request,\n context,\n options.idempotencyScope,\n );\n }\n\n if (normalized.channel !== \"slack\") {\n return `Error: Explicit MessageChannel targets are not supported on ${normalized.channel}.`;\n }\n if (!options.resolver.resolveProactiveContext) {\n return \"Error: Explicit MessageChannel targets are not supported on slack.\";\n }\n const proactive = await options.resolver.resolveProactiveContext({\n channel: normalized.channel,\n target: normalized.target ?? \"\",\n accountId: normalized.accountId,\n scope: options.scope,\n });\n if (typeof proactive === \"string\") return proactive;\n const context: ResolvedMessageChannelContext = {\n route: buildProactiveRoute({ context: proactive, scope: options.scope }),\n transport: proactive.transport,\n messageActions: proactive.messageActions,\n };\n const request = buildMessageChannelRequest(\n normalized,\n proactive.target.chatId,\n proactive.target.threadId,\n );\n return await dispatchWithIdempotency(\n request,\n context,\n options.idempotencyScope,\n );\n } catch (error) {\n if (error instanceof MessageChannelDuplicateActionError) throw error;\n const message = error instanceof Error ? error.message : \"unknown error\";\n return `Error: Sending message to ${normalized.channel} failed: ${message}`;\n }\n}\n\n/** Execute MessageChannel and return the canonical external-tool result. */\nexport async function executeMessageChannelExternalTool(\n input: MessageChannelInput | Record<string, unknown>,\n options: ExecuteMessageChannelOptions,\n): Promise<ExternalToolCallResult> {\n return createMessageChannelExternalToolResult(\n await executeMessageChannel(input, options),\n );\n}\n\nfunction dispatchWithIdempotency(\n request: ChannelMessageActionRequest,\n context: ResolvedMessageChannelContext,\n scope: MessageChannelIdempotencyScope | null | undefined,\n): Promise<string> {\n const dispatch = () => dispatchMessageChannelAction({ request, context });\n const key = messageIdempotencyKey(request, context.route);\n return scope ? scope.execute(key, dispatch) : dispatch();\n}\n",
|
|
14
|
-
"import MessageChannelDescription from \"@/tools/descriptions/MessageChannel.md\";\nimport MessageChannelSchema from \"@/tools/schemas/MessageChannel.json\";\nimport type { ExternalToolDefinitionPayload } from \"@/types/app-server-protocol\";\nimport type {\n ChannelMessageActionAdapter,\n ChannelMessageToolDiscovery,\n ChannelMessageToolSchemaContribution,\n} from \"./plugin-types\";\nimport type { SupportedChannelId } from \"./types\";\n\nexport interface MessageChannelToolChannel {\n channelId: SupportedChannelId;\n displayName: string;\n accountId?: string | null;\n messageActions?: Pick<\n ChannelMessageActionAdapter,\n \"describeMessageTool\"\n > | null;\n}\n\nexport interface MessageChannelToolDiscoveryResult {\n activeChannels: SupportedChannelId[];\n displayNames: string[];\n accountIds: string[];\n actions: string[];\n schemaContributions: ChannelMessageToolSchemaContribution[];\n}\n\nexport interface BuildMessageChannelToolOptions {\n channels: readonly MessageChannelToolChannel[];\n /** Whether this tool is attached to one routed external-channel scope. */\n scoped: boolean;\n /** Advertise target-based proactive sends when the host can resolve them. */\n allowProactiveTargets?: boolean;\n}\n\nexport interface ResolvedMessageChannelToolDefinition {\n description: string;\n schema: Record<string, unknown>;\n}\n\nconst TELEGRAM_RICH_RULE_RE =\n /\\n- Telegram supports `action=\"send-rich\"`[^\\n]*\\n?/;\nconst TELEGRAM_RICH_SECTION_RE = /\\n\\nTelegram rich messages:\\n[\\s\\S]*$/;\nconst MESSAGE_CHANNEL_PARAMETER_LINE = (name: string): RegExp =>\n new RegExp(`\\\\n- \\`${name}\\`:[^\\\\n]*`, \"g\");\n\nfunction asSchemaContributionArray(\n schema:\n | ChannelMessageToolSchemaContribution\n | ChannelMessageToolSchemaContribution[]\n | null\n | undefined,\n): ChannelMessageToolSchemaContribution[] {\n if (!schema) return [];\n return Array.isArray(schema) ? schema : [schema];\n}\n\nfunction collectDiscoveryActions(\n discovery: ChannelMessageToolDiscovery | null | undefined,\n): string[] {\n return discovery?.actions ? Array.from(discovery.actions) : [];\n}\n\nexport function resolveMessageChannelToolChannels(\n channels: readonly MessageChannelToolChannel[],\n): MessageChannelToolDiscoveryResult {\n const uniqueChannels = new Map<string, MessageChannelToolChannel>();\n const accountIds = new Set<string>();\n const actions = new Set<string>([\"send\"]);\n const schemaContributions: ChannelMessageToolSchemaContribution[] = [];\n\n for (const channel of channels) {\n if (!uniqueChannels.has(channel.channelId)) {\n uniqueChannels.set(channel.channelId, channel);\n }\n const accountId = channel.accountId?.trim();\n if (accountId) accountIds.add(accountId);\n const discovery = channel.messageActions?.describeMessageTool({\n accountId: accountId ?? null,\n });\n for (const action of collectDiscoveryActions(discovery))\n actions.add(action);\n schemaContributions.push(...asSchemaContributionArray(discovery?.schema));\n }\n\n return {\n activeChannels: [...uniqueChannels.keys()],\n displayNames: [...uniqueChannels.values()].map(\n (channel) => channel.displayName,\n ),\n accountIds: [...accountIds],\n actions: [...actions],\n schemaContributions,\n };\n}\n\nfunction mergeSchemaContributions(\n schema: Record<string, unknown>,\n contributions: ChannelMessageToolSchemaContribution[],\n): Record<string, unknown> {\n const properties = schema.properties as Record<string, unknown> | undefined;\n if (!properties) return schema;\n for (const contribution of contributions) {\n Object.assign(properties, structuredClone(contribution.properties));\n }\n return schema;\n}\n\nexport function buildMessageChannelSchemaFromDiscovery(\n baseSchema: Record<string, unknown>,\n discovery: MessageChannelToolDiscoveryResult,\n allowProactiveTargets = true,\n): Record<string, unknown> {\n const schema = structuredClone(baseSchema);\n const properties = schema.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties) return schema;\n\n if (properties.channel && discovery.activeChannels.length > 0) {\n properties.channel.enum = [...discovery.activeChannels];\n properties.channel.description = `Channel to send the message to. Available channels: ${discovery.activeChannels.join(\", \")}.`;\n }\n if (properties.accountId && discovery.accountIds.length > 0) {\n properties.accountId.enum = [...discovery.accountIds];\n }\n if (properties.action) {\n properties.action.enum = [...discovery.actions];\n properties.action.description = `Action to perform. Available actions: ${discovery.actions.join(\", \")}.`;\n }\n if (!discovery.actions.includes(\"react\")) {\n delete properties.emoji;\n delete properties.remove;\n }\n if (\n !discovery.actions.includes(\"react\") &&\n !discovery.actions.includes(\"download-file\")\n ) {\n delete properties.messageId;\n }\n if (!discovery.actions.includes(\"upload-file\")) {\n delete properties.media;\n delete properties.filename;\n delete properties.title;\n }\n if (!allowProactiveTargets) {\n delete properties.target;\n if (properties.accountId) {\n properties.accountId.description =\n \"Optional channel account identifier from the channel notification, used to disambiguate routed replies.\";\n }\n }\n return mergeSchemaContributions(schema, discovery.schemaContributions);\n}\n\nfunction pruneProactiveTargetGuidance(description: string): string {\n return description\n .replace(\n /There are two supported send modes:\\n- Reply mode: ([^\\n]*)\\n- Proactive mode:[^\\n]*/,\n \"Reply mode: $1\",\n )\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"target\"), \"\")\n .replace(\n /\\n- Pass exactly one of `chat_id` or `target`\\./,\n \"\\n- Pass `chat_id` from the channel notification.\",\n );\n}\n\nfunction pruneInactiveChannelGuidance(\n baseDescription: string,\n activeChannels: SupportedChannelId[],\n actions: string[],\n): string {\n let description = baseDescription.trim();\n if (!actions.includes(\"react\")) {\n description = description\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"emoji\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"remove\"), \"\")\n .replace(/\\n- `react` should be its own call\\./g, \"\");\n }\n if (!actions.includes(\"react\") && !actions.includes(\"download-file\")) {\n description = description.replace(\n MESSAGE_CHANNEL_PARAMETER_LINE(\"messageId\"),\n \"\",\n );\n }\n if (!actions.includes(\"upload-file\")) {\n description = description\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"media\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"filename\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"title\"), \"\")\n .replace(/\\n- `upload-file` can include[^\\n]*/g, \"\");\n }\n if (!activeChannels.includes(\"telegram\")) {\n description = description\n .replace(TELEGRAM_RICH_RULE_RE, \"\\n\")\n .replace(TELEGRAM_RICH_SECTION_RE, \"\");\n }\n return description.trim();\n}\n\nexport function buildMessageChannelDescriptionFromDiscovery(\n baseDescription: string,\n discovery: MessageChannelToolDiscoveryResult,\n scoped: boolean,\n allowProactiveTargets = true,\n): string {\n const description = (\n allowProactiveTargets\n ? pruneInactiveChannelGuidance(\n baseDescription,\n discovery.activeChannels,\n discovery.actions,\n )\n : pruneProactiveTargetGuidance(\n pruneInactiveChannelGuidance(\n baseDescription,\n discovery.activeChannels,\n discovery.actions,\n ),\n )\n ).trim();\n if (discovery.activeChannels.length === 0) {\n return `${description}\\n\\nNo external channel adapters are currently running.`;\n }\n\n const channelList = discovery.displayNames.join(\", \");\n const actionList = discovery.actions.join(\", \");\n const hasAction = (action: string): boolean =>\n discovery.actions.includes(action);\n const scopedReplyContract = scoped\n ? '\\n\\nThis tool is currently scoped to a routed external channel turn. Plain assistant text is not delivered to that external user. If a user-visible reply is appropriate, your final action for the turn must be one MessageChannel call with action=\"send\", channel from the notification, chat_id from the notification, and message containing the reply. If no user-visible response is appropriate, do not call MessageChannel and do not send an empty acknowledgement. For lightweight acknowledgement, prefer action=\"react\" when supported. If the useful response belongs later, schedule the follow-up instead of sending a placeholder.'\n : \"\";\n const slackWorkAcknowledgement = discovery.activeChannels.includes(\"slack\")\n ? '\\n\\nFor Slack requests that require nontrivial work or several tool calls, send one short MessageChannel call with action=\"send\" before starting other tools. This gives the Slack user verbal acknowledgement and a View in web link. Do not do this for no-ops, reaction-only responses, or simple no-tool answers.'\n : \"\";\n const slackAttachmentDownload =\n discovery.activeChannels.includes(\"slack\") && hasAction(\"download-file\")\n ? '\\n\\nSlack attachments that exceed the automatic download limit include an exact recovery instruction. Use action=\"download-file\" with channel, chat_id, attachmentId, and messageId from that instruction. The action saves the file in the normal Slack inbound attachment directory and returns its local_path. Downloads that outlast the synchronous window return a task_id instead; wait for the local_path with TaskOutput (block: true, timeout: 600000) or cancel with TaskStop.'\n : \"\";\n const slackThreadGuidance =\n scoped && discovery.activeChannels.includes(\"slack\")\n ? \"\\n\\nReplies to routed Slack threads stay in the current thread automatically.\"\n : \"\";\n const telegramTopicGuidance =\n scoped && discovery.activeChannels.includes(\"telegram\")\n ? \"\\n\\nReplies to routed Telegram topics stay in the current topic automatically.\"\n : \"\";\n const slackCapabilities = discovery.activeChannels.includes(\"slack\")\n ? [\n hasAction(\"react\") ? 'action=\"react\" with emoji + messageId' : \"\",\n hasAction(\"upload-file\") ? 'action=\"upload-file\" with media' : \"\",\n hasAction(\"download-file\")\n ? 'action=\"download-file\" with attachmentId + messageId'\n : \"\",\n ].filter(Boolean)\n : [];\n const slackCapabilityGuidance =\n slackCapabilities.length > 0\n ? `\\n\\nOn Slack, this tool also supports ${slackCapabilities.join(\", \")}.`\n : \"\";\n const telegramCapabilities = discovery.activeChannels.includes(\"telegram\")\n ? '\\n\\nOn Telegram, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media.'\n : \"\";\n const discordCapabilities = discovery.activeChannels.includes(\"discord\")\n ? '\\n\\nOn Discord, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Discord reactions accept native Unicode emoji and custom emoji syntax like <:name:id>.'\n : \"\";\n const whatsappCapabilities = discovery.activeChannels.includes(\"whatsapp\")\n ? '\\n\\nOn WhatsApp, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Voice memo/audio uploads must be Ogg/Opus (.ogg, .oga, or .opus), not MP3/M4A/WAV. Replies are sent as the linked WhatsApp number.'\n : \"\";\n const signalCapabilities = discovery.activeChannels.includes(\"signal\")\n ? '\\n\\nOn Signal, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Replies are sent as the linked Signal account through signal-cli-rest-api.'\n : \"\";\n\n return `${description}${scopedReplyContract}${slackThreadGuidance}${telegramTopicGuidance}${slackCapabilityGuidance}${slackWorkAcknowledgement}${slackAttachmentDownload}${telegramCapabilities}${discordCapabilities}${whatsappCapabilities}${signalCapabilities}\\n\\nCurrently active channels: ${channelList}. Available actions across the active channels: ${actionList}. The JSON schema reflects the currently active channel plugins.`;\n}\n\nexport function buildMessageChannelToolFromDiscovery(params: {\n baseDescription: string;\n baseSchema: Record<string, unknown>;\n discovery: MessageChannelToolDiscoveryResult;\n scoped: boolean;\n allowProactiveTargets?: boolean;\n}): ResolvedMessageChannelToolDefinition {\n return {\n description: buildMessageChannelDescriptionFromDiscovery(\n params.baseDescription,\n params.discovery,\n params.scoped,\n params.allowProactiveTargets,\n ),\n schema: buildMessageChannelSchemaFromDiscovery(\n params.baseSchema,\n params.discovery,\n params.allowProactiveTargets,\n ),\n };\n}\n\n/** Build the exact model-facing MessageChannel tool for an external gateway. */\nexport function buildMessageChannelExternalToolDefinition(\n options: BuildMessageChannelToolOptions,\n): ExternalToolDefinitionPayload {\n const resolved = buildMessageChannelToolFromDiscovery({\n baseDescription: MessageChannelDescription.trim(),\n baseSchema: MessageChannelSchema,\n discovery: resolveMessageChannelToolChannels(options.channels),\n scoped: options.scoped,\n allowProactiveTargets: options.allowProactiveTargets ?? false,\n });\n return {\n name: \"MessageChannel\",\n label: \"Message Channel\",\n description: resolved.description,\n parameters: resolved.schema,\n };\n}\n"
|
|
14
|
+
"import MessageChannelDescription from \"@/tools/descriptions/MessageChannel.md\";\nimport MessageChannelSchema from \"@/tools/schemas/MessageChannel.json\";\nimport type { ExternalToolDefinitionPayload } from \"@/types/app-server-protocol\";\nimport type {\n ChannelMessageActionAdapter,\n ChannelMessageToolDiscovery,\n ChannelMessageToolSchemaContribution,\n} from \"./plugin-types\";\nimport type { SupportedChannelId } from \"./types\";\n\nexport interface MessageChannelToolChannel {\n channelId: SupportedChannelId;\n displayName: string;\n accountId?: string | null;\n messageActions?: Pick<\n ChannelMessageActionAdapter,\n \"describeMessageTool\"\n > | null;\n}\n\nexport interface MessageChannelToolDiscoveryResult {\n activeChannels: SupportedChannelId[];\n displayNames: string[];\n accountIds: string[];\n actions: string[];\n schemaContributions: ChannelMessageToolSchemaContribution[];\n}\n\nexport interface BuildMessageChannelToolOptions {\n channels: readonly MessageChannelToolChannel[];\n /** Whether this tool is attached to one routed external-channel scope. */\n scoped: boolean;\n /** Advertise target-based proactive sends when the host can resolve them. */\n allowProactiveTargets?: boolean;\n}\n\nexport interface ResolvedMessageChannelToolDefinition {\n description: string;\n schema: Record<string, unknown>;\n}\n\nconst TELEGRAM_RICH_RULE_RE =\n /\\n- Telegram supports `action=\"send-rich\"`[^\\n]*\\n?/;\nconst TELEGRAM_RICH_SECTION_RE = /\\n\\nTelegram rich messages:\\n[\\s\\S]*$/;\nconst MESSAGE_CHANNEL_PARAMETER_LINE = (name: string): RegExp =>\n new RegExp(`\\\\n- \\`${name}\\`:[^\\\\n]*`, \"g\");\n\nfunction asSchemaContributionArray(\n schema:\n | ChannelMessageToolSchemaContribution\n | ChannelMessageToolSchemaContribution[]\n | null\n | undefined,\n): ChannelMessageToolSchemaContribution[] {\n if (!schema) return [];\n return Array.isArray(schema) ? schema : [schema];\n}\n\nfunction collectDiscoveryActions(\n discovery: ChannelMessageToolDiscovery | null | undefined,\n): string[] {\n return discovery?.actions ? Array.from(discovery.actions) : [];\n}\n\nexport function resolveMessageChannelToolChannels(\n channels: readonly MessageChannelToolChannel[],\n): MessageChannelToolDiscoveryResult {\n const uniqueChannels = new Map<string, MessageChannelToolChannel>();\n const accountIds = new Set<string>();\n const actions = new Set<string>([\"send\"]);\n const schemaContributions: ChannelMessageToolSchemaContribution[] = [];\n\n for (const channel of channels) {\n if (!uniqueChannels.has(channel.channelId)) {\n uniqueChannels.set(channel.channelId, channel);\n }\n const accountId = channel.accountId?.trim();\n if (accountId) accountIds.add(accountId);\n const discovery = channel.messageActions?.describeMessageTool({\n accountId: accountId ?? null,\n });\n for (const action of collectDiscoveryActions(discovery))\n actions.add(action);\n schemaContributions.push(...asSchemaContributionArray(discovery?.schema));\n }\n\n return {\n activeChannels: [...uniqueChannels.keys()],\n displayNames: [...uniqueChannels.values()].map(\n (channel) => channel.displayName,\n ),\n accountIds: [...accountIds],\n actions: [...actions],\n schemaContributions,\n };\n}\n\nfunction mergeSchemaContributions(\n schema: Record<string, unknown>,\n contributions: ChannelMessageToolSchemaContribution[],\n): Record<string, unknown> {\n const properties = schema.properties as Record<string, unknown> | undefined;\n if (!properties) return schema;\n for (const contribution of contributions) {\n Object.assign(properties, structuredClone(contribution.properties));\n }\n return schema;\n}\n\nexport function buildMessageChannelSchemaFromDiscovery(\n baseSchema: Record<string, unknown>,\n discovery: MessageChannelToolDiscoveryResult,\n allowProactiveTargets = true,\n): Record<string, unknown> {\n const schema = structuredClone(baseSchema);\n const properties = schema.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties) return schema;\n\n if (properties.channel && discovery.activeChannels.length > 0) {\n properties.channel.enum = [...discovery.activeChannels];\n properties.channel.description = `Channel to send the message to. Available channels: ${discovery.activeChannels.join(\", \")}.`;\n }\n if (properties.accountId && discovery.accountIds.length > 0) {\n properties.accountId.enum = [...discovery.accountIds];\n }\n if (properties.action) {\n properties.action.enum = [...discovery.actions];\n properties.action.description = `Action to perform. Available actions: ${discovery.actions.join(\", \")}.`;\n }\n if (!discovery.actions.includes(\"react\")) {\n delete properties.emoji;\n delete properties.remove;\n }\n if (\n !discovery.actions.includes(\"react\") &&\n !discovery.actions.includes(\"download-file\")\n ) {\n delete properties.messageId;\n }\n if (!discovery.actions.includes(\"upload-file\")) {\n delete properties.media;\n delete properties.filename;\n delete properties.title;\n }\n if (!allowProactiveTargets) {\n delete properties.target;\n if (properties.accountId) {\n properties.accountId.description =\n \"Optional channel account identifier from the channel notification, used to disambiguate routed replies.\";\n }\n }\n return mergeSchemaContributions(schema, discovery.schemaContributions);\n}\n\nfunction pruneProactiveTargetGuidance(description: string): string {\n return description\n .replace(\n /There are two supported send modes:\\n- Reply mode: ([^\\n]*)\\n- Proactive mode:[^\\n]*/,\n \"Reply mode: $1\",\n )\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"target\"), \"\")\n .replace(\n /\\n- Pass exactly one of `chat_id` or `target`\\./,\n \"\\n- Pass `chat_id` from the channel notification.\",\n );\n}\n\nfunction pruneInactiveChannelGuidance(\n baseDescription: string,\n activeChannels: SupportedChannelId[],\n actions: string[],\n): string {\n let description = baseDescription.trim();\n if (!actions.includes(\"react\")) {\n description = description\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"emoji\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"remove\"), \"\")\n .replace(/\\n- `react` should be its own call\\./g, \"\");\n }\n if (!actions.includes(\"react\") && !actions.includes(\"download-file\")) {\n description = description.replace(\n MESSAGE_CHANNEL_PARAMETER_LINE(\"messageId\"),\n \"\",\n );\n }\n if (!actions.includes(\"upload-file\")) {\n description = description\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"media\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"filename\"), \"\")\n .replace(MESSAGE_CHANNEL_PARAMETER_LINE(\"title\"), \"\")\n .replace(/\\n- `upload-file` can include[^\\n]*/g, \"\");\n }\n if (!activeChannels.includes(\"telegram\")) {\n description = description\n .replace(TELEGRAM_RICH_RULE_RE, \"\\n\")\n .replace(TELEGRAM_RICH_SECTION_RE, \"\");\n }\n return description.trim();\n}\n\nexport function buildMessageChannelDescriptionFromDiscovery(\n baseDescription: string,\n discovery: MessageChannelToolDiscoveryResult,\n scoped: boolean,\n allowProactiveTargets = true,\n): string {\n const description = (\n allowProactiveTargets\n ? pruneInactiveChannelGuidance(\n baseDescription,\n discovery.activeChannels,\n discovery.actions,\n )\n : pruneProactiveTargetGuidance(\n pruneInactiveChannelGuidance(\n baseDescription,\n discovery.activeChannels,\n discovery.actions,\n ),\n )\n ).trim();\n if (discovery.activeChannels.length === 0) {\n return `${description}\\n\\nNo external channel adapters are currently running.`;\n }\n\n const channelList = discovery.displayNames.join(\", \");\n const actionList = discovery.actions.join(\", \");\n const hasAction = (action: string): boolean =>\n discovery.actions.includes(action);\n const scopedReplyContract = scoped\n ? '\\n\\nThis tool is currently scoped to a routed external channel turn. Plain assistant text is not delivered to that external user. If a user-visible reply is appropriate, your final action for the turn must be one MessageChannel call with action=\"send\", channel from the notification, chat_id from the notification, and message containing the reply. After that final send succeeds, do not repeat or paraphrase the sent message in assistant text; finish with only `Sent.` as the internal confirmation. This does not apply to a short acknowledgement sent before continuing substantive work. If no user-visible response is appropriate, do not call MessageChannel and do not send an empty acknowledgement. For lightweight acknowledgement, prefer action=\"react\" when supported. If the useful response belongs later, schedule the follow-up instead of sending a placeholder.'\n : \"\";\n const slackWorkAcknowledgement = discovery.activeChannels.includes(\"slack\")\n ? '\\n\\nFor Slack requests that require nontrivial work or several tool calls, send one short MessageChannel call with action=\"send\" before starting other tools. This gives the Slack user verbal acknowledgement and a View in web link. Do not do this for no-ops, reaction-only responses, or simple no-tool answers.'\n : \"\";\n const slackAttachmentDownload =\n discovery.activeChannels.includes(\"slack\") && hasAction(\"download-file\")\n ? '\\n\\nSlack attachments that exceed the automatic download limit include an exact recovery instruction. Use action=\"download-file\" with channel, chat_id, attachmentId, and messageId from that instruction. The action saves the file in the normal Slack inbound attachment directory and returns its local_path. Downloads that outlast the synchronous window return a task_id instead; wait for the local_path with TaskOutput (block: true, timeout: 600000) or cancel with TaskStop.'\n : \"\";\n const slackThreadGuidance =\n scoped && discovery.activeChannels.includes(\"slack\")\n ? \"\\n\\nReplies to routed Slack threads stay in the current thread automatically.\"\n : \"\";\n const telegramTopicGuidance =\n scoped && discovery.activeChannels.includes(\"telegram\")\n ? \"\\n\\nReplies to routed Telegram topics stay in the current topic automatically.\"\n : \"\";\n const slackCapabilities = discovery.activeChannels.includes(\"slack\")\n ? [\n hasAction(\"react\") ? 'action=\"react\" with emoji + messageId' : \"\",\n hasAction(\"upload-file\") ? 'action=\"upload-file\" with media' : \"\",\n hasAction(\"download-file\")\n ? 'action=\"download-file\" with attachmentId + messageId'\n : \"\",\n ].filter(Boolean)\n : [];\n const slackCapabilityGuidance =\n slackCapabilities.length > 0\n ? `\\n\\nOn Slack, this tool also supports ${slackCapabilities.join(\", \")}.`\n : \"\";\n const telegramCapabilities = discovery.activeChannels.includes(\"telegram\")\n ? '\\n\\nOn Telegram, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media.'\n : \"\";\n const discordCapabilities = discovery.activeChannels.includes(\"discord\")\n ? '\\n\\nOn Discord, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Discord reactions accept native Unicode emoji and custom emoji syntax like <:name:id>.'\n : \"\";\n const whatsappCapabilities = discovery.activeChannels.includes(\"whatsapp\")\n ? '\\n\\nOn WhatsApp, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Voice memo/audio uploads must be Ogg/Opus (.ogg, .oga, or .opus), not MP3/M4A/WAV. Replies are sent as the linked WhatsApp number.'\n : \"\";\n const signalCapabilities = discovery.activeChannels.includes(\"signal\")\n ? '\\n\\nOn Signal, this tool also supports action=\"react\" with emoji + messageId and action=\"upload-file\" with media. Replies are sent as the linked Signal account through signal-cli-rest-api.'\n : \"\";\n\n return `${description}${scopedReplyContract}${slackThreadGuidance}${telegramTopicGuidance}${slackCapabilityGuidance}${slackWorkAcknowledgement}${slackAttachmentDownload}${telegramCapabilities}${discordCapabilities}${whatsappCapabilities}${signalCapabilities}\\n\\nCurrently active channels: ${channelList}. Available actions across the active channels: ${actionList}. The JSON schema reflects the currently active channel plugins.`;\n}\n\nexport function buildMessageChannelToolFromDiscovery(params: {\n baseDescription: string;\n baseSchema: Record<string, unknown>;\n discovery: MessageChannelToolDiscoveryResult;\n scoped: boolean;\n allowProactiveTargets?: boolean;\n}): ResolvedMessageChannelToolDefinition {\n return {\n description: buildMessageChannelDescriptionFromDiscovery(\n params.baseDescription,\n params.discovery,\n params.scoped,\n params.allowProactiveTargets,\n ),\n schema: buildMessageChannelSchemaFromDiscovery(\n params.baseSchema,\n params.discovery,\n params.allowProactiveTargets,\n ),\n };\n}\n\n/** Build the exact model-facing MessageChannel tool for an external gateway. */\nexport function buildMessageChannelExternalToolDefinition(\n options: BuildMessageChannelToolOptions,\n): ExternalToolDefinitionPayload {\n const resolved = buildMessageChannelToolFromDiscovery({\n baseDescription: MessageChannelDescription.trim(),\n baseSchema: MessageChannelSchema,\n discovery: resolveMessageChannelToolChannels(options.channels),\n scoped: options.scoped,\n allowProactiveTargets: options.allowProactiveTargets ?? false,\n });\n return {\n name: \"MessageChannel\",\n label: \"Message Channel\",\n description: resolved.description,\n parameters: resolved.schema,\n };\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "FBABF69C753E1EA864756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/dist/mcp-client.js
CHANGED
|
@@ -16849,7 +16849,7 @@ class StreamableHTTPClientTransport {
|
|
|
16849
16849
|
// src/mcp-client.ts
|
|
16850
16850
|
var DEFAULT_CLIENT_INFO = {
|
|
16851
16851
|
name: "letta-code",
|
|
16852
|
-
version: "0.30.
|
|
16852
|
+
version: "0.30.21"
|
|
16853
16853
|
};
|
|
16854
16854
|
async function connectMcpServer(config2, options = {}) {
|
|
16855
16855
|
let client = new Client(options.clientInfo ?? DEFAULT_CLIENT_INFO);
|
|
@@ -16974,4 +16974,4 @@ export {
|
|
|
16974
16974
|
connectMcpServer
|
|
16975
16975
|
};
|
|
16976
16976
|
|
|
16977
|
-
//# debugId=
|
|
16977
|
+
//# debugId=C046A3CDA33949B564756E2164756E21
|