feat(shared): add connected-providers-cache for model availability (#1121)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com>
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
justsisyphus
2026-01-26 11:53:41 +09:00
committed by GitHub
parent da416b362b
commit 3a79b8761b
10 changed files with 747 additions and 67 deletions
+21 -21
View File
@@ -101,7 +101,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -316,7 +316,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -378,7 +378,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -436,7 +436,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -485,7 +485,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -525,7 +525,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -574,7 +574,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -640,7 +640,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -695,7 +695,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -750,7 +750,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -810,7 +810,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -863,7 +863,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -918,7 +918,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent",
messageID: "msg",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal
}
@@ -983,7 +983,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1041,7 +1041,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1102,7 +1102,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1167,7 +1167,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1232,7 +1232,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1302,7 +1302,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1359,7 +1359,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
@@ -1409,7 +1409,7 @@ describe("sisyphus-task", () => {
const toolContext = {
sessionID: "parent-session",
messageID: "parent-message",
agent: "Sisyphus",
agent: "sisyphus",
abort: new AbortController().signal,
}
+6 -1
View File
@@ -13,6 +13,7 @@ import type { ModelFallbackInfo } from "../../features/task-toast-manager/types"
import { subagentSessions, getSessionAgent } from "../../features/claude-code-session-state"
import { log, getAgentToolRestrictions, resolveModel, getOpenCodeConfigPaths, findByNameCaseInsensitive, equalsIgnoreCase } from "../../shared"
import { fetchAvailableModels } from "../../shared/model-availability"
import { readConnectedProvidersCache } from "../../shared/connected-providers-cache"
import { resolveModelWithFallback } from "../../shared/model-resolver"
import { CATEGORY_MODEL_REQUIREMENTS } from "../../shared/model-requirements"
@@ -500,7 +501,10 @@ To continue this session: session_id="${args.session_id}"`
)
}
const availableModels = await fetchAvailableModels(client)
const connectedProviders = readConnectedProvidersCache()
const availableModels = await fetchAvailableModels(client, {
connectedProviders: connectedProviders ?? undefined
})
const resolved = resolveCategoryConfig(args.category, {
userCategories,
@@ -845,6 +849,7 @@ To continue this session: session_id="${task.sessionID}"`
const sessionID = createResult.data.id
syncSessionID = sessionID
subagentSessions.add(sessionID)
taskId = `sync_${sessionID.slice(0, 8)}`
const startTime = new Date()