@robota-sdk/agent-transport 3.0.0-beta.75 → 3.0.0-beta.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +10 -10
  2. package/dist/node/headless/index.cjs +1 -1
  3. package/dist/node/{headless-CT2ibQnr.cjs → headless-OnpVk4-k.cjs} +7 -7
  4. package/dist/node/index.cjs +1 -1
  5. package/dist/node/index.d.ts +1 -6
  6. package/dist/node/index.d.ts.map +1 -1
  7. package/dist/node/index.js +1 -1
  8. package/dist/node/index.js.map +1 -1
  9. package/package.json +7 -75
  10. package/src/index.ts +1 -5
  11. package/src/transport-registry.ts +0 -9
  12. package/dist/node/http/index.cjs +0 -1
  13. package/dist/node/http/index.d.ts +0 -2
  14. package/dist/node/http/index.js +0 -1
  15. package/dist/node/http-2Jiuflc1.js +0 -2
  16. package/dist/node/http-2Jiuflc1.js.map +0 -1
  17. package/dist/node/http-CBAvefLw.cjs +0 -1
  18. package/dist/node/index-BNccqSpv.d.ts +0 -86
  19. package/dist/node/index-BNccqSpv.d.ts.map +0 -1
  20. package/dist/node/index-BUhHIf7X.d.ts +0 -86
  21. package/dist/node/index-BUhHIf7X.d.ts.map +0 -1
  22. package/dist/node/index-BnAGE-u9.d.ts +0 -33
  23. package/dist/node/index-BnAGE-u9.d.ts.map +0 -1
  24. package/dist/node/index-BrQ4gGw0.d.ts +0 -213
  25. package/dist/node/index-BrQ4gGw0.d.ts.map +0 -1
  26. package/dist/node/index-CoeBF21y.d.ts +0 -213
  27. package/dist/node/index-CoeBF21y.d.ts.map +0 -1
  28. package/dist/node/index-DHt-2VQ-.d.ts +0 -46
  29. package/dist/node/index-DHt-2VQ-.d.ts.map +0 -1
  30. package/dist/node/index-DMwKN5Le.d.ts +0 -33
  31. package/dist/node/index-DMwKN5Le.d.ts.map +0 -1
  32. package/dist/node/index-c0M42fsA.d.ts +0 -46
  33. package/dist/node/index-c0M42fsA.d.ts.map +0 -1
  34. package/dist/node/mcp/index.cjs +0 -1
  35. package/dist/node/mcp/index.d.ts +0 -2
  36. package/dist/node/mcp/index.js +0 -1
  37. package/dist/node/mcp-BOglBJNy.cjs +0 -1
  38. package/dist/node/mcp-D3BBVK7C.js +0 -2
  39. package/dist/node/mcp-D3BBVK7C.js.map +0 -1
  40. package/dist/node/rolldown-runtime-CMqjfN_6.cjs +0 -1
  41. package/dist/node/tui/index.cjs +0 -1
  42. package/dist/node/tui/index.d.ts +0 -2
  43. package/dist/node/tui/index.js +0 -1
  44. package/dist/node/tui-CcH5EsQh.js +0 -25
  45. package/dist/node/tui-CcH5EsQh.js.map +0 -1
  46. package/dist/node/tui-DznRbcku.cjs +0 -24
  47. package/dist/node/ws/index.cjs +0 -1
  48. package/dist/node/ws/index.d.ts +0 -2
  49. package/dist/node/ws/index.js +0 -1
  50. package/dist/node/ws-Dc2RUwVs.js +0 -2
  51. package/dist/node/ws-Dc2RUwVs.js.map +0 -1
  52. package/dist/node/ws-QNMQn5kg.cjs +0 -1
  53. package/src/http/__tests__/http-transport.test.ts +0 -55
  54. package/src/http/__tests__/routes.test.ts +0 -168
  55. package/src/http/http-transport.ts +0 -41
  56. package/src/http/index.ts +0 -4
  57. package/src/http/routes.ts +0 -152
  58. package/src/mcp/__tests__/mcp-server.test.ts +0 -66
  59. package/src/mcp/__tests__/mcp-transport.test.ts +0 -46
  60. package/src/mcp/index.ts +0 -4
  61. package/src/mcp/mcp-server.ts +0 -163
  62. package/src/mcp/mcp-transport.ts +0 -48
  63. package/src/tui/App.tsx +0 -491
  64. package/src/tui/BackgroundTaskPanel.tsx +0 -36
  65. package/src/tui/CjkTextInput.tsx +0 -199
  66. package/src/tui/ConfirmPrompt.tsx +0 -70
  67. package/src/tui/ContextWarningBanner.tsx +0 -34
  68. package/src/tui/ExecutionWorkspaceDetailPane.tsx +0 -64
  69. package/src/tui/ExecutionWorkspaceSwitcher.tsx +0 -187
  70. package/src/tui/InputArea.tsx +0 -310
  71. package/src/tui/InteractivePrompt.tsx +0 -59
  72. package/src/tui/ListPicker.tsx +0 -95
  73. package/src/tui/MenuSelect.tsx +0 -104
  74. package/src/tui/MessageList.tsx +0 -284
  75. package/src/tui/PermissionPrompt.tsx +0 -86
  76. package/src/tui/PluginTUI.tsx +0 -258
  77. package/src/tui/SessionPicker.tsx +0 -68
  78. package/src/tui/SessionStatusBar.tsx +0 -73
  79. package/src/tui/SlashAutocomplete.tsx +0 -110
  80. package/src/tui/StatusBar.tsx +0 -236
  81. package/src/tui/StreamingIndicator.tsx +0 -93
  82. package/src/tui/TextPrompt.tsx +0 -81
  83. package/src/tui/ToolCommandOutput.tsx +0 -39
  84. package/src/tui/ToolDiffBlock.tsx +0 -32
  85. package/src/tui/TransportTUI.tsx +0 -117
  86. package/src/tui/TuiInteractionChannel.ts +0 -495
  87. package/src/tui/UpdateNotice.tsx +0 -14
  88. package/src/tui/UsageSummaryEntry.tsx +0 -39
  89. package/src/tui/WaveText.tsx +0 -44
  90. package/src/tui/__tests__/InteractivePrompt.test.tsx +0 -82
  91. package/src/tui/__tests__/ListPicker.test.tsx +0 -159
  92. package/src/tui/__tests__/MenuSelect.test.tsx +0 -103
  93. package/src/tui/__tests__/PluginTUI.test.tsx +0 -167
  94. package/src/tui/__tests__/SlashAutocomplete.test.tsx +0 -140
  95. package/src/tui/__tests__/TextPrompt.test.tsx +0 -98
  96. package/src/tui/__tests__/TuiInteractionChannel.display-contract.test.ts +0 -239
  97. package/src/tui/__tests__/TuiInteractionChannel.lifecycle.test.ts +0 -297
  98. package/src/tui/__tests__/TuiInteractionChannel.requestAction.test.ts +0 -124
  99. package/src/tui/__tests__/UpdateNotice.test.tsx +0 -15
  100. package/src/tui/__tests__/abort-after-permission.test.tsx +0 -169
  101. package/src/tui/__tests__/abort-streaming-e2e.test.tsx +0 -183
  102. package/src/tui/__tests__/background-task-panel.test.tsx +0 -53
  103. package/src/tui/__tests__/background-task-row-format.test.ts +0 -59
  104. package/src/tui/__tests__/channel-factory-integration.test.ts +0 -138
  105. package/src/tui/__tests__/cjk-text-input-flow.test.ts +0 -109
  106. package/src/tui/__tests__/cjk-text-input.test.ts +0 -191
  107. package/src/tui/__tests__/command-effect-handler.test.ts +0 -127
  108. package/src/tui/__tests__/command-output-summary.test.ts +0 -95
  109. package/src/tui/__tests__/compact-event-bridge.test.ts +0 -20
  110. package/src/tui/__tests__/confirm-permission-flow.test.ts +0 -130
  111. package/src/tui/__tests__/confirm-prompt.test.tsx +0 -87
  112. package/src/tui/__tests__/execution-workspace-switcher.test.tsx +0 -110
  113. package/src/tui/__tests__/execution-workspace-view-model.test.ts +0 -93
  114. package/src/tui/__tests__/fixtures/provider-setup-prompt-driver.tsx +0 -125
  115. package/src/tui/__tests__/input-area-flow.test.ts +0 -164
  116. package/src/tui/__tests__/message-list-rendering.test.tsx +0 -353
  117. package/src/tui/__tests__/prompt-queue.test.tsx +0 -255
  118. package/src/tui/__tests__/provider-setup-pty-e2e.test.ts +0 -233
  119. package/src/tui/__tests__/pty/pty-driver.ts +0 -135
  120. package/src/tui/__tests__/pty/tui-pty.ptytest.ts +0 -61
  121. package/src/tui/__tests__/render-channel-options.test.ts +0 -32
  122. package/src/tui/__tests__/render-markdown.test.ts +0 -72
  123. package/src/tui/__tests__/selection-flow.test.ts +0 -61
  124. package/src/tui/__tests__/session-init-poller.test.ts +0 -102
  125. package/src/tui/__tests__/session-naming.test.ts +0 -64
  126. package/src/tui/__tests__/session-switch-channel.test.tsx +0 -307
  127. package/src/tui/__tests__/slash-routing-effects.test.ts +0 -228
  128. package/src/tui/__tests__/status-activity.test.ts +0 -71
  129. package/src/tui/__tests__/status-bar.test.tsx +0 -177
  130. package/src/tui/__tests__/streaming-indicator.test.tsx +0 -137
  131. package/src/tui/__tests__/text-prompt-flow.test.ts +0 -77
  132. package/src/tui/__tests__/tui-channel-init-failure.test.ts +0 -57
  133. package/src/tui/__tests__/tui-state-manager.test.ts +0 -401
  134. package/src/tui/background-task-row-format.ts +0 -53
  135. package/src/tui/command-interaction.ts +0 -9
  136. package/src/tui/command-output-summary.ts +0 -122
  137. package/src/tui/create-default-tui-cli-adapter.ts +0 -41
  138. package/src/tui/execution-workspace-view-model.ts +0 -123
  139. package/src/tui/flows/cjk-text-input-flow.ts +0 -285
  140. package/src/tui/flows/confirm-prompt-flow.ts +0 -45
  141. package/src/tui/flows/input-area-flow.ts +0 -189
  142. package/src/tui/flows/permission-prompt-flow.ts +0 -85
  143. package/src/tui/flows/selection-flow.ts +0 -126
  144. package/src/tui/flows/session-init-poller.ts +0 -77
  145. package/src/tui/flows/text-prompt-flow.ts +0 -98
  146. package/src/tui/hooks/command-effect-handler.ts +0 -97
  147. package/src/tui/hooks/command-effect-queue.ts +0 -39
  148. package/src/tui/hooks/side-effects-types.ts +0 -35
  149. package/src/tui/hooks/useAutocomplete.ts +0 -87
  150. package/src/tui/hooks/usePluginCallbacks.ts +0 -31
  151. package/src/tui/hooks/usePluginScreenData.ts +0 -85
  152. package/src/tui/hooks/useSideEffects.ts +0 -175
  153. package/src/tui/hooks/useSlashRouting.ts +0 -118
  154. package/src/tui/hooks/useStatusLineSettings.ts +0 -37
  155. package/src/tui/hooks/useTuiChannel.ts +0 -95
  156. package/src/tui/index.ts +0 -14
  157. package/src/tui/interactions/CommandConfirm.tsx +0 -36
  158. package/src/tui/interactions/CommandPicker.tsx +0 -77
  159. package/src/tui/interactions/__tests__/CommandConfirm.test.tsx +0 -124
  160. package/src/tui/interactions/__tests__/CommandPicker.test.tsx +0 -138
  161. package/src/tui/plugin-tui-handlers.ts +0 -163
  162. package/src/tui/render-markdown.ts +0 -130
  163. package/src/tui/render.tsx +0 -129
  164. package/src/tui/session-naming.ts +0 -33
  165. package/src/tui/status-activity.ts +0 -63
  166. package/src/tui/tui-cli-adapter-context.tsx +0 -13
  167. package/src/tui/tui-cli-adapter.ts +0 -25
  168. package/src/tui/tui-state-manager.ts +0 -226
  169. package/src/tui/tui-transport.ts +0 -35
  170. package/src/tui/types.ts +0 -15
  171. package/src/tui/utils/__tests__/edit-diff.test.ts +0 -426
  172. package/src/tui/utils/__tests__/paste-detection.test.ts +0 -116
  173. package/src/tui/utils/__tests__/paste-labels.test.ts +0 -46
  174. package/src/tui/utils/__tests__/tool-call-extractor.test.ts +0 -227
  175. package/src/tui/utils/__tests__/tool-diff-summary.test.ts +0 -104
  176. package/src/tui/utils/edit-diff.ts +0 -153
  177. package/src/tui/utils/paste-labels.ts +0 -9
  178. package/src/tui/utils/tool-call-extractor.ts +0 -92
  179. package/src/tui/utils/tool-diff-summary.ts +0 -75
  180. package/src/ws/__tests__/ws-handler.test.ts +0 -409
  181. package/src/ws/__tests__/ws-transport.test.ts +0 -53
  182. package/src/ws/index.ts +0 -13
  183. package/src/ws/ws-background-messages.ts +0 -170
  184. package/src/ws/ws-handler.ts +0 -280
  185. package/src/ws/ws-protocol.ts +0 -78
  186. package/src/ws/ws-transport-configurable.ts +0 -128
  187. package/src/ws/ws-transport.ts +0 -42
@@ -1,213 +0,0 @@
1
- import { IBackgroundTaskInput, IBackgroundTaskListFilter, IBackgroundTaskLogCursor, IBackgroundTaskLogPage, IBackgroundTaskState, IExecutionWorkspaceEntry, IExecutionWorkspaceSnapshot as IExecutionWorkspaceSnapshot$1, InteractiveSession, TBackgroundTaskEvent, TExecutionAttention, TExecutionWorkspaceStatus } from "@robota-sdk/agent-framework";
2
- import { TUniversalValue } from "@robota-sdk/agent-core";
3
- import { IBackgroundJobGroupState, ICommandResult, IConfigurableTransport, IExecutionResult, IExecutionWorkspaceSnapshot, IInteractiveSession, IToolState, ITransportAdapter, TBackgroundJobGroupEvent } from "@robota-sdk/agent-interface-transport";
4
-
5
- //#region src/ws/ws-protocol.d.ts
6
- type TBackgroundControlAction = 'cancel' | 'close' | 'send';
7
- /** Inbound message from client to server. */
8
- type TClientMessage = {
9
- type: 'submit';
10
- prompt: string;
11
- } | {
12
- type: 'command';
13
- name: string;
14
- args?: string;
15
- } | {
16
- type: 'abort';
17
- } | {
18
- type: 'cancel-queue';
19
- } | {
20
- type: 'get-messages';
21
- } | {
22
- type: 'get-context';
23
- } | {
24
- type: 'get-executing';
25
- } | {
26
- type: 'get-pending';
27
- } | {
28
- type: 'get-execution-workspace';
29
- } | {
30
- type: 'get-background-tasks';
31
- filter?: IBackgroundTaskListFilter;
32
- } | {
33
- type: 'get-background-task';
34
- taskId: string;
35
- } | {
36
- type: 'get-background-job-groups';
37
- } | {
38
- type: 'get-background-job-group';
39
- groupId: string;
40
- } | {
41
- type: 'wait-background-job-group';
42
- groupId: string;
43
- } | {
44
- type: 'cancel-background-task';
45
- taskId: string;
46
- reason?: string;
47
- } | {
48
- type: 'close-background-task';
49
- taskId: string;
50
- } | {
51
- type: 'send-background-task';
52
- taskId: string;
53
- input: IBackgroundTaskInput;
54
- } | {
55
- type: 'read-background-task-log';
56
- taskId: string;
57
- cursor?: IBackgroundTaskLogCursor;
58
- };
59
- /** Outbound message from server to client. */
60
- type TServerMessage = {
61
- type: 'text_delta';
62
- delta: string;
63
- } | {
64
- type: 'user_message';
65
- content: string;
66
- } | {
67
- type: 'tool_start';
68
- state: IToolState;
69
- } | {
70
- type: 'tool_end';
71
- state: IToolState;
72
- } | {
73
- type: 'thinking';
74
- isThinking: boolean;
75
- } | {
76
- type: 'complete';
77
- result: IExecutionResult;
78
- } | {
79
- type: 'interrupted';
80
- result: IExecutionResult;
81
- } | {
82
- type: 'error';
83
- message: string;
84
- } | {
85
- type: 'command_result';
86
- name: string;
87
- message: string;
88
- success: boolean;
89
- data?: ICommandResult['data'];
90
- } | {
91
- type: 'messages';
92
- messages: ReturnType<InteractiveSession['getMessages']>;
93
- } | {
94
- type: 'context';
95
- state: ReturnType<InteractiveSession['getContextState']>;
96
- } | {
97
- type: 'executing';
98
- executing: boolean;
99
- } | {
100
- type: 'pending';
101
- pending: string | null;
102
- } | {
103
- type: 'execution_workspace_event';
104
- snapshot: IExecutionWorkspaceSnapshot;
105
- } | {
106
- type: 'background_task_event';
107
- event: TBackgroundTaskEvent;
108
- } | {
109
- type: 'background_job_group_event';
110
- event: TBackgroundJobGroupEvent;
111
- } | {
112
- type: 'background_tasks';
113
- tasks: IBackgroundTaskState[];
114
- } | {
115
- type: 'background_task';
116
- taskId: string;
117
- task: IBackgroundTaskState | null;
118
- } | {
119
- type: 'background_job_groups';
120
- groups: IBackgroundJobGroupState[];
121
- } | {
122
- type: 'background_job_group';
123
- groupId: string;
124
- group: IBackgroundJobGroupState | null;
125
- } | {
126
- type: 'background_task_log';
127
- taskId: string;
128
- page: IBackgroundTaskLogPage;
129
- } | {
130
- type: 'background_task_control_result';
131
- action: TBackgroundControlAction;
132
- taskId: string;
133
- success: boolean;
134
- message?: string;
135
- } | {
136
- type: 'protocol_error';
137
- message: string;
138
- };
139
- //#endregion
140
- //#region src/ws/ws-handler.d.ts
141
- interface IWsHandlerOptions {
142
- /** IInteractiveSession to expose. */
143
- session: IInteractiveSession;
144
- /** Send a JSON message to the client. */
145
- send: (message: TServerMessage) => void;
146
- }
147
- /**
148
- * Create a WebSocket message handler for an IInteractiveSession.
149
- *
150
- * Returns:
151
- * - `onMessage(data)`: call this when the WebSocket receives a message
152
- * - `cleanup()`: call this when the WebSocket disconnects
153
- *
154
- * Usage:
155
- * ```typescript
156
- * const { onMessage, cleanup } = createWsHandler({
157
- * session: interactiveSession,
158
- * send: (msg) => ws.send(JSON.stringify(msg)),
159
- * });
160
- *
161
- * ws.on('message', (data) => onMessage(String(data)));
162
- * ws.on('close', cleanup);
163
- * ```
164
- */
165
- declare function createWsHandler(options: IWsHandlerOptions): {
166
- onMessage: (data: string) => void;
167
- cleanup: () => void;
168
- };
169
- //#endregion
170
- //#region src/ws/ws-transport.d.ts
171
- interface IWsTransportOptions {
172
- /** Send a JSON message to the connected WebSocket client. */
173
- send: (message: TServerMessage) => void;
174
- }
175
- declare function createWsTransport(options: IWsTransportOptions): ITransportAdapter<IInteractiveSession> & {
176
- onMessage: ((data: string) => void) | null;
177
- };
178
- //#endregion
179
- //#region src/ws/ws-transport-configurable.d.ts
180
- interface IWsTransportConfig {
181
- port?: number;
182
- maxRetries?: number;
183
- }
184
- declare class WsTransport implements IConfigurableTransport<IInteractiveSession> {
185
- readonly name = "ws";
186
- readonly defaultEnabled = true;
187
- readonly optionsSchema: {
188
- port: {
189
- type: string;
190
- description: string;
191
- default: number;
192
- };
193
- maxRetries: {
194
- type: string;
195
- description: string;
196
- default: number;
197
- };
198
- };
199
- private session;
200
- private stopFn;
201
- private readonly port;
202
- private readonly maxRetries;
203
- constructor(config?: IWsTransportConfig);
204
- attach(session: IInteractiveSession): void;
205
- start(): Promise<void>;
206
- stop(): Promise<void>;
207
- validateOptions(options: Record<string, TUniversalValue>): boolean;
208
- private bindWithRetry;
209
- private tryBind;
210
- }
211
- //#endregion
212
- export { IWsTransportConfig as a, createWsTransport as c, TClientMessage as d, TServerMessage as f, TExecutionWorkspaceStatus as i, IWsHandlerOptions as l, IExecutionWorkspaceSnapshot$1 as n, WsTransport as o, TExecutionAttention as r, IWsTransportOptions as s, IExecutionWorkspaceEntry as t, createWsHandler as u };
213
- //# sourceMappingURL=index-BrQ4gGw0.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BrQ4gGw0.d.ts","names":[],"sources":["../../src/ws/ws-protocol.ts","../../src/ws/ws-handler.ts","../../src/ws/ws-transport.ts","../../src/ws/ws-transport-configurable.ts"],"mappings":"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"}
@@ -1,213 +0,0 @@
1
- import { TUniversalValue } from "@robota-sdk/agent-core";
2
- import { IBackgroundJobGroupState, ICommandResult, IConfigurableTransport, IExecutionResult, IExecutionWorkspaceSnapshot, IInteractiveSession, IToolState, ITransportAdapter, TBackgroundJobGroupEvent } from "@robota-sdk/agent-interface-transport";
3
- import { IBackgroundTaskInput, IBackgroundTaskListFilter, IBackgroundTaskLogCursor, IBackgroundTaskLogPage, IBackgroundTaskState, IExecutionWorkspaceEntry, IExecutionWorkspaceSnapshot as IExecutionWorkspaceSnapshot$1, InteractiveSession, TBackgroundTaskEvent, TExecutionAttention, TExecutionWorkspaceStatus } from "@robota-sdk/agent-framework";
4
-
5
- //#region src/ws/ws-protocol.d.ts
6
- type TBackgroundControlAction = 'cancel' | 'close' | 'send';
7
- /** Inbound message from client to server. */
8
- type TClientMessage = {
9
- type: 'submit';
10
- prompt: string;
11
- } | {
12
- type: 'command';
13
- name: string;
14
- args?: string;
15
- } | {
16
- type: 'abort';
17
- } | {
18
- type: 'cancel-queue';
19
- } | {
20
- type: 'get-messages';
21
- } | {
22
- type: 'get-context';
23
- } | {
24
- type: 'get-executing';
25
- } | {
26
- type: 'get-pending';
27
- } | {
28
- type: 'get-execution-workspace';
29
- } | {
30
- type: 'get-background-tasks';
31
- filter?: IBackgroundTaskListFilter;
32
- } | {
33
- type: 'get-background-task';
34
- taskId: string;
35
- } | {
36
- type: 'get-background-job-groups';
37
- } | {
38
- type: 'get-background-job-group';
39
- groupId: string;
40
- } | {
41
- type: 'wait-background-job-group';
42
- groupId: string;
43
- } | {
44
- type: 'cancel-background-task';
45
- taskId: string;
46
- reason?: string;
47
- } | {
48
- type: 'close-background-task';
49
- taskId: string;
50
- } | {
51
- type: 'send-background-task';
52
- taskId: string;
53
- input: IBackgroundTaskInput;
54
- } | {
55
- type: 'read-background-task-log';
56
- taskId: string;
57
- cursor?: IBackgroundTaskLogCursor;
58
- };
59
- /** Outbound message from server to client. */
60
- type TServerMessage = {
61
- type: 'text_delta';
62
- delta: string;
63
- } | {
64
- type: 'user_message';
65
- content: string;
66
- } | {
67
- type: 'tool_start';
68
- state: IToolState;
69
- } | {
70
- type: 'tool_end';
71
- state: IToolState;
72
- } | {
73
- type: 'thinking';
74
- isThinking: boolean;
75
- } | {
76
- type: 'complete';
77
- result: IExecutionResult;
78
- } | {
79
- type: 'interrupted';
80
- result: IExecutionResult;
81
- } | {
82
- type: 'error';
83
- message: string;
84
- } | {
85
- type: 'command_result';
86
- name: string;
87
- message: string;
88
- success: boolean;
89
- data?: ICommandResult['data'];
90
- } | {
91
- type: 'messages';
92
- messages: ReturnType<InteractiveSession['getMessages']>;
93
- } | {
94
- type: 'context';
95
- state: ReturnType<InteractiveSession['getContextState']>;
96
- } | {
97
- type: 'executing';
98
- executing: boolean;
99
- } | {
100
- type: 'pending';
101
- pending: string | null;
102
- } | {
103
- type: 'execution_workspace_event';
104
- snapshot: IExecutionWorkspaceSnapshot;
105
- } | {
106
- type: 'background_task_event';
107
- event: TBackgroundTaskEvent;
108
- } | {
109
- type: 'background_job_group_event';
110
- event: TBackgroundJobGroupEvent;
111
- } | {
112
- type: 'background_tasks';
113
- tasks: IBackgroundTaskState[];
114
- } | {
115
- type: 'background_task';
116
- taskId: string;
117
- task: IBackgroundTaskState | null;
118
- } | {
119
- type: 'background_job_groups';
120
- groups: IBackgroundJobGroupState[];
121
- } | {
122
- type: 'background_job_group';
123
- groupId: string;
124
- group: IBackgroundJobGroupState | null;
125
- } | {
126
- type: 'background_task_log';
127
- taskId: string;
128
- page: IBackgroundTaskLogPage;
129
- } | {
130
- type: 'background_task_control_result';
131
- action: TBackgroundControlAction;
132
- taskId: string;
133
- success: boolean;
134
- message?: string;
135
- } | {
136
- type: 'protocol_error';
137
- message: string;
138
- };
139
- //#endregion
140
- //#region src/ws/ws-handler.d.ts
141
- interface IWsHandlerOptions {
142
- /** IInteractiveSession to expose. */
143
- session: IInteractiveSession;
144
- /** Send a JSON message to the client. */
145
- send: (message: TServerMessage) => void;
146
- }
147
- /**
148
- * Create a WebSocket message handler for an IInteractiveSession.
149
- *
150
- * Returns:
151
- * - `onMessage(data)`: call this when the WebSocket receives a message
152
- * - `cleanup()`: call this when the WebSocket disconnects
153
- *
154
- * Usage:
155
- * ```typescript
156
- * const { onMessage, cleanup } = createWsHandler({
157
- * session: interactiveSession,
158
- * send: (msg) => ws.send(JSON.stringify(msg)),
159
- * });
160
- *
161
- * ws.on('message', (data) => onMessage(String(data)));
162
- * ws.on('close', cleanup);
163
- * ```
164
- */
165
- declare function createWsHandler(options: IWsHandlerOptions): {
166
- onMessage: (data: string) => void;
167
- cleanup: () => void;
168
- };
169
- //#endregion
170
- //#region src/ws/ws-transport.d.ts
171
- interface IWsTransportOptions {
172
- /** Send a JSON message to the connected WebSocket client. */
173
- send: (message: TServerMessage) => void;
174
- }
175
- declare function createWsTransport(options: IWsTransportOptions): ITransportAdapter<IInteractiveSession> & {
176
- onMessage: ((data: string) => void) | null;
177
- };
178
- //#endregion
179
- //#region src/ws/ws-transport-configurable.d.ts
180
- interface IWsTransportConfig {
181
- port?: number;
182
- maxRetries?: number;
183
- }
184
- declare class WsTransport implements IConfigurableTransport<IInteractiveSession> {
185
- readonly name = "ws";
186
- readonly defaultEnabled = true;
187
- readonly optionsSchema: {
188
- port: {
189
- type: string;
190
- description: string;
191
- default: number;
192
- };
193
- maxRetries: {
194
- type: string;
195
- description: string;
196
- default: number;
197
- };
198
- };
199
- private session;
200
- private stopFn;
201
- private readonly port;
202
- private readonly maxRetries;
203
- constructor(config?: IWsTransportConfig);
204
- attach(session: IInteractiveSession): void;
205
- start(): Promise<void>;
206
- stop(): Promise<void>;
207
- validateOptions(options: Record<string, TUniversalValue>): boolean;
208
- private bindWithRetry;
209
- private tryBind;
210
- }
211
- //#endregion
212
- export { IWsTransportConfig as a, createWsTransport as c, TClientMessage as d, TServerMessage as f, TExecutionWorkspaceStatus as i, IWsHandlerOptions as l, IExecutionWorkspaceSnapshot$1 as n, WsTransport as o, TExecutionAttention as r, IWsTransportOptions as s, IExecutionWorkspaceEntry as t, createWsHandler as u };
213
- //# sourceMappingURL=index-CoeBF21y.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CoeBF21y.d.ts","names":[],"sources":["../../src/ws/ws-protocol.ts","../../src/ws/ws-handler.ts","../../src/ws/ws-transport.ts","../../src/ws/ws-transport-configurable.ts"],"mappings":";;;;;KAkBY,wBAAA;;KAGA,cAAA;EACN,IAAA;EAAgB,MAAA;AAAA;EAChB,IAAA;EAAiB,IAAA;EAAc,IAAA;AAAA;EAC/B,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;AAAA;EACA,IAAA;EAA8B,MAAA,GAAS,yBAAA;AAAA;EACvC,IAAA;EAA6B,MAAA;AAAA;EAC7B,IAAA;AAAA;EACA,IAAA;EAAkC,OAAA;AAAA;EAClC,IAAA;EAAmC,OAAA;AAAA;EACnC,IAAA;EAAgC,MAAA;EAAgB,MAAA;AAAA;EAChD,IAAA;EAA+B,MAAA;AAAA;EAC/B,IAAA;EAA8B,MAAA;EAAgB,KAAA,EAAO,oBAAA;AAAA;EACrD,IAAA;EAAkC,MAAA;EAAgB,MAAA,GAAS,wBAAA;AAAA;AAGjE;AAAA,KAAY,cAAA;EACN,IAAA;EAAoB,KAAA;AAAA;EACpB,IAAA;EAAsB,OAAA;AAAA;EACtB,IAAA;EAAoB,KAAA,EAAO,UAAA;AAAA;EAC3B,IAAA;EAAkB,KAAA,EAAO,UAAA;AAAA;EACzB,IAAA;EAAkB,UAAA;AAAA;EAClB,IAAA;EAAkB,MAAA,EAAQ,gBAAA;AAAA;EAC1B,IAAA;EAAqB,MAAA,EAAQ,gBAAA;AAAA;EAC7B,IAAA;EAAe,OAAA;AAAA;EAEf,IAAA;EACA,IAAA;EACA,OAAA;EACA,OAAA;EACA,IAAA,GAAO,cAAA;AAAA;EAEP,IAAA;EAAkB,QAAA,EAAU,UAAA,CAAW,kBAAA;AAAA;EACvC,IAAA;EAAiB,KAAA,EAAO,UAAA,CAAW,kBAAA;AAAA;EACnC,IAAA;EAAmB,SAAA;AAAA;EACnB,IAAA;EAAiB,OAAA;AAAA;EACjB,IAAA;EAAmC,QAAA,EAAU,2BAAA;AAAA;EAC7C,IAAA;EAA+B,KAAA,EAAO,oBAAA;AAAA;EACtC,IAAA;EAAoC,KAAA,EAAO,wBAAA;AAAA;EAC3C,IAAA;EAA0B,KAAA,EAAO,oBAAA;AAAA;EACjC,IAAA;EAAyB,MAAA;EAAgB,IAAA,EAAM,oBAAA;AAAA;EAC/C,IAAA;EAA+B,MAAA,EAAQ,wBAAA;AAAA;EACvC,IAAA;EAA8B,OAAA;EAAiB,KAAA,EAAO,wBAAA;AAAA;EACtD,IAAA;EAA6B,MAAA;EAAgB,IAAA,EAAM,sBAAA;AAAA;EAEnD,IAAA;EACA,MAAA,EAAQ,wBAAA;EACR,MAAA;EACA,OAAA;EACA,OAAA;AAAA;EAEA,IAAA;EAAwB,OAAA;AAAA;;;UCpDb,iBAAA;;EAEf,OAAA,EAAS,mBAAA;EDWgD;ECTzD,IAAA,GAAO,OAAA,EAAS,cAAc;AAAA;;;;;;;;;;;;;;;;;;;iBAqBhB,eAAA,CAAgB,OAAA,EAAS,iBAAiB;EACxD,SAAA,GAAY,IAAA;EACZ,OAAA;AAAA;;;UCxCe,mBAAA;EFMmB;EEJlC,IAAA,GAAO,OAAA,EAAS,cAAc;AAAA;AAAA,iBAGhB,iBAAA,CACd,OAAA,EAAS,mBAAA,GACR,iBAAA,CAAkB,mBAAA;EAAyB,SAAA,IAAa,IAAA;AAAA;;;UCE1C,kBAAA;EACf,IAAA;EACA,UAAU;AAAA;AAAA,cAGC,WAAA,YAAuB,sBAAA,CAAuB,mBAAA;EAAA,SAChD,IAAA;EAAA,SACA,cAAA;EAAA,SACA,aAAA;;;;;;;;;;;;UASD,OAAA;EAAA,QACA,MAAA;EAAA,iBACS,IAAA;EAAA,iBACA,UAAA;cAEL,MAAA,GAAQ,kBAAA;EAKpB,MAAA,CAAO,OAAA,EAAS,mBAAA;EAIV,KAAA,IAAS,OAAA;EAMT,IAAA,IAAQ,OAAA;EAKd,eAAA,CAAgB,OAAA,EAAS,MAAA,SAAe,eAAA;EAAA,QAQhC,aAAA;EAAA,QAYA,OAAA;AAAA"}
@@ -1,46 +0,0 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- import { IInteractiveSession, ITransportAdapter } from "@robota-sdk/agent-interface-transport";
3
-
4
- //#region src/mcp/mcp-server.d.ts
5
- interface IAgentMcpOptions {
6
- /** Name for the MCP server. */
7
- name: string;
8
- /** Version string. */
9
- version: string;
10
- /** IInteractiveSession to expose. */
11
- session: IInteractiveSession;
12
- /** If true, register each system command as a separate MCP tool. Default: true. */
13
- exposeCommands?: boolean;
14
- }
15
- /**
16
- * Create an MCP server that exposes IInteractiveSession over Model Context Protocol.
17
- *
18
- * Usage:
19
- * ```typescript
20
- * const server = createAgentMcpServer({
21
- * name: 'robota-agent',
22
- * version: '1.0.0',
23
- * session: interactiveSession,
24
- * });
25
- *
26
- * import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
27
- * await server.connect(new StdioServerTransport());
28
- * ```
29
- */
30
- declare function createAgentMcpServer(options: IAgentMcpOptions): Server;
31
- //#endregion
32
- //#region src/mcp/mcp-transport.d.ts
33
- interface IMcpTransportOptions {
34
- /** Name for the MCP server. */
35
- name: string;
36
- /** Version string. */
37
- version: string;
38
- /** If true, register each system command as a separate MCP tool. Default: true. */
39
- exposeCommands?: boolean;
40
- }
41
- declare function createMcpTransport(options: IMcpTransportOptions): ITransportAdapter<IInteractiveSession> & {
42
- getServer(): Server;
43
- };
44
- //#endregion
45
- export { createAgentMcpServer as i, createMcpTransport as n, IAgentMcpOptions as r, IMcpTransportOptions as t };
46
- //# sourceMappingURL=index-DHt-2VQ-.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DHt-2VQ-.d.ts","names":[],"sources":["../../src/mcp/mcp-server.ts","../../src/mcp/mcp-transport.ts"],"mappings":";;;;UAaiB,gBAAA;EAMf;EAJA,IAAA;EAMA;EAJA,OAAA;EAIc;EAFd,OAAA,EAAS,mBAAmB;EAoBM;EAlBlC,cAAA;AAAA;;;;;AAkBqE;;;;AC3BvE;;;;;;;iBD2BgB,oBAAA,CAAqB,OAAA,EAAS,gBAAA,GAAmB,MAAM;;;UC3BtD,oBAAA;EDKf;ECHA,IAAA;EDKS;ECHT,OAAA;EDKc;ECHd,cAAA;AAAA;AAAA,iBAGc,kBAAA,CACd,OAAA,EAAS,oBAAA,GACR,iBAAA,CAAkB,mBAAA;EAAyB,SAAA,IAAa,MAAA;AAAA"}
@@ -1,33 +0,0 @@
1
- import { Context, Hono } from "hono";
2
- import { IInteractiveSession, ITransportAdapter } from "@robota-sdk/agent-interface-transport";
3
-
4
- //#region src/http/routes.d.ts
5
- /** Callback that resolves an IInteractiveSession from the request context. */
6
- type TSessionFactory = (c: Context) => IInteractiveSession | Promise<IInteractiveSession>;
7
- interface IAgentRoutesOptions {
8
- /** Resolve an IInteractiveSession per request (e.g., by auth token, session ID). */
9
- sessionFactory: TSessionFactory;
10
- }
11
- /**
12
- * Create a Hono router with all agent HTTP endpoints.
13
- *
14
- * Usage:
15
- * ```typescript
16
- * const routes = createAgentRoutes({ sessionFactory });
17
- * app.route('/agent', routes); // mount on existing app
18
- * export default routes; // or use standalone (CF Workers)
19
- * ```
20
- */
21
- declare function createAgentRoutes(options: IAgentRoutesOptions): Hono;
22
- //#endregion
23
- //#region src/http/http-transport.d.ts
24
- interface IHttpTransportOptions {
25
- /** Optional: base path prefix for routes. */
26
- basePath?: string;
27
- }
28
- declare function createHttpTransport(options?: IHttpTransportOptions): ITransportAdapter<IInteractiveSession> & {
29
- getApp(): Hono;
30
- };
31
- //#endregion
32
- export { createAgentRoutes as a, TSessionFactory as i, createHttpTransport as n, IAgentRoutesOptions as r, IHttpTransportOptions as t };
33
- //# sourceMappingURL=index-DMwKN5Le.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DMwKN5Le.d.ts","names":[],"sources":["../../src/http/routes.ts","../../src/http/http-transport.ts"],"mappings":";;;;;KAcY,eAAA,IAAmB,CAAA,EAAG,OAAA,KAAY,mBAAA,GAAsB,OAAA,CAAQ,mBAAA;AAAA,UAE3D,mBAAA;EAF0D;EAIzE,cAAA,EAAgB,eAAe;AAAA;;;;;AAJ8D;AAE/F;;;;AAEiC;iBAajB,iBAAA,CAAkB,OAAA,EAAS,mBAAA,GAAsB,IAAI;;;UCnBpD,qBAAA;EDE2D;ECA1E,QAAQ;AAAA;AAAA,iBAGM,mBAAA,CACd,OAAA,GAAU,qBAAA,GACT,iBAAA,CAAkB,mBAAA;EAAyB,MAAA,IAAU,IAAA;AAAA"}
@@ -1,46 +0,0 @@
1
- import { IInteractiveSession, ITransportAdapter } from "@robota-sdk/agent-interface-transport";
2
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
-
4
- //#region src/mcp/mcp-server.d.ts
5
- interface IAgentMcpOptions {
6
- /** Name for the MCP server. */
7
- name: string;
8
- /** Version string. */
9
- version: string;
10
- /** IInteractiveSession to expose. */
11
- session: IInteractiveSession;
12
- /** If true, register each system command as a separate MCP tool. Default: true. */
13
- exposeCommands?: boolean;
14
- }
15
- /**
16
- * Create an MCP server that exposes IInteractiveSession over Model Context Protocol.
17
- *
18
- * Usage:
19
- * ```typescript
20
- * const server = createAgentMcpServer({
21
- * name: 'robota-agent',
22
- * version: '1.0.0',
23
- * session: interactiveSession,
24
- * });
25
- *
26
- * import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
27
- * await server.connect(new StdioServerTransport());
28
- * ```
29
- */
30
- declare function createAgentMcpServer(options: IAgentMcpOptions): Server;
31
- //#endregion
32
- //#region src/mcp/mcp-transport.d.ts
33
- interface IMcpTransportOptions {
34
- /** Name for the MCP server. */
35
- name: string;
36
- /** Version string. */
37
- version: string;
38
- /** If true, register each system command as a separate MCP tool. Default: true. */
39
- exposeCommands?: boolean;
40
- }
41
- declare function createMcpTransport(options: IMcpTransportOptions): ITransportAdapter<IInteractiveSession> & {
42
- getServer(): Server;
43
- };
44
- //#endregion
45
- export { createAgentMcpServer as i, createMcpTransport as n, IAgentMcpOptions as r, IMcpTransportOptions as t };
46
- //# sourceMappingURL=index-c0M42fsA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-c0M42fsA.d.ts","names":[],"sources":["../../src/mcp/mcp-server.ts","../../src/mcp/mcp-transport.ts"],"mappings":";;;;UAaiB,gBAAA;EAMf;EAJA,IAAA;EAMA;EAJA,OAAA;EAIc;EAFd,OAAA,EAAS,mBAAmB;EAoBM;EAlBlC,cAAA;AAAA;;;;;AAkBqE;;;;AC3BvE;;;;;;;iBD2BgB,oBAAA,CAAqB,OAAA,EAAS,gBAAA,GAAmB,MAAM;;;UC3BtD,oBAAA;EDKf;ECHA,IAAA;EDKS;ECHT,OAAA;EDKc;ECHd,cAAA;AAAA;AAAA,iBAGc,kBAAA,CACd,OAAA,EAAS,oBAAA,GACR,iBAAA,CAAkB,mBAAA;EAAyB,SAAA,IAAa,MAAA;AAAA"}
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../mcp-BOglBJNy.cjs");exports.createAgentMcpServer=e.n,exports.createMcpTransport=e.t;
@@ -1,2 +0,0 @@
1
- import { i as createAgentMcpServer, n as createMcpTransport, r as IAgentMcpOptions, t as IMcpTransportOptions } from "../index-c0M42fsA.js";
2
- export { type IAgentMcpOptions, type IMcpTransportOptions, createAgentMcpServer, createMcpTransport };
@@ -1 +0,0 @@
1
- import{n as e,t}from"../mcp-D3BBVK7C.js";export{e as createAgentMcpServer,t as createMcpTransport};
@@ -1 +0,0 @@
1
- let e=require("@modelcontextprotocol/sdk/server/index.js"),t=require("@modelcontextprotocol/sdk/types.js");function n(n){let{name:i,version:a,session:o,exposeCommands:s=!0}=n,c=new e.Server({name:i,version:a},{capabilities:{tools:{}}}),l=[{name:`submit`,description:`Submit a prompt to the AI agent and wait for the response`,inputSchema:{type:`object`,properties:{prompt:{type:`string`,description:`The prompt to send to the agent`}},required:[`prompt`]}}];if(s)for(let e of o.listCommands())l.push({name:`command_${e.name}`,description:e.description,inputSchema:{type:`object`,properties:{args:{type:`string`,description:`Command arguments`}}}});return c.setRequestHandler(t.ListToolsRequestSchema,async()=>({tools:l})),c.setRequestHandler(t.CallToolRequestSchema,async e=>{let{name:t,arguments:n}=e.params;if(t===`submit`){let e=n?.prompt;return e?{content:[{type:`text`,text:(await r(o,e)).response}]}:{content:[{type:`text`,text:`Error: prompt is required`}],isError:!0}}if(t.startsWith(`command_`)){let e=t.slice(8),r=n?.args??``,i=await o.executeCommand(e,r);return{content:[{type:`text`,text:i?.message??`Unknown command: ${e}`}],isError:!i}}return{content:[{type:`text`,text:`Unknown tool: ${t}`}],isError:!0}}),c}function r(e,t){return new Promise((n,r)=>{let i=e=>{s(),n(e)},a=e=>{s(),n(e)},o=e=>{s(),r(e)},s=()=>{e.off(`complete`,i),e.off(`interrupted`,a),e.off(`error`,o)};e.on(`complete`,i),e.on(`interrupted`,a),e.on(`error`,o),e.submit(t).catch(e=>{s(),r(e instanceof Error?e:Error(String(e)))})})}function i(e){let t=null,r=null;return{name:`mcp`,attach(e){t=e},async start(){if(!t)throw Error(`No session attached. Call attach() first.`);r=n({...e,session:t})},async stop(){r&&=(await r.close(),null)},getServer(){if(!r)throw Error(`Transport not started. Call start() first.`);return r}}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -1,2 +0,0 @@
1
- import{Server as e}from"@modelcontextprotocol/sdk/server/index.js";import{CallToolRequestSchema as t,ListToolsRequestSchema as n}from"@modelcontextprotocol/sdk/types.js";function r(r){let{name:a,version:o,session:s,exposeCommands:c=!0}=r,l=new e({name:a,version:o},{capabilities:{tools:{}}}),u=[{name:`submit`,description:`Submit a prompt to the AI agent and wait for the response`,inputSchema:{type:`object`,properties:{prompt:{type:`string`,description:`The prompt to send to the agent`}},required:[`prompt`]}}];if(c)for(let e of s.listCommands())u.push({name:`command_${e.name}`,description:e.description,inputSchema:{type:`object`,properties:{args:{type:`string`,description:`Command arguments`}}}});return l.setRequestHandler(n,async()=>({tools:u})),l.setRequestHandler(t,async e=>{let{name:t,arguments:n}=e.params;if(t===`submit`){let e=n?.prompt;return e?{content:[{type:`text`,text:(await i(s,e)).response}]}:{content:[{type:`text`,text:`Error: prompt is required`}],isError:!0}}if(t.startsWith(`command_`)){let e=t.slice(8),r=n?.args??``,i=await s.executeCommand(e,r);return{content:[{type:`text`,text:i?.message??`Unknown command: ${e}`}],isError:!i}}return{content:[{type:`text`,text:`Unknown tool: ${t}`}],isError:!0}}),l}function i(e,t){return new Promise((n,r)=>{let i=e=>{s(),n(e)},a=e=>{s(),n(e)},o=e=>{s(),r(e)},s=()=>{e.off(`complete`,i),e.off(`interrupted`,a),e.off(`error`,o)};e.on(`complete`,i),e.on(`interrupted`,a),e.on(`error`,o),e.submit(t).catch(e=>{s(),r(e instanceof Error?e:Error(String(e)))})})}function a(e){let t=null,n=null;return{name:`mcp`,attach(e){t=e},async start(){if(!t)throw Error(`No session attached. Call attach() first.`);n=r({...e,session:t})},async stop(){n&&=(await n.close(),null)},getServer(){if(!n)throw Error(`Transport not started. Call start() first.`);return n}}}export{r as n,a as t};
2
- //# sourceMappingURL=mcp-D3BBVK7C.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-D3BBVK7C.js","names":[],"sources":["../../src/mcp/mcp-server.ts","../../src/mcp/mcp-transport.ts"],"sourcesContent":["/**\n * MCP transport adapter — exposes IInteractiveSession as an MCP server.\n *\n * Uses the low-level MCP Server class to avoid TypeScript depth issues\n * with McpServer.registerTool() generics. Registers tools/list and\n * tools/call handlers directly.\n */\n\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';\n\nimport type { IExecutionResult, IInteractiveSession } from '@robota-sdk/agent-interface-transport';\n\nexport interface IAgentMcpOptions {\n /** Name for the MCP server. */\n name: string;\n /** Version string. */\n version: string;\n /** IInteractiveSession to expose. */\n session: IInteractiveSession;\n /** If true, register each system command as a separate MCP tool. Default: true. */\n exposeCommands?: boolean;\n}\n\n/**\n * Create an MCP server that exposes IInteractiveSession over Model Context Protocol.\n *\n * Usage:\n * ```typescript\n * const server = createAgentMcpServer({\n * name: 'robota-agent',\n * version: '1.0.0',\n * session: interactiveSession,\n * });\n *\n * import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\n * await server.connect(new StdioServerTransport());\n * ```\n */\nexport function createAgentMcpServer(options: IAgentMcpOptions): Server {\n const { name, version, session, exposeCommands = true } = options;\n\n const server = new Server({ name, version }, { capabilities: { tools: {} } });\n\n // Build tool definitions\n const tools: Array<{\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n }> = [\n {\n name: 'submit',\n description: 'Submit a prompt to the AI agent and wait for the response',\n inputSchema: {\n type: 'object',\n properties: {\n prompt: { type: 'string', description: 'The prompt to send to the agent' },\n },\n required: ['prompt'],\n },\n },\n ];\n\n if (exposeCommands) {\n for (const cmd of session.listCommands()) {\n tools.push({\n name: `command_${cmd.name}`,\n description: cmd.description,\n inputSchema: {\n type: 'object',\n properties: {\n args: { type: 'string', description: 'Command arguments' },\n },\n },\n });\n }\n }\n\n // tools/list handler\n server.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools,\n }));\n\n // tools/call handler\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name: toolName, arguments: toolArgs } = request.params;\n\n if (toolName === 'submit') {\n const prompt = (toolArgs as Record<string, string>)?.prompt;\n if (!prompt) {\n return {\n content: [{ type: 'text', text: 'Error: prompt is required' }],\n isError: true,\n };\n }\n const result = await waitForCompletion(session, prompt);\n return {\n content: [{ type: 'text', text: result.response }],\n };\n }\n\n // System commands: command_<name>\n if (toolName.startsWith('command_')) {\n const cmdName = toolName.slice('command_'.length);\n const args = (toolArgs as Record<string, string>)?.args ?? '';\n const result = await session.executeCommand(cmdName, args);\n return {\n content: [\n {\n type: 'text',\n text: result?.message ?? `Unknown command: ${cmdName}`,\n },\n ],\n isError: !result,\n };\n }\n\n return {\n content: [{ type: 'text', text: `Unknown tool: ${toolName}` }],\n isError: true,\n };\n });\n\n return server;\n}\n\n/**\n * Submit a prompt and wait for the complete/interrupted/error event.\n */\nfunction waitForCompletion(\n session: IInteractiveSession,\n prompt: string,\n): Promise<IExecutionResult> {\n return new Promise((resolve, reject) => {\n const onComplete = (result: IExecutionResult): void => {\n cleanup();\n resolve(result);\n };\n const onInterrupted = (result: IExecutionResult): void => {\n cleanup();\n resolve(result);\n };\n const onError = (error: Error): void => {\n cleanup();\n reject(error);\n };\n\n const cleanup = (): void => {\n session.off('complete', onComplete);\n session.off('interrupted', onInterrupted);\n session.off('error', onError);\n };\n\n session.on('complete', onComplete);\n session.on('interrupted', onInterrupted);\n session.on('error', onError);\n\n session.submit(prompt).catch((err) => {\n cleanup();\n reject(err instanceof Error ? err : new Error(String(err)));\n });\n });\n}\n","/**\n * ITransportAdapter implementation for MCP transport.\n *\n * Wraps createAgentMcpServer into the unified ITransportAdapter interface\n * while exposing the underlying MCP Server via getServer().\n */\n\nimport { createAgentMcpServer } from './mcp-server.js';\n\nimport type { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport type { IInteractiveSession, ITransportAdapter } from '@robota-sdk/agent-interface-transport';\n\nexport interface IMcpTransportOptions {\n /** Name for the MCP server. */\n name: string;\n /** Version string. */\n version: string;\n /** If true, register each system command as a separate MCP tool. Default: true. */\n exposeCommands?: boolean;\n}\n\nexport function createMcpTransport(\n options: IMcpTransportOptions,\n): ITransportAdapter<IInteractiveSession> & { getServer(): Server } {\n let session: IInteractiveSession | null = null;\n let server: Server | null = null;\n\n return {\n name: 'mcp',\n attach(s: IInteractiveSession) {\n session = s;\n },\n async start() {\n if (!session) throw new Error('No session attached. Call attach() first.');\n server = createAgentMcpServer({ ...options, session });\n },\n async stop() {\n if (server) {\n await server.close();\n server = null;\n }\n },\n getServer() {\n if (!server) throw new Error('Transport not started. Call start() first.');\n return server;\n },\n };\n}\n"],"mappings":"0KAuCA,SAAgB,EAAqB,EAAmC,CACtE,GAAM,CAAE,OAAM,UAAS,UAAS,iBAAiB,IAAS,EAEpD,EAAS,IAAI,EAAO,CAAE,OAAM,SAAQ,EAAG,CAAE,aAAc,CAAE,MAAO,CAAC,CAAE,CAAE,CAAC,EAGtE,EAID,CACH,CACE,KAAM,SACN,YAAa,4DACb,YAAa,CACX,KAAM,SACN,WAAY,CACV,OAAQ,CAAE,KAAM,SAAU,YAAa,iCAAkC,CAC3E,EACA,SAAU,CAAC,QAAQ,CACrB,CACF,CACF,EAEA,GAAI,EACF,IAAK,IAAM,KAAO,EAAQ,aAAa,EACrC,EAAM,KAAK,CACT,KAAM,WAAW,EAAI,OACrB,YAAa,EAAI,YACjB,YAAa,CACX,KAAM,SACN,WAAY,CACV,KAAM,CAAE,KAAM,SAAU,YAAa,mBAAoB,CAC3D,CACF,CACF,CAAC,EAiDL,OA5CA,EAAO,kBAAkB,EAAwB,UAAa,CAC5D,OACF,EAAE,EAGF,EAAO,kBAAkB,EAAuB,KAAO,IAAY,CACjE,GAAM,CAAE,KAAM,EAAU,UAAW,GAAa,EAAQ,OAExD,GAAI,IAAa,SAAU,CACzB,IAAM,EAAU,GAAqC,OAQrD,OAPK,EAOE,CACL,QAAS,CAAC,CAAE,KAAM,OAAQ,MAAM,MAFb,EAAkB,EAAS,CAAM,EAAA,CAEb,QAAS,CAAC,CACnD,EARS,CACL,QAAS,CAAC,CAAE,KAAM,OAAQ,KAAM,2BAA4B,CAAC,EAC7D,QAAS,EACX,CAMJ,CAGA,GAAI,EAAS,WAAW,UAAU,EAAG,CACnC,IAAM,EAAU,EAAS,MAAM,CAAiB,EAC1C,EAAQ,GAAqC,MAAQ,GACrD,EAAS,MAAM,EAAQ,eAAe,EAAS,CAAI,EACzD,MAAO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,GAAQ,SAAW,oBAAoB,GAC/C,CACF,EACA,QAAS,CAAC,CACZ,CACF,CAEA,MAAO,CACL,QAAS,CAAC,CAAE,KAAM,OAAQ,KAAM,iBAAiB,GAAW,CAAC,EAC7D,QAAS,EACX,CACF,CAAC,EAEM,CACT,CAKA,SAAS,EACP,EACA,EAC2B,CAC3B,OAAO,IAAI,SAAS,EAAS,IAAW,CACtC,IAAM,EAAc,GAAmC,CACrD,EAAQ,EACR,EAAQ,CAAM,CAChB,EACM,EAAiB,GAAmC,CACxD,EAAQ,EACR,EAAQ,CAAM,CAChB,EACM,EAAW,GAAuB,CACtC,EAAQ,EACR,EAAO,CAAK,CACd,EAEM,MAAsB,CAC1B,EAAQ,IAAI,WAAY,CAAU,EAClC,EAAQ,IAAI,cAAe,CAAa,EACxC,EAAQ,IAAI,QAAS,CAAO,CAC9B,EAEA,EAAQ,GAAG,WAAY,CAAU,EACjC,EAAQ,GAAG,cAAe,CAAa,EACvC,EAAQ,GAAG,QAAS,CAAO,EAE3B,EAAQ,OAAO,CAAM,CAAC,CAAC,MAAO,GAAQ,CACpC,EAAQ,EACR,EAAO,aAAe,MAAQ,EAAU,MAAM,OAAO,CAAG,CAAC,CAAC,CAC5D,CAAC,CACH,CAAC,CACH,CC7IA,SAAgB,EACd,EACkE,CAClE,IAAI,EAAsC,KACtC,EAAwB,KAE5B,MAAO,CACL,KAAM,MACN,OAAO,EAAwB,CAC7B,EAAU,CACZ,EACA,MAAM,OAAQ,CACZ,GAAI,CAAC,EAAS,MAAU,MAAM,2CAA2C,EACzE,EAAS,EAAqB,CAAE,GAAG,EAAS,SAAQ,CAAC,CACvD,EACA,MAAM,MAAO,CACX,AAEE,KADA,MAAM,EAAO,MAAM,EACV,KAEb,EACA,WAAY,CACV,GAAI,CAAC,EAAQ,MAAU,MAAM,4CAA4C,EACzE,OAAO,CACT,CACF,CACF"}
@@ -1 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui-DznRbcku.cjs");exports.TuiTransport=e.n,exports.createDefaultTuiCliAdapter=e.t,exports.renderApp=e.r;
@@ -1,2 +0,0 @@
1
- import { a as TAnyTuiCommandInteraction, c as createDefaultTuiCliAdapter, d as renderApp, f as ITuiCliAdapter, i as ITuiPickerItem, l as TuiTransport, n as ITuiConfirmInteraction, o as TOnMissingArgsAction, r as ITuiPickerInteraction, s as IDefaultTuiCliAdapterOptions, t as ITuiCommandInteraction, u as IRenderOptions } from "../index-BUhHIf7X.js";
2
- export { type IDefaultTuiCliAdapterOptions, type IRenderOptions, type ITuiCliAdapter, type ITuiCommandInteraction, type ITuiConfirmInteraction, type ITuiPickerInteraction, type ITuiPickerItem, type TAnyTuiCommandInteraction, type TOnMissingArgsAction, TuiTransport, createDefaultTuiCliAdapter, renderApp };
@@ -1 +0,0 @@
1
- import{n as e,r as t,t as n}from"../tui-CcH5EsQh.js";export{e as TuiTransport,n as createDefaultTuiCliAdapter,t as renderApp};