|
9 | 9 |
|
10 | 10 | import { createInterface } from 'node:readline'; |
11 | 11 |
|
12 | | -import type { CallToolResult, CreateMessageRequest, CreateMessageResult, TextContent } from '@modelcontextprotocol/client'; |
| 12 | +import type { CreateMessageRequest, CreateMessageResult, TextContent } from '@modelcontextprotocol/client'; |
13 | 13 | import { Client, ProtocolError, ProtocolErrorCode, StreamableHTTPClientTransport } from '@modelcontextprotocol/client'; |
14 | 14 |
|
15 | 15 | // Create readline interface for user input |
@@ -115,64 +115,12 @@ async function run(url: string): Promise<void> { |
115 | 115 | const toolsResult = await client.listTools(); |
116 | 116 | console.log(`Available tools: ${toolsResult.tools.map(t => t.name).join(', ')}`); |
117 | 117 |
|
118 | | - // Demo 1: Elicitation (confirm_delete) |
119 | | - console.log('\n--- Demo 1: Elicitation ---'); |
120 | | - console.log('Calling confirm_delete tool...'); |
121 | | - |
122 | | - const confirmStream = client.experimental.tasks.callToolStream( |
123 | | - { name: 'confirm_delete', arguments: { filename: 'important.txt' } }, |
124 | | - {} |
125 | | - ); |
126 | | - |
127 | | - for await (const message of confirmStream) { |
128 | | - switch (message.type) { |
129 | | - case 'taskCreated': { |
130 | | - console.log(`Task created: ${message.task.taskId}`); |
131 | | - break; |
132 | | - } |
133 | | - case 'taskStatus': { |
134 | | - console.log(`Task status: ${message.task.status}`); |
135 | | - break; |
136 | | - } |
137 | | - case 'result': { |
138 | | - const toolResult = message.result as CallToolResult; |
139 | | - console.log(`Result: ${getTextContent(toolResult)}`); |
140 | | - break; |
141 | | - } |
142 | | - case 'error': { |
143 | | - console.error(`Error: ${message.error}`); |
144 | | - break; |
145 | | - } |
146 | | - } |
147 | | - } |
148 | | - |
149 | | - // Demo 2: Sampling (write_haiku) |
150 | | - console.log('\n--- Demo 2: Sampling ---'); |
151 | | - console.log('Calling write_haiku tool...'); |
152 | | - |
153 | | - const haikuStream = client.experimental.tasks.callToolStream({ name: 'write_haiku', arguments: { topic: 'autumn leaves' } }, {}); |
154 | | - |
155 | | - for await (const message of haikuStream) { |
156 | | - switch (message.type) { |
157 | | - case 'taskCreated': { |
158 | | - console.log(`Task created: ${message.task.taskId}`); |
159 | | - break; |
160 | | - } |
161 | | - case 'taskStatus': { |
162 | | - console.log(`Task status: ${message.task.status}`); |
163 | | - break; |
164 | | - } |
165 | | - case 'result': { |
166 | | - const toolResult = message.result as CallToolResult; |
167 | | - console.log(`Result:\n${getTextContent(toolResult)}`); |
168 | | - break; |
169 | | - } |
170 | | - case 'error': { |
171 | | - console.error(`Error: ${message.error}`); |
172 | | - break; |
173 | | - } |
174 | | - } |
175 | | - } |
| 118 | + // TODO(F3): re-enable interactive task demos via tasksPlugin (SEP-2663). |
| 119 | + // The 2025-11 callToolStream API is removed by R0; the demos below were the |
| 120 | + // streaming consumer of that API and are disabled until the F3 rewrite. |
| 121 | + void client; |
| 122 | + void getTextContent; |
| 123 | + console.log('\nInteractive task demo disabled pending tasksPlugin (SEP-2663). See TODO(F3).'); |
176 | 124 |
|
177 | 125 | // Cleanup |
178 | 126 | console.log('\nDemo complete. Closing connection...'); |
|
0 commit comments