@nextclaw/ncp 0.5.29-beta.1 → 0.6.0-beta.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.
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -211,10 +211,11 @@ type NcpError = {
|
|
|
211
211
|
cause?: unknown;
|
|
212
212
|
};
|
|
213
213
|
//#endregion
|
|
214
|
-
//#region src/types/session.d.ts
|
|
214
|
+
//#region src/types/session.types.d.ts
|
|
215
215
|
type NcpSessionStatus = "idle" | "running";
|
|
216
216
|
type NcpSessionSummary = {
|
|
217
217
|
sessionId: string;
|
|
218
|
+
peerId?: string;
|
|
218
219
|
agentId?: string;
|
|
219
220
|
messageCount: number;
|
|
220
221
|
createdAt?: string;
|
|
@@ -227,6 +228,7 @@ type NcpSessionSummary = {
|
|
|
227
228
|
type ListSessionsOptions = {
|
|
228
229
|
limit?: number;
|
|
229
230
|
cursor?: string;
|
|
231
|
+
peerId?: string;
|
|
230
232
|
};
|
|
231
233
|
type ListMessagesOptions = {
|
|
232
234
|
limit?: number;
|
|
@@ -1024,7 +1026,7 @@ declare function normalizeAssistantText(text: string, mode: NcpAssistantReasonin
|
|
|
1024
1026
|
parts: NcpAssistantReasoningSegment[];
|
|
1025
1027
|
};
|
|
1026
1028
|
//#endregion
|
|
1027
|
-
//#region src/toolkit/run-handle.d.ts
|
|
1029
|
+
//#region src/toolkit/run-handle.utils.d.ts
|
|
1028
1030
|
declare function createNcpRunHandle(envelope: NcpRequestEnvelope): NcpRunHandle;
|
|
1029
1031
|
declare function consumeNcpRunHandle(events: AsyncIterable<NcpEndpointEvent>, fallback: NcpRunHandle): Promise<NcpRunHandle>;
|
|
1030
1032
|
//#endregion
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/message.ts","../src/types/manifest.ts","../src/types/errors.ts","../src/types/session.ts","../src/agent-runtime/llm-api.ts","../src/types/events.ts","../src/types/run.ts","../src/types/endpoint.ts","../src/endpoint/agent-client-endpoint.ts","../src/endpoint/agent-server-endpoint.ts","../src/types/agent-runtime.types.ts","../src/agent-backend/controller.ts","../src/toolkit/conversation-state.ts","../src/toolkit/agent/agent-conversation-state-manager.ts","../src/toolkit/reply-tags.ts","../src/toolkit/reasoning-normalization.ts","../src/toolkit/run-handle.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/message.ts","../src/types/manifest.ts","../src/types/errors.ts","../src/types/session.types.ts","../src/agent-runtime/llm-api.ts","../src/types/events.ts","../src/types/run.ts","../src/types/endpoint.ts","../src/endpoint/agent-client-endpoint.ts","../src/endpoint/agent-server-endpoint.ts","../src/types/agent-runtime.types.ts","../src/agent-backend/controller.ts","../src/toolkit/conversation-state.ts","../src/toolkit/agent/agent-conversation-state-manager.ts","../src/toolkit/reply-tags.ts","../src/toolkit/reasoning-normalization.ts","../src/toolkit/run-handle.utils.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -282,7 +282,7 @@ function normalizeAssistantText(text, mode) {
|
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
//#endregion
|
|
285
|
-
//#region src/toolkit/run-handle.ts
|
|
285
|
+
//#region src/toolkit/run-handle.utils.ts
|
|
286
286
|
function createNcpRunHandle(envelope) {
|
|
287
287
|
return {
|
|
288
288
|
sessionId: envelope.sessionId,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/types/message.ts","../src/types/events.ts","../src/toolkit/reply-tags.ts","../src/toolkit/reasoning-normalization.ts","../src/toolkit/run-handle.ts"],"sourcesContent":["/**\n * Participants in an NCP conversation.\n *\n * - `user` — A human end-user interacting with the system.\n * - `assistant` — An AI model generating responses.\n * - `system` — Configuration or instruction injected before the conversation.\n * - `tool` — The result returned by a tool invocation.\n * - `service` — A platform-side notification or event (e.g. a bot posting a card),\n * distinct from an AI assistant response.\n */\nexport type NcpMessageRole = \"user\" | \"assistant\" | \"system\" | \"tool\" | \"service\";\n\nexport const NCP_INTERNAL_VISIBILITY_METADATA_KEY = \"ncp_internal_visibility\";\n\nexport function isHiddenNcpMessage(message: Pick<NcpMessage, \"metadata\"> | null | undefined): boolean {\n return message?.metadata?.[NCP_INTERNAL_VISIBILITY_METADATA_KEY] === \"hidden\";\n}\n\n/**\n * Lifecycle state of a message.\n *\n * Applies to both streaming and non-streaming endpoints:\n * - `pending` — Created but not yet sent or received.\n * - `streaming` — Actively receiving incremental deltas.\n * - `final` — Fully received; no further updates expected.\n * - `error` — Terminated with an error; `parts` may be incomplete.\n */\nexport type NcpMessageStatus = \"pending\" | \"streaming\" | \"final\" | \"error\";\n\n// ---------------------------------------------------------------------------\n// Core portable parts\n// ---------------------------------------------------------------------------\n\n/** Plain text content. The most common part type. */\nexport type NcpTextPart = {\n type: \"text\";\n text: string;\n};\n\n/**\n * A file attachment, delivered either as a URL or inline Base64 content.\n *\n * `url` and `contentBase64` are mutually exclusive — populate exactly one.\n */\nexport type NcpFilePart = {\n type: \"file\";\n name?: string;\n mimeType?: string;\n /** Stable logical asset reference managed by the hosting app. */\n assetUri?: string;\n /** Remote URL pointing to the file. Mutually exclusive with `contentBase64`. */\n url?: string;\n /** Inline file content encoded as Base64. Mutually exclusive with `url`. */\n contentBase64?: string;\n sizeBytes?: number;\n};\n\n/** A cited source or reference, typically surfaced alongside AI-generated content. */\nexport type NcpSourcePart = {\n type: \"source\";\n title?: string;\n url?: string;\n /** Short excerpt from the source relevant to the message. */\n snippet?: string;\n};\n\n/**\n * Marks the beginning of a logical reasoning step in a multi-step response.\n * Used by chain-of-thought or agentic flows to delimit discrete steps.\n */\nexport type NcpStepStartPart = {\n type: \"step-start\";\n stepId?: string;\n /** Human-readable label for the step (e.g. \"Searching the web\"). */\n title?: string;\n};\n\n// ---------------------------------------------------------------------------\n// Agent-oriented parts\n// ---------------------------------------------------------------------------\n\n/** Internal reasoning text produced by the model before its final response. */\nexport type NcpReasoningPart = {\n type: \"reasoning\";\n text: string;\n};\n\nexport type NcpToolOutputTextItem = {\n type: \"input_text\";\n text: string;\n};\n\nexport type NcpToolOutputImageItem = {\n type: \"input_image\";\n imageUrl: string;\n mimeType?: string;\n detail?: \"low\" | \"high\" | \"auto\" | \"original\";\n originalDataChars?: number;\n dataOmitted?: boolean;\n};\n\nexport type NcpToolOutputContentItem =\n | NcpToolOutputTextItem\n | NcpToolOutputImageItem;\n\n/**\n * Represents a tool call and its lifecycle.\n *\n * State semantics (aligned with the Vercel AI SDK convention):\n * - `\"call\"` — The model has emitted a complete tool call; `args` is populated.\n * - `\"partial-call\"` — Arguments are still being streamed; `args` may be incomplete.\n * - `\"result\"` — The tool has returned; `result` is populated.\n * - `\"cancelled\"` — The tool was interrupted before a result was delivered.\n */\nexport type NcpToolInvocationPart = {\n type: \"tool-invocation\";\n toolName: string;\n toolCallId?: string;\n state?: \"call\" | \"partial-call\" | \"result\" | \"cancelled\";\n /** Tool input arguments. May be partial when `state === \"partial-call\"`. */\n args?: unknown;\n /** Tool output. Populated when `state === \"result\"`. */\n result?: unknown;\n /** Model-visible structured output items. Text is bounded; images remain image items. */\n resultContentItems?: NcpToolOutputContentItem[];\n};\n\n// ---------------------------------------------------------------------------\n// Collaboration-platform parts\n// ---------------------------------------------------------------------------\n\n/**\n * A rich card with arbitrary structured data.\n * Rendering is delegated to the platform (e.g. Slack block kit, Teams card).\n */\nexport type NcpCardPart = {\n type: \"card\";\n payload: Record<string, unknown>;\n};\n\n/** Formatted text with an explicit markup format hint. */\nexport type NcpRichTextPart = {\n type: \"rich-text\";\n format: \"markdown\" | \"html\" | \"plain\";\n text: string;\n};\n\n/**\n * An interactive action button or trigger exposed to the user.\n * The platform is responsible for rendering and routing the action.\n */\nexport type NcpActionPart = {\n type: \"action\";\n actionId: string;\n /** Display label shown to the user. */\n label: string;\n /** Arbitrary data forwarded to the action handler. */\n payload?: unknown;\n};\n\n// ---------------------------------------------------------------------------\n// Open extension slot\n// ---------------------------------------------------------------------------\n\n/**\n * Escape hatch for custom or future part types not yet in the NCP spec.\n *\n * Use this to avoid forking the protocol during early iterations.\n * Once a part type stabilizes, promote it to a first-class `NcpXxxPart`.\n */\nexport type NcpExtensionPart = {\n type: \"extension\";\n /** Namespaced identifier for the custom part (e.g. `\"myapp.highlight\"`). */\n extensionType: string;\n data: unknown;\n};\n\n// ---------------------------------------------------------------------------\n// Unified part union\n// ---------------------------------------------------------------------------\n\n/** Union of all recognized NCP message part types. */\nexport type NcpMessagePart =\n | NcpTextPart\n | NcpFilePart\n | NcpSourcePart\n | NcpStepStartPart\n | NcpReasoningPart\n | NcpToolInvocationPart\n | NcpCardPart\n | NcpRichTextPart\n | NcpActionPart\n | NcpExtensionPart;\n\n// ---------------------------------------------------------------------------\n// Message envelope\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical message envelope exchanged and persisted in NCP.\n *\n * A message is composed of an ordered list of typed `parts`, allowing\n * heterogeneous content (text, files, tool calls, etc.) in a single message.\n */\nexport type NcpMessage = {\n /** Globally unique message identifier. */\n id: string;\n /** The session this message belongs to. */\n sessionId: string;\n role: NcpMessageRole;\n status: NcpMessageStatus;\n parts: NcpMessagePart[];\n /** ISO 8601 timestamp (e.g. `\"2024-01-15T10:30:00.000Z\"`). */\n timestamp: string;\n /** Arbitrary transport- or application-level metadata. */\n metadata?: Record<string, unknown>;\n};\n","import type { OpenAITool } from \"../agent-runtime/llm-api.js\";\nimport type { NcpError } from \"./errors.js\";\nimport type { NcpMessage, NcpToolOutputContentItem } from \"./message.js\";\n\n/**\n * NCP event and payload definitions.\n *\n * Streaming content (text, reasoning, tool args) uses start → delta sequence → end.\n * The same content can be sent as a single full event (e.g. message.incoming or message.completed)\n * instead; endpoints or upper layers choose as needed.\n */\n\n// ---------------------------------------------------------------------------\n// Message envelopes (used by request/incoming/completed/failed)\n// ---------------------------------------------------------------------------\n\nexport type NcpCorrelationPayload = {\n correlationId?: string;\n};\n\nexport type NcpRequestEnvelope = {\n sessionId: string;\n message: NcpMessage;\n correlationId?: string;\n metadata?: Record<string, unknown>;\n providerRoute?: NcpProviderRuntimeRoute;\n tools?: ReadonlyArray<OpenAITool>;\n};\n\nexport type NcpOutboundMessageDraft = Omit<NcpMessage, \"sessionId\"> & {\n sessionId?: string;\n};\n\nexport type NcpAgentSendEnvelope = Omit<NcpRequestEnvelope, \"sessionId\" | \"message\"> & {\n sessionId?: string;\n message: NcpMessage | NcpOutboundMessageDraft;\n};\n\nexport type NcpProviderRuntimeRoute = {\n model: string;\n apiKey?: string | null;\n apiBase?: string | null;\n headers: Record<string, string>;\n};\n\n/** Payload for message.incoming: message content from the other peer (partial or full). */\nexport type NcpResponseEnvelope = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpCompletedEnvelope = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpFailedEnvelope = {\n sessionId: string;\n messageId?: string;\n error: NcpError;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpMessageAcceptedPayload = {\n messageId: string;\n transportId?: string;\n} & NcpCorrelationPayload;\n\n/** Payload for message.abort: identifies which session's active execution to cancel. */\nexport type NcpMessageAbortPayload = {\n sessionId: string;\n messageId?: string;\n} & NcpCorrelationPayload;\n\n/**\n * Payload for message.stream-request: attach to the live event stream of a session.\n * Used when reconnecting during an active response or attaching another live reader.\n */\nexport type NcpStreamRequestPayload = {\n sessionId: string;\n metadata?: Record<string, unknown>;\n};\n\n/**\n * Payload for message.sent: the local peer has sent a message (outbound).\n * Typically non-streaming; add the message to the local conversation state.\n */\nexport type NcpMessageSentPayload = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// IM: typing indicator (user or bot)\n// ---------------------------------------------------------------------------\n\nexport type NcpTypingStartPayload = {\n sessionId: string;\n /** Participant who is typing (human user or bot/assistant). */\n userId?: string;\n};\n\nexport type NcpTypingEndPayload = {\n sessionId: string;\n /** Participant who stopped typing (human user or bot/assistant). */\n userId?: string;\n};\n\n// ---------------------------------------------------------------------------\n// IM: presence (online/offline/away)\n// ---------------------------------------------------------------------------\n\nexport type NcpPresenceUpdatedPayload = {\n sessionId: string;\n /** Participant this presence applies to (human user or bot/assistant). */\n userId?: string;\n status: \"online\" | \"offline\" | \"away\";\n};\n\n// ---------------------------------------------------------------------------\n// IM: read receipt, delivery receipt, recall, reaction\n// ---------------------------------------------------------------------------\n\nexport type NcpMessageReadPayload = {\n sessionId: string;\n messageId: string;\n readAt?: string;\n readerId?: string;\n};\n\nexport type NcpMessageDeliveredPayload = {\n sessionId: string;\n messageId: string;\n};\n\nexport type NcpMessageRecalledPayload = {\n sessionId: string;\n messageId: string;\n};\n\nexport type NcpMessageReactionPayload = {\n sessionId: string;\n messageId: string;\n reaction: string;\n added: boolean;\n /** Participant who added or removed the reaction (human user or bot/assistant). */\n userId?: string;\n};\n\n// ---------------------------------------------------------------------------\n// Run lifecycle (aligned with agent-chat RUN_*)\n// ---------------------------------------------------------------------------\n\nexport type NcpRunStartedPayload = {\n sessionId?: string;\n messageId?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunFinishedPayload = {\n sessionId?: string;\n messageId?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunErrorPayload = {\n sessionId?: string;\n messageId?: string;\n error?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunMetadataPayload = {\n sessionId?: string;\n messageId?: string;\n runId?: string;\n metadata: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpContextWindowUpdatedPayload = {\n sessionId: string;\n contextWindow: Record<string, unknown>;\n};\n\n// ---------------------------------------------------------------------------\n// Text stream (aligned with agent-chat TEXT_*)\n// Streaming: text-start → text-delta sequence → text-end. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpTextStartPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpTextDeltaPayload = {\n sessionId: string;\n messageId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpTextEndPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Reasoning stream (aligned with agent-chat REASONING_*)\n// Streaming: reasoning-start → reasoning-delta sequence → reasoning-end. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpReasoningStartPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpReasoningDeltaPayload = {\n sessionId: string;\n messageId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpReasoningEndPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Tool call stream (aligned with agent-chat TOOL_CALL_*)\n// Streaming: tool-call-start → tool-call-args or tool-call-args-delta sequence → tool-call-end; then tool-call-result. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpToolCallStartPayload = {\n sessionId: string;\n messageId?: string;\n toolCallId: string;\n toolName: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallArgsPayload = {\n sessionId: string;\n toolCallId: string;\n args: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallArgsDeltaPayload = {\n sessionId: string;\n messageId?: string;\n toolCallId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallEndPayload = {\n sessionId: string;\n toolCallId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallResultPayload = {\n sessionId: string;\n toolCallId: string;\n content: unknown;\n contentItems?: NcpToolOutputContentItem[];\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Event type enum\n// ---------------------------------------------------------------------------\n\nexport enum NcpEventType {\n EndpointReady = \"endpoint.ready\",\n EndpointError = \"endpoint.error\",\n MessageRequest = \"message.request\",\n MessageStreamRequest = \"message.stream-request\",\n MessageSent = \"message.sent\",\n MessageAccepted = \"message.accepted\",\n MessageIncoming = \"message.incoming\",\n MessageCompleted = \"message.completed\",\n MessageFailed = \"message.failed\",\n MessageAbort = \"message.abort\",\n MessageTextStart = \"message.text-start\",\n MessageTextDelta = \"message.text-delta\",\n MessageTextEnd = \"message.text-end\",\n MessageReasoningStart = \"message.reasoning-start\",\n MessageReasoningDelta = \"message.reasoning-delta\",\n MessageReasoningEnd = \"message.reasoning-end\",\n MessageToolCallStart = \"message.tool-call-start\",\n MessageToolCallArgs = \"message.tool-call-args\",\n MessageToolCallArgsDelta = \"message.tool-call-args-delta\",\n MessageToolCallEnd = \"message.tool-call-end\",\n MessageToolCallResult = \"message.tool-call-result\",\n MessageRead = \"message.read\",\n MessageDelivered = \"message.delivered\",\n MessageRecalled = \"message.recalled\",\n MessageReaction = \"message.reaction\",\n RunStarted = \"run.started\",\n RunFinished = \"run.finished\",\n RunError = \"run.error\",\n RunMetadata = \"run.metadata\",\n ContextWindowUpdated = \"context-window.updated\",\n TypingStart = \"typing.start\",\n TypingEnd = \"typing.end\",\n PresenceUpdated = \"presence.updated\",\n}\n\n// ---------------------------------------------------------------------------\n// Event union (aligned with agent-chat EventType + endpoint lifecycle)\n// ---------------------------------------------------------------------------\n\nexport type NcpEndpointEvent =\n | { type: NcpEventType.EndpointReady }\n | { type: NcpEventType.MessageRequest; payload: NcpAgentSendEnvelope }\n | { type: NcpEventType.MessageStreamRequest; payload: NcpStreamRequestPayload }\n | { type: NcpEventType.MessageSent; payload: NcpMessageSentPayload }\n | { type: NcpEventType.MessageAccepted; payload: NcpMessageAcceptedPayload }\n | { type: NcpEventType.MessageIncoming; payload: NcpResponseEnvelope }\n | { type: NcpEventType.MessageCompleted; payload: NcpCompletedEnvelope }\n | { type: NcpEventType.MessageFailed; payload: NcpFailedEnvelope }\n | { type: NcpEventType.MessageAbort; payload: NcpMessageAbortPayload }\n | { type: NcpEventType.EndpointError; payload: NcpError }\n | { type: NcpEventType.RunStarted; payload: NcpRunStartedPayload }\n | { type: NcpEventType.RunFinished; payload: NcpRunFinishedPayload }\n | { type: NcpEventType.RunError; payload: NcpRunErrorPayload }\n | { type: NcpEventType.RunMetadata; payload: NcpRunMetadataPayload }\n | { type: NcpEventType.ContextWindowUpdated; payload: NcpContextWindowUpdatedPayload }\n | { type: NcpEventType.MessageTextStart; payload: NcpTextStartPayload }\n | { type: NcpEventType.MessageTextDelta; payload: NcpTextDeltaPayload }\n | { type: NcpEventType.MessageTextEnd; payload: NcpTextEndPayload }\n | { type: NcpEventType.MessageReasoningStart; payload: NcpReasoningStartPayload }\n | { type: NcpEventType.MessageReasoningDelta; payload: NcpReasoningDeltaPayload }\n | { type: NcpEventType.MessageReasoningEnd; payload: NcpReasoningEndPayload }\n | { type: NcpEventType.MessageToolCallStart; payload: NcpToolCallStartPayload }\n | { type: NcpEventType.MessageToolCallArgs; payload: NcpToolCallArgsPayload }\n | { type: NcpEventType.MessageToolCallArgsDelta; payload: NcpToolCallArgsDeltaPayload }\n | { type: NcpEventType.MessageToolCallEnd; payload: NcpToolCallEndPayload }\n | { type: NcpEventType.MessageToolCallResult; payload: NcpToolCallResultPayload }\n | { type: NcpEventType.TypingStart; payload: NcpTypingStartPayload }\n | { type: NcpEventType.TypingEnd; payload: NcpTypingEndPayload }\n | { type: NcpEventType.PresenceUpdated; payload: NcpPresenceUpdatedPayload }\n | { type: NcpEventType.MessageRead; payload: NcpMessageReadPayload }\n | { type: NcpEventType.MessageDelivered; payload: NcpMessageDeliveredPayload }\n | { type: NcpEventType.MessageRecalled; payload: NcpMessageRecalledPayload }\n | { type: NcpEventType.MessageReaction; payload: NcpMessageReactionPayload };\n\nexport type NcpEndpointSubscriber = (event: NcpEndpointEvent) => void;\n","import type { NcpMessage } from \"../types/message.js\";\n\nexport type NcpReplyTagParseResult = {\n content: string;\n replyTo?: string;\n};\n\nconst REPLY_TO_CURRENT_PATTERN = /\\[\\[\\s*reply_to_current\\s*\\]\\]/gi;\nconst REPLY_TO_ID_PATTERN = /\\[\\[\\s*reply_to\\s*:\\s*([^\\]]+?)\\s*\\]\\]/i;\n\nfunction normalizeReplyTarget(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nexport function stripReplyTagsFromText(content: string, currentMessageId?: string): NcpReplyTagParseResult {\n let nextContent = content;\n let replyTo: string | undefined;\n\n if (REPLY_TO_CURRENT_PATTERN.test(nextContent)) {\n replyTo = normalizeReplyTarget(currentMessageId);\n nextContent = nextContent.replace(REPLY_TO_CURRENT_PATTERN, \"\").trim();\n }\n\n const explicitReplyTarget = nextContent.match(REPLY_TO_ID_PATTERN)?.[1];\n if (explicitReplyTarget) {\n replyTo = normalizeReplyTarget(explicitReplyTarget);\n nextContent = nextContent.replace(REPLY_TO_ID_PATTERN, \"\").trim();\n }\n\n return replyTo ? { content: nextContent, replyTo } : { content: nextContent };\n}\n\nexport function sanitizeAssistantReplyTags(\n message: NcpMessage,\n currentMessageId = message.id,\n): NcpMessage {\n if (message.role !== \"assistant\") {\n return {\n ...message,\n parts: [...message.parts],\n metadata: message.metadata ? { ...message.metadata } : undefined,\n };\n }\n\n const firstTextIndex = message.parts.findIndex((part) => part.type === \"text\");\n const nextMetadata = message.metadata ? { ...message.metadata } : undefined;\n const existingReplyTo = normalizeReplyTarget(nextMetadata?.reply_to);\n\n if (firstTextIndex < 0) {\n return {\n ...message,\n parts: [...message.parts],\n metadata: nextMetadata,\n };\n }\n\n const firstTextPart = message.parts[firstTextIndex];\n if (!firstTextPart || firstTextPart.type !== \"text\") {\n return {\n ...message,\n parts: [...message.parts],\n metadata: nextMetadata,\n };\n }\n\n const { content, replyTo } = stripReplyTagsFromText(firstTextPart.text, currentMessageId);\n const effectiveReplyTo = replyTo ?? existingReplyTo;\n const nextParts = message.parts.flatMap((part, index) => {\n if (index !== firstTextIndex || part.type !== \"text\") {\n return [part];\n }\n if (content.length === 0) {\n return [];\n }\n return [{ ...part, text: content }];\n });\n\n if (effectiveReplyTo) {\n return {\n ...message,\n parts: nextParts,\n metadata: {\n ...nextMetadata,\n reply_to: effectiveReplyTo,\n },\n };\n }\n\n return {\n ...message,\n parts: nextParts,\n metadata: nextMetadata,\n };\n}\n","export type NcpAssistantReasoningNormalizationMode = \"off\" | \"think-tags\";\n\nexport type NcpAssistantReasoningSegment = {\n type: \"text\" | \"reasoning\";\n text: string;\n};\n\nconst THINK_OPEN_TAG = \"<think>\";\nconst THINK_CLOSE_TAG = \"</think>\";\nconst FINAL_OPEN_TAG = \"<final>\";\nconst FINAL_CLOSE_TAG = \"</final>\";\nconst LEADING_CONTROL_TAGS = [THINK_CLOSE_TAG, FINAL_OPEN_TAG, FINAL_CLOSE_TAG] as const;\nconst MAX_REASONING_DELIMITER_TAIL = THINK_CLOSE_TAG.length - 1;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction isWhitespace(char: string): boolean {\n return /\\s/.test(char);\n}\n\nfunction normalizeMode(value: unknown): NcpAssistantReasoningNormalizationMode | null {\n if (value === \"off\" || value === \"think-tags\") {\n return value;\n }\n return null;\n}\n\nfunction readLeadingThinkTagState(\n buffer: string,\n): { status: \"matched\"; consumed: number } | { status: \"pending\" | \"rejected\" } {\n let cursor = 0;\n while (cursor < buffer.length && isWhitespace(buffer[cursor]!)) {\n cursor += 1;\n }\n\n const rest = buffer.slice(cursor);\n if (rest.startsWith(THINK_OPEN_TAG)) {\n return {\n status: \"matched\",\n consumed: cursor + THINK_OPEN_TAG.length,\n };\n }\n if (THINK_OPEN_TAG.startsWith(rest)) {\n return { status: \"pending\" };\n }\n return { status: \"rejected\" };\n}\n\nfunction stripLeadingControlTags(buffer: string): { buffer: string; pending: boolean } {\n let nextBuffer = buffer;\n\n while (true) {\n let cursor = 0;\n while (cursor < nextBuffer.length && isWhitespace(nextBuffer[cursor]!)) {\n cursor += 1;\n }\n\n const rest = nextBuffer.slice(cursor);\n if (rest.length === 0) {\n return { buffer: \"\", pending: false };\n }\n\n const matchedTag = LEADING_CONTROL_TAGS.find((tag) => rest.startsWith(tag));\n if (matchedTag) {\n nextBuffer = rest.slice(matchedTag.length);\n continue;\n }\n\n if (LEADING_CONTROL_TAGS.some((tag) => tag.startsWith(rest))) {\n return { buffer: rest, pending: true };\n }\n\n return { buffer: rest, pending: false };\n }\n}\n\nfunction findReasoningBoundary(buffer: string): { index: number; tag: string } | null {\n const indices = [\n { index: buffer.indexOf(THINK_CLOSE_TAG), tag: THINK_CLOSE_TAG },\n { index: buffer.indexOf(FINAL_OPEN_TAG), tag: FINAL_OPEN_TAG },\n ].filter((entry) => entry.index >= 0);\n\n if (indices.length === 0) {\n return null;\n }\n\n return indices.reduce((left, right) => (right.index < left.index ? right : left));\n}\n\nexport function readAssistantReasoningNormalizationMode(\n value: unknown,\n): NcpAssistantReasoningNormalizationMode | null {\n if (typeof value === \"string\") {\n return normalizeMode(value);\n }\n if (isRecord(value)) {\n return normalizeMode(value.mode);\n }\n return null;\n}\n\nexport function readAssistantReasoningNormalizationModeFromMetadata(\n metadata: Record<string, unknown> | null | undefined,\n): NcpAssistantReasoningNormalizationMode | null {\n if (!metadata) {\n return null;\n }\n return (\n readAssistantReasoningNormalizationMode(metadata.reasoning_normalization) ??\n readAssistantReasoningNormalizationMode(metadata.reasoningNormalization) ??\n normalizeMode(metadata.reasoning_normalization_mode) ??\n normalizeMode(metadata.reasoningNormalizationMode)\n );\n}\n\nexport function writeAssistantReasoningNormalizationModeToMetadata(\n metadata: Record<string, unknown>,\n mode: NcpAssistantReasoningNormalizationMode,\n): Record<string, unknown> {\n const nextMetadata = {\n ...metadata,\n };\n delete nextMetadata.reasoningNormalization;\n delete nextMetadata.reasoningNormalizationMode;\n delete nextMetadata.reasoning_normalization_mode;\n nextMetadata.reasoning_normalization = { mode };\n return nextMetadata;\n}\n\nexport class NcpAssistantTextStreamNormalizer {\n private buffer = \"\";\n private phase: \"initial\" | \"reasoning\" | \"text\" = \"initial\";\n private stripLeadingTextControlTags = false;\n\n constructor(private readonly mode: NcpAssistantReasoningNormalizationMode = \"off\") {}\n\n push(delta: string): NcpAssistantReasoningSegment[] {\n if (!delta) {\n return [];\n }\n if (this.mode !== \"think-tags\") {\n return [{ type: \"text\", text: delta }];\n }\n\n this.buffer += delta;\n return this.flush(false);\n }\n\n finish(): NcpAssistantReasoningSegment[] {\n if (this.mode !== \"think-tags\") {\n return [];\n }\n return this.flush(true);\n }\n\n private flush(final: boolean): NcpAssistantReasoningSegment[] {\n const segments: NcpAssistantReasoningSegment[] = [];\n\n while (true) {\n if (this.phase === \"initial\") {\n const leadingState = readLeadingThinkTagState(this.buffer);\n if (leadingState.status === \"matched\") {\n this.buffer = this.buffer.slice(leadingState.consumed);\n this.phase = \"reasoning\";\n continue;\n }\n if (leadingState.status === \"pending\" && !final) {\n return segments;\n }\n this.phase = \"text\";\n continue;\n }\n\n if (this.phase === \"reasoning\") {\n const boundary = findReasoningBoundary(this.buffer);\n if (boundary) {\n const reasoningText = this.buffer.slice(0, boundary.index);\n if (reasoningText.length > 0) {\n segments.push({ type: \"reasoning\", text: reasoningText });\n }\n this.buffer = this.buffer.slice(boundary.index + boundary.tag.length);\n this.phase = \"text\";\n this.stripLeadingTextControlTags = true;\n continue;\n }\n\n const safeLength = final ? this.buffer.length : Math.max(0, this.buffer.length - MAX_REASONING_DELIMITER_TAIL);\n if (safeLength === 0) {\n return segments;\n }\n segments.push({\n type: \"reasoning\",\n text: this.buffer.slice(0, safeLength),\n });\n this.buffer = this.buffer.slice(safeLength);\n if (!final) {\n return segments;\n }\n continue;\n }\n\n if (this.stripLeadingTextControlTags) {\n const stripped = stripLeadingControlTags(this.buffer);\n if (stripped.pending && !final) {\n this.buffer = stripped.buffer;\n return segments;\n }\n this.buffer = stripped.buffer;\n this.stripLeadingTextControlTags = false;\n }\n\n if (this.buffer.length === 0) {\n return segments;\n }\n\n segments.push({\n type: \"text\",\n text: this.buffer,\n });\n this.buffer = \"\";\n return segments;\n }\n }\n}\n\nexport function normalizeAssistantText(\n text: string,\n mode: NcpAssistantReasoningNormalizationMode,\n): {\n text: string;\n reasoning: string;\n parts: NcpAssistantReasoningSegment[];\n} {\n const normalizer = new NcpAssistantTextStreamNormalizer(mode);\n const parts = [...normalizer.push(text), ...normalizer.finish()].filter((part) => part.text.length > 0);\n\n return {\n text: parts\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\"),\n reasoning: parts\n .filter((part) => part.type === \"reasoning\")\n .map((part) => part.text)\n .join(\"\"),\n parts,\n };\n}\n","import {\n type NcpEndpointEvent,\n NcpEventType,\n type NcpRequestEnvelope,\n type NcpRunHandle,\n} from \"../types/index.js\";\n\nexport function createNcpRunHandle(envelope: NcpRequestEnvelope): NcpRunHandle {\n return {\n sessionId: envelope.sessionId,\n userMessageId: envelope.message.id,\n assistantMessageId: null,\n runId: null,\n ...(envelope.correlationId ? { correlationId: envelope.correlationId } : {}),\n };\n}\n\nexport function consumeNcpRunHandle(\n events: AsyncIterable<NcpEndpointEvent>,\n fallback: NcpRunHandle,\n): Promise<NcpRunHandle> {\n let resolved = false;\n let handle = fallback;\n\n return new Promise<NcpRunHandle>((resolve, reject) => {\n const resolveOnce = (): void => {\n if (resolved) {\n return;\n }\n resolved = true;\n resolve(handle);\n };\n\n void (async () => {\n try {\n for await (const event of events) {\n if (event.type === NcpEventType.RunStarted) {\n handle = {\n ...handle,\n assistantMessageId: event.payload.messageId ?? null,\n runId: event.payload.runId ?? null,\n };\n resolveOnce();\n }\n }\n resolveOnce();\n } catch (error) {\n if (!resolved) reject(error);\n }\n })();\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/types/message.ts","../src/types/events.ts","../src/toolkit/reply-tags.ts","../src/toolkit/reasoning-normalization.ts","../src/toolkit/run-handle.utils.ts"],"sourcesContent":["/**\n * Participants in an NCP conversation.\n *\n * - `user` — A human end-user interacting with the system.\n * - `assistant` — An AI model generating responses.\n * - `system` — Configuration or instruction injected before the conversation.\n * - `tool` — The result returned by a tool invocation.\n * - `service` — A platform-side notification or event (e.g. a bot posting a card),\n * distinct from an AI assistant response.\n */\nexport type NcpMessageRole = \"user\" | \"assistant\" | \"system\" | \"tool\" | \"service\";\n\nexport const NCP_INTERNAL_VISIBILITY_METADATA_KEY = \"ncp_internal_visibility\";\n\nexport function isHiddenNcpMessage(message: Pick<NcpMessage, \"metadata\"> | null | undefined): boolean {\n return message?.metadata?.[NCP_INTERNAL_VISIBILITY_METADATA_KEY] === \"hidden\";\n}\n\n/**\n * Lifecycle state of a message.\n *\n * Applies to both streaming and non-streaming endpoints:\n * - `pending` — Created but not yet sent or received.\n * - `streaming` — Actively receiving incremental deltas.\n * - `final` — Fully received; no further updates expected.\n * - `error` — Terminated with an error; `parts` may be incomplete.\n */\nexport type NcpMessageStatus = \"pending\" | \"streaming\" | \"final\" | \"error\";\n\n// ---------------------------------------------------------------------------\n// Core portable parts\n// ---------------------------------------------------------------------------\n\n/** Plain text content. The most common part type. */\nexport type NcpTextPart = {\n type: \"text\";\n text: string;\n};\n\n/**\n * A file attachment, delivered either as a URL or inline Base64 content.\n *\n * `url` and `contentBase64` are mutually exclusive — populate exactly one.\n */\nexport type NcpFilePart = {\n type: \"file\";\n name?: string;\n mimeType?: string;\n /** Stable logical asset reference managed by the hosting app. */\n assetUri?: string;\n /** Remote URL pointing to the file. Mutually exclusive with `contentBase64`. */\n url?: string;\n /** Inline file content encoded as Base64. Mutually exclusive with `url`. */\n contentBase64?: string;\n sizeBytes?: number;\n};\n\n/** A cited source or reference, typically surfaced alongside AI-generated content. */\nexport type NcpSourcePart = {\n type: \"source\";\n title?: string;\n url?: string;\n /** Short excerpt from the source relevant to the message. */\n snippet?: string;\n};\n\n/**\n * Marks the beginning of a logical reasoning step in a multi-step response.\n * Used by chain-of-thought or agentic flows to delimit discrete steps.\n */\nexport type NcpStepStartPart = {\n type: \"step-start\";\n stepId?: string;\n /** Human-readable label for the step (e.g. \"Searching the web\"). */\n title?: string;\n};\n\n// ---------------------------------------------------------------------------\n// Agent-oriented parts\n// ---------------------------------------------------------------------------\n\n/** Internal reasoning text produced by the model before its final response. */\nexport type NcpReasoningPart = {\n type: \"reasoning\";\n text: string;\n};\n\nexport type NcpToolOutputTextItem = {\n type: \"input_text\";\n text: string;\n};\n\nexport type NcpToolOutputImageItem = {\n type: \"input_image\";\n imageUrl: string;\n mimeType?: string;\n detail?: \"low\" | \"high\" | \"auto\" | \"original\";\n originalDataChars?: number;\n dataOmitted?: boolean;\n};\n\nexport type NcpToolOutputContentItem =\n | NcpToolOutputTextItem\n | NcpToolOutputImageItem;\n\n/**\n * Represents a tool call and its lifecycle.\n *\n * State semantics (aligned with the Vercel AI SDK convention):\n * - `\"call\"` — The model has emitted a complete tool call; `args` is populated.\n * - `\"partial-call\"` — Arguments are still being streamed; `args` may be incomplete.\n * - `\"result\"` — The tool has returned; `result` is populated.\n * - `\"cancelled\"` — The tool was interrupted before a result was delivered.\n */\nexport type NcpToolInvocationPart = {\n type: \"tool-invocation\";\n toolName: string;\n toolCallId?: string;\n state?: \"call\" | \"partial-call\" | \"result\" | \"cancelled\";\n /** Tool input arguments. May be partial when `state === \"partial-call\"`. */\n args?: unknown;\n /** Tool output. Populated when `state === \"result\"`. */\n result?: unknown;\n /** Model-visible structured output items. Text is bounded; images remain image items. */\n resultContentItems?: NcpToolOutputContentItem[];\n};\n\n// ---------------------------------------------------------------------------\n// Collaboration-platform parts\n// ---------------------------------------------------------------------------\n\n/**\n * A rich card with arbitrary structured data.\n * Rendering is delegated to the platform (e.g. Slack block kit, Teams card).\n */\nexport type NcpCardPart = {\n type: \"card\";\n payload: Record<string, unknown>;\n};\n\n/** Formatted text with an explicit markup format hint. */\nexport type NcpRichTextPart = {\n type: \"rich-text\";\n format: \"markdown\" | \"html\" | \"plain\";\n text: string;\n};\n\n/**\n * An interactive action button or trigger exposed to the user.\n * The platform is responsible for rendering and routing the action.\n */\nexport type NcpActionPart = {\n type: \"action\";\n actionId: string;\n /** Display label shown to the user. */\n label: string;\n /** Arbitrary data forwarded to the action handler. */\n payload?: unknown;\n};\n\n// ---------------------------------------------------------------------------\n// Open extension slot\n// ---------------------------------------------------------------------------\n\n/**\n * Escape hatch for custom or future part types not yet in the NCP spec.\n *\n * Use this to avoid forking the protocol during early iterations.\n * Once a part type stabilizes, promote it to a first-class `NcpXxxPart`.\n */\nexport type NcpExtensionPart = {\n type: \"extension\";\n /** Namespaced identifier for the custom part (e.g. `\"myapp.highlight\"`). */\n extensionType: string;\n data: unknown;\n};\n\n// ---------------------------------------------------------------------------\n// Unified part union\n// ---------------------------------------------------------------------------\n\n/** Union of all recognized NCP message part types. */\nexport type NcpMessagePart =\n | NcpTextPart\n | NcpFilePart\n | NcpSourcePart\n | NcpStepStartPart\n | NcpReasoningPart\n | NcpToolInvocationPart\n | NcpCardPart\n | NcpRichTextPart\n | NcpActionPart\n | NcpExtensionPart;\n\n// ---------------------------------------------------------------------------\n// Message envelope\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical message envelope exchanged and persisted in NCP.\n *\n * A message is composed of an ordered list of typed `parts`, allowing\n * heterogeneous content (text, files, tool calls, etc.) in a single message.\n */\nexport type NcpMessage = {\n /** Globally unique message identifier. */\n id: string;\n /** The session this message belongs to. */\n sessionId: string;\n role: NcpMessageRole;\n status: NcpMessageStatus;\n parts: NcpMessagePart[];\n /** ISO 8601 timestamp (e.g. `\"2024-01-15T10:30:00.000Z\"`). */\n timestamp: string;\n /** Arbitrary transport- or application-level metadata. */\n metadata?: Record<string, unknown>;\n};\n","import type { OpenAITool } from \"../agent-runtime/llm-api.js\";\nimport type { NcpError } from \"./errors.js\";\nimport type { NcpMessage, NcpToolOutputContentItem } from \"./message.js\";\n\n/**\n * NCP event and payload definitions.\n *\n * Streaming content (text, reasoning, tool args) uses start → delta sequence → end.\n * The same content can be sent as a single full event (e.g. message.incoming or message.completed)\n * instead; endpoints or upper layers choose as needed.\n */\n\n// ---------------------------------------------------------------------------\n// Message envelopes (used by request/incoming/completed/failed)\n// ---------------------------------------------------------------------------\n\nexport type NcpCorrelationPayload = {\n correlationId?: string;\n};\n\nexport type NcpRequestEnvelope = {\n sessionId: string;\n message: NcpMessage;\n correlationId?: string;\n metadata?: Record<string, unknown>;\n providerRoute?: NcpProviderRuntimeRoute;\n tools?: ReadonlyArray<OpenAITool>;\n};\n\nexport type NcpOutboundMessageDraft = Omit<NcpMessage, \"sessionId\"> & {\n sessionId?: string;\n};\n\nexport type NcpAgentSendEnvelope = Omit<NcpRequestEnvelope, \"sessionId\" | \"message\"> & {\n sessionId?: string;\n message: NcpMessage | NcpOutboundMessageDraft;\n};\n\nexport type NcpProviderRuntimeRoute = {\n model: string;\n apiKey?: string | null;\n apiBase?: string | null;\n headers: Record<string, string>;\n};\n\n/** Payload for message.incoming: message content from the other peer (partial or full). */\nexport type NcpResponseEnvelope = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpCompletedEnvelope = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpFailedEnvelope = {\n sessionId: string;\n messageId?: string;\n error: NcpError;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpMessageAcceptedPayload = {\n messageId: string;\n transportId?: string;\n} & NcpCorrelationPayload;\n\n/** Payload for message.abort: identifies which session's active execution to cancel. */\nexport type NcpMessageAbortPayload = {\n sessionId: string;\n messageId?: string;\n} & NcpCorrelationPayload;\n\n/**\n * Payload for message.stream-request: attach to the live event stream of a session.\n * Used when reconnecting during an active response or attaching another live reader.\n */\nexport type NcpStreamRequestPayload = {\n sessionId: string;\n metadata?: Record<string, unknown>;\n};\n\n/**\n * Payload for message.sent: the local peer has sent a message (outbound).\n * Typically non-streaming; add the message to the local conversation state.\n */\nexport type NcpMessageSentPayload = {\n sessionId: string;\n message: NcpMessage;\n metadata?: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// IM: typing indicator (user or bot)\n// ---------------------------------------------------------------------------\n\nexport type NcpTypingStartPayload = {\n sessionId: string;\n /** Participant who is typing (human user or bot/assistant). */\n userId?: string;\n};\n\nexport type NcpTypingEndPayload = {\n sessionId: string;\n /** Participant who stopped typing (human user or bot/assistant). */\n userId?: string;\n};\n\n// ---------------------------------------------------------------------------\n// IM: presence (online/offline/away)\n// ---------------------------------------------------------------------------\n\nexport type NcpPresenceUpdatedPayload = {\n sessionId: string;\n /** Participant this presence applies to (human user or bot/assistant). */\n userId?: string;\n status: \"online\" | \"offline\" | \"away\";\n};\n\n// ---------------------------------------------------------------------------\n// IM: read receipt, delivery receipt, recall, reaction\n// ---------------------------------------------------------------------------\n\nexport type NcpMessageReadPayload = {\n sessionId: string;\n messageId: string;\n readAt?: string;\n readerId?: string;\n};\n\nexport type NcpMessageDeliveredPayload = {\n sessionId: string;\n messageId: string;\n};\n\nexport type NcpMessageRecalledPayload = {\n sessionId: string;\n messageId: string;\n};\n\nexport type NcpMessageReactionPayload = {\n sessionId: string;\n messageId: string;\n reaction: string;\n added: boolean;\n /** Participant who added or removed the reaction (human user or bot/assistant). */\n userId?: string;\n};\n\n// ---------------------------------------------------------------------------\n// Run lifecycle (aligned with agent-chat RUN_*)\n// ---------------------------------------------------------------------------\n\nexport type NcpRunStartedPayload = {\n sessionId?: string;\n messageId?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunFinishedPayload = {\n sessionId?: string;\n messageId?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunErrorPayload = {\n sessionId?: string;\n messageId?: string;\n error?: string;\n threadId?: string;\n runId?: string;\n} & NcpCorrelationPayload;\n\nexport type NcpRunMetadataPayload = {\n sessionId?: string;\n messageId?: string;\n runId?: string;\n metadata: Record<string, unknown>;\n} & NcpCorrelationPayload;\n\nexport type NcpContextWindowUpdatedPayload = {\n sessionId: string;\n contextWindow: Record<string, unknown>;\n};\n\n// ---------------------------------------------------------------------------\n// Text stream (aligned with agent-chat TEXT_*)\n// Streaming: text-start → text-delta sequence → text-end. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpTextStartPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpTextDeltaPayload = {\n sessionId: string;\n messageId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpTextEndPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Reasoning stream (aligned with agent-chat REASONING_*)\n// Streaming: reasoning-start → reasoning-delta sequence → reasoning-end. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpReasoningStartPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpReasoningDeltaPayload = {\n sessionId: string;\n messageId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpReasoningEndPayload = {\n sessionId: string;\n messageId: string;\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Tool call stream (aligned with agent-chat TOOL_CALL_*)\n// Streaming: tool-call-start → tool-call-args or tool-call-args-delta sequence → tool-call-end; then tool-call-result. Alternative: message.incoming / message.completed with full NcpMessage.\n// ---------------------------------------------------------------------------\n\nexport type NcpToolCallStartPayload = {\n sessionId: string;\n messageId?: string;\n toolCallId: string;\n toolName: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallArgsPayload = {\n sessionId: string;\n toolCallId: string;\n args: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallArgsDeltaPayload = {\n sessionId: string;\n messageId?: string;\n toolCallId: string;\n delta: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallEndPayload = {\n sessionId: string;\n toolCallId: string;\n} & NcpCorrelationPayload;\n\nexport type NcpToolCallResultPayload = {\n sessionId: string;\n toolCallId: string;\n content: unknown;\n contentItems?: NcpToolOutputContentItem[];\n} & NcpCorrelationPayload;\n\n// ---------------------------------------------------------------------------\n// Event type enum\n// ---------------------------------------------------------------------------\n\nexport enum NcpEventType {\n EndpointReady = \"endpoint.ready\",\n EndpointError = \"endpoint.error\",\n MessageRequest = \"message.request\",\n MessageStreamRequest = \"message.stream-request\",\n MessageSent = \"message.sent\",\n MessageAccepted = \"message.accepted\",\n MessageIncoming = \"message.incoming\",\n MessageCompleted = \"message.completed\",\n MessageFailed = \"message.failed\",\n MessageAbort = \"message.abort\",\n MessageTextStart = \"message.text-start\",\n MessageTextDelta = \"message.text-delta\",\n MessageTextEnd = \"message.text-end\",\n MessageReasoningStart = \"message.reasoning-start\",\n MessageReasoningDelta = \"message.reasoning-delta\",\n MessageReasoningEnd = \"message.reasoning-end\",\n MessageToolCallStart = \"message.tool-call-start\",\n MessageToolCallArgs = \"message.tool-call-args\",\n MessageToolCallArgsDelta = \"message.tool-call-args-delta\",\n MessageToolCallEnd = \"message.tool-call-end\",\n MessageToolCallResult = \"message.tool-call-result\",\n MessageRead = \"message.read\",\n MessageDelivered = \"message.delivered\",\n MessageRecalled = \"message.recalled\",\n MessageReaction = \"message.reaction\",\n RunStarted = \"run.started\",\n RunFinished = \"run.finished\",\n RunError = \"run.error\",\n RunMetadata = \"run.metadata\",\n ContextWindowUpdated = \"context-window.updated\",\n TypingStart = \"typing.start\",\n TypingEnd = \"typing.end\",\n PresenceUpdated = \"presence.updated\",\n}\n\n// ---------------------------------------------------------------------------\n// Event union (aligned with agent-chat EventType + endpoint lifecycle)\n// ---------------------------------------------------------------------------\n\nexport type NcpEndpointEvent =\n | { type: NcpEventType.EndpointReady }\n | { type: NcpEventType.MessageRequest; payload: NcpAgentSendEnvelope }\n | { type: NcpEventType.MessageStreamRequest; payload: NcpStreamRequestPayload }\n | { type: NcpEventType.MessageSent; payload: NcpMessageSentPayload }\n | { type: NcpEventType.MessageAccepted; payload: NcpMessageAcceptedPayload }\n | { type: NcpEventType.MessageIncoming; payload: NcpResponseEnvelope }\n | { type: NcpEventType.MessageCompleted; payload: NcpCompletedEnvelope }\n | { type: NcpEventType.MessageFailed; payload: NcpFailedEnvelope }\n | { type: NcpEventType.MessageAbort; payload: NcpMessageAbortPayload }\n | { type: NcpEventType.EndpointError; payload: NcpError }\n | { type: NcpEventType.RunStarted; payload: NcpRunStartedPayload }\n | { type: NcpEventType.RunFinished; payload: NcpRunFinishedPayload }\n | { type: NcpEventType.RunError; payload: NcpRunErrorPayload }\n | { type: NcpEventType.RunMetadata; payload: NcpRunMetadataPayload }\n | { type: NcpEventType.ContextWindowUpdated; payload: NcpContextWindowUpdatedPayload }\n | { type: NcpEventType.MessageTextStart; payload: NcpTextStartPayload }\n | { type: NcpEventType.MessageTextDelta; payload: NcpTextDeltaPayload }\n | { type: NcpEventType.MessageTextEnd; payload: NcpTextEndPayload }\n | { type: NcpEventType.MessageReasoningStart; payload: NcpReasoningStartPayload }\n | { type: NcpEventType.MessageReasoningDelta; payload: NcpReasoningDeltaPayload }\n | { type: NcpEventType.MessageReasoningEnd; payload: NcpReasoningEndPayload }\n | { type: NcpEventType.MessageToolCallStart; payload: NcpToolCallStartPayload }\n | { type: NcpEventType.MessageToolCallArgs; payload: NcpToolCallArgsPayload }\n | { type: NcpEventType.MessageToolCallArgsDelta; payload: NcpToolCallArgsDeltaPayload }\n | { type: NcpEventType.MessageToolCallEnd; payload: NcpToolCallEndPayload }\n | { type: NcpEventType.MessageToolCallResult; payload: NcpToolCallResultPayload }\n | { type: NcpEventType.TypingStart; payload: NcpTypingStartPayload }\n | { type: NcpEventType.TypingEnd; payload: NcpTypingEndPayload }\n | { type: NcpEventType.PresenceUpdated; payload: NcpPresenceUpdatedPayload }\n | { type: NcpEventType.MessageRead; payload: NcpMessageReadPayload }\n | { type: NcpEventType.MessageDelivered; payload: NcpMessageDeliveredPayload }\n | { type: NcpEventType.MessageRecalled; payload: NcpMessageRecalledPayload }\n | { type: NcpEventType.MessageReaction; payload: NcpMessageReactionPayload };\n\nexport type NcpEndpointSubscriber = (event: NcpEndpointEvent) => void;\n","import type { NcpMessage } from \"../types/message.js\";\n\nexport type NcpReplyTagParseResult = {\n content: string;\n replyTo?: string;\n};\n\nconst REPLY_TO_CURRENT_PATTERN = /\\[\\[\\s*reply_to_current\\s*\\]\\]/gi;\nconst REPLY_TO_ID_PATTERN = /\\[\\[\\s*reply_to\\s*:\\s*([^\\]]+?)\\s*\\]\\]/i;\n\nfunction normalizeReplyTarget(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nexport function stripReplyTagsFromText(content: string, currentMessageId?: string): NcpReplyTagParseResult {\n let nextContent = content;\n let replyTo: string | undefined;\n\n if (REPLY_TO_CURRENT_PATTERN.test(nextContent)) {\n replyTo = normalizeReplyTarget(currentMessageId);\n nextContent = nextContent.replace(REPLY_TO_CURRENT_PATTERN, \"\").trim();\n }\n\n const explicitReplyTarget = nextContent.match(REPLY_TO_ID_PATTERN)?.[1];\n if (explicitReplyTarget) {\n replyTo = normalizeReplyTarget(explicitReplyTarget);\n nextContent = nextContent.replace(REPLY_TO_ID_PATTERN, \"\").trim();\n }\n\n return replyTo ? { content: nextContent, replyTo } : { content: nextContent };\n}\n\nexport function sanitizeAssistantReplyTags(\n message: NcpMessage,\n currentMessageId = message.id,\n): NcpMessage {\n if (message.role !== \"assistant\") {\n return {\n ...message,\n parts: [...message.parts],\n metadata: message.metadata ? { ...message.metadata } : undefined,\n };\n }\n\n const firstTextIndex = message.parts.findIndex((part) => part.type === \"text\");\n const nextMetadata = message.metadata ? { ...message.metadata } : undefined;\n const existingReplyTo = normalizeReplyTarget(nextMetadata?.reply_to);\n\n if (firstTextIndex < 0) {\n return {\n ...message,\n parts: [...message.parts],\n metadata: nextMetadata,\n };\n }\n\n const firstTextPart = message.parts[firstTextIndex];\n if (!firstTextPart || firstTextPart.type !== \"text\") {\n return {\n ...message,\n parts: [...message.parts],\n metadata: nextMetadata,\n };\n }\n\n const { content, replyTo } = stripReplyTagsFromText(firstTextPart.text, currentMessageId);\n const effectiveReplyTo = replyTo ?? existingReplyTo;\n const nextParts = message.parts.flatMap((part, index) => {\n if (index !== firstTextIndex || part.type !== \"text\") {\n return [part];\n }\n if (content.length === 0) {\n return [];\n }\n return [{ ...part, text: content }];\n });\n\n if (effectiveReplyTo) {\n return {\n ...message,\n parts: nextParts,\n metadata: {\n ...nextMetadata,\n reply_to: effectiveReplyTo,\n },\n };\n }\n\n return {\n ...message,\n parts: nextParts,\n metadata: nextMetadata,\n };\n}\n","export type NcpAssistantReasoningNormalizationMode = \"off\" | \"think-tags\";\n\nexport type NcpAssistantReasoningSegment = {\n type: \"text\" | \"reasoning\";\n text: string;\n};\n\nconst THINK_OPEN_TAG = \"<think>\";\nconst THINK_CLOSE_TAG = \"</think>\";\nconst FINAL_OPEN_TAG = \"<final>\";\nconst FINAL_CLOSE_TAG = \"</final>\";\nconst LEADING_CONTROL_TAGS = [THINK_CLOSE_TAG, FINAL_OPEN_TAG, FINAL_CLOSE_TAG] as const;\nconst MAX_REASONING_DELIMITER_TAIL = THINK_CLOSE_TAG.length - 1;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction isWhitespace(char: string): boolean {\n return /\\s/.test(char);\n}\n\nfunction normalizeMode(value: unknown): NcpAssistantReasoningNormalizationMode | null {\n if (value === \"off\" || value === \"think-tags\") {\n return value;\n }\n return null;\n}\n\nfunction readLeadingThinkTagState(\n buffer: string,\n): { status: \"matched\"; consumed: number } | { status: \"pending\" | \"rejected\" } {\n let cursor = 0;\n while (cursor < buffer.length && isWhitespace(buffer[cursor]!)) {\n cursor += 1;\n }\n\n const rest = buffer.slice(cursor);\n if (rest.startsWith(THINK_OPEN_TAG)) {\n return {\n status: \"matched\",\n consumed: cursor + THINK_OPEN_TAG.length,\n };\n }\n if (THINK_OPEN_TAG.startsWith(rest)) {\n return { status: \"pending\" };\n }\n return { status: \"rejected\" };\n}\n\nfunction stripLeadingControlTags(buffer: string): { buffer: string; pending: boolean } {\n let nextBuffer = buffer;\n\n while (true) {\n let cursor = 0;\n while (cursor < nextBuffer.length && isWhitespace(nextBuffer[cursor]!)) {\n cursor += 1;\n }\n\n const rest = nextBuffer.slice(cursor);\n if (rest.length === 0) {\n return { buffer: \"\", pending: false };\n }\n\n const matchedTag = LEADING_CONTROL_TAGS.find((tag) => rest.startsWith(tag));\n if (matchedTag) {\n nextBuffer = rest.slice(matchedTag.length);\n continue;\n }\n\n if (LEADING_CONTROL_TAGS.some((tag) => tag.startsWith(rest))) {\n return { buffer: rest, pending: true };\n }\n\n return { buffer: rest, pending: false };\n }\n}\n\nfunction findReasoningBoundary(buffer: string): { index: number; tag: string } | null {\n const indices = [\n { index: buffer.indexOf(THINK_CLOSE_TAG), tag: THINK_CLOSE_TAG },\n { index: buffer.indexOf(FINAL_OPEN_TAG), tag: FINAL_OPEN_TAG },\n ].filter((entry) => entry.index >= 0);\n\n if (indices.length === 0) {\n return null;\n }\n\n return indices.reduce((left, right) => (right.index < left.index ? right : left));\n}\n\nexport function readAssistantReasoningNormalizationMode(\n value: unknown,\n): NcpAssistantReasoningNormalizationMode | null {\n if (typeof value === \"string\") {\n return normalizeMode(value);\n }\n if (isRecord(value)) {\n return normalizeMode(value.mode);\n }\n return null;\n}\n\nexport function readAssistantReasoningNormalizationModeFromMetadata(\n metadata: Record<string, unknown> | null | undefined,\n): NcpAssistantReasoningNormalizationMode | null {\n if (!metadata) {\n return null;\n }\n return (\n readAssistantReasoningNormalizationMode(metadata.reasoning_normalization) ??\n readAssistantReasoningNormalizationMode(metadata.reasoningNormalization) ??\n normalizeMode(metadata.reasoning_normalization_mode) ??\n normalizeMode(metadata.reasoningNormalizationMode)\n );\n}\n\nexport function writeAssistantReasoningNormalizationModeToMetadata(\n metadata: Record<string, unknown>,\n mode: NcpAssistantReasoningNormalizationMode,\n): Record<string, unknown> {\n const nextMetadata = {\n ...metadata,\n };\n delete nextMetadata.reasoningNormalization;\n delete nextMetadata.reasoningNormalizationMode;\n delete nextMetadata.reasoning_normalization_mode;\n nextMetadata.reasoning_normalization = { mode };\n return nextMetadata;\n}\n\nexport class NcpAssistantTextStreamNormalizer {\n private buffer = \"\";\n private phase: \"initial\" | \"reasoning\" | \"text\" = \"initial\";\n private stripLeadingTextControlTags = false;\n\n constructor(private readonly mode: NcpAssistantReasoningNormalizationMode = \"off\") {}\n\n push(delta: string): NcpAssistantReasoningSegment[] {\n if (!delta) {\n return [];\n }\n if (this.mode !== \"think-tags\") {\n return [{ type: \"text\", text: delta }];\n }\n\n this.buffer += delta;\n return this.flush(false);\n }\n\n finish(): NcpAssistantReasoningSegment[] {\n if (this.mode !== \"think-tags\") {\n return [];\n }\n return this.flush(true);\n }\n\n private flush(final: boolean): NcpAssistantReasoningSegment[] {\n const segments: NcpAssistantReasoningSegment[] = [];\n\n while (true) {\n if (this.phase === \"initial\") {\n const leadingState = readLeadingThinkTagState(this.buffer);\n if (leadingState.status === \"matched\") {\n this.buffer = this.buffer.slice(leadingState.consumed);\n this.phase = \"reasoning\";\n continue;\n }\n if (leadingState.status === \"pending\" && !final) {\n return segments;\n }\n this.phase = \"text\";\n continue;\n }\n\n if (this.phase === \"reasoning\") {\n const boundary = findReasoningBoundary(this.buffer);\n if (boundary) {\n const reasoningText = this.buffer.slice(0, boundary.index);\n if (reasoningText.length > 0) {\n segments.push({ type: \"reasoning\", text: reasoningText });\n }\n this.buffer = this.buffer.slice(boundary.index + boundary.tag.length);\n this.phase = \"text\";\n this.stripLeadingTextControlTags = true;\n continue;\n }\n\n const safeLength = final ? this.buffer.length : Math.max(0, this.buffer.length - MAX_REASONING_DELIMITER_TAIL);\n if (safeLength === 0) {\n return segments;\n }\n segments.push({\n type: \"reasoning\",\n text: this.buffer.slice(0, safeLength),\n });\n this.buffer = this.buffer.slice(safeLength);\n if (!final) {\n return segments;\n }\n continue;\n }\n\n if (this.stripLeadingTextControlTags) {\n const stripped = stripLeadingControlTags(this.buffer);\n if (stripped.pending && !final) {\n this.buffer = stripped.buffer;\n return segments;\n }\n this.buffer = stripped.buffer;\n this.stripLeadingTextControlTags = false;\n }\n\n if (this.buffer.length === 0) {\n return segments;\n }\n\n segments.push({\n type: \"text\",\n text: this.buffer,\n });\n this.buffer = \"\";\n return segments;\n }\n }\n}\n\nexport function normalizeAssistantText(\n text: string,\n mode: NcpAssistantReasoningNormalizationMode,\n): {\n text: string;\n reasoning: string;\n parts: NcpAssistantReasoningSegment[];\n} {\n const normalizer = new NcpAssistantTextStreamNormalizer(mode);\n const parts = [...normalizer.push(text), ...normalizer.finish()].filter((part) => part.text.length > 0);\n\n return {\n text: parts\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\"),\n reasoning: parts\n .filter((part) => part.type === \"reasoning\")\n .map((part) => part.text)\n .join(\"\"),\n parts,\n };\n}\n","import {\n type NcpEndpointEvent,\n NcpEventType,\n type NcpRequestEnvelope,\n type NcpRunHandle,\n} from \"../types/ncp.types.js\";\n\nexport function createNcpRunHandle(envelope: NcpRequestEnvelope): NcpRunHandle {\n return {\n sessionId: envelope.sessionId,\n userMessageId: envelope.message.id,\n assistantMessageId: null,\n runId: null,\n ...(envelope.correlationId ? { correlationId: envelope.correlationId } : {}),\n };\n}\n\nexport function consumeNcpRunHandle(\n events: AsyncIterable<NcpEndpointEvent>,\n fallback: NcpRunHandle,\n): Promise<NcpRunHandle> {\n let resolved = false;\n let handle = fallback;\n\n return new Promise<NcpRunHandle>((resolve, reject) => {\n const resolveOnce = (): void => {\n if (resolved) {\n return;\n }\n resolved = true;\n resolve(handle);\n };\n\n void (async () => {\n try {\n for await (const event of events) {\n if (event.type === NcpEventType.RunStarted) {\n handle = {\n ...handle,\n assistantMessageId: event.payload.messageId ?? null,\n runId: event.payload.runId ?? null,\n };\n resolveOnce();\n }\n }\n resolveOnce();\n } catch (error) {\n if (!resolved) reject(error);\n }\n })();\n });\n}\n"],"mappings":"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"}
|