opencode-navigator 0.21.0 → 0.21.2
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/CHANGELOG.md +10 -0
- package/PROVIDERS.md +1 -1
- package/README.md +25 -18
- package/dist/provider-limits.js +352 -274
- package/dist/server.js +2 -2
- package/dist/tui.js +94 -73
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -50,7 +50,7 @@ var NavigatorQuotaRpc={id:"opencode-navigator.quotas",methods:{read:{input:model
|
|
|
50
50
|
}}}};
|
|
51
51
|
function normalizeProviderQuota(snapshot){if(!snapshot.providerId||!snapshot.providerName||!snapshot.model.providerID||!snapshot.model.modelID||!snapshot.model.sessionID||!Number.isFinite(snapshot.fetchedAt)){throw new Error("Invalid provider quota identity")
|
|
52
52
|
}
|
|
53
|
-
const windows=snapshot.windows.map((window)=>{if(!window.id||!window.label||window.modelID!==snapshot.model.modelID||!window.unit||window.used!==undefined&&!Number.isFinite(window.used)||window.remaining!==undefined&&!Number.isFinite(window.remaining)||window.used===undefined&&window.remaining===undefined&&window.total===undefined||window.total!==undefined&&(!Number.isFinite(window.total)||window.total<0)||window.durationMinutes!==undefined&&(!Number.isFinite(window.durationMinutes)||window.durationMinutes<0)||window.resetsAt!==undefined&&!Number.isFinite(window.resetsAt)){throw new Error("Quota window does not match the selected model or contains invalid values")
|
|
53
|
+
const windows=snapshot.windows.map((window)=>{if(!window.id||!window.label||window.scope!==undefined&&window.scope!=="account"&&window.scope!=="model"||(window.scope==="account"?!snapshot.accountId||window.modelID!==undefined:window.modelID!==snapshot.model.modelID)||!window.unit||window.used!==undefined&&!Number.isFinite(window.used)||window.remaining!==undefined&&!Number.isFinite(window.remaining)||window.used===undefined&&window.remaining===undefined&&window.total===undefined||window.total!==undefined&&(!Number.isFinite(window.total)||window.total<0)||window.durationMinutes!==undefined&&(!Number.isFinite(window.durationMinutes)||window.durationMinutes<0)||window.resetsAt!==undefined&&!Number.isFinite(window.resetsAt)){throw new Error("Quota window does not match the selected model or contains invalid values")
|
|
54
54
|
}
|
|
55
55
|
return{...window}})
|
|
56
56
|
const bankedResets=snapshot.bankedResets
|
|
@@ -60,7 +60,7 @@ return{...balance}})
|
|
|
60
60
|
if(bankedResets&&(!Number.isSafeInteger(bankedResets.availableCount)||bankedResets.availableCount<0)){throw new Error("Invalid banked reset count")
|
|
61
61
|
}
|
|
62
62
|
return{...snapshot,windows,...balances&&{balances},...bankedResets&&{bankedResets:{availableCount:bankedResets.availableCount,...bankedResets.credits&&{credits:[...bankedResets.credits]}}}}}
|
|
63
|
-
var rows=[["openai","OpenAI / Codex",["subscription","api-rate-limits"],"Codex account
|
|
63
|
+
var rows=[["openai","OpenAI / Codex",["subscription","api-rate-limits"],"Verified Codex account quota shared across models; HTTP response request/token limits for API connections.","https://developers.openai.com/api/docs/guides/rate-limits"],["anthropic","Anthropic / Claude",["api-rate-limits","configured-limits"],"Model HTTP headers; eligible organization/admin credentials can read configured model limits. Claude subscription windows are separate.","https://platform.claude.com/docs/en/manage-claude/rate-limits-api"],["openrouter","OpenRouter",["key-budget","account-balance"],"Inference-key budget; account credits require a management key. Free-model request limits apply only to free variants.","https://openrouter.ai/docs/api/api-reference/api-keys/get-current-api-key"],["deepseek","DeepSeek",["account-balance"],"Provider-reported USD/CNY available, granted and topped-up balances.","https://api-docs.deepseek.com/api/get-user-balance"],["moonshotai","Moonshot / Kimi API",["account-balance"],"International USD balances; coding subscriptions are a different product.","https://platform.moonshot.ai/docs/api/balance"],["moonshotai-cn","Moonshot / Kimi API China",["account-balance"],"China CNY balances; never reuse an international key against the China endpoint.","https://platform.moonshot.cn/docs/api/balance"],["minimax","MiniMax",["subscription","account-balance"],"Token Plan model rows/explicit percentages; official SDK balance response for pay-as-you-go keys.","https://platform.minimax.io/docs/token-plan/faq"],["minimax-cn","MiniMax China",["subscription","account-balance"],"Region-specific native Token Plan and SDK balance endpoints.","https://github.com/MiniMax-AI/cli/tree/main/src/sdk/quota"],["github-copilot","GitHub Copilot",["subscription"],"Official SDK token-scoped quota/model RPC; no direct copilot_internal calls or ambient CLI login.","https://github.com/github/copilot-sdk/blob/main/docs/features/usage-and-billing.md"],["groq","Groq",["api-rate-limits"],"Native model response headers: requests per day and tokens per minute.","https://console.groq.com/docs/rate-limits"],["fireworks-ai","Fireworks",["configured-limits","api-rate-limits"],"Native model token/second capacities and account monthly spend quota; GPU quotas are excluded.","https://docs.fireworks.ai/serverless/rate-limits"],["siliconflow","SiliconFlow",["account-balance"],"Native current-user balances; retain unknown currency when the API does not report it.","https://docs.siliconflow.com/en/api-reference/userinfo/get-user-info"],["siliconflow-cn","SiliconFlow China",["account-balance"],"Region-specific current-user balances; currency is unknown when the API omits it.","https://docs.siliconflow.cn/"],["novita-ai","Novita",["account-balance"],"Native current-user balances in 1/10000 USD.","https://novita.ai/docs/api-reference/basic-get-user-balance"],["poe","Poe",["account-balance"],"API account point balance; includes plan and add-on points, not session token usage.","https://creator.poe.com/docs/resources/usage-api"],["nano-gpt","NanoGPT",["account-balance","subscription"],"Native USD/Nano balance and documented subscription token windows; null/degraded counters remain unknown.","https://docs.nano-gpt.com/api-reference/endpoint/subscription-usage"],["aihubmix","AIHubMix",["account-balance"],"Current-account balance API needs a Manage Key; inference keys do not grant management access.","https://docs.aihubmix.com/en/api/CliEndpoints/get-self"],["azure","Azure OpenAI",["api-rate-limits"],"Remaining request/token headers for the actual deployment; no ChatGPT subscription or inferred cloud balance.","https://learn.microsoft.com/en-us/azure/ai-foundry/openai/quotas-limits"],["cerebras","Cerebras",["api-rate-limits"],"Only self-describing native counters actually returned for the selected model; console tier examples are not live quota.","https://inference-docs.cerebras.ai/support/rate-limits"],["mistral","Mistral",[],"Documented remaining header lacks a verified unit/window association; no inferred subscription balance.","https://docs.mistral.ai/resources/known-limitations"],["togetherai","Together AI",[],"Dynamic model limits expose retry intervals, not remaining quota; billing UI does not establish a remaining-credit API.","https://docs.together.ai/docs/rate-limits"],["xai","xAI / Grok",[],"Management billing needs separate team credentials; no verified portable remaining API for this inference connection.","https://docs.x.ai/"],["perplexity","Perplexity",[],"No verified remaining-credit API for an inference key. API credits, consumer subscriptions and Computer credits are distinct.","https://www.perplexity.ai/help-center/en/articles/10354847-api-payment-and-billing"],["google","Google Gemini",["configured-limits"],"Native model-matched QuotaFailure responses when provided; cloud quota permissions differ from an inference key.","https://ai.google.dev/gemini-api/docs/rate-limits"],["google-vertex","Google Vertex AI",["configured-limits"],"Native model-matched quota error details; cloud project/region management and dynamic shared quotas are separate.","https://cloud.google.com/vertex-ai/generative-ai/docs/quotas"],["amazon-bedrock","Amazon Bedrock",[],"Service Quotas/CloudWatch require cloud IAM/region/model mapping not exposed by a portable inference connection.","https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html"],["cloudflare-workers-ai","Cloudflare Workers AI",[],"Account analytics do not prove remaining free allowance; separate account management capability is required.","https://developers.cloudflare.com/workers-ai/platform/limits/"],["huggingface","Hugging Face Inference Providers",[],"Hub request quota is not an inference-model quota or inference-credit balance.","https://huggingface.co/docs/inference-providers/pricing"],["zai","Z.ai / GLM Coding Plan",[],"No verified external quota contract for monitor/dashboard APIs; private endpoints are excluded.","https://docs.z.ai/devpack/overview"],["kimi-for-coding","Kimi Code subscription",[],"Keep separate from Moonshot API balance; an external subscription usage contract/model mapping must be verified.","https://www.kimi.com/code/docs/en/"],["alibaba","Alibaba Cloud / Qwen / DashScope",[],"Cloud account/project billing permissions and model mapping are required; browser OAuth state is not a quota source.","https://www.alibabacloud.com/help/en/model-studio/"],["opencode","OpenCode Zen / Go",[],"Session token/cost statistics are not provider quota; no undocumented billing endpoints.","https://opencode.ai/docs/zen/"],["cursor","Cursor",[],"Consumer usage needs a supported external API; no cookie or credential-file integrations.","https://docs.cursor.com/"],["windsurf","Windsurf / Codeium",[],"Consumer plan windows need a supported external API; no private account endpoints.","https://docs.windsurf.com/"],["amp","Amp",[],"Product credits need a supported external account API; no cookie or local credential extraction.","https://ampcode.com/manual"],["ollama","Ollama",[],"Local inference has no provider subscription window; cloud products require their own account API.","https://docs.ollama.com/api"],["lmstudio","LM Studio",[],"Local inference has no provider subscription quota to read.","https://lmstudio.ai/docs/developer"],["nvidia","NVIDIA NIM / NGC",[],"Inference access does not identify cloud/trial NGC credit balance or self-hosted resource quota.","https://docs.nvidia.com/nim/"],["cohere","Cohere",[],"No verified native remaining-counter contract for this integration; static organization tier examples are not live quotas.","https://docs.cohere.com/docs/rate-limits"],["ai21","AI21",[],"No verified native remaining-counter contract or subscription balance endpoint for this integration.","https://docs.ai21.com/"],["replicate","Replicate",[],"Prediction cost is not remaining account credit; no inferred balance from execution cost.","https://replicate.com/docs/topics/billing"],["chutes","Chutes",[],"Current-user quota APIs exist, but their public schemas do not establish native units/model allowance semantics yet.","https://chutes.ai/docs/api-reference/users"],["requesty","Requesty",[],"Enterprise management key and key ID are required; dated usage reports alone are not remaining budget.","https://docs.requesty.ai/features/key-management-api"],["baseten","Baseten",[],"No independently verified portable remaining quota API for the configured inference connection.","https://docs.baseten.co/"],["modelscope","ModelScope",[],"No independently verified portable remaining quota API/model mapping for the selected connection.","https://opencode.ai/docs/providers/"],["nebius","Nebius",[],"Cloud billing/management access is separate from a plain inference credential.","https://docs.nebius.com/"],["vultr","Vultr",[],"Cloud management quota/billing permissions are separate from inference access.","https://docs.vultr.com/"],["v0","Vercel v0",[],"Consumer/product credits need their own documented external account API.","https://v0.dev/docs"]]
|
|
64
64
|
var PROVIDER_QUOTA_CAPABILITIES= rows.map(([id,name,sources,reason,url])=>({id,name,sources,reason,documentation:[url]}))
|
|
65
65
|
var aliases={fireworks:"fireworks-ai",novita:"novita-ai",moonshot:"moonshotai","minimax-coding-plan":"minimax","minimax-coding-plan-cn":"minimax-cn",together:"togetherai","silicon-flow":"siliconflow","github-copilot-enterprise":"github-copilot","google-vertex-anthropic":"google-vertex","z-ai":"zai",zhipuai:"zai",dashscope:"alibaba","alibaba-cn":"alibaba",qwen:"alibaba","opencode-go":"opencode","opencode-zen":"opencode",codeium:"windsurf","azure-cognitive-services":"azure"
|
|
66
66
|
}
|
package/dist/tui.js
CHANGED
|
@@ -3,7 +3,7 @@ import {insert as _$insert,setProp as _$setProp,createElement as _$createElement
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createEffect as createEffect14,createSignal as createSignal22,createMemo as createMemo13,createSignal as
|
|
6
|
+
import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createSignal as createSignal23,createEffect as createEffect14,createSignal as createSignal22,on,createMemo as createMemo13,createSignal as createSignal26,createMemo as createMemo12,For as For13,Show as Show14,Show as Show11,Show as Show12,createSignal as createSignal24,createContext as createContext3,useContext as useContext3,Show as Show13,createSignal as createSignal25,onCleanup as onCleanup17,Show as Show19,createSignal as createSignal27,untrack as untrack5,createSignal as createSignal28,createEffect as createEffect15,For as For14,Show as Show15,Show as Show16,Show as Show17,Show as Show18,For as For15,Show as Show21,createMemo as createMemo15,Show as Show20,createMemo as createMemo14,createSignal as createSignal29,createEffect as createEffect16,onCleanup as onCleanup18,For as For20,Match,Switch,createMemo as createMemo19,onCleanup as onCleanup22,For as For16,Show as Show22,createSignal as createSignal30,createEffect as createEffect17,createMemo as createMemo16,onCleanup as onCleanup19,untrack as untrack6,For as For18,Show as Show25,createEffect as createEffect18,createMemo as createMemo17,createSignal as createSignal31,onCleanup as onCleanup20,untrack as untrack7,For as For17,Show as Show24,Show as Show23,Show as Show29,createEffect as createEffect19,createMemo as createMemo18,createSignal as createSignal32,onCleanup as onCleanup21,untrack as untrack8,For as For19,Show as Show27,Show as Show26,Show as Show28,createEffect as createEffect20,createMemo as createMemo20,onCleanup as onCleanup23,untrack as untrack9,Show as Show30,createMemo as createMemo21,onCleanup as onCleanup24,createEffect as createEffect21,onCleanup as onCleanup25,untrack as untrack10,createSignal as createSignal33,onCleanup as onCleanup26,onMount as onMount7} from "solid-js"
|
|
7
7
|
var SIDEBAR_SECTIONS=["limits","todo","subagents","skills","quick_actions","lsp","mcp"]
|
|
8
8
|
var QUICK_ACTION_IDS=["session.rename","session.timeline","session.copy","session.export","session.compact","session.list","session.new","session.fork","messages.copy","session.first","session.last","session.messages_last_user","session.message.next","session.message.previous","permission.mode"]
|
|
9
9
|
function preferencesScope(path){return path.worktree||path.directory||"global"
|
|
@@ -5464,46 +5464,67 @@ return _el$
|
|
|
5464
5464
|
|
|
5465
5465
|
|
|
5466
5466
|
|
|
5467
|
+
|
|
5468
|
+
|
|
5469
|
+
|
|
5470
|
+
|
|
5471
|
+
|
|
5472
|
+
|
|
5473
|
+
|
|
5467
5474
|
var graphemes=new Intl.Segmenter(undefined,{granularity:"grapheme"
|
|
5468
5475
|
})
|
|
5469
|
-
function truncateEnd(value,
|
|
5476
|
+
function truncateEnd(value,width){if(Bun.stringWidth(value)<=width)
|
|
5470
5477
|
return value
|
|
5471
|
-
if(
|
|
5478
|
+
if(width<=0)
|
|
5472
5479
|
return ""
|
|
5473
|
-
const ellipsis=
|
|
5474
|
-
const contentWidth=maxWidth-Bun.stringWidth(ellipsis)
|
|
5480
|
+
const ellipsis=width>=3?"...":".".repeat(width)
|
|
5475
5481
|
let result=""
|
|
5476
5482
|
for(const{segment
|
|
5477
|
-
} of graphemes.segment(value)){if(Bun.stringWidth(result + segment)>
|
|
5483
|
+
} of graphemes.segment(value)){if(Bun.stringWidth(result + segment)>width-ellipsis.length)
|
|
5478
5484
|
break
|
|
5479
5485
|
result += segment
|
|
5480
5486
|
}
|
|
5481
5487
|
return result + ellipsis
|
|
5482
5488
|
}
|
|
5489
|
+
function SectionHeaderControl(props){const [width,setWidth]=createSignal22()
|
|
5490
|
+
const control=useSidebarItem(props.api,props.interaction,{id:props.action.id,position:()=>props.position,disabled:props.action.disabled,activate:props.action.onActivate
|
|
5491
|
+
},()=>props.api.theme.current.accent,"control")
|
|
5492
|
+
createEffect14(on(()=>[props.action.label(),props.resetWidth],()=>setWidth(undefined)))
|
|
5493
|
+
const label=()=>width()===undefined||props.iconOnly?props.action.label():truncateEnd(props.action.label(),width()-2)
|
|
5494
|
+
return _$createComponent(SelectionBox,{ref:(node)=>control.ref(node),get id(){return props.action.id
|
|
5495
|
+
},get iconOnly(){return props.iconOnly
|
|
5496
|
+
},get width(){return props.iconOnly?3:undefined
|
|
5497
|
+
},get flexShrink(){return props.iconOnly?0:1
|
|
5498
|
+
},minWidth:3,overflow:"hidden",get alignItems(){return props.iconOnly?"center":undefined
|
|
5499
|
+
},get backgroundColor(){return control.backgroundColor()
|
|
5500
|
+
},onSizeChange:function(){setWidth(this.width)
|
|
5501
|
+
},get onMouseOver(){return control.onMouseOver
|
|
5502
|
+
},get onMouseOut(){return control.onMouseOut
|
|
5503
|
+
},onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
5504
|
+
control.activate(event)
|
|
5505
|
+
},get children(){var _el$=_$createElement("text")
|
|
5506
|
+
_$setProp(_el$,"wrapMode","none")
|
|
5507
|
+
_$setProp(_el$,"height",1)
|
|
5508
|
+
_$insert(_el$,label)
|
|
5509
|
+
_$effect((_$p)=>_$setProp(_el$,"fg",control.foregroundColor(),_$p))
|
|
5510
|
+
return _el$
|
|
5511
|
+
}})
|
|
5512
|
+
}
|
|
5483
5513
|
function Section(props){const icons=useIcons()
|
|
5484
|
-
const [
|
|
5514
|
+
const [headerWidth,setHeaderWidth]=createSignal23(0)
|
|
5485
5515
|
const icon=()=>props.section?icons.section(props.section):props.icon
|
|
5486
5516
|
const theme=()=>props.api.theme.current
|
|
5487
5517
|
const item=useSidebarItem(props.api,props.interaction,{id:props.sectionId??`section.${props.title}`,position:()=>({section:props.navigationSection??0,row:0,column:0
|
|
5488
5518
|
}),activate:props.onToggle
|
|
5489
5519
|
})
|
|
5490
|
-
const action=props.headerAction?useSidebarItem(props.api,props.interaction,{id:props.headerAction.id,position:()=>({section:props.navigationSection??0,row:0,column:1
|
|
5491
|
-
}),disabled:props.headerAction.disabled,activate:props.headerAction.onActivate
|
|
5492
|
-
},()=>theme().accent,"control"):undefined
|
|
5493
|
-
createEffect14(()=>{props.headerAction?.label()
|
|
5494
|
-
setActionWidth(undefined)
|
|
5495
|
-
})
|
|
5496
|
-
const actionLabel=()=>{const label=props.headerAction?.label()??""
|
|
5497
|
-
const width=actionWidth()
|
|
5498
|
-
return width===undefined?label:truncateEnd(label,width-2)
|
|
5499
|
-
}
|
|
5500
5520
|
return(()=>{var _el$=_$createElement("box")
|
|
5501
5521
|
_$setProp(_el$,"gap",1)
|
|
5502
5522
|
_$insert(_el$,_$createComponent(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.sectionId
|
|
5503
5523
|
},flexDirection:"row",height:1,justifyContent:"space-between",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return item.backgroundColor()
|
|
5504
5524
|
},get onMouseOver(){return item.onMouseOver
|
|
5505
5525
|
},get onMouseOut(){return item.onMouseOut
|
|
5506
|
-
},onMouseDown:(event)=>item.activate(event),onSizeChange:()
|
|
5526
|
+
},onMouseDown:(event)=>item.activate(event),onSizeChange:function(){setHeaderWidth(this.width)
|
|
5527
|
+
},get children(){return [(()=>{var _el$2=_$createElement("text"),_el$3=_$createElement("span"),_el$4=_$createTextNode(` `),_el$5=_$createElement("span"),_el$6=_$createElement("b")
|
|
5507
5528
|
_$insertNode(_el$2,_el$3)
|
|
5508
5529
|
_$insertNode(_el$2,_el$4)
|
|
5509
5530
|
_$insertNode(_el$2,_el$5)
|
|
@@ -5525,28 +5546,23 @@ return _p$
|
|
|
5525
5546
|
},{e:undefined,t:undefined,a:undefined
|
|
5526
5547
|
})
|
|
5527
5548
|
return _el$2
|
|
5528
|
-
})(),(()=>{var _el$7=_$createElement("box")
|
|
5529
|
-
_$insertNode(_el$7,_el$8)
|
|
5549
|
+
})(),(()=>{var _el$7=_$createElement("box")
|
|
5530
5550
|
_$setProp(_el$7,"flexDirection","row")
|
|
5531
5551
|
_$setProp(_el$7,"gap",1)
|
|
5532
5552
|
_$setProp(_el$7,"flexGrow",1)
|
|
5533
5553
|
_$setProp(_el$7,"minWidth",0)
|
|
5534
5554
|
_$setProp(_el$7,"justifyContent","flex-end")
|
|
5535
|
-
_$insert(_el$7,
|
|
5536
|
-
|
|
5537
|
-
},
|
|
5538
|
-
},get
|
|
5539
|
-
},get
|
|
5540
|
-
},
|
|
5541
|
-
|
|
5542
|
-
}
|
|
5543
|
-
|
|
5544
|
-
_$
|
|
5545
|
-
_$
|
|
5546
|
-
_$effect((_$p)=>_$setProp(_el$9,"fg",control().foregroundColor(),_$p))
|
|
5547
|
-
return _el$9
|
|
5548
|
-
}})
|
|
5549
|
-
}),_el$8)
|
|
5555
|
+
_$insert(_el$7,()=>props.headerControls,null)
|
|
5556
|
+
_$insert(_el$7,_$createComponent(Show9,{get when(){return props.headerAction
|
|
5557
|
+
},children:(action)=>_$createComponent(SectionHeaderControl,{get api(){return props.api
|
|
5558
|
+
},get interaction(){return props.interaction
|
|
5559
|
+
},get action(){return action()
|
|
5560
|
+
},get resetWidth(){return headerWidth()
|
|
5561
|
+
},get position(){return{section:props.navigationSection??0,row:0,column:1
|
|
5562
|
+
}}})
|
|
5563
|
+
}),null)
|
|
5564
|
+
_$insert(_el$7,_$createComponent(Show9,{get when(){return props.summary
|
|
5565
|
+
},get children(){var _el$8=_$createElement("text")
|
|
5550
5566
|
_$setProp(_el$8,"wrapMode","none")
|
|
5551
5567
|
_$setProp(_el$8,"truncate",true)
|
|
5552
5568
|
_$setProp(_el$8,"height",1)
|
|
@@ -5557,6 +5573,8 @@ _v$5!==_p$.t&&(_p$.t=_$setProp(_el$8,"flexShrink",_v$5,_p$.t))
|
|
|
5557
5573
|
return _p$
|
|
5558
5574
|
},{e:undefined,t:undefined
|
|
5559
5575
|
})
|
|
5576
|
+
return _el$8
|
|
5577
|
+
}}),null)
|
|
5560
5578
|
return _el$7
|
|
5561
5579
|
})()]
|
|
5562
5580
|
}}),null)
|
|
@@ -5851,8 +5869,8 @@ return _el$5
|
|
|
5851
5869
|
function createSidebarBookmark(input){const{api,interaction,row,position,favorite,disabled,onToggle
|
|
5852
5870
|
}=input
|
|
5853
5871
|
const id=`${input.id}.favorite`
|
|
5854
|
-
const [rowHovered,setRowHovered]=
|
|
5855
|
-
const [controlHovered,setControlHovered]=
|
|
5872
|
+
const [rowHovered,setRowHovered]=createSignal24(false)
|
|
5873
|
+
const [controlHovered,setControlHovered]=createSignal24(false)
|
|
5856
5874
|
const control=useSidebarItem(api,interaction,{id,position:()=>({...position(),column:0
|
|
5857
5875
|
}),disabled,activate:()=>{onToggle()
|
|
5858
5876
|
queueMicrotask(()=>interaction?.select(id))
|
|
@@ -5968,7 +5986,7 @@ return _el$2
|
|
|
5968
5986
|
function SectionFilter(props){const icons=useIcons()
|
|
5969
5987
|
let input
|
|
5970
5988
|
let unregisterInput
|
|
5971
|
-
const [inputFocused,setInputFocused]=
|
|
5989
|
+
const [inputFocused,setInputFocused]=createSignal25(false)
|
|
5972
5990
|
const theme=()=>props.api.theme.current
|
|
5973
5991
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id??`filter.${props.placeholder}`,position:()=>props.position??{section:0,row:0,column:0
|
|
5974
5992
|
},activate:()=>{if(!input)
|
|
@@ -6098,7 +6116,7 @@ return _el$
|
|
|
6098
6116
|
}})
|
|
6099
6117
|
}
|
|
6100
6118
|
function McpSection(props){const icons=useIcons()
|
|
6101
|
-
const [query,setQuery]=
|
|
6119
|
+
const [query,setQuery]=createSignal26("")
|
|
6102
6120
|
const model=createMcpSectionModel(props,query)
|
|
6103
6121
|
const navigationSection=()=>props.navigationSection??6
|
|
6104
6122
|
const summary=createMemo13(()=>`${model.active()}/${model.list().length}${model.errors() ? ` \xB7 ${model.errors()} ${icons.icon("error")}` : ""}`)
|
|
@@ -6186,6 +6204,9 @@ return _$createComponent(SectionWithHeaderAction,{get api(){return props.api
|
|
|
6186
6204
|
|
|
6187
6205
|
|
|
6188
6206
|
|
|
6207
|
+
|
|
6208
|
+
|
|
6209
|
+
|
|
6189
6210
|
|
|
6190
6211
|
|
|
6191
6212
|
|
|
@@ -6238,7 +6259,7 @@ _$insert(_el$2,()=>props.action.label)
|
|
|
6238
6259
|
_$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
|
|
6239
6260
|
return _el$2
|
|
6240
6261
|
})()
|
|
6241
|
-
},get metadata(){return _$createComponent(
|
|
6262
|
+
},get metadata(){return _$createComponent(Show20,{get when(){return visibleShortcut()
|
|
6242
6263
|
},children:(value)=>(()=>{var _el$3=_$createElement("text")
|
|
6243
6264
|
_$setProp(_el$3,"flexShrink",0)
|
|
6244
6265
|
_$setProp(_el$3,"wrapMode","none")
|
|
@@ -6247,7 +6268,7 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
|
|
|
6247
6268
|
return _el$3
|
|
6248
6269
|
})()
|
|
6249
6270
|
})
|
|
6250
|
-
},get details(){return _$createComponent(
|
|
6271
|
+
},get details(){return _$createComponent(Show20,{get when(){return props.disabled
|
|
6251
6272
|
},children:(reason)=>(()=>{var _el$4=_$createElement("text")
|
|
6252
6273
|
_$setProp(_el$4,"wrapMode","word")
|
|
6253
6274
|
_$insert(_el$4,reason)
|
|
@@ -6275,7 +6296,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6275
6296
|
},onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
|
|
6276
6297
|
},get interaction(){return props.interaction
|
|
6277
6298
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6278
|
-
},get children(){return [_$createComponent(
|
|
6299
|
+
},get children(){return [_$createComponent(Show21,{get when(){return actions().length===0
|
|
6279
6300
|
},get children(){var _el$=_$createElement("text")
|
|
6280
6301
|
_$insertNode(_el$,_$createTextNode(`No quick actions selected`))
|
|
6281
6302
|
_$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6522,7 +6543,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6522
6543
|
}},get query(){return query()
|
|
6523
6544
|
},placeholder:"Filter skills...",onInput:setQuery
|
|
6524
6545
|
}),null)
|
|
6525
|
-
_$insert(_el$,_$createComponent(
|
|
6546
|
+
_$insert(_el$,_$createComponent(Show22,{get when(){return model.filtered().length>0
|
|
6526
6547
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
6527
6548
|
_$insertNode(_el$2,_$createTextNode(`No matching skills`))
|
|
6528
6549
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6533,7 +6554,7 @@ return _el$2
|
|
|
6533
6554
|
},get grouped(){return model.grouped
|
|
6534
6555
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6535
6556
|
},get children(){return _$createComponent(For16,{get each(){return model.visibility.visible()
|
|
6536
|
-
},children:(item,index)=>[_$createComponent(
|
|
6557
|
+
},children:(item,index)=>[_$createComponent(Show22,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
|
|
6537
6558
|
},get children(){var _el$4=_$createElement("text")
|
|
6538
6559
|
_$setProp(_el$4,"height",1)
|
|
6539
6560
|
_$setProp(_el$4,"wrapMode","none")
|
|
@@ -6660,7 +6681,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
|
|
|
6660
6681
|
_$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
|
|
6661
6682
|
return _el$3
|
|
6662
6683
|
})()
|
|
6663
|
-
},get details(){return [_$createComponent(
|
|
6684
|
+
},get details(){return [_$createComponent(Show23,{get when(){return props.item.run?.errorMessage
|
|
6664
6685
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
|
|
6665
6686
|
_$insertNode(_el$4,_el$5)
|
|
6666
6687
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -6668,12 +6689,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
|
|
|
6668
6689
|
_$insert(_el$4,()=>props.item.run?.errorMessage,null)
|
|
6669
6690
|
_$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
|
|
6670
6691
|
return _el$4
|
|
6671
|
-
}}),_$createComponent(
|
|
6692
|
+
}}),_$createComponent(Show23,{get when(){return props.item.unavailable
|
|
6672
6693
|
},get children(){var _el$6=_$createElement("text")
|
|
6673
6694
|
_$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
|
|
6674
6695
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
|
|
6675
6696
|
return _el$6
|
|
6676
|
-
}}),_$createComponent(
|
|
6697
|
+
}}),_$createComponent(Show23,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
|
|
6677
6698
|
},children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
|
|
6678
6699
|
_$insertNode(_el$0,_el$1)
|
|
6679
6700
|
_$insertNode(_el$0,_el$10)
|
|
@@ -6685,7 +6706,7 @@ _$insert(_el$0,()=>status().message,null)
|
|
|
6685
6706
|
_$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
|
|
6686
6707
|
return _el$0
|
|
6687
6708
|
})()
|
|
6688
|
-
}),_$createComponent(
|
|
6709
|
+
}),_$createComponent(Show23,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
|
|
6689
6710
|
},get children(){var _el$8=_$createElement("text")
|
|
6690
6711
|
_$insertNode(_el$8,_$createTextNode(`Finished`))
|
|
6691
6712
|
_$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
|
|
@@ -6701,7 +6722,7 @@ function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){
|
|
|
6701
6722
|
const item=()=>props.itemById(id)??initial
|
|
6702
6723
|
const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
|
|
6703
6724
|
return(()=>{var _el$=_$createElement("box")
|
|
6704
|
-
_$insert(_el$,_$createComponent(
|
|
6725
|
+
_$insert(_el$,_$createComponent(Show24,{get when(){return startsGroup()
|
|
6705
6726
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
|
|
6706
6727
|
_$insertNode(_el$2,_el$3)
|
|
6707
6728
|
_$insert(_el$3,()=>item().group)
|
|
@@ -6727,7 +6748,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6727
6748
|
},sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
|
|
6728
6749
|
},title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
|
|
6729
6750
|
},get open(){return props.preferences.expanded().subagents
|
|
6730
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(
|
|
6751
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show25,{get when(){return model.parentID()
|
|
6731
6752
|
},children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
|
|
6732
6753
|
},get interaction(){return props.interaction
|
|
6733
6754
|
},id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -6761,7 +6782,7 @@ _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
|
|
|
6761
6782
|
},onActivate:()=>model.setMode(value)
|
|
6762
6783
|
})
|
|
6763
6784
|
}))
|
|
6764
|
-
_$insert(_el$,_$createComponent(
|
|
6785
|
+
_$insert(_el$,_$createComponent(Show25,{get when(){return model.filtered().length===0
|
|
6765
6786
|
},get children(){var _el$3=_$createElement("text")
|
|
6766
6787
|
_$insertNode(_el$3,_$createTextNode(`No matching subagents`))
|
|
6767
6788
|
_$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6845,7 +6866,7 @@ _$insert(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":
|
|
|
6845
6866
|
_$setProp(_el$3,"flexGrow",1)
|
|
6846
6867
|
_$setProp(_el$3,"wrapMode","word")
|
|
6847
6868
|
_$insert(_el$3,()=>props.item.content)
|
|
6848
|
-
_$insert(_el$,_$createComponent(
|
|
6869
|
+
_$insert(_el$,_$createComponent(Show26,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
|
|
6849
6870
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b"),_el$6=_$createTextNode(` `)
|
|
6850
6871
|
_$insertNode(_el$4,_el$5)
|
|
6851
6872
|
_$setProp(_el$4,"width",2)
|
|
@@ -6881,7 +6902,7 @@ _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],childre
|
|
|
6881
6902
|
},onActivate:()=>props.setMode(value)
|
|
6882
6903
|
})
|
|
6883
6904
|
}))
|
|
6884
|
-
_$insert(_el$,_$createComponent(
|
|
6905
|
+
_$insert(_el$,_$createComponent(Show27,{get when(){return props.view.rows.length>0
|
|
6885
6906
|
},get fallback(){return _$createComponent(EmptyTodo,{get api(){return props.api
|
|
6886
6907
|
},get mode(){return props.mode
|
|
6887
6908
|
}})
|
|
@@ -6891,7 +6912,7 @@ _$insert(_el$,_$createComponent(Show25,{get when(){return props.view.rows.length
|
|
|
6891
6912
|
},get children(){return _$createComponent(For19,{get each(){return props.visibility.visible()
|
|
6892
6913
|
},children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
|
|
6893
6914
|
return(()=>{var _el$3=_$createElement("box")
|
|
6894
|
-
_$insert(_el$3,_$createComponent(
|
|
6915
|
+
_$insert(_el$3,_$createComponent(Show27,{get when(){return startsGroup()
|
|
6895
6916
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
6896
6917
|
_$insertNode(_el$4,_el$5)
|
|
6897
6918
|
_$insert(_el$5,()=>row.group)
|
|
@@ -6928,7 +6949,7 @@ return _el$6
|
|
|
6928
6949
|
|
|
6929
6950
|
|
|
6930
6951
|
function TodoGuidanceControl(props){const state=()=>props.controller.guidance(props.sessionID)
|
|
6931
|
-
return _$createComponent(
|
|
6952
|
+
return _$createComponent(Show28,{get when(){return state().available
|
|
6932
6953
|
},get children(){var _el$=_$createElement("box")
|
|
6933
6954
|
_$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
6934
6955
|
},get interaction(){return props.interaction
|
|
@@ -6938,7 +6959,7 @@ _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
|
6938
6959
|
},get disabled(){return state().saving
|
|
6939
6960
|
},onActivate:()=>void props.controller.setGuidance(props.sessionID,!state().enabled)
|
|
6940
6961
|
}),null)
|
|
6941
|
-
_$insert(_el$,_$createComponent(
|
|
6962
|
+
_$insert(_el$,_$createComponent(Show28,{get when(){return state().error
|
|
6942
6963
|
},children:(message)=>(()=>{var _el$2=_$createElement("text")
|
|
6943
6964
|
_$setProp(_el$2,"wrapMode","word")
|
|
6944
6965
|
_$insert(_el$2,message)
|
|
@@ -6976,10 +6997,10 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6976
6997
|
},sectionId:`${PLUGIN_ID}.section.todo`,get navigationSection(){return navigationSection()
|
|
6977
6998
|
},title:"TODO",section:"todo",get summary(){return _$memo(()=>!!(unavailable()||managed()?.missing(props.sessionID)))()?"\u2014":`${view().counts.completed}/${list().length}`
|
|
6978
6999
|
},get open(){return props.preferences.expanded().todo
|
|
6979
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(
|
|
7000
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show29,{get when(){return unavailable()
|
|
6980
7001
|
},get fallback(){return(()=>{var _el$=_$createElement("box")
|
|
6981
7002
|
_$setProp(_el$,"gap",1)
|
|
6982
|
-
_$insert(_el$,_$createComponent(
|
|
7003
|
+
_$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.guidance(props.sessionID).available
|
|
6983
7004
|
},get children(){return _$createComponent(TodoGuidanceControl,{get api(){return props.api
|
|
6984
7005
|
},get controller(){return managed()
|
|
6985
7006
|
},get sessionID(){return props.sessionID
|
|
@@ -6987,7 +7008,7 @@ _$insert(_el$,_$createComponent(Show27,{get when(){return managed()?.guidance(pr
|
|
|
6987
7008
|
},get navigationSection(){return navigationSection()
|
|
6988
7009
|
}})
|
|
6989
7010
|
}}),null)
|
|
6990
|
-
_$insert(_el$,_$createComponent(
|
|
7011
|
+
_$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.missing(props.sessionID)
|
|
6991
7012
|
},get fallback(){return _$createComponent(SectionRequestBody,{get api(){return props.api
|
|
6992
7013
|
},get interaction(){return props.interaction
|
|
6993
7014
|
},id:`${PLUGIN_ID}.retry.todo`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -7131,7 +7152,7 @@ _$setProp(_el$2,"flexDirection","row")
|
|
|
7131
7152
|
_$setProp(_el$2,"justifyContent","space-between")
|
|
7132
7153
|
_$setProp(_el$2,"gap",1)
|
|
7133
7154
|
_$setProp(_el$3,"flexGrow",1)
|
|
7134
|
-
_$insert(_el$3,_$createComponent(
|
|
7155
|
+
_$insert(_el$3,_$createComponent(Show30,{get when(){return props.preferences.showSessionTitle()
|
|
7135
7156
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
7136
7157
|
_$insertNode(_el$4,_el$5)
|
|
7137
7158
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -7139,7 +7160,7 @@ _$insert(_el$5,()=>props.title)
|
|
|
7139
7160
|
_$effect((_$p)=>_$setProp(_el$4,"fg",theme().text,_$p))
|
|
7140
7161
|
return _el$4
|
|
7141
7162
|
}}),null)
|
|
7142
|
-
_$insert(_el$3,_$createComponent(
|
|
7163
|
+
_$insert(_el$3,_$createComponent(Show30,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
|
|
7143
7164
|
},children:(value)=>(()=>{var _el$6=_$createElement("text")
|
|
7144
7165
|
_$insert(_el$6,value)
|
|
7145
7166
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().textMuted,_$p))
|
|
@@ -7405,7 +7426,7 @@ function createV2UI(context){let dialogOpen=false
|
|
|
7405
7426
|
function DialogPrompt(props){let active=true
|
|
7406
7427
|
onCleanup26(()=>{active=false
|
|
7407
7428
|
})
|
|
7408
|
-
|
|
7429
|
+
onMount7(async ()=>{const value=await context.ui.dialog.prompt({title:props.title,placeholder:props.placeholder,value:props.value
|
|
7409
7430
|
})
|
|
7410
7431
|
if(!active)
|
|
7411
7432
|
return
|
|
@@ -7419,7 +7440,7 @@ return _$createElement("box")
|
|
|
7419
7440
|
function DialogConfirm(props){let active=true
|
|
7420
7441
|
onCleanup26(()=>{active=false
|
|
7421
7442
|
})
|
|
7422
|
-
|
|
7443
|
+
onMount7(async ()=>{const confirmed=await context.ui.dialog.confirm({title:props.title,message:props.message
|
|
7423
7444
|
})
|
|
7424
7445
|
if(!active)
|
|
7425
7446
|
return
|
|
@@ -7564,8 +7585,8 @@ const preferences=createPreferencesController(api,config,createPreferencesStore(
|
|
|
7564
7585
|
const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js":"../provider-limits"
|
|
7565
7586
|
const limitsModule=await import(limitsPath)
|
|
7566
7587
|
const LimitsSection=limitsModule.ProviderLimitsSection
|
|
7567
|
-
const{controller:limits,codex,accountSource,selectModel,
|
|
7568
|
-
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.
|
|
7588
|
+
const{controller:limits,codex,accountSource,selectModel,modelSelection
|
|
7589
|
+
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.2",hostContext)
|
|
7569
7590
|
const mcp=createMcpController(api,preferences.persistMcp,preferences)
|
|
7570
7591
|
const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont))
|
|
7571
7592
|
const startup=createStartupSessionController(api,preferences)
|
|
@@ -7593,7 +7614,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7593
7614
|
},interaction,skills,subagents,mcp
|
|
7594
7615
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7595
7616
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7596
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.
|
|
7617
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.2"
|
|
7597
7618
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7598
7619
|
})]
|
|
7599
7620
|
}})
|
|
@@ -7606,7 +7627,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7606
7627
|
},sidebar_content(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7607
7628
|
},get multilineCorners(){return preferences.cornerFont
|
|
7608
7629
|
},get children(){return _$createComponent(SidebarContent,{api,get onNewSession(){return startup.handleNewSession
|
|
7609
|
-
},mcp,limitsSection:(navigationSection)=>_$createComponent(LimitsSection,{api,preferences,interaction,controller:limits,codex,
|
|
7630
|
+
},mcp,limitsSection:(navigationSection)=>_$createComponent(LimitsSection,{api,preferences,interaction,controller:limits,codex,modelSelection,navigationSection
|
|
7610
7631
|
}),todo,subagents,skills,preferences,interaction,get sessionID(){return props.session_id
|
|
7611
7632
|
}})
|
|
7612
7633
|
}})
|
|
@@ -7624,12 +7645,12 @@ throw result.error
|
|
|
7624
7645
|
}
|
|
7625
7646
|
return result.data?.type==="text"?result.data.content:undefined
|
|
7626
7647
|
})
|
|
7627
|
-
const versionStatus=createVersionStatus(api,"0.21.
|
|
7628
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.
|
|
7648
|
+
const versionStatus=createVersionStatus(api,"0.21.2")
|
|
7649
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.2"))
|
|
7629
7650
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7630
7651
|
},get multilineCorners(){return preferences.cornerFont
|
|
7631
7652
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7632
|
-
},navigatorVersion:"0.21.
|
|
7653
|
+
},navigatorVersion:"0.21.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7633
7654
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7634
7655
|
}})
|
|
7635
7656
|
}})
|
|
@@ -7643,15 +7664,15 @@ return
|
|
|
7643
7664
|
return new TextDecoder().decode(await context.client.file.read({location:context.location,path:".opencode/navigator.json"
|
|
7644
7665
|
}))
|
|
7645
7666
|
},todo,context)
|
|
7646
|
-
const versionStatus=createVersionStatus(adapter.api,"0.21.
|
|
7647
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.
|
|
7667
|
+
const versionStatus=createVersionStatus(adapter.api,"0.21.2")
|
|
7668
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.2"))
|
|
7648
7669
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7649
7670
|
},get multilineCorners(){return preferences.cornerFont
|
|
7650
7671
|
},get children(){var _el$=_$createElement("box")
|
|
7651
7672
|
_$setProp(_el$,"flexDirection","row")
|
|
7652
7673
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7653
7674
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7654
|
-
},navigatorVersion:"0.21.
|
|
7675
|
+
},navigatorVersion:"0.21.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7655
7676
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7656
7677
|
}}),null)
|
|
7657
7678
|
_$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "opencode-navigator",
|
|
4
|
-
"version": "0.21.
|
|
4
|
+
"version": "0.21.2",
|
|
5
5
|
"description": "Search, navigate, and manage OpenCode sessions from the TUI",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "bun@1.4.2",
|