@robota-sdk/agent-transport 3.0.0-beta.74 → 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.
- package/README.md +10 -10
- package/dist/node/headless/index.cjs +1 -1
- package/dist/node/headless/index.d.ts +1 -1
- package/dist/node/headless/index.js +1 -1
- package/dist/node/headless-OnpVk4-k.cjs +15 -0
- package/dist/node/{headless-D02zUEGh.js → headless-mRYilLfC.js} +2 -2
- package/dist/node/{headless-D02zUEGh.js.map → headless-mRYilLfC.js.map} +1 -1
- package/dist/node/{index-DE3-dHqw.d.ts → index-CYl7ksS6.d.ts} +12 -2
- package/dist/node/{index-DE3-dHqw.d.ts.map → index-CYl7ksS6.d.ts.map} +1 -1
- package/dist/node/{index-WKTgvhlg.d.ts → index-E8Gx4-lc.d.ts} +12 -2
- package/dist/node/{index-WKTgvhlg.d.ts.map → index-E8Gx4-lc.d.ts.map} +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.ts +2 -7
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +7 -75
- package/src/headless/HeadlessInteractionChannel.ts +21 -1
- package/src/index.ts +1 -5
- package/src/transport-registry.ts +0 -9
- package/dist/node/headless-BeHAOlIM.cjs +0 -15
- package/dist/node/http/index.cjs +0 -1
- package/dist/node/http/index.d.ts +0 -2
- package/dist/node/http/index.js +0 -1
- package/dist/node/http-2Jiuflc1.js +0 -2
- package/dist/node/http-2Jiuflc1.js.map +0 -1
- package/dist/node/http-CBAvefLw.cjs +0 -1
- package/dist/node/index-BQLN_Lc9.d.ts +0 -78
- package/dist/node/index-BQLN_Lc9.d.ts.map +0 -1
- package/dist/node/index-BnAGE-u9.d.ts +0 -33
- package/dist/node/index-BnAGE-u9.d.ts.map +0 -1
- package/dist/node/index-BrQ4gGw0.d.ts +0 -213
- package/dist/node/index-BrQ4gGw0.d.ts.map +0 -1
- package/dist/node/index-CoeBF21y.d.ts +0 -213
- package/dist/node/index-CoeBF21y.d.ts.map +0 -1
- package/dist/node/index-DHt-2VQ-.d.ts +0 -46
- package/dist/node/index-DHt-2VQ-.d.ts.map +0 -1
- package/dist/node/index-DMwKN5Le.d.ts +0 -33
- package/dist/node/index-DMwKN5Le.d.ts.map +0 -1
- package/dist/node/index-IvYaYY6v.d.ts +0 -78
- package/dist/node/index-IvYaYY6v.d.ts.map +0 -1
- package/dist/node/index-c0M42fsA.d.ts +0 -46
- package/dist/node/index-c0M42fsA.d.ts.map +0 -1
- package/dist/node/mcp/index.cjs +0 -1
- package/dist/node/mcp/index.d.ts +0 -2
- package/dist/node/mcp/index.js +0 -1
- package/dist/node/mcp-BOglBJNy.cjs +0 -1
- package/dist/node/mcp-D3BBVK7C.js +0 -2
- package/dist/node/mcp-D3BBVK7C.js.map +0 -1
- package/dist/node/rolldown-runtime-CMqjfN_6.cjs +0 -1
- package/dist/node/tui/index.cjs +0 -1
- package/dist/node/tui/index.d.ts +0 -2
- package/dist/node/tui/index.js +0 -1
- package/dist/node/tui-Btb1q88j.js +0 -25
- package/dist/node/tui-Btb1q88j.js.map +0 -1
- package/dist/node/tui-SbUT7Zlt.cjs +0 -24
- package/dist/node/ws/index.cjs +0 -1
- package/dist/node/ws/index.d.ts +0 -2
- package/dist/node/ws/index.js +0 -1
- package/dist/node/ws-Dc2RUwVs.js +0 -2
- package/dist/node/ws-Dc2RUwVs.js.map +0 -1
- package/dist/node/ws-QNMQn5kg.cjs +0 -1
- package/src/http/__tests__/http-transport.test.ts +0 -55
- package/src/http/__tests__/routes.test.ts +0 -168
- package/src/http/http-transport.ts +0 -41
- package/src/http/index.ts +0 -4
- package/src/http/routes.ts +0 -152
- package/src/mcp/__tests__/mcp-server.test.ts +0 -66
- package/src/mcp/__tests__/mcp-transport.test.ts +0 -46
- package/src/mcp/index.ts +0 -4
- package/src/mcp/mcp-server.ts +0 -163
- package/src/mcp/mcp-transport.ts +0 -48
- package/src/tui/App.tsx +0 -488
- package/src/tui/BackgroundTaskPanel.tsx +0 -36
- package/src/tui/CjkTextInput.tsx +0 -199
- package/src/tui/ConfirmPrompt.tsx +0 -70
- package/src/tui/ContextWarningBanner.tsx +0 -34
- package/src/tui/ExecutionWorkspaceDetailPane.tsx +0 -64
- package/src/tui/ExecutionWorkspaceSwitcher.tsx +0 -187
- package/src/tui/InputArea.tsx +0 -310
- package/src/tui/InteractivePrompt.tsx +0 -59
- package/src/tui/ListPicker.tsx +0 -95
- package/src/tui/MenuSelect.tsx +0 -104
- package/src/tui/MessageList.tsx +0 -284
- package/src/tui/PermissionPrompt.tsx +0 -86
- package/src/tui/PluginTUI.tsx +0 -258
- package/src/tui/SessionPicker.tsx +0 -68
- package/src/tui/SessionStatusBar.tsx +0 -70
- package/src/tui/SlashAutocomplete.tsx +0 -110
- package/src/tui/StatusBar.tsx +0 -209
- package/src/tui/StreamingIndicator.tsx +0 -93
- package/src/tui/TextPrompt.tsx +0 -81
- package/src/tui/ToolCommandOutput.tsx +0 -39
- package/src/tui/ToolDiffBlock.tsx +0 -32
- package/src/tui/TransportTUI.tsx +0 -117
- package/src/tui/TuiInteractionChannel.ts +0 -483
- package/src/tui/UpdateNotice.tsx +0 -14
- package/src/tui/UsageSummaryEntry.tsx +0 -39
- package/src/tui/WaveText.tsx +0 -44
- package/src/tui/__tests__/InteractivePrompt.test.tsx +0 -82
- package/src/tui/__tests__/ListPicker.test.tsx +0 -159
- package/src/tui/__tests__/MenuSelect.test.tsx +0 -103
- package/src/tui/__tests__/PluginTUI.test.tsx +0 -167
- package/src/tui/__tests__/SlashAutocomplete.test.tsx +0 -140
- package/src/tui/__tests__/TextPrompt.test.tsx +0 -98
- package/src/tui/__tests__/TuiInteractionChannel.display-contract.test.ts +0 -239
- package/src/tui/__tests__/TuiInteractionChannel.lifecycle.test.ts +0 -297
- package/src/tui/__tests__/TuiInteractionChannel.requestAction.test.ts +0 -124
- package/src/tui/__tests__/UpdateNotice.test.tsx +0 -15
- package/src/tui/__tests__/abort-after-permission.test.tsx +0 -169
- package/src/tui/__tests__/abort-streaming-e2e.test.tsx +0 -183
- package/src/tui/__tests__/background-task-panel.test.tsx +0 -53
- package/src/tui/__tests__/background-task-row-format.test.ts +0 -59
- package/src/tui/__tests__/channel-factory-integration.test.ts +0 -138
- package/src/tui/__tests__/cjk-text-input-flow.test.ts +0 -109
- package/src/tui/__tests__/cjk-text-input.test.ts +0 -191
- package/src/tui/__tests__/command-effect-handler.test.ts +0 -127
- package/src/tui/__tests__/command-output-summary.test.ts +0 -95
- package/src/tui/__tests__/compact-event-bridge.test.ts +0 -20
- package/src/tui/__tests__/confirm-permission-flow.test.ts +0 -130
- package/src/tui/__tests__/confirm-prompt.test.tsx +0 -87
- package/src/tui/__tests__/execution-workspace-switcher.test.tsx +0 -110
- package/src/tui/__tests__/execution-workspace-view-model.test.ts +0 -93
- package/src/tui/__tests__/fixtures/provider-setup-prompt-driver.tsx +0 -125
- package/src/tui/__tests__/input-area-flow.test.ts +0 -164
- package/src/tui/__tests__/message-list-rendering.test.tsx +0 -353
- package/src/tui/__tests__/prompt-queue.test.tsx +0 -255
- package/src/tui/__tests__/provider-setup-pty-e2e.test.ts +0 -233
- package/src/tui/__tests__/pty/pty-driver.ts +0 -135
- package/src/tui/__tests__/pty/tui-pty.ptytest.ts +0 -61
- package/src/tui/__tests__/render-channel-options.test.ts +0 -32
- package/src/tui/__tests__/render-markdown.test.ts +0 -72
- package/src/tui/__tests__/selection-flow.test.ts +0 -61
- package/src/tui/__tests__/session-init-poller.test.ts +0 -102
- package/src/tui/__tests__/session-naming.test.ts +0 -64
- package/src/tui/__tests__/session-switch-channel.test.tsx +0 -307
- package/src/tui/__tests__/slash-routing-effects.test.ts +0 -228
- package/src/tui/__tests__/status-activity.test.ts +0 -71
- package/src/tui/__tests__/status-bar.test.tsx +0 -158
- package/src/tui/__tests__/streaming-indicator.test.tsx +0 -137
- package/src/tui/__tests__/text-prompt-flow.test.ts +0 -77
- package/src/tui/__tests__/tui-channel-init-failure.test.ts +0 -57
- package/src/tui/__tests__/tui-state-manager.test.ts +0 -401
- package/src/tui/background-task-row-format.ts +0 -53
- package/src/tui/command-interaction.ts +0 -9
- package/src/tui/command-output-summary.ts +0 -122
- package/src/tui/create-default-tui-cli-adapter.ts +0 -41
- package/src/tui/execution-workspace-view-model.ts +0 -123
- package/src/tui/flows/cjk-text-input-flow.ts +0 -285
- package/src/tui/flows/confirm-prompt-flow.ts +0 -45
- package/src/tui/flows/input-area-flow.ts +0 -189
- package/src/tui/flows/permission-prompt-flow.ts +0 -85
- package/src/tui/flows/selection-flow.ts +0 -126
- package/src/tui/flows/session-init-poller.ts +0 -77
- package/src/tui/flows/text-prompt-flow.ts +0 -98
- package/src/tui/hooks/command-effect-handler.ts +0 -97
- package/src/tui/hooks/command-effect-queue.ts +0 -39
- package/src/tui/hooks/side-effects-types.ts +0 -35
- package/src/tui/hooks/useAutocomplete.ts +0 -87
- package/src/tui/hooks/usePluginCallbacks.ts +0 -31
- package/src/tui/hooks/usePluginScreenData.ts +0 -85
- package/src/tui/hooks/useSideEffects.ts +0 -175
- package/src/tui/hooks/useSlashRouting.ts +0 -118
- package/src/tui/hooks/useStatusLineSettings.ts +0 -37
- package/src/tui/hooks/useTuiChannel.ts +0 -95
- package/src/tui/index.ts +0 -14
- package/src/tui/interactions/CommandConfirm.tsx +0 -36
- package/src/tui/interactions/CommandPicker.tsx +0 -77
- package/src/tui/interactions/__tests__/CommandConfirm.test.tsx +0 -124
- package/src/tui/interactions/__tests__/CommandPicker.test.tsx +0 -138
- package/src/tui/plugin-tui-handlers.ts +0 -163
- package/src/tui/render-markdown.ts +0 -130
- package/src/tui/render.tsx +0 -117
- package/src/tui/session-naming.ts +0 -33
- package/src/tui/status-activity.ts +0 -63
- package/src/tui/tui-cli-adapter-context.tsx +0 -13
- package/src/tui/tui-cli-adapter.ts +0 -25
- package/src/tui/tui-state-manager.ts +0 -226
- package/src/tui/tui-transport.ts +0 -35
- package/src/tui/types.ts +0 -15
- package/src/tui/utils/__tests__/edit-diff.test.ts +0 -426
- package/src/tui/utils/__tests__/paste-detection.test.ts +0 -116
- package/src/tui/utils/__tests__/paste-labels.test.ts +0 -46
- package/src/tui/utils/__tests__/tool-call-extractor.test.ts +0 -227
- package/src/tui/utils/__tests__/tool-diff-summary.test.ts +0 -104
- package/src/tui/utils/edit-diff.ts +0 -153
- package/src/tui/utils/paste-labels.ts +0 -9
- package/src/tui/utils/tool-call-extractor.ts +0 -92
- package/src/tui/utils/tool-diff-summary.ts +0 -75
- package/src/ws/__tests__/ws-handler.test.ts +0 -409
- package/src/ws/__tests__/ws-transport.test.ts +0 -53
- package/src/ws/index.ts +0 -13
- package/src/ws/ws-background-messages.ts +0 -170
- package/src/ws/ws-handler.ts +0 -280
- package/src/ws/ws-protocol.ts +0 -78
- package/src/ws/ws-transport-configurable.ts +0 -128
- package/src/ws/ws-transport.ts +0 -42
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-CMqjfN_6.cjs");let t=require("node:readline");t=e.t(t,1);let n=require("node:crypto"),r=require("node:child_process"),i=require("@robota-sdk/agent-framework");var a=class{write(e){process.stdout.write(e)}writeLine(e){process.stdout.write(e+`
|
|
2
|
-
`)}writeMarkdown(e){process.stdout.write(e)}writeError(e){process.stderr.write(e+`
|
|
3
|
-
`)}prompt(e){return new Promise(n=>{let r=t.createInterface({input:process.stdin,output:process.stdout,terminal:!1,historySize:0});r.question(e,e=>{r.close(),n(e)})})}async select(e,t=0){for(let n=0;n<e.length;n++){let r=n===t?`>`:` `;process.stdout.write(` ${r} ${n+1}) ${e[n]}\n`)}let n=(await this.prompt(` Choose [1-${e.length}] (default: ${e[t]}): `)).trim().toLowerCase();if(n===``)return t;let r=parseInt(n,10);return!isNaN(r)&&r>=1&&r<=e.length?r-1:t}spinner(e){return{stop(){},update(){}}}};const o=(e,t=!1)=>new Promise((n,r)=>{process.stdout.write(e);let i=``,a=process.stdin,o=a.isRaw;if(!a.isTTY){r(Error(`Cannot prompt for input: stdin is not a TTY.
|
|
4
|
-
Set your API key via environment variable instead:
|
|
5
|
-
ANTHROPIC_API_KEY=<key> robota
|
|
6
|
-
OPENAI_API_KEY=<key> robota`));return}a.setRawMode(!0),a.resume(),a.setEncoding(`utf8`);let s=e=>{for(let r of e)if(r===`\r`||r===`
|
|
7
|
-
`){a.removeListener(`data`,s),a.setRawMode(o??!1),a.pause(),process.stdout.write(`
|
|
8
|
-
`),n(i.trim());return}else r===``||r===`\b`?i.length>0&&(i=i.slice(0,-1),process.stdout.write(`\b \b`)):r===``?(a.removeListener(`data`,s),a.setRawMode(o??!1),a.pause(),process.stdout.write(`
|
|
9
|
-
`),process.exit(0)):r.charCodeAt(0)>=32&&(i+=r,process.stdout.write(t?`*`:r))};a.on(`data`,s)});function s(e){let t=e.trimStart();if(!t.startsWith(`/`))return null;let[n=``,...r]=t.slice(1).split(/\s+/);return n.length===0?null:{name:n,args:r.join(` `)}}async function c(e,t){let n=s(t);if(!n)return{kind:`not-slash`};let r=await e.executeCommand(n.name,n.args);return r?r.effects?.some(e=>e.type===`session-execution-started`)?{kind:`session-execution`}:{kind:`command-result`,result:r}:{kind:`command-result`,result:{message:`Unknown command "/${n.name}".`,success:!1}}}function l(e,t,r){let i=JSON.stringify({type:`stream_event`,event:r,session_id:t(e),uuid:(0,n.randomUUID)()});process.stdout.write(i+`
|
|
10
|
-
`)}function u(e,t,n,r){let i=n=>l(e,t,n),a=e=>i({type:`content_block_delta`,delta:{type:`text_delta`,text:e}}),o=e=>i({type:`background_task_event`,background_task_event:e}),s=e=>i({type:`background_job_group_event`,background_job_group_event:e}),c=()=>d(e,{onTextDelta:a,onBackgroundTaskEvent:o,onBackgroundJobGroupEvent:s,onComplete:u,onInterrupted:f,onError:p}),u=i=>{c(),n(t(e),i.response,`success`),r(0)},f=i=>{c(),n(t(e),i.response,`success`),r(0)},p=i=>{c(),n(t(e),``,`error`,i),r(1)};return e.on(`text_delta`,a),e.on(`background_task_event`,o),e.on(`background_job_group_event`,s),e.on(`complete`,u),e.on(`interrupted`,f),e.on(`error`,p),c}function d(e,t){e.off(`text_delta`,t.onTextDelta),e.off(`background_task_event`,t.onBackgroundTaskEvent),e.off(`background_job_group_event`,t.onBackgroundJobGroupEvent),e.off(`complete`,t.onComplete),e.off(`interrupted`,t.onInterrupted),e.off(`error`,t.onError)}function f(e){let{session:t,outputFormat:n}=e;return{run:e=>n===`text`?g(t,e):n===`json`?_(t,e):v(t,e)}}function p(e){let t=e.message.toLowerCase();return t.includes(`api key`)||t.includes(`no provider`)||t.includes(`provider`)?`config_error`:t.includes(`tool`)||t.includes(`execution`)?`tool_error`:`api_error`}function m(e,t,n,r){let i={type:`result`,result:t,session_id:e,subtype:n};n===`error`&&r!==void 0&&(i.error_code=p(r));let a=JSON.stringify(i);process.stdout.write(a+`
|
|
11
|
-
`)}function h(e){try{return e.getSession().getSessionId()}catch{return``}}function g(e,t){return new Promise(n=>{let r=()=>{e.off(`complete`,i),e.off(`interrupted`,a),e.off(`error`,o)},i=e=>{r(),process.stdout.write(e.response+`
|
|
12
|
-
`),n(0)},a=e=>{r(),e.response&&process.stdout.write(e.response+`
|
|
13
|
-
`),n(0)},o=e=>{r(),process.stderr.write(e.message+`
|
|
14
|
-
`),n(1)};e.on(`complete`,i),e.on(`interrupted`,a),e.on(`error`,o),c(e,t).then(i=>{if(i.kind===`command-result`){r(),process.stdout.write(i.result.message+`
|
|
15
|
-
`),n(+!i.result.success);return}i.kind!==`session-execution`&&e.submit(t)})})}function _(e,t){return new Promise(n=>{let r=()=>{e.off(`complete`,i),e.off(`interrupted`,a),e.off(`error`,o)},i=t=>{r(),m(h(e),t.response,`success`),n(0)},a=t=>{r(),m(h(e),t.response,`success`),n(0)},o=t=>{r(),m(h(e),``,`error`,t),n(1)};e.on(`complete`,i),e.on(`interrupted`,a),e.on(`error`,o),c(e,t).then(i=>{if(i.kind===`command-result`){r(),m(h(e),i.result.message,i.result.success?`success`:`error`),n(+!i.result.success);return}i.kind!==`session-execution`&&e.submit(t)})})}function v(e,t){return new Promise(n=>{let r=u(e,h,m,n);c(e,t).then(i=>{if(i.kind===`command-result`){r(),m(h(e),i.result.message,i.result.success?`success`:`error`),n(+!i.result.success);return}i.kind!==`session-execution`&&e.submit(t)})})}function y(e){let t=null,n=0;return{name:`headless`,attach(e){t=e},async start(){if(!t)throw Error(`No session attached. Call attach() first.`);n=await f({session:t,outputFormat:e.outputFormat}).run(e.prompt)},async stop(){},getExitCode(){return n}}}var b=class{opts;exitCode=0;constructor(e){this.opts=e}async run(e){let t=this.opts.shellExec??(e=>(0,r.execSync)(e,{timeout:5e3,encoding:`utf-8`,stdio:`pipe`}).trimEnd()),n=new i.InteractiveSession({cwd:this.opts.cwd,provider:this.opts.provider,permissionMode:this.opts.permissionMode??`bypassPermissions`,maxTurns:this.opts.maxTurns,sessionStore:this.opts.sessionStore,resumeSessionId:this.opts.resumeSessionId,forkSession:this.opts.forkSession,sessionName:this.opts.sessionName,bare:this.opts.bare||void 0,allowedTools:this.opts.allowedTools,deniedTools:this.opts.deniedTools,appendSystemPrompt:this.opts.appendSystemPrompt,...this.opts.systemPrompt?{systemPrompt:this.opts.systemPrompt}:{},backgroundTaskRunners:this.opts.backgroundTaskRunners,subagentRunnerFactory:this.opts.subagentRunnerFactory,commandModules:this.opts.commandModules,commandHostAdapters:this.opts.commandHostAdapters,shellExec:t,agentName:`robota-cli`}),a=f({session:n,outputFormat:this.opts.outputFormat});this.exitCode=await a.run(e),await n.shutdown({reason:`prompt_input_exit`,message:`Headless transport complete`})}getExitCode(){return this.exitCode}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}});
|
package/dist/node/http/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../http-CBAvefLw.cjs");exports.createAgentRoutes=e.n,exports.createHttpTransport=e.t;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { a as createAgentRoutes, i as TSessionFactory, n as createHttpTransport, r as IAgentRoutesOptions, t as IHttpTransportOptions } from "../index-DMwKN5Le.js";
|
|
2
|
-
export { type IAgentRoutesOptions, type IHttpTransportOptions, type TSessionFactory, createAgentRoutes, createHttpTransport };
|
package/dist/node/http/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"../http-2Jiuflc1.js";export{e as createAgentRoutes,t as createHttpTransport};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Hono as e}from"hono";import{streamSSE as t}from"hono/streaming";function n(n){let{sessionFactory:r}=n,i=new e;return i.post(`/submit`,async e=>{let n=await r(e),i=await e.req.json();return!i.prompt||typeof i.prompt!=`string`?e.json({error:`prompt is required`},400):t(e,async e=>{let t=[],r=(e,r)=>{n.on(e,r),t.push(()=>n.off(e,r))},a=!1,o=new Promise(t=>{r(`text_delta`,t=>{e.writeSSE({event:`text_delta`,data:JSON.stringify({delta:t})})}),r(`tool_start`,t=>{e.writeSSE({event:`tool_start`,data:JSON.stringify(t)})}),r(`tool_end`,t=>{e.writeSSE({event:`tool_end`,data:JSON.stringify(t)})}),r(`thinking`,n=>{e.writeSSE({event:`thinking`,data:JSON.stringify({isThinking:n})}),!n&&a&&t()}),r(`complete`,t=>{a=!0,e.writeSSE({event:`complete`,data:JSON.stringify(t)})}),r(`interrupted`,t=>{a=!0,e.writeSSE({event:`interrupted`,data:JSON.stringify(t)})}),r(`error`,t=>{a=!0,e.writeSSE({event:`error`,data:JSON.stringify({message:t.message})})})});await n.submit(i.prompt),await o;for(let e of t)e()})}),i.post(`/command`,async e=>{let t=await r(e),n=await e.req.json();if(!n.name||typeof n.name!=`string`)return e.json({error:`name is required`},400);let i=await t.executeCommand(n.name,n.args??``);return i?e.json(i):e.json({error:`Unknown command: ${n.name}`},404)}),i.post(`/abort`,async e=>((await r(e)).abort(),e.json({ok:!0}))),i.post(`/cancel-queue`,async e=>((await r(e)).cancelQueue(),e.json({ok:!0}))),i.get(`/messages`,async e=>{let t=await r(e);return e.json(t.getMessages())}),i.get(`/context`,async e=>{let t=await r(e);return e.json(t.getContextState())}),i.get(`/executing`,async e=>{let t=await r(e);return e.json({executing:t.isExecuting()})}),i.get(`/pending`,async e=>{let t=await r(e);return e.json({pending:t.getPendingPrompt()})}),i}function r(e){let t=null,r=null;return{name:`http`,attach(e){t=e},async start(){if(!t)throw Error(`No session attached. Call attach() first.`);r=n({sessionFactory:()=>t})},async stop(){r=null},getApp(){if(!r)throw Error(`Transport not started. Call start() first.`);return r}}}export{n,r as t};
|
|
2
|
-
//# sourceMappingURL=http-2Jiuflc1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-2Jiuflc1.js","names":[],"sources":["../../src/http/routes.ts","../../src/http/http-transport.ts"],"sourcesContent":["/**\n * HTTP transport adapter — exposes IInteractiveSession over REST API.\n *\n * Built on Hono for Cloudflare Workers + Node.js + AWS Lambda compatibility.\n * Each endpoint maps 1:1 to an IInteractiveSession API method.\n */\n\nimport { Hono } from 'hono';\nimport { streamSSE } from 'hono/streaming';\n\nimport type { IInteractiveSession } from '@robota-sdk/agent-interface-transport';\nimport type { Context } from 'hono';\n\n/** Callback that resolves an IInteractiveSession from the request context. */\nexport type TSessionFactory = (c: Context) => IInteractiveSession | Promise<IInteractiveSession>;\n\nexport interface IAgentRoutesOptions {\n /** Resolve an IInteractiveSession per request (e.g., by auth token, session ID). */\n sessionFactory: TSessionFactory;\n}\n\n/**\n * Create a Hono router with all agent HTTP endpoints.\n *\n * Usage:\n * ```typescript\n * const routes = createAgentRoutes({ sessionFactory });\n * app.route('/agent', routes); // mount on existing app\n * export default routes; // or use standalone (CF Workers)\n * ```\n */\nexport function createAgentRoutes(options: IAgentRoutesOptions): Hono {\n const { sessionFactory } = options;\n const app = new Hono();\n\n // POST /submit — execute prompt, stream events via SSE\n app.post('/submit', async (c) => {\n const session = await sessionFactory(c);\n const body = await c.req.json<{ prompt: string }>();\n\n if (!body.prompt || typeof body.prompt !== 'string') {\n return c.json({ error: 'prompt is required' }, 400);\n }\n\n return streamSSE(c, async (stream) => {\n const cleanup: Array<() => void> = [];\n\n const subscribe = <T>(event: string, handler: (data: T) => void): void => {\n session.on(event as 'text_delta', handler as () => void);\n cleanup.push(() => session.off(event as 'text_delta', handler as () => void));\n };\n\n let completed = false;\n const done = new Promise<void>((resolve) => {\n subscribe('text_delta', (delta: string) => {\n stream.writeSSE({ event: 'text_delta', data: JSON.stringify({ delta }) });\n });\n\n subscribe('tool_start', (state) => {\n stream.writeSSE({ event: 'tool_start', data: JSON.stringify(state) });\n });\n\n subscribe('tool_end', (state) => {\n stream.writeSSE({ event: 'tool_end', data: JSON.stringify(state) });\n });\n\n subscribe('thinking', (isThinking: boolean) => {\n stream.writeSSE({ event: 'thinking', data: JSON.stringify({ isThinking }) });\n if (!isThinking && completed) {\n resolve();\n }\n });\n\n subscribe('complete', (result) => {\n completed = true;\n stream.writeSSE({ event: 'complete', data: JSON.stringify(result) });\n });\n\n subscribe('interrupted', (result) => {\n completed = true;\n stream.writeSSE({ event: 'interrupted', data: JSON.stringify(result) });\n });\n\n subscribe('error', (error: Error) => {\n completed = true;\n stream.writeSSE({ event: 'error', data: JSON.stringify({ message: error.message }) });\n });\n });\n\n await session.submit(body.prompt);\n await done;\n\n for (const fn of cleanup) fn();\n });\n });\n\n // POST /command — execute system command\n app.post('/command', async (c) => {\n const session = await sessionFactory(c);\n const body = await c.req.json<{ name: string; args?: string }>();\n\n if (!body.name || typeof body.name !== 'string') {\n return c.json({ error: 'name is required' }, 400);\n }\n\n const result = await session.executeCommand(body.name, body.args ?? '');\n if (!result) {\n return c.json({ error: `Unknown command: ${body.name}` }, 404);\n }\n return c.json(result);\n });\n\n // POST /abort — abort current execution\n app.post('/abort', async (c) => {\n const session = await sessionFactory(c);\n session.abort();\n return c.json({ ok: true });\n });\n\n // POST /cancel-queue — cancel queued prompt\n app.post('/cancel-queue', async (c) => {\n const session = await sessionFactory(c);\n session.cancelQueue();\n return c.json({ ok: true });\n });\n\n // GET /messages — get message history\n app.get('/messages', async (c) => {\n const session = await sessionFactory(c);\n return c.json(session.getMessages());\n });\n\n // GET /context — get context window state\n app.get('/context', async (c) => {\n const session = await sessionFactory(c);\n return c.json(session.getContextState());\n });\n\n // GET /executing — check if currently executing\n app.get('/executing', async (c) => {\n const session = await sessionFactory(c);\n return c.json({ executing: session.isExecuting() });\n });\n\n // GET /pending — get pending queued prompt\n app.get('/pending', async (c) => {\n const session = await sessionFactory(c);\n return c.json({ pending: session.getPendingPrompt() });\n });\n\n return app;\n}\n","/**\n * ITransportAdapter implementation for HTTP transport.\n *\n * Wraps createAgentRoutes into the unified ITransportAdapter interface\n * while exposing the underlying Hono app via getApp().\n */\n\nimport { createAgentRoutes } from './routes.js';\n\nimport type { IInteractiveSession, ITransportAdapter } from '@robota-sdk/agent-interface-transport';\nimport type { Hono } from 'hono';\n\nexport interface IHttpTransportOptions {\n /** Optional: base path prefix for routes. */\n basePath?: string;\n}\n\nexport function createHttpTransport(\n options?: IHttpTransportOptions,\n): ITransportAdapter<IInteractiveSession> & { getApp(): Hono } {\n let session: IInteractiveSession | null = null;\n let app: Hono | null = null;\n\n return {\n name: 'http',\n attach(s: IInteractiveSession) {\n session = s;\n },\n async start() {\n if (!session) throw new Error('No session attached. Call attach() first.');\n app = createAgentRoutes({ sessionFactory: () => session! });\n },\n async stop() {\n app = null;\n },\n getApp() {\n if (!app) throw new Error('Transport not started. Call start() first.');\n return app;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
let e=require("hono"),t=require("hono/streaming");function n(n){let{sessionFactory:r}=n,i=new e.Hono;return i.post(`/submit`,async e=>{let n=await r(e),i=await e.req.json();return!i.prompt||typeof i.prompt!=`string`?e.json({error:`prompt is required`},400):(0,t.streamSSE)(e,async e=>{let t=[],r=(e,r)=>{n.on(e,r),t.push(()=>n.off(e,r))},a=!1,o=new Promise(t=>{r(`text_delta`,t=>{e.writeSSE({event:`text_delta`,data:JSON.stringify({delta:t})})}),r(`tool_start`,t=>{e.writeSSE({event:`tool_start`,data:JSON.stringify(t)})}),r(`tool_end`,t=>{e.writeSSE({event:`tool_end`,data:JSON.stringify(t)})}),r(`thinking`,n=>{e.writeSSE({event:`thinking`,data:JSON.stringify({isThinking:n})}),!n&&a&&t()}),r(`complete`,t=>{a=!0,e.writeSSE({event:`complete`,data:JSON.stringify(t)})}),r(`interrupted`,t=>{a=!0,e.writeSSE({event:`interrupted`,data:JSON.stringify(t)})}),r(`error`,t=>{a=!0,e.writeSSE({event:`error`,data:JSON.stringify({message:t.message})})})});await n.submit(i.prompt),await o;for(let e of t)e()})}),i.post(`/command`,async e=>{let t=await r(e),n=await e.req.json();if(!n.name||typeof n.name!=`string`)return e.json({error:`name is required`},400);let i=await t.executeCommand(n.name,n.args??``);return i?e.json(i):e.json({error:`Unknown command: ${n.name}`},404)}),i.post(`/abort`,async e=>((await r(e)).abort(),e.json({ok:!0}))),i.post(`/cancel-queue`,async e=>((await r(e)).cancelQueue(),e.json({ok:!0}))),i.get(`/messages`,async e=>{let t=await r(e);return e.json(t.getMessages())}),i.get(`/context`,async e=>{let t=await r(e);return e.json(t.getContextState())}),i.get(`/executing`,async e=>{let t=await r(e);return e.json({executing:t.isExecuting()})}),i.get(`/pending`,async e=>{let t=await r(e);return e.json({pending:t.getPendingPrompt()})}),i}function r(e){let t=null,r=null;return{name:`http`,attach(e){t=e},async start(){if(!t)throw Error(`No session attached. Call attach() first.`);r=n({sessionFactory:()=>t})},async stop(){r=null},getApp(){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 r}});
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { IAIProvider, IProviderDefinition, TPermissionMode, TUniversalValue } from "@robota-sdk/agent-core";
|
|
2
|
-
import { IConfigurableTransport, IExecutionResult, IExecutionWorkspaceSnapshot, IInteractiveSession, IInteractiveSessionStore, IStatusLineCommandSettings, IToolState, ITransportRegistryView, TStatusLineCommandSettingsPatch } from "@robota-sdk/agent-interface-transport";
|
|
3
|
-
import { CommandRegistry, IBackgroundTaskRunner, ICommandHostAdapters, ICommandModule, InteractiveSession, TShellExecFn, TSubagentRunnerFactory } from "@robota-sdk/agent-framework";
|
|
4
|
-
import { ITuiCommandInteraction, ITuiConfirmInteraction, ITuiPickerInteraction, ITuiPickerItem, TAnyTuiCommandInteraction, TOnMissingArgsAction } from "@robota-sdk/agent-interface-tui";
|
|
5
|
-
|
|
6
|
-
//#region src/tui/tui-cli-adapter.d.ts
|
|
7
|
-
interface ITuiCliAdapter {
|
|
8
|
-
getUserSettingsPath(): string;
|
|
9
|
-
readSettings(path: string): Record<string, TUniversalValue>;
|
|
10
|
-
writeSettings(path: string, settings: Record<string, TUniversalValue>): void;
|
|
11
|
-
deleteSettings(path: string): boolean;
|
|
12
|
-
applyStatusLineSettings(path: string, patch: TStatusLineCommandSettingsPatch): IStatusLineCommandSettings;
|
|
13
|
-
reloadPluginCommandSource(registry: CommandRegistry): void;
|
|
14
|
-
applyActiveModelChange(cwd: string, modelId: string, options?: {
|
|
15
|
-
providerOverride?: string;
|
|
16
|
-
}): {
|
|
17
|
-
applied: boolean;
|
|
18
|
-
};
|
|
19
|
-
getGitBranch(cwd: string): string | undefined;
|
|
20
|
-
getProviderDisplayName(type: string): string;
|
|
21
|
-
}
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region src/tui/render.d.ts
|
|
24
|
-
interface IRenderOptions {
|
|
25
|
-
cwd: string;
|
|
26
|
-
provider: IAIProvider;
|
|
27
|
-
providerOverride?: string | undefined;
|
|
28
|
-
providerType?: string | undefined;
|
|
29
|
-
modelId?: string;
|
|
30
|
-
language?: string;
|
|
31
|
-
permissionMode?: TPermissionMode;
|
|
32
|
-
maxTurns?: number;
|
|
33
|
-
allowedTools?: string[];
|
|
34
|
-
deniedTools?: string[];
|
|
35
|
-
version?: string;
|
|
36
|
-
sessionStore?: IInteractiveSessionStore;
|
|
37
|
-
resumeSessionId?: string;
|
|
38
|
-
showSessionPickerOnStart?: boolean;
|
|
39
|
-
forkSession?: boolean;
|
|
40
|
-
sessionName?: string;
|
|
41
|
-
backgroundTaskRunners?: IBackgroundTaskRunner[];
|
|
42
|
-
subagentRunnerFactory?: TSubagentRunnerFactory;
|
|
43
|
-
commandModules?: readonly ICommandModule[];
|
|
44
|
-
commandHostAdapters?: ICommandHostAdapters;
|
|
45
|
-
shellExec?: TShellExecFn;
|
|
46
|
-
startupUpdateNotice?: Promise<string | undefined>;
|
|
47
|
-
transportRegistry?: ITransportRegistryView<IInteractiveSession>;
|
|
48
|
-
cliAdapter: ITuiCliAdapter;
|
|
49
|
-
reloadPluginCommandSource?: (registry: CommandRegistry) => void;
|
|
50
|
-
agentName?: string;
|
|
51
|
-
}
|
|
52
|
-
declare function renderApp(options: IRenderOptions): Promise<void>;
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/tui/tui-transport.d.ts
|
|
55
|
-
declare class TuiTransport implements IConfigurableTransport<IInteractiveSession> {
|
|
56
|
-
readonly name = "tui";
|
|
57
|
-
readonly defaultEnabled = true;
|
|
58
|
-
readonly optionsSchema: {};
|
|
59
|
-
private readonly options;
|
|
60
|
-
constructor(options: IRenderOptions);
|
|
61
|
-
attach(_session: IInteractiveSession): void;
|
|
62
|
-
start(): Promise<void>;
|
|
63
|
-
stop(): Promise<void>;
|
|
64
|
-
validateOptions(_options: Record<string, TUniversalValue>): boolean;
|
|
65
|
-
}
|
|
66
|
-
//#endregion
|
|
67
|
-
//#region src/tui/create-default-tui-cli-adapter.d.ts
|
|
68
|
-
interface IDefaultTuiCliAdapterOptions {
|
|
69
|
-
providerDefinitions: readonly IProviderDefinition[];
|
|
70
|
-
reloadPluginCommandSource: (registry: CommandRegistry) => void;
|
|
71
|
-
}
|
|
72
|
-
declare function createDefaultTuiCliAdapter({
|
|
73
|
-
providerDefinitions,
|
|
74
|
-
reloadPluginCommandSource
|
|
75
|
-
}: IDefaultTuiCliAdapterOptions): ITuiCliAdapter;
|
|
76
|
-
//#endregion
|
|
77
|
-
export { TAnyTuiCommandInteraction as a, createDefaultTuiCliAdapter as c, renderApp as d, ITuiCliAdapter as f, ITuiPickerItem as i, TuiTransport as l, ITuiConfirmInteraction as n, TOnMissingArgsAction as o, ITuiPickerInteraction as r, IDefaultTuiCliAdapterOptions as s, ITuiCommandInteraction as t, IRenderOptions as u };
|
|
78
|
-
//# sourceMappingURL=index-BQLN_Lc9.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BQLN_Lc9.d.ts","names":[],"sources":["../../src/tui/tui-cli-adapter.ts","../../src/tui/render.tsx","../../src/tui/tui-transport.ts","../../src/tui/create-default-tui-cli-adapter.ts"],"mappings":";;;;;;UAOiB,cAAA;EACf,mBAAA;EACA,YAAA,CAAa,IAAA,WAAe,MAAA,SAAe,eAAA;EAC3C,aAAA,CAAc,IAAA,UAAc,QAAA,EAAU,MAAA,SAAe,eAAA;EACrD,cAAA,CAAe,IAAA;EACf,uBAAA,CACE,IAAA,UACA,KAAA,EAAO,+BAAA,GACN,0BAAA;EACH,yBAAA,CAA0B,QAAA,EAAU,eAAA;EACpC,sBAAA,CACE,GAAA,UACA,OAAA,UACA,OAAA;IAAY,gBAAA;EAAA;IACT,OAAA;EAAA;EACL,YAAA,CAAa,GAAA;EACb,sBAAA,CAAuB,IAAA;AAAA;;;UCIR,cAAA;EACf,GAAA;EACA,QAAA,EAAU,WAAA;EACV,gBAAA;EACA,YAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA,GAAiB,eAAA;EACjB,QAAA;EACA,YAAA;EACA,WAAA;EACA,OAAA;EACA,YAAA,GAAe,wBAAA;EACf,eAAA;EACA,wBAAA;EACA,WAAA;EACA,WAAA;EACA,qBAAA,GAAwB,qBAAA;EACxB,qBAAA,GAAwB,sBAAA;EACxB,cAAA,YAA0B,cAAA;EAC1B,mBAAA,GAAsB,oBAAA;EACtB,SAAA,GAAY,YAAA;EACZ,mBAAA,GAAsB,OAAA;EACtB,iBAAA,GAAoB,sBAAA,CAAuB,mBAAA;EAC3C,UAAA,EAAY,cAAA;EACZ,yBAAA,IAA6B,QAAA,EAAU,eAAA;EACvC,SAAA;AAAA;AAAA,iBA+BoB,SAAA,CAAU,OAAA,EAAS,cAAA,GAAiB,OAAO;;;cC5EpD,YAAA,YAAwB,sBAAA,CAAuB,mBAAA;EAAA,SACjD,IAAA;EAAA,SACA,cAAA;EAAA,SACA,aAAA;EAAA,iBAEQ,OAAA;cAEL,OAAA,EAAS,cAAA;EAIrB,MAAA,CAAO,QAAA,EAAU,mBAAA;EAIX,KAAA,IAAS,OAAA;EAIT,IAAA,IAAQ,OAAA;EAId,eAAA,CAAgB,QAAA,EAAU,MAAA,SAAe,eAAA;AAAA;;;UCjB1B,4BAAA;EACf,mBAAA,WAA8B,mBAAA;EAC9B,yBAAA,GAA4B,QAAA,EAAU,eAAe;AAAA;AAAA,iBAGvC,0BAAA;EACd,mBAAA;EACA;AAAA,GACC,4BAAA,GAA+B,cAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { IInteractiveSession, ITransportAdapter } from "@robota-sdk/agent-interface-transport";
|
|
2
|
-
import { Context, Hono } from "hono";
|
|
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-BnAGE-u9.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BnAGE-u9.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,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":"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"}
|