raga-cli 0.9.0 → 0.10.1

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +14 -3
  3. package/bundled-skills/bundle.json +9 -9
  4. package/bundled-skills/docs/guide/01-setup.md +1 -1
  5. package/bundled-skills/skills/peak/SKILL.md +1 -1
  6. package/bundled-skills/skills/peak/references/peak-setup/SKILL.md +1 -1
  7. package/bundled-skills/skills/peak/references/raga-runtime/SKILL.md +3 -3
  8. package/bundled-skills/skills/peak/references/raga-runtime/raga_runtime.py +12 -5
  9. package/bundled-skills/skills/raga-artifacts/artifact.mjs +5 -0
  10. package/dist/bundle/chunks/agent-attach-ZCS2QGIU.js +9 -0
  11. package/dist/bundle/chunks/chunk-2VHBGANP.js +1359 -0
  12. package/dist/bundle/chunks/chunk-4OPO7UJ6.js +4 -0
  13. package/dist/bundle/chunks/{chunk-ENUUAC3O.js → chunk-A4342OQJ.js} +9 -9
  14. package/dist/bundle/chunks/{chunk-OPPYO2IE.js → chunk-ABE5B2U7.js} +1 -1
  15. package/dist/bundle/chunks/{chunk-P2QCWBFM.js → chunk-D2SEW6VC.js} +1 -1
  16. package/dist/bundle/chunks/chunk-FTQDEUXY.js +242 -0
  17. package/dist/bundle/chunks/chunk-HRI5E2Y3.js +2 -0
  18. package/dist/bundle/chunks/{chunk-S5J3UB5O.js → chunk-JNHUOSVT.js} +1 -1
  19. package/dist/bundle/chunks/chunk-K22YTJFL.js +3 -0
  20. package/dist/bundle/chunks/chunk-MXJNFS34.js +47 -0
  21. package/dist/bundle/chunks/{chunk-NP6TH6UT.js → chunk-NXGZMUQX.js} +3 -48
  22. package/dist/bundle/chunks/{chunk-JQDZ4Z7L.js → chunk-NYFFOHME.js} +1 -1
  23. package/dist/bundle/chunks/chunk-P2EB6CEF.js +6 -0
  24. package/dist/bundle/chunks/{chunk-KNY3PXQI.js → chunk-SK25JXS4.js} +1 -1
  25. package/dist/bundle/chunks/chunk-ZJUHXUHP.js +2 -0
  26. package/dist/bundle/chunks/{cli-QLDCDYOR.js → cli-XZ774I3U.js} +1 -1
  27. package/dist/bundle/chunks/{easter-egg-3d-NPDBBPPF.js → easter-egg-3d-XWC5XWQO.js} +1 -1
  28. package/dist/bundle/chunks/{execute-WPTMS4XG.js → execute-7BWE4ZV3.js} +1 -1
  29. package/dist/bundle/chunks/runtime-K76CFDG5.js +2 -0
  30. package/dist/bundle/chunks/virtual-modules-3XOMQWV6.js +2 -0
  31. package/dist/bundle/cli-runtime.js +1 -1
  32. package/dist/bundle/index.js +1 -1
  33. package/dist/bundle/raga-runtime.js +1 -1
  34. package/dist/bundle/rpc-entry.js +1 -1
  35. package/docs/cli.md +2 -0
  36. package/package.json +1 -1
  37. package/python/raga_rlm/__init__.py +10 -2
  38. package/schemas/keybindings.schema.json +36 -0
  39. package/schemas/settings.schema.json +60 -1
  40. package/schemas/theme.schema.json +2 -2
  41. package/dist/bundle/chunks/chunk-3MNXTBQ3.js +0 -2
  42. package/dist/bundle/chunks/chunk-F7LFZTHT.js +0 -1591
  43. package/dist/bundle/chunks/chunk-RFPFZTK2.js +0 -7
  44. package/dist/bundle/chunks/chunk-RP2WKNT7.js +0 -4
  45. package/dist/bundle/chunks/runtime-N5MUH2WA.js +0 -2
  46. package/dist/bundle/chunks/virtual-modules-4I6Y6DPQ.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{Bm25Ranker,CODEMODE_DOCS_PATH,CODEMODE_STORE_ENTRY_TYPE,DEFAULT_TOOL_SEARCH_LIMIT,combineUsage,createToolSearchDocument,formatSize,getCodemodeCallableTools,parseCodemodeSource,renderToolSample,toCodemodeDeclaration,toCodemodeIdentifier,writeOutputFile}from"./chunk-NP6TH6UT.js";import"./chunk-ENUUAC3O.js";import"./chunk-5AGIVGSV.js";import"./chunk-P2QCWBFM.js";import"./chunk-6QGV3IWD.js";import{getCodemodeWorkerSpecifier,getQuickJSWasmPath}from"./chunk-KNY3PXQI.js";import"./chunk-JXWJOIH4.js";function isWorkerToHostMessage(value){if(typeof value!="object"||value===null)return!1;let type=value.type;return type==="call"||type==="output"||type==="done"||type==="crash"||type==="started"||type==="idle"}var DEFAULT_TIMEOUT_MS=3e5,IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/,RESERVED_GLOBALS=new Set(["tools","ALL_TOOLS","console","text","image","exit","globalThis","store","load"]);function errorMessage(error){return error instanceof Error?error.message:String(error)}function serializeStore(store){let serialized={};for(let[key,value]of Object.entries(store??{})){let json=JSON.stringify(value);json!==void 0&&(serialized[key]=json)}return serialized}var BridgeError=class extends Error{};function parseBridgeJson(json,what){try{return JSON.parse(json)}catch{throw new BridgeError(`${what} is not valid JSON`)}}function parseStoreWrites(json){let entries=parseBridgeJson(json,"store writes");if(!Array.isArray(entries))throw new BridgeError("store writes are not an array");let writes={set:{},delete:[]};for(let entry of entries){if(!Array.isArray(entry)||typeof entry[0]!="string"||(entry.length===2?typeof entry[1]!="string":entry.length!==1))throw new BridgeError("store writes contain a malformed entry");let[key,value]=entry;value===void 0?writes.delete.push(key):writes.set[key]=parseBridgeJson(value,`store value for ${JSON.stringify(key)}`)}return writes}function parseScriptError(json){let parsed=parseBridgeJson(json,"script error");if(typeof parsed!="object"||parsed===null)throw new BridgeError("script error is not an object");let{name,message,stack}=parsed;if(typeof message!="string"||name!==void 0&&typeof name!="string"||stack!==void 0&&typeof stack!="string")throw new BridgeError("script error is malformed");return{kind:"script",name,message,stack}}function checkGlobals(globals){let names=new Set,namespaces=new Set;for(let global of globals){let parts=global.name.split(".");if(parts.length>2||!parts.every(part=>IDENTIFIER.test(part))||RESERVED_GLOBALS.has(parts[0]))throw new Error(`Invalid global name "${global.name}"`);if(names.has(global.name))throw new Error(`Global "${global.name}" is already registered`);parts.length===2&&namespaces.add(parts[0]),names.add(global.name)}for(let name of namespaces)if(names.has(name))throw new Error(`Global "${name}" conflicts with the namespace "${name}"`)}var Execution=class{promise;resolveResult;channel;unsent=[];executors;control;delivered=new Set;signal;timer;output=[];calls=[];pending=new Map;finished=!1;constructor(options){if(this.promise=new Promise(resolve=>{this.resolveResult=resolve}),this.executors=options.executors,this.control=options.control,this.signal=options.signal,Number.isFinite(options.timeoutMs)&&(this.timer=setTimeout(()=>{this.finish({kind:"timeout",message:`Execution timed out after ${options.timeoutMs} ms`})},options.timeoutMs)),options.signal&&(options.signal.aborted?this.onAbort():options.signal.addEventListener("abort",this.onAbort,{once:!0})),this.finished)return;let data={code:options.code,tools:options.tools.map(tool=>({name:tool.name,jsName:tool.jsName??toCodemodeIdentifier(tool.name),description:tool.description??""})),globals:options.globals.map(global=>({name:global.name,spread:global.spread===!0})),memoryLimitBytes:options.memoryLimitBytes,store:options.store,...options.deterministic?{deterministic:options.deterministic}:{}},events={message:message=>this.receive(message),failure:error=>this.finish(error)};new Promise(resolve=>resolve(options.launch(data,events))).then(channel=>{if(this.finished){channel.stop().catch(()=>{});return}this.channel=channel;for(let message of this.unsent.splice(0))channel.post(message)},error=>{this.finish({kind:"sandbox",message:errorMessage(error)})})}deliver(seq,now,id,outcome){if(this.finished)return;if(!Number.isFinite(now))throw new Error(`The clock value of result ${seq} is not a finite number`);if(!Number.isInteger(seq)||seq<1||this.delivered.has(seq))throw new Error(`Result number ${seq} is not a positive integer used once`);let pending=this.pending.get(id);if(pending===void 0)throw new Error(`Call ${id} is not waiting for a result`);if(!outcome.ok&&outcome.properties!==void 0){let{properties:properties2}=outcome;if(typeof properties2!="object"||properties2===null||Array.isArray(properties2))throw new Error(`The properties of result ${seq} are not an object`)}let payload=outcome.ok?outcome.value===void 0?void 0:JSON.stringify(outcome.value):outcome.message,properties=!outcome.ok&&outcome.properties!==void 0?JSON.stringify(outcome.properties):void 0;this.delivered.add(seq),this.pending.delete(id),pending.record&&(pending.record.status=outcome.ok?"ok":"error",pending.record.durationMs=performance.now()-pending.startedAt),this.post({type:"result",id,ok:outcome.ok,payload,seq,now,...properties===void 0?{}:{properties}})}abort(message){return this.finish({kind:"aborted",message}),this.promise}onAbort=()=>{let reason=this.signal?.reason;this.finish({kind:"aborted",message:reason instanceof Error?reason.message:"Execution aborted"})};post(message){this.channel?this.channel.post(message):this.unsent.push(message)}receive(message){try{this.handleMessage(message)}catch(error){this.finish({kind:"sandbox",message:error instanceof BridgeError?`Sandbox bridge broken: ${error.message}. The script may have modified built-ins such as a prototype's toJSON.`:`Sandbox host failed: ${errorMessage(error)}`})}}handleMessage(message){if(!this.finished){if(!isWorkerToHostMessage(message))throw new BridgeError("unknown message from the worker");switch(message.type){case"output":this.output.push(message.item);break;case"call":if(this.pending.has(message.id))throw new BridgeError(`duplicate call id ${message.id}`);this.control?this.forwardCall(message,this.control):this.handleCall(message);break;case"started":this.control?.onStarted?.(message.fingerprint);break;case"idle":this.control?.onIdle?.(message.seq,message.issued);break;case"done":this.handleDone(message);break;case"crash":this.finish({kind:"sandbox",message:message.message});break}}}handleDone(message){if(!message.ok){this.finish(parseScriptError(message.error),void 0,void 0,message.during);return}let value=message.value===void 0?void 0:parseBridgeJson(message.value,"return value");this.finish(void 0,value,parseStoreWrites(message.writes),message.during)}forwardCall(message,control){let{id,name,target}=message,args=message.args===void 0?void 0:parseBridgeJson(message.args,"call arguments"),record=target==="tool"?{name,status:"cancelled",durationMs:0}:void 0;record&&this.calls.push(record),this.pending.set(id,{record,startedAt:performance.now(),controller:new AbortController}),control.onCall({id,target,name,args})}async handleCall(message){let{id,name}=message,isTool=message.target==="tool",record=isTool?{name,status:"cancelled",durationMs:0}:void 0;record&&this.calls.push(record);let pending={record,startedAt:performance.now(),controller:new AbortController};this.pending.set(id,pending);let status,reply;try{let tool=(isTool?this.executors.tools:this.executors.globals).get(name);if(!tool)throw new Error(`Unknown ${isTool?"tool":"global"} "${name}"`);let args=message.args===void 0?void 0:JSON.parse(message.args),value=await tool.execute(args,{signal:pending.controller.signal});reply={type:"result",id,ok:!0,payload:value===void 0?void 0:JSON.stringify(value)},status="ok"}catch(error){reply={type:"result",id,ok:!1,payload:errorMessage(error)},status="error"}this.pending.delete(id)&&(record&&(record.status=status,record.durationMs=performance.now()-pending.startedAt),this.post(reply))}finish(error,value,writes,during){if(this.finished)return;this.finished=!0,clearTimeout(this.timer),this.signal?.removeEventListener("abort",this.onAbort);let now=performance.now();for(let pending of this.pending.values())pending.record&&(pending.record.durationMs=now-pending.startedAt),pending.controller.abort();this.pending.clear(),this.unsent=[];let ended=during===void 0?{}:{during:{seq:during.seq,issued:during.issued}},result=error?{ok:!1,error,output:this.output,calls:this.calls,...ended}:{ok:!0,value,output:this.output,calls:this.calls,storeWrites:writes??{set:{},delete:[]},...ended};if(!this.channel){this.resolveResult(result);return}this.channel.stop().catch(()=>{}).then(()=>this.resolveResult(result))}},CodemodeSandboxBase=class{toolsByName=new Map;globalsByName=new Map;timeoutMs;memoryLimitBytes;launch;running=new Set;closed=!1;constructor(options,launch){this.timeoutMs=options.timeoutMs??DEFAULT_TIMEOUT_MS,this.memoryLimitBytes=options.memoryLimitBytes,this.launch=launch;for(let tool of options.tools??[])this.registerTool(tool);checkGlobals(options.globals??[]);for(let global of options.globals??[])this.globalsByName.set(global.name,global)}registerTool(tool){if(this.toolsByName.has(tool.name))throw new Error(`Tool "${tool.name}" is already registered`);this.toolsByName.set(tool.name,tool)}unregisterTool(name){return this.toolsByName.delete(name)}get tools(){return[...this.toolsByName.values()]}get globals(){return[...this.globalsByName.values()]}execute(code,options={}){if(this.closed)return Promise.reject(new Error("Sandbox is closed"));let tools=new Map(this.toolsByName),execution=new Execution({code,tools:[...tools.values()],globals:[...this.globalsByName.values()],executors:{tools,globals:this.globalsByName},timeoutMs:options.timeoutMs??this.timeoutMs,signal:options.signal,memoryLimitBytes:this.memoryLimitBytes,store:serializeStore(options.store),launch:this.launch});return this.running.add(execution),execution.promise.finally(()=>this.running.delete(execution))}start(code,options){if(this.closed)throw new Error("Sandbox is closed");if(!Number.isFinite(options.startedAt)||options.startedAt<0)throw new Error("startedAt must be a non-negative number of milliseconds since the epoch");if(!Number.isInteger(options.seed)||options.seed<0||options.seed>4294967295)throw new Error("seed must be a 32-bit unsigned integer");let tools=options.tools??[];if(new Set(tools.map(tool=>tool.name)).size!==tools.length)throw new Error("Tool names must be unique");let scriptNames=tools.map(tool=>tool.jsName??toCodemodeIdentifier(tool.name));if(new Set(scriptNames).size!==tools.length)throw new Error("Tool script names must be unique");let globals=options.globals??[];checkGlobals(globals);let execution=new Execution({code,tools,globals,executors:{tools:new Map,globals:new Map},timeoutMs:options.timeoutMs??Number.POSITIVE_INFINITY,signal:options.signal,memoryLimitBytes:this.memoryLimitBytes,store:serializeStore(options.store),deterministic:{startedAt:options.startedAt,seed:options.seed},control:{onStarted:options.onStarted,onCall:options.onCall,onIdle:options.onIdle},launch:this.launch});return this.running.add(execution),{result:execution.promise.finally(()=>this.running.delete(execution)),deliver:(seq,now,id,outcome)=>execution.deliver(seq,now,id,outcome),get finished(){return execution.finished}}}async close(){this.closed=!0,await Promise.all([...this.running].map(execution=>execution.abort("Sandbox closed")))}};import{Worker}from"node:worker_threads";import{readFile}from"node:fs/promises";import{createRequire}from"node:module";var modules=new Map;function loadQuickJSWasm(path){let resolved=path??createRequire(import.meta.url).resolve("quickjs-wasi/quickjs.wasm"),module=modules.get(resolved);if(!module){let{WebAssembly:WebAssembly2}=globalThis;module=readFile(resolved).then(bytes=>WebAssembly2.compile(bytes)).catch(error=>{throw modules.delete(resolved),error}),modules.set(resolved,module)}return module}function defaultWorkerUrl(){return new URL(import.meta.url.endsWith(".ts")?"./worker.ts":"./worker.js",import.meta.url)}function workerLauncher(options){return async(data,events)=>{let module;try{module=await(options.wasm??loadQuickJSWasm())}catch(error){throw new Error(`Failed to load QuickJS: ${errorMessage(error)}`)}let interrupt=new SharedArrayBuffer(4),workerData={...data,wasm:module,interrupt},releaseWorker=options.acquireWorker?.(),worker;try{worker=new Worker(options.workerUrl??defaultWorkerUrl(),{workerData})}catch(error){throw releaseWorker?.(),new Error(`Failed to start worker: ${errorMessage(error)}`)}releaseWorker&&worker.once("exit",releaseWorker),worker.on("message",message=>{typeof message=="object"&&message!==null&&("watch:import"in message||"watch:require"in message)||events.message(message)}),worker.on("error",error=>{events.failure({kind:"sandbox",name:error instanceof Error?error.name:void 0,message:errorMessage(error)})}),worker.on("exit",code=>{events.failure({kind:"sandbox",message:`Worker exited with code ${code} before the script settled`})});let stop=async()=>{Atomics.store(new Int32Array(interrupt),0,1),worker.terminate().catch(()=>{}),worker.unref()};try{options.onWorkerStarted?.(new Promise(resolve=>worker.once("exit",()=>resolve())))}catch(error){throw stop(),error}return{post:message=>worker.postMessage(message),stop}}}var CodemodeSandbox=class extends CodemodeSandboxBase{constructor(options={}){super(options,workerLauncher(options))}};var decoder=new TextDecoder;var MAX_STACK_SIZE=512*1024;var wtf8Decoder=new TextDecoder,wtf8Encoder=new TextEncoder;var IMAGE_HELPER_EXPECTS='image expects a non-empty image URL string, an object with image_url, or an image block { type: "image", data, mimeType }',PRELUDE_SOURCE=`(function (bridge, toolsJson, globalsJson, storeJson) {
2
+ import{Bm25Ranker,CODEMODE_DOCS_PATH,CODEMODE_STORE_ENTRY_TYPE,DEFAULT_TOOL_SEARCH_LIMIT,createToolSearchDocument,getCodemodeCallableTools,parseCodemodeSource,renderToolSample,toCodemodeDeclaration,toCodemodeIdentifier,writeOutputFile}from"./chunk-MXJNFS34.js";import{combineUsage,formatSize}from"./chunk-NXGZMUQX.js";import"./chunk-A4342OQJ.js";import"./chunk-5AGIVGSV.js";import"./chunk-D2SEW6VC.js";import"./chunk-6QGV3IWD.js";import{getCodemodeWorkerSpecifier,getQuickJSWasmPath}from"./chunk-SK25JXS4.js";import"./chunk-JXWJOIH4.js";function isWorkerToHostMessage(value){if(typeof value!="object"||value===null)return!1;let type=value.type;return type==="call"||type==="output"||type==="done"||type==="crash"||type==="started"||type==="idle"}var DEFAULT_TIMEOUT_MS=3e5,IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/,RESERVED_GLOBALS=new Set(["tools","ALL_TOOLS","console","text","image","exit","globalThis","store","load"]);function errorMessage(error){return error instanceof Error?error.message:String(error)}function serializeStore(store){let serialized={};for(let[key,value]of Object.entries(store??{})){let json=JSON.stringify(value);json!==void 0&&(serialized[key]=json)}return serialized}var BridgeError=class extends Error{};function parseBridgeJson(json,what){try{return JSON.parse(json)}catch{throw new BridgeError(`${what} is not valid JSON`)}}function parseStoreWrites(json){let entries=parseBridgeJson(json,"store writes");if(!Array.isArray(entries))throw new BridgeError("store writes are not an array");let writes={set:{},delete:[]};for(let entry of entries){if(!Array.isArray(entry)||typeof entry[0]!="string"||(entry.length===2?typeof entry[1]!="string":entry.length!==1))throw new BridgeError("store writes contain a malformed entry");let[key,value]=entry;value===void 0?writes.delete.push(key):writes.set[key]=parseBridgeJson(value,`store value for ${JSON.stringify(key)}`)}return writes}function parseScriptError(json){let parsed=parseBridgeJson(json,"script error");if(typeof parsed!="object"||parsed===null)throw new BridgeError("script error is not an object");let{name,message,stack}=parsed;if(typeof message!="string"||name!==void 0&&typeof name!="string"||stack!==void 0&&typeof stack!="string")throw new BridgeError("script error is malformed");return{kind:"script",name,message,stack}}function checkGlobals(globals){let names=new Set,namespaces=new Set;for(let global of globals){let parts=global.name.split(".");if(parts.length>2||!parts.every(part=>IDENTIFIER.test(part))||RESERVED_GLOBALS.has(parts[0]))throw new Error(`Invalid global name "${global.name}"`);if(names.has(global.name))throw new Error(`Global "${global.name}" is already registered`);parts.length===2&&namespaces.add(parts[0]),names.add(global.name)}for(let name of namespaces)if(names.has(name))throw new Error(`Global "${name}" conflicts with the namespace "${name}"`)}var Execution=class{promise;resolveResult;channel;unsent=[];executors;control;delivered=new Set;signal;timer;output=[];calls=[];pending=new Map;finished=!1;constructor(options){if(this.promise=new Promise(resolve=>{this.resolveResult=resolve}),this.executors=options.executors,this.control=options.control,this.signal=options.signal,Number.isFinite(options.timeoutMs)&&(this.timer=setTimeout(()=>{this.finish({kind:"timeout",message:`Execution timed out after ${options.timeoutMs} ms`})},options.timeoutMs)),options.signal&&(options.signal.aborted?this.onAbort():options.signal.addEventListener("abort",this.onAbort,{once:!0})),this.finished)return;let data={code:options.code,tools:options.tools.map(tool=>({name:tool.name,jsName:tool.jsName??toCodemodeIdentifier(tool.name),description:tool.description??""})),globals:options.globals.map(global=>({name:global.name,spread:global.spread===!0})),memoryLimitBytes:options.memoryLimitBytes,store:options.store,...options.deterministic?{deterministic:options.deterministic}:{}},events={message:message=>this.receive(message),failure:error=>this.finish(error)};new Promise(resolve=>resolve(options.launch(data,events))).then(channel=>{if(this.finished){channel.stop().catch(()=>{});return}this.channel=channel;for(let message of this.unsent.splice(0))channel.post(message)},error=>{this.finish({kind:"sandbox",message:errorMessage(error)})})}deliver(seq,now,id,outcome){if(this.finished)return;if(!Number.isFinite(now))throw new Error(`The clock value of result ${seq} is not a finite number`);if(!Number.isInteger(seq)||seq<1||this.delivered.has(seq))throw new Error(`Result number ${seq} is not a positive integer used once`);let pending=this.pending.get(id);if(pending===void 0)throw new Error(`Call ${id} is not waiting for a result`);if(!outcome.ok&&outcome.properties!==void 0){let{properties:properties2}=outcome;if(typeof properties2!="object"||properties2===null||Array.isArray(properties2))throw new Error(`The properties of result ${seq} are not an object`)}let payload=outcome.ok?outcome.value===void 0?void 0:JSON.stringify(outcome.value):outcome.message,properties=!outcome.ok&&outcome.properties!==void 0?JSON.stringify(outcome.properties):void 0;this.delivered.add(seq),this.pending.delete(id),pending.record&&(pending.record.status=outcome.ok?"ok":"error",pending.record.durationMs=performance.now()-pending.startedAt),this.post({type:"result",id,ok:outcome.ok,payload,seq,now,...properties===void 0?{}:{properties}})}abort(message){return this.finish({kind:"aborted",message}),this.promise}onAbort=()=>{let reason=this.signal?.reason;this.finish({kind:"aborted",message:reason instanceof Error?reason.message:"Execution aborted"})};post(message){this.channel?this.channel.post(message):this.unsent.push(message)}receive(message){try{this.handleMessage(message)}catch(error){this.finish({kind:"sandbox",message:error instanceof BridgeError?`Sandbox bridge broken: ${error.message}. The script may have modified built-ins such as a prototype's toJSON.`:`Sandbox host failed: ${errorMessage(error)}`})}}handleMessage(message){if(!this.finished){if(!isWorkerToHostMessage(message))throw new BridgeError("unknown message from the worker");switch(message.type){case"output":this.output.push(message.item);break;case"call":if(this.pending.has(message.id))throw new BridgeError(`duplicate call id ${message.id}`);this.control?this.forwardCall(message,this.control):this.handleCall(message);break;case"started":this.control?.onStarted?.(message.fingerprint);break;case"idle":this.control?.onIdle?.(message.seq,message.issued);break;case"done":this.handleDone(message);break;case"crash":this.finish({kind:"sandbox",message:message.message});break}}}handleDone(message){if(!message.ok){this.finish(parseScriptError(message.error),void 0,void 0,message.during);return}let value=message.value===void 0?void 0:parseBridgeJson(message.value,"return value");this.finish(void 0,value,parseStoreWrites(message.writes),message.during)}forwardCall(message,control){let{id,name,target}=message,args=message.args===void 0?void 0:parseBridgeJson(message.args,"call arguments"),record=target==="tool"?{name,status:"cancelled",durationMs:0}:void 0;record&&this.calls.push(record),this.pending.set(id,{record,startedAt:performance.now(),controller:new AbortController}),control.onCall({id,target,name,args})}async handleCall(message){let{id,name}=message,isTool=message.target==="tool",record=isTool?{name,status:"cancelled",durationMs:0}:void 0;record&&this.calls.push(record);let pending={record,startedAt:performance.now(),controller:new AbortController};this.pending.set(id,pending);let status,reply;try{let tool=(isTool?this.executors.tools:this.executors.globals).get(name);if(!tool)throw new Error(`Unknown ${isTool?"tool":"global"} "${name}"`);let args=message.args===void 0?void 0:JSON.parse(message.args),value=await tool.execute(args,{signal:pending.controller.signal});reply={type:"result",id,ok:!0,payload:value===void 0?void 0:JSON.stringify(value)},status="ok"}catch(error){reply={type:"result",id,ok:!1,payload:errorMessage(error)},status="error"}this.pending.delete(id)&&(record&&(record.status=status,record.durationMs=performance.now()-pending.startedAt),this.post(reply))}finish(error,value,writes,during){if(this.finished)return;this.finished=!0,clearTimeout(this.timer),this.signal?.removeEventListener("abort",this.onAbort);let now=performance.now();for(let pending of this.pending.values())pending.record&&(pending.record.durationMs=now-pending.startedAt),pending.controller.abort();this.pending.clear(),this.unsent=[];let ended=during===void 0?{}:{during:{seq:during.seq,issued:during.issued}},result=error?{ok:!1,error,output:this.output,calls:this.calls,...ended}:{ok:!0,value,output:this.output,calls:this.calls,storeWrites:writes??{set:{},delete:[]},...ended};if(!this.channel){this.resolveResult(result);return}this.channel.stop().catch(()=>{}).then(()=>this.resolveResult(result))}},CodemodeSandboxBase=class{toolsByName=new Map;globalsByName=new Map;timeoutMs;memoryLimitBytes;launch;running=new Set;closed=!1;constructor(options,launch){this.timeoutMs=options.timeoutMs??DEFAULT_TIMEOUT_MS,this.memoryLimitBytes=options.memoryLimitBytes,this.launch=launch;for(let tool of options.tools??[])this.registerTool(tool);checkGlobals(options.globals??[]);for(let global of options.globals??[])this.globalsByName.set(global.name,global)}registerTool(tool){if(this.toolsByName.has(tool.name))throw new Error(`Tool "${tool.name}" is already registered`);this.toolsByName.set(tool.name,tool)}unregisterTool(name){return this.toolsByName.delete(name)}get tools(){return[...this.toolsByName.values()]}get globals(){return[...this.globalsByName.values()]}execute(code,options={}){if(this.closed)return Promise.reject(new Error("Sandbox is closed"));let tools=new Map(this.toolsByName),execution=new Execution({code,tools:[...tools.values()],globals:[...this.globalsByName.values()],executors:{tools,globals:this.globalsByName},timeoutMs:options.timeoutMs??this.timeoutMs,signal:options.signal,memoryLimitBytes:this.memoryLimitBytes,store:serializeStore(options.store),launch:this.launch});return this.running.add(execution),execution.promise.finally(()=>this.running.delete(execution))}start(code,options){if(this.closed)throw new Error("Sandbox is closed");if(!Number.isFinite(options.startedAt)||options.startedAt<0)throw new Error("startedAt must be a non-negative number of milliseconds since the epoch");if(!Number.isInteger(options.seed)||options.seed<0||options.seed>4294967295)throw new Error("seed must be a 32-bit unsigned integer");let tools=options.tools??[];if(new Set(tools.map(tool=>tool.name)).size!==tools.length)throw new Error("Tool names must be unique");let scriptNames=tools.map(tool=>tool.jsName??toCodemodeIdentifier(tool.name));if(new Set(scriptNames).size!==tools.length)throw new Error("Tool script names must be unique");let globals=options.globals??[];checkGlobals(globals);let execution=new Execution({code,tools,globals,executors:{tools:new Map,globals:new Map},timeoutMs:options.timeoutMs??Number.POSITIVE_INFINITY,signal:options.signal,memoryLimitBytes:this.memoryLimitBytes,store:serializeStore(options.store),deterministic:{startedAt:options.startedAt,seed:options.seed},control:{onStarted:options.onStarted,onCall:options.onCall,onIdle:options.onIdle},launch:this.launch});return this.running.add(execution),{result:execution.promise.finally(()=>this.running.delete(execution)),deliver:(seq,now,id,outcome)=>execution.deliver(seq,now,id,outcome),get finished(){return execution.finished}}}async close(){this.closed=!0,await Promise.all([...this.running].map(execution=>execution.abort("Sandbox closed")))}};import{Worker}from"node:worker_threads";import{readFile}from"node:fs/promises";import{createRequire}from"node:module";var modules=new Map;function loadQuickJSWasm(path){let resolved=path??createRequire(import.meta.url).resolve("quickjs-wasi/quickjs.wasm"),module=modules.get(resolved);if(!module){let{WebAssembly:WebAssembly2}=globalThis;module=readFile(resolved).then(bytes=>WebAssembly2.compile(bytes)).catch(error=>{throw modules.delete(resolved),error}),modules.set(resolved,module)}return module}function defaultWorkerUrl(){return new URL(import.meta.url.endsWith(".ts")?"./worker.ts":"./worker.js",import.meta.url)}function workerLauncher(options){return async(data,events)=>{let module;try{module=await(options.wasm??loadQuickJSWasm())}catch(error){throw new Error(`Failed to load QuickJS: ${errorMessage(error)}`)}let interrupt=new SharedArrayBuffer(4),workerData={...data,wasm:module,interrupt},releaseWorker=options.acquireWorker?.(),worker;try{worker=new Worker(options.workerUrl??defaultWorkerUrl(),{workerData})}catch(error){throw releaseWorker?.(),new Error(`Failed to start worker: ${errorMessage(error)}`)}releaseWorker&&worker.once("exit",releaseWorker),worker.on("message",message=>{typeof message=="object"&&message!==null&&("watch:import"in message||"watch:require"in message)||events.message(message)}),worker.on("error",error=>{events.failure({kind:"sandbox",name:error instanceof Error?error.name:void 0,message:errorMessage(error)})}),worker.on("exit",code=>{events.failure({kind:"sandbox",message:`Worker exited with code ${code} before the script settled`})});let stop=async()=>{Atomics.store(new Int32Array(interrupt),0,1),worker.terminate().catch(()=>{}),worker.unref()};try{options.onWorkerStarted?.(new Promise(resolve=>worker.once("exit",()=>resolve())))}catch(error){throw stop(),error}return{post:message=>worker.postMessage(message),stop}}}var CodemodeSandbox=class extends CodemodeSandboxBase{constructor(options={}){super(options,workerLauncher(options))}};var decoder=new TextDecoder;var MAX_STACK_SIZE=512*1024;var wtf8Decoder=new TextDecoder,wtf8Encoder=new TextEncoder;var IMAGE_HELPER_EXPECTS='image expects a non-empty image URL string, an object with image_url, or an image block { type: "image", data, mimeType }',PRELUDE_SOURCE=`(function (bridge, toolsJson, globalsJson, storeJson) {
3
3
  "use strict";
4
4
 
5
5
  // Freeze every object reachable from the built-in globals, plus the intrinsics that are only
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{McpOAuthCredentialStore,McpServerConnection,McpServerLog,McpSignInCancelledError,createDefaultTransport,signInMcpServer}from"./chunk-JNHUOSVT.js";import"./chunk-P2EB6CEF.js";import"./chunk-K22YTJFL.js";import"./chunk-D2SEW6VC.js";import"./chunk-SK25JXS4.js";import"./chunk-JXWJOIH4.js";export{McpOAuthCredentialStore,McpServerConnection,McpServerLog,McpSignInCancelledError,createDefaultTransport,signInMcpServer};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{dist_exports as dist_exports3}from"./chunk-ZJUHXUHP.js";import{all_exports,compat_exports,dist_exports as dist_exports2}from"./chunk-2VHBGANP.js";import"./chunk-MXJNFS34.js";import"./chunk-NYFFOHME.js";import"./chunk-4OPO7UJ6.js";import"./chunk-P2EB6CEF.js";import{compile_exports,value_exports2 as value_exports}from"./chunk-FTQDEUXY.js";import{build_exports}from"./chunk-NXGZMUQX.js";import{dist_exports}from"./chunk-A4342OQJ.js";import"./chunk-5AGIVGSV.js";import"./chunk-HRI5E2Y3.js";import"./chunk-K22YTJFL.js";import"./chunk-D2SEW6VC.js";import"./chunk-6QGV3IWD.js";import"./chunk-SK25JXS4.js";import"./chunk-USJZMAIR.js";import"./chunk-TMTOQ7H7.js";import"./chunk-UKVNB6C4.js";import"./chunk-3V45WARH.js";import"./chunk-7DDKXS2Q.js";import{models_exports}from"./chunk-IXDQLPKS.js";import"./chunk-LPXNMA2W.js";import"./chunk-H76KZMOI.js";import"./chunk-JXWJOIH4.js";var oauth_exports={};var VIRTUAL_MODULES={typebox:build_exports,"typebox/compile":compile_exports,"typebox/value":value_exports,"@sinclair/typebox":build_exports,"@sinclair/typebox/compile":compile_exports,"@sinclair/typebox/value":value_exports,"@earendil-works/pi-agent-core":dist_exports2,"@earendil-works/pi-tui":dist_exports,"@earendil-works/pi-ai":compat_exports,"@earendil-works/pi-ai/compat":compat_exports,"@earendil-works/pi-ai/models":models_exports,"@earendil-works/pi-ai/oauth":oauth_exports,"@earendil-works/pi-ai/providers/all":all_exports,"@earendil-works/pi-coding-agent":dist_exports3,"@mariozechner/pi-agent-core":dist_exports2,"@mariozechner/pi-tui":dist_exports,"@mariozechner/pi-ai":compat_exports,"@mariozechner/pi-ai/compat":compat_exports,"@mariozechner/pi-ai/models":models_exports,"@mariozechner/pi-ai/oauth":oauth_exports,"@mariozechner/pi-ai/providers/all":all_exports,"@mariozechner/pi-coding-agent":dist_exports3};export{VIRTUAL_MODULES};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
3
- import{setupCli}from"./chunks/chunk-OPPYO2IE.js";import{main}from"./chunks/chunk-F7LFZTHT.js";import"./chunks/chunk-NP6TH6UT.js";import"./chunks/chunk-JQDZ4Z7L.js";import"./chunks/chunk-ENUUAC3O.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-RP2WKNT7.js";import"./chunks/chunk-RFPFZTK2.js";import"./chunks/chunk-P2QCWBFM.js";import"./chunks/chunk-6QGV3IWD.js";import"./chunks/chunk-KNY3PXQI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";setupCli();main(process.argv.slice(2));
3
+ import{setupCli}from"./chunks/chunk-ABE5B2U7.js";import{main}from"./chunks/chunk-2VHBGANP.js";import"./chunks/chunk-MXJNFS34.js";import"./chunks/chunk-NYFFOHME.js";import"./chunks/chunk-4OPO7UJ6.js";import"./chunks/chunk-P2EB6CEF.js";import"./chunks/chunk-FTQDEUXY.js";import"./chunks/chunk-NXGZMUQX.js";import"./chunks/chunk-A4342OQJ.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-HRI5E2Y3.js";import"./chunks/chunk-K22YTJFL.js";import"./chunks/chunk-D2SEW6VC.js";import"./chunks/chunk-6QGV3IWD.js";import"./chunks/chunk-SK25JXS4.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";setupCli();main(process.argv.slice(2));
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{ShowImagesSelectorComponent,ThemeSelectorComponent}from"./chunks/chunk-3MNXTBQ3.js";import{AgentSession,AgentSessionRuntime,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,InstanceMemory,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,NoMistakesBackend,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,activateRevision,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,checkSandbox,collectEntriesForBranchSummary,commitCandidate,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCandidate,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createMemoryService,createPowerShellTool,createPowerShellToolDefinition,createProxyMemoryService,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getBundledHarnessPath,getCandidate,getLastAssistantUsage,getLatestCompactionEntry,getNoMistakesBackend,handleMemoryProxyRequest,initializeInstance,inspectBundledSkills,inspectCandidate,instancePaths,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,listRevisions,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateProjectConfig,migrateSessionEntries,openInstance,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,proposeSkill,readInstance,readOnlyMemoryService,refineInstance,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,rollbackInstance,runModelCheckpoint,runModelRefinement,runPrintMode,runRpcMode,sandboxCommand,selectMemoryService,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,validateSkill,verifySkillRevision,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunks/chunk-F7LFZTHT.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunks/chunk-NP6TH6UT.js";import{ArminComponent}from"./chunks/chunk-JQDZ4Z7L.js";import{Theme,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunks/chunk-ENUUAC3O.js";import"./chunks/chunk-5AGIVGSV.js";import{ProjectTrustStore,hasTrustRequiringProjectResources}from"./chunks/chunk-RP2WKNT7.js";import{readStoredCredential}from"./chunks/chunk-RFPFZTK2.js";import{getPowerShellConfig,getShellConfig}from"./chunks/chunk-P2QCWBFM.js";import"./chunks/chunk-6QGV3IWD.js";import{CONFIG_DIR_NAME,PROJECT_CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunks/chunk-KNY3PXQI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";export{AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,InstanceMemory,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,NoMistakesBackend,OAuthSelectorComponent,PROJECT_CONFIG_DIR_NAME,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VERSION,VIRTUAL_MODEL_STATE_ENTRY,activateRevision,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,checkSandbox,collectEntriesForBranchSummary,commitCandidate,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCandidate,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createMemoryService,createPowerShellTool,createPowerShellToolDefinition,createProxyMemoryService,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatReadLineRange,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getBundledHarnessPath,getCandidate,getDocsPath,getExamplesPath,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getNoMistakesBackend,getPackageDir,getPowerShellConfig,getReadmePath,getSelectListTheme,getSettingsListTheme,getShellConfig,handleMemoryProxyRequest,hasTrustRequiringProjectResources,highlightCode,initTheme,initializeInstance,inspectBundledSkills,inspectCandidate,instancePaths,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,listRevisions,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateProjectConfig,migrateSessionEntries,openInstance,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,proposeSkill,rawKeyHint,readInstance,readOnlyMemoryService,readStoredCredential,refineInstance,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,rollbackInstance,runModelCheckpoint,runModelRefinement,runPrintMode,runRpcMode,sandboxCommand,selectMemoryService,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,validateSkill,verifySkillRevision,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools};
2
+ import{ShowImagesSelectorComponent,ThemeSelectorComponent}from"./chunks/chunk-ZJUHXUHP.js";import{AgentSession,AgentSessionRuntime,BorderedLoader,CURRENT_SESSION_VERSION,CredentialSynchronizationError,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,InstanceMemory,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,NoMistakesBackend,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,TreeSelectorComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,activateRevision,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,checkSandbox,collectEntriesForBranchSummary,commitCandidate,compact,convertToLlm,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCandidate,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createMemoryService,createPowerShellTool,createPowerShellToolDefinition,createProxyMemoryService,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateSummary,generateSummaryWithUsage,getBundledHarnessPath,getCandidate,getLastAssistantUsage,getLatestCompactionEntry,getNoMistakesBackend,handleMemoryProxyRequest,initializeInstance,inspectBundledSkills,inspectCandidate,instancePaths,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,listRevisions,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateProjectConfig,migrateSessionEntries,openInstance,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,proposeSkill,readInstance,readOnlyMemoryService,refineInstance,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,rollbackInstance,runModelCheckpoint,runModelRefinement,runPrintMode,runRpcMode,sandboxCommand,selectMemoryService,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,validateSkill,verifySkillRevision,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunks/chunk-2VHBGANP.js";import"./chunks/chunk-MXJNFS34.js";import{ArminComponent}from"./chunks/chunk-NYFFOHME.js";import{ProjectTrustStore,hasTrustRequiringProjectResources}from"./chunks/chunk-4OPO7UJ6.js";import{readStoredCredential}from"./chunks/chunk-P2EB6CEF.js";import{AssistantMessageComponent,BashExecutionComponent,BranchSummaryMessageComponent,CompactionSummaryMessageComponent,CustomEditor,CustomMessageComponent,DynamicBorder,FooterComponent,SettingsManager,ToolExecutionComponent,UserMessageComponent,convertToPng,copyToClipboard,generateDiffString,generateUnifiedPatch,renderDiff}from"./chunks/chunk-FTQDEUXY.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunks/chunk-NXGZMUQX.js";import{Theme,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunks/chunk-A4342OQJ.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-HRI5E2Y3.js";import"./chunks/chunk-K22YTJFL.js";import{getPowerShellConfig,getShellConfig}from"./chunks/chunk-D2SEW6VC.js";import"./chunks/chunk-6QGV3IWD.js";import{CONFIG_DIR_NAME,PROJECT_CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunks/chunk-SK25JXS4.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";export{AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,InstanceMemory,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,NoMistakesBackend,OAuthSelectorComponent,PROJECT_CONFIG_DIR_NAME,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VERSION,VIRTUAL_MODEL_STATE_ENTRY,activateRevision,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,checkSandbox,collectEntriesForBranchSummary,commitCandidate,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCandidate,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createMemoryService,createPowerShellTool,createPowerShellToolDefinition,createProxyMemoryService,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatReadLineRange,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getBundledHarnessPath,getCandidate,getDocsPath,getExamplesPath,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getNoMistakesBackend,getPackageDir,getPowerShellConfig,getReadmePath,getSelectListTheme,getSettingsListTheme,getShellConfig,handleMemoryProxyRequest,hasTrustRequiringProjectResources,highlightCode,initTheme,initializeInstance,inspectBundledSkills,inspectCandidate,instancePaths,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,listRevisions,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateProjectConfig,migrateSessionEntries,openInstance,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,proposeSkill,rawKeyHint,readInstance,readOnlyMemoryService,readStoredCredential,refineInstance,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,rollbackInstance,runModelCheckpoint,runModelRefinement,runPrintMode,runRpcMode,sandboxCommand,selectMemoryService,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,validateSkill,verifySkillRevision,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
3
- import{setupCli}from"./chunks/chunk-OPPYO2IE.js";import{main}from"./chunks/chunk-F7LFZTHT.js";import"./chunks/chunk-NP6TH6UT.js";import"./chunks/chunk-JQDZ4Z7L.js";import"./chunks/chunk-ENUUAC3O.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-RP2WKNT7.js";import"./chunks/chunk-RFPFZTK2.js";import"./chunks/chunk-P2QCWBFM.js";import"./chunks/chunk-6QGV3IWD.js";import"./chunks/chunk-KNY3PXQI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";setupCli();main(process.argv.slice(2));
3
+ import{setupCli}from"./chunks/chunk-ABE5B2U7.js";import{main}from"./chunks/chunk-2VHBGANP.js";import"./chunks/chunk-MXJNFS34.js";import"./chunks/chunk-NYFFOHME.js";import"./chunks/chunk-4OPO7UJ6.js";import"./chunks/chunk-P2EB6CEF.js";import"./chunks/chunk-FTQDEUXY.js";import"./chunks/chunk-NXGZMUQX.js";import"./chunks/chunk-A4342OQJ.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-HRI5E2Y3.js";import"./chunks/chunk-K22YTJFL.js";import"./chunks/chunk-D2SEW6VC.js";import"./chunks/chunk-6QGV3IWD.js";import"./chunks/chunk-SK25JXS4.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";setupCli();main(process.argv.slice(2));
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
3
- import{configureHttpDispatcher,main}from"./chunks/chunk-F7LFZTHT.js";import"./chunks/chunk-NP6TH6UT.js";import"./chunks/chunk-JQDZ4Z7L.js";import"./chunks/chunk-ENUUAC3O.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-RP2WKNT7.js";import"./chunks/chunk-RFPFZTK2.js";import"./chunks/chunk-P2QCWBFM.js";import"./chunks/chunk-6QGV3IWD.js";import{APP_NAME}from"./chunks/chunk-KNY3PXQI.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";process.title=`${APP_NAME}-rpc`;process.env.PI_CODING_AGENT="true";process.env.AI_AGENT="pi";process.emitWarning=(()=>{});configureHttpDispatcher();main(["--mode","rpc",...process.argv.slice(2)]);
3
+ import{main}from"./chunks/chunk-2VHBGANP.js";import"./chunks/chunk-MXJNFS34.js";import"./chunks/chunk-NYFFOHME.js";import"./chunks/chunk-4OPO7UJ6.js";import"./chunks/chunk-P2EB6CEF.js";import{configureHttpDispatcher}from"./chunks/chunk-FTQDEUXY.js";import"./chunks/chunk-NXGZMUQX.js";import"./chunks/chunk-A4342OQJ.js";import"./chunks/chunk-5AGIVGSV.js";import"./chunks/chunk-HRI5E2Y3.js";import"./chunks/chunk-K22YTJFL.js";import"./chunks/chunk-D2SEW6VC.js";import"./chunks/chunk-6QGV3IWD.js";import{APP_NAME}from"./chunks/chunk-SK25JXS4.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-TMTOQ7H7.js";import"./chunks/chunk-UKVNB6C4.js";import"./chunks/chunk-3V45WARH.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-IXDQLPKS.js";import"./chunks/chunk-LPXNMA2W.js";import"./chunks/chunk-H76KZMOI.js";import"./chunks/chunk-JXWJOIH4.js";process.title=`${APP_NAME}-rpc`;process.env.PI_CODING_AGENT="true";process.env.AI_AGENT="pi";process.emitWarning=(()=>{});configureHttpDispatcher();main(["--mode","rpc",...process.argv.slice(2)]);
package/docs/cli.md CHANGED
@@ -1,5 +1,7 @@
1
1
  <a id="cli-and-modes-reference"></a>
2
2
 
3
+ Raga uses the `raga` executable. In the upstream command examples below, replace `pi` with `raga`. SDK package names, extension APIs, and documented protocol identifiers retain their upstream names.
4
+
3
5
  # Command Line
4
6
 
5
7
  This page documents Pi's built-in command-line commands and options. Run `pi --help` or append `--help` to a command for the exact interface in your installed version. The top-level help also includes options registered by loaded extensions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raga-cli",
3
- "version": "0.9.0",
3
+ "version": "0.10.1",
4
4
  "description": "Raga, a coding agent for long tasks with a persistent Python kernel (a fork of pi)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -151,9 +151,17 @@ async def rlm_query(
151
151
  *,
152
152
  read_only: bool = False,
153
153
  details: bool = False,
154
+ role: str | None = None,
155
+ seat: int | None = None,
154
156
  ) -> str | dict[str, Any]:
155
- """Run a child. Instance writers get isolated checkouts; details includes the change artifact."""
156
- payload = _drop_none(task=task, context=context, model=model, max_turns=max_turns, read_only=read_only)
157
+ """Run a child. Instance writers get isolated checkouts; details includes the change artifact.
158
+
159
+ Without `model`, `role` (and `seat` for panel roles) picks the model and reasoning budget assigned to
160
+ that role: the user's /agent-setup choices, or the pinned revision's roles in an instance session.
161
+ """
162
+ payload = _drop_none(
163
+ task=task, context=context, model=model, max_turns=max_turns, read_only=read_only, role=role, seat=seat
164
+ )
157
165
  result = await host_request({"type": "rlm.query", **payload})
158
166
  return result if details else result["answer"]
159
167
 
@@ -195,6 +195,42 @@
195
195
  "$ref": "#/$defs/KeybindingValue",
196
196
  "description": "Scroll viewport to bottom"
197
197
  },
198
+ "app.agents.details": {
199
+ "$ref": "#/$defs/KeybindingValue",
200
+ "description": "Agents dashboard: toggle the details panel"
201
+ },
202
+ "app.agents.tree": {
203
+ "$ref": "#/$defs/KeybindingValue",
204
+ "description": "Agents dashboard: toggle tree and flat views"
205
+ },
206
+ "app.agents.stop": {
207
+ "$ref": "#/$defs/KeybindingValue",
208
+ "description": "Agents dashboard: stop the selected subagent"
209
+ },
210
+ "app.agentSetup.inherit": {
211
+ "$ref": "#/$defs/KeybindingValue",
212
+ "description": "Agent setup: let the role inherit the parent model"
213
+ },
214
+ "app.agentSetup.addSeat": {
215
+ "$ref": "#/$defs/KeybindingValue",
216
+ "description": "Agent setup: add a seat to a panel role"
217
+ },
218
+ "app.agentSetup.removeSeat": {
219
+ "$ref": "#/$defs/KeybindingValue",
220
+ "description": "Agent setup: remove the selected panel seat"
221
+ },
222
+ "app.agentSetup.save": {
223
+ "$ref": "#/$defs/KeybindingValue",
224
+ "description": "Agent setup: validate and save role assignments"
225
+ },
226
+ "app.agents.first": {
227
+ "$ref": "#/$defs/KeybindingValue",
228
+ "description": "Agents dashboard: first subagent"
229
+ },
230
+ "app.agents.last": {
231
+ "$ref": "#/$defs/KeybindingValue",
232
+ "description": "Agents dashboard: last subagent"
233
+ },
198
234
  "app.diff.commits": {
199
235
  "$ref": "#/$defs/KeybindingValue",
200
236
  "description": "Diff dashboard: browse commits"
@@ -677,13 +677,72 @@
677
677
  }
678
678
  }
679
679
  },
680
+ "agentRoles": {
681
+ "type": "object",
682
+ "properties": {
683
+ "budget": {
684
+ "anyOf": [
685
+ {
686
+ "type": "string",
687
+ "const": "unlimited"
688
+ },
689
+ {
690
+ "type": "string",
691
+ "const": "large"
692
+ },
693
+ {
694
+ "type": "string",
695
+ "const": "medium"
696
+ },
697
+ {
698
+ "type": "string",
699
+ "const": "small"
700
+ }
701
+ ],
702
+ "description": "Reasoning budget for children launched by role: unlimited = xhigh, large = high, medium = medium, small = low thinking. Applies only to roles with an assigned model."
703
+ },
704
+ "roles": {
705
+ "type": "object",
706
+ "patternProperties": {
707
+ "^.*$": {
708
+ "anyOf": [
709
+ {
710
+ "anyOf": [
711
+ {
712
+ "type": "string"
713
+ },
714
+ {
715
+ "type": "null"
716
+ }
717
+ ]
718
+ },
719
+ {
720
+ "type": "array",
721
+ "items": {
722
+ "anyOf": [
723
+ {
724
+ "type": "string"
725
+ },
726
+ {
727
+ "type": "null"
728
+ }
729
+ ]
730
+ }
731
+ }
732
+ ]
733
+ }
734
+ },
735
+ "description": "Model per subagent role, set with /agent-setup. A value is \"provider/id\", \"inherit\" or null (the parent's model). Panel roles take a list with one entry per seat. Instance sessions use their pinned agents/model-roles.json instead."
736
+ }
737
+ }
738
+ },
680
739
  "sessionDir": {
681
740
  "type": "string",
682
741
  "description": "Custom session storage directory, in the same format as the --session-dir CLI flag."
683
742
  },
684
743
  "httpProxy": {
685
744
  "type": "string",
686
- "description": "Proxy URL applied as HTTP_PROXY and HTTPS_PROXY for Pi-managed HTTP clients."
745
+ "description": "Proxy URL applied as HTTP_PROXY and HTTPS_PROXY for application-managed HTTP clients."
687
746
  },
688
747
  "httpIdleTimeoutMs": {
689
748
  "anyOf": [
@@ -343,8 +343,8 @@
343
343
  "additionalProperties": false
344
344
  }
345
345
  },
346
- "title": "Pi Coding Agent Theme",
347
- "description": "Theme schema for Pi coding agent",
346
+ "title": "Coding Agent Theme",
347
+ "description": "Theme schema for the coding agent",
348
348
  "additionalProperties": false,
349
349
  "$defs": {
350
350
  "ColorValue": {
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{AgentSession,AgentSessionRuntime,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,InstanceMemory,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,NoMistakesBackend,OAuthSelectorComponent,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,SkillInvocationMessageComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,VIRTUAL_MODEL_STATE_ENTRY,activateRevision,buildContextEntries,buildSessionContext,buildSessionProjection,calculateContextTokens,checkSandbox,collectEntriesForBranchSummary,commitCandidate,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCandidate,createCodemodeExtension,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createMcpExtension,createMemoryService,createPowerShellTool,createPowerShellToolDefinition,createProxyMemoryService,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createToolSearchExtension,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getBundledHarnessPath,getCandidate,getLastAssistantUsage,getLatestCompactionEntry,getNoMistakesBackend,handleMemoryProxyRequest,initializeInstance,inspectBundledSkills,inspectCandidate,instancePaths,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,listRevisions,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateProjectConfig,migrateSessionEntries,openInstance,parseArgs,parseFrontmatter,parseSessionEntries,parseSkillBlock,prepareBranchEntries,proposeSkill,readInstance,readOnlyMemoryService,refineInstance,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,rollbackInstance,runModelCheckpoint,runModelRefinement,runPrintMode,runRpcMode,sandboxCommand,selectMemoryService,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,validateSkill,verifySkillRevision,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunk-F7LFZTHT.js";import{DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,formatReadLineRange,formatSize,truncateHead,truncateLine,truncateTail,truncateToVisualLines}from"./chunk-NP6TH6UT.js";import{ArminComponent}from"./chunk-JQDZ4Z7L.js";import{Container,SelectList,Theme,getAvailableThemes,getLanguageFromPath,getMarkdownTheme,getSelectListTheme,getSettingsListTheme,highlightCode,initTheme,keyHint,keyText,rawKeyHint}from"./chunk-ENUUAC3O.js";import{ProjectTrustStore,hasTrustRequiringProjectResources}from"./chunk-RP2WKNT7.js";import{readStoredCredential}from"./chunk-RFPFZTK2.js";import{getPowerShellConfig,getShellConfig}from"./chunk-P2QCWBFM.js";import{CONFIG_DIR_NAME,PROJECT_CONFIG_DIR_NAME,VERSION,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath}from"./chunk-KNY3PXQI.js";import{__export}from"./chunk-JXWJOIH4.js";var dist_exports={};__export(dist_exports,{AgentSession:()=>AgentSession,AgentSessionRuntime:()=>AgentSessionRuntime,ArminComponent:()=>ArminComponent,AssistantMessageComponent:()=>AssistantMessageComponent,BashExecutionComponent:()=>BashExecutionComponent,BorderedLoader:()=>BorderedLoader,BranchSummaryMessageComponent:()=>BranchSummaryMessageComponent,CONFIG_DIR_NAME:()=>CONFIG_DIR_NAME,CURRENT_SESSION_VERSION:()=>CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent:()=>CompactionSummaryMessageComponent,CredentialSynchronizationError:()=>CredentialSynchronizationError,CustomEditor:()=>CustomEditor,CustomMessageComponent:()=>CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS:()=>DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES:()=>DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES:()=>DEFAULT_MAX_LINES,DefaultPackageManager:()=>DefaultPackageManager,DefaultResourceLoader:()=>DefaultResourceLoader,DynamicBorder:()=>DynamicBorder,ExtensionEditorComponent:()=>ExtensionEditorComponent,ExtensionInputComponent:()=>ExtensionInputComponent,ExtensionRunner:()=>ExtensionRunner,ExtensionSelectorComponent:()=>ExtensionSelectorComponent,FooterComponent:()=>FooterComponent,InstanceMemory:()=>InstanceMemory,InteractiveMode:()=>InteractiveMode,LoginDialogComponent:()=>LoginDialogComponent,ModelRegistry:()=>ModelRegistry,ModelRuntime:()=>ModelRuntime,ModelSelectorComponent:()=>ModelSelectorComponent,NoMistakesBackend:()=>NoMistakesBackend,OAuthSelectorComponent:()=>OAuthSelectorComponent,PROJECT_CONFIG_DIR_NAME:()=>PROJECT_CONFIG_DIR_NAME,ProjectTrustStore:()=>ProjectTrustStore,RpcClient:()=>RpcClient,SessionManager:()=>SessionManager,SessionSelectorComponent:()=>SessionSelectorComponent,SettingsManager:()=>SettingsManager,SettingsSelectorComponent:()=>SettingsSelectorComponent,ShowImagesSelectorComponent:()=>ShowImagesSelectorComponent,SkillInvocationMessageComponent:()=>SkillInvocationMessageComponent,Theme:()=>Theme,ThemeSelectorComponent:()=>ThemeSelectorComponent,ThinkingSelectorComponent:()=>ThinkingSelectorComponent,ToolExecutionComponent:()=>ToolExecutionComponent,TreeSelectorComponent:()=>TreeSelectorComponent,UserMessageComponent:()=>UserMessageComponent,UserMessageSelectorComponent:()=>UserMessageSelectorComponent,VERSION:()=>VERSION,VIRTUAL_MODEL_STATE_ENTRY:()=>VIRTUAL_MODEL_STATE_ENTRY,activateRevision:()=>activateRevision,buildContextEntries:()=>buildContextEntries,buildSessionContext:()=>buildSessionContext,buildSessionProjection:()=>buildSessionProjection,calculateContextTokens:()=>calculateContextTokens,checkSandbox:()=>checkSandbox,collectEntriesForBranchSummary:()=>collectEntriesForBranchSummary,commitCandidate:()=>commitCandidate,compact:()=>compact,convertToLlm:()=>convertToLlm,convertToPng:()=>convertToPng,copyToClipboard:()=>copyToClipboard,createAgentSession:()=>createAgentSession,createAgentSessionFromServices:()=>createAgentSessionFromServices,createAgentSessionRuntime:()=>createAgentSessionRuntime,createAgentSessionServices:()=>createAgentSessionServices,createBashTool:()=>createBashTool,createBashToolDefinition:()=>createBashToolDefinition,createCandidate:()=>createCandidate,createCodemodeExtension:()=>createCodemodeExtension,createCodingTools:()=>createCodingTools,createEditTool:()=>createEditTool,createEditToolDefinition:()=>createEditToolDefinition,createEventBus:()=>createEventBus,createExtensionRuntime:()=>createExtensionRuntime,createFindTool:()=>createFindTool,createFindToolDefinition:()=>createFindToolDefinition,createGrepTool:()=>createGrepTool,createGrepToolDefinition:()=>createGrepToolDefinition,createLocalBashOperations:()=>createLocalBashOperations,createLocalPowerShellOperations:()=>createLocalPowerShellOperations,createLsTool:()=>createLsTool,createLsToolDefinition:()=>createLsToolDefinition,createMcpExtension:()=>createMcpExtension,createMemoryService:()=>createMemoryService,createPowerShellTool:()=>createPowerShellTool,createPowerShellToolDefinition:()=>createPowerShellToolDefinition,createProxyMemoryService:()=>createProxyMemoryService,createReadOnlyTools:()=>createReadOnlyTools,createReadTool:()=>createReadTool,createReadToolDefinition:()=>createReadToolDefinition,createSyntheticSourceInfo:()=>createSyntheticSourceInfo,createToolSearchExtension:()=>createToolSearchExtension,createWriteTool:()=>createWriteTool,createWriteToolDefinition:()=>createWriteToolDefinition,defineTool:()=>defineTool,detectSupportedImageMimeTypeFromFile:()=>detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions:()=>discoverAndLoadExtensions,estimateTokens:()=>estimateTokens,findCutPoint:()=>findCutPoint,findTurnStartIndex:()=>findTurnStartIndex,formatDimensionNote:()=>formatDimensionNote,formatReadLineRange:()=>formatReadLineRange,formatSize:()=>formatSize,formatSkillsForPrompt:()=>formatSkillsForPrompt,generateBranchSummary:()=>generateBranchSummary,generateDiffString:()=>generateDiffString,generateSummary:()=>generateSummary,generateSummaryWithUsage:()=>generateSummaryWithUsage,generateUnifiedPatch:()=>generateUnifiedPatch,getAgentDir:()=>getAgentDir,getBundledHarnessPath:()=>getBundledHarnessPath,getCandidate:()=>getCandidate,getDocsPath:()=>getDocsPath,getExamplesPath:()=>getExamplesPath,getLanguageFromPath:()=>getLanguageFromPath,getLastAssistantUsage:()=>getLastAssistantUsage,getLatestCompactionEntry:()=>getLatestCompactionEntry,getMarkdownTheme:()=>getMarkdownTheme,getNoMistakesBackend:()=>getNoMistakesBackend,getPackageDir:()=>getPackageDir,getPowerShellConfig:()=>getPowerShellConfig,getReadmePath:()=>getReadmePath,getSelectListTheme:()=>getSelectListTheme,getSettingsListTheme:()=>getSettingsListTheme,getShellConfig:()=>getShellConfig,handleMemoryProxyRequest:()=>handleMemoryProxyRequest,hasTrustRequiringProjectResources:()=>hasTrustRequiringProjectResources,highlightCode:()=>highlightCode,initTheme:()=>initTheme,initializeInstance:()=>initializeInstance,inspectBundledSkills:()=>inspectBundledSkills,inspectCandidate:()=>inspectCandidate,instancePaths:()=>instancePaths,isBashToolResult:()=>isBashToolResult,isEditToolResult:()=>isEditToolResult,isFindToolResult:()=>isFindToolResult,isGrepToolResult:()=>isGrepToolResult,isLsToolResult:()=>isLsToolResult,isPowerShellToolResult:()=>isPowerShellToolResult,isReadToolResult:()=>isReadToolResult,isToolCallEventType:()=>isToolCallEventType,isWriteToolResult:()=>isWriteToolResult,keyHint:()=>keyHint,keyText:()=>keyText,listRevisions:()=>listRevisions,loadProjectContextFiles:()=>loadProjectContextFiles,loadSkills:()=>loadSkills,loadSkillsFromDir:()=>loadSkillsFromDir,main:()=>main,migrateProjectConfig:()=>migrateProjectConfig,migrateSessionEntries:()=>migrateSessionEntries,openInstance:()=>openInstance,parseArgs:()=>parseArgs,parseFrontmatter:()=>parseFrontmatter,parseSessionEntries:()=>parseSessionEntries,parseSkillBlock:()=>parseSkillBlock,prepareBranchEntries:()=>prepareBranchEntries,proposeSkill:()=>proposeSkill,rawKeyHint:()=>rawKeyHint,readInstance:()=>readInstance,readOnlyMemoryService:()=>readOnlyMemoryService,readStoredCredential:()=>readStoredCredential,refineInstance:()=>refineInstance,renderDiff:()=>renderDiff,resizeImage:()=>resizeImage,resolveCliModel:()=>resolveCliModel,resolveModelScopeWithDiagnostics:()=>resolveModelScopeWithDiagnostics,rollbackInstance:()=>rollbackInstance,runModelCheckpoint:()=>runModelCheckpoint,runModelRefinement:()=>runModelRefinement,runPrintMode:()=>runPrintMode,runRpcMode:()=>runRpcMode,sandboxCommand:()=>sandboxCommand,selectMemoryService:()=>selectMemoryService,serializeConversation:()=>serializeConversation,sessionEntryToContextMessages:()=>sessionEntryToContextMessages,shouldCompact:()=>shouldCompact,stripFrontmatter:()=>stripFrontmatter,truncateHead:()=>truncateHead,truncateLine:()=>truncateLine,truncateTail:()=>truncateTail,truncateToVisualLines:()=>truncateToVisualLines,validateSkill:()=>validateSkill,verifySkillRevision:()=>verifySkillRevision,withFileMutationQueue:()=>withFileMutationQueue,wrapRegisteredTool:()=>wrapRegisteredTool,wrapRegisteredTools:()=>wrapRegisteredTools});var SHOW_IMAGES_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ShowImagesSelectorComponent=class extends Container{selectList;constructor(currentValue,onSelect,onCancel){super();let items=[{value:"yes",label:"Yes",description:"Show images inline in terminal"},{value:"no",label:"No",description:"Show text placeholder instead"}];this.addChild(new DynamicBorder),this.selectList=new SelectList(items,5,getSelectListTheme(),SHOW_IMAGES_SELECT_LIST_LAYOUT),this.selectList.setSelectedIndex(currentValue?0:1),this.selectList.onSelect=item=>{onSelect(item.value==="yes")},this.selectList.onCancel=()=>{onCancel()},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};var THEME_SELECT_LIST_LAYOUT={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},ThemeSelectorComponent=class extends Container{selectList;onPreview;constructor(currentTheme,onSelect,onCancel,onPreview){super(),this.onPreview=onPreview;let themes=getAvailableThemes(),themeItems=themes.map(name=>({value:name,label:name,description:name===currentTheme?"(current)":void 0}));this.addChild(new DynamicBorder),this.selectList=new SelectList(themeItems,10,getSelectListTheme(),THEME_SELECT_LIST_LAYOUT);let currentIndex=themes.indexOf(currentTheme);currentIndex!==-1&&this.selectList.setSelectedIndex(currentIndex),this.selectList.onSelect=item=>{onSelect(item.value)},this.selectList.onCancel=()=>{onCancel()},this.selectList.onSelectionChange=item=>{this.onPreview(item.value)},this.addChild(this.selectList),this.addChild(new DynamicBorder)}getSelectList(){return this.selectList}};export{ShowImagesSelectorComponent,ThemeSelectorComponent,dist_exports};