@robota-sdk/agent-command 3.0.0-beta.73 → 3.0.0-beta.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node/index.cjs +34 -34
- package/dist/node/index.d.ts +40 -2
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +33 -33
- package/dist/node/index.js.map +1 -1
- package/package.json +9 -8
- package/src/agent/agent-command-module.ts +1 -2
- package/src/agent/agent-command-parser.ts +1 -1
- package/src/agent/agent-command.ts +2 -5
- package/src/background/background-command-module.ts +2 -6
- package/src/background/background-command.ts +2 -1
- package/src/compact/compact-command-module.ts +2 -6
- package/src/compact/compact-command.ts +2 -1
- package/src/context/__tests__/context-command-module.test.ts +2 -2
- package/src/context/context-command-module.ts +2 -6
- package/src/context/context-command.ts +1 -2
- package/src/default/default-command-modules.ts +2 -0
- package/src/exit/exit-command-module.ts +2 -3
- package/src/exit/exit-command.ts +2 -1
- package/src/help/__tests__/help-command.test.ts +2 -5
- package/src/help/help-command-module.ts +2 -6
- package/src/help/help-command.ts +2 -1
- package/src/index.ts +1 -0
- package/src/language/language-command-module.ts +2 -3
- package/src/language/language-command.ts +2 -1
- package/src/memory/memory-command-module.ts +2 -6
- package/src/memory/memory-command.ts +1 -2
- package/src/mode/__tests__/mode-command-module.test.ts +1 -1
- package/src/mode/mode-command-module.ts +2 -3
- package/src/mode/mode-command.ts +2 -1
- package/src/permissions/__tests__/permissions-command-module.test.ts +1 -1
- package/src/permissions/permissions-command-module.ts +2 -6
- package/src/permissions/permissions-command.ts +2 -1
- package/src/plugin/__tests__/plugin-command-module.test.ts +2 -5
- package/src/plugin/plugin-command-module.ts +2 -6
- package/src/plugin/plugin-command.ts +2 -5
- package/src/plugins/default-plugin-command-adapter.ts +2 -2
- package/src/provider/provider-command-execution.ts +1 -2
- package/src/provider/provider-command-module.ts +5 -3
- package/src/provider/provider-command-profile-lifecycle.ts +2 -5
- package/src/provider/provider-command-profile-operations.ts +2 -3
- package/src/provider/provider-command-profile.ts +1 -2
- package/src/provider/provider-command-setup.ts +7 -5
- package/src/provider/provider-startup.ts +14 -2
- package/src/reset/reset-command-module.ts +2 -6
- package/src/reset/reset-command.ts +2 -1
- package/src/rewind/rewind-command-module.ts +2 -6
- package/src/rewind/rewind-command.ts +1 -1
- package/src/schedule/__tests__/schedule-command.test.ts +107 -0
- package/src/schedule/index.ts +9 -0
- package/src/schedule/schedule-command-module.ts +102 -0
- package/src/schedule/schedule-command.ts +72 -0
- package/src/schedule/schedule-spec-parser.ts +66 -0
- package/src/session/session-command-module.ts +2 -3
- package/src/session/session-command.ts +2 -1
- package/src/settings/settings-command-module.ts +2 -6
- package/src/skills/skills-command-module.ts +2 -6
- package/src/skills/skills-command.ts +2 -5
- package/src/statusline/statusline-command-module.ts +2 -6
- package/src/statusline/statusline-command.ts +2 -2
- package/src/user-local/user-local-command-module.ts +2 -6
- package/src/user-local/user-local-command.ts +2 -1
- package/src/user-local/user-local-memory-command.ts +2 -1
package/dist/node/index.cjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(
|
|
2
|
-
`),success:!0,data:{agents:t.length,jobs:n.length}}}function
|
|
3
|
-
`),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id}}}async function
|
|
4
|
-
`)}${o}`:`No log lines: ${n}`,success:!0,data:{agentId:n,nextOffset:a.nextCursor?.offset}}}async function
|
|
5
|
-
`)}function
|
|
6
|
-
`)}${r}`:`No log lines: ${i}`,success:!0,data:{taskId:i,nextOffset:n.nextCursor?.offset}}}return r===`cancel`||r===`stop`?(await(0,e.cancelCommandBackgroundTask)(t,i,a.join(` `)||void 0),{message:`Background task cancelled: ${i}`,success:!0,data:{taskId:i}}):r===`close`||r===`dismiss`?(await(0,e.closeCommandBackgroundTask)(t,i),{message:`Background task closed: ${i}`,success:!0,data:{taskId:i}}):{message:`Unknown background action: ${r}`,success:!1}}function
|
|
7
|
-
`),success:!0,data:{before:r,after:i,beforeMessageCount:a,afterMessageCount:o}}}function
|
|
8
|
-
`);function
|
|
9
|
-
`),success:!0,data:{usedTokens:i.usedTokens,maxTokens:i.maxTokens,percentage:i.usedPercentage,autoCompactThreshold:a,autoCompactThresholdSource:o,references:c}}}async function
|
|
10
|
-
`),data:{autoCompactThreshold:n,autoCompactThresholdSource:r}}}if(r===`on`)return
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@robota-sdk/agent-framework"),t=require("@robota-sdk/agent-core"),n=require("node:path"),r=require("node:fs"),i=require("node:child_process"),a=require("node:os");const o=`general-purpose`;function s(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 c(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 l(e,t,n,r){return{agentType:t,label:n,mode:`background`,prompt:r,...e.model?{model:e.model}:{},...e.isolation?{isolation:e.isolation}:{}}}function u(e,t){let n=c(e),[r,...i]=n.positional,a=n.agentType??o,s=n.positional;!n.agentType&&r&&t.has(r)&&(a=r,s=i);let u=s.join(` `).trim();if(u)return l(n,a,a,u)}function ee(e,t){let n=c(e);return n.positional.map(e=>te(e,n,t)).filter(e=>e!==void 0)}function te(e,t,n){let r=e.indexOf(`=`);if(r>0)return ne(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),s=e.slice(i+1);return l(t,t.agentType??(n.has(a)?a:o),a,s)}function ne(e,t,n,r){let i=t.indexOf(`:`);if(i===-1)return l(n,n.agentType??(r.has(e)?e:o),e,t);if(!(i===0||i===t.length-1))return l(n,t.slice(0,i),e,t.slice(i+1))}function d(e){return e instanceof Error?e.message:String(e)}function f(e){return new Set(e.listAgentDefinitions().map(e=>e.name))}function p(e,t){let n=e.listAgentDefinitions();if(!n.some(e=>e.name===t))return{message:`Unknown agent type: ${t}\nAvailable agents: ${n.map(e=>e.name).join(`, `)}`,success:!1}}async function m(e,t){let n=p(e,t.agentType);if(n)return n;try{return{state:await e.spawnAgentJob(t)}}catch(e){return{message:d(e),success:!1}}}function h(){return{message:``,effects:[{type:`agent-switcher-requested`}],success:!0}}async function re(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=>` ${ie(e)}`)].join(`
|
|
2
|
+
`),success:!0,data:{agents:t.length,jobs:n.length}}}function ie(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 ae(e,t){let n=u(t,f(e));if(!n)return{message:`Usage: agent run [AGENT_NAME] [--agent AGENT_NAME] PROMPT`,success:!1};let r=await m(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 oe(t,n){let r=n.includes(`--wait`)||!n.includes(`--detach`),i=ee(n.filter(e=>e!==`--wait`&&e!==`--detach`),f(t));if(i.length===0)return{message:`Usage: agent parallel [--wait|--detach] LABEL:"PROMPT" [LABEL=AGENT_NAME:"PROMPT"]`,success:!1};let a=i.map(e=>p(t,e.agentType)).find(e=>e!==void 0);if(a)return a;let o;try{o=await Promise.all(i.map(e=>t.spawnAgentJob(e)))}catch(e){return{message:d(e),success:!1}}let s=t.createBackgroundJobGroup({waitPolicy:`wait_all`,taskIds:o.map(e=>e.id),label:`agent parallel`});if(r){let n=(0,e.summarizeBackgroundJobGroup)(await t.waitBackgroundJobGroup(s.id));return{message:pe(n),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id,summary:n}}}return{message:[`Started agent jobs:`,...o.map(e=>`${e.label}: ${e.id}`)].join(`
|
|
3
|
+
`),success:!0,data:{agentIds:o.map(e=>e.id),groupId:s.id}}}async function se(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:pe(i),success:!0,data:{groupId:r,summary:i}}}async function ce(e,t){let[n,r]=t;if(!n)return{message:`Usage: agent read AGENT_ID [OFFSET]`,success:!1};let i=r?{offset:Number.parseInt(r,10)}:void 0,a=await e.readBackgroundTaskLog(n,i),o=a.nextCursor?`\nNext offset: ${a.nextCursor.offset}`:``;return{message:a.lines.length>0?`${a.lines.join(`
|
|
4
|
+
`)}${o}`:`No log lines: ${n}`,success:!0,data:{agentId:n,nextOffset:a.nextCursor?.offset}}}async function le(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 ue(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 de(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 fe(e,t){try{if(t.trim()===``)return h();let[n=`list`,...r]=s(t);return n===`list`&&r.length===0?re(e):n===`run`?ae(e,r):n===`parallel`?oe(e,r):n===`wait`?se(e,r):n===`read`||n===`open`?ce(e,r):n===`send`?le(e,r):n===`stop`||n===`cancel`?ue(e,r):n===`close`?de(e,r):ae(e,[n,...r])}catch(e){return{message:d(e),success:!1}}}function pe(e){return[`Background job group ${e.groupId}: ${e.status} (${e.completed}/${e.total} completed, ${e.failed} failed, ${e.cancelled} cancelled, ${e.pending} pending)`,...e.lines].join(`
|
|
5
|
+
`)}function me(e){let t=e.getAgentJobCapability?.();if(!t)throw Error(`Agent job capability is not available in this context.`);return t}function he(){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:he()}}function ge(){let e=g();return{name:e.name,...e.displayName===void 0?{}:{displayName:e.displayName},description:e.description,requiresPermission:!1,execute:(e,t)=>fe(me(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 _e=class{name=`agent`;getCommands(){return[g()]}};function ve(){return{name:`agent-command-agent`,commandSources:[new _e],systemCommands:[ge()],sessionRequirements:[`agent-runtime`]}}function ye(e){return e.trim().split(/\s+/).filter(Boolean)}async function be(t,n){let[r=`list`,i,...a]=ye(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 _(){return{name:`background`,displayName:`Background Tasks`,description:e.BACKGROUND_COMMAND_DESCRIPTION,source:`background`,modelInvocable:!1,subcommands:(0,e.buildBackgroundCommandSubcommands)()}}function xe(){let e=_();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,subcommands:e.subcommands,execute:be}}var Se=class{name=`background`;getCommands(){return[_()]}};function Ce(){return{name:`agent-command-background`,commandSources:[new Se],systemCommands:[xe()]}}function we(e){let t=e.trim();return t.length>0?t:void 0}async function Te(t,n){let{before:r,after:i,beforeMessageCount:a,afterMessageCount:o}=await(0,e.compactCommandContext)(t,we(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 Ee(){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 De(){let e=Ee();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:Te}}var Oe=class{name=`compact`;getCommands(){return[Ee()]}};function ke(){return{name:`agent-command-compact`,commandSources:[new Oe],systemCommands:[De()]}}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 Ae(e){return e?`settings`:`current session only`}async function je(t,n){let r=n.trim().split(/\s+/).filter(e=>e.length>0);if(r.length>0)return Me(t,r);let i=(0,e.readCommandContextState)(t),a=(0,e.readAutoCompactThreshold)(t),o=(0,e.readAutoCompactThresholdSource)(t),s=He(t.getSession().getFullHistory()),c=(0,e.listCommandContextReferences)(t);return{message:[`Context: ${i.usedTokens.toLocaleString()} / ${i.maxTokens.toLocaleString()} tokens (${Math.round(i.usedPercentage)}%)`,b(a,o),Re(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 Me(t,n){let[r,...i]=n;if(r===`list`)return i.length>0?{success:!1,message:v}:Ue(t);if(r===`add`)return Pe(t,i);if(r===`remove`)return Fe(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`?Ne(t,i):{success:!1,message:v}}function Ne(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)} (${Ae(n)}).`,data:{autoCompactThreshold:e.DEFAULT_AUTO_COMPACT_THRESHOLD,autoCompactThresholdSource:`default`,persisted:n}}}let a=Le(r);return a.success?x(t,a.threshold,`threshold set`):{success:!1,message:`${a.message}\n${v}`}}async function Pe(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
|
|
14
|
-
`):
|
|
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
|
|
12
|
+
`)||`Context reference not found: ${r}`,data:{diagnostics:i.diagnostics}}}function Fe(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:Ie(r,n,i),data:{autoCompactThreshold:n,autoCompactThresholdSource:a,persisted:i}}}function Ie(e,t,n){let r=Ae(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 Le(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 Re(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/4)}function C(e){return[e.relativePath,`[${e.loadType}, ${e.status}]`,`~${S(e.byteLength).toLocaleString()} tokens`].join(` `)}function ze(e){try{return JSON.parse(e)}catch{return null}}function Be(e){let t=ze(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 Ve(e){let t=0,n=0,r=0,i=0,a=0,o=0,s=0;for(let c of e){let e=Math.ceil(JSON.stringify(c).length/4);c.role===`system`?t+=e:c.role===`user`?(n+=e,r++):c.role===`assistant`?(i+=e,a++):c.role===`tool`&&(o+=e,s++)}return{systemTokens:t,userTokens:n,userCount:r,assistantTokens:i,assistantCount:a,toolTokens:o,toolCallCount:s,totalTokens:t+n+i+o}}function He(e){let t=new Map;for(let n of e){if(n.category!==`chat`||n.type!==`assistant`)continue;let e=n.data;for(let n of e.toolCalls??[])t.set(n.id,{name:n.function.name,firstArg:Be(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 w(e,t,n){let r=`${e}${t>0?` — ~${t.toLocaleString()} tokens`:``}:`;return n.length===0?`${r}\n (none)`:[r,...n.map(e=>` ${e}`)].join(`
|
|
13
|
+
`)}function Ue(t){let n=(0,e.readCommandContextState)(t),r=(0,e.readAutoCompactThreshold)(t),i=(0,e.readAutoCompactThresholdSource)(t),a=Ve(t.getSession().getHistory()),o=He(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
|
+
`):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)}%)`,b(r,i),``,w(`System prompt (active every turn)`,ee,c.map(C)),``,ie,``,w(`Manually added`,te,l.map(C)),``,w(`Prompt references (@-syntax)`,ne,u.map(C))].join(`
|
|
16
|
+
`),data:{references:s,history:{turnCount:o.turnCount,toolResults:o.toolResults}}}}function T(){return{name:`context`,displayName:`Context References`,description:`Context window info, reference inventory, and auto-compact controls`,source:`context`,modelInvocable:!1,argumentHint:`list | add <path> | remove <path> | clear | auto ...`,subcommands:[{name:`list`,description:`List loaded context references`,source:`context`},{name:`add`,description:`Add a file to active context references`,source:`context`},{name:`remove`,description:`Remove a context reference`,source:`context`},{name:`clear`,description:`Clear context references`,source:`context`},{name:`auto`,description:`Inspect or change auto-compact policy`,source:`context`}]}}function We(){let e=T();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,execute:je}}var Ge=class{name=`context`;getCommands(){return[T()]}};function Ke(){return{name:`agent-command-context`,commandSources:[new Ge],systemCommands:[We()]}}function qe(t,n){return{success:!0,message:`Exit requested.`,effects:[(0,e.createSessionExitRequestedEffect)()]}}function Je(){return{name:`exit`,displayName:`Exit Session`,description:e.EXIT_COMMAND_DESCRIPTION,source:`exit`,modelInvocable:!1}}function Ye(){let e=Je();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:qe}}var Xe=class{name=`exit`;getCommands(){return[Je()]}};const Ze={exit:{type:`confirm`,message:`Exit the session?`}};function Qe(){return{name:`agent-command-exit`,commandSources:[new Xe],systemCommands:[Ye()],interactionHints:Ze}}function $e(t,n){return{success:!0,message:(0,e.formatCommandHelpMessage)(t)}}function et(){return{name:`help`,displayName:`Help`,description:e.HELP_COMMAND_DESCRIPTION,source:`help`,modelInvocable:!1}}function tt(){let e=et();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:$e}}var nt=class{name=`help`;getCommands(){return[et()]}};function rt(){return{name:`agent-command-help`,commandSources:[new nt],systemCommands:[tt()]}}function it(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 at(){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 ot(){let e=at();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:it}}var st=class{name=`language`;getCommands(){return[at()]}};const ct={language:{type:`pick`,getItems:()=>(0,e.buildLanguageCommandSubcommands)().map(e=>({label:`${e.name} ${e.description??``}`.trimEnd(),value:e.name,description:e.description}))}};function lt(){return{name:`agent-command-language`,commandSources:[new st],systemCommands:[ot()],interactionHints:ct}}function E(){return{message:e.MEMORY_COMMAND_USAGE,success:!1}}function ut(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function dt(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
|
|
21
|
-
`)}`}):
|
|
22
|
-
`)}function
|
|
23
|
-
`)}function qt(e){if(/^\d+$/.test(e))return Number(e)-1}function U(e,t){if(e.required===!0&&t.length===0)return`Required`}function Jt(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 Yt(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 Xt(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function Zt(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 Qt(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 $t={type:`session-restart-requested`,reason:`other`};function en(e,t){return R(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function W(e,t){return{prompt:tn(e),submit:n=>rn(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function tn(e){let t=z(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,...nn(e),...n===void 0?{}:{placeholder:n},...t.defaultValue===void 0?{}:{allowEmpty:!0},...t.masked===void 0?{}:{masked:t.masked},validate:e=>U(t,e)}}function nn(e){let t=H(e.setupHelpLinks);return t.length>0?{description:t}:{}}function rn(e,t,n){let r=B(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:W(e,n)}:r.status===`complete`?an(r.input,n):{message:``,success:!0,interaction:W(r.state,n)}}function an(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:[{...$t,message:`Provider setup restart`}]}}function on(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function sn(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 cn(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=R(n.type,t.providerDefinitions,{profileName:e,setCurrent:!1,initialValues:ln(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:G(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function ln(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function G(e,t,n){return{prompt:tn(e),submit:r=>un(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function un(e,t,n,r){let i=B(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:G(e,t,r)}:i.status===`complete`?dn(i.input,t,r):{message:``,success:!0,interaction:G(i.state,t,r)}}function dn(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 fn={type:`session-restart-requested`,reason:`other`};function pn(e,t){let n=t.settings.readMergedSettings();if(!n.providers?.[e])return{message:`Provider profile "${e}" was not found.`,success:!1};let r=xn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:mn(e,r,t)}}function mn(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>hn(e,t,n)},submit:r=>gn(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function hn(e,t,n){let r=Sn(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function gn(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=Sn(n,r),s=hn(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 _n(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:vn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function vn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?yn(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function yn(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:on(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=>bn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function bn(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:[{...fn,message:`Provider delete restart`}]}}function xn(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 Sn(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const Cn=`switch`,wn=`edit`,Tn=`test`,En=`duplicate`,Dn=`delete`,On=`cancel`;function kn(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:on(t,n,e)})),maxVisible:8},submit:e=>An(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function An(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${e}`,success:!0,interaction:jn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function jn(e,t){return{prompt:{kind:`choice`,title:`Provider profile: ${e}`,options:[{value:Cn,label:`Switch`},{value:wn,label:`Edit`},{value:Tn,label:`Test`},{value:En,label:`Duplicate`},{value:Dn,label:`Delete`},{value:On,label:`Cancel`}]},submit:n=>Mn(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function Mn(t,n,r){let i=r.settings.readMergedSettings();switch(n){case Cn:return sn(i.providers,t,r);case wn:return cn(t,r);case Tn:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case En:return pn(t,r);case Dn:return _n(t,r);case On:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function Nn(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Pn(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Pn(r.currentProvider,r.providers,n):a===`current`||a===``?{message:In(r.currentProvider,r.providers),success:!0}:a===`switch`?sn(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Ln(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Pn(e,t,n){let r=Fn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:kn(e,t,n)}}function Fn(e,t){let n=Object.entries(t??{});return n.length===0?`No provider profiles configured.`:n.map(([t,n])=>`${t===e?`*`:`-`} ${t}: ${n.type??`unknown`} ${n.model??`(no model)`}`).join(`
|
|
24
|
-
`)}function
|
|
25
|
-
`):`Current provider "${e}" was not found in providers.`}function
|
|
18
|
+
`),success:!0,data:{indexPath:t.indexPath,topicsPath:t.topicsPath,topicCount:t.topics.length}}}function ft(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 pt(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 mt(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 D(t,n){(0,e.recordCommandMemoryEvent)(t,n)}function ht(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 D(e,{type:`memory_candidate_approved`,candidateId:o.id,topic:o.topic,reason:`approved-by-user`}),D(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 ut(e instanceof Error?e:String(e))}}function gt(e,t,n){if(!n)return E();try{let r=t.mark(n,`rejected`,`rejected-by-user`);return D(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 ut(e instanceof Error?e:String(e))}}function _t(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 vt(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`,a=(0,e.createCommandMemoryStores)(t);if(i===`list`)return dt(a.project);if(i===`show`)return ft(a.project,r[1]);if(i===`pending`)return mt(a.pending);if(i===`approve`)return ht(t,a.pending,a.project,r[1]);if(i===`reject`)return gt(t,a.pending,r[1]);if(i===`used`)return _t(t);if(i===`add`){let t=pt(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 O(){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 yt(){let e=O();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:vt}}var bt=class{name=`memory`;getCommands(){return[O()]}};function xt(){return{name:`agent-command-memory`,commandSources:[new bt],systemCommands:[yt()]}}function St(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 k(){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 Ct(){let e=k();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:St}}var wt=class{name=`mode`;getCommands(){return[k()]}};const Tt={mode:{type:`pick`,getItems:()=>(0,e.buildPermissionModeSubcommands)().map(e=>({label:e.name,value:e.name,description:e.description}))}};function Et(){return{name:`agent-command-mode`,commandSources:[new wt],systemCommands:[Ct()],interactionHints:Tt}}function Dt(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 A(){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 Ot(){let e=A();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:Dt}}var kt=class{name=`permissions`;getCommands(){return[A()]}};function At(){return{name:`agent-command-permissions`,commandSources:[new kt],systemCommands:[Ot()]}}function jt(e){let t=e.trim().split(/\s+/).filter(e=>e.length>0);return{subcommand:t[0]??``,subArgs:t.slice(1).join(` `).trim()}}function j(e){return{success:!1,message:e}}function Mt(t){return(0,e.resolvePluginCommandAdapter)(t)}async function M(e,t){let n=Mt(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 Nt(e,t){let{subcommand:n,subArgs:r}=jt(t);return n===`add`&&r.length>0?M(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?M(e,async e=>(await e.marketplaceRemove(r),`Removed marketplace "${r}" and uninstalled its plugins.`)):n===`update`&&r.length>0?M(e,async e=>(await e.marketplaceUpdate(r),`Updated marketplace "${r}".`)):n===`list`?M(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
|
+
`)}`}):j(`Usage: /plugin marketplace add <source> | remove <name> | update <name> | list`)}function N(e,t,n,r){return t.length===0?Promise.resolve(j(n)):M(e,e=>Promise.resolve(r(e,t)))}function Pt(){return{success:!0,message:`Opening plugin manager...`,effects:[(0,e.createPluginTuiRequestedEffect)()]}}function Ft(e,t){return N(e,t,`Usage: /plugin install <name>@<marketplace>`,async(e,t)=>(await e.install(t),`Installed plugin: ${t}`))}function It(e,t){return N(e,t,`Usage: /plugin uninstall <name>@<marketplace>`,async(e,t)=>(await e.uninstall(t),`Uninstalled plugin: ${t}`))}function Lt(e,t){return N(e,t,`Usage: /plugin enable <name>@<marketplace>`,async(e,t)=>(await e.enable(t),`Enabled plugin: ${t}`))}function Rt(e,t){return N(e,t,`Usage: /plugin disable <name>@<marketplace>`,async(e,t)=>(await e.disable(t),`Disabled plugin: ${t}`))}async function zt(e,t){let{subcommand:n,subArgs:r}=jt(t);switch(n){case``:case`manage`:return Pt();case`install`:return Ft(e,r);case`uninstall`:return It(e,r);case`enable`:return Lt(e,r);case`disable`:return Rt(e,r);case`marketplace`:return Nt(e,r);default:return j(`Unknown plugin subcommand: ${n}`)}}async function Bt(t,n){return M(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 P(){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 F(){return{name:`reload-plugins`,displayName:`Reload Plugins`,description:e.RELOAD_PLUGINS_COMMAND_DESCRIPTION,source:`plugin-manager`,modelInvocable:!1}}function Vt(){let e=P();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:zt}}function Ht(){let e=F();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Bt}}var Ut=class{name=`plugin-manager`;getCommands(){return[P(),F()]}};function Wt(){return{name:`agent-command-plugin`,commandSources:[new Ut],systemCommands:[Vt(),Ht()]}}function I(e,t,n={}){let r=Zt(e,t);return{type:e,steps:en(Qt(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 Gt(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(`
|
|
22
|
+
`)}function Kt(e,n){let r=e.trim(),i=r.length>0?r:`1`,a=Xt(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:tn(a)}}async function qt(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(Jt(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 Jt(e,t=[]){let n=e.defaultValue===void 0?``:` (default: ${e.defaultValue})`,r=B(t);return`${r.length>0?`${r}\n`:``} ${e.title}${n}: `}const Yt={"cloud-paid":`[Cloud/Paid]`,"cloud-free":`[Cloud/Free]`,"local-free":`[Local/Free]`};function z(e){let t=`${e.category===void 0?``:`${Yt[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: ${$t(e.kind)}: ${e.label} - ${e.url}`).join(`
|
|
23
|
+
`)}function Xt(e){if(/^\d+$/.test(e))return Number(e)-1}function V(e,t){if(e.required===!0&&t.length===0)return`Required`}function Zt(e,n){let r=(0,t.findProviderDefinition)(n,e);if(r===void 0)throw Error(`Unknown provider: ${e}. Currently supported: ${(0,t.formatSupportedProviderTypes)(n)}`);return r}function Qt(e){if(e.setupSteps!==void 0)return[...e.setupSteps];let t=[{key:`model`,title:`${e.type} model`,defaultValue:e.defaults?.model,required:e.defaults?.model===void 0}];return e.defaults?.baseURL!==void 0&&t.unshift({key:`baseURL`,title:`${e.type} base URL`,defaultValue:e.defaults.baseURL}),e.requiresApiKey===!0&&t.push({key:`apiKey`,title:`${e.type} API key`,defaultValue:e.defaults?.apiKey,required:e.defaults?.apiKey===void 0,masked:!0}),t}function $t(e){return e===`api-key`?`API key`:e===`console`?`Console`:`Official`}function en(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 tn(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 nn={type:`session-restart-requested`,reason:`other`};function rn(e,t){return I(e,t.providerDefinitions,{existingProfileNames:Object.keys(t.settings.readMergedSettings().providers??{})})}function H(e,t){return{prompt:an(e),submit:n=>sn(e,n,t),cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function an(e){let t=L(e),n=t.masked===!0&&t.defaultValue!==void 0?`(unchanged)`:t.defaultValue;return{kind:`text`,title:t.title,...on(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 on(e){let t=B(e.setupHelpLinks);return t.length>0?{description:t}:{}}function sn(e,t,n){let r=R(e,t);return r.status===`error`?{message:r.message,success:!1,interaction:H(e,n)}:r.status===`complete`?cn(r.input,n):{message:``,success:!0,interaction:H(r.state,n)}}function cn(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:[{...nn,message:`Provider setup restart`}]}}function ln(e,t,n){return`${e===n?`* `:``}${e}: ${t.type??`unknown`} ${t.model??`(no model)`}`}function un(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 dn(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:fn(n)});return{message:`Provider edit requested: ${e}`,success:!0,interaction:pn(r,e,t)}}catch(e){return{message:e instanceof Error?e.message:String(e),success:!1}}}function fn(e){return{...typeof e.model==`string`?{model:e.model}:{},...typeof e.apiKey==`string`?{apiKey:e.apiKey}:{},...typeof e.baseURL==`string`?{baseURL:e.baseURL}:{}}}function pn(e,t,n){return{prompt:an(e),submit:r=>mn(e,t,r,n),cancel:()=>({message:`Provider edit cancelled.`,success:!0})}}function mn(e,t,n,r){let i=R(e,n);return i.status===`error`?{message:i.message,success:!1,interaction:pn(e,t,r)}:i.status===`complete`?hn(i.input,t,r):{message:``,success:!0,interaction:pn(i.state,t,r)}}function hn(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 gn={type:`session-restart-requested`,reason:`other`};function _n(e,t){let n=t.settings.readMergedSettings();if(!n.providers?.[e])return{message:`Provider profile "${e}" was not found.`,success:!1};let r=Tn(e,Object.keys(n.providers));return{message:`Provider duplicate requested: ${e}`,success:!0,interaction:vn(e,r,t)}}function vn(e,t,n){return{prompt:{kind:`text`,title:`Duplicate ${e} as`,placeholder:t,allowEmpty:!0,validate:e=>yn(e,t,n)},submit:r=>bn(e,r,t,n),cancel:()=>({message:`Provider duplicate cancelled.`,success:!0})}}function yn(e,t,n){let r=En(e,t);if(r.length===0)return`Required`;if(n.settings.readMergedSettings().providers?.[r]!==void 0)return`Provider profile "${r}" already exists`}function bn(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=En(n,r),s=yn(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 xn(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:Sn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function Sn(e,t){return{prompt:{kind:`choice`,title:`Delete provider profile ${e}?`,options:[{value:`yes`,label:`Yes`},{value:`no`,label:`No`}]},submit:n=>n===`yes`?Cn(e,t):{message:`Provider delete cancelled.`,success:!0},cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}function Cn(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:ln(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=>wn(t,e,n),cancel:()=>({message:`Provider delete cancelled.`,success:!0})}}}function wn(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:[{...gn,message:`Provider delete restart`}]}}function Tn(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 En(t,n){return(0,e.sanitizeProviderProfileName)(t.trim()||n)??``}const Dn=`switch`,On=`edit`,kn=`test`,An=`duplicate`,jn=`delete`,Mn=`cancel`;function Nn(e,t,n){return{prompt:{kind:`choice`,title:`Select provider profile`,options:Object.entries(t??{}).map(([t,n])=>({value:t,label:ln(t,n,e)})),maxVisible:8},submit:e=>Pn(e,n),cancel:()=>({message:`Provider profile selection cancelled.`,success:!0})}}function Pn(e,t){return t.settings.readMergedSettings().providers?.[e]?{message:`Provider profile selected: ${e}`,success:!0,interaction:Fn(e,t)}:{message:`Provider profile "${e}" was not found.`,success:!1}}function Fn(e,t){return{prompt:{kind:`choice`,title:`Provider profile: ${e}`,options:[{value:Dn,label:`Switch`},{value:On,label:`Edit`},{value:kn,label:`Test`},{value:An,label:`Duplicate`},{value:jn,label:`Delete`},{value:Mn,label:`Cancel`}]},submit:n=>In(e,n,t),cancel:()=>({message:`Provider profile action cancelled.`,success:!0})}}async function In(t,n,r){let i=r.settings.readMergedSettings();switch(n){case Dn:return un(i.providers,t,r);case On:return dn(t,r);case kn:return await(0,e.testProviderProfileCommand)(i.currentProvider,i.providers,t,r);case An:return _n(t,r);case jn:return xn(t,r);case Mn:return{message:`Provider profile action cancelled.`,success:!0};default:return{message:`Unknown provider profile action "${n}".`,success:!1}}}async function Ln(t,n){let r=n.settings.readMergedSettings(),i=t.trim();if(i.length===0)return Rn(r.currentProvider,r.providers,n);let[a=`current`,o]=i.split(/\s+/);return a===`list`?Rn(r.currentProvider,r.providers,n):a===`current`||a===``?{message:Bn(r.currentProvider,r.providers),success:!0}:a===`switch`?un(r.providers,o,n):a===`test`?await(0,e.testProviderProfileCommand)(r.currentProvider,r.providers,o,n):a===`add`?Vn(o,n):{message:`Usage: provider [current|list|switch <profile>|add <type>|test [profile]]`,success:!1}}function Rn(e,t,n){let r=zn(e,t);return Object.keys(t??{}).length===0?{message:r,success:!0}:{message:r,success:!0,interaction:Nn(e,t,n)}}function zn(e,t){let n=Object.entries(t??{});return n.length===0?`No provider profiles configured.`:n.map(([t,n])=>`${t===e?`*`:`-`} ${t}: ${n.type??`unknown`} ${n.model??`(no model)`}`).join(`
|
|
24
|
+
`)}function Bn(e,t){if(!e)return`No current provider configured.`;let n=t?.[e];return n?[`Current provider: ${e}`,`Type: ${n.type??`unknown`}`,`Model: ${n.model??`(no model)`}`,...n.baseURL?[`Base URL: ${n.baseURL}`]:[]].join(`
|
|
25
|
+
`):`Current provider "${e}" was not found in providers.`}function Vn(e,n){return e===void 0||e.length===0?{message:`Provider setup requested. Select a provider to continue.`,success:!0,interaction:Hn(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(rn(e,n),n)}}function Hn(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=rn(t,e);return{message:`Provider setup requested: ${t}`,success:!0,interaction:H(n,e)}},cancel:()=>({message:`Provider setup cancelled.`,success:!0})}}function Un(){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 U(){return{name:`provider`,displayName:`Provider Setup`,description:`Manage provider profiles`,source:`provider`,modelInvocable:!1,argumentHint:`current | list | switch <profile> | add [type] | test [profile]`,subcommands:Un(),example:`/provider switch production`}}var Wn=class{name=`provider`;getCommands(){return[U()]}};function Gn(e){let t=U();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)=>Ln(n,e)}}const Kn={provider:{type:`pick`,getItems:()=>Un().map(e=>({label:e.name,value:e.name,description:e.description}))}};function qn(e){return{name:`agent-command-provider`,commandSources:[new Wn],systemCommands:[Gn(e)],interactionHints:Kn}}async function Jn(e,t){let n=(await e(`
|
|
26
26
|
Do you have an API key for an AI provider?
|
|
27
27
|
|
|
28
28
|
1. Yes, I have an API key
|
|
@@ -49,14 +49,14 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
49
49
|
When the server is running, come back here and press Enter to continue.
|
|
50
50
|
|
|
51
51
|
─────────────────────────────────────────────────────────────────────────────
|
|
52
|
-
`),await e(` Press Enter when LM Studio server is running: `),{path:`local`,preselectedType:`gemma`}):{path:`has-key`}}async function
|
|
53
|
-
`),success:!0,data:{count:e.length,checkpoints:[...e]}}}function
|
|
54
|
-
`),success:!0,data:{inspection:e}}}function
|
|
55
|
-
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function
|
|
56
|
-
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function
|
|
57
|
-
`),data:i}}function
|
|
58
|
-
`):[`Registered skills:`,...e.map(
|
|
59
|
-
`)}function
|
|
60
|
-
`);function
|
|
61
|
-
`)}function $(e){if(e===void 0)throw Error(`User-local memory category is required.`);return e}async function
|
|
62
|
-
`)}async function
|
|
52
|
+
`),await e(` Press Enter when LM Studio server is running: `),{path:`local`,preselectedType:`gemma`}):{path:`has-key`}}async function Yn(t,n,r,i,a){let o=await Jn(r,i),s=Object.keys((0,e.readMergedProviderSettings)(t).providers??{}),c=(0,e.resolveSettingsPathForScope)(t,n.settingsScope),l;l=o.preselectedType===void 0?Kt(await r(Gt(a)),a):o.preselectedType,(0,e.applyProviderConfiguration)(c,await qt(l,r,a,{existingProfileNames:s}),{providerDefinitions:a});let u=await r(` Response language (ko/en/ja/zh, default: en): `);if(u){let t=(0,e.readSettings)(c);t.language=u,(0,e.writeSettings)(c,t)}i.writeLine(`\n Config saved to ${c}\n`)}async function Xn(t,n,r,i,a,o){let s=(0,e.readMergedProviderSettings)(t);if((0,e.checkSettingsDocument)(n.provider===void 0?s:{...s,currentProvider:n.provider},a)===`valid`||n.provider===void 0&&(0,e.resolveEnvDefaultProvider)(a,o.env)!==void 0)return;if(!(o.isInteractive??(()=>!1))())throw new e.ProviderConfigError(o.formatError(a));await Yn(t,Zn(t,n),r,i,a);let c=(0,e.readMergedProviderSettings)(t);if((0,e.checkSettingsDocument)(n.provider===void 0?c:{...c,currentProvider:n.provider},a)!==`valid`)throw new e.ProviderConfigError(o.formatError(a))}function Zn(t,r){if(r.settingsScope!==void 0||r.provider!==void 0)return r;let i=Qn((0,e.getProviderSettingsPaths)(t));if(i===void 0)return r;let a=(0,n.join)(t,`.robota`,`settings.json`),o=(0,n.join)(t,`.robota`,`settings.local.json`);return i===a||i===o?{...r,settingsScope:`project-local`}:r}function Qn(t){for(let n=t.length-1;n>=0;--n){let r=t[n];if(r!==void 0&&typeof(0,e.readSettings)(r).currentProvider==`string`)return r}}function $n(e,t){return{success:!0,message:`Reset requested.`,data:{resetRequested:!0},effects:[{type:`settings-reset-requested`}]}}function W(){return{name:`reset`,displayName:`Reset Settings`,description:`Delete settings`,source:`reset`,modelInvocable:!1}}function er(){let e=W();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!0,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:$n}}var tr=class{name=`reset`;getCommands(){return[W()]}};function nr(){return{name:`agent-command-reset`,commandSources:[new tr],systemCommands:[er()]}}function G(){return{message:`Usage: rewind [list] | rewind inspect <checkpoint-id> | rewind restore <checkpoint-id> | rewind code <checkpoint-id> | rewind rollback <checkpoint-id>`,success:!1}}function rr(e){let t=e.replace(/\s+/g,` `).trim();return t.length<=120?t:`${t.slice(0,117)}...`}function ir(e){return{message:[`Edit checkpoints:`,...e.length>0?e.map(e=>`- ${e.id} files=${e.fileCount} ${e.createdAt} ${rr(e.prompt)}`):[`(no edit checkpoints)`]].join(`
|
|
53
|
+
`),success:!0,data:{count:e.length,checkpoints:[...e]}}}function ar(e){return e.length>0?e.join(`, `):`(none)`}function or(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: ${rr(e.target.prompt)}`,`Captured files:`,...t,`Restore later checkpoints: files=${e.restoreToCheckpoint.fileCount} checkpoints=${ar(e.restoreToCheckpoint.checkpointIds)}`,`Rollback through checkpoint: files=${e.rollbackThroughCheckpoint.fileCount} checkpoints=${ar(e.rollbackThroughCheckpoint.checkpointIds)}`].join(`
|
|
54
|
+
`),success:!0,data:{inspection:e}}}function sr(e){return{message:[`Restored code to ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Rolled back checkpoints: ${e.restoredCheckpointCount}`].join(`
|
|
55
|
+
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function cr(e){return{message:[`Rolled back code through ${e.target.id}.`,`Restored files: ${e.restoredFileCount}`,`Removed checkpoints: ${e.removedCheckpointCount}`].join(`
|
|
56
|
+
`),success:!0,data:{target:e.target,restoredCheckpointCount:e.restoredCheckpointCount,restoredFileCount:e.restoredFileCount,removedCheckpointCount:e.removedCheckpointCount}}}function K(e){return{message:e instanceof Error?e.message:String(e),success:!1}}function lr(t,n){if(!n)return G();try{return or((0,e.inspectCommandEditCheckpoint)(t,n))}catch(e){return K(e instanceof Error?e:String(e))}}async function ur(t,n){if(!n)return G();try{return sr(await(0,e.restoreCommandEditCheckpoint)(t,n))}catch(e){return K(e instanceof Error?e:String(e))}}async function dr(t,n){if(!n)return G();try{return cr(await(0,e.rollbackCommandEditCheckpoint)(t,n))}catch(e){return K(e instanceof Error?e:String(e))}}async function fr(t,n){let r=n.trim().split(/\s+/).filter(Boolean),i=r[0]??`list`;return i===`list`?ir((0,e.listCommandEditCheckpoints)(t)):i===`inspect`?lr(t,r[1]):i===`restore`||i===`code`?ur(t,r[1]):i===`rollback`?dr(t,r[1]):G()}function pr(){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 mr(){let e=pr();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:fr}}var hr=class{name=`rewind`;getCommands(){return[pr()]}};function gr(){return{name:`agent-command-rewind`,commandSources:[new hr],systemCommands:[mr()]}}const _r={s:1e3,m:6e4,h:36e5,d:864e5},q=`Usage: /schedule in <N><s|m|h|d> <instruction> | /schedule cron "<expr>" <instruction>`;function vr(e,t){let n=e.trim();if(n.length===0)return{ok:!1,error:q};if(n.startsWith(`in `)){let e=n.slice(3).trim(),r=e.indexOf(` `);if(r===-1)return{ok:!1,error:`Missing instruction. ${q}`};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}". ${q}`};if(a.length===0)return{ok:!1,error:`Missing instruction. ${q}`};let s=parseInt(o[1],10)*_r[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. ${q}`};let r=t[2].trim();return r.length===0?{ok:!1,error:`Missing instruction. ${q}`}:{ok:!0,spec:{cronExpression:t[1].trim(),instruction:r,recurring:!0}}}return{ok:!1,error:q}}function yr(e,t){return`${e}: ${t.slice(0,48)}${t.length>48?`…`:``}`}async function br(e,t,n=Date.now()){let r=vr(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:yr(`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 xr(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 Sr(e,t){let n=xr(t);if(!n)return{message:`Usage: /monitor "<command>" "<pattern>" <instruction>`,success:!1};let r=await e.spawnMonitorWake({label:yr(`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 Cr(e){let t=e.getAgentJobCapability?.();if(!t)throw Error(`Scheduling requires an active agent runtime.`);return t}function J(){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 Y(){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 wr(){let e=J();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!0,argumentHint:e.argumentHint,lifecycle:`inline`,execute:(e,t)=>br(Cr(e),t)}}function Tr(){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)=>Sr(Cr(e),t)}}var Er=class{name=`schedule`;getCommands(){return[J(),Y()]}};function Dr(){return{name:`agent-command-schedule`,commandSources:[new Er],systemCommands:[wr(),Tr()],sessionRequirements:[`agent-runtime`]}}const Or={"claude-opus-4-7":{inputPerMillion:15,outputPerMillion:75},"claude-opus-4-5":{inputPerMillion:15,outputPerMillion:75},"claude-sonnet-4-6":{inputPerMillion:3,outputPerMillion:15},"claude-sonnet-4-5":{inputPerMillion:3,outputPerMillion:15},"claude-haiku-4-5":{inputPerMillion:.8,outputPerMillion:4},"claude-3-5-sonnet-20241022":{inputPerMillion:3,outputPerMillion:15},"claude-3-5-haiku-20241022":{inputPerMillion:.8,outputPerMillion:4},"claude-3-opus-20240229":{inputPerMillion:15,outputPerMillion:75},"gpt-4o":{inputPerMillion:2.5,outputPerMillion:10},"gpt-4o-mini":{inputPerMillion:.15,outputPerMillion:.6},o1:{inputPerMillion:15,outputPerMillion:60},"o1-mini":{inputPerMillion:3,outputPerMillion:12},o3:{inputPerMillion:10,outputPerMillion:40},"o3-mini":{inputPerMillion:1.1,outputPerMillion:4.4},"deepseek-chat":{inputPerMillion:.14,outputPerMillion:.28},"deepseek-reasoner":{inputPerMillion:.55,outputPerMillion:2.19},"gemini-2.0-flash":{inputPerMillion:.1,outputPerMillion:.4},"gemini-2.0-flash-thinking":{inputPerMillion:.35,outputPerMillion:3.5},"gemini-1.5-pro":{inputPerMillion:1.25,outputPerMillion:5},"gemini-1.5-flash":{inputPerMillion:.075,outputPerMillion:.3}},kr=[{pattern:/claude-opus/i,price:{inputPerMillion:15,outputPerMillion:75}},{pattern:/claude-sonnet/i,price:{inputPerMillion:3,outputPerMillion:15}},{pattern:/claude-haiku/i,price:{inputPerMillion:.8,outputPerMillion:4}},{pattern:/gpt-4o-mini/i,price:{inputPerMillion:.15,outputPerMillion:.6}},{pattern:/gpt-4/i,price:{inputPerMillion:2.5,outputPerMillion:10}},{pattern:/deepseek/i,price:{inputPerMillion:.14,outputPerMillion:.28}},{pattern:/gemini-2/i,price:{inputPerMillion:.1,outputPerMillion:.4}},{pattern:/gemini-1/i,price:{inputPerMillion:1.25,outputPerMillion:5}}];function Ar(e){let t=Or[e];if(t)return t;for(let{pattern:t,price:n}of kr)if(t.test(e))return n}function jr(e,t,n){let r=Ar(e);if(r)return t/1e6*r.inputPerMillion+n/1e6*r.outputPerMillion}function X(e){return e<.01?`$${e.toFixed(4)}`:e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function Mr(e){return e.toLocaleString(`en-US`)}const Nr=`Conversation cleared.`;function Pr(t,n){return(0,e.clearConversationHistory)(t),{success:!0,message:Nr,effects:[{type:`conversation-history-cleared`}]}}function Fr(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 Ir(t,n){return{success:!0,message:`Opening session picker...`,data:{triggerResumePicker:!0},effects:[(0,e.createSessionPickerRequestedEffect)()]}}const Lr=`.robota/budget.json`;function Rr(e){let t=(0,n.join)(e,Lr);if(!(0,r.existsSync)(t))return;let i;try{i=(0,r.readFileSync)(t,`utf-8`)}catch{return}try{return JSON.parse(i)}catch{return}}function zr(e,t){(0,r.mkdirSync)((0,n.join)(e,`.robota`),{recursive:!0}),(0,r.writeFileSync)((0,n.join)(e,Lr),JSON.stringify(t,null,2))}function Br(e){let t=(0,n.join)(e,Lr);(0,r.existsSync)(t)&&(0,r.writeFileSync)(t,`{}`)}function Vr(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: ${Mr(i.inputTokens)} input / ${Mr(i.outputTokens)} output`),s.inputTokens=i.inputTokens,s.outputTokens=i.outputTokens,a){let e=jr(a,i.inputTokens,i.outputTokens);if(e!==void 0){o.push(`Cost: ${X(e)} (${a})`),s.estimatedCostUsd=e;let n=Rr(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 Hr(e,t){let n=t.trim();if(n.startsWith(`budget`)){let t=n.slice(6).trim();if(t===`clear`)return Br(e.getCwd()),{success:!0,message:`Monthly budget cleared.`};if(t===``){let t=Rr(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)`}:(zr(e.getCwd(),{monthly:r}),{success:!0,message:`Monthly budget set to ${X(r)}.`})}let{lines:r,data:i}=Vr(e);return{success:!0,message:r.join(`
|
|
57
|
+
`),data:i}}function Ur(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 Wr(){return{name:`clear`,displayName:`Clear History`,description:e.CLEAR_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Gr(){return{name:`rename`,displayName:`Rename Session`,description:e.RENAME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Kr(){return{name:`resume`,displayName:`Resume Session`,description:e.RESUME_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Z(){return{name:`cost`,displayName:`Session Cost`,description:e.COST_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function qr(){return{name:`validate-session`,displayName:`Validate Session`,description:e.VALIDATE_SESSION_COMMAND_DESCRIPTION,source:`session`,modelInvocable:!1}}function Jr(){let e=Wr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Pr}}function Yr(){let e=Gr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Fr}}function Xr(){let e=Kr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ir}}function Zr(){let e=Z();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Hr}}function Qr(){let e=qr();return{name:e.name,displayName:e.displayName,description:e.description,requiresPermission:!1,userInvocable:!0,modelInvocable:!1,lifecycle:`inline`,execute:Ur}}var $r=class{name=`session`;getCommands(){return[Wr(),Gr(),Kr(),Z(),qr()]}};const ei={clear:{type:`confirm`,message:`Clear conversation history?`}};function ti(){return{name:`agent-command-session`,commandSources:[new $r],systemCommands:[Jr(),Yr(),Xr(),Zr(),Qr()],interactionHints:ei}}function ni(){return{name:`settings`,displayName:`Settings`,description:`Open transport settings — enable/disable transports and configure options`,source:`settings`,modelInvocable:!1}}function ri(){let e=ni();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 ii=class{name=`settings`;getCommands(){return[ni()]}};function ai(){return{name:`agent-command-settings`,commandSources:[new ii],systemCommands:[ri()]}}const oi=`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 si(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 ci(e){let t=e.argumentHint?` ${e.argumentHint}`:``;return`- ${e.name}${t}: ${e.description}${si(e)}`}function li(e){return e.length===0?[`No skills are registered for this session.`,``,`Skills are metadata until activated. Do not invent or imitate a skill workflow when no matching registered skill exists.`].join(`
|
|
58
|
+
`):[`Registered skills:`,...e.map(ci),``,`Activation contract:`,`- Use /skills <skill-name> [args] to activate a matching skill.`,`- Treat /<skill-name> as a virtual alias for /skills <skill-name>.`,`- The system prompt Skills section is skill selection metadata.`,`- Treat descriptions as selection metadata only, not as loaded SKILL.md content.`,`- Do not answer by merely naming, recommending, or imitating a matching skill.`,`- If no listed skill matches the task, continue without claiming a skill was activated.`].join(`
|
|
59
|
+
`)}function ui(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 di(e,t=``){let n=ui(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:li(r),data:{skills:r,activationContract:{activateWith:`/skills <skill-name> [args]`,activationRequiredBeforeWorkflow:!0,metadataIsNotSkillContent:!0}}}}function fi(){return{name:`skills`,displayName:`Skills`,description:oi,source:`skills`,modelInvocable:!0,userInvocable:!0,argumentHint:`[list | <skill-name> [args]]`,safety:`read-only`}}function pi(){let e=fi();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:di}}var mi=class{name=`skills`;getCommands(){return[fi()]}};function hi(t){let n=[new mi];return n.push(new e.SkillCommandSource(t.cwd)),{name:`agent-command-skills`,commandSources:n,systemCommands:[pi()]}}const gi=[`Usage: /statusline on | off | reset | git on | git off`,`Fields: model, context, permission mode, message count, session name, thinking state, git branch.`].join(`
|
|
60
|
+
`);function _i(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:gi}}function vi(e,t){let n=_i(t);return n.success?{success:!0,message:n.message,effects:[{type:`statusline-settings-patch`,patch:n.patch}]}:{success:!1,message:n.message}}function yi(){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 bi(){let e=yi();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:vi}}var xi=class{name=`statusline`;getCommands(){return[yi()]}};function Si(){return{name:`agent-command-statusline`,commandSources:[new xi],systemCommands:[bi()]}}const Ci=`Inspect Robota user-local storage and memory state.`,wi=`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 Ti(e){return e.length===0?`No user-local memory items.`:e.map(e=>`- ${e.category}/${e.key} (${e.enabled?`enabled`:`disabled`})`).join(`
|
|
61
|
+
`)}function $(e){if(e===void 0)throw Error(`User-local memory category is required.`);return e}async function Ei(t,n){let r=await(0,e.listUserLocalMemoryItems)({activeRepositoryRoot:t});return{message:n.format===`json`?JSON.stringify(r,null,2):Ti(r.items),success:!0,data:{list:r}}}async function Di(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 Oi(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 ki(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 Ai(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 ji(e,t){return(t.action??`list`)===`list`?Ei(e,t):t.action===`set`?Di(e,t):t.action===`inspect`?Oi(e,t):t.action===`disable`?ki(e,t):t.action===`delete`?Ai(e,t):{message:Q,success:!1}}function Mi(e){if(e===void 0||e===`text`)return`text`;if(e===`json`)return`json`;throw Error(`Unsupported user-local output format: ${e}`)}function Ni(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 Pi(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=Ni(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:Mi(n),summary:r,source:i}}function Fi(e){return e.trim().split(/\s+/).filter(Boolean)}function Ii(e,t){let n=t.map(e=>`- ${e.category}`);return[`User-local storage root: ${e}`,`Categories:`,...n].join(`
|
|
62
|
+
`)}async function Li(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):Ii(r.root,r.categories),success:!0,data:{root:r.root,categories:r.categories,inspection:r}}}async function Ri(e,t){return t.target===`storage`?Li(e,t):t.target===`memory`?ji(e,t):{message:Q,success:!1}}function zi(e){return e.includes(`ENOENT`)?`User-local memory item not found.`:e}async function Bi(e){try{return await Ri(e.cwd,Pi(e.argv,{format:e.format,summary:e.summary,source:e.source}))}catch(e){return{message:zi(e instanceof Error?e.message:String(e)),success:!1}}}async function Vi(e,t){try{return await Ri(e.getCwd(),Pi(Fi(t)))}catch(e){return{message:zi(e instanceof Error?e.message:String(e)),success:!1}}}function Hi(){return{name:`user-local`,displayName:`User Config`,description:Ci,source:`user-local`,argumentHint:wi,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 Ui(){let e=Hi();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:Vi}}var Wi=class{name=`user-local`;getCommands(){return[Hi()]}};function Gi(){return{name:`agent-command-user-local`,commandSources:[new Wi],systemCommands:[Ui()]}}function Ki({cwd:e,providerDefinitions:t,providerSettingsAdapter:n}){return[hi({cwd:e}),rt(),ve(),At(),Et(),lt(),Ce(),xt(),Gi(),ke(),Ke(),Qe(),ti(),nr(),gr(),Dr(),Si(),Wt(),ai(),qn({providerDefinitions:t,settings:n})]}function qi(t){let r=(0,a.homedir)(),o=(0,n.join)(r,`.robota`,`plugins`),s=(0,n.join)(r,`.robota`,`settings.json`),c=(e,t)=>(0,i.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`}),l=new e.PluginSettingsStore(s),u=new e.MarketplaceClient({pluginsDir:o,exec:c});return{cwd:t,marketplace:u,installer:new e.BundlePluginInstaller({pluginsDir:o,settingsStore:l,marketplaceClient:u,exec:c}),loader:new e.BundlePluginLoader(o),settingsStore:l}}async function Ji(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 Yi(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 Xi(t,r,a){let[o,s]=r.split(`@`);if(!o||!s)throw Error(`Plugin ID must be in format: name@marketplace`);if(a===`project`){let r=(0,n.join)(t.cwd,`.robota`,`plugins`);await new e.BundlePluginInstaller({pluginsDir:r,settingsStore:t.settingsStore,marketplaceClient:t.marketplace,exec:(e,t)=>(0,i.execSync)(e,{timeout:t.timeout,stdio:t.stdio??`pipe`})}).install(o,s);return}await t.installer.install(o,s)}async function Zi(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 Qi(e){return e.marketplace.listMarketplaces().map(e=>({name:e.name,type:e.source.type}))}function $i(e){let t=qi(e);return{listInstalled:()=>Ji(t),listAvailablePlugins:e=>Yi(t,e),install:(e,n)=>Xi(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=>Zi(t,e),marketplaceUpdate:async e=>t.marketplace.updateMarketplace(e),marketplaceList:async()=>Qi(t),reloadPlugins:async()=>({loadedPluginCount:(await t.loader.loadAll()).length})}}const ea=`plugin`;function ta(){return process.env.HOME??(0,a.homedir)()}function na(t){let r=new e.BundlePluginLoader((0,n.join)(ta(),`.robota`,`plugins`));try{let n=r.loadPluginsSync();return n.length===0?(t.replaceSource(ea),0):(t.replaceSource(ea,new e.PluginCommandSource(n)),n.length)}catch{return t.replaceSource(ea),0}}exports.AgentCommandSource=_e,exports.BackgroundCommandSource=Se,exports.CLEAR_COMMAND_MESSAGE=Nr,exports.CompactCommandSource=Oe,exports.ContextCommandSource=Ge,exports.ExitCommandSource=Xe,exports.HelpCommandSource=nt,exports.LanguageCommandSource=st,exports.MemoryCommandSource=bt,exports.ModeCommandSource=wt,exports.PermissionsCommandSource=kt,exports.PluginManagerCommandSource=Ut,exports.ProviderCommandSource=Wn,exports.RewindCommandSource=hr,exports.SKILLS_COMMAND_DESCRIPTION=oi,exports.STATUSLINE_USAGE=gi,exports.ScheduleCommandSource=Er,exports.SessionCommandSource=$r,exports.SettingsCommandSource=ii,exports.SkillsCommandSource=mi,exports.StatusLineCommandSource=xi,exports.USER_LOCAL_COMMAND_ARGUMENT_HINT=wi,exports.USER_LOCAL_COMMAND_DESCRIPTION=Ci,exports.USER_LOCAL_COMMAND_USAGE=Q,exports.UserLocalCommandSource=Wi,exports.createAgentCommandEntry=g,exports.createAgentCommandModule=ve,exports.createAgentSystemCommand=ge,exports.createBackgroundCommandEntry=_,exports.createBackgroundCommandModule=Ce,exports.createClearCommandEntry=Wr,exports.createCompactCommandEntry=Ee,exports.createCompactCommandModule=ke,exports.createContextCommandEntry=T,exports.createContextCommandModule=Ke,exports.createCostCommandEntry=Z,exports.createDefaultCommandModules=Ki,exports.createDefaultPluginCommandAdapter=$i,exports.createExitCommandEntry=Je,exports.createExitCommandModule=Qe,exports.createHelpCommandEntry=et,exports.createHelpCommandModule=rt,exports.createLanguageCommandEntry=at,exports.createLanguageCommandModule=lt,exports.createMemoryCommandEntry=O,exports.createMemoryCommandModule=xt,exports.createModeCommandEntry=k,exports.createModeCommandModule=Et,exports.createMonitorCommandEntry=Y,exports.createPermissionsCommandEntry=A,exports.createPermissionsCommandModule=At,exports.createPluginCommandEntry=P,exports.createPluginCommandModule=Wt,exports.createProviderCommandEntry=U,exports.createProviderCommandModule=qn,exports.createProviderSetupFlow=I,exports.createReloadPluginsCommandEntry=F,exports.createRenameCommandEntry=Gr,exports.createResetCommandEntry=W,exports.createResetCommandModule=nr,exports.createResumeCommandEntry=Kr,exports.createRewindCommandModule=gr,exports.createScheduleCommandEntry=J,exports.createScheduleCommandModule=Dr,exports.createSessionCommandModule=ti,exports.createSettingsCommandEntry=ni,exports.createSettingsCommandModule=ai,exports.createSkillsCommandEntry=fi,exports.createSkillsCommandModule=hi,exports.createStatusLineCommandEntry=yi,exports.createStatusLineCommandModule=Si,exports.createUserLocalCommandEntry=Hi,exports.createUserLocalCommandModule=Gi,exports.createValidateSessionCommandEntry=qr,exports.ensureProviderConfig=Xn,exports.executeAgentCommand=fe,exports.executeBackgroundCommand=be,exports.executeClearCommand=Pr,exports.executeCompactCommand=Te,exports.executeContextCommand=je,exports.executeCostCommand=Hr,exports.executeExitCommand=qe,exports.executeHelpCommand=$e,exports.executeLanguageCommand=it,exports.executeMemoryCommand=vt,exports.executeModeCommand=St,exports.executeMonitorCommand=Sr,exports.executePermissionsCommand=Dt,exports.executePluginCommand=zt,exports.executeProviderCommand=Ln,exports.executeReloadPluginsCommand=Bt,exports.executeRenameCommand=Fr,exports.executeResetCommand=$n,exports.executeResumeCommand=Ir,exports.executeRewindCommand=fr,exports.executeScheduleCommand=br,exports.executeSkillsCommand=di,exports.executeStatusLineCommand=vi,exports.executeUserLocalCommand=Vi,exports.executeUserLocalDirectCommand=Bi,exports.executeValidateSessionCommand=Ur,exports.formatProviderSetupChoiceLabel=z,exports.formatProviderSetupHelpLinks=B,exports.formatProviderSetupPromptLabel=Jt,exports.formatProviderSetupSelectionPrompt=Gt,exports.getProviderSetupStep=L,exports.parseScheduleSpec=vr,exports.reloadPluginCommandSource=na,exports.resolveProviderSetupSelection=Kt,exports.runProviderSetupPromptFlow=qt,exports.runProviderStartupSetup=Yn,exports.submitProviderSetupValue=R,exports.validateProviderSetupValue=V;
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { CommandRegistry, IAgentJobHostContext,
|
|
1
|
+
import { CommandRegistry, IAgentJobHostContext, ICommandHostContext, ICommandModule, IProviderCommandModuleOptions, IProviderCommandModuleOptions as IProviderCommandModuleOptions$1, IProviderCommandModuleOptions as IProviderCommandModuleOptions$2, IProviderCommandSettingsAdapter, IProviderCommandSettingsAdapter as IProviderCommandSettingsAdapter$1, IProviderSetupInput, ISystemCommand, TSettingsScope } from "@robota-sdk/agent-framework";
|
|
2
|
+
import { ICommand, ICommandPluginAdapter, ICommandResult, ICommandSource } from "@robota-sdk/agent-interface-transport";
|
|
2
3
|
import { IProviderDefinition, IProviderSetupHelpLink, IProviderSetupStepDefinition, ITerminalOutput, TProviderSetupField } from "@robota-sdk/agent-core";
|
|
3
4
|
|
|
4
5
|
//#region src/agent/agent-command-module.d.ts
|
|
@@ -200,6 +201,8 @@ interface IProviderStartupContext {
|
|
|
200
201
|
interface IEnsureProviderConfigOptions {
|
|
201
202
|
formatError: (defs: readonly IProviderDefinition[]) => string;
|
|
202
203
|
isInteractive?: () => boolean;
|
|
204
|
+
/** Environment map for env-default synthesis (test seam, default: process.env). */
|
|
205
|
+
env?: Record<string, string | undefined>;
|
|
203
206
|
}
|
|
204
207
|
declare function runProviderStartupSetup(cwd: string, ctx: IProviderStartupContext, promptInput: TPromptInput, terminal: ITerminalOutput, providerDefinitions: readonly IProviderDefinition[]): Promise<void>;
|
|
205
208
|
declare function ensureProviderConfig(cwd: string, ctx: IProviderStartupContext, promptInput: TPromptInput, terminal: ITerminalOutput, providerDefinitions: readonly IProviderDefinition[], options: IEnsureProviderConfigOptions): Promise<void>;
|
|
@@ -221,6 +224,41 @@ declare function createRewindCommandModule(): ICommandModule;
|
|
|
221
224
|
//#region src/rewind/rewind-command.d.ts
|
|
222
225
|
declare function executeRewindCommand(context: ICommandHostContext, rawArgs: string): Promise<ICommandResult>;
|
|
223
226
|
//#endregion
|
|
227
|
+
//#region src/schedule/schedule-command-module.d.ts
|
|
228
|
+
declare function createScheduleCommandEntry(): ICommand;
|
|
229
|
+
declare function createMonitorCommandEntry(): ICommand;
|
|
230
|
+
declare class ScheduleCommandSource implements ICommandSource {
|
|
231
|
+
readonly name = "schedule";
|
|
232
|
+
getCommands(): ICommand[];
|
|
233
|
+
}
|
|
234
|
+
declare function createScheduleCommandModule(): ICommandModule;
|
|
235
|
+
//#endregion
|
|
236
|
+
//#region src/schedule/schedule-command.d.ts
|
|
237
|
+
declare function executeScheduleCommand(host: IAgentJobHostContext, args: string, now?: number): Promise<ICommandResult>;
|
|
238
|
+
declare function executeMonitorCommand(host: IAgentJobHostContext, args: string): Promise<ICommandResult>;
|
|
239
|
+
//#endregion
|
|
240
|
+
//#region src/schedule/schedule-spec-parser.d.ts
|
|
241
|
+
/**
|
|
242
|
+
* FLOW-005: parse the `<when>` portion of `/schedule` into a cron expression croner accepts.
|
|
243
|
+
*
|
|
244
|
+
* Two forms:
|
|
245
|
+
* in <N><unit> <instruction> — one-shot, fires once at now + duration (s|m|h|d)
|
|
246
|
+
* cron "<expr>" <instruction> — recurring, a standard cron expression
|
|
247
|
+
*/
|
|
248
|
+
interface IScheduleSpec {
|
|
249
|
+
cronExpression: string;
|
|
250
|
+
instruction: string;
|
|
251
|
+
recurring: boolean;
|
|
252
|
+
}
|
|
253
|
+
type TScheduleParseResult = {
|
|
254
|
+
ok: true;
|
|
255
|
+
spec: IScheduleSpec;
|
|
256
|
+
} | {
|
|
257
|
+
ok: false;
|
|
258
|
+
error: string;
|
|
259
|
+
};
|
|
260
|
+
declare function parseScheduleSpec(args: string, now: number): TScheduleParseResult;
|
|
261
|
+
//#endregion
|
|
224
262
|
//#region src/session/session-command.d.ts
|
|
225
263
|
declare const CLEAR_COMMAND_MESSAGE = "Conversation cleared.";
|
|
226
264
|
declare function executeClearCommand(context: ICommandHostContext, _args: string): ICommandResult;
|
|
@@ -306,5 +344,5 @@ declare function createDefaultPluginCommandAdapter(cwd: string): ICommandPluginA
|
|
|
306
344
|
//#region src/plugins/default-plugin-command-source-loader.d.ts
|
|
307
345
|
declare function reloadPluginCommandSource(registry: CommandRegistry): number;
|
|
308
346
|
//#endregion
|
|
309
|
-
export { AgentCommandSource, BackgroundCommandSource, CLEAR_COMMAND_MESSAGE, CompactCommandSource, ContextCommandSource, ExitCommandSource, HelpCommandSource, type IDefaultCommandModulesOptions, type IEnsureProviderConfigOptions, type IProviderCommandModuleOptions, type IProviderCommandSettingsAdapter, type IProviderSetupFlowOptions, type IProviderSetupFlowState, type IProviderSetupPromptStep, type IProviderStartupContext, type IUserLocalDirectCommandOptions, LanguageCommandSource, MemoryCommandSource, ModeCommandSource, PermissionsCommandSource, PluginManagerCommandSource, ProviderCommandSource, RewindCommandSource, SKILLS_COMMAND_DESCRIPTION, STATUSLINE_USAGE, SessionCommandSource, SettingsCommandSource, SkillsCommandSource, StatusLineCommandSource, type TPromptInput, type TProviderSetupFlowSubmitResult, type TProviderSetupType, USER_LOCAL_COMMAND_ARGUMENT_HINT, USER_LOCAL_COMMAND_DESCRIPTION, USER_LOCAL_COMMAND_USAGE, UserLocalCommandSource, createAgentCommandEntry, createAgentCommandModule, createAgentSystemCommand, createBackgroundCommandEntry, createBackgroundCommandModule, createClearCommandEntry, createCompactCommandEntry, createCompactCommandModule, createContextCommandEntry, createContextCommandModule, createCostCommandEntry, createDefaultCommandModules, createDefaultPluginCommandAdapter, createExitCommandEntry, createExitCommandModule, createHelpCommandEntry, createHelpCommandModule, createLanguageCommandEntry, createLanguageCommandModule, createMemoryCommandEntry, createMemoryCommandModule, createModeCommandEntry, createModeCommandModule, createPermissionsCommandEntry, createPermissionsCommandModule, createPluginCommandEntry, createPluginCommandModule, createProviderCommandEntry, createProviderCommandModule, createProviderSetupFlow, createReloadPluginsCommandEntry, createRenameCommandEntry, createResetCommandEntry, createResetCommandModule, createResumeCommandEntry, createRewindCommandModule, createSessionCommandModule, createSettingsCommandEntry, createSettingsCommandModule, createSkillsCommandEntry, createSkillsCommandModule, createStatusLineCommandEntry, createStatusLineCommandModule, createUserLocalCommandEntry, createUserLocalCommandModule, createValidateSessionCommandEntry, ensureProviderConfig, executeAgentCommand, executeBackgroundCommand, executeClearCommand, executeCompactCommand, executeContextCommand, executeCostCommand, executeExitCommand, executeHelpCommand, executeLanguageCommand, executeMemoryCommand, executeModeCommand, executePermissionsCommand, executePluginCommand, executeProviderCommand, executeReloadPluginsCommand, executeRenameCommand, executeResetCommand, executeResumeCommand, executeRewindCommand, executeSkillsCommand, executeStatusLineCommand, executeUserLocalCommand, executeUserLocalDirectCommand, executeValidateSessionCommand, formatProviderSetupChoiceLabel, formatProviderSetupHelpLinks, formatProviderSetupPromptLabel, formatProviderSetupSelectionPrompt, getProviderSetupStep, reloadPluginCommandSource, resolveProviderSetupSelection, runProviderSetupPromptFlow, runProviderStartupSetup, submitProviderSetupValue, validateProviderSetupValue };
|
|
347
|
+
export { AgentCommandSource, BackgroundCommandSource, CLEAR_COMMAND_MESSAGE, CompactCommandSource, ContextCommandSource, ExitCommandSource, HelpCommandSource, type IDefaultCommandModulesOptions, type IEnsureProviderConfigOptions, type IProviderCommandModuleOptions, type IProviderCommandSettingsAdapter, type IProviderSetupFlowOptions, type IProviderSetupFlowState, type IProviderSetupPromptStep, type IProviderStartupContext, type IScheduleSpec, type IUserLocalDirectCommandOptions, LanguageCommandSource, MemoryCommandSource, ModeCommandSource, PermissionsCommandSource, PluginManagerCommandSource, ProviderCommandSource, RewindCommandSource, SKILLS_COMMAND_DESCRIPTION, STATUSLINE_USAGE, ScheduleCommandSource, SessionCommandSource, SettingsCommandSource, SkillsCommandSource, StatusLineCommandSource, type TPromptInput, type TProviderSetupFlowSubmitResult, type TProviderSetupType, type TScheduleParseResult, USER_LOCAL_COMMAND_ARGUMENT_HINT, USER_LOCAL_COMMAND_DESCRIPTION, USER_LOCAL_COMMAND_USAGE, UserLocalCommandSource, createAgentCommandEntry, createAgentCommandModule, createAgentSystemCommand, createBackgroundCommandEntry, createBackgroundCommandModule, createClearCommandEntry, createCompactCommandEntry, createCompactCommandModule, createContextCommandEntry, createContextCommandModule, createCostCommandEntry, createDefaultCommandModules, createDefaultPluginCommandAdapter, createExitCommandEntry, createExitCommandModule, createHelpCommandEntry, createHelpCommandModule, createLanguageCommandEntry, createLanguageCommandModule, createMemoryCommandEntry, createMemoryCommandModule, createModeCommandEntry, createModeCommandModule, createMonitorCommandEntry, createPermissionsCommandEntry, createPermissionsCommandModule, createPluginCommandEntry, createPluginCommandModule, createProviderCommandEntry, createProviderCommandModule, createProviderSetupFlow, createReloadPluginsCommandEntry, createRenameCommandEntry, createResetCommandEntry, createResetCommandModule, createResumeCommandEntry, createRewindCommandModule, createScheduleCommandEntry, createScheduleCommandModule, createSessionCommandModule, createSettingsCommandEntry, createSettingsCommandModule, createSkillsCommandEntry, createSkillsCommandModule, createStatusLineCommandEntry, createStatusLineCommandModule, createUserLocalCommandEntry, createUserLocalCommandModule, createValidateSessionCommandEntry, ensureProviderConfig, executeAgentCommand, executeBackgroundCommand, executeClearCommand, executeCompactCommand, executeContextCommand, executeCostCommand, executeExitCommand, executeHelpCommand, executeLanguageCommand, executeMemoryCommand, executeModeCommand, executeMonitorCommand, executePermissionsCommand, executePluginCommand, executeProviderCommand, executeReloadPluginsCommand, executeRenameCommand, executeResetCommand, executeResumeCommand, executeRewindCommand, executeScheduleCommand, executeSkillsCommand, executeStatusLineCommand, executeUserLocalCommand, executeUserLocalDirectCommand, executeValidateSessionCommand, formatProviderSetupChoiceLabel, formatProviderSetupHelpLinks, formatProviderSetupPromptLabel, formatProviderSetupSelectionPrompt, getProviderSetupStep, parseScheduleSpec, reloadPluginCommandSource, resolveProviderSetupSelection, runProviderSetupPromptFlow, runProviderStartupSetup, submitProviderSetupValue, validateProviderSetupValue };
|
|
310
348
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/agent/agent-command-module.ts","../../src/agent/agent-command.ts","../../src/default/default-command-modules.ts","../../src/background/background-command-module.ts","../../src/background/background-command.ts","../../src/compact/compact-command-module.ts","../../src/compact/compact-command.ts","../../src/context/context-command-module.ts","../../src/context/context-command.ts","../../src/exit/exit-command-module.ts","../../src/exit/exit-command.ts","../../src/help/help-command-module.ts","../../src/help/help-command.ts","../../src/language/language-command-module.ts","../../src/language/language-command.ts","../../src/memory/memory-command-module.ts","../../src/memory/memory-command.ts","../../src/mode/mode-command-module.ts","../../src/mode/mode-command.ts","../../src/permissions/permissions-command-module.ts","../../src/permissions/permissions-command.ts","../../src/plugin/plugin-command-module.ts","../../src/plugin/plugin-command.ts","../../src/provider/provider-command-module.ts","../../src/provider/provider-command-execution.ts","../../src/provider/provider-setup-flow.ts","../../src/provider/provider-startup.ts","../../src/reset/reset-command-module.ts","../../src/reset/reset-command.ts","../../src/rewind/rewind-command-module.ts","../../src/rewind/rewind-command.ts","../../src/session/session-command.ts","../../src/session/session-command-module.ts","../../src/settings/settings-command-module.ts","../../src/skills/skills-command-module.ts","../../src/skills/skills-command.ts","../../src/statusline/statusline-command-module.ts","../../src/statusline/statusline-command.ts","../../src/user-local/user-local-command-module.ts","../../src/user-local/user-local-command-constants.ts","../../src/user-local/user-local-command.ts","../../src/plugins/default-plugin-command-adapter.ts","../../src/plugins/default-plugin-command-source-loader.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/agent/agent-command-module.ts","../../src/agent/agent-command.ts","../../src/default/default-command-modules.ts","../../src/background/background-command-module.ts","../../src/background/background-command.ts","../../src/compact/compact-command-module.ts","../../src/compact/compact-command.ts","../../src/context/context-command-module.ts","../../src/context/context-command.ts","../../src/exit/exit-command-module.ts","../../src/exit/exit-command.ts","../../src/help/help-command-module.ts","../../src/help/help-command.ts","../../src/language/language-command-module.ts","../../src/language/language-command.ts","../../src/memory/memory-command-module.ts","../../src/memory/memory-command.ts","../../src/mode/mode-command-module.ts","../../src/mode/mode-command.ts","../../src/permissions/permissions-command-module.ts","../../src/permissions/permissions-command.ts","../../src/plugin/plugin-command-module.ts","../../src/plugin/plugin-command.ts","../../src/provider/provider-command-module.ts","../../src/provider/provider-command-execution.ts","../../src/provider/provider-setup-flow.ts","../../src/provider/provider-startup.ts","../../src/reset/reset-command-module.ts","../../src/reset/reset-command.ts","../../src/rewind/rewind-command-module.ts","../../src/rewind/rewind-command.ts","../../src/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;;;UC5LM,6BAAA;EACf,GAAA;EACA,mBAAA,WAA8B,mBAAA;EAC9B,uBAAA,EAAyB,iCAA+B;AAAA;AAAA,iBAG1C,2BAAA;EACd,GAAA;EACA,mBAAA;EACA;AAAA,GACC,6BAAA,YAAyC,cAAA;;;iBCxB5B,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;;;iBCKtC,qBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;;;iBCzCK,sBAAA,IAA0B,QAAQ;AAAA,cAwBrC,iBAAA,YAA6B,cAAc;EAAA,SAC7C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBASD,uBAAA,IAA2B,cAAc;;;iBC1CzC,kBAAA,CAAmB,QAAA,EAAU,mBAAA,EAAqB,KAAA,WAAgB,cAAc;;;iBCEhF,sBAAA,IAA0B,QAAQ;AAAA,cAwBrC,iBAAA,YAA6B,cAAc;EAAA,SAC7C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,uBAAA,IAA2B,cAAc;;;iBClCzC,kBAAA,CAAmB,OAAA,EAAS,mBAAA,EAAqB,KAAA,WAAgB,cAAc;;;iBCU/E,0BAAA,IAA8B,QAAQ;AAAA,cA4BzC,qBAAA,YAAiC,cAAc;EAAA,SACjD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAiBD,2BAAA,IAA+B,cAAc;;;iBC1D7C,sBAAA,CACd,QAAA,EAAU,mBAAA,EACV,IAAA,WACC,cAAc;;;iBCGD,wBAAA,IAA4B,QAAQ;AAAA,cA6BvC,mBAAA,YAA+B,cAAc;EAAA,SAC/C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,yBAAA,IAA6B,cAAc;;;iBCiJ3C,oBAAA,CACd,OAAA,EAAS,mBAAA,EACT,OAAA,WACC,cAAc;;;iBCrLD,sBAAA,IAA0B,QAAQ;AAAA,cA4BrC,iBAAA,YAA6B,cAAc;EAAA,SAC7C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAiBD,uBAAA,IAA2B,cAAc;;;iBCpDzC,kBAAA,CAAmB,OAAA,EAAS,mBAAA,EAAqB,IAAA,WAAe,cAAc;;;iBCA9E,6BAAA,IAAiC,QAAQ;AAAA,cA4B5C,wBAAA,YAAoC,cAAc;EAAA,SACpD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,8BAAA,IAAkC,cAAc;;;iBCnChD,yBAAA,CACd,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,cAAc;;;iBCHD,wBAAA,IAA4B,QAAQ;AAAA,iBAYpC,+BAAA,IAAmC,QAAQ;AAAA,cAwC9C,0BAAA,YAAsC,cAAc;EAAA,SACtD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,yBAAA,IAA6B,cAAc;;;iBCiHrC,oBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,WACC,OAAA,CAAQ,cAAA;AAAA,iBAqBW,2BAAA,CACpB,OAAA,EAAS,mBAAA,EACT,KAAA,WACC,OAAA,CAAQ,cAAA;;;iBC3LK,0BAAA,IAA8B,QAAQ;AAAA,cAazC,qBAAA,YAAiC,cAAc;EAAA,SACjD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAiCD,2BAAA,CACd,OAAA,EAAS,+BAAA,GACR,cAAc;;;iBC9DK,sBAAA,CACpB,IAAA,UACA,OAAA,EAAS,+BAAA,GACR,OAAA,CAAQ,cAAA;;;KCNC,kBAAA;AAAA,KACA,YAAA,IAAgB,KAAA,UAAe,MAAA,eAAqB,OAAO;AAAA,UAEtD,wBAAA,SAAiC,4BAA4B;EAC5E,GAAA,EAAK,mBAAA;AAAA;AAAA,UAGU,uBAAA;EACf,IAAA,EAAM,kBAAA;EACN,KAAA,WAAgB,wBAAA;EAChB,cAAA,WAAyB,sBAAA;EACzB,SAAA;EACA,MAAA,EAAQ,OAAA,CAAQ,MAAA,CAAO,mBAAA;EACvB,oBAAA;EACA,WAAA;EACA,UAAA;AAAA;AAAA,UAGe,yBAAA;EACf,oBAAA;EACA,aAAA,GAAgB,OAAA,CAAQ,MAAA,CAAO,mBAAA;EAC/B,WAAA;EACA,UAAA;AAAA;AAAA,KAGU,8BAAA;EAEN,MAAA;EACA,KAAA,EAAO,uBAAA;AAAA;EAGP,MAAA;EACA,KAAA,EAAO,mBAAA;AAAA;EAGP,MAAA;EACA,KAAA,EAAO,uBAAA;EACP,OAAA;AAAA;AAAA,iBAGU,uBAAA,CACd,IAAA,EAAM,kBAAA,EACN,mBAAA,WAA8B,mBAAA,IAC9B,OAAA,GAAS,yBAAA,GACR,uBAAA;AAAA,iBAiBa,kCAAA,CACd,mBAAmD,WAArB,mBAAmB;AAAA,iBAenC,6BAAA,CACd,QAAA,UACA,mBAAA,WAA8B,mBAAA,KAC7B,kBAAkB;AAAA,iBAsBL,oBAAA,CAAqB,KAAA,EAAO,uBAAA,GAA0B,wBAAwB;AAAA,iBAQ9E,wBAAA,CACd,KAAA,EAAO,uBAAA,EACP,QAAA,WACC,8BAA8B;AAAA,iBAmBX,0BAAA,CACpB,IAAA,EAAM,kBAAA,EACN,WAAA,EAAa,YAAA,EACb,mBAAA,WAA8B,mBAAA,IAC9B,OAAA,GAAS,yBAAA,GACR,OAAA,CAAQ,mBAAA;AAAA,iBAqBK,8BAAA,CACd,IAAA,EAAM,wBAAA,EACN,cAAA,YAAyB,sBAAsB;AAAA,iBAcjC,8BAAA,CAA+B,UAA+B,EAAnB,mBAAmB;AAAA,iBAW9D,4BAAA,CACd,cAAsD,YAA7B,sBAAsB;AAAA,iBAoBjC,0BAAA,CACd,IAAA,EAAM,wBAAwB,EAC9B,KAAA;;;UCjMe,uBAAA;EACf,QAAA;EACA,aAAA,GAAgB,cAAc;AAAA;AAAA,UAGf,4BAAA;EACf,WAAA,GAAc,IAAA,WAAe,mBAAA;EAC7B,aAAA;E1BkBsC;E0BhBtC,GAAA,GAAM,MAAM;AAAA;AAAA,iBAGQ,uBAAA,CACpB,GAAA,UACA,GAAA,EAAK,uBAAA,EACL,WAAA,EAAa,YAAA,EACb,QAAA,EAAU,eAAA,EACV,mBAAA,WAA8B,mBAAA,KAC7B,OAAA;AAAA,iBA4BmB,oBAAA,CACpB,GAAA,UACA,GAAA,EAAK,uBAAA,EACL,WAAA,EAAa,YAAA,EACb,QAAA,EAAU,eAAA,EACV,mBAAA,WAA8B,mBAAA,IAC9B,OAAA,EAAS,4BAAA,GACR,OAAA;;;iBCxEa,uBAAA,IAA2B,QAAQ;AAAA,iBAgCnC,wBAAA,IAA4B,cAAc;;;iBCpC1C,mBAAA,CAAoB,QAAA,EAAU,mBAAA,EAAqB,KAAA,WAAgB,cAAc;;;cCqCpF,mBAAA,YAA+B,cAAc;EAAA,SAC/C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,yBAAA,IAA6B,cAAc;;;iBCgHrC,oBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,OAAA,WACC,OAAA,CAAQ,cAAA;;;iBCnIK,0BAAA,IAA8B,QAAQ;AAAA,iBAWtC,yBAAA,IAA6B,QAAQ;AAAA,cA2CxC,qBAAA,YAAiC,cAAc;EAAA,SACjD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,2BAAA,IAA+B,cAAc;;;iBC9EvC,sBAAA,CACpB,IAAA,EAAM,oBAAA,EACN,IAAA,UACA,GAAA,YACC,OAAA,CAAQ,cAAA;AAAA,iBAgCW,qBAAA,CACpB,IAAA,EAAM,oBAAA,EACN,IAAA,WACC,OAAA,CAAQ,cAAA;;;;;;;;AhCzBX;;UiCtBiB,aAAA;EACf,cAAA;EACA,WAAA;EACA,SAAA;AAAA;AAAA,KAGU,oBAAA;EAAyB,EAAA;EAAU,IAAA,EAAM,aAAa;AAAA;EAAO,EAAA;EAAW,KAAA;AAAA;AAAA,iBAYpE,iBAAA,CAAkB,IAAA,UAAc,GAAA,WAAc,oBAAoB;;;cCPrE,qBAAA;AAAA,iBAEG,mBAAA,CAAoB,OAAA,EAAS,mBAAA,EAAqB,KAAA,WAAgB,cAAc;AAAA,iBAShF,oBAAA,CAAqB,QAAA,EAAU,mBAAA,EAAqB,IAAA,WAAe,cAAc;AAAA,iBAcjF,oBAAA,CAAqB,QAAA,EAAU,mBAAA,EAAqB,KAAA,WAAgB,cAAc;AAAA,iBA+FlF,kBAAA,CAAmB,OAAA,EAAS,mBAAA,EAAqB,IAAA,WAAe,cAAc;AAAA,iBAqC9E,6BAAA,CACd,OAAA,EAAS,mBAAA,EACT,KAAA,WACC,cAAc;;;iBC5JD,uBAAA,IAA2B,QAAQ;AAAA,iBAUnC,wBAAA,IAA4B,QAAQ;AAAA,iBAUpC,wBAAA,IAA4B,QAAQ;AAAA,iBAUpC,sBAAA,IAA0B,QAAQ;AAAA,iBAUlC,iCAAA,IAAqC,QAAQ;AAAA,cAgFhD,oBAAA,YAAgC,cAAc;EAAA,SAChD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAeD,0BAAA,IAA8B,cAAc;;;iBC9J5C,0BAAA,IAA8B,QAAQ;AAAA,cA4BzC,qBAAA,YAAiC,cAAc;EAAA,SACjD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,2BAAA,IAA+B,cAAc;;;UChC5C,2BAAA;EAAA,SACN,GAAG;AAAA;AAAA,iBAGE,wBAAA,IAA4B,QAAQ;AAAA,cA6BvC,mBAAA,YAA+B,cAAc;EAAA,SAC/C,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,yBAAA,CAA0B,OAAA,EAAS,2BAAA,GAA8B,cAAc;;;cC7ClF,0BAAA;AAAA,iBAgES,oBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,IAAA,YACC,OAAA,CAAQ,cAAA;;;iBC3DK,4BAAA,IAAgC,QAAQ;AAAA,cA4B3C,uBAAA,YAAmC,cAAc;EAAA,SACnD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,6BAAA,IAAiC,cAAc;;;cC1BlD,gBAAA;AAAA,iBA4CG,wBAAA,CACd,QAAA,EAAU,mBAAA,EACV,IAAA,WACC,cAAc;;;iBC3DD,2BAAA,IAA+B,QAAQ;AAAA,cAwC1C,sBAAA,YAAkC,cAAc;EAAA,SAClD,IAAA;EAET,WAAA,IAAe,QAAA;AAAA;AAAA,iBAKD,4BAAA,IAAgC,cAAc;;;cCzDjD,8BAAA;AAAA,cACA,gCAAA;AAAA,cAEA,wBAAA;;;UCYI,8BAAA;EAAA,SACN,GAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA;EAAA,SACA,OAAA;EAAA,SACA,MAAA;AAAA;AAAA,iBAwJW,6BAAA,CACpB,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,cAAA;AAAA,iBAkBW,uBAAA,CACpB,OAAA,EAAS,mBAAA,EACT,OAAA,WACC,OAAA,CAAQ,cAAA;;;iBCtDK,iCAAA,CAAkC,GAAA,WAAc,qBAAqB;;;iBChIrE,yBAAA,CAA0B,QAAyB,EAAf,eAAe"}
|