@vibetonomy/agent 1.3.4 → 1.3.6
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/bridge/dist/index.js +10 -10
- package/package.json +6 -6
package/bridge/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{createInterface as ce}from"node:readline";import{readdir as
|
|
2
|
-
`)),s.indexOf("local-command-stdout")!==-1){let i=s.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);i&&r({type:"slash_command_result",text:i[1].trim()})}}if(Array.isArray(o)){for(let s of o)if(s.type==="tool_result"&&typeof s.tool_use_id=="string"&&!t.sentToolResults[s.tool_use_id]){t.activeTaskToolIds[s.tool_use_id]&&(r({type:"subagent_done",parentToolId:s.tool_use_id}),delete t.activeTaskToolIds[s.tool_use_id]);let i=t.teammateMap[s.tool_use_id];i&&(r({type:"teammate_status",parentToolId:s.tool_use_id,teammateName:i,status:s.is_error?"error":"idle"}),delete t.teammateMap[s.tool_use_id]);let
|
|
3
|
-
`)),t.sentToolResults[s.tool_use_id]=!0,r({type:"tool_result",id:s.tool_use_id,content:c,is_error:s.is_error||!1})}}return}if(e.type==="result"){t.blocks={},t.sentToolResults={},t.activeTaskToolIds={},t.taskIdMap={},t.teammateMap={},t.isProcessing=!1,r({type:"result",cost:e.total_cost_usd??null,duration:e.duration_ms??null,usage:e.usage??null,modelUsage:e.modelUsage??null,sessionId:e.session_id}),e.fast_mode_state&&typeof e.fast_mode_state=="string"&&r({type:"fast_mode_state",state:e.fast_mode_state}),r({type:"done",code:0}),t.responsePreview="",t.streamedText=!1;return}if(e.type==="system"&&e.subtype==="status"){e.status==="compacting"?(r({type:"compacting",active:!0}),t.compacting=!0):t.compacting&&(r({type:"compacting",active:!1}),t.compacting=!1);return}if(e.type==="system"&&e.subtype==="task_started"){let a=e.tool_use_id;a&&(e.task_id&&(t.taskIdMap[a]=e.task_id),r({type:"task_started",parentToolId:a,taskId:e.task_id||"",description:e.description||""}));return}if(e.type==="system"&&e.subtype==="task_progress"){let a=e.tool_use_id||void 0,o=e.task_id,s=a||(o?Object.keys(t.taskIdMap).find(i=>t.taskIdMap[i]===o):void 0);if(s){r({type:"task_progress",parentToolId:s,taskId:o,usage:e.usage??null,lastToolName:e.last_tool_name||void 0,description:e.description||""});let i=t.teammateMap[s];if(i){let c=e.description||(e.last_tool_name?`Running ${e.last_tool_name}...`:void 0);r({type:"teammate_status",parentToolId:s,teammateName:i,status:"active",activityText:c})}}return}if(e.type==="tool_progress"){let a=e.parent_tool_use_id;if(a){r({type:"subagent_activity",parentToolId:a,text:e.content||""});let o=t.teammateMap[a];o&&r({type:"teammate_status",parentToolId:a,teammateName:o,status:"active",activityText:e.content||void 0})}return}if(e.type==="system"&&e.subtype==="task_notification"){let a=e.tool_use_id||void 0,o=e.task_id,s=a||(o?Object.keys(t.taskIdMap).find(i=>t.taskIdMap[i]===o):void 0);if(s){r({type:"subagent_done",parentToolId:s,status:e.status||"completed",summary:e.summary||"",usage:e.usage??null});let i=t.teammateMap[s];if(i){let c=e.status==="error"||e.status==="failed";r({type:"teammate_status",parentToolId:s,teammateName:i,status:c?"error":"idle",activityText:e.summary||void 0}),delete t.teammateMap[s]}}if(o){for(let i of Object.keys(t.taskIdMap))if(t.taskIdMap[i]===o){delete t.taskIdMap[i];break}}return}if(e.type==="rate_limit_event"&&e.rate_limit_info){let a=e.rate_limit_info;(a.status==="allowed_warning"||a.status==="rejected")&&r({type:"rate_limit",status:a.status,resetsAt:a.resetsAt?a.resetsAt*1e3:null,rateLimitType:a.rateLimitType||null,utilization:a.utilization||null});return}if(e.type==="prompt_suggestion"){r({type:"prompt_suggestion",suggestion:e.suggestion||""});return}}function te(t,e,r){if(e.type==="content_block_start"){let a=e.content_block,o=e.index;a.type==="tool_use"?(t.blocks[o]={type:"tool_use",id:a.id,name:a.name,inputJson:""},r({type:"tool_start",id:a.id,name:a.name})):a.type==="thinking"?(t.blocks[o]={type:"thinking",thinkingText:"",startTime:Date.now()},r({type:"thinking_start"})):a.type==="text"&&(t.blocks[o]={type:"text"});return}if(e.type==="content_block_delta"&&e.delta){let a=e.index,o=e.delta;if(o.type==="text_delta"&&typeof o.text=="string"){if(t.streamedText=!0,t.responsePreview.length<200&&(t.responsePreview+=o.text),r({type:"delta",text:o.text}),t.teamActive){let s=o.text.matchAll(/teammate_id="([^"]+)"/g);for(let i of s){let c=i[1];(o.text.includes("idle_notification")||o.text.includes('"idleReason"'))&&r({type:"teammate_status",parentToolId:"",teammateName:c,status:"idle",activityText:"Idle"})}}}else o.type==="input_json_delta"&&t.blocks[a]?t.blocks[a].inputJson=(t.blocks[a].inputJson||"")+o.partial_json:o.type==="thinking_delta"&&t.blocks[a]&&(t.blocks[a].thinkingText=(t.blocks[a].thinkingText||"")+o.thinking,r({type:"thinking_delta",text:o.thinking}));return}if(e.type==="content_block_stop"){let a=e.index,o=t.blocks[a];if(o&&o.type==="tool_use"){let s={};try{s=JSON.parse(o.inputJson||"{}")}catch{}r({type:"tool_executing",id:o.id,name:o.name,input:s});let i=o.name;if((i==="Task"||i==="Agent"||i==="TeammateTool")&&(t.activeTaskToolIds[o.id]=!0,t.teamActive)){let c=s;if(c){let u=c.teammate_name||c.name||c.subagent_type,_=c.team_name||void 0;u&&(t.teammateMap[o.id]=u,r({type:"teammate_spawned",parentToolId:o.id,teammateName:u,teamName:_,description:c.description||c.prompt||""}))}}if(t.teamActive&&i==="SendMessage"){let c=s;if(c){let u=c.to;u&&u!=="*"&&r({type:"teammate_status",parentToolId:o.id,teammateName:u,status:"active",activityText:"Processing message\u2026"})}}}else if(o&&o.type==="thinking"){let s=o.startTime?(Date.now()-o.startTime)/1e3:0;r({type:"thinking_stop",duration:s})}delete t.blocks[a];return}}function oe(t,e,r){let a=e.parent_tool_use_id,s=e.message.content;if(Array.isArray(s)&&e.type==="assistant")for(let i of s)if(i.type==="tool_use"){let c=se(i.name,i.input);r({type:"subagent_tool",parentToolId:a,toolName:i.name,toolId:i.id,text:c})}else i.type==="thinking"?r({type:"subagent_activity",parentToolId:a,text:"Thinking..."}):i.type==="text"&&i.text&&r({type:"subagent_activity",parentToolId:a,text:"Writing response..."})}function se(t,e){return t==="Bash"&&e?.description?e.description:t==="Read"&&e?.file_path?"Reading "+e.file_path.split("/").pop():t==="Edit"&&e?.file_path?"Editing "+e.file_path.split("/").pop():t==="Write"&&e?.file_path?"Writing "+e.file_path.split("/").pop():t==="Grep"&&e?.pattern?"Searching for "+e.pattern:t==="Glob"&&e?.pattern?"Finding "+e.pattern:t==="WebSearch"&&e?.query?"Searching: "+e.query:t==="WebFetch"?"Fetching URL...":t==="Task"&&e?.description?e.description:"Running "+t+"..."}function J(){let t=[],e=null,r=!1;return{push(a){if(!r)if(e){let o=e;e=null,o({value:a,done:!1})}else t.push(a)},end(){if(r=!0,e){let a=e;e=null,a({value:void 0,done:!0})}},[Symbol.asyncIterator](){return{next(){return t.length>0?Promise.resolve({value:t.shift(),done:!1}):r?Promise.resolve({value:void 0,done:!0}):new Promise(a=>{e=a})}}}}}import{randomUUID as ne}from"node:crypto";function W(t){let e={},r={},a={};return{handleCanUseTool(o,s,i){return o==="AskUserQuestion"?new Promise(c=>{r[i.toolUseID]={resolve:c,input:s},i.signal&&i.signal.addEventListener("abort",()=>{delete r[i.toolUseID],t({type:"ask_user_answered",toolId:i.toolUseID}),c({behavior:"deny",message:"Cancelled"})})}):a[o]?Promise.resolve({behavior:"allow",updatedInput:s}):new Promise(c=>{let u=ne();e[u]={resolve:c,requestId:u,toolName:o,toolInput:s},t({type:"permission_request",requestId:u,toolName:o,toolInput:s,toolUseId:i.toolUseID,decisionReason:i.decisionReason||""}),i.signal&&i.signal.addEventListener("abort",()=>{delete e[u],t({type:"permission_cancel",requestId:u}),c({behavior:"deny",message:"Request cancelled"})})})},handlePermissionResponse(o,s,i){let c=e[o];c&&(delete e[o],t({type:"permission_resolved",requestId:o,decision:s}),s==="allow"?(i&&(a[c.toolName]=!0),c.resolve({behavior:"allow",updatedInput:c.toolInput})):c.resolve({behavior:"deny",message:"User denied"}))},handleAskUserResponse(o,s){let i=r[o];if(!i)return;delete r[o],t({type:"ask_user_answered",toolId:o});let c=Object.assign({},i.input,{answers:s});i.resolve({behavior:"allow",updatedInput:c})},clearPending(o){for(let s of Object.keys(r))o({type:"ask_user_answered",toolId:s}),r[s].resolve({behavior:"deny",message:"Session ended"}),delete r[s];for(let s of Object.keys(e))o({type:"permission_cancel",requestId:s}),e[s].resolve({behavior:"deny",message:"Session ended"}),delete e[s]}}}function j(){return{cliSessionId:null,relaySessionId:null,blocks:{},sentToolResults:{},streamedText:!1,responsePreview:"",activeTaskToolIds:{},taskIdMap:{},teammateMap:{},teamActive:!1,isProcessing:!1,compacting:!1}}var S={agents:[],teamName:null,leadSessionId:null,teamConfigDir:null};function G(t,e){let r=JSON.parse(t);if(!r.members||r.members.length===0)return S;let a=[];for(let o of r.members)o.agentType!=="team-lead"&&a.push({id:o.name.toLowerCase().replace(/\s+/g,"-"),name:o.name,description:o.prompt||`${o.agentType} agent`,systemPrompt:o.prompt||"",defaultModel:o.model,agentType:o.agentType,color:o.color});return{agents:a,teamName:r.name||null,leadSessionId:r.leadSessionId||null,teamConfigDir:e}}async function ie(t){let e=A(ae(),".claude","teams"),r=z(t);try{let a=await B(e);for(let o of a)try{let s=A(e,o),i=await K(A(s,"config.json"),"utf-8");if(!JSON.parse(i).members?.some(_=>_.cwd&&z(_.cwd)===r))continue;return G(i,s)}catch{}return S}catch{return S}}async function le(t){let e=A(t,".claude","teams");try{let r=await B(e);for(let a of r)try{let o=A(e,a),s=await K(A(o,"config.json"),"utf-8");return G(s,o)}catch{}return S}catch{return S}}function H(t){let e=null,r=null,a=null,o=null,s=j(),i=null,c="",u=[],_="acceptEdits",x="medium",U="",E=0,k=S,q=!1,v=null,y=t;t=n=>{if(n.type==="model_info"&&(n.models&&n.models.length>0&&(u=n.models),n.models=u,n.model&&(c=n.model)),v){v(n);return}y(n)};async function L(){if(e)return e;try{return e=await import("@anthropic-ai/claude-agent-sdk"),e}catch(n){let l=n;throw new Error(`Failed to load Claude SDK: ${l.message}`)}}function Y(n,l){if(l.length===0||l.find(m=>m.value===n))return n;let d=n.toLowerCase(),f=l.find(m=>m.value.toLowerCase().split("-").some(b=>b===d));return f?f.value:n}function O(n){return n.map(l=>({value:l.value,displayName:l.displayName,description:l.description,supportsEffort:l.supportsEffort,supportedEffortLevels:l.supportedEffortLevels}))}async function V(n,l){let p={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},d=null;try{d=n.query({prompt:p,options:{cwd:l}}),d[Symbol.asyncIterator]().next().catch(()=>{});let m=null,b=!!d.initializationResult,M=!!d.supportedModels;if(console.error(`[sdk-runner] probe: initializationResult=${b}, supportedModels=${M}`),d.initializationResult){let h=await Promise.race([d.initializationResult(),new Promise(w=>setTimeout(()=>w(null),8e3))]);if(h?.models?.length)m=h.models,console.error(`[sdk-runner] probe: initializationResult returned ${m.length} models`);else if(console.error("[sdk-runner] probe: initializationResult returned no models, trying supportedModels fallback"),d.supportedModels){let w=await Promise.race([d.supportedModels(),new Promise(N=>setTimeout(()=>N(null),8e3))]);w?.length?(m=w,console.error(`[sdk-runner] probe: supportedModels fallback returned ${m.length} models`)):console.error("[sdk-runner] probe: supportedModels fallback returned no models")}}else if(d.supportedModels){let h=await Promise.race([d.supportedModels(),new Promise(w=>setTimeout(()=>w(null),8e3))]);h?.length?(m=h,console.error(`[sdk-runner] probe: supportedModels returned ${m.length} models`)):console.error("[sdk-runner] probe: supportedModels returned no models")}else console.error("[sdk-runner] probe: neither initializationResult nor supportedModels available");m&&m.length>0?(u=O(m),!c&&u.length>0&&(c=u[0].value),console.error(`[sdk-runner] probe: sending model_info with ${u.length} models`),t({type:"model_info",model:c,models:u})):console.error("[sdk-runner] probe: no models found from any method")}catch(f){console.error(`[sdk-runner] probe: error fetching models: ${f.message}`)}finally{d?.close&&d.close()}}async function X(){if(!a)return;let n=E;try{for await(let l of a)F(s,l,t)}catch(l){if(n!==E)return;let p=l;if(s.isProcessing)if(s.isProcessing=!1,p.name==="AbortError"||o&&o.signal.aborted)t({type:"info",text:"Interrupted"}),t({type:"done",code:0});else{let f=(p.message||String(p)).toLowerCase(),m=f.includes("prompt is too long")||f.includes("context_length")||f.includes("maximum context length");t(m?{type:"error",text:"Conversation too long to continue."}:{type:"error",text:`Claude process error: ${p.message}`}),t({type:"done",code:1})}}finally{n===E&&(a=null,r=null,o=null,i&&i.clearPending(t))}}let T="done",D="",C=0,$=0,R=null;function Z(){v=n=>{if(n.type==="delta"&&typeof n.text=="string"&&(D+=n.text),n.type==="delta"&&typeof n.text=="string"){let l=n.text,p=l.matchAll(/teammate_id="([^"]+)"/g);for(let d of p){let f=d[1];(l.includes("idle_notification")||l.includes("online"))&&y({type:"teammate_status",parentToolId:"",teammateName:f,status:"idle",activityText:"Online"})}}if(n.type==="done"||n.type==="result"){if(T==="broadcast_test"){let l=D.toUpperCase(),p=l.includes("TEAM_READY")||l.includes("BROADCAST")&&l.includes("SUCCESS")||l.includes("MESSAGE SENT"),d=l.includes("TEAM_NEEDS_REBUILD")||l.includes("NOT IN A TEAM")||l.includes("NO TEAM")||l.includes("ERROR");p&&!d?(T="done",v=null,y({type:"agent_mode_status",statusText:"Team is ready!"}),y({type:"agent_mode_ready",success:!0}),y(n)):(T="spawning",D="",y({type:"agent_mode_status",statusText:"Spawning teammates\u2026"}),ee());return}if(T==="spawning"){q=!0,T="waiting_for_teammates",$=0,C=k.agents.filter(l=>l.agentType!=="team-lead").length,y({type:"agent_mode_status",statusText:`Waiting for ${C} teammates to come online\u2026`}),y(n),R=setTimeout(()=>{T==="waiting_for_teammates"&&(T="done",v=null,y({type:"agent_mode_status",statusText:"Team is ready!"}),y({type:"agent_mode_ready",success:!0}))},45e3);return}}if(T!=="done"){(n.type==="teammate_spawned"||n.type==="teammate_status"||n.type==="session_id")&&(y(n),T==="waiting_for_teammates"&&n.type==="teammate_spawned"&&($++,y({type:"agent_mode_status",statusText:`Teammates online: ${$}/${C}\u2026`}),$>=C&&(R&&(clearTimeout(R),R=null),T="done",v=null,y({type:"agent_mode_status",statusText:"Team is ready!"}),y({type:"agent_mode_ready",success:!0}))));return}y(n)}}function ee(){if(!r||!k.teamName){y({type:"agent_mode_ready",success:!1,error:"Cannot spawn team \u2014 no session or template"});return}(k.teamConfigDir?re(k.teamConfigDir,{recursive:!0,force:!0}).catch(()=>{}):Promise.resolve()).then(()=>{let l=k.agents.map(d=>{let f=d.defaultModel?` (model: ${d.defaultModel})`:"";return`- **${d.name}** \u2014 ${d.agentType||"general-purpose"}${f}: ${d.description}`}).join(`
|
|
4
|
-
`),p=[`Create an agent team called "${k.teamName.toLowerCase()}" with the following teammates, all using in-process mode:`,"",
|
|
5
|
-
`);r.push({type:"user",message:{role:"user",content:[{type:"text",text:p}]}})})}return{async startSession(n){let
|
|
6
|
-
`);r.push({type:"user",message:{role:"user",content:[{type:"text",text:n}]}})},async requestHistory(n,
|
|
1
|
+
import{createInterface as ce}from"node:readline";import{readdir as K,readFile as B,rm as re}from"node:fs/promises";import{join as A,basename as _e,resolve as z}from"node:path";import{homedir as ae}from"node:os";function F(t,e,r){if(e.session_id&&typeof e.session_id=="string"&&e.session_id!==t.cliSessionId&&(t.cliSessionId=e.session_id,r({type:"session_id",cliSessionId:t.cliSessionId,...t.relaySessionId?{relaySessionId:t.relaySessionId}:{}})),e.uuid&&typeof e.uuid=="string"&&(e.type==="user"&&!e.parent_tool_use_id?r({type:"message_uuid",uuid:e.uuid,messageType:"user"}):e.type==="assistant"&&r({type:"message_uuid",uuid:e.uuid,messageType:"assistant"})),e.type==="system"&&e.subtype==="init"){e.slash_commands&&Array.isArray(e.slash_commands)&&r({type:"slash_commands",commands:e.slash_commands}),e.model&&typeof e.model=="string"&&r({type:"model_info",model:e.model,models:[]}),e.fast_mode_state&&typeof e.fast_mode_state=="string"&&r({type:"fast_mode_state",state:e.fast_mode_state});return}if(e.type==="stream_event"&&e.event){te(t,e.event,r);return}if((e.type==="assistant"||e.type==="user")&&e.message&&typeof e.message=="object"){let o=e.message.content;if(e.parent_tool_use_id&&typeof e.parent_tool_use_id=="string"){oe(t,e,r);return}if(e.type==="assistant"&&!t.streamedText&&Array.isArray(o)){let s=o.filter(i=>i.type==="text").map(i=>i.text).join("");s&&r({type:"delta",text:s})}if(e.type==="user"){let s="";if(typeof o=="string"?s=o:Array.isArray(o)&&(s=o.filter(i=>i.type==="text").map(i=>i.text).join(`
|
|
2
|
+
`)),s.indexOf("local-command-stdout")!==-1){let i=s.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);i&&r({type:"slash_command_result",text:i[1].trim()})}}if(Array.isArray(o)){for(let s of o)if(s.type==="tool_result"&&typeof s.tool_use_id=="string"&&!t.sentToolResults[s.tool_use_id]){t.activeTaskToolIds[s.tool_use_id]&&(r({type:"subagent_done",parentToolId:s.tool_use_id}),delete t.activeTaskToolIds[s.tool_use_id]);let i=t.teammateMap[s.tool_use_id];i&&(r({type:"teammate_status",parentToolId:s.tool_use_id,teammateName:i,status:s.is_error?"error":"idle"}),delete t.teammateMap[s.tool_use_id]);let l="";typeof s.content=="string"?l=s.content:Array.isArray(s.content)&&(l=s.content.filter(u=>u.type==="text").map(u=>u.text).join(`
|
|
3
|
+
`)),t.sentToolResults[s.tool_use_id]=!0,r({type:"tool_result",id:s.tool_use_id,content:l,is_error:s.is_error||!1})}}return}if(e.type==="result"){t.blocks={},t.sentToolResults={},t.activeTaskToolIds={},t.taskIdMap={},t.teammateMap={},t.isProcessing=!1,r({type:"result",cost:e.total_cost_usd??null,duration:e.duration_ms??null,usage:e.usage??null,modelUsage:e.modelUsage??null,sessionId:e.session_id}),e.fast_mode_state&&typeof e.fast_mode_state=="string"&&r({type:"fast_mode_state",state:e.fast_mode_state}),r({type:"done",code:0}),t.responsePreview="",t.streamedText=!1;return}if(e.type==="system"&&e.subtype==="status"){e.status==="compacting"?(r({type:"compacting",active:!0}),t.compacting=!0):t.compacting&&(r({type:"compacting",active:!1}),t.compacting=!1);return}if(e.type==="system"&&e.subtype==="task_started"){let a=e.tool_use_id;a&&(e.task_id&&(t.taskIdMap[a]=e.task_id),r({type:"task_started",parentToolId:a,taskId:e.task_id||"",description:e.description||""}));return}if(e.type==="system"&&e.subtype==="task_progress"){let a=e.tool_use_id||void 0,o=e.task_id,s=a||(o?Object.keys(t.taskIdMap).find(i=>t.taskIdMap[i]===o):void 0);if(s){r({type:"task_progress",parentToolId:s,taskId:o,usage:e.usage??null,lastToolName:e.last_tool_name||void 0,description:e.description||""});let i=t.teammateMap[s];if(i){let l=e.description||(e.last_tool_name?`Running ${e.last_tool_name}...`:void 0);r({type:"teammate_status",parentToolId:s,teammateName:i,status:"active",activityText:l})}}return}if(e.type==="tool_progress"){let a=e.parent_tool_use_id;if(a){r({type:"subagent_activity",parentToolId:a,text:e.content||""});let o=t.teammateMap[a];o&&r({type:"teammate_status",parentToolId:a,teammateName:o,status:"active",activityText:e.content||void 0})}return}if(e.type==="system"&&e.subtype==="task_notification"){let a=e.tool_use_id||void 0,o=e.task_id,s=a||(o?Object.keys(t.taskIdMap).find(i=>t.taskIdMap[i]===o):void 0);if(s){r({type:"subagent_done",parentToolId:s,status:e.status||"completed",summary:e.summary||"",usage:e.usage??null});let i=t.teammateMap[s];if(i){let l=e.status==="error"||e.status==="failed";r({type:"teammate_status",parentToolId:s,teammateName:i,status:l?"error":"idle",activityText:e.summary||void 0}),delete t.teammateMap[s]}}if(o){for(let i of Object.keys(t.taskIdMap))if(t.taskIdMap[i]===o){delete t.taskIdMap[i];break}}return}if(e.type==="rate_limit_event"&&e.rate_limit_info){let a=e.rate_limit_info;(a.status==="allowed_warning"||a.status==="rejected")&&r({type:"rate_limit",status:a.status,resetsAt:a.resetsAt?a.resetsAt*1e3:null,rateLimitType:a.rateLimitType||null,utilization:a.utilization||null});return}if(e.type==="prompt_suggestion"){r({type:"prompt_suggestion",suggestion:e.suggestion||""});return}}function te(t,e,r){if(e.type==="content_block_start"){let a=e.content_block,o=e.index;a.type==="tool_use"?(t.blocks[o]={type:"tool_use",id:a.id,name:a.name,inputJson:""},r({type:"tool_start",id:a.id,name:a.name})):a.type==="thinking"?(t.blocks[o]={type:"thinking",thinkingText:"",startTime:Date.now()},r({type:"thinking_start"})):a.type==="text"&&(t.blocks[o]={type:"text"});return}if(e.type==="content_block_delta"&&e.delta){let a=e.index,o=e.delta;if(o.type==="text_delta"&&typeof o.text=="string"){if(t.streamedText=!0,t.responsePreview.length<200&&(t.responsePreview+=o.text),r({type:"delta",text:o.text}),t.teamActive){let s=o.text.matchAll(/teammate_id="([^"]+)"/g);for(let i of s){let l=i[1];(o.text.includes("idle_notification")||o.text.includes('"idleReason"'))&&r({type:"teammate_status",parentToolId:"",teammateName:l,status:"idle",activityText:"Idle"})}}}else o.type==="input_json_delta"&&t.blocks[a]?t.blocks[a].inputJson=(t.blocks[a].inputJson||"")+o.partial_json:o.type==="thinking_delta"&&t.blocks[a]&&(t.blocks[a].thinkingText=(t.blocks[a].thinkingText||"")+o.thinking,r({type:"thinking_delta",text:o.thinking}));return}if(e.type==="content_block_stop"){let a=e.index,o=t.blocks[a];if(o&&o.type==="tool_use"){let s={};try{s=JSON.parse(o.inputJson||"{}")}catch{}r({type:"tool_executing",id:o.id,name:o.name,input:s});let i=o.name;if((i==="Task"||i==="Agent"||i==="TeammateTool")&&(t.activeTaskToolIds[o.id]=!0,t.teamActive)){let l=s;if(l){let u=l.teammate_name||l.name||l.subagent_type,y=l.team_name||void 0;u&&(t.teammateMap[o.id]=u,r({type:"teammate_spawned",parentToolId:o.id,teammateName:u,teamName:y,description:l.description||l.prompt||""}))}}if(t.teamActive&&i==="SendMessage"){let l=s;if(l){let u=l.to;u&&u!=="*"&&r({type:"teammate_status",parentToolId:o.id,teammateName:u,status:"active",activityText:"Processing message\u2026"})}}}else if(o&&o.type==="thinking"){let s=o.startTime?(Date.now()-o.startTime)/1e3:0;r({type:"thinking_stop",duration:s})}delete t.blocks[a];return}}function oe(t,e,r){let a=e.parent_tool_use_id,s=e.message.content;if(Array.isArray(s)&&e.type==="assistant")for(let i of s)if(i.type==="tool_use"){let l=se(i.name,i.input);r({type:"subagent_tool",parentToolId:a,toolName:i.name,toolId:i.id,text:l})}else i.type==="thinking"?r({type:"subagent_activity",parentToolId:a,text:"Thinking..."}):i.type==="text"&&i.text&&r({type:"subagent_activity",parentToolId:a,text:"Writing response..."})}function se(t,e){return t==="Bash"&&e?.description?e.description:t==="Read"&&e?.file_path?"Reading "+e.file_path.split("/").pop():t==="Edit"&&e?.file_path?"Editing "+e.file_path.split("/").pop():t==="Write"&&e?.file_path?"Writing "+e.file_path.split("/").pop():t==="Grep"&&e?.pattern?"Searching for "+e.pattern:t==="Glob"&&e?.pattern?"Finding "+e.pattern:t==="WebSearch"&&e?.query?"Searching: "+e.query:t==="WebFetch"?"Fetching URL...":t==="Task"&&e?.description?e.description:"Running "+t+"..."}function W(){let t=[],e=null,r=!1;return{push(a){if(!r)if(e){let o=e;e=null,o({value:a,done:!1})}else t.push(a)},end(){if(r=!0,e){let a=e;e=null,a({value:void 0,done:!0})}},[Symbol.asyncIterator](){return{next(){return t.length>0?Promise.resolve({value:t.shift(),done:!1}):r?Promise.resolve({value:void 0,done:!0}):new Promise(a=>{e=a})}}}}}import{randomUUID as ne}from"node:crypto";function J(t){let e={},r={},a={};return{handleCanUseTool(o,s,i){return o==="AskUserQuestion"?new Promise(l=>{r[i.toolUseID]={resolve:l,input:s},i.signal&&i.signal.addEventListener("abort",()=>{delete r[i.toolUseID],t({type:"ask_user_answered",toolId:i.toolUseID}),l({behavior:"deny",message:"Cancelled"})})}):a[o]?Promise.resolve({behavior:"allow",updatedInput:s}):new Promise(l=>{let u=ne();e[u]={resolve:l,requestId:u,toolName:o,toolInput:s,toolUseId:i.toolUseID},t({type:"permission_request",requestId:u,toolName:o,toolInput:s,toolUseId:i.toolUseID,decisionReason:i.decisionReason||""}),i.signal&&i.signal.addEventListener("abort",()=>{delete e[u],t({type:"permission_cancel",requestId:u}),l({behavior:"deny",message:"Request cancelled"})})})},handlePermissionResponse(o,s,i){let l=e[o];if(!l&&o.startsWith("hydrated-")){let u=o.slice(9),y=Object.keys(e).find(x=>e[x].toolUseId===u);y&&(l=e[y])}l&&(delete e[l.requestId],t({type:"permission_resolved",requestId:l.requestId,decision:s}),o!==l.requestId&&t({type:"permission_resolved",requestId:o,decision:s}),s==="allow"?(i&&(a[l.toolName]=!0),l.resolve({behavior:"allow",updatedInput:l.toolInput})):l.resolve({behavior:"deny",message:"User denied"}))},handleAskUserResponse(o,s){let i=r[o];if(!i)return;delete r[o],t({type:"ask_user_answered",toolId:o});let l=Object.assign({},i.input,{answers:s});i.resolve({behavior:"allow",updatedInput:l})},clearPending(o){for(let s of Object.keys(r))o({type:"ask_user_answered",toolId:s}),r[s].resolve({behavior:"deny",message:"Session ended"}),delete r[s];for(let s of Object.keys(e))o({type:"permission_cancel",requestId:s}),e[s].resolve({behavior:"deny",message:"Session ended"}),delete e[s]}}}function j(){return{cliSessionId:null,relaySessionId:null,blocks:{},sentToolResults:{},streamedText:!1,responsePreview:"",activeTaskToolIds:{},taskIdMap:{},teammateMap:{},teamActive:!1,isProcessing:!1,compacting:!1}}var S={agents:[],teamName:null,leadSessionId:null,teamConfigDir:null};function G(t,e){let r=JSON.parse(t);if(!r.members||r.members.length===0)return S;let a=[];for(let o of r.members)o.agentType!=="team-lead"&&a.push({id:o.name.toLowerCase().replace(/\s+/g,"-"),name:o.name,description:o.prompt||`${o.agentType} agent`,systemPrompt:o.prompt||"",defaultModel:o.model,agentType:o.agentType,color:o.color});return{agents:a,teamName:r.name||null,leadSessionId:r.leadSessionId||null,teamConfigDir:e}}async function ie(t){let e=A(ae(),".claude","teams"),r=z(t);try{let a=await K(e);for(let o of a)try{let s=A(e,o),i=await B(A(s,"config.json"),"utf-8");if(!JSON.parse(i).members?.some(y=>y.cwd&&z(y.cwd)===r))continue;return G(i,s)}catch{}return S}catch{return S}}async function le(t){let e=A(t,".claude","teams");try{let r=await K(e);for(let a of r)try{let o=A(e,a),s=await B(A(o,"config.json"),"utf-8");return G(s,o)}catch{}return S}catch{return S}}function H(t){let e=null,r=null,a=null,o=null,s=j(),i=null,l="",u=[],y="acceptEdits",x="medium",U="",E=0,k=S,q=!1,v=null,g=t;t=n=>{if(n.type==="model_info"&&(n.models&&n.models.length>0&&(u=n.models),n.models=u,n.model&&(l=n.model)),v){v(n);return}g(n)};async function O(){if(e)return e;try{return e=await import("@anthropic-ai/claude-agent-sdk"),e}catch(n){let c=n;throw new Error(`Failed to load Claude SDK: ${c.message}`)}}function Y(n,c){if(c.length===0||c.find(m=>m.value===n))return n;let d=n.toLowerCase(),f=c.find(m=>m.value.toLowerCase().split("-").some(b=>b===d));return f?f.value:n}function L(n){return n.map(c=>({value:c.value,displayName:c.displayName,description:c.description,supportsEffort:c.supportsEffort,supportedEffortLevels:c.supportedEffortLevels}))}async function V(n,c){let p={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},d=null;try{d=n.query({prompt:p,options:{cwd:c}}),d[Symbol.asyncIterator]().next().catch(()=>{});let m=null,b=!!d.initializationResult,M=!!d.supportedModels;if(console.error(`[sdk-runner] probe: initializationResult=${b}, supportedModels=${M}`),d.initializationResult){let h=await Promise.race([d.initializationResult(),new Promise(w=>setTimeout(()=>w(null),8e3))]);if(h?.models?.length)m=h.models,console.error(`[sdk-runner] probe: initializationResult returned ${m.length} models`);else if(console.error("[sdk-runner] probe: initializationResult returned no models, trying supportedModels fallback"),d.supportedModels){let w=await Promise.race([d.supportedModels(),new Promise(N=>setTimeout(()=>N(null),8e3))]);w?.length?(m=w,console.error(`[sdk-runner] probe: supportedModels fallback returned ${m.length} models`)):console.error("[sdk-runner] probe: supportedModels fallback returned no models")}}else if(d.supportedModels){let h=await Promise.race([d.supportedModels(),new Promise(w=>setTimeout(()=>w(null),8e3))]);h?.length?(m=h,console.error(`[sdk-runner] probe: supportedModels returned ${m.length} models`)):console.error("[sdk-runner] probe: supportedModels returned no models")}else console.error("[sdk-runner] probe: neither initializationResult nor supportedModels available");m&&m.length>0?(u=L(m),!l&&u.length>0&&(l=u[0].value),console.error(`[sdk-runner] probe: sending model_info with ${u.length} models`),t({type:"model_info",model:l,models:u})):console.error("[sdk-runner] probe: no models found from any method")}catch(f){console.error(`[sdk-runner] probe: error fetching models: ${f.message}`)}finally{d?.close&&d.close()}}async function X(){if(!a)return;let n=E;try{for await(let c of a)F(s,c,t)}catch(c){if(n!==E)return;let p=c;if(s.isProcessing)if(s.isProcessing=!1,p.name==="AbortError"||o&&o.signal.aborted)t({type:"info",text:"Interrupted"}),t({type:"done",code:0});else{let f=(p.message||String(p)).toLowerCase(),m=f.includes("prompt is too long")||f.includes("context_length")||f.includes("maximum context length");t(m?{type:"error",text:"Conversation too long to continue."}:{type:"error",text:`Claude process error: ${p.message}`}),t({type:"done",code:1})}}finally{n===E&&(a=null,r=null,o=null,i&&i.clearPending(t))}}let I="done",D="",C=0,$=0,R=null;function Z(){v=n=>{if(n.type==="delta"&&typeof n.text=="string"&&(D+=n.text),n.type==="delta"&&typeof n.text=="string"){let c=n.text,p=c.matchAll(/teammate_id="([^"]+)"/g);for(let d of p){let f=d[1];(c.includes("idle_notification")||c.includes("online"))&&g({type:"teammate_status",parentToolId:"",teammateName:f,status:"idle",activityText:"Online"})}}if(n.type==="done"||n.type==="result"){if(I==="broadcast_test"){let c=D.toUpperCase(),p=c.includes("TEAM_READY")||c.includes("BROADCAST")&&c.includes("SUCCESS")||c.includes("MESSAGE SENT"),d=c.includes("TEAM_NEEDS_REBUILD")||c.includes("NOT IN A TEAM")||c.includes("NO TEAM")||c.includes("ERROR");p&&!d?(I="done",v=null,g({type:"agent_mode_status",statusText:"Team is ready!"}),g({type:"agent_mode_ready",success:!0}),g(n)):(I="spawning",D="",g({type:"agent_mode_status",statusText:"Spawning teammates\u2026"}),ee());return}if(I==="spawning"){q=!0,I="waiting_for_teammates",$=0,C=k.agents.filter(c=>c.agentType!=="team-lead").length,g({type:"agent_mode_status",statusText:`Waiting for ${C} teammates to come online\u2026`}),g(n),R=setTimeout(()=>{I==="waiting_for_teammates"&&(I="done",v=null,g({type:"agent_mode_status",statusText:"Team is ready!"}),g({type:"agent_mode_ready",success:!0}))},45e3);return}}if(I!=="done"){(n.type==="teammate_spawned"||n.type==="teammate_status"||n.type==="session_id")&&(g(n),I==="waiting_for_teammates"&&n.type==="teammate_spawned"&&($++,g({type:"agent_mode_status",statusText:`Teammates online: ${$}/${C}\u2026`}),$>=C&&(R&&(clearTimeout(R),R=null),I="done",v=null,g({type:"agent_mode_status",statusText:"Team is ready!"}),g({type:"agent_mode_ready",success:!0}))));return}g(n)}}function ee(){if(!r||!k.teamName){g({type:"agent_mode_ready",success:!1,error:"Cannot spawn team \u2014 no session or template"});return}(k.teamConfigDir?re(k.teamConfigDir,{recursive:!0,force:!0}).catch(()=>{}):Promise.resolve()).then(()=>{let c=k.agents.map(d=>{let f=d.defaultModel?` (model: ${d.defaultModel})`:"";return`- **${d.name}** \u2014 ${d.agentType||"general-purpose"}${f}: ${d.description}`}).join(`
|
|
4
|
+
`),p=[`Create an agent team called "${k.teamName.toLowerCase()}" with the following teammates, all using in-process mode:`,"",c,"","Use teammate-mode in-process. Spawn all teammates now. After they are all running, confirm the team is ready.","Do NOT start any tasks yet \u2014 just set up the team."].join(`
|
|
5
|
+
`);r.push({type:"user",message:{role:"user",content:[{type:"text",text:p}]}})})}return{async startSession(n){let c=await O();u.length===0?(console.error("[sdk-runner] startSession: no cached models, launching probe"),V(c,n.cwd).catch(m=>{console.error(`[sdk-runner] startSession: probe failed: ${m.message}`)})):console.error(`[sdk-runner] startSession: ${u.length} models already cached, skipping probe`),q=!1;let p=S;try{p=await le(n.cwd)}catch{}let d=S;try{d=await ie(n.cwd)}catch{}p.agents.length>0?k={agents:p.agents,teamName:p.teamName||d.teamName,leadSessionId:d.leadSessionId,teamConfigDir:d.teamConfigDir}:k={agents:[],teamName:d.teamName,leadSessionId:d.leadSessionId,teamConfigDir:d.teamConfigDir},t({type:"agent_team_loaded",agents:k.agents}),E++,s=j(),s.isProcessing=!0,s.teamActive=k.agents.length>0,n.relaySessionId&&(s.relaySessionId=n.relaySessionId),i=J(t),r=W(),o=new AbortController,U=n.cwd;let f={cwd:n.cwd,settingSources:["user","project","local"],includePartialMessages:!0,enableFileCheckpointing:!0,abortController:o,promptSuggestions:!0,canUseTool:(m,b,M)=>i.handleCanUseTool(m,b,M)};if(k.teamName&&(f.env={...process.env,CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS:"1",CLAUDE_CODE_TEAM_NAME:k.teamName.toLowerCase()}),n.model&&(f.model=n.model,l=n.model),n.permissionMode?(f.permissionMode=n.permissionMode,y=n.permissionMode):f.permissionMode=y,f.effort=x,n.resume){if(f.resume=n.resume,s.cliSessionId=n.resume,c.getSessionMessages)try{let m=await c.getSessionMessages(n.resume);m&&m.length>0&&t({type:"session_history",messages:m,...s.relaySessionId?{relaySessionId:s.relaySessionId}:{}})}catch(m){t({type:"info",text:`Could not restore session history: ${m.message}`})}t({type:"config_state",model:l,mode:y,effort:x,betas:[]})}try{a=c.query({prompt:r,options:f})}catch(m){let b=m;s.isProcessing=!1,a=null,r=null,o=null,t({type:"error",text:`Failed to start query: ${b.message}`}),t({type:"done",code:1});return}if(a?.supportedModels){let m=a;(async()=>{let M=[500,1500,3e3,5e3];for(let h=0;h<M.length;h++){if(u.length>0){console.error(`[sdk-runner] real query: models already populated (attempt ${h}), skipping`);return}try{console.error(`[sdk-runner] real query: calling supportedModels() attempt ${h}`);let w=await Promise.race([m.supportedModels(),new Promise(N=>setTimeout(()=>N(null),M[h]))]);if(w&&w.length>0){u=L(w),!l&&u.length>0&&(l=u[0].value),console.error(`[sdk-runner] real query: supportedModels returned ${u.length} models on attempt ${h}`),t({type:"model_info",model:l,models:u});return}console.error(`[sdk-runner] real query: supportedModels returned empty on attempt ${h}`)}catch(w){console.error(`[sdk-runner] real query: supportedModels error on attempt ${h}: ${w.message}`)}h<M.length-1&&await new Promise(w=>setTimeout(w,M[h]))}console.error("[sdk-runner] real query: all supportedModels attempts exhausted")})().catch(()=>{})}else console.error("[sdk-runner] real query: supportedModels not available on query instance");X().catch(()=>{})},activateAgentMode(){if(!r){g({type:"agent_mode_ready",success:!1,error:"No active session"});return}if(k.agents.length===0||!k.teamName){g({type:"agent_mode_ready",success:!1,error:"No team template found"});return}if(I!=="done")return;g({type:"agent_mode_status",statusText:"Checking team status\u2026"}),I="broadcast_test",D="",Z();let n=['You are activating VibeAgent mode. First, try to broadcast a ping to the team using SendMessage with to="*".',"If the broadcast succeeds, respond with exactly: TEAM_READY",'If the broadcast fails (e.g. "Not in a team context" or no teammates found), respond with exactly: TEAM_NEEDS_REBUILD',"Do not explain anything else \u2014 just respond with one of those two phrases."].join(`
|
|
6
|
+
`);r.push({type:"user",message:{role:"user",content:[{type:"text",text:n}]}})},async requestHistory(n,c){let p=await O(),d=c||s.relaySessionId;if(n&&p.getSessionMessages)try{let f=await p.getSessionMessages(n);f&&f.length>0&&t({type:"session_history",messages:f,...d?{relaySessionId:d}:{}})}catch(f){t({type:"info",text:`Could not restore session history: ${f.message}`})}u.length>0&&t({type:"model_info",model:l,models:u,...d?{relaySessionId:d}:{}}),t({type:"config_state",model:l,mode:y,effort:x,betas:[],...d?{relaySessionId:d}:{}})},pushUserMessage(n,c,p){if(p&&n&&(n=`Use SendMessage to send the following to teammate "${p}":
|
|
7
7
|
|
|
8
|
-
${n}`),n&&n.startsWith("/")){let f=n.split(/\s/)[0].toLowerCase();if(f==="/clear"){E++,o&&o.abort(),r&&r.end(),this.startSession({cwd:U,model:
|
|
9
|
-
`)});return}}if(!r){t({type:"error",text:"No active session"});return}let d=[];if(
|
|
10
|
-
`)}function
|
|
11
|
-
`)}var
|
|
8
|
+
${n}`),n&&n.startsWith("/")){let f=n.split(/\s/)[0].toLowerCase();if(f==="/clear"){E++,o&&o.abort(),r&&r.end(),this.startSession({cwd:U,model:l||void 0,permissionMode:y||void 0}).then(()=>{t({type:"slash_command_result",command:"clear",text:"Conversation cleared."})}).catch(m=>{t({type:"error",text:`Failed to clear session: ${m.message}`})});return}if(f==="/status"){let m=["**Bridge Status**","",`**Model:** ${l||"(not set)"}`,`**Available Models:** ${u.length>0?u.map(b=>`${b.displayName} (${b.value})`).join(", "):"(none discovered yet)"}`,`**Effort:** ${x}`,`**Permission Mode:** ${y}`,`**Session Active:** ${a?"yes":"no"}`,`**CLI Session:** ${s.cliSessionId||"(none)"}`,`**Working Directory:** ${U||"(not set)"}`,"","**Raw SDK Model Data:**","```json",JSON.stringify(u,null,2),"```"];t({type:"slash_command_result",command:"status",text:m.join(`
|
|
9
|
+
`)});return}}if(!r){t({type:"error",text:"No active session"});return}let d=[];if(c&&c.length>0)for(let f of c)d.push({type:"image",source:{type:"base64",media_type:f.mediaType,data:f.data}});n&&d.push({type:"text",text:n}),s.isProcessing=!0,s.streamedText=!1,s.responsePreview="",s.blocks={},s.sentToolResults={},r.push({type:"user",message:{role:"user",content:d}})},interrupt(){a?.interrupt?a.interrupt().catch(()=>{o&&o.abort()}):o&&o.abort()},async setModel(n){let c=Y(n,u);if(!a?.setModel){l=c,t({type:"model_info",model:c,models:u});return}try{await a.setModel(c),l=c,t({type:"model_info",model:c,models:[]}),t({type:"config_state",model:l,mode:y,effort:x,betas:[]})}catch(p){t({type:"error",text:`Failed to switch model: ${p.message}`})}},async setMode(n){if(!a?.setPermissionMode){y=n,t({type:"config_state",model:l,mode:y,effort:x,betas:[]});return}try{await a.setPermissionMode(n),y=n,t({type:"config_state",model:l,mode:y,effort:x,betas:[]})}catch(c){t({type:"error",text:`Failed to set permission mode: ${c.message}`})}},setEffort(n){["low","medium","high","max"].includes(n)||(console.warn(`[sdk-runner] Unknown effort level "${n}", defaulting to medium`),n="medium"),x=n,t({type:"config_state",model:l,mode:y,effort:x,betas:[]})},handlePermissionResponse(n,c,p){i?.handlePermissionResponse(n,c,p)},handleAskUserResponse(n,c){i?.handleAskUserResponse(n,c)},shutdown(){a?.close?a.close():o&&o.abort(),r&&r.end()}}}function P(t){let e=JSON.stringify(t);process.stdout.write(e+`
|
|
10
|
+
`)}function _(t,e,r){let a={level:t,message:e,ts:new Date().toISOString(),...r};process.stderr.write(JSON.stringify(a)+`
|
|
11
|
+
`)}var T=H(P),Q=ce({input:process.stdin,crlfDelay:1/0});Q.on("line",async t=>{if(!t.trim())return;let e;try{e=JSON.parse(t)}catch{_("error","Failed to parse inbound message",{raw:t.slice(0,200)});return}try{switch(e.type){case"start_session":_("info","Starting session",{cwd:e.cwd,model:e.model}),await T.startSession({cwd:e.cwd,model:e.model,permissionMode:e.permissionMode,resume:e.resume,relaySessionId:e.relaySessionId});break;case"user_message":_("info","User message received",{textLength:e.text?.length??0,targetAgentId:e.targetAgentId}),T.pushUserMessage(e.text,e.images,e.targetAgentId);break;case"interrupt":_("info","Interrupt requested"),T.interrupt();break;case"permission_response":_("info","Permission response",{requestId:e.requestId,decision:e.decision}),T.handlePermissionResponse(e.requestId,e.decision,e.allowForSession);break;case"ask_user_response":_("info","Ask user response",{toolId:e.toolId}),T.handleAskUserResponse(e.toolId,e.answers);break;case"set_model":_("info","Set model",{model:e.model}),await T.setModel(e.model);break;case"set_mode":_("info","Set mode",{mode:e.mode}),await T.setMode(e.mode);break;case"set_effort":_("info","Set effort",{effort:e.effort}),T.setEffort(e.effort);break;case"activate_agent_mode":_("info","Activate agent mode requested"),T.activateAgentMode();break;case"request_history":_("info","History request",{resume:e.resume}),await T.requestHistory(e.resume,e.relaySessionId);break;case"ping":P({type:"pong"});break;case"shutdown":_("info","Shutdown requested"),T.shutdown(),setTimeout(()=>process.exit(0),500);break;default:_("warn","Unknown message type",{type:e.type})}}catch(r){let a=r;_("error",`Error handling message type=${e.type}`,{error:a.message}),P({type:"error",text:`Internal bridge error: ${a.message}`})}});Q.on("close",()=>{_("info","stdin closed, shutting down"),T.shutdown(),setTimeout(()=>process.exit(0),500)});process.on("uncaughtException",t=>{_("error","Uncaught exception",{error:t.message,stack:t.stack}),P({type:"error",text:`Bridge crash: ${t.message}`}),P({type:"done",code:1}),process.exit(1)});process.on("unhandledRejection",t=>{let e=t instanceof Error?t.message:String(t);_("error","Unhandled rejection",{error:e})});P({type:"ready"});_("info","SDK bridge ready");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibetonomy/agent",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"description": "Vibetonomy agent — managed Claude Code sessions via npx",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"@anthropic-ai/claude-agent-sdk": "0.2.80"
|
|
16
16
|
},
|
|
17
17
|
"optionalDependencies": {
|
|
18
|
-
"@vibetonomy/agent-linux-x64": "1.3.
|
|
19
|
-
"@vibetonomy/agent-linux-arm64": "1.3.
|
|
20
|
-
"@vibetonomy/agent-darwin-arm64": "1.3.
|
|
21
|
-
"@vibetonomy/agent-darwin-x64": "1.3.
|
|
22
|
-
"@vibetonomy/agent-win-x64": "1.3.
|
|
18
|
+
"@vibetonomy/agent-linux-x64": "1.3.6",
|
|
19
|
+
"@vibetonomy/agent-linux-arm64": "1.3.6",
|
|
20
|
+
"@vibetonomy/agent-darwin-arm64": "1.3.6",
|
|
21
|
+
"@vibetonomy/agent-darwin-x64": "1.3.6",
|
|
22
|
+
"@vibetonomy/agent-win-x64": "1.3.6"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
25
|
"node": ">=18.0.0"
|