eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.29 kB
JavaScript
async function selectWorkspaceAgent(e,t){let n=e.members.map(e=>e.name);if(t!==void 0){let r=e.members.find(e=>e.name===t);if(r===void 0)throw Error(`Unknown agent ${JSON.stringify(t)}. Available agents: ${n.join(`, `)}.`);return r.appRoot}if(e.members.length===1)return e.members[0].appRoot;if(!(process.stdin.isTTY&&process.stdout.isTTY))throw Error(`This command requires a specific agent. Pass --agent <name>. Available agents: ${n.join(`, `)}.`);let{createPrompter:r}=await import(`#setup/prompter.js`),i=await r().select({message:`Select an agent`,options:e.members.map(e=>({label:e.name,value:e.name})),search:e.members.length>8});return e.members.find(e=>e.name===i).appRoot}function agentCommand(e,t,n=()=>!0){return e.option(`--agent <name>`,`Select an agent from an agents/ workspace`),e.hook(`preAction`,async(e,r)=>{let i=r.opts().agent;if(!n(r)){if(i!==void 0)throw Error(`--agent cannot be combined with a remote URL target.`);return}let a=await t.resolveAgent();if(a.kind===`workspace`){t.root=await selectWorkspaceAgent(a.workspace,i),await t.resolve();return}await t.resolve();let o=await t.resolveAgent();if(i!==void 0&&(o.kind!==`workspace-member`||o.member.name!==i))throw Error(`--agent can only select a member of the enclosing agents/ workspace.`)})}export{agentCommand};