@robota-sdk/agent-command 3.0.0-beta.68 → 3.0.0-beta.70
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/dist/node/index.cjs +34 -31
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +34 -31
- package/dist/node/index.js.map +1 -1
- package/package.json +3 -3
- package/src/background/__tests__/background-command-module.test.ts +1 -0
- package/src/compact/__tests__/compact-command-module.test.ts +1 -0
- package/src/context/__tests__/context-command-module.test.ts +61 -5
- package/src/context/context-command.ts +193 -13
- package/src/exit/exit-command-module.ts +6 -0
- package/src/help/__tests__/help-command-module.test.ts +1 -0
- package/src/help/__tests__/help-command.test.ts +1 -0
- package/src/language/language-command-module.ts +14 -0
- package/src/mode/mode-command-module.ts +14 -0
- package/src/plugin/__tests__/plugin-command-module.test.ts +1 -0
- package/src/provider/provider-command-module.ts +14 -0
- package/src/session/__tests__/session-command-module.test.ts +1 -0
- package/src/session/session-command-module.ts +6 -0
package/dist/node/index.cjs
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@robota-sdk/agent-framework`),t=require(`@robota-sdk/agent-core`),n=require(`node:path`),r=require(`node:fs`),i=require(`node:child_process`),a=require(`node:os`);function o(e){let t=[],n=``,r,i=!1;for(let a of e){if(i){n+=a,i=!1;continue}if(r&&a===`\\`){i=!0;continue}if(r){a===r?r=void 0:n+=a;continue}if(a===`"`||a===`'`){r=a;continue}if(/\s/.test(a)){n.length>0&&(t.push(n),n=``);continue}n+=a}return n.length>0&&t.push(n),t}function s(e){let t=[],n,r,i;for(let a=0;a<e.length;a+=1){let o=e[a];if(o!==`--background`){if(o===`--agent`||o===`--type`||o===`-a`){n=e[a+1],a+=1;continue}if(o===`--model`){r=e[a+1],a+=1;continue}if(o===`--isolation`){let t=e[a+1];(t===`none`||t===`worktree`)&&(i=t),a+=1;continue}o!==void 0&&t.push(o)}}return{positional:t,...n?{agentType:n}:{},...r?{model:r}:{},...i?{isolation:i}:{}}}function c(e,t,n,r){return{agentType:t,label:n,mode:`background`,prompt:r,...e.model?{model:e.model}:{},...e.isolation?{isolation:e.isolation}:{}}}function l(e,t){let n=s(e),[r,...i]=n.positional,a=n.agentType??`general-purpose`,o=n.positional;!n.agentType&&r&&t.has(r)&&(a=r,o=i);let l=o.join(` `).trim();if(l)return c(n,a,a,l)}function u(e,t){let n=s(e);return n.positional.map(e=>ee(e,n,t)).filter(e=>e!==void 0)}function ee(e,t,n){let r=e.indexOf(`=`);if(r>0)return te(e.slice(0,r),e.slice(r+1),t,n);let i=e.indexOf(`:`);if(i<=0||i===e.length-1)return;let a=e.slice(0,i),o=e.slice(i+1);return c(t,t.agentType??(n.has(a)?a:`general-purpose`),a,o)}function te(e,t,n,r){let i=t.indexOf(`:`);if(i===-1)return c(n,n.agentType??(r.has(e)?e:`general-purpose`),e,t);if(!(i===0||i===t.length-1))return c(n,t.slice(0,i),e,t.slice(i+1))}function d(e){return e instanceof Error?e.message:String(e)}function
|
|
2
|
-
`),success:!0,data:{agents:t.length,jobs:n.length}}}function
|
|
3
|
-
`),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id}}}async function
|
|
4
|
-
`)}${o}`:`No log lines: ${n}`,success:!0,data:{agentId:n,nextOffset:a.nextCursor?.offset}}}async function
|
|
5
|
-
`)}function
|
|
6
|
-
`)}${r}`:`No log lines: ${i}`,success:!0,data:{taskId:i,nextOffset:n.nextCursor?.offset}}}return r===`cancel`||r===`stop`?(await(0,e.cancelCommandBackgroundTask)(t,i,a.join(` `)||void 0),{message:`Background task cancelled: ${i}`,success:!0,data:{taskId:i}}):r===`close`||r===`dismiss`?(await(0,e.closeCommandBackgroundTask)(t,i),{message:`Background task closed: ${i}`,success:!0,data:{taskId:i}}):{message:`Unknown background action: ${r}`,success:!1}}function
|
|
7
|
-
`),success:!0,data:{before:r,after:i,beforeMessageCount:a,afterMessageCount:o}}}function
|
|
8
|
-
`);function
|
|
9
|
-
`),success:!0,data:{usedTokens:i.usedTokens,maxTokens:i.maxTokens,percentage:i.usedPercentage,autoCompactThreshold:a,autoCompactThresholdSource:o,references:
|
|
10
|
-
`),data:{autoCompactThreshold:n,autoCompactThresholdSource:r}}}if(r===`on`)return
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@robota-sdk/agent-framework`),t=require(`@robota-sdk/agent-core`),n=require(`node:path`),r=require(`node:fs`),i=require(`node:child_process`),a=require(`node:os`);function o(e){let t=[],n=``,r,i=!1;for(let a of e){if(i){n+=a,i=!1;continue}if(r&&a===`\\`){i=!0;continue}if(r){a===r?r=void 0:n+=a;continue}if(a===`"`||a===`'`){r=a;continue}if(/\s/.test(a)){n.length>0&&(t.push(n),n=``);continue}n+=a}return n.length>0&&t.push(n),t}function s(e){let t=[],n,r,i;for(let a=0;a<e.length;a+=1){let o=e[a];if(o!==`--background`){if(o===`--agent`||o===`--type`||o===`-a`){n=e[a+1],a+=1;continue}if(o===`--model`){r=e[a+1],a+=1;continue}if(o===`--isolation`){let t=e[a+1];(t===`none`||t===`worktree`)&&(i=t),a+=1;continue}o!==void 0&&t.push(o)}}return{positional:t,...n?{agentType:n}:{},...r?{model:r}:{},...i?{isolation:i}:{}}}function c(e,t,n,r){return{agentType:t,label:n,mode:`background`,prompt:r,...e.model?{model:e.model}:{},...e.isolation?{isolation:e.isolation}:{}}}function l(e,t){let n=s(e),[r,...i]=n.positional,a=n.agentType??`general-purpose`,o=n.positional;!n.agentType&&r&&t.has(r)&&(a=r,o=i);let l=o.join(` `).trim();if(l)return c(n,a,a,l)}function u(e,t){let n=s(e);return n.positional.map(e=>ee(e,n,t)).filter(e=>e!==void 0)}function ee(e,t,n){let r=e.indexOf(`=`);if(r>0)return te(e.slice(0,r),e.slice(r+1),t,n);let i=e.indexOf(`:`);if(i<=0||i===e.length-1)return;let a=e.slice(0,i),o=e.slice(i+1);return c(t,t.agentType??(n.has(a)?a:`general-purpose`),a,o)}function te(e,t,n,r){let i=t.indexOf(`:`);if(i===-1)return c(n,n.agentType??(r.has(e)?e:`general-purpose`),e,t);if(!(i===0||i===t.length-1))return c(n,t.slice(0,i),e,t.slice(i+1))}function d(e){return e instanceof Error?e.message:String(e)}function f(e){return new Set(e.listAgentDefinitions().map(e=>e.name))}function p(e,t){let n=e.listAgentDefinitions();if(!n.some(e=>e.name===t))return{message:`Unknown agent type: ${t}\nAvailable agents: ${n.map(e=>e.name).join(`, `)}`,success:!1}}async function ne(e,t){let n=p(e,t.agentType);if(n)return n;try{return{state:await e.spawnAgentJob(t)}}catch(e){return{message:d(e),success:!1}}}function re(){return{message:``,effects:[{type:`agent-switcher-requested`}],success:!0}}async function ie(e){let t=e.listAgentDefinitions(),n=e.listAgentJobs();return{message:[`Available agents:`,...t.map(e=>` ${e.name} - ${e.description}`),``,n.length===0?`No active agent jobs.`:`Agent jobs:`,...n.map(e=>` ${ae(e)}`)].join(`
|
|
2
|
+
`),success:!0,data:{agents:t.length,jobs:n.length}}}function ae(e){let t=[e.worktreePath?`worktree=${e.worktreePath}`:void 0,e.branchName?`branch=${e.branchName}`:void 0].filter(e=>e!==void 0),n=t.length>0?` ${t.join(` `)}`:``;return`${e.id} [${e.status}${n}] ${e.label} - ${e.promptPreview}`}async function oe(e,t){let n=l(t,f(e));if(!n)return{message:`Usage: agent run [AGENT_NAME] [--agent AGENT_NAME] PROMPT`,success:!1};let r=await ne(e,n);if(`success`in r)return r;let{state:i}=r;return{message:`Started agent job: ${i.id}`,success:!0,data:{agentId:i.id,status:i.status}}}async function se(t,n){let r=n.includes(`--wait`)||!n.includes(`--detach`),i=u(n.filter(e=>e!==`--wait`&&e!==`--detach`),f(t));if(i.length===0)return{message:`Usage: agent parallel [--wait|--detach] LABEL:"PROMPT" [LABEL=AGENT_NAME:"PROMPT"]`,success:!1};let a=i.map(e=>p(t,e.agentType)).find(e=>e!==void 0);if(a)return a;let o;try{o=await Promise.all(i.map(e=>t.spawnAgentJob(e)))}catch(e){return{message:d(e),success:!1}}let s=t.createBackgroundJobGroup({waitPolicy:`wait_all`,taskIds:o.map(e=>e.id),label:`agent parallel`});if(r){let n=(0,e.summarizeBackgroundJobGroup)(await t.waitBackgroundJobGroup(s.id));return{message:me(n),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id,summary:n}}}return{message:[`Started agent jobs:`,...o.map(e=>`${e.label}: ${e.id}`)].join(`
|
|
3
|
+
`),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id}}}async function ce(t,n){let[r]=n;if(!r)return{message:`Usage: agent wait GROUP_ID`,success:!1};let i=(0,e.summarizeBackgroundJobGroup)(await t.waitBackgroundJobGroup(r));return{message:me(i),success:!0,data:{groupId:r,summary:i}}}async function le(e,t){let[n,r]=t;if(!n)return{message:`Usage: agent read AGENT_ID [OFFSET]`,success:!1};let i=r?{offset:Number.parseInt(r,10)}:void 0,a=await e.readBackgroundTaskLog(n,i),o=a.nextCursor?`\nNext offset: ${a.nextCursor.offset}`:``;return{message:a.lines.length>0?`${a.lines.join(`
|
|
4
|
+
`)}${o}`:`No log lines: ${n}`,success:!0,data:{agentId:n,nextOffset:a.nextCursor?.offset}}}async function ue(e,t){let[n,...r]=t,i=r.join(` `).trim();return!n||!i?{message:`Usage: agent send AGENT_ID PROMPT`,success:!1}:(await e.sendAgentJob(n,i),{message:`Sent input to agent job: ${n}`,success:!0,data:{agentId:n}})}async function de(e,t){let[n,...r]=t;return n?(await e.cancelAgentJob(n,r.join(` `)||void 0),{message:`Agent job stopped: ${n}`,success:!0,data:{agentId:n}}):{message:`Usage: agent stop AGENT_ID [REASON]`,success:!1}}async function fe(e,t){let[n]=t;return n?(await e.closeAgentJob(n),{message:`Agent job closed: ${n}`,success:!0,data:{agentId:n}}):{message:`Usage: agent close AGENT_ID`,success:!1}}async function pe(e,t){try{if(t.trim()===``)return re();let[n=`list`,...r]=o(t);return n===`list`&&r.length===0?ie(e):n===`run`?oe(e,r):n===`parallel`?se(e,r):n===`wait`?ce(e,r):n===`read`||n===`open`?le(e,r):n===`send`?ue(e,r):n===`stop`||n===`cancel`?de(e,r):n===`close`?fe(e,r):oe(e,[n,...r])}catch(e){return{message:d(e),success:!1}}}function me(e){return[`Background job group ${e.groupId}: ${e.status} (${e.completed}/${e.total} completed, ${e.failed} failed, ${e.cancelled} cancelled, ${e.pending} pending)`,...e.lines].join(`
|
|
5
|
+
`)}function he(e){let t=e.getAgentJobCapability?.();if(!t)throw Error(`Agent job capability is not available in this context.`);return t}function ge(){return[{name:`list`,description:`List available agents and active jobs`,source:`agent`},{name:`run`,description:`Start one background agent job`,source:`agent`},{name:`parallel`,description:`Run multiple agents in parallel`,source:`agent`},{name:`wait`,description:`Wait for a background agent group summary`,source:`agent`},{name:`read`,description:`Read an agent job log page`,source:`agent`},{name:`send`,description:`Send follow-up input to an agent job`,source:`agent`},{name:`stop`,description:`Cancel a running agent job`,source:`agent`},{name:`close`,description:`Dismiss a terminal agent job`,source:`agent`},{name:`open`,description:`Focus an agent job detail view when supported`,source:`agent`}]}function m(){return{name:`agent`,displayName:`Agent Jobs`,description:[`Subagent jobs command.`,`Natural-language arguments start one background agent job.`,`When the user explicitly asks to create, run, spawn, delegate to, or use agents/subagents, start the requested agent command immediately and do not ask a follow-up question unless execution is impossible or unsafe.`,`If the target item is unspecified, include target selection inside the agent prompt instead of delaying execution.`,`The parallel form starts multiple background agent jobs as a wait_all group and returns a consolidated group summary unless --detach is present.`,`list, wait, read, send, stop, close, and open manage existing agent jobs.`].join(` `),source:`agent`,modelInvocable:!0,argumentHint:`PROMPT | AGENT_NAME PROMPT | list | parallel [--wait|--detach] LABEL:"PROMPT" [LABEL=AGENT_NAME:"PROMPT"] | wait GROUP_ID | read AGENT_ID [OFFSET] | send AGENT_ID PROMPT | stop AGENT_ID | close AGENT_ID`,safety:`background-agent`,subcommands:ge()}}function _e(){let e=m();return{name:e.name,...e.displayName===void 0?{}:{displayName:e.displayName},description:e.description,requiresPermission:!1,execute:(e,t)=>pe(he(e),t),...e.modelInvocable===void 0?{}:{modelInvocable:e.modelInvocable},...e.userInvocable===void 0?{}:{userInvocable:e.userInvocable},...e.argumentHint===void 0?{}:{argumentHint:e.argumentHint},...e.safety===void 0?{}:{safety:e.safety}}}var ve=class{name=`agent`;getCommands(){return[m()]}};function ye(){return{name:`agent-command-agent`,commandSources:[new ve],systemCommands:[_e()],sessionRequirements:[`agent-runtime`]}}function be(e){return e.trim().split(/\s+/).filter(Boolean)}async function xe(t,n){let[r=`list`,i,...a]=be(n);if(r===`list`){let n=(0,e.listCommandBackgroundTasks)(t);return{message:(0,e.formatCommandBackgroundTaskList)(n),success:!0,data:{count:n.length}}}if(!i)return{message:e.BACKGROUND_COMMAND_USAGE,success:!1};if(r===`read`||r===`log`||r===`open`){let n=await(0,e.readCommandBackgroundTaskLog)(t,i,(0,e.parseCommandBackgroundLogCursor)(a[0])),r=n.nextCursor?`\nNext offset: ${n.nextCursor.offset}`:``;return{message:n.lines.length>0?`${n.lines.join(`
|
|
6
|
+
`)}${r}`:`No log lines: ${i}`,success:!0,data:{taskId:i,nextOffset:n.nextCursor?.offset}}}return r===`cancel`||r===`stop`?(await(0,e.cancelCommandBackgroundTask)(t,i,a.join(` `)||void 0),{message:`Background task cancelled: ${i}`,success:!0,data:{taskId:i}}):r===`close`||r===`dismiss`?(await(0,e.closeCommandBackgroundTask)(t,i),{message:`Background task closed: ${i}`,success:!0,data:{taskId:i}}):{message:`Unknown background action: ${r}`,success:!1}}function h(){return{name:`background`,displayName:`Background Tasks`,description:e.BACKGROUND_COMMAND_DESCRIPTION,source:`background`,modelInvocable:!1,subcommands:(0,e.buildBackgroundCommandSubcommands)()}}function Se(){let e=h();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,subcommands:e.subcommands,execute:xe}}var Ce=class{name=`background`;getCommands(){return[h()]}};function we(){return{name:`agent-command-background`,commandSources:[new Ce],systemCommands:[Se()]}}function Te(e){let t=e.trim();return t.length>0?t:void 0}async function Ee(t,n){let{before:r,after:i,beforeMessageCount:a,afterMessageCount:o}=await(0,e.compactCommandContext)(t,Te(n)),s=a-o;return{message:[`Context compacted.`,` Removed messages: ${s} (${a>0?Math.round(s/a*100):0}% of total)`,` Context: ${Math.round(r.usedPercentage)}% → ${Math.round(i.usedPercentage)}%`].join(`
|
|
7
|
+
`),success:!0,data:{before:r,after:i,beforeMessageCount:a,afterMessageCount:o}}}function De(){return{name:`compact`,displayName:`Compact Context`,description:`Compress context window`,source:`compact`,modelInvocable:!0,argumentHint:`[instructions]`,safety:`write`,example:`/compact Summarize the current context`}}function Oe(){let e=De();return{name:e.name,displayName:e.displayName,description:e.description,example:e.example,requiresPermission:!1,userInvocable:!0,modelInvocable:e.modelInvocable,argumentHint:e.argumentHint,safety:e.safety,lifecycle:`blocking`,execute:Ee}}var ke=class{name=`compact`;getCommands(){return[De()]}};function Ae(){return{name:`agent-command-compact`,commandSources:[new ke],systemCommands:[Oe()]}}const g=[`Usage: /context [list] | add <path> | remove <path> | clear | auto on | off | <percent> | reset`,`Examples: /context list, /context add AGENTS.md, /context remove AGENTS.md, /context auto 85%`].join(`
|
|
8
|
+
`);function _(e){return e===!1?`disabled`:`${Math.round(e*100)}%`}function v(e,t){return e===!1?`Auto compact: disabled (${t})`:`Auto compact: ${_(e)} (${t})`}function je(e){return e?`settings`:`current session only`}async function Me(t,n){let r=n.trim().split(/\s+/).filter(e=>e.length>0);if(r.length>0)return Ne(t,r);let i=(0,e.readCommandContextState)(t),a=(0,e.readAutoCompactThreshold)(t),o=(0,e.readAutoCompactThresholdSource)(t),s=He(t.getSession().getFullHistory()),c=(0,e.listCommandContextReferences)(t);return{message:[`Context: ${i.usedTokens.toLocaleString()} / ${i.maxTokens.toLocaleString()} tokens (${Math.round(i.usedPercentage)}%)`,v(a,o),ze(c),`History: ${s.turnCount} turn${s.turnCount===1?``:`s`}`].join(`
|
|
9
|
+
`),success:!0,data:{usedTokens:i.usedTokens,maxTokens:i.maxTokens,percentage:i.usedPercentage,autoCompactThreshold:a,autoCompactThresholdSource:o,references:c}}}async function Ne(t,n){let[r,...i]=n;if(r===`list`)return i.length>0?{success:!1,message:g}:Ue(t);if(r===`add`)return Fe(t,i);if(r===`remove`)return Ie(t,i);if(r===`clear`){if(i.length>0)return{success:!1,message:g};let n=(0,e.clearCommandContextReferences)(t);return{success:!0,message:`Context references cleared: ${n.removed.length} removed.`,data:{removed:n.removed}}}return r===`auto`?Pe(t,i):{success:!1,message:g}}function Pe(t,n){let[r,i]=n;if(i!==void 0)return{success:!1,message:g};if(r===void 0){let n=(0,e.readAutoCompactThreshold)(t),r=(0,e.readAutoCompactThresholdSource)(t);return{success:!0,message:[v(n,r),g].join(`
|
|
10
|
+
`),data:{autoCompactThreshold:n,autoCompactThresholdSource:r}}}if(r===`on`)return y(t,e.DEFAULT_AUTO_COMPACT_THRESHOLD,`enabled`);if(r===`off`)return y(t,!1,`disabled`);if(r===`reset`){let n=(0,e.resetAutoCompactThresholdSetting)(t);return(0,e.setCommandAutoCompactThreshold)(t,e.DEFAULT_AUTO_COMPACT_THRESHOLD,`default`),{success:!0,message:`Auto compact reset to default: ${_(e.DEFAULT_AUTO_COMPACT_THRESHOLD)} (${je(n)}).`,data:{autoCompactThreshold:e.DEFAULT_AUTO_COMPACT_THRESHOLD,autoCompactThresholdSource:`default`,persisted:n}}}let a=Re(r);return a.success?y(t,a.threshold,`threshold set`):{success:!1,message:`${a.message}\n${g}`}}async function Fe(t,n){let r=n.join(` `).trim();if(!r)return{success:!1,message:g};let i=await(0,e.addCommandContextReference)(t,r);return i.reference?{success:!0,message:[`Context reference added: ${x(i.reference)}.`,...i.evicted.length>0?[`Evicted ${i.evicted.length} older context reference(s).`]:[]].join(`
|
|
11
11
|
`),data:{reference:i.reference,evicted:i.evicted}}:{success:!1,message:i.diagnostics.join(`
|
|
12
|
-
`)||`Context reference not found: ${r}`,data:{diagnostics:i.diagnostics}}}function
|
|
13
|
-
`)
|
|
12
|
+
`)||`Context reference not found: ${r}`,data:{diagnostics:i.diagnostics}}}function Ie(t,n){let r=n.join(` `).trim();if(!r)return{success:!1,message:g};let i=(0,e.removeCommandContextReference)(t,r);return i.removed?{success:!0,message:`Context reference removed: ${x(i.removed)}.`,data:{removed:i.removed}}:{success:!1,message:`Context reference not found: ${r}`}}function y(t,n,r){let i=(0,e.writeAutoCompactThresholdSetting)(t,n),a=i?`settings`:`session`;return(0,e.setCommandAutoCompactThreshold)(t,n,a),{success:!0,message:Le(r,n,i),data:{autoCompactThreshold:n,autoCompactThresholdSource:a,persisted:i}}}function Le(e,t,n){let r=je(n);return e===`disabled`?`Auto compact disabled (${r}).`:e===`enabled`?`Auto compact enabled at ${_(t)} (${r}).`:`Auto compact threshold set to ${_(t)} (${r}).`}function Re(e){if(e.endsWith(`%`)){let t=Number(e.slice(0,-1));return!Number.isFinite(t)||t<=0||t>100?{success:!1,message:`Auto compact percentage must be greater than 0% and at most 100%.`}:{success:!0,threshold:t/100}}if(e.includes(`.`)){let t=Number(e);return!Number.isFinite(t)||t<=0||t>1?{success:!1,message:`Auto compact fraction must be greater than 0 and at most 1.`}:{success:!0,threshold:t}}return{success:!1,message:`Use a percentage such as 85% or a fraction such as 0.85.`}}function ze(e){return`References: ${e.filter(e=>e.status===`active`).length} active, ${e.filter(e=>e.status===`observed`).length} observed`}function b(e){return Math.ceil(e/4)}function x(e){return[e.relativePath,`[${e.loadType}, ${e.status}]`,`~${b(e.byteLength).toLocaleString()} tokens`].join(` `)}function Be(e){try{return JSON.parse(e)}catch{return null}}function Ve(e){let t=Be(e);if(t===null)return``;let n=Object.values(t)[0],r=typeof n==`string`?n:JSON.stringify(n);return r.length>60?`${r.slice(0,60)}…`:r}function He(e){let t=new Map;for(let n of e){if(n.category!==`chat`||n.type!==`assistant`)continue;let e=n.data;for(let n of e.toolCalls??[])t.set(n.id,{name:n.function.name,firstArg:Ve(n.function.arguments)})}let n=0,r=0,i=0,a=0,o=new Map;for(let s of e)if(s.category===`chat`){if(s.type===`user`){let e=s.data;n++,r+=b((e.content??``).length)}else if(s.type===`assistant`){let e=s.data;i++,a+=b((e.content??``).length+(e.toolCalls?JSON.stringify(e.toolCalls).length:0))}else if(s.type===`tool`){let e=s.data,n=t.get(e.toolCallId??``),r=n?.name??`tool`,i=n?.firstArg??``,a=b((e.content??``).length);o.set(`${r}:${i}`,{toolName:r,displayArg:i,tokens:a})}}let s=[...o.values()],c=s.reduce((e,t)=>e+t.tokens,0);return{turnCount:n,userCount:n,userTokens:r,assistantCount:i,assistantTokens:a,toolResults:s,totalTokens:r+a+c}}function S(e,t,n){let r=`${e}${t>0?` — ~${t.toLocaleString()} tokens`:``}:`;return n.length===0?`${r}\n (none)`:[r,...n.map(e=>` ${e}`)].join(`
|
|
13
|
+
`)}function Ue(t){let n=(0,e.readCommandContextState)(t),r=(0,e.readAutoCompactThreshold)(t),i=(0,e.readAutoCompactThresholdSource)(t),a=He(t.getSession().getFullHistory()),o=(0,e.listCommandContextReferences)(t),s=o.filter(e=>e.loadType===`system`),c=o.filter(e=>e.loadType===`manual`),l=o.filter(e=>e.loadType===`prompt-reference`),u=s.reduce((e,t)=>e+b(t.byteLength),0),ee=c.reduce((e,t)=>e+b(t.byteLength),0),te=l.reduce((e,t)=>e+b(t.byteLength),0),d=a.turnCount===0?`Conversation history — 0 turns`:`Conversation history — ${a.turnCount} turn${a.turnCount===1?``:`s`} | ~${a.totalTokens.toLocaleString()} tokens`,f=a.toolResults.map(e=>`${e.toolName}${e.displayArg?`: ${e.displayArg}`:``} — ~${e.tokens.toLocaleString()} tokens`),p=a.turnCount===0?[]:[`User (${a.userCount}): ~${a.userTokens.toLocaleString()} tokens`,`Assistant (${a.assistantCount}): ~${a.assistantTokens.toLocaleString()} tokens`,a.toolResults.length>0?[`Tool results (${a.toolResults.length}):`,...f.map(e=>` ${e}`)].join(`
|
|
14
|
+
`):`Tool results (0): (none)`],ne=a.turnCount===0?`${d}:\n (none)`:[`${d}:`,...p.map(e=>` ${e}`)].join(`
|
|
15
|
+
`);return{success:!0,message:[`Context: ${n.usedTokens.toLocaleString()} / ${n.maxTokens.toLocaleString()} tokens (${Math.round(n.usedPercentage)}%)`,v(r,i),``,S(`System prompt (active every turn)`,u,s.map(x)),``,ne,``,S(`Manually added`,ee,c.map(x)),``,S(`Prompt references (@-syntax)`,te,l.map(x))].join(`
|
|
16
|
+
`),data:{references:o,history:{turnCount:a.turnCount,toolResults:a.toolResults}}}}function C(){return{name:`context`,displayName:`Context References`,description:`Context window info, reference inventory, and auto-compact controls`,source:`context`,modelInvocable:!1,argumentHint:`list | add <path> | remove <path> | clear | auto ...`,subcommands:[{name:`list`,description:`List loaded context references`,source:`context`},{name:`add`,description:`Add a file to active context references`,source:`context`},{name:`remove`,description:`Remove a context reference`,source:`context`},{name:`clear`,description:`Clear context references`,source:`context`},{name:`auto`,description:`Inspect or change auto-compact policy`,source:`context`}]}}function We(){let e=C();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,execute:Me}}var Ge=class{name=`context`;getCommands(){return[C()]}};function Ke(){return{name:`agent-command-context`,commandSources:[new Ge],systemCommands:[We()]}}function qe(t,n){return{success:!0,message:`Exit requested.`,effects:[(0,e.createSessionExitRequestedEffect)()]}}function w(){return{name:`exit`,displayName:`Exit Session`,description:e.EXIT_COMMAND_DESCRIPTION,source:`exit`,modelInvocable:!1}}function Je(){let e=w();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:qe}}var Ye=class{name=`exit`;getCommands(){return[w()]}};const Xe={exit:{type:`confirm`,message:`Exit the session?`}};function Ze(){return{name:`agent-command-exit`,commandSources:[new Ye],systemCommands:[Je()],interactionHints:Xe}}function Qe(t,n){return{success:!0,message:(0,e.formatCommandHelpMessage)(t)}}function $e(){return{name:`help`,displayName:`Help`,description:e.HELP_COMMAND_DESCRIPTION,source:`help`,modelInvocable:!1}}function et(){let e=$e();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Qe}}var tt=class{name=`help`;getCommands(){return[$e()]}};function nt(){return{name:`agent-command-help`,commandSources:[new tt],systemCommands:[et()]}}function rt(t,n){let r=(0,e.parseLanguageArgument)(n);return r===void 0?{message:(0,e.formatLanguageUsageMessage)(),success:!1}:{message:`Language set to "${r}".`,success:!0,data:{language:r},effects:[{type:`language-change-requested`,language:r}]}}function it(){return{name:`language`,displayName:`Language`,description:e.LANGUAGE_COMMAND_DESCRIPTION,source:`language`,argumentHint:e.LANGUAGE_COMMAND_ARGUMENT_HINT,subcommands:(0,e.buildLanguageCommandSubcommands)(`language`),modelInvocable:!1}}function at(){let e=it();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,subcommands:e.subcommands,lifecycle:`inline`,execute:rt}}var ot=class{name=`language`;getCommands(){return[it()]}};const st={language:{type:`pick`,getItems:()=>(0,e.buildLanguageCommandSubcommands)().map(e=>({label:`${e.name} ${e.description??``}`.trimEnd(),value:e.name,description:e.description}))}};function ct(){return{name:`agent-command-language`,commandSources:[new ot],systemCommands:[at()],interactionHints:st}}function T(){return{message:e.MEMORY_COMMAND_USAGE,success:!1}}function lt(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function ut(e){let t=e.list(),n=t.topics.length>0?t.topics.map(e=>`- ${e.name}: ${e.path}`).join(`
|
|
14
17
|
`):`(none)`;return{message:[`Memory index: ${t.indexPath}`,`Topics directory: ${t.topicsPath}`,`Topics:`,n].join(`
|
|
15
|
-
`),success:!0,data:{indexPath:t.indexPath,topicsPath:t.topicsPath,topicCount:t.topics.length}}}function
|
|
16
|
-
`),success:!0,data:{count:t.length}}}function
|
|
17
|
-
`),success:!0,data:{count:n.length,references:[...n]}}}function
|
|
18
|
-
`)}`}):
|
|
19
|
-
`)}function
|
|
20
|
-
`)}function Gt(e){if(/^\d+$/.test(e))return Number(e)-1}function I(e,t){if(e.required===!0&&t.length===0)return`Required`}function Kt(e,n){let r=(0,t.findProviderDefinition)(n,e);if(r===void 0)throw Error(`Unknown provider: ${e}. Currently supported: ${(0,t.formatSupportedProviderTypes)(n)}`);return r}function qt(e){if(e.setupSteps!==void 0)return[...e.setupSteps];let t=[{key:`model`,title:`${e.type} model`,defaultValue:e.defaults?.model,required:e.defaults?.model===void 0}];return e.defaults?.baseURL!==void 0&&t.unshift({key:`baseURL`,title:`${e.type} base URL`,defaultValue:e.defaults.baseURL}),e.requiresApiKey===!0&&t.push({key:`apiKey`,title:`${e.type} API key`,defaultValue:e.defaults?.apiKey,required:e.defaults?.apiKey===void 0,masked:!0}),t}function Jt(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function Yt(e,t){return t===void 0?[...e]:e.map(e=>{let n=t[e.key];return n===void 0?e:{...e,defaultValue:n,required:!1}})}function Xt(t){let n=t.profileName??(0,e.suggestProviderProfileName)({type:t.type},{existingProfileNames:t.existingProfileNames}),r=t.values.apiKey;return{profile:n,type:t.type,model:t.values.model,...r!==void 0&&r.length>0&&{apiKey:r},...t.values.baseURL!==void 0&&{baseURL:t.values.baseURL},setCurrent:t.setCurrent??!0}}const Zt={type:`session-restart-requested`,reason:`other`};function Qt(e,t){return j(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function L(e,t){return{prompt:$t(e),submit:n=>tn(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function $t(e){let t=M(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,...en(e),...n===void 0?{}:{placeholder:n},...t.defaultValue===void 0?{}:{allowEmpty:!0},...t.masked===void 0?{}:{masked:t.masked},validate:e=>I(t,e)}}function en(e){let t=F(e.setupHelpLinks);return t.length>0?{description:t}:{}}function tn(e,t,n){let r=N(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:L(e,n)}:r.status===`complete`?nn(r.input,n):{message:``,success:!0,interaction:L(r.state,n)}}function nn(t,n){let r=n.settings.readTargetSettings(),i=(0,e.buildProviderSetupPatch)(t,{providerDefinitions:n.providerDefinitions});return n.settings.writeTargetSettings((0,e.mergeProviderPatch)(r,i)),{message:`Provider ${t.profile} configured. Restarting...`,success:!0,effects:[{...Zt,message:`Provider setup restart`}]}}function rn(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function an(t,n,r){if(!n)return{message:`Usage: /provider switch <profile>`,success:!1};if(!t?.[n])return{message:`Provider profile "${n}" was not found.`,success:!1};let{orgPolicy:i}=r;if(i?.allowedProviders&&!i.allowedProviders.includes(n))return{message:(0,e.formatOrgPolicyViolationMessage)(`Provider "${n}" is not allowed by your organization policy. Allowed: ${i.allowedProviders.join(`, `)}.`,i.adminContact),success:!1};if(r.settings.readMergedSettings().currentProvider===n)return{message:`Already using provider "${n}".`,success:!0};let a=t[n],o=r.settings.readTargetSettings(),s=r.settings.readMergedSettings(),c=o.providers?.[n]!==void 0||s.providers?.[n]!==void 0?{...o,currentProvider:n}:(0,e.setCurrentProvider)(o,n);return r.settings.writeTargetSettings(c),{message:`Switched to ${n} (${a.model??`unknown model`}). History preserved.`,success:!0,effects:[{type:`provider-hot-swap-requested`,profileName:n}]}}function on(e,t){let n=t.settings.readMergedSettings().providers?.[e];if(!n)return{message:`Provider profile "${e}" was not found.`,success:!1};if(!n.type)return{message:`Provider profile "${e}" is missing type.`,success:!1};try{let r=j(n.type,t.providerDefinitions,{profileName:e,setCurrent:!1,initialValues:sn(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:R(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function sn(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function R(e,t,n){return{prompt:$t(e),submit:r=>cn(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function cn(e,t,n,r){let i=N(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:R(e,t,r)}:i.status===`complete`?ln(i.input,t,r):{message:``,success:!0,interaction:R(i.state,t,r)}}function ln(t,n,r){let i=r.settings.readMergedSettings(),a=i.providers?.[n];if(!a)return{message:`Provider profile "${n}" was not found.`,success:!1};let{orgPolicy:o}=r;if(o?.requireApiKeyFromEnv&&(0,e.isApiKeyPlaintext)(t.apiKey))return{message:(0,e.formatOrgPolicyViolationMessage)(`Your organization policy requires API keys to be stored as environment variable references ($ENV:VAR_NAME), not as plaintext.`,o.adminContact),success:!1};let s=r.settings.readTargetSettings(),c=(0,e.buildProviderSetupPatch)(t,{providerDefinitions:r.providerDefinitions}).providers[n];if(!c)return{message:`Provider profile "${n}" was not updated.`,success:!1};r.settings.writeTargetSettings((0,e.upsertProviderProfile)(s,n,{...a,...c}));let l=i.currentProvider===n;return{message:l?`Provider ${n} updated. Switching...`:`Provider ${n} updated.`,success:!0,...l?{effects:[{type:`provider-hot-swap-requested`,profileName:n}]}:{}}}const un={type:`session-restart-requested`,reason:`other`};function dn(e,t){let n=t.settings.readMergedSettings();if(!n.providers?.[e])return{message:`Provider profile "${e}" was not found.`,success:!1};let r=yn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:fn(e,r,t)}}function fn(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>pn(e,t,n)},submit:r=>mn(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function pn(e,t,n){let r=bn(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function mn(t,n,r,i){let a=i.settings.readMergedSettings().providers?.[t];if(!a)return{message:`Provider profile "${t}" was not found.`,success:!1};let o=bn(n,r),s=pn(o,r,i);return s===void 0?(i.settings.writeTargetSettings((0,e.upsertProviderProfile)(i.settings.readTargetSettings(),o,{...a})),{message:`Provider profile duplicated: ${t} -> ${o}.`,success:!0}):{message:s,success:!1}}function hn(e,t){let n=t.settings.readMergedSettings().providers??{};return n[e]?Object.keys(n).length<=1?{message:`Cannot delete the only provider profile.`,success:!1}:t.settings.readTargetSettings().providers?.[e]===void 0?{message:`Provider profile "${e}" is not stored in the active write target; edit its source settings file or override it before deleting.`,success:!1}:{message:`Provider delete requested: ${e}`,success:!0,interaction:gn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function gn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?_n(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function _n(t,n){let r=n.settings.readMergedSettings();if(r.currentProvider!==t)return n.settings.writeTargetSettings((0,e.deleteProviderProfile)(n.settings.readTargetSettings(),t)),{message:`Provider profile deleted: ${t}.`,success:!0};let i=Object.entries(r.providers??{}).filter(([e])=>e!==t).map(([e,t])=>({value:e,label:rn(e,t,r.currentProvider)}));return{message:`Select a replacement provider before deleting ${t}.`,success:!0,interaction:{prompt:{kind:`choice`,title:`Replacement provider for ${t}`,options:i,maxVisible:8},submit:e=>vn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function vn(t,n,r){if(r.settings.readMergedSettings().providers?.[n]===void 0||n===t)return{message:`Provider profile "${n}" was not found.`,success:!1};let i=(0,e.deleteProviderProfile)(r.settings.readTargetSettings(),t);return r.settings.writeTargetSettings({...i,currentProvider:n}),{message:`Provider profile deleted: ${t}. Restarting with ${n}...`,success:!0,effects:[{...un,message:`Provider delete restart`}]}}function yn(t,n){let r=(0,e.sanitizeProviderProfileName)(`${t}-copy`)??`provider-copy`;if(!n.includes(r))return r;for(let e=2;e<1e3;e+=1){let t=`${r}-${e}`;if(!n.includes(t))return t}return`${r}-${Date.now()}`}function bn(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const xn=`switch`,Sn=`edit`,Cn=`test`,wn=`duplicate`,Tn=`delete`,En=`cancel`;function Dn(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:rn(t,n,e)})),maxVisible:8},submit:e=>On(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function On(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${e}`,success:!0,interaction:kn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function kn(e,t){return{prompt:{kind:`choice`,title:`Provider profile: ${e}`,options:[{value:xn,label:`Switch`},{value:Sn,label:`Edit`},{value:Cn,label:`Test`},{value:wn,label:`Duplicate`},{value:Tn,label:`Delete`},{value:En,label:`Cancel`}]},submit:n=>An(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function An(t,n,r){let i=r.settings.readMergedSettings();switch(n){case xn:return an(i.providers,t,r);case Sn:return on(t,r);case Cn:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case wn:return dn(t,r);case Tn:return hn(t,r);case En:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function jn(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Mn(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Mn(r.currentProvider,r.providers,n):a===`current`||a===``?{message:Pn(r.currentProvider,r.providers),success:!0}:a===`switch`?an(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Fn(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Mn(e,t,n){let r=Nn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:Dn(e,t,n)}}function Nn(e,t){let n=Object.entries(t??{});return n.length===0?`No provider profiles configured.`:n.map(([t,n])=>`${t===e?`*`:`-`} ${t}: ${n.type??`unknown`} ${n.model??`(no model)`}`).join(`
|
|
21
|
-
`)}function
|
|
22
|
-
`):`Current provider "${e}" was not found in providers.`}function
|
|
18
|
+
`),success:!0,data:{indexPath:t.indexPath,topicsPath:t.topicsPath,topicCount:t.topics.length}}}function dt(e,t){if(!t||t===`index`){let t=e.loadStartupMemory();return{message:t.content||`(empty memory index)`,success:!0,data:{path:t.path,lineCount:t.lineCount,truncated:t.truncated}}}return{message:e.readTopic(t)||`(empty memory topic: ${t})`,success:!0,data:{topic:t}}}function ft(t){let n=t[1],r=t[2],i=t.slice(3).join(` `).trim();if(!(!n||!(0,e.isCommandMemoryType)(n)||!r||i.length===0))return{type:n,topic:r,text:i}}function pt(e){let t=e.list(`pending`);return{message:[`Pending memory candidates:`,...t.length>0?t.map(e=>`- ${e.id} ${e.type}/${e.topic} confidence=${e.confidence}: ${e.text}`):[`(no pending memory candidates)`]].join(`
|
|
19
|
+
`),success:!0,data:{count:t.length}}}function E(t,n){(0,e.recordCommandMemoryEvent)(t,n)}function mt(e,t,n,r){if(!r)return T();try{let i=t.mark(r,`approved`,`approved-by-user`),a=n.append(i),o=t.mark(r,`saved`,`approved-and-saved`);return E(e,{type:`memory_candidate_approved`,candidateId:o.id,topic:o.topic,reason:`approved-by-user`}),E(e,{type:`memory_candidate_saved`,candidateId:o.id,topic:o.topic,reason:a.deduplicated?`deduplicated`:`approved-and-saved`}),{message:a.deduplicated?`Saved memory candidate ${r} was already present in ${a.topicPath}`:`Saved memory candidate ${r} to ${a.topicPath}`,success:!0,data:{id:r,status:o.status,topic:a.topic,topicPath:a.topicPath,deduplicated:a.deduplicated}}}catch(e){return lt(e instanceof Error?e:String(e))}}function ht(e,t,n){if(!n)return T();try{let r=t.mark(n,`rejected`,`rejected-by-user`);return E(e,{type:`memory_candidate_rejected`,candidateId:r.id,topic:r.topic,reason:`rejected-by-user`}),{message:`Rejected memory candidate ${n}`,success:!0,data:{id:n,status:r.status}}}catch(e){return lt(e instanceof Error?e:String(e))}}function gt(t){let n=(0,e.listCommandUsedMemoryReferences)(t);return{message:[`Used memory references:`,...n.length>0?n.map(e=>{let t=e.truncated?` truncated=true`:``;return`- ${e.topic} score=${e.score}${t}: ${e.path}`}):[`(no memory used in current turn)`]].join(`
|
|
20
|
+
`),success:!0,data:{count:n.length,references:[...n]}}}function _t(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`,a=(0,e.createCommandMemoryStores)(t);if(i===`list`)return ut(a.project);if(i===`show`)return dt(a.project,r[1]);if(i===`pending`)return pt(a.pending);if(i===`approve`)return mt(t,a.pending,a.project,r[1]);if(i===`reject`)return ht(t,a.pending,r[1]);if(i===`used`)return gt(t);if(i===`add`){let t=ft(r);if(!t)return T();if((0,e.hasSensitiveCommandMemoryContent)(t.text))return{message:`Refusing to save sensitive memory content.`,success:!1};let n=a.project.append(t);return{message:n.deduplicated?`${t.type} memory already exists in ${n.topicPath}`:`Saved ${t.type} memory to ${n.topicPath}`,success:!0,data:{indexPath:n.indexPath,topicPath:n.topicPath,topic:n.topic,deduplicated:n.deduplicated}}}return T()}function D(){return{name:`memory`,displayName:`Memory`,description:e.MEMORY_COMMAND_DESCRIPTION,source:`memory`,argumentHint:e.MEMORY_COMMAND_ARGUMENT_HINT,modelInvocable:!0,safety:`write`,subcommands:(0,e.buildMemoryCommandSubcommands)()}}function vt(){let e=D();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,safety:e.safety,subcommands:e.subcommands,execute:_t}}var yt=class{name=`memory`;getCommands(){return[D()]}};function bt(){return{name:`agent-command-memory`,commandSources:[new yt],systemCommands:[vt()]}}function xt(t,n){let r=(0,e.parsePermissionModeArgument)(n);if(r===void 0){let n=(0,e.readCommandPermissionMode)(t);return{message:`Current mode: ${n}`,success:!0,data:{mode:n}}}return(0,e.isPermissionMode)(r)?((0,e.writeCommandPermissionMode)(t,r),{message:`Permission mode set to: ${r}`,success:!0,data:{mode:r}}):{message:(0,e.formatInvalidPermissionModeMessage)(),success:!1}}function O(){return{name:`mode`,displayName:`Interaction Mode`,description:e.PERMISSION_MODE_COMMAND_DESCRIPTION,source:`mode`,argumentHint:e.PERMISSION_MODE_ARGUMENT_HINT,subcommands:(0,e.buildPermissionModeSubcommands)(`mode`),modelInvocable:!1}}function St(){let e=O();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,subcommands:e.subcommands,lifecycle:`inline`,execute:xt}}var Ct=class{name=`mode`;getCommands(){return[O()]}};const wt={mode:{type:`pick`,getItems:()=>(0,e.buildPermissionModeSubcommands)().map(e=>({label:e.name,value:e.name,description:e.description}))}};function Tt(){return{name:`agent-command-mode`,commandSources:[new Ct],systemCommands:[St()],interactionHints:wt}}function Et(t,n){let r=(0,e.parsePermissionModeArgument)(n);if(r!==void 0){if(!(0,e.isPermissionMode)(r))return{message:(0,e.formatInvalidPermissionModeMessage)(),success:!1};(0,e.writeCommandPermissionMode)(t,r);let n=(0,e.readCommandPermissionsState)(t);return{message:`Permission mode set to: ${r}\n${(0,e.formatCommandPermissionsMessage)(n)}`,success:!0,data:{mode:n.mode,sessionAllowed:n.sessionAllowed}}}let i=(0,e.readCommandPermissionsState)(t);return{message:(0,e.formatCommandPermissionsMessage)(i),success:!0,data:{mode:i.mode,sessionAllowed:i.sessionAllowed}}}function k(){return{name:`permissions`,displayName:`Permissions`,description:e.PERMISSIONS_COMMAND_DESCRIPTION,source:`permissions`,argumentHint:e.PERMISSION_MODE_ARGUMENT_HINT,subcommands:(0,e.buildPermissionModeSubcommands)(`permissions`),modelInvocable:!1}}function Dt(){let e=k();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,subcommands:e.subcommands,lifecycle:`inline`,execute:Et}}var Ot=class{name=`permissions`;getCommands(){return[k()]}};function kt(){return{name:`agent-command-permissions`,commandSources:[new Ot],systemCommands:[Dt()]}}function At(e){let t=e.trim().split(/\s+/).filter(e=>e.length>0);return{subcommand:t[0]??``,subArgs:t.slice(1).join(` `).trim()}}function A(e){return{success:!1,message:e}}function jt(t){return(0,e.resolvePluginCommandAdapter)(t)}async function j(e,t){let n=jt(e);if(n===void 0)return{success:!1,message:`Plugin management is not available.`};try{return{success:!0,message:await t(n)}}catch(e){return{success:!1,message:`Plugin error: ${e instanceof Error?e.message:String(e)}`}}}async function Mt(e,t){let{subcommand:n,subArgs:r}=At(t);return n===`add`&&r.length>0?j(e,async e=>{let t=await e.marketplaceAdd(r);return`Added marketplace: "${t}" (from ${r})\nInstall plugins with: /plugin install <name>@${t}`}):n===`remove`&&r.length>0?j(e,async e=>(await e.marketplaceRemove(r),`Removed marketplace "${r}" and uninstalled its plugins.`)):n===`update`&&r.length>0?j(e,async e=>(await e.marketplaceUpdate(r),`Updated marketplace "${r}".`)):n===`list`?j(e,async e=>{let t=await e.marketplaceList();return t.length===0?`No marketplace sources configured.`:`Marketplace sources:\n${t.map(e=>` ${e.name} (${e.type})`).join(`
|
|
21
|
+
`)}`}):A(`Usage: /plugin marketplace add <source> | remove <name> | update <name> | list`)}function M(e,t,n,r){return t.length===0?Promise.resolve(A(n)):j(e,e=>Promise.resolve(r(e,t)))}function Nt(){return{success:!0,message:`Opening plugin manager...`,effects:[(0,e.createPluginTuiRequestedEffect)()]}}function Pt(e,t){return M(e,t,`Usage: /plugin install <name>@<marketplace>`,async(e,t)=>(await e.install(t),`Installed plugin: ${t}`))}function Ft(e,t){return M(e,t,`Usage: /plugin uninstall <name>@<marketplace>`,async(e,t)=>(await e.uninstall(t),`Uninstalled plugin: ${t}`))}function It(e,t){return M(e,t,`Usage: /plugin enable <name>@<marketplace>`,async(e,t)=>(await e.enable(t),`Enabled plugin: ${t}`))}function Lt(e,t){return M(e,t,`Usage: /plugin disable <name>@<marketplace>`,async(e,t)=>(await e.disable(t),`Disabled plugin: ${t}`))}async function Rt(e,t){let{subcommand:n,subArgs:r}=At(t);switch(n){case``:case`manage`:return Nt();case`install`:return Pt(e,r);case`uninstall`:return Ft(e,r);case`enable`:return It(e,r);case`disable`:return Lt(e,r);case`marketplace`:return Mt(e,r);default:return A(`Unknown plugin subcommand: ${n}`)}}async function zt(t,n){return j(t,async e=>{let t=await e.reloadPlugins();return`Reloaded ${t.loadedPluginCount===1?`1 plugin resource`:`${t.loadedPluginCount} plugin resources`}.`}).then(t=>t.success?{...t,effects:[(0,e.createPluginRegistryReloadRequestedEffect)()]}:t)}function N(){return{name:`plugin`,displayName:`Plugins`,description:e.PLUGIN_COMMAND_DESCRIPTION,source:`plugin-manager`,modelInvocable:!1,argumentHint:e.PLUGIN_COMMAND_ARGUMENT_HINT,subcommands:(0,e.buildPluginCommandSubcommands)()}}function P(){return{name:`reload-plugins`,displayName:`Reload Plugins`,description:e.RELOAD_PLUGINS_COMMAND_DESCRIPTION,source:`plugin-manager`,modelInvocable:!1}}function Bt(){let e=N();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,lifecycle:`inline`,subcommands:e.subcommands,execute:Rt}}function Vt(){let e=P();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:zt}}var Ht=class{name=`plugin-manager`;getCommands(){return[N(),P()]}};function Ut(){return{name:`agent-command-plugin`,commandSources:[new Ht],systemCommands:[Bt(),Vt()]}}function F(e,t,n={}){let r=Xt(e,t);return{type:e,steps:$t(Zt(r),n.initialValues),setupHelpLinks:r.setupHelpLinks??[],stepIndex:0,values:{},existingProfileNames:n.existingProfileNames??[],...n.profileName===void 0?{}:{profileName:n.profileName},...n.setCurrent===void 0?{}:{setCurrent:n.setCurrent}}}function Wt(e){return e.length===0?` No providers are available.`:[` Select provider:`,...e.map((e,t)=>` ${t+1}. ${R(e)}`),` Provider [1-${e.length}] (default: 1): `].join(`
|
|
22
|
+
`)}function Gt(e,n){let r=e.trim(),i=r.length>0?r:`1`,a=Yt(i);if(a!==void 0){let e=n[a];if(e!==void 0)return e.type;throw Error(`Provider selection ${i} is out of range. Currently supported: ${(0,t.formatSupportedProviderTypes)(n)}`)}let o=(0,t.findProviderDefinition)(n,i);if(o===void 0)throw Error(`Unknown provider: ${i}. Currently supported: ${(0,t.formatSupportedProviderTypes)(n)}`);return o.type}function I(e){let t=e.steps[e.stepIndex];if(t===void 0)throw Error(`Provider setup step ${e.stepIndex} is out of range`);return t}function L(e,t){let n=I(e),r=t.trim()||n.defaultValue||``,i=B(n,r);if(i!==void 0)return{status:`error`,state:e,message:i};let a={...e,stepIndex:e.stepIndex+1,values:{...e.values,[n.key]:r}};return a.stepIndex<e.steps.length?{status:`next`,state:a}:{status:`complete`,input:en(a)}}async function Kt(e,t,n,r={}){let i=F(e,n,r),a=i.steps.length;for(;i.stepIndex<a;){let e=I(i),n=await t(qt(e,i.setupHelpLinks),e.masked===!0),r=L(i,n);if(r.status===`complete`)return r.input;if(r.status===`error`)throw Error(r.message);i=r.state}throw Error(`Provider setup flow ended without completion`)}function qt(e,t=[]){let n=e.defaultValue===void 0?``:` (default: ${e.defaultValue})`,r=z(t);return`${r.length>0?`${r}\n`:``} ${e.title}${n}: `}const Jt={"cloud-paid":`[Cloud/Paid]`,"cloud-free":`[Cloud/Free]`,"local-free":`[Local/Free]`};function R(e){let t=`${e.category===void 0?``:`${Jt[e.category]??``} `}${e.displayName===void 0?e.type:`${e.displayName} (${e.type})`}`;return e.description===void 0?t:`${t} — ${e.description}`}function z(e=[]){return e.length===0?``:e.map(e=>` Setup help: ${Qt(e.kind)}: ${e.label} - ${e.url}`).join(`
|
|
23
|
+
`)}function Yt(e){if(/^\d+$/.test(e))return Number(e)-1}function B(e,t){if(e.required===!0&&t.length===0)return`Required`}function Xt(e,n){let r=(0,t.findProviderDefinition)(n,e);if(r===void 0)throw Error(`Unknown provider: ${e}. Currently supported: ${(0,t.formatSupportedProviderTypes)(n)}`);return r}function Zt(e){if(e.setupSteps!==void 0)return[...e.setupSteps];let t=[{key:`model`,title:`${e.type} model`,defaultValue:e.defaults?.model,required:e.defaults?.model===void 0}];return e.defaults?.baseURL!==void 0&&t.unshift({key:`baseURL`,title:`${e.type} base URL`,defaultValue:e.defaults.baseURL}),e.requiresApiKey===!0&&t.push({key:`apiKey`,title:`${e.type} API key`,defaultValue:e.defaults?.apiKey,required:e.defaults?.apiKey===void 0,masked:!0}),t}function Qt(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function $t(e,t){return t===void 0?[...e]:e.map(e=>{let n=t[e.key];return n===void 0?e:{...e,defaultValue:n,required:!1}})}function en(t){let n=t.profileName??(0,e.suggestProviderProfileName)({type:t.type},{existingProfileNames:t.existingProfileNames}),r=t.values.apiKey;return{profile:n,type:t.type,model:t.values.model,...r!==void 0&&r.length>0&&{apiKey:r},...t.values.baseURL!==void 0&&{baseURL:t.values.baseURL},setCurrent:t.setCurrent??!0}}const tn={type:`session-restart-requested`,reason:`other`};function nn(e,t){return F(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function V(e,t){return{prompt:rn(e),submit:n=>on(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function rn(e){let t=I(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,...an(e),...n===void 0?{}:{placeholder:n},...t.defaultValue===void 0?{}:{allowEmpty:!0},...t.masked===void 0?{}:{masked:t.masked},validate:e=>B(t,e)}}function an(e){let t=z(e.setupHelpLinks);return t.length>0?{description:t}:{}}function on(e,t,n){let r=L(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:V(e,n)}:r.status===`complete`?sn(r.input,n):{message:``,success:!0,interaction:V(r.state,n)}}function sn(t,n){let r=n.settings.readTargetSettings(),i=(0,e.buildProviderSetupPatch)(t,{providerDefinitions:n.providerDefinitions});return n.settings.writeTargetSettings((0,e.mergeProviderPatch)(r,i)),{message:`Provider ${t.profile} configured. Restarting...`,success:!0,effects:[{...tn,message:`Provider setup restart`}]}}function cn(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function ln(t,n,r){if(!n)return{message:`Usage: /provider switch <profile>`,success:!1};if(!t?.[n])return{message:`Provider profile "${n}" was not found.`,success:!1};let{orgPolicy:i}=r;if(i?.allowedProviders&&!i.allowedProviders.includes(n))return{message:(0,e.formatOrgPolicyViolationMessage)(`Provider "${n}" is not allowed by your organization policy. Allowed: ${i.allowedProviders.join(`, `)}.`,i.adminContact),success:!1};if(r.settings.readMergedSettings().currentProvider===n)return{message:`Already using provider "${n}".`,success:!0};let a=t[n],o=r.settings.readTargetSettings(),s=r.settings.readMergedSettings(),c=o.providers?.[n]!==void 0||s.providers?.[n]!==void 0?{...o,currentProvider:n}:(0,e.setCurrentProvider)(o,n);return r.settings.writeTargetSettings(c),{message:`Switched to ${n} (${a.model??`unknown model`}). History preserved.`,success:!0,effects:[{type:`provider-hot-swap-requested`,profileName:n}]}}function un(e,t){let n=t.settings.readMergedSettings().providers?.[e];if(!n)return{message:`Provider profile "${e}" was not found.`,success:!1};if(!n.type)return{message:`Provider profile "${e}" is missing type.`,success:!1};try{let r=F(n.type,t.providerDefinitions,{profileName:e,setCurrent:!1,initialValues:dn(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:fn(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function dn(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function fn(e,t,n){return{prompt:rn(e),submit:r=>pn(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function pn(e,t,n,r){let i=L(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:fn(e,t,r)}:i.status===`complete`?mn(i.input,t,r):{message:``,success:!0,interaction:fn(i.state,t,r)}}function mn(t,n,r){let i=r.settings.readMergedSettings(),a=i.providers?.[n];if(!a)return{message:`Provider profile "${n}" was not found.`,success:!1};let{orgPolicy:o}=r;if(o?.requireApiKeyFromEnv&&(0,e.isApiKeyPlaintext)(t.apiKey))return{message:(0,e.formatOrgPolicyViolationMessage)(`Your organization policy requires API keys to be stored as environment variable references ($ENV:VAR_NAME), not as plaintext.`,o.adminContact),success:!1};let s=r.settings.readTargetSettings(),c=(0,e.buildProviderSetupPatch)(t,{providerDefinitions:r.providerDefinitions}).providers[n];if(!c)return{message:`Provider profile "${n}" was not updated.`,success:!1};r.settings.writeTargetSettings((0,e.upsertProviderProfile)(s,n,{...a,...c}));let l=i.currentProvider===n;return{message:l?`Provider ${n} updated. Switching...`:`Provider ${n} updated.`,success:!0,...l?{effects:[{type:`provider-hot-swap-requested`,profileName:n}]}:{}}}const hn={type:`session-restart-requested`,reason:`other`};function gn(e,t){let n=t.settings.readMergedSettings();if(!n.providers?.[e])return{message:`Provider profile "${e}" was not found.`,success:!1};let r=wn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:_n(e,r,t)}}function _n(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>vn(e,t,n)},submit:r=>yn(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function vn(e,t,n){let r=Tn(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function yn(t,n,r,i){let a=i.settings.readMergedSettings().providers?.[t];if(!a)return{message:`Provider profile "${t}" was not found.`,success:!1};let o=Tn(n,r),s=vn(o,r,i);return s===void 0?(i.settings.writeTargetSettings((0,e.upsertProviderProfile)(i.settings.readTargetSettings(),o,{...a})),{message:`Provider profile duplicated: ${t} -> ${o}.`,success:!0}):{message:s,success:!1}}function bn(e,t){let n=t.settings.readMergedSettings().providers??{};return n[e]?Object.keys(n).length<=1?{message:`Cannot delete the only provider profile.`,success:!1}:t.settings.readTargetSettings().providers?.[e]===void 0?{message:`Provider profile "${e}" is not stored in the active write target; edit its source settings file or override it before deleting.`,success:!1}:{message:`Provider delete requested: ${e}`,success:!0,interaction:xn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function xn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?Sn(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function Sn(t,n){let r=n.settings.readMergedSettings();if(r.currentProvider!==t)return n.settings.writeTargetSettings((0,e.deleteProviderProfile)(n.settings.readTargetSettings(),t)),{message:`Provider profile deleted: ${t}.`,success:!0};let i=Object.entries(r.providers??{}).filter(([e])=>e!==t).map(([e,t])=>({value:e,label:cn(e,t,r.currentProvider)}));return{message:`Select a replacement provider before deleting ${t}.`,success:!0,interaction:{prompt:{kind:`choice`,title:`Replacement provider for ${t}`,options:i,maxVisible:8},submit:e=>Cn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function Cn(t,n,r){if(r.settings.readMergedSettings().providers?.[n]===void 0||n===t)return{message:`Provider profile "${n}" was not found.`,success:!1};let i=(0,e.deleteProviderProfile)(r.settings.readTargetSettings(),t);return r.settings.writeTargetSettings({...i,currentProvider:n}),{message:`Provider profile deleted: ${t}. Restarting with ${n}...`,success:!0,effects:[{...hn,message:`Provider delete restart`}]}}function wn(t,n){let r=(0,e.sanitizeProviderProfileName)(`${t}-copy`)??`provider-copy`;if(!n.includes(r))return r;for(let e=2;e<1e3;e+=1){let t=`${r}-${e}`;if(!n.includes(t))return t}return`${r}-${Date.now()}`}function Tn(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const En=`switch`,Dn=`edit`,On=`test`,kn=`duplicate`,An=`delete`,jn=`cancel`;function Mn(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:cn(t,n,e)})),maxVisible:8},submit:e=>Nn(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function Nn(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${e}`,success:!0,interaction:Pn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function Pn(e,t){return{prompt:{kind:`choice`,title:`Provider profile: ${e}`,options:[{value:En,label:`Switch`},{value:Dn,label:`Edit`},{value:On,label:`Test`},{value:kn,label:`Duplicate`},{value:An,label:`Delete`},{value:jn,label:`Cancel`}]},submit:n=>Fn(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function Fn(t,n,r){let i=r.settings.readMergedSettings();switch(n){case En:return ln(i.providers,t,r);case Dn:return un(t,r);case On:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case kn:return gn(t,r);case An:return bn(t,r);case jn:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function In(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Ln(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Ln(r.currentProvider,r.providers,n):a===`current`||a===``?{message:zn(r.currentProvider,r.providers),success:!0}:a===`switch`?ln(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Bn(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Ln(e,t,n){let r=Rn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:Mn(e,t,n)}}function Rn(e,t){let n=Object.entries(t??{});return n.length===0?`No provider profiles configured.`:n.map(([t,n])=>`${t===e?`*`:`-`} ${t}: ${n.type??`unknown`} ${n.model??`(no model)`}`).join(`
|
|
24
|
+
`)}function zn(e,t){if(!e)return`No current provider configured.`;let n=t?.[e];return n?[`Current provider: ${e}`,`Type: ${n.type??`unknown`}`,`Model: ${n.model??`(no model)`}`,...n.baseURL?[`Base URL: ${n.baseURL}`]:[]].join(`
|
|
25
|
+
`):`Current provider "${e}" was not found in providers.`}function Bn(e,n){return e===void 0||e.length===0?{message:`Provider setup requested. Select a provider to continue.`,success:!0,interaction:Vn(n)}:(0,t.findProviderDefinition)(n.providerDefinitions,e)===void 0?{message:`Usage: provider add <type>. Supported: ${(0,t.formatSupportedProviderTypes)(n.providerDefinitions)}`,success:!1}:{message:`Provider setup requested: ${e}`,success:!0,interaction:V(nn(e,n),n)}}function Vn(e){return{prompt:{kind:`choice`,title:`Select provider`,options:e.providerDefinitions.map(e=>({value:e.type,label:R(e)})),maxVisible:6},submit:t=>{let n=nn(t,e);return{message:`Provider setup requested: ${t}`,success:!0,interaction:V(n,e)}},cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function Hn(){return[{name:`current`,description:`Show current provider`,source:`provider`},{name:`list`,description:`List provider profiles`,source:`provider`},{name:`switch`,description:`Hot-swap to another provider profile`,source:`provider`},{name:`add`,description:`Configure a provider profile`,source:`provider`},{name:`test`,description:`Test provider profile`,source:`provider`}]}function H(){return{name:`provider`,displayName:`Provider Setup`,description:`Manage provider profiles`,source:`provider`,modelInvocable:!1,argumentHint:`current | list | switch <profile> | add [type] | test [profile]`,subcommands:Hn(),example:`/provider switch production`}}var Un=class{name=`provider`;getCommands(){return[H()]}};function Wn(e){let t=H();return{name:t.name,displayName:t.displayName,description:t.description,example:t.example,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:t.argumentHint,subcommands:t.subcommands,execute:async(t,n)=>In(n,e)}}const Gn={provider:{type:`pick`,getItems:()=>Hn().map(e=>({label:e.name,value:e.name,description:e.description}))}};function Kn(e){return{name:`agent-command-provider`,commandSources:[new Un],systemCommands:[Wn(e)],interactionHints:Gn}}async function qn(e,t){let n=(await e(`
|
|
23
26
|
Do you have an API key for an AI provider?
|
|
24
27
|
|
|
25
28
|
1. Yes, I have an API key
|
|
@@ -46,14 +49,14 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
46
49
|
When the server is running, come back here and press Enter to continue.
|
|
47
50
|
|
|
48
51
|
─────────────────────────────────────────────────────────────────────────────
|
|
49
|
-
`),await e(` Press Enter when LM Studio server is running: `),{path:`local`,preselectedType:`gemma`}):{path:`has-key`}}async function
|
|
50
|
-
`),success:!0,data:{count:e.length,checkpoints:[...e]}}}function
|
|
51
|
-
`),success:!0,data:{inspection:e}}}function
|
|
52
|
-
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function
|
|
53
|
-
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function
|
|
54
|
-
`),data:i}}function
|
|
55
|
-
`):[`Registered skills:`,...e.map(
|
|
56
|
-
`)}function
|
|
57
|
-
`);function
|
|
58
|
-
`)}function
|
|
59
|
-
`)}async function
|
|
52
|
+
`),await e(` Press Enter when LM Studio server is running: `),{path:`local`,preselectedType:`gemma`}):{path:`has-key`}}async function Jn(t,n,r,i,a){let o=await qn(r,i),s=Object.keys((0,e.readMergedProviderSettings)(t).providers??{}),c=(0,e.resolveSettingsPathForScope)(t,n.settingsScope),l;l=o.preselectedType===void 0?Gt(await r(Wt(a)),a):o.preselectedType,(0,e.applyProviderConfiguration)(c,await Kt(l,r,a,{existingProfileNames:s}),{providerDefinitions:a});let u=await r(` Response language (ko/en/ja/zh, default: en): `);if(u){let t=(0,e.readSettings)(c);t.language=u,(0,e.writeSettings)(c,t)}i.writeLine(`\n Config saved to ${c}\n`)}async function Yn(t,n,r,i,a,o){let s=(0,e.readMergedProviderSettings)(t);if((0,e.checkSettingsDocument)(n.provider===void 0?s:{...s,currentProvider:n.provider},a)===`valid`)return;if(!(o.isInteractive??(()=>!1))())throw Error(o.formatError(a));await Jn(t,Xn(t,n),r,i,a);let c=(0,e.readMergedProviderSettings)(t);if((0,e.checkSettingsDocument)(n.provider===void 0?c:{...c,currentProvider:n.provider},a)!==`valid`)throw Error(o.formatError(a))}function Xn(t,r){if(r.settingsScope!==void 0||r.provider!==void 0)return r;let i=Zn((0,e.getProviderSettingsPaths)(t));if(i===void 0)return r;let a=(0,n.join)(t,`.robota`,`settings.json`),o=(0,n.join)(t,`.robota`,`settings.local.json`);return i===a||i===o?{...r,settingsScope:`project-local`}:r}function Zn(t){for(let n=t.length-1;n>=0;--n){let r=t[n];if(r!==void 0&&typeof(0,e.readSettings)(r).currentProvider==`string`)return r}}function Qn(e,t){return{success:!0,message:`Reset requested.`,data:{resetRequested:!0},effects:[{type:`settings-reset-requested`}]}}function U(){return{name:`reset`,displayName:`Reset Settings`,description:`Delete settings`,source:`reset`,modelInvocable:!1}}function $n(){let e=U();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Qn}}var er=class{name=`reset`;getCommands(){return[U()]}};function tr(){return{name:`agent-command-reset`,commandSources:[new er],systemCommands:[$n()]}}function W(){return{message:`Usage: rewind [list] | rewind inspect <checkpoint-id> | rewind restore <checkpoint-id> | rewind code <checkpoint-id> | rewind rollback <checkpoint-id>`,success:!1}}function nr(e){let t=e.replace(/\s+/g,` `).trim();return t.length<=120?t:`${t.slice(0,117)}...`}function rr(e){return{message:[`Edit checkpoints:`,...e.length>0?e.map(e=>`- ${e.id} files=${e.fileCount} ${e.createdAt} ${nr(e.prompt)}`):[`(no edit checkpoints)`]].join(`
|
|
53
|
+
`),success:!0,data:{count:e.length,checkpoints:[...e]}}}function ir(e){return e.length>0?e.join(`, `):`(none)`}function ar(e){let t=e.capturedFiles.length>0?e.capturedFiles.map(e=>{let t=e.snapshotSizeBytes===void 0?``:` size=${e.snapshotSizeBytes}B`;return`- ${e.relativePath} action=${e.restoreAction} snapshot=${String(e.snapshotAvailable)}${t}`}):[`(no files captured)`];return{message:[`Checkpoint ${e.target.id}`,`Prompt: ${nr(e.target.prompt)}`,`Captured files:`,...t,`Restore later checkpoints: files=${e.restoreToCheckpoint.fileCount} checkpoints=${ir(e.restoreToCheckpoint.checkpointIds)}`,`Rollback through checkpoint: files=${e.rollbackThroughCheckpoint.fileCount} checkpoints=${ir(e.rollbackThroughCheckpoint.checkpointIds)}`].join(`
|
|
54
|
+
`),success:!0,data:{inspection:e}}}function or(e){return{message:[`Restored code to ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Rolled back checkpoints: ${e.restoredCheckpointCount}`].join(`
|
|
55
|
+
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function sr(e){return{message:[`Rolled back code through ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Removed checkpoints: ${e.removedCheckpointCount}`].join(`
|
|
56
|
+
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function G(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function cr(t,n){if(!n)return W();try{return ar((0,e.inspectCommandEditCheckpoint)(t,n))}catch(e){return G(e instanceof Error?e:String(e))}}async function lr(t,n){if(!n)return W();try{return or(await(0,e.restoreCommandEditCheckpoint)(t,n))}catch(e){return G(e instanceof Error?e:String(e))}}async function ur(t,n){if(!n)return W();try{return sr(await(0,e.rollbackCommandEditCheckpoint)(t,n))}catch(e){return G(e instanceof Error?e:String(e))}}async function dr(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`;return i===`list`?rr((0,e.listCommandEditCheckpoints)(t)):i===`inspect`?cr(t,r[1]):i===`restore`||i===`code`?lr(t,r[1]):i===`rollback`?ur(t,r[1]):W()}function fr(){return{name:`rewind`,displayName:`Rewind History`,description:e.REWIND_COMMAND_DESCRIPTION,source:`rewind`,argumentHint:e.REWIND_COMMAND_ARGUMENT_HINT,modelInvocable:!1,safety:`write`,subcommands:(0,e.buildRewindCommandSubcommands)()}}function pr(){let e=fr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,argumentHint:e.argumentHint,userInvocable:!0,modelInvocable:!1,safety:`write`,subcommands:e.subcommands,execute:dr}}var mr=class{name=`rewind`;getCommands(){return[fr()]}};function hr(){return{name:`agent-command-rewind`,commandSources:[new mr],systemCommands:[pr()]}}const gr={"claude-opus-4-7":{inputPerMillion:15,outputPerMillion:75},"claude-opus-4-5":{inputPerMillion:15,outputPerMillion:75},"claude-sonnet-4-6":{inputPerMillion:3,outputPerMillion:15},"claude-sonnet-4-5":{inputPerMillion:3,outputPerMillion:15},"claude-haiku-4-5":{inputPerMillion:.8,outputPerMillion:4},"claude-3-5-sonnet-20241022":{inputPerMillion:3,outputPerMillion:15},"claude-3-5-haiku-20241022":{inputPerMillion:.8,outputPerMillion:4},"claude-3-opus-20240229":{inputPerMillion:15,outputPerMillion:75},"gpt-4o":{inputPerMillion:2.5,outputPerMillion:10},"gpt-4o-mini":{inputPerMillion:.15,outputPerMillion:.6},o1:{inputPerMillion:15,outputPerMillion:60},"o1-mini":{inputPerMillion:3,outputPerMillion:12},o3:{inputPerMillion:10,outputPerMillion:40},"o3-mini":{inputPerMillion:1.1,outputPerMillion:4.4},"deepseek-chat":{inputPerMillion:.14,outputPerMillion:.28},"deepseek-reasoner":{inputPerMillion:.55,outputPerMillion:2.19},"gemini-2.0-flash":{inputPerMillion:.1,outputPerMillion:.4},"gemini-2.0-flash-thinking":{inputPerMillion:.35,outputPerMillion:3.5},"gemini-1.5-pro":{inputPerMillion:1.25,outputPerMillion:5},"gemini-1.5-flash":{inputPerMillion:.075,outputPerMillion:.3}},_r=[{pattern:/claude-opus/i,price:{inputPerMillion:15,outputPerMillion:75}},{pattern:/claude-sonnet/i,price:{inputPerMillion:3,outputPerMillion:15}},{pattern:/claude-haiku/i,price:{inputPerMillion:.8,outputPerMillion:4}},{pattern:/gpt-4o-mini/i,price:{inputPerMillion:.15,outputPerMillion:.6}},{pattern:/gpt-4/i,price:{inputPerMillion:2.5,outputPerMillion:10}},{pattern:/deepseek/i,price:{inputPerMillion:.14,outputPerMillion:.28}},{pattern:/gemini-2/i,price:{inputPerMillion:.1,outputPerMillion:.4}},{pattern:/gemini-1/i,price:{inputPerMillion:1.25,outputPerMillion:5}}];function vr(e){let t=gr[e];if(t)return t;for(let{pattern:t,price:n}of _r)if(t.test(e))return n}function yr(e,t,n){let r=vr(e);if(r)return t/1e6*r.inputPerMillion+n/1e6*r.outputPerMillion}function K(e){return e<.01?`$${e.toFixed(4)}`:e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function br(e){return e.toLocaleString(`en-US`)}const xr=`Conversation cleared.`;function Sr(t,n){return(0,e.clearConversationHistory)(t),{success:!0,message:xr,effects:[{type:`conversation-history-cleared`}]}}function Cr(t,n){let r=(0,e.parseSessionNameArgument)(n);return r===void 0?{success:!1,message:e.RENAME_COMMAND_USAGE}:{success:!0,message:`Session renamed to "${r}".`,data:{name:r},effects:[(0,e.createSessionRenamedEffect)(r)]}}function wr(t,n){return{success:!0,message:`Opening session picker...`,data:{triggerResumePicker:!0},effects:[(0,e.createSessionPickerRequestedEffect)()]}}const q=`.robota/budget.json`;function Tr(e){let t=(0,n.join)(e,q);if(!(0,r.existsSync)(t))return;let i;try{i=(0,r.readFileSync)(t,`utf-8`)}catch{return}try{return JSON.parse(i)}catch{return}}function Er(e,t){(0,r.mkdirSync)((0,n.join)(e,`.robota`),{recursive:!0}),(0,r.writeFileSync)((0,n.join)(e,q),JSON.stringify(t,null,2))}function Dr(e){let t=(0,n.join)(e,q);(0,r.existsSync)(t)&&(0,r.writeFileSync)(t,`{}`)}function Or(t){let n=t.getSession(),r=(0,e.readCommandSessionInfo)(t),i=n.getSessionTokenUsage?.(),a=n.getModelId?.(),o=[`Session: ${r.sessionId}`,`Messages: ${r.messageCount}`],s={sessionId:r.sessionId,messageCount:r.messageCount};if(i){if(o.push(`Tokens: ${br(i.inputTokens)} input / ${br(i.outputTokens)} output`),s.inputTokens=i.inputTokens,s.outputTokens=i.outputTokens,a){let e=yr(a,i.inputTokens,i.outputTokens);if(e!==void 0){o.push(`Cost: ${K(e)} (${a})`),s.estimatedCostUsd=e;let n=Tr(t.getCwd());if(n?.monthly){let t=n.monthly-e,r=Math.min(100,Math.round(e/n.monthly*100));o.push(`Budget: ${K(t)} remaining of ${K(n.monthly)}/mo (${r}% used)`),s.budgetMonthly=n.monthly,s.budgetRemainingUsd=t}}}}else o.push(`Tokens: not yet available (no turns completed)`);return{lines:o,data:s}}function kr(e,t){let n=t.trim();if(n.startsWith(`budget`)){let t=n.slice(6).trim();if(t===`clear`)return Dr(e.getCwd()),{success:!0,message:`Monthly budget cleared.`};if(t===``){let t=Tr(e.getCwd());return t?.monthly?{success:!0,message:`Monthly budget: ${K(t.monthly)}`}:{success:!0,message:`No budget set. Use: /cost budget <amount>`}}let r=parseFloat(t);return!Number.isFinite(r)||r<=0?{success:!1,message:`Usage: /cost budget <amount> (e.g. /cost budget 5.00)`}:(Er(e.getCwd(),{monthly:r}),{success:!0,message:`Monthly budget set to ${K(r)}.`})}let{lines:r,data:i}=Or(e);return{success:!0,message:r.join(`
|
|
57
|
+
`),data:i}}function Ar(t,n){let r=(0,e.validateCommandSessionReplayLog)(t);return{success:r.validation.ok,message:(0,e.formatCommandSessionReplayValidationReport)(r),data:{logFile:r.logFile,entryCount:r.entryCount,issueCount:r.validation.issues.length,ok:r.validation.ok}}}function J(){return{name:`clear`,displayName:`Clear History`,description:e.CLEAR_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Y(){return{name:`rename`,displayName:`Rename Session`,description:e.RENAME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function X(){return{name:`resume`,displayName:`Resume Session`,description:e.RESUME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function jr(){return{name:`cost`,displayName:`Session Cost`,description:e.COST_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Mr(){return{name:`validate-session`,displayName:`Validate Session`,description:e.VALIDATE_SESSION_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Nr(){let e=J();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Sr}}function Pr(){let e=Y();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Cr}}function Fr(){let e=X();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:wr}}function Ir(){let e=jr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:kr}}function Lr(){let e=Mr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ar}}var Rr=class{name=`session`;getCommands(){return[J(),Y(),X(),jr(),Mr()]}};const zr={clear:{type:`confirm`,message:`Clear conversation history?`}};function Br(){return{name:`agent-command-session`,commandSources:[new Rr],systemCommands:[Nr(),Pr(),Fr(),Ir(),Lr()],interactionHints:zr}}function Vr(){return{name:`settings`,displayName:`Settings`,description:`Open transport settings — enable/disable transports and configure options`,source:`settings`,modelInvocable:!1}}function Hr(){let e=Vr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:async()=>({success:!0,message:`Opening settings...`,effects:[{type:`settings-tui-requested`}]})}}var Ur=class{name=`settings`;getCommands(){return[Vr()]}};function Wr(){return{name:`agent-command-settings`,commandSources:[new Ur],systemCommands:[Hr()]}}const Gr=`Skill command. Before following a matching registered skill from the system prompt Skills section, invoke the projected skills command tool with args "<skill-name> [args]". Without arguments, list registered skills. With a skill name, activate that skill. Slash syntax is a UI input/display concern; the SDK command identity is "skills".`;function Kr(e){let t=[];return e.modelInvocable||t.push(`model-disabled`),e.userInvocable||t.push(`model-only`),e.context&&t.push(`context:${e.context}`),e.agent&&t.push(`agent:${e.agent}`),t.length>0?` [${t.join(`, `)}]`:``}function qr(e){let t=e.argumentHint?` ${e.argumentHint}`:``;return`- ${e.name}${t}: ${e.description}${Kr(e)}`}function Jr(e){return e.length===0?[`No skills are registered for this session.`,``,`Skills are metadata until activated. Do not invent or imitate a skill workflow when no matching registered skill exists.`].join(`
|
|
58
|
+
`):[`Registered skills:`,...e.map(qr),``,`Activation contract:`,`- Use /skills <skill-name> [args] to activate a matching skill.`,`- Treat /<skill-name> as a virtual alias for /skills <skill-name>.`,`- The system prompt Skills section is skill selection metadata.`,`- Treat descriptions as selection metadata only, not as loaded SKILL.md content.`,`- Do not answer by merely naming, recommending, or imitating a matching skill.`,`- If no listed skill matches the task, continue without claiming a skill was activated.`].join(`
|
|
59
|
+
`)}function Yr(e){let t=e.trim();if(t.length===0||t===`list`)return{action:`list`,skillArgs:``};let[n=``,...r]=t.split(/\s+/);return n.length===0?{action:`list`,skillArgs:``}:{action:`activate`,skillName:n,skillArgs:r.join(` `)}}async function Xr(e,t=``){let n=Yr(t);if(n.action===`activate`&&n.skillName!==void 0){if(!e.executeSkillCommandByName)return{success:!1,message:`Skill activation is not available in this session.`};let t=`/${n.skillName}${n.skillArgs?` ${n.skillArgs}`:``}`;return await e.executeSkillCommandByName(n.skillName,n.skillArgs,{invocationSource:e.getCommandInvocationSource?.()??`user`,displayInput:t,rawInput:t})??{success:!1,message:`Unknown skill: ${n.skillName}`}}let r=e.listSkills?.()??[];return{success:!0,message:Jr(r),data:{skills:r,activationContract:{activateWith:`/skills <skill-name> [args]`,activationRequiredBeforeWorkflow:!0,metadataIsNotSkillContent:!0}}}}function Zr(){return{name:`skills`,displayName:`Skills`,description:Gr,source:`skills`,modelInvocable:!0,userInvocable:!0,argumentHint:`[list | <skill-name> [args]]`,safety:`read-only`}}function Qr(){let e=Zr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,safety:e.safety,lifecycle:`inline`,execute:Xr}}var $r=class{name=`skills`;getCommands(){return[Zr()]}};function ei(t){let n=[new $r];return n.push(new e.SkillCommandSource(t.cwd)),{name:`agent-command-skills`,commandSources:n,systemCommands:[Qr()]}}const ti=[`Usage: /statusline on | off | reset | git on | git off`,`Fields: model, context, permission mode, message count, session name, thinking state, git branch.`].join(`
|
|
60
|
+
`);function ni(t){let n=t.trim().toLowerCase().split(/\s+/).filter(e=>e.length>0),[r,i]=n;return r===`on`&&i===void 0?{success:!0,message:`Status line enabled.`,patch:{enabled:!0}}:r===`off`&&i===void 0?{success:!0,message:`Status line disabled.`,patch:{enabled:!1}}:r===`reset`&&i===void 0?{success:!0,message:`Status line settings reset.`,patch:{...e.DEFAULT_STATUS_LINE_COMMAND_SETTINGS}}:r===`git`&&i===`on`&&n.length===2?{success:!0,message:`Status line git branch shown.`,patch:{gitBranch:!0}}:r===`git`&&i===`off`&&n.length===2?{success:!0,message:`Status line git branch hidden.`,patch:{gitBranch:!1}}:{success:!1,message:ti}}function ri(e,t){let n=ni(t);return n.success?{success:!0,message:n.message,effects:[{type:`statusline-settings-patch`,patch:n.patch}]}:{success:!1,message:n.message}}function ii(){return{name:`statusline`,displayName:`Status Line`,description:e.STATUSLINE_COMMAND_DESCRIPTION,source:`statusline`,argumentHint:e.STATUSLINE_COMMAND_ARGUMENT_HINT,subcommands:(0,e.buildStatusLineCommandSubcommands)(`statusline`),modelInvocable:!1}}function ai(){let e=ii();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,subcommands:e.subcommands,lifecycle:`inline`,execute:ri}}var oi=class{name=`statusline`;getCommands(){return[ii()]}};function si(){return{name:`agent-command-statusline`,commandSources:[new oi],systemCommands:[ai()]}}const ci=`Inspect Robota user-local storage and memory state.`,li=`storage list [--format json] | memory set/list/inspect/disable/delete`,Z=`Usage: user-local storage list [--format json] | user-local memory set <category> <key> <value> --summary <summary> --source <source> | user-local memory list [--format json] | user-local memory inspect <category> <key> [--format json] | user-local memory disable <category> <key> | user-local memory delete <category> <key>`;function ui(e){return e.length===0?`No user-local memory items.`:e.map(e=>`- ${e.category}/${e.key} (${e.enabled?`enabled`:`disabled`})`).join(`
|
|
61
|
+
`)}function Q(e){if(e===void 0)throw Error(`User-local memory category is required.`);return e}async function di(t,n){let r=await(0,e.listUserLocalMemoryItems)({activeRepositoryRoot:t});return{message:n.format===`json`?JSON.stringify(r,null,2):ui(r.items),success:!0,data:{list:r}}}async function fi(t,n){let[r,i,a]=n.positional,o=await(0,e.setUserLocalMemoryItem)({activeRepositoryRoot:t,category:Q(r),key:i??``,value:a??``,summary:n.summary??``,source:n.source??``});return{message:`Stored user-local memory item ${o.category}/${o.key} at ${o.storageLocation}`,success:!0,data:{item:o}}}async function pi(t,n){let[r,i]=n.positional,a=await(0,e.inspectUserLocalMemoryItem)({activeRepositoryRoot:t,category:Q(r),key:i??``});return{message:n.format===`json`?JSON.stringify(a,null,2):`${a.category}/${a.key}: ${a.summary}`,success:!0,data:{item:a}}}async function mi(t,n){let[r,i]=n.positional,a=await(0,e.disableUserLocalMemoryItem)({activeRepositoryRoot:t,category:Q(r),key:i??``});return{message:`Disabled user-local memory item ${a.category}/${a.key}`,success:!0,data:{item:a}}}async function hi(t,n){let[r,i]=n.positional,a=await(0,e.deleteUserLocalMemoryItem)({activeRepositoryRoot:t,category:Q(r),key:i??``});return{message:`Deleted user-local memory item ${a.category}/${a.key}`,success:!0,data:{result:a}}}async function gi(e,t){return(t.action??`list`)===`list`?di(e,t):t.action===`set`?fi(e,t):t.action===`inspect`?pi(e,t):t.action===`disable`?mi(e,t):t.action===`delete`?hi(e,t):{message:Z,success:!1}}function _i(e){if(e===void 0||e===`text`)return`text`;if(e===`json`)return`json`;throw Error(`Unsupported user-local output format: ${e}`)}function vi(e,t,n){return e===`--format`?{format:t[n+1],nextIndex:n+1}:e.startsWith(`--format=`)?{format:e.slice(9),nextIndex:n}:e===`--summary`?{summary:t[n+1],nextIndex:n+1}:e.startsWith(`--summary=`)?{summary:e.slice(10),nextIndex:n}:e===`--source`?{source:t[n+1],nextIndex:n+1}:e.startsWith(`--source=`)?{source:e.slice(9),nextIndex:n}:null}function yi(e,t={}){let n=t.format,r=t.summary,i=t.source,a=[];for(let t=0;t<e.length;t+=1){let o=e[t],s=vi(o,e,t);if(s!==null){n=s.format??n,r=s.summary??r,i=s.source??i,t=s.nextIndex;continue}a.push(o)}return{target:a[0],action:a[1],positional:a.slice(2),format:_i(n),summary:r,source:i}}function bi(e){return e.trim().split(/\s+/).filter(Boolean)}function xi(e,t){let n=t.map(e=>`- ${e.category}`);return[`User-local storage root: ${e}`,`Categories:`,...n].join(`
|
|
62
|
+
`)}async function Si(t,n){if((n.action??`list`)!==`list`)return{message:Z,success:!1};let r=await(0,e.inspectUserLocalStorage)({activeRepositoryRoot:t});return{message:n.format===`json`?JSON.stringify(r,null,2):xi(r.root,r.categories),success:!0,data:{root:r.root,categories:r.categories,inspection:r}}}async function Ci(e,t){return t.target===`storage`?Si(e,t):t.target===`memory`?gi(e,t):{message:Z,success:!1}}function wi(e){return e.includes(`ENOENT`)?`User-local memory item not found.`:e}async function Ti(e){try{return await Ci(e.cwd,yi(e.argv,{format:e.format,summary:e.summary,source:e.source}))}catch(e){return{message:wi(e instanceof Error?e.message:String(e)),success:!1}}}async function Ei(e,t){try{return await Ci(e.getCwd(),yi(bi(t)))}catch(e){return{message:wi(e instanceof Error?e.message:String(e)),success:!1}}}function Di(){return{name:`user-local`,displayName:`User Config`,description:ci,source:`user-local`,argumentHint:li,modelInvocable:!1,safety:`read-only`,subcommands:[{name:`storage`,description:`Inspect user-local storage categories`,source:`user-local`},{name:`memory`,description:`Inspect and manage user-local memory items`,source:`user-local`}]}}function Oi(){let e=Di();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,argumentHint:e.argumentHint,safety:e.safety,subcommands:e.subcommands,execute:Ei}}var ki=class{name=`user-local`;getCommands(){return[Di()]}};function Ai(){return{name:`agent-command-user-local`,commandSources:[new ki],systemCommands:[Oi()]}}function ji({cwd:e,providerDefinitions:t,providerSettingsAdapter:n}){return[ei({cwd:e}),nt(),ye(),kt(),Tt(),ct(),we(),bt(),Ai(),Ae(),Ke(),Ze(),Br(),tr(),hr(),si(),Ut(),Wr(),Kn({providerDefinitions:t,settings:n})]}function Mi(t){let r=(0,a.homedir)(),o=(0,n.join)(r,`.robota`,`plugins`),s=(0,n.join)(r,`.robota`,`settings.json`),c=(e,t)=>(0,i.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`}),l=new e.PluginSettingsStore(s),u=new e.MarketplaceClient({pluginsDir:o,exec:c});return{cwd:t,marketplace:u,installer:new e.BundlePluginInstaller({pluginsDir:o,settingsStore:l,marketplaceClient:u,exec:c}),loader:new e.BundlePluginLoader(o),settingsStore:l}}async function Ni(e){let t=await e.loader.loadAll(),n=e.settingsStore.getEnabledPlugins();return t.map(e=>{let t=e.pluginDir.split(`/`),r=t.indexOf(`cache`),i=r>=0?t[r+1]??``:``,a=i?`${e.manifest.name}@${i}`:e.manifest.name;return{name:a,description:e.manifest.description,enabled:n[a]!==!1&&n[e.manifest.name]!==!1}})}async function Pi(e,t){let n;try{n=e.marketplace.fetchManifest(t)}catch{return[]}let r=e.installer.getInstalledPlugins(),i=new Set(Object.values(r).map(e=>e.pluginName));return n.plugins.map(e=>({name:e.name,description:e.description,installed:i.has(e.name)}))}async function Fi(t,r,a){let[o,s]=r.split(`@`);if(!o||!s)throw Error(`Plugin ID must be in format: name@marketplace`);if(a===`project`){let r=(0,n.join)(t.cwd,`.robota`,`plugins`);await new e.BundlePluginInstaller({pluginsDir:r,settingsStore:t.settingsStore,marketplaceClient:t.marketplace,exec:(e,t)=>(0,i.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`})}).install(o,s);return}await t.installer.install(o,s)}async function Ii(e,t){let n=e.installer.getPluginsByMarketplace(t);for(let t of n)await e.installer.uninstall(`${t.pluginName}@${t.marketplace}`);e.marketplace.removeMarketplace(t)}function Li(e){return e.marketplace.listMarketplaces().map(e=>({name:e.name,type:e.source.type}))}function Ri(e){let t=Mi(e);return{listInstalled:()=>Ni(t),listAvailablePlugins:e=>Pi(t,e),install:(e,n)=>Fi(t,e,n),uninstall:async e=>t.installer.uninstall(e),enable:async e=>t.installer.enable(e),disable:async e=>t.installer.disable(e),marketplaceAdd:async e=>e.includes(`/`)&&!e.includes(`:`)?t.marketplace.addMarketplace({type:`github`,repo:e}):t.marketplace.addMarketplace({type:`git`,url:e}),marketplaceRemove:e=>Ii(t,e),marketplaceUpdate:async e=>t.marketplace.updateMarketplace(e),marketplaceList:async()=>Li(t),reloadPlugins:async()=>({loadedPluginCount:(await t.loader.loadAll()).length})}}const $=`plugin`;function zi(){return process.env.HOME??(0,a.homedir)()}function Bi(t){let r=new e.BundlePluginLoader((0,n.join)(zi(),`.robota`,`plugins`));try{let n=r.loadPluginsSync();return n.length===0?(t.replaceSource($),0):(t.replaceSource($,new e.PluginCommandSource(n)),n.length)}catch{return t.replaceSource($),0}}exports.AgentCommandSource=ve,exports.BackgroundCommandSource=Ce,exports.CLEAR_COMMAND_MESSAGE=xr,exports.CompactCommandSource=ke,exports.ContextCommandSource=Ge,exports.ExitCommandSource=Ye,exports.HelpCommandSource=tt,exports.LanguageCommandSource=ot,exports.MemoryCommandSource=yt,exports.ModeCommandSource=Ct,exports.PermissionsCommandSource=Ot,exports.PluginManagerCommandSource=Ht,exports.ProviderCommandSource=Un,exports.RewindCommandSource=mr,exports.SKILLS_COMMAND_DESCRIPTION=Gr,exports.STATUSLINE_USAGE=ti,exports.SessionCommandSource=Rr,exports.SettingsCommandSource=Ur,exports.SkillsCommandSource=$r,exports.StatusLineCommandSource=oi,exports.USER_LOCAL_COMMAND_ARGUMENT_HINT=li,exports.USER_LOCAL_COMMAND_DESCRIPTION=ci,exports.USER_LOCAL_COMMAND_USAGE=Z,exports.UserLocalCommandSource=ki,exports.createAgentCommandEntry=m,exports.createAgentCommandModule=ye,exports.createAgentSystemCommand=_e,exports.createBackgroundCommandEntry=h,exports.createBackgroundCommandModule=we,exports.createClearCommandEntry=J,exports.createCompactCommandEntry=De,exports.createCompactCommandModule=Ae,exports.createContextCommandEntry=C,exports.createContextCommandModule=Ke,exports.createCostCommandEntry=jr,exports.createDefaultCommandModules=ji,exports.createDefaultPluginCommandAdapter=Ri,exports.createExitCommandEntry=w,exports.createExitCommandModule=Ze,exports.createHelpCommandEntry=$e,exports.createHelpCommandModule=nt,exports.createLanguageCommandEntry=it,exports.createLanguageCommandModule=ct,exports.createMemoryCommandEntry=D,exports.createMemoryCommandModule=bt,exports.createModeCommandEntry=O,exports.createModeCommandModule=Tt,exports.createPermissionsCommandEntry=k,exports.createPermissionsCommandModule=kt,exports.createPluginCommandEntry=N,exports.createPluginCommandModule=Ut,exports.createProviderCommandEntry=H,exports.createProviderCommandModule=Kn,exports.createProviderSetupFlow=F,exports.createReloadPluginsCommandEntry=P,exports.createRenameCommandEntry=Y,exports.createResetCommandEntry=U,exports.createResetCommandModule=tr,exports.createResumeCommandEntry=X,exports.createRewindCommandModule=hr,exports.createSessionCommandModule=Br,exports.createSettingsCommandEntry=Vr,exports.createSettingsCommandModule=Wr,exports.createSkillsCommandEntry=Zr,exports.createSkillsCommandModule=ei,exports.createStatusLineCommandEntry=ii,exports.createStatusLineCommandModule=si,exports.createUserLocalCommandEntry=Di,exports.createUserLocalCommandModule=Ai,exports.createValidateSessionCommandEntry=Mr,exports.ensureProviderConfig=Yn,exports.executeAgentCommand=pe,exports.executeBackgroundCommand=xe,exports.executeClearCommand=Sr,exports.executeCompactCommand=Ee,exports.executeContextCommand=Me,exports.executeCostCommand=kr,exports.executeExitCommand=qe,exports.executeHelpCommand=Qe,exports.executeLanguageCommand=rt,exports.executeMemoryCommand=_t,exports.executeModeCommand=xt,exports.executePermissionsCommand=Et,exports.executePluginCommand=Rt,exports.executeProviderCommand=In,exports.executeReloadPluginsCommand=zt,exports.executeRenameCommand=Cr,exports.executeResetCommand=Qn,exports.executeResumeCommand=wr,exports.executeRewindCommand=dr,exports.executeSkillsCommand=Xr,exports.executeStatusLineCommand=ri,exports.executeUserLocalCommand=Ei,exports.executeUserLocalDirectCommand=Ti,exports.executeValidateSessionCommand=Ar,exports.formatProviderSetupChoiceLabel=R,exports.formatProviderSetupHelpLinks=z,exports.formatProviderSetupPromptLabel=qt,exports.formatProviderSetupSelectionPrompt=Wt,exports.getProviderSetupStep=I,exports.reloadPluginCommandSource=Bi,exports.resolveProviderSetupSelection=Gt,exports.runProviderSetupPromptFlow=Kt,exports.runProviderStartupSetup=Jn,exports.submitProviderSetupValue=L,exports.validateProviderSetupValue=B;
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/agent/agent-command-module.ts","../../src/agent/agent-command.ts","../../src/default/default-command-modules.ts","../../src/background/background-command-module.ts","../../src/background/background-command.ts","../../src/compact/compact-command-module.ts","../../src/compact/compact-command.ts","../../src/context/context-command-module.ts","../../src/context/context-command.ts","../../src/exit/exit-command-module.ts","../../src/exit/exit-command.ts","../../src/help/help-command-module.ts","../../src/help/help-command.ts","../../src/language/language-command-module.ts","../../src/language/language-command.ts","../../src/memory/memory-command-module.ts","../../src/memory/memory-command.ts","../../src/mode/mode-command-module.ts","../../src/mode/mode-command.ts","../../src/permissions/permissions-command-module.ts","../../src/permissions/permissions-command.ts","../../src/plugin/plugin-command-module.ts","../../src/plugin/plugin-command.ts","../../src/provider/provider-command-module.ts","../../src/provider/provider-command-execution.ts","../../src/provider/provider-setup-flow.ts","../../src/provider/provider-startup.ts","../../src/reset/reset-command-module.ts","../../src/reset/reset-command.ts","../../src/rewind/rewind-command-module.ts","../../src/rewind/rewind-command.ts","../../src/session/session-command.ts","../../src/session/session-command-module.ts","../../src/settings/settings-command-module.ts","../../src/skills/skills-command-module.ts","../../src/skills/skills-command.ts","../../src/statusline/statusline-command-module.ts","../../src/statusline/statusline-command.ts","../../src/user-local/user-local-command-module.ts","../../src/user-local/user-local-command-constants.ts","../../src/user-local/user-local-command.ts","../../src/plugins/default-plugin-command-adapter.ts","../../src/plugins/default-plugin-command-source-loader.ts"],"mappings":";;;;iBA+BgB,uBAAA,CAAA,GAA2B,QAAQ;AAAA,iBAqBnC,wBAAA,CAAA,GAA4B,cAAc;AAAA,cAe7C,kBAAA,YAA8B,cAAc;EAAA,SAC9C,IAAA;EAET,WAAA,CAAA,GAAe,QAAA;AAAA;AAAA,iBAKD,wBAAA,CAAA,GAA4B,cAAc;;;iBCyIpC,mBAAA,CACpB,OAAA,EAAS,oBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;UChMM,6BAAA;EACf,GAAA;EACA,mBAAA,WAA8B,mBAAA;EAC9B,uBAAA,EAAyB,iCAA+B;AAAA;AAAA,iBAG1C,2BAAA,CAAA;EACd,GAAA;EACA,mBAAA;EACA;AAAA,GACC,6BAAA,YAAyC,cAAA;;;iBCnB5B,4BAAA,CAAA,GAAgC,QAAQ;AAAA,cA0B3C,uBAAA,YAAmC,cAAc;EAAA,SACnD,IAAA;EAET,WAAA,CAAA,GAAe,QAAA;AAAA;AAAA,iBAKD,6BAAA,CAAA,GAAiC,cAAc;;;iBChCzC,wBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;iBCVK,yBAAA,CAAA,GAA6B,QAAQ;AAAA,cA8BxC,oBAAA,YAAgC,cAAc;EAAA,SAChD,IAAA;EAET,WAAA,CAAA,GAAe,QAAA;AAAA;AAAA,iBAKD,0BAAA,CAAA,GAA8B,cAAc;;;iBCtCtC,qBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;iBCHK,yBAAA,CAAA,GAA6B,QAAQ;AAAA,cA+BxC,oBAAA,YAAgC,cAAc;EAAA,SAChD,IAAA;EAET,WAAA,CAAA,GAAe,QAAA;AAAA;AAAA,iBAKD,0BAAA,CAAA,GAA8B,cAAc;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/agent/agent-command-module.ts","../../src/agent/agent-command.ts","../../src/default/default-command-modules.ts","../../src/background/background-command-module.ts","../../src/background/background-command.ts","../../src/compact/compact-command-module.ts","../../src/compact/compact-command.ts","../../src/context/context-command-module.ts","../../src/context/context-command.ts","../../src/exit/exit-command-module.ts","../../src/exit/exit-command.ts","../../src/help/help-command-module.ts","../../src/help/help-command.ts","../../src/language/language-command-module.ts","../../src/language/language-command.ts","../../src/memory/memory-command-module.ts","../../src/memory/memory-command.ts","../../src/mode/mode-command-module.ts","../../src/mode/mode-command.ts","../../src/permissions/permissions-command-module.ts","../../src/permissions/permissions-command.ts","../../src/plugin/plugin-command-module.ts","../../src/plugin/plugin-command.ts","../../src/provider/provider-command-module.ts","../../src/provider/provider-command-execution.ts","../../src/provider/provider-setup-flow.ts","../../src/provider/provider-startup.ts","../../src/reset/reset-command-module.ts","../../src/reset/reset-command.ts","../../src/rewind/rewind-command-module.ts","../../src/rewind/rewind-command.ts","../../src/session/session-command.ts","../../src/session/session-command-module.ts","../../src/settings/settings-command-module.ts","../../src/skills/skills-command-module.ts","../../src/skills/skills-command.ts","../../src/statusline/statusline-command-module.ts","../../src/statusline/statusline-command.ts","../../src/user-local/user-local-command-module.ts","../../src/user-local/user-local-command-constants.ts","../../src/user-local/user-local-command.ts","../../src/plugins/default-plugin-command-adapter.ts","../../src/plugins/default-plugin-command-source-loader.ts"],"mappings":"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"}
|