@robota-sdk/agent-command 3.0.0-beta.75 → 3.0.0-beta.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node/index.cjs +25 -25
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +34 -34
- package/dist/node/index.js.map +1 -1
- package/package.json +5 -5
- package/src/context/context-command.ts +4 -4
- package/src/preset/__tests__/preset-command-module.test.ts +7 -7
- package/src/preset/preset-command.ts +5 -2
- package/src/session/model-pricing.ts +7 -60
package/dist/node/index.cjs
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@robota-sdk/agent-framework"),t=require("@robota-sdk/agent-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@robota-sdk/agent-framework"),t=require("@robota-sdk/agent-core"),n=require("@robota-sdk/agent-preset"),r=require("node:path"),i=require("node:fs"),a=require("node:child_process"),o=require("node:os");const s=`general-purpose`;function c(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 l(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 u(e,t,n,r){return{agentType:t,label:n,mode:`background`,prompt:r,...e.model?{model:e.model}:{},...e.isolation?{isolation:e.isolation}:{}}}function ee(e,t){let n=l(e),[r,...i]=n.positional,a=n.agentType??s,o=n.positional;!n.agentType&&r&&t.has(r)&&(a=r,o=i);let c=o.join(` `).trim();if(c)return u(n,a,a,c)}function te(e,t){let n=l(e);return n.positional.map(e=>ne(e,n,t)).filter(e=>e!==void 0)}function ne(e,t,n){let r=e.indexOf(`=`);if(r>0)return d(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 u(t,t.agentType??(n.has(a)?a:s),a,o)}function d(e,t,n,r){let i=t.indexOf(`:`);if(i===-1)return u(n,n.agentType??(r.has(e)?e:s),e,t);if(!(i===0||i===t.length-1))return u(n,t.slice(0,i),e,t.slice(i+1))}function f(e){return e instanceof Error?e.message:String(e)}function p(e){return new Set(e.listAgentDefinitions().map(e=>e.name))}function m(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 h(e,t){let n=m(e,t.agentType);if(n)return n;try{return{state:await e.spawnAgentJob(t)}}catch(e){return{message:f(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
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=ee(t,p(e));if(!n)return{message:`Usage: agent run [AGENT_NAME] [--agent AGENT_NAME] PROMPT`,success:!1};let r=await h(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=te(n.filter(e=>e!==`--wait`&&e!==`--detach`),p(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=>m(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:f(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
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
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]=c(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:f(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
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 g(){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=g();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[g()]}};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
|
|
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:c}}}async function
|
|
10
|
-
`),data:{autoCompactThreshold:n,autoCompactThresholdSource:r}}}if(r===`on`)return
|
|
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 _(){return{name:`background`,displayName:`Background Tasks`,description:e.BACKGROUND_COMMAND_DESCRIPTION,source:`background`,modelInvocable:!1,subcommands:(0,e.buildBackgroundCommandSubcommands)()}}function Se(){let e=_();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[_()]}};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 v=[`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 y(e){return e===!1?`disabled`:`${Math.round(e*100)}%`}function b(e,t){return e===!1?`Auto compact: disabled (${t})`:`Auto compact: ${y(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=Ue(t.getSession().getFullHistory()),c=(0,e.listCommandContextReferences)(t);return{message:[`Context: ${i.usedTokens.toLocaleString()} / ${i.maxTokens.toLocaleString()} tokens (${Math.round(i.usedPercentage)}%)`,b(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:v}:Ge(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:v};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:v}}function Pe(t,n){let[r,i]=n;if(i!==void 0)return{success:!1,message:v};if(r===void 0){let n=(0,e.readAutoCompactThreshold)(t),r=(0,e.readAutoCompactThresholdSource)(t);return{success:!0,message:[b(n,r),v].join(`
|
|
10
|
+
`),data:{autoCompactThreshold:n,autoCompactThresholdSource:r}}}if(r===`on`)return x(t,e.DEFAULT_AUTO_COMPACT_THRESHOLD,`enabled`);if(r===`off`)return x(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: ${y(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?x(t,a.threshold,`threshold set`):{success:!1,message:`${a.message}\n${v}`}}async function Fe(t,n){let r=n.join(` `).trim();if(!r)return{success:!1,message:v};let i=await(0,e.addCommandContextReference)(t,r);return i.reference?{success:!0,message:[`Context reference added: ${C(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
|
-
`)}function Ge(t){let n=(0,e.readCommandContextState)(t),r=(0,e.readAutoCompactThreshold)(t),i=(0,e.readAutoCompactThresholdSource)(t),a=
|
|
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:v};let i=(0,e.removeCommandContextReference)(t,r);return i.removed?{success:!0,message:`Context reference removed: ${C(i.removed)}.`,data:{removed:i.removed}}:{success:!1,message:`Context reference not found: ${r}`}}function x(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 ${y(t)} (${r}).`:`Auto compact threshold set to ${y(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 S(e){return Math.ceil(e/t.CONTEXT_ESTIMATE_CHARS_PER_TOKEN)}function C(e){return[e.relativePath,`[${e.loadType}, ${e.status}]`,`~${S(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 n=0,r=0,i=0,a=0,o=0,s=0,c=0;for(let l of e){let e=Math.ceil(JSON.stringify(l).length/t.CONTEXT_ESTIMATE_CHARS_PER_TOKEN);l.role===`system`?n+=e:l.role===`user`?(r+=e,i++):l.role===`assistant`?(a+=e,o++):l.role===`tool`&&(s+=e,c++)}return{systemTokens:n,userTokens:r,userCount:i,assistantTokens:a,assistantCount:o,toolTokens:s,toolCallCount:c,totalTokens:n+r+a+s}}function Ue(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=new Map;for(let a of e)if(a.category===`chat`){if(a.type===`user`)n++;else if(a.type===`tool`){let e=a.data,n=t.get(e.toolCallId??``),o=n?.name??`tool`,s=n?.firstArg??``;r++,i.set(`${o}:${s}`,{toolName:o,displayArg:s})}}return{turnCount:n,toolResults:[...i.values()],totalToolCallCount:r}}function We(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 Ge(t){let n=(0,e.readCommandContextState)(t),r=(0,e.readAutoCompactThreshold)(t),i=(0,e.readAutoCompactThresholdSource)(t),a=He(t.getSession().getHistory()),o=Ue(t.getSession().getFullHistory()),s=(0,e.listCommandContextReferences)(t),c=s.filter(e=>e.loadType===`system`),l=s.filter(e=>e.loadType===`manual`),u=s.filter(e=>e.loadType===`prompt-reference`),ee=c.reduce((e,t)=>e+S(t.byteLength),0),te=l.reduce((e,t)=>e+S(t.byteLength),0),ne=u.reduce((e,t)=>e+S(t.byteLength),0),d=o.turnCount===0?`Conversation history — 0 turns`:`Conversation history — ${o.turnCount} turn${o.turnCount===1?``:`s`} | ~${a.totalTokens.toLocaleString()} tokens`,f=o.toolResults.map(e=>`${e.toolName}${e.displayArg?`: ${e.displayArg}`:``}`),p=o.toolResults.length,m=o.totalToolCallCount,h=m===0?`Tool results (0): (none)`:p<m?`Tool results (${p} unique / ${m} calls, ~${a.toolTokens.toLocaleString()} tokens):`:`Tool results (${p}, ~${a.toolTokens.toLocaleString()} tokens):`,re=o.turnCount===0?[]:[`User (${a.userCount}): ~${a.userTokens.toLocaleString()} tokens`,`Assistant (${a.assistantCount}): ~${a.assistantTokens.toLocaleString()} tokens`,...a.systemTokens>0?[`System messages: ~${a.systemTokens.toLocaleString()} tokens`]:[],m>0?[h,...f.map(e=>` ${e}`)].join(`
|
|
14
14
|
`):h],ie=o.turnCount===0?`${d}:\n (none)`:[`${d}:`,...re.map(e=>` ${e}`)].join(`
|
|
15
|
-
`);return{success:!0,message:[`Context: ${n.usedTokens.toLocaleString()} / ${n.maxTokens.toLocaleString()} tokens (${Math.round(n.usedPercentage)}%)`,
|
|
16
|
-
`),data:{references:s,history:{turnCount:o.turnCount,toolResults:o.toolResults}}}}function w(){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 Ke(){let e=w();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,execute:
|
|
15
|
+
`);return{success:!0,message:[`Context: ${n.usedTokens.toLocaleString()} / ${n.maxTokens.toLocaleString()} tokens (${Math.round(n.usedPercentage)}%)`,b(r,i),``,We(`System prompt (active every turn)`,ee,c.map(C)),``,ie,``,We(`Manually added`,te,l.map(C)),``,We(`Prompt references (@-syntax)`,ne,u.map(C))].join(`
|
|
16
|
+
`),data:{references:s,history:{turnCount:o.turnCount,toolResults:o.toolResults}}}}function w(){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 Ke(){let e=w();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,execute:Me}}var qe=class{name=`context`;getCommands(){return[w()]}};function Je(){return{name:`agent-command-context`,commandSources:[new qe],systemCommands:[Ke()]}}function Ye(t,n){return{success:!0,message:`Exit requested.`,effects:[(0,e.createSessionExitRequestedEffect)()]}}function T(){return{name:`exit`,displayName:`Exit Session`,description:e.EXIT_COMMAND_DESCRIPTION,source:`exit`,modelInvocable:!1}}function Xe(){let e=T();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ye}}var Ze=class{name=`exit`;getCommands(){return[T()]}};const Qe={exit:{type:`confirm`,message:`Exit the session?`}};function $e(){return{name:`agent-command-exit`,commandSources:[new Ze],systemCommands:[Xe()],interactionHints:Qe}}function et(t,n){return{success:!0,message:(0,e.formatCommandHelpMessage)(t)}}function tt(){return{name:`help`,displayName:`Help`,description:e.HELP_COMMAND_DESCRIPTION,source:`help`,modelInvocable:!1}}function nt(){let e=tt();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:et}}var rt=class{name=`help`;getCommands(){return[tt()]}};function it(){return{name:`agent-command-help`,commandSources:[new rt],systemCommands:[nt()]}}function at(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 ot(){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 st(){let e=ot();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:at}}var ct=class{name=`language`;getCommands(){return[ot()]}};const lt={language:{type:`pick`,getItems:()=>(0,e.buildLanguageCommandSubcommands)().map(e=>({label:`${e.name} ${e.description??``}`.trimEnd(),value:e.name,description:e.description}))}};function ut(){return{name:`agent-command-language`,commandSources:[new ct],systemCommands:[st()],interactionHints:lt}}function E(){return{message:e.MEMORY_COMMAND_USAGE,success:!1}}function dt(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function ft(e){let t=e.list(),n=t.topics.length>0?t.topics.map(e=>`- ${e.name}: ${e.path}`).join(`
|
|
17
17
|
`):`(none)`;return{message:[`Memory index: ${t.indexPath}`,`Topics directory: ${t.topicsPath}`,`Topics:`,n].join(`
|
|
18
|
-
`),success:!0,data:{indexPath:t.indexPath,topicsPath:t.topicsPath,topicCount:t.topics.length}}}function
|
|
19
|
-
`),success:!0,data:{count:t.length}}}function
|
|
20
|
-
`),success:!0,data:{count:n.length,references:[...n]}}}function bt(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`,a=(0,e.createCommandMemoryStores)(t);if(i===`list`)return
|
|
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 It(){return{success:!0,message:`Opening plugin manager...`,effects:[(0,e.createPluginTuiRequestedEffect)()]}}function Lt(e,t){return M(e,t,`Usage: /plugin install <name>@<marketplace>`,async(e,t)=>(await e.install(t),`Installed plugin: ${t}`))}function Rt(e,t){return M(e,t,`Usage: /plugin uninstall <name>@<marketplace>`,async(e,t)=>(await e.uninstall(t),`Uninstalled plugin: ${t}`))}function zt(e,t){return M(e,t,`Usage: /plugin enable <name>@<marketplace>`,async(e,t)=>(await e.enable(t),`Enabled plugin: ${t}`))}function Bt(e,t){return M(e,t,`Usage: /plugin disable <name>@<marketplace>`,async(e,t)=>(await e.disable(t),`Disabled plugin: ${t}`))}async function Vt(e,t){let{subcommand:n,subArgs:r}=Nt(t);switch(n){case``:case`manage`:return It();case`install`:return Lt(e,r);case`uninstall`:return Rt(e,r);case`enable`:return zt(e,r);case`disable`:return Bt(e,r);case`marketplace`:return Ft(e,r);default:return A(`Unknown plugin subcommand: ${n}`)}}async function Ht(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 Ut(){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:Vt}}function Wt(){let e=P();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ht}}var Gt=class{name=`plugin-manager`;getCommands(){return[N(),P()]}};function Kt(){return{name:`agent-command-plugin`,commandSources:[new Gt],systemCommands:[Ut(),Wt()]}}function qt(e){return e.getSession().getActivePresetId?.()??`default`}function Jt(e){return[`Available presets:`,...(0,
|
|
22
|
-
`)}function Yt(e){return`Unknown preset: ${e}. Available: ${(0,
|
|
23
|
-
`)}function rn(e,
|
|
24
|
-
`)}function cn(e){if(/^\d+$/.test(e))return Number(e)-1}function V(e,t){if(e.required===!0&&t.length===0)return`Required`}function ln(e,t){let r=(0,n.findProviderDefinition)(t,e);if(r===void 0)throw Error(`Unknown provider: ${e}. Currently supported: ${(0,n.formatSupportedProviderTypes)(t)}`);return r}function un(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 dn(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function fn(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 pn(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 mn={type:`session-restart-requested`,reason:`other`};function hn(e,t){return I(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function H(e,t){return{prompt:gn(e),submit:n=>vn(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function gn(e){let t=L(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,..._n(e),...n===void 0?{}:{placeholder:n},...t.defaultValue===void 0?{}:{allowEmpty:!0},...t.masked===void 0?{}:{masked:t.masked},validate:e=>V(t,e)}}function _n(e){let t=B(e.setupHelpLinks);return t.length>0?{description:t}:{}}function vn(e,t,n){let r=R(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:H(e,n)}:r.status===`complete`?yn(r.input,n):{message:``,success:!0,interaction:H(r.state,n)}}function yn(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:[{...mn,message:`Provider setup restart`}]}}function bn(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function xn(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 Sn(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=I(n.type,t.providerDefinitions,{profileName:e,setCurrent:!1,initialValues:Cn(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:U(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function Cn(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function U(e,t,n){return{prompt:gn(e),submit:r=>wn(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function wn(e,t,n,r){let i=R(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:U(e,t,r)}:i.status===`complete`?Tn(i.input,t,r):{message:``,success:!0,interaction:U(i.state,t,r)}}function Tn(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 En={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=Fn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:On(e,r,t)}}function On(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>kn(e,t,n)},submit:r=>An(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function kn(e,t,n){let r=In(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function An(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=In(n,r),s=kn(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 jn(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:Mn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function Mn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?Nn(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function Nn(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:bn(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=>Pn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function Pn(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:[{...En,message:`Provider delete restart`}]}}function Fn(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 In(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const Ln=`switch`,Rn=`edit`,zn=`test`,Bn=`duplicate`,Vn=`delete`,Hn=`cancel`;function Un(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:bn(t,n,e)})),maxVisible:8},submit:e=>Wn(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function Wn(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${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:`Provider profile: ${e}`,options:[{value:Ln,label:`Switch`},{value:Rn,label:`Edit`},{value:zn,label:`Test`},{value:Bn,label:`Duplicate`},{value:Vn,label:`Delete`},{value:Hn,label:`Cancel`}]},submit:n=>Kn(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function Kn(t,n,r){let i=r.settings.readMergedSettings();switch(n){case Ln:return xn(i.providers,t,r);case Rn:return Sn(t,r);case zn:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case Bn:return Dn(t,r);case Vn:return jn(t,r);case Hn:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function qn(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Jn(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Jn(r.currentProvider,r.providers,n):a===`current`||a===``?{message:Xn(r.currentProvider,r.providers),success:!0}:a===`switch`?xn(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Zn(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Jn(e,t,n){let r=Yn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:Un(e,t,n)}}function Yn(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(`
|
|
18
|
+
`),success:!0,data:{indexPath:t.indexPath,topicsPath:t.topicsPath,topicCount:t.topics.length}}}function pt(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 mt(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 ht(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 gt(t,n){(0,e.recordCommandMemoryEvent)(t,n)}function _t(e,t,n,r){if(!r)return E();try{let i=t.mark(r,`approved`,`approved-by-user`),a=n.append(i),o=t.mark(r,`saved`,`approved-and-saved`);return gt(e,{type:`memory_candidate_approved`,candidateId:o.id,topic:o.topic,reason:`approved-by-user`}),gt(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 dt(e instanceof Error?e:String(e))}}function vt(e,t,n){if(!n)return E();try{let r=t.mark(n,`rejected`,`rejected-by-user`);return gt(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 dt(e instanceof Error?e:String(e))}}function yt(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 bt(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`,a=(0,e.createCommandMemoryStores)(t);if(i===`list`)return ft(a.project);if(i===`show`)return pt(a.project,r[1]);if(i===`pending`)return ht(a.pending);if(i===`approve`)return _t(t,a.pending,a.project,r[1]);if(i===`reject`)return vt(t,a.pending,r[1]);if(i===`used`)return yt(t);if(i===`add`){let t=mt(r);if(!t)return E();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 E()}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 xt(){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:bt}}var St=class{name=`memory`;getCommands(){return[D()]}};function Ct(){return{name:`agent-command-memory`,commandSources:[new St],systemCommands:[xt()]}}function wt(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 Tt(){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:wt}}var Et=class{name=`mode`;getCommands(){return[O()]}};const Dt={mode:{type:`pick`,getItems:()=>(0,e.buildPermissionModeSubcommands)().map(e=>({label:e.name,value:e.name,description:e.description}))}};function Ot(){return{name:`agent-command-mode`,commandSources:[new Et],systemCommands:[Tt()],interactionHints:Dt}}function kt(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 At(){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:kt}}var jt=class{name=`permissions`;getCommands(){return[k()]}};function Mt(){return{name:`agent-command-permissions`,commandSources:[new jt],systemCommands:[At()]}}function Nt(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 Pt(t){return(0,e.resolvePluginCommandAdapter)(t)}async function j(e,t){let n=Pt(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 Ft(e,t){let{subcommand:n,subArgs:r}=Nt(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 It(){return{success:!0,message:`Opening plugin manager...`,effects:[(0,e.createPluginTuiRequestedEffect)()]}}function Lt(e,t){return M(e,t,`Usage: /plugin install <name>@<marketplace>`,async(e,t)=>(await e.install(t),`Installed plugin: ${t}`))}function Rt(e,t){return M(e,t,`Usage: /plugin uninstall <name>@<marketplace>`,async(e,t)=>(await e.uninstall(t),`Uninstalled plugin: ${t}`))}function zt(e,t){return M(e,t,`Usage: /plugin enable <name>@<marketplace>`,async(e,t)=>(await e.enable(t),`Enabled plugin: ${t}`))}function Bt(e,t){return M(e,t,`Usage: /plugin disable <name>@<marketplace>`,async(e,t)=>(await e.disable(t),`Disabled plugin: ${t}`))}async function Vt(e,t){let{subcommand:n,subArgs:r}=Nt(t);switch(n){case``:case`manage`:return It();case`install`:return Lt(e,r);case`uninstall`:return Rt(e,r);case`enable`:return zt(e,r);case`disable`:return Bt(e,r);case`marketplace`:return Ft(e,r);default:return A(`Unknown plugin subcommand: ${n}`)}}async function Ht(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 Ut(){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:Vt}}function Wt(){let e=P();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ht}}var Gt=class{name=`plugin-manager`;getCommands(){return[N(),P()]}};function Kt(){return{name:`agent-command-plugin`,commandSources:[new Gt],systemCommands:[Ut(),Wt()]}}function qt(e){return e.getSession().getActivePresetId?.()??`default`}function Jt(e){return[`Available presets:`,...(0,n.listPresets)().map(t=>`${t.id===e?`* `:` `}${t.id} — ${t.title}: ${t.description}`)].join(`
|
|
22
|
+
`)}function Yt(e){return`Unknown preset: ${e}. Available: ${(0,n.listPresets)().map(e=>e.id).join(`, `)}`}async function Xt(t,r){let i=r.trim().split(/\s+/)[0];if(i===void 0||i.length===0||i===`list`){let e=qt(t);return{message:Jt(e),success:!0,data:{presets:(0,n.listPresets)(),active:e}}}return(0,n.getPreset)(i)===void 0?{message:Yt(i),success:!1}:(await(0,e.applyPresetToSession)(t,i,(0,n.resolvePreset)(i)),{message:`Switched to preset: ${i}`,success:!0,data:{preset:i}})}function Zt(e=`preset`){return(0,n.listPresets)().map(t=>({name:t.id,description:t.description,source:e}))}function F(){return{name:`preset`,displayName:`Agent Preset`,description:`List presets or switch the active preset`,source:`preset`,argumentHint:`list | <preset-id>`,subcommands:Zt(`preset`),modelInvocable:!1}}function Qt(){let e=F();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 $t=class{name=`preset`;getCommands(){return[F()]}};const en={preset:{type:`pick`,getItems:()=>Zt().map(e=>({label:e.name,value:e.name,description:e.description}))}};function tn(){return{name:`agent-command-preset`,commandSources:[new $t],systemCommands:[Qt()],interactionHints:en}}function I(e,t,n={}){let r=ln(e,t);return{type:e,steps:fn(un(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 nn(e){return e.length===0?` No providers are available.`:[` Select provider:`,...e.map((e,t)=>` ${t+1}. ${z(e)}`),` Provider [1-${e.length}] (default: 1): `].join(`
|
|
23
|
+
`)}function rn(e,n){let r=e.trim(),i=r.length>0?r:`1`,a=cn(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 L(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 R(e,t){let n=L(e),r=t.trim()||n.defaultValue||``,i=V(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:pn(a)}}async function an(e,t,n,r={}){let i=I(e,n,r),a=i.steps.length;for(;i.stepIndex<a;){let e=L(i),n=await t(on(e,i.setupHelpLinks),e.masked===!0),r=R(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 on(e,t=[]){let n=e.defaultValue===void 0?``:` (default: ${e.defaultValue})`,r=B(t);return`${r.length>0?`${r}\n`:``} ${e.title}${n}: `}const sn={"cloud-paid":`[Cloud/Paid]`,"cloud-free":`[Cloud/Free]`,"local-free":`[Local/Free]`};function z(e){let t=`${e.category===void 0?``:`${sn[e.category]??``} `}${e.displayName===void 0?e.type:`${e.displayName} (${e.type})`}`;return e.description===void 0?t:`${t} — ${e.description}`}function B(e=[]){return e.length===0?``:e.map(e=>` Setup help: ${dn(e.kind)}: ${e.label} - ${e.url}`).join(`
|
|
24
|
+
`)}function cn(e){if(/^\d+$/.test(e))return Number(e)-1}function V(e,t){if(e.required===!0&&t.length===0)return`Required`}function ln(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 un(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 dn(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function fn(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 pn(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 mn={type:`session-restart-requested`,reason:`other`};function hn(e,t){return I(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function H(e,t){return{prompt:gn(e),submit:n=>vn(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function gn(e){let t=L(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,..._n(e),...n===void 0?{}:{placeholder:n},...t.defaultValue===void 0?{}:{allowEmpty:!0},...t.masked===void 0?{}:{masked:t.masked},validate:e=>V(t,e)}}function _n(e){let t=B(e.setupHelpLinks);return t.length>0?{description:t}:{}}function vn(e,t,n){let r=R(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:H(e,n)}:r.status===`complete`?yn(r.input,n):{message:``,success:!0,interaction:H(r.state,n)}}function yn(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:[{...mn,message:`Provider setup restart`}]}}function bn(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function xn(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 Sn(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=I(n.type,t.providerDefinitions,{profileName:e,setCurrent:!1,initialValues:Cn(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:U(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function Cn(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function U(e,t,n){return{prompt:gn(e),submit:r=>wn(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function wn(e,t,n,r){let i=R(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:U(e,t,r)}:i.status===`complete`?Tn(i.input,t,r):{message:``,success:!0,interaction:U(i.state,t,r)}}function Tn(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 En={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=Fn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:On(e,r,t)}}function On(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>kn(e,t,n)},submit:r=>An(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function kn(e,t,n){let r=In(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function An(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=In(n,r),s=kn(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 jn(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:Mn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function Mn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?Nn(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function Nn(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:bn(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=>Pn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function Pn(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:[{...En,message:`Provider delete restart`}]}}function Fn(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 In(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const Ln=`switch`,Rn=`edit`,zn=`test`,Bn=`duplicate`,Vn=`delete`,Hn=`cancel`;function Un(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:bn(t,n,e)})),maxVisible:8},submit:e=>Wn(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function Wn(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${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:`Provider profile: ${e}`,options:[{value:Ln,label:`Switch`},{value:Rn,label:`Edit`},{value:zn,label:`Test`},{value:Bn,label:`Duplicate`},{value:Vn,label:`Delete`},{value:Hn,label:`Cancel`}]},submit:n=>Kn(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function Kn(t,n,r){let i=r.settings.readMergedSettings();switch(n){case Ln:return xn(i.providers,t,r);case Rn:return Sn(t,r);case zn:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case Bn:return Dn(t,r);case Vn:return jn(t,r);case Hn:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function qn(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Jn(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Jn(r.currentProvider,r.providers,n):a===`current`||a===``?{message:Xn(r.currentProvider,r.providers),success:!0}:a===`switch`?xn(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Zn(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Jn(e,t,n){let r=Yn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:Un(e,t,n)}}function Yn(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(`
|
|
25
25
|
`)}function Xn(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(`
|
|
26
|
-
`):`Current provider "${e}" was not found in providers.`}function Zn(e,
|
|
26
|
+
`):`Current provider "${e}" was not found in providers.`}function Zn(e,n){return e===void 0||e.length===0?{message:`Provider setup requested. Select a provider to continue.`,success:!0,interaction:Qn(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:H(hn(e,n),n)}}function Qn(e){return{prompt:{kind:`choice`,title:`Select provider`,options:e.providerDefinitions.map(e=>({value:e.type,label:z(e)})),maxVisible:6},submit:t=>{let n=hn(t,e);return{message:`Provider setup requested: ${t}`,success:!0,interaction:H(n,e)}},cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function $n(){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 W(){return{name:`provider`,displayName:`Provider Setup`,description:`Manage provider profiles`,source:`provider`,modelInvocable:!1,argumentHint:`current | list | switch <profile> | add [type] | test [profile]`,subcommands:$n(),example:`/provider switch production`}}var er=class{name=`provider`;getCommands(){return[W()]}};function tr(e){let t=W();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)=>qn(n,e)}}const nr={provider:{type:`pick`,getItems:()=>$n().map(e=>({label:e.name,value:e.name,description:e.description}))}};function rr(e){return{name:`agent-command-provider`,commandSources:[new er],systemCommands:[tr(e)],interactionHints:nr}}async function ir(e,t){let n=(await e(`
|
|
27
27
|
Do you have an API key for an AI provider?
|
|
28
28
|
|
|
29
29
|
1. Yes, I have an API key
|
|
@@ -54,10 +54,10 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
54
54
|
`),success:!0,data:{count:e.length,checkpoints:[...e]}}}function hr(e){return e.length>0?e.join(`, `):`(none)`}function gr(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: ${pr(e.target.prompt)}`,`Captured files:`,...t,`Restore later checkpoints: files=${e.restoreToCheckpoint.fileCount} checkpoints=${hr(e.restoreToCheckpoint.checkpointIds)}`,`Rollback through checkpoint: files=${e.rollbackThroughCheckpoint.fileCount} checkpoints=${hr(e.rollbackThroughCheckpoint.checkpointIds)}`].join(`
|
|
55
55
|
`),success:!0,data:{inspection:e}}}function _r(e){return{message:[`Restored code to ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Rolled back checkpoints: ${e.restoredCheckpointCount}`].join(`
|
|
56
56
|
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function vr(e){return{message:[`Rolled back code through ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Removed checkpoints: ${e.removedCheckpointCount}`].join(`
|
|
57
|
-
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function q(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function yr(t,n){if(!n)return K();try{return gr((0,e.inspectCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function br(t,n){if(!n)return K();try{return _r(await(0,e.restoreCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function xr(t,n){if(!n)return K();try{return vr(await(0,e.rollbackCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function Sr(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`;return i===`list`?mr((0,e.listCommandEditCheckpoints)(t)):i===`inspect`?yr(t,r[1]):i===`restore`||i===`code`?br(t,r[1]):i===`rollback`?xr(t,r[1]):K()}function Cr(){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 wr(){let e=Cr();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:Sr}}var Tr=class{name=`rewind`;getCommands(){return[Cr()]}};function Er(){return{name:`agent-command-rewind`,commandSources:[new Tr],systemCommands:[wr()]}}const Dr={s:1e3,m:6e4,h:36e5,d:864e5},J=`Usage: /schedule in <N><s|m|h|d> <instruction> | /schedule cron "<expr>" <instruction>`;function Or(e,t){let n=e.trim();if(n.length===0)return{ok:!1,error:J};if(n.startsWith(`in `)){let e=n.slice(3).trim(),r=e.indexOf(` `);if(r===-1)return{ok:!1,error:`Missing instruction. ${J}`};let i=e.slice(0,r),a=e.slice(r+1).trim(),o=/^(\d+)(s|m|h|d)$/.exec(i);if(!o)return{ok:!1,error:`Invalid duration "${i}". ${J}`};if(a.length===0)return{ok:!1,error:`Missing instruction. ${J}`};let s=parseInt(o[1],10)*Dr[o[2]];return{ok:!0,spec:{cronExpression:new Date(t+s).toISOString(),instruction:a,recurring:!1}}}if(n.startsWith(`cron `)){let e=n.slice(5).trim(),t=/^["']([^"']+)["']\s+(.+)$/.exec(e);if(!t)return{ok:!1,error:`cron form needs a quoted expression. ${J}`};let r=t[2].trim();return r.length===0?{ok:!1,error:`Missing instruction. ${J}`}:{ok:!0,spec:{cronExpression:t[1].trim(),instruction:r,recurring:!0}}}return{ok:!1,error:J}}function kr(e,t){return`${e}: ${t.slice(0,48)}${t.length>48?`…`:``}`}async function Ar(e,t,n=Date.now()){let r=Or(t,n);if(!r.ok)return{message:r.error,success:!1};let{cronExpression:i,instruction:a,recurring:o}=r.spec,s=await e.spawnScheduledWake({label:kr(`Scheduled`,a),cronExpression:i,agentInstruction:a});return{message:`Scheduled wake (${o?`cron \`${i}\``:`once at ${i}`}): "${a}" — task ${s.id}.`,success:!0,data:{taskId:s.id,cronExpression:i,recurring:o}}}function jr(e){let t=/^["']([^"']+)["']\s+["']([^"']+)["']\s+(.+)$/.exec(e.trim());if(!t)return null;let n=t[3].trim();return n.length===0?null:{command:t[1],matchPattern:t[2],instruction:n}}async function Mr(e,t){let n=jr(t);if(!n)return{message:`Usage: /monitor "<command>" "<pattern>" <instruction>`,success:!1};let r=await e.spawnMonitorWake({label:kr(`Monitor`,n.instruction),command:n.command,matchPattern:n.matchPattern,agentInstruction:n.instruction});return{message:`Monitoring \`${n.command}\` for /${n.matchPattern}/ — task ${r.id}.`,success:!0,data:{taskId:r.id,matchPattern:n.matchPattern}}}function Nr(e){let t=e.getAgentJobCapability?.();if(!t)throw Error(`Scheduling requires an active agent runtime.`);return t}function Y(){return{name:`schedule`,displayName:`Schedule Wake`,description:`Schedule the agent to wake and run an instruction on a timer (one-shot or cron).`,source:`schedule`,argumentHint:`in <N><s|m|h|d> <instruction> | cron "<expr>" <instruction>`,modelInvocable:!0}}function Pr(){return{name:`monitor`,displayName:`Monitor Process`,description:`Watch a process’s output and wake the agent when a line matches a pattern.`,source:`schedule`,argumentHint:`"<command>" "<pattern>" <instruction>`,modelInvocable:!0}}function Fr(){let e=Y();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,lifecycle:`inline`,execute:(e,t)=>Ar(Nr(e),t)}}function Ir(){let e=Pr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,lifecycle:`inline`,execute:(e,t)=>Mr(Nr(e),t)}}var Lr=class{name=`schedule`;getCommands(){return[Y(),Pr()]}};function Rr(){return{name:`agent-command-schedule`,commandSources:[new Lr],systemCommands:[Fr(),Ir()],sessionRequirements:[`agent-runtime`]}}
|
|
58
|
-
`),data:i}}function
|
|
59
|
-
`):[`Registered skills:`,...e.map(
|
|
60
|
-
`)}function
|
|
61
|
-
`);function
|
|
62
|
-
`)}function $(e){if(e===void 0)throw Error(`User-local memory category is required.`);return e}async function
|
|
63
|
-
`)}async function
|
|
57
|
+
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function q(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function yr(t,n){if(!n)return K();try{return gr((0,e.inspectCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function br(t,n){if(!n)return K();try{return _r(await(0,e.restoreCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function xr(t,n){if(!n)return K();try{return vr(await(0,e.rollbackCommandEditCheckpoint)(t,n))}catch(e){return q(e instanceof Error?e:String(e))}}async function Sr(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`;return i===`list`?mr((0,e.listCommandEditCheckpoints)(t)):i===`inspect`?yr(t,r[1]):i===`restore`||i===`code`?br(t,r[1]):i===`rollback`?xr(t,r[1]):K()}function Cr(){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 wr(){let e=Cr();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:Sr}}var Tr=class{name=`rewind`;getCommands(){return[Cr()]}};function Er(){return{name:`agent-command-rewind`,commandSources:[new Tr],systemCommands:[wr()]}}const Dr={s:1e3,m:6e4,h:36e5,d:864e5},J=`Usage: /schedule in <N><s|m|h|d> <instruction> | /schedule cron "<expr>" <instruction>`;function Or(e,t){let n=e.trim();if(n.length===0)return{ok:!1,error:J};if(n.startsWith(`in `)){let e=n.slice(3).trim(),r=e.indexOf(` `);if(r===-1)return{ok:!1,error:`Missing instruction. ${J}`};let i=e.slice(0,r),a=e.slice(r+1).trim(),o=/^(\d+)(s|m|h|d)$/.exec(i);if(!o)return{ok:!1,error:`Invalid duration "${i}". ${J}`};if(a.length===0)return{ok:!1,error:`Missing instruction. ${J}`};let s=parseInt(o[1],10)*Dr[o[2]];return{ok:!0,spec:{cronExpression:new Date(t+s).toISOString(),instruction:a,recurring:!1}}}if(n.startsWith(`cron `)){let e=n.slice(5).trim(),t=/^["']([^"']+)["']\s+(.+)$/.exec(e);if(!t)return{ok:!1,error:`cron form needs a quoted expression. ${J}`};let r=t[2].trim();return r.length===0?{ok:!1,error:`Missing instruction. ${J}`}:{ok:!0,spec:{cronExpression:t[1].trim(),instruction:r,recurring:!0}}}return{ok:!1,error:J}}function kr(e,t){return`${e}: ${t.slice(0,48)}${t.length>48?`…`:``}`}async function Ar(e,t,n=Date.now()){let r=Or(t,n);if(!r.ok)return{message:r.error,success:!1};let{cronExpression:i,instruction:a,recurring:o}=r.spec,s=await e.spawnScheduledWake({label:kr(`Scheduled`,a),cronExpression:i,agentInstruction:a});return{message:`Scheduled wake (${o?`cron \`${i}\``:`once at ${i}`}): "${a}" — task ${s.id}.`,success:!0,data:{taskId:s.id,cronExpression:i,recurring:o}}}function jr(e){let t=/^["']([^"']+)["']\s+["']([^"']+)["']\s+(.+)$/.exec(e.trim());if(!t)return null;let n=t[3].trim();return n.length===0?null:{command:t[1],matchPattern:t[2],instruction:n}}async function Mr(e,t){let n=jr(t);if(!n)return{message:`Usage: /monitor "<command>" "<pattern>" <instruction>`,success:!1};let r=await e.spawnMonitorWake({label:kr(`Monitor`,n.instruction),command:n.command,matchPattern:n.matchPattern,agentInstruction:n.instruction});return{message:`Monitoring \`${n.command}\` for /${n.matchPattern}/ — task ${r.id}.`,success:!0,data:{taskId:r.id,matchPattern:n.matchPattern}}}function Nr(e){let t=e.getAgentJobCapability?.();if(!t)throw Error(`Scheduling requires an active agent runtime.`);return t}function Y(){return{name:`schedule`,displayName:`Schedule Wake`,description:`Schedule the agent to wake and run an instruction on a timer (one-shot or cron).`,source:`schedule`,argumentHint:`in <N><s|m|h|d> <instruction> | cron "<expr>" <instruction>`,modelInvocable:!0}}function Pr(){return{name:`monitor`,displayName:`Monitor Process`,description:`Watch a process’s output and wake the agent when a line matches a pattern.`,source:`schedule`,argumentHint:`"<command>" "<pattern>" <instruction>`,modelInvocable:!0}}function Fr(){let e=Y();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,lifecycle:`inline`,execute:(e,t)=>Ar(Nr(e),t)}}function Ir(){let e=Pr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,lifecycle:`inline`,execute:(e,t)=>Mr(Nr(e),t)}}var Lr=class{name=`schedule`;getCommands(){return[Y(),Pr()]}};function Rr(){return{name:`agent-command-schedule`,commandSources:[new Lr],systemCommands:[Fr(),Ir()],sessionRequirements:[`agent-runtime`]}}function zr(e,n,r){return(0,t.calculateModelCost)(e,n,r)}function X(e){return e<.01?`$${e.toFixed(4)}`:e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function Br(e){return e.toLocaleString(`en-US`)}const Vr=`Conversation cleared.`;function Hr(t,n){return(0,e.clearConversationHistory)(t),{success:!0,message:Vr,effects:[{type:`conversation-history-cleared`}]}}function Ur(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 Gr=`.robota/budget.json`;function Kr(e){let t=(0,r.join)(e,Gr);if(!(0,i.existsSync)(t))return;let n;try{n=(0,i.readFileSync)(t,`utf-8`)}catch{return}try{return JSON.parse(n)}catch{return}}function qr(e,t){(0,i.mkdirSync)((0,r.join)(e,`.robota`),{recursive:!0}),(0,i.writeFileSync)((0,r.join)(e,Gr),JSON.stringify(t,null,2))}function Jr(e){let t=(0,r.join)(e,Gr);(0,i.existsSync)(t)&&(0,i.writeFileSync)(t,`{}`)}function Yr(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=zr(a,i.inputTokens,i.outputTokens);if(e!==void 0){o.push(`Cost: ${X(e)} (${a})`),s.estimatedCostUsd=e;let n=Kr(t.getCwd());if(n?.monthly){let t=n.monthly-e,r=Math.min(100,Math.round(e/n.monthly*100));o.push(`Budget: ${X(t)} remaining of ${X(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 Xr(e,t){let n=t.trim();if(n.startsWith(`budget`)){let t=n.slice(6).trim();if(t===`clear`)return Jr(e.getCwd()),{success:!0,message:`Monthly budget cleared.`};if(t===``){let t=Kr(e.getCwd());return t?.monthly?{success:!0,message:`Monthly budget: ${X(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)`}:(qr(e.getCwd(),{monthly:r}),{success:!0,message:`Monthly budget set to ${X(r)}.`})}let{lines:r,data:i}=Yr(e);return{success:!0,message:r.join(`
|
|
58
|
+
`),data:i}}function Zr(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 Qr(){return{name:`clear`,displayName:`Clear History`,description:e.CLEAR_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function $r(){return{name:`rename`,displayName:`Rename Session`,description:e.RENAME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function ei(){return{name:`resume`,displayName:`Resume Session`,description:e.RESUME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function ti(){return{name:`cost`,displayName:`Session Cost`,description:e.COST_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function ni(){return{name:`validate-session`,displayName:`Validate Session`,description:e.VALIDATE_SESSION_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function ri(){let e=Qr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Hr}}function ii(){let e=$r();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ur}}function ai(){let e=ei();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Wr}}function oi(){let e=ti();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Xr}}function si(){let e=ni();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Zr}}var ci=class{name=`session`;getCommands(){return[Qr(),$r(),ei(),ti(),ni()]}};const li={clear:{type:`confirm`,message:`Clear conversation history?`}};function ui(){return{name:`agent-command-session`,commandSources:[new ci],systemCommands:[ri(),ii(),ai(),oi(),si()],interactionHints:li}}function Z(){return{name:`settings`,displayName:`Settings`,description:`Open transport settings — enable/disable transports and configure options`,source:`settings`,modelInvocable:!1}}function di(){let e=Z();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 fi=class{name=`settings`;getCommands(){return[Z()]}};function pi(){return{name:`agent-command-settings`,commandSources:[new fi],systemCommands:[di()]}}const mi=`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 hi(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 gi(e){let t=e.argumentHint?` ${e.argumentHint}`:``;return`- ${e.name}${t}: ${e.description}${hi(e)}`}function _i(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(`
|
|
59
|
+
`):[`Registered skills:`,...e.map(gi),``,`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(`
|
|
60
|
+
`)}function vi(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 yi(e,t=``){let n=vi(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:_i(r),data:{skills:r,activationContract:{activateWith:`/skills <skill-name> [args]`,activationRequiredBeforeWorkflow:!0,metadataIsNotSkillContent:!0}}}}function bi(){return{name:`skills`,displayName:`Skills`,description:mi,source:`skills`,modelInvocable:!0,userInvocable:!0,argumentHint:`[list | <skill-name> [args]]`,safety:`read-only`}}function xi(){let e=bi();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:yi}}var Si=class{name=`skills`;getCommands(){return[bi()]}};function Ci(t){let n=[new Si];return n.push(new e.SkillCommandSource(t.cwd)),{name:`agent-command-skills`,commandSources:n,systemCommands:[xi()]}}const wi=[`Usage: /statusline on | off | reset | git on | git off`,`Fields: model, context, permission mode, message count, session name, thinking state, git branch.`].join(`
|
|
61
|
+
`);function Ti(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:wi}}function Ei(e,t){let n=Ti(t);return n.success?{success:!0,message:n.message,effects:[{type:`statusline-settings-patch`,patch:n.patch}]}:{success:!1,message:n.message}}function Di(){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 Oi(){let e=Di();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:Ei}}var ki=class{name=`statusline`;getCommands(){return[Di()]}};function Ai(){return{name:`agent-command-statusline`,commandSources:[new ki],systemCommands:[Oi()]}}const ji=`Inspect Robota user-local storage and memory state.`,Mi=`storage list [--format json] | memory set/list/inspect/disable/delete`,Q=`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 Ni(e){return e.length===0?`No user-local memory items.`:e.map(e=>`- ${e.category}/${e.key} (${e.enabled?`enabled`:`disabled`})`).join(`
|
|
62
|
+
`)}function $(e){if(e===void 0)throw Error(`User-local memory category is required.`);return e}async function Pi(t,n){let r=await(0,e.listUserLocalMemoryItems)({activeRepositoryRoot:t});return{message:n.format===`json`?JSON.stringify(r,null,2):Ni(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:$(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 Ii(t,n){let[r,i]=n.positional,a=await(0,e.inspectUserLocalMemoryItem)({activeRepositoryRoot:t,category:$(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 Li(t,n){let[r,i]=n.positional,a=await(0,e.disableUserLocalMemoryItem)({activeRepositoryRoot:t,category:$(r),key:i??``});return{message:`Disabled user-local memory item ${a.category}/${a.key}`,success:!0,data:{item:a}}}async function Ri(t,n){let[r,i]=n.positional,a=await(0,e.deleteUserLocalMemoryItem)({activeRepositoryRoot:t,category:$(r),key:i??``});return{message:`Deleted user-local memory item ${a.category}/${a.key}`,success:!0,data:{result:a}}}async function zi(e,t){return(t.action??`list`)===`list`?Pi(e,t):t.action===`set`?Fi(e,t):t.action===`inspect`?Ii(e,t):t.action===`disable`?Li(e,t):t.action===`delete`?Ri(e,t):{message:Q,success:!1}}function Bi(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 Hi(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:Bi(n),summary:r,source:i}}function Ui(e){return e.trim().split(/\s+/).filter(Boolean)}function Wi(e,t){let n=t.map(e=>`- ${e.category}`);return[`User-local storage root: ${e}`,`Categories:`,...n].join(`
|
|
63
|
+
`)}async function Gi(t,n){if((n.action??`list`)!==`list`)return{message:Q,success:!1};let r=await(0,e.inspectUserLocalStorage)({activeRepositoryRoot:t});return{message:n.format===`json`?JSON.stringify(r,null,2):Wi(r.root,r.categories),success:!0,data:{root:r.root,categories:r.categories,inspection:r}}}async function Ki(e,t){return t.target===`storage`?Gi(e,t):t.target===`memory`?zi(e,t):{message:Q,success:!1}}function qi(e){return e.includes(`ENOENT`)?`User-local memory item not found.`:e}async function Ji(e){try{return await Ki(e.cwd,Hi(e.argv,{format:e.format,summary:e.summary,source:e.source}))}catch(e){return{message:qi(e instanceof Error?e.message:String(e)),success:!1}}}async function Yi(e,t){try{return await Ki(e.getCwd(),Hi(Ui(t)))}catch(e){return{message:qi(e instanceof Error?e.message:String(e)),success:!1}}}function Xi(){return{name:`user-local`,displayName:`User Config`,description:ji,source:`user-local`,argumentHint:Mi,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 Zi(){let e=Xi();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:Yi}}var Qi=class{name=`user-local`;getCommands(){return[Xi()]}};function $i(){return{name:`agent-command-user-local`,commandSources:[new Qi],systemCommands:[Zi()]}}function ea(e,t,n){let r=e;if(t!==void 0){let e=new Set(t);r=r.filter(t=>e.has(t.name))}if(n!==void 0){let e=new Set(n);r=r.filter(t=>!e.has(t.name))}return r}function ta({cwd:e,providerDefinitions:t,providerSettingsAdapter:n,enabledCommandModules:r,disabledCommandModules:i}){return ea([Ci({cwd:e}),it(),ye(),Mt(),Ot(),tn(),ut(),we(),Ct(),$i(),Ae(),Je(),$e(),ui(),fr(),Er(),Rr(),Ai(),Kt(),pi(),rr({providerDefinitions:t,settings:n})],r,i)}function na(t){let n=(0,o.homedir)(),i=(0,r.join)(n,`.robota`,`plugins`),s=(0,r.join)(n,`.robota`,`settings.json`),c=(e,t)=>(0,a.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`}),l=new e.PluginSettingsStore(s),u=new e.MarketplaceClient({pluginsDir:i,exec:c});return{cwd:t,marketplace:u,installer:new e.BundlePluginInstaller({pluginsDir:i,settingsStore:l,marketplaceClient:u,exec:c}),loader:new e.BundlePluginLoader(i),settingsStore:l}}async function ra(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 ia(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 aa(t,n,i){let[o,s]=n.split(`@`);if(!o||!s)throw Error(`Plugin ID must be in format: name@marketplace`);if(i===`project`){let n=(0,r.join)(t.cwd,`.robota`,`plugins`);await new e.BundlePluginInstaller({pluginsDir:n,settingsStore:t.settingsStore,marketplaceClient:t.marketplace,exec:(e,t)=>(0,a.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`})}).install(o,s);return}await t.installer.install(o,s)}async function oa(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 sa(e){return e.marketplace.listMarketplaces().map(e=>({name:e.name,type:e.source.type}))}function ca(e){let t=na(e);return{listInstalled:()=>ra(t),listAvailablePlugins:e=>ia(t,e),install:(e,n)=>aa(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=>oa(t,e),marketplaceUpdate:async e=>t.marketplace.updateMarketplace(e),marketplaceList:async()=>sa(t),reloadPlugins:async()=>({loadedPluginCount:(await t.loader.loadAll()).length})}}const la=`plugin`;function ua(){return process.env.HOME??(0,o.homedir)()}function da(t){let n=new e.BundlePluginLoader((0,r.join)(ua(),`.robota`,`plugins`));try{let r=n.loadPluginsSync();return r.length===0?(t.replaceSource(la),0):(t.replaceSource(la,new e.PluginCommandSource(r)),r.length)}catch{return t.replaceSource(la),0}}exports.AgentCommandSource=ve,exports.BackgroundCommandSource=Ce,exports.CLEAR_COMMAND_MESSAGE=Vr,exports.CompactCommandSource=ke,exports.ContextCommandSource=qe,exports.ExitCommandSource=Ze,exports.HelpCommandSource=rt,exports.LanguageCommandSource=ct,exports.MemoryCommandSource=St,exports.ModeCommandSource=Et,exports.PermissionsCommandSource=jt,exports.PluginManagerCommandSource=Gt,exports.PresetCommandSource=$t,exports.ProviderCommandSource=er,exports.RewindCommandSource=Tr,exports.SKILLS_COMMAND_DESCRIPTION=mi,exports.STATUSLINE_USAGE=wi,exports.ScheduleCommandSource=Lr,exports.SessionCommandSource=ci,exports.SettingsCommandSource=fi,exports.SkillsCommandSource=Si,exports.StatusLineCommandSource=ki,exports.USER_LOCAL_COMMAND_ARGUMENT_HINT=Mi,exports.USER_LOCAL_COMMAND_DESCRIPTION=ji,exports.USER_LOCAL_COMMAND_USAGE=Q,exports.UserLocalCommandSource=Qi,exports.createAgentCommandEntry=g,exports.createAgentCommandModule=ye,exports.createAgentSystemCommand=_e,exports.createBackgroundCommandEntry=_,exports.createBackgroundCommandModule=we,exports.createClearCommandEntry=Qr,exports.createCompactCommandEntry=De,exports.createCompactCommandModule=Ae,exports.createContextCommandEntry=w,exports.createContextCommandModule=Je,exports.createCostCommandEntry=ti,exports.createDefaultCommandModules=ta,exports.createDefaultPluginCommandAdapter=ca,exports.createExitCommandEntry=T,exports.createExitCommandModule=$e,exports.createHelpCommandEntry=tt,exports.createHelpCommandModule=it,exports.createLanguageCommandEntry=ot,exports.createLanguageCommandModule=ut,exports.createMemoryCommandEntry=D,exports.createMemoryCommandModule=Ct,exports.createModeCommandEntry=O,exports.createModeCommandModule=Ot,exports.createMonitorCommandEntry=Pr,exports.createPermissionsCommandEntry=k,exports.createPermissionsCommandModule=Mt,exports.createPluginCommandEntry=N,exports.createPluginCommandModule=Kt,exports.createPresetCommandEntry=F,exports.createPresetCommandModule=tn,exports.createProviderCommandEntry=W,exports.createProviderCommandModule=rr,exports.createProviderSetupFlow=I,exports.createReloadPluginsCommandEntry=P,exports.createRenameCommandEntry=$r,exports.createResetCommandEntry=G,exports.createResetCommandModule=fr,exports.createResumeCommandEntry=ei,exports.createRewindCommandModule=Er,exports.createScheduleCommandEntry=Y,exports.createScheduleCommandModule=Rr,exports.createSessionCommandModule=ui,exports.createSettingsCommandEntry=Z,exports.createSettingsCommandModule=pi,exports.createSkillsCommandEntry=bi,exports.createSkillsCommandModule=Ci,exports.createStatusLineCommandEntry=Di,exports.createStatusLineCommandModule=Ai,exports.createUserLocalCommandEntry=Xi,exports.createUserLocalCommandModule=$i,exports.createValidateSessionCommandEntry=ni,exports.ensureProviderConfig=or,exports.executeAgentCommand=pe,exports.executeBackgroundCommand=xe,exports.executeClearCommand=Hr,exports.executeCompactCommand=Ee,exports.executeContextCommand=Me,exports.executeCostCommand=Xr,exports.executeExitCommand=Ye,exports.executeHelpCommand=et,exports.executeLanguageCommand=at,exports.executeMemoryCommand=bt,exports.executeModeCommand=wt,exports.executeMonitorCommand=Mr,exports.executePermissionsCommand=kt,exports.executePluginCommand=Vt,exports.executePresetCommand=Xt,exports.executeProviderCommand=qn,exports.executeReloadPluginsCommand=Ht,exports.executeRenameCommand=Ur,exports.executeResetCommand=lr,exports.executeResumeCommand=Wr,exports.executeRewindCommand=Sr,exports.executeScheduleCommand=Ar,exports.executeSkillsCommand=yi,exports.executeStatusLineCommand=Ei,exports.executeUserLocalCommand=Yi,exports.executeUserLocalDirectCommand=Ji,exports.executeValidateSessionCommand=Zr,exports.formatProviderSetupChoiceLabel=z,exports.formatProviderSetupHelpLinks=B,exports.formatProviderSetupPromptLabel=on,exports.formatProviderSetupSelectionPrompt=nn,exports.getProviderSetupStep=L,exports.parseScheduleSpec=Or,exports.reloadPluginCommandSource=da,exports.resolveProviderSetupSelection=rn,exports.runProviderSetupPromptFlow=an,exports.runProviderStartupSetup=ar,exports.submitProviderSetupValue=R,exports.validateProviderSetupValue=V;
|
package/dist/node/index.d.ts
CHANGED
|
@@ -159,7 +159,7 @@ declare class PresetCommandSource implements ICommandSource {
|
|
|
159
159
|
declare function createPresetCommandModule(): ICommandModule;
|
|
160
160
|
//#endregion
|
|
161
161
|
//#region src/preset/preset-command.d.ts
|
|
162
|
-
declare function executePresetCommand(context: ICommandHostContext, args: string): ICommandResult
|
|
162
|
+
declare function executePresetCommand(context: ICommandHostContext, args: string): Promise<ICommandResult>;
|
|
163
163
|
//#endregion
|
|
164
164
|
//#region src/provider/provider-command-module.d.ts
|
|
165
165
|
declare function createProviderCommandEntry(): ICommand;
|
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/preset/preset-command-module.ts","../../src/preset/preset-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/schedule/schedule-command-module.ts","../../src/schedule/schedule-command.ts","../../src/schedule/schedule-spec-parser.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":";;;;;iBA8BgB,uBAAA,IAA2B,QAAQ;AAAA,iBAqBnC,wBAAA,IAA4B,cAAc;AAAA,cAe7C,kBAAA,YAA8B,cAAc;EAAA,SAC9C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,wBAAA,IAA4B,cAAc;;;iBCuIpC,mBAAA,CACpB,OAAA,EAAS,oBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;UC3LM,6BAAA;EACf,GAAA;EACA,mBAAA,WAA8B,mBAAA;EAC9B,uBAAA,EAAyB,iCAA+B;EFEnB;;;AAAY;EEGjD,qBAAA;EFkBsC;;;AAAkB;EEbxD,sBAAA;AAAA;AAAA,iBA2Bc,2BAAA;EACd,GAAA;EACA,mBAAA;EACA,uBAAA;EACA,qBAAA;EACA;AAAA,GACC,6BAAA,YAAyC,cAAA;;;iBC7D5B,4BAAA,IAAgC,QAAQ;AAAA,cA0B3C,uBAAA,YAAmC,cAAc;EAAA,SACnD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,6BAAA,IAAiC,cAAc;;;iBC3BzC,wBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;iBCfK,yBAAA,IAA6B,QAAQ;AAAA,cA8BxC,oBAAA,YAAgC,cAAc;EAAA,SAChD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,0BAAA,IAA8B,cAAc;;;iBCjCtC,qBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;iBCRK,yBAAA,IAA6B,QAAQ;AAAA,cA+BxC,oBAAA,YAAgC,cAAc;EAAA,SAChD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,0BAAA,IAA8B,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/preset/preset-command-module.ts","../../src/preset/preset-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/schedule/schedule-command-module.ts","../../src/schedule/schedule-command.ts","../../src/schedule/schedule-spec-parser.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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"}
|