@herbertgao/pi-extensions 2026.9.9 → 2026.9.11
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/README.md +1 -0
- package/THIRD_PARTY_NOTICES.md +26 -0
- package/node_modules/@herbertgao/pi-bark/package.json +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/README.md +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -2
- package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +12 -0
- package/node_modules/@herbertgao/pi-subagents/README.md +427 -120
- package/node_modules/@herbertgao/pi-subagents/docs/rpc.md +184 -0
- package/node_modules/@herbertgao/pi-subagents/docs/workflows.md +466 -0
- package/node_modules/@herbertgao/pi-subagents/examples/agent-tool-description.md +6 -6
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/compose.js +52 -0
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/fan-out-audit.js +56 -0
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/gated-fix.js +60 -0
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/lib/count-child.js +30 -0
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/review-panel.js +68 -0
- package/node_modules/@herbertgao/pi-subagents/examples/workflows/structured-findings.js +81 -0
- package/node_modules/@herbertgao/pi-subagents/package.json +12 -10
- package/node_modules/@herbertgao/pi-subagents/src/agent-file-toggle.ts +52 -12
- package/node_modules/@herbertgao/pi-subagents/src/agent-manager.ts +837 -146
- package/node_modules/@herbertgao/pi-subagents/src/agent-runner.ts +213 -39
- package/node_modules/@herbertgao/pi-subagents/src/cross-extension-rpc.ts +73 -14
- package/node_modules/@herbertgao/pi-subagents/src/custom-agents.ts +101 -47
- package/node_modules/@herbertgao/pi-subagents/src/index.ts +2249 -914
- package/node_modules/@herbertgao/pi-subagents/src/invocation-config.ts +13 -0
- package/node_modules/@herbertgao/pi-subagents/src/mention-clone.ts +215 -0
- package/node_modules/@herbertgao/pi-subagents/src/mention.ts +147 -0
- package/node_modules/@herbertgao/pi-subagents/src/model-resolver.ts +9 -1
- package/node_modules/@herbertgao/pi-subagents/src/nested-tools.ts +40 -26
- package/node_modules/@herbertgao/pi-subagents/src/output-file.ts +18 -8
- package/node_modules/@herbertgao/pi-subagents/src/prompts.ts +46 -9
- package/node_modules/@herbertgao/pi-subagents/src/schedule.ts +21 -16
- package/node_modules/@herbertgao/pi-subagents/src/settings.ts +137 -7
- package/node_modules/@herbertgao/pi-subagents/src/structured-output.ts +136 -0
- package/node_modules/@herbertgao/pi-subagents/src/types.ts +126 -8
- package/node_modules/@herbertgao/pi-subagents/src/ui/agent-mention.ts +274 -0
- package/node_modules/@herbertgao/pi-subagents/src/ui/agent-widget.ts +20 -5
- package/node_modules/@herbertgao/pi-subagents/src/ui/conversation-viewer.ts +10 -4
- package/node_modules/@herbertgao/pi-subagents/src/ui/fleet-list.ts +167 -22
- package/node_modules/@herbertgao/pi-subagents/src/ui/workflow-card.ts +555 -0
- package/node_modules/@herbertgao/pi-subagents/src/ui/workflow-dialog.ts +1304 -0
- package/node_modules/@herbertgao/pi-subagents/src/ui/workflow-menu.ts +226 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/collisions.ts +122 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/entry.ts +47 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/host.ts +463 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/journal.ts +164 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/json-schema.ts +142 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/meta.ts +401 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/progress.ts +622 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/runtime.ts +1399 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/saved.ts +230 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/task.ts +333 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/tool-description.ts +200 -0
- package/node_modules/@herbertgao/pi-subagents/src/workflow/worker-source.ts +781 -0
- package/node_modules/@herbertgao/pi-subagents/src/worktree.ts +97 -95
- package/node_modules/@herbertgao/pi-subagents/src/xml.ts +13 -0
- package/node_modules/@herbertgao/resume-from/package.json +1 -1
- package/node_modules/@herbertgao/sol-pi/README.md +3 -3
- package/node_modules/@herbertgao/sol-pi/THIRD_PARTY_NOTICES.md +4 -4
- package/node_modules/@herbertgao/sol-pi/agents-install.md +4 -4
- package/node_modules/@herbertgao/sol-pi/docs/compatibility.md +6 -6
- package/node_modules/@herbertgao/sol-pi/package.json +2 -2
- package/node_modules/@narumitw/pi-btw/dist/index.ts +39 -89
- package/node_modules/@narumitw/pi-btw/dist/index.ts.map +3 -3
- package/node_modules/@narumitw/pi-btw/package.json +4 -4
- package/node_modules/@narumitw/pi-btw/src/btw.ts +28 -87
- package/node_modules/@narumitw/pi-btw/src/main-tree-picker.ts +8 -0
- package/node_modules/@narumitw/pi-btw/src/side-thread.ts +40 -37
- package/node_modules/@narumitw/pi-caffeinate/README.md +21 -66
- package/node_modules/@narumitw/pi-caffeinate/dist/index.ts +10 -41
- package/node_modules/@narumitw/pi-caffeinate/dist/index.ts.map +2 -2
- package/node_modules/@narumitw/pi-caffeinate/package.json +50 -51
- package/node_modules/@narumitw/pi-caffeinate/src/caffeinate.ts +637 -663
- package/node_modules/@narumitw/pi-caffeinate/src/dbus-inhibit.ts +114 -120
- package/node_modules/@narumitw/pi-caffeinate/src/inhibitor-process.ts +29 -29
- package/node_modules/@narumitw/pi-caffeinate/src/inhibitors.ts +108 -126
- package/node_modules/@narumitw/pi-caffeinate/src/settings.ts +124 -128
- package/node_modules/pi-multi-account/CHANGELOG.md +1209 -0
- package/node_modules/pi-multi-account/CONTRIBUTING.md +61 -0
- package/node_modules/pi-multi-account/LICENSE +21 -0
- package/node_modules/pi-multi-account/README.md +197 -0
- package/node_modules/pi-multi-account/SECURITY.md +27 -0
- package/node_modules/pi-multi-account/auth-file-transaction.ts +56 -0
- package/node_modules/pi-multi-account/child-usability.ts +233 -0
- package/node_modules/pi-multi-account/compaction-summary.ts +32 -0
- package/node_modules/pi-multi-account/completion-route-planner.ts +224 -0
- package/node_modules/pi-multi-account/context-guard.ts +420 -0
- package/node_modules/pi-multi-account/cursor/LICENSE +21 -0
- package/node_modules/pi-multi-account/cursor/NOTICE +2 -0
- package/node_modules/pi-multi-account/cursor/auth.ts +165 -0
- package/node_modules/pi-multi-account/cursor/bridge-handle.ts +155 -0
- package/node_modules/pi-multi-account/cursor/conversation-registry.ts +104 -0
- package/node_modules/pi-multi-account/cursor/cursor-models-raw.json +611 -0
- package/node_modules/pi-multi-account/cursor/cursor-shared.ts +192 -0
- package/node_modules/pi-multi-account/cursor/h2-bridge.mjs +175 -0
- package/node_modules/pi-multi-account/cursor/index.ts +572 -0
- package/node_modules/pi-multi-account/cursor/message-parsing.ts +323 -0
- package/node_modules/pi-multi-account/cursor/prompt-usage.ts +53 -0
- package/node_modules/pi-multi-account/cursor/proto/agent_pb.ts +15294 -0
- package/node_modules/pi-multi-account/cursor/proxy.ts +2510 -0
- package/node_modules/pi-multi-account/cursor/session-lifecycle.ts +40 -0
- package/node_modules/pi-multi-account/cursor/sse-keepalive.ts +24 -0
- package/node_modules/pi-multi-account/cursor/stream-lifecycle.ts +193 -0
- package/node_modules/pi-multi-account/cursor/upstream-watchdog.ts +88 -0
- package/node_modules/pi-multi-account/cursor-bridge.ts +240 -0
- package/node_modules/pi-multi-account/cursor-model-name.ts +12 -0
- package/node_modules/pi-multi-account/index.ts +11825 -0
- package/node_modules/pi-multi-account/model-catalog.ts +354 -0
- package/node_modules/pi-multi-account/package.json +101 -0
- package/node_modules/pi-multi-account/pi-contract.ts +281 -0
- package/node_modules/pi-multi-account/provider-payload-stream.ts +44 -0
- package/node_modules/pi-multi-account/provider-priority.ts +189 -0
- package/node_modules/pi-multi-account/slot-proxy-auth.ts +167 -0
- package/node_modules/pi-multi-account/slot-proxy.ts +344 -0
- package/node_modules/pi-multi-account/state-file-transaction.ts +67 -0
- package/node_modules/pi-multi-account/usage.ts +1099 -0
- package/node_modules/pi-typesafe/README.md +6 -2
- package/node_modules/pi-typesafe/dist/client.d.ts +11 -0
- package/node_modules/pi-typesafe/dist/client.js +45 -10
- package/node_modules/pi-typesafe/dist/index.d.ts +2 -2
- package/node_modules/pi-typesafe/dist/index.js +1 -1
- package/node_modules/pi-typesafe/package.json +2 -2
- package/node_modules/pi-web-access/CHANGELOG.md +36 -0
- package/node_modules/pi-web-access/README.md +75 -18
- package/node_modules/pi-web-access/anysearch.ts +4 -15
- package/node_modules/pi-web-access/bocha.ts +3 -22
- package/node_modules/pi-web-access/brave.ts +3 -21
- package/node_modules/pi-web-access/brightdata.ts +5 -32
- package/node_modules/pi-web-access/content-find.ts +168 -53
- package/node_modules/pi-web-access/curator-page.ts +4 -1
- package/node_modules/pi-web-access/curator-run.ts +2 -1
- package/node_modules/pi-web-access/curator-server.ts +1 -0
- package/node_modules/pi-web-access/dist/index.js +24620 -0
- package/node_modules/pi-web-access/domain-filter-normalization.ts +14 -0
- package/node_modules/pi-web-access/duckduckgo.ts +3 -21
- package/node_modules/pi-web-access/extract.ts +3 -1
- package/node_modules/pi-web-access/firecrawl.ts +5 -29
- package/node_modules/pi-web-access/gemini-search.ts +81 -32
- package/node_modules/pi-web-access/index.ts +149 -148
- package/node_modules/pi-web-access/jina-search.ts +4 -15
- package/node_modules/pi-web-access/kagi.ts +4 -13
- package/node_modules/pi-web-access/kimi-search.ts +5 -30
- package/node_modules/pi-web-access/mistral-search.ts +1 -15
- package/node_modules/pi-web-access/ollama.ts +2 -7
- package/node_modules/pi-web-access/openai-search.ts +174 -36
- package/node_modules/pi-web-access/opencode-session-headers.ts +24 -0
- package/node_modules/pi-web-access/package.json +10 -4
- package/node_modules/pi-web-access/page-query.ts +10 -2
- package/node_modules/pi-web-access/parallel.ts +1 -15
- package/node_modules/pi-web-access/pdf-extract.ts +3 -0
- package/node_modules/pi-web-access/querit.ts +5 -29
- package/node_modules/pi-web-access/search-answer-formatting.ts +11 -0
- package/node_modules/pi-web-access/search-result-count-normalization.ts +4 -0
- package/node_modules/pi-web-access/search1api.ts +5 -29
- package/node_modules/pi-web-access/searchinfinity.ts +5 -29
- package/node_modules/pi-web-access/searxng.ts +3 -21
- package/node_modules/pi-web-access/serpapi.ts +5 -28
- package/node_modules/pi-web-access/serpbase.ts +3 -22
- package/node_modules/pi-web-access/serpdive.ts +3 -21
- package/node_modules/pi-web-access/serper.ts +5 -28
- package/node_modules/pi-web-access/serply.ts +197 -0
- package/node_modules/pi-web-access/source-check.ts +11 -47
- package/node_modules/pi-web-access/summary-review.ts +7 -3
- package/node_modules/pi-web-access/tavily.ts +3 -21
- package/node_modules/pi-web-access/tinyfish.ts +5 -29
- package/node_modules/pi-web-access/utils.ts +9 -1
- package/node_modules/pi-web-access/valyu.ts +5 -28
- package/node_modules/pi-web-access/xai-search.ts +1 -15
- package/node_modules/pi-web-access/xcrawl.ts +5 -32
- package/package.json +17 -11
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
|
|
4
4
|
// src/btw.ts
|
|
5
|
-
import {
|
|
6
|
-
clampThinkingLevel,
|
|
7
|
-
getSupportedThinkingLevels as getSupportedThinkingLevels2
|
|
8
|
-
} from "@earendil-works/pi-ai";
|
|
9
|
-
import { BorderedLoader as BorderedLoader2 } from "@earendil-works/pi-coding-agent";
|
|
5
|
+
import { clampThinkingLevel, getSupportedThinkingLevels as getSupportedThinkingLevels2 } from "@earendil-works/pi-ai";
|
|
10
6
|
|
|
11
7
|
// src/bring-to-main.ts
|
|
12
8
|
import { Key, matchesKey, truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
@@ -1352,7 +1348,11 @@ async function completeSideThreadTurn({
|
|
|
1352
1348
|
const response = await completeSimple(
|
|
1353
1349
|
model,
|
|
1354
1350
|
{ systemPrompt: SYSTEM_PROMPT, messages: buildSideThreadMessages(thread, question) },
|
|
1355
|
-
buildStreamOptions(
|
|
1351
|
+
buildStreamOptions(
|
|
1352
|
+
auth,
|
|
1353
|
+
{ thinkingLevel, signal, model, sessionId },
|
|
1354
|
+
completeSimple.appliesRequestHeaderTransforms === true
|
|
1355
|
+
)
|
|
1356
1356
|
);
|
|
1357
1357
|
if (signal?.aborted || response?.stopReason === "aborted") return { kind: "aborted" };
|
|
1358
1358
|
if (!isAssistantMessage(response)) {
|
|
@@ -1405,34 +1405,25 @@ function createUserMessage(text) {
|
|
|
1405
1405
|
timestamp: Date.now()
|
|
1406
1406
|
};
|
|
1407
1407
|
}
|
|
1408
|
-
var OPENCODE_HOST = "opencode.ai";
|
|
1409
|
-
function matchesOpencodeHost(baseUrl) {
|
|
1410
|
-
if (!baseUrl) return false;
|
|
1411
|
-
try {
|
|
1412
|
-
return new URL(baseUrl).hostname === OPENCODE_HOST;
|
|
1413
|
-
} catch {
|
|
1414
|
-
return false;
|
|
1415
|
-
}
|
|
1416
|
-
}
|
|
1417
1408
|
function getOpencodeSessionHeaders(model, sessionId) {
|
|
1418
|
-
if (!sessionId) return void 0;
|
|
1419
|
-
if (model.provider !== "opencode" && model.provider !== "opencode-go" && !matchesOpencodeHost(model.baseUrl)) {
|
|
1420
|
-
return void 0;
|
|
1421
|
-
}
|
|
1409
|
+
if (!sessionId || model.provider !== "opencode" && model.provider !== "opencode-go") return void 0;
|
|
1422
1410
|
return { "x-opencode-session": sessionId, "x-opencode-client": "pi" };
|
|
1423
1411
|
}
|
|
1424
1412
|
function mergeSessionHeaders(authHeaders, sessionHeaders) {
|
|
1425
1413
|
if (!sessionHeaders && !authHeaders) return void 0;
|
|
1426
1414
|
return { ...sessionHeaders, ...authHeaders };
|
|
1427
1415
|
}
|
|
1428
|
-
function buildStreamOptions(auth, { thinkingLevel, signal, model, sessionId }) {
|
|
1416
|
+
function buildStreamOptions(auth, { thinkingLevel, signal, model, sessionId }, applyRequestHeaderTransforms) {
|
|
1429
1417
|
const sessionHeaders = model ? getOpencodeSessionHeaders(model, sessionId) : void 0;
|
|
1430
1418
|
const options = {
|
|
1431
|
-
apiKey: auth
|
|
1432
|
-
headers: mergeSessionHeaders(auth
|
|
1433
|
-
env: auth
|
|
1419
|
+
apiKey: auth?.apiKey,
|
|
1420
|
+
headers: applyRequestHeaderTransforms ? auth?.headers : mergeSessionHeaders(auth?.headers, sessionHeaders),
|
|
1421
|
+
env: auth?.env,
|
|
1434
1422
|
signal
|
|
1435
1423
|
};
|
|
1424
|
+
if (applyRequestHeaderTransforms && sessionHeaders) {
|
|
1425
|
+
options.transformHeaders = (headers) => mergeSessionHeaders(headers, sessionHeaders) ?? {};
|
|
1426
|
+
}
|
|
1436
1427
|
if (thinkingLevel !== "off") options.reasoning = thinkingLevel;
|
|
1437
1428
|
return options;
|
|
1438
1429
|
}
|
|
@@ -2413,6 +2404,14 @@ function sanitizeEntryForDisplay(entry) {
|
|
|
2413
2404
|
...entry,
|
|
2414
2405
|
name: entry.name === void 0 ? void 0 : sanitizeSingleLine(entry.name)
|
|
2415
2406
|
};
|
|
2407
|
+
case "usage":
|
|
2408
|
+
return {
|
|
2409
|
+
...entry,
|
|
2410
|
+
kind: sanitizeSingleLine(entry.kind),
|
|
2411
|
+
provider: sanitizeSingleLine(entry.provider),
|
|
2412
|
+
model: sanitizeSingleLine(entry.model),
|
|
2413
|
+
note: entry.note === void 0 ? void 0 : sanitizeSingleLine(entry.note)
|
|
2414
|
+
};
|
|
2416
2415
|
}
|
|
2417
2416
|
}
|
|
2418
2417
|
function sanitizeDisplayContent(content) {
|
|
@@ -3107,11 +3106,9 @@ function escapeTerminalControls2(text) {
|
|
|
3107
3106
|
// src/btw.ts
|
|
3108
3107
|
var MAX_CONTEXT_CHARS = 4e4;
|
|
3109
3108
|
function createModelRegistryCompleteSimple(modelRegistry) {
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
return provider.streamSimple(model, context, options).result();
|
|
3114
|
-
};
|
|
3109
|
+
const completeSimple = async (model, context, options) => modelRegistry.streamSimple(model, context, options).result();
|
|
3110
|
+
completeSimple.appliesRequestHeaderTransforms = true;
|
|
3111
|
+
return completeSimple;
|
|
3115
3112
|
}
|
|
3116
3113
|
async function resolveBtwModel({
|
|
3117
3114
|
settings,
|
|
@@ -3120,6 +3117,8 @@ async function resolveBtwModel({
|
|
|
3120
3117
|
warn
|
|
3121
3118
|
}) {
|
|
3122
3119
|
const reportWarning = (message) => warn?.(sanitizeSingleLine(message));
|
|
3120
|
+
const availableModels = modelRegistry.getAvailable();
|
|
3121
|
+
const isAvailable = (model) => availableModels.some((candidate) => candidate.provider === model.provider && candidate.id === model.id);
|
|
3123
3122
|
if (settings.model) {
|
|
3124
3123
|
const fallback = currentModel ? `${currentModel.provider}/${currentModel.id}` : "the current model";
|
|
3125
3124
|
const reference = parseBtwModelReference(settings.model);
|
|
@@ -3130,45 +3129,16 @@ async function resolveBtwModel({
|
|
|
3130
3129
|
const configuredModel = modelRegistry.find(reference.provider, reference.modelId);
|
|
3131
3130
|
if (!configuredModel) {
|
|
3132
3131
|
reportWarning(`pi-btw model ${settings.model} was not found; falling back to ${fallback}.`);
|
|
3132
|
+
} else if (isAvailable(configuredModel)) {
|
|
3133
|
+
return { model: configuredModel };
|
|
3133
3134
|
} else {
|
|
3134
3135
|
const sameAsCurrent = configuredModel === currentModel || configuredModel.provider === currentModel?.provider && configuredModel.id === currentModel.id;
|
|
3135
3136
|
const fallbackAction = sameAsCurrent ? "no distinct current model is available" : `falling back to ${fallback}`;
|
|
3136
|
-
|
|
3137
|
-
const auth = await modelRegistry.getApiKeyAndHeaders(configuredModel);
|
|
3138
|
-
if (auth.ok && hasRequestAuth(auth)) {
|
|
3139
|
-
return {
|
|
3140
|
-
model: auth.baseUrl ? { ...configuredModel, baseUrl: auth.baseUrl } : configuredModel,
|
|
3141
|
-
auth
|
|
3142
|
-
};
|
|
3143
|
-
}
|
|
3144
|
-
const reason = auth.ok ? "has no request credentials" : auth.error;
|
|
3145
|
-
reportWarning(`pi-btw model ${settings.model} is unavailable (${reason}); ${fallbackAction}.`);
|
|
3146
|
-
} catch (error) {
|
|
3147
|
-
reportWarning(`pi-btw model ${settings.model} credentials failed (${formatError5(error)}); ${fallbackAction}.`);
|
|
3148
|
-
}
|
|
3137
|
+
reportWarning(`pi-btw model ${settings.model} is unavailable; ${fallbackAction}.`);
|
|
3149
3138
|
if (sameAsCurrent) return void 0;
|
|
3150
3139
|
}
|
|
3151
3140
|
}
|
|
3152
|
-
|
|
3153
|
-
try {
|
|
3154
|
-
const auth = await modelRegistry.getApiKeyAndHeaders(currentModel);
|
|
3155
|
-
if (auth.ok && hasRequestAuth(auth)) {
|
|
3156
|
-
return {
|
|
3157
|
-
model: auth.baseUrl ? { ...currentModel, baseUrl: auth.baseUrl } : currentModel,
|
|
3158
|
-
auth
|
|
3159
|
-
};
|
|
3160
|
-
}
|
|
3161
|
-
} catch {
|
|
3162
|
-
}
|
|
3163
|
-
return void 0;
|
|
3164
|
-
}
|
|
3165
|
-
function hasRequestAuth(auth) {
|
|
3166
|
-
return Boolean(
|
|
3167
|
-
auth.apiKey || providerHeadersHaveValue(auth.headers) || auth.env && Object.keys(auth.env).length > 0
|
|
3168
|
-
);
|
|
3169
|
-
}
|
|
3170
|
-
function providerHeadersHaveValue(headers) {
|
|
3171
|
-
return headers !== void 0 && Object.values(headers).some((value) => value !== null);
|
|
3141
|
+
return currentModel && isAvailable(currentModel) ? { model: currentModel } : void 0;
|
|
3172
3142
|
}
|
|
3173
3143
|
function formatError5(error) {
|
|
3174
3144
|
return error instanceof Error ? error.message : String(error);
|
|
@@ -3189,7 +3159,7 @@ function btw(pi, dependencies = {}) {
|
|
|
3189
3159
|
const showCommandMenu = dependencies.showCommandMenu ?? showCommandMenuForBtw;
|
|
3190
3160
|
const pickEntry = dependencies.pickMainEntry ?? pickMainEntry;
|
|
3191
3161
|
const loadSettings = dependencies.loadSettings ?? loadSettingsForCommand;
|
|
3192
|
-
const resolveModel = dependencies.resolveModel ??
|
|
3162
|
+
const resolveModel = dependencies.resolveModel ?? resolveBtwModelForCommand;
|
|
3193
3163
|
const runThread = dependencies.runThread ?? runBtwThread;
|
|
3194
3164
|
const runFullscreen = dependencies.runFullscreen ?? runBtwFullscreen;
|
|
3195
3165
|
const resumableThreads = /* @__PURE__ */ new Map();
|
|
@@ -3308,33 +3278,14 @@ async function loadSettingsForCommand(ctx) {
|
|
|
3308
3278
|
}
|
|
3309
3279
|
return {};
|
|
3310
3280
|
}
|
|
3311
|
-
async function
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
settled = true;
|
|
3318
|
-
done({ kind: "cancelled" });
|
|
3319
|
-
};
|
|
3320
|
-
resolveBtwModel({
|
|
3321
|
-
settings,
|
|
3322
|
-
currentModel: ctx.model,
|
|
3323
|
-
modelRegistry: ctx.modelRegistry,
|
|
3324
|
-
warn: (message) => {
|
|
3325
|
-
if (!settled) notifySafely3(ctx, message, "warning");
|
|
3326
|
-
}
|
|
3327
|
-
}).then((selected) => {
|
|
3328
|
-
if (settled) return;
|
|
3329
|
-
settled = true;
|
|
3330
|
-
done(selected ? { kind: "selected", selected } : { kind: "unavailable" });
|
|
3331
|
-
}).catch(() => {
|
|
3332
|
-
if (settled) return;
|
|
3333
|
-
settled = true;
|
|
3334
|
-
done({ kind: "unavailable" });
|
|
3335
|
-
});
|
|
3336
|
-
return loader;
|
|
3281
|
+
async function resolveBtwModelForCommand(settings, ctx) {
|
|
3282
|
+
const selected = await resolveBtwModel({
|
|
3283
|
+
settings,
|
|
3284
|
+
currentModel: ctx.model,
|
|
3285
|
+
modelRegistry: ctx.modelRegistry,
|
|
3286
|
+
warn: (message) => notifySafely3(ctx, message, "warning")
|
|
3337
3287
|
});
|
|
3288
|
+
return selected ? { kind: "selected", selected } : { kind: "unavailable" };
|
|
3338
3289
|
}
|
|
3339
3290
|
async function runBtwThread({
|
|
3340
3291
|
initialQuestion,
|
|
@@ -3684,7 +3635,6 @@ async function askThreadQuestion(thread, question, selected, thinkingLevel, ctx,
|
|
|
3684
3635
|
question,
|
|
3685
3636
|
model: selected.model,
|
|
3686
3637
|
thinkingLevel,
|
|
3687
|
-
auth: selected.auth,
|
|
3688
3638
|
signal: view.signal,
|
|
3689
3639
|
completeSimple: createModelRegistryCompleteSimple(ctx.modelRegistry),
|
|
3690
3640
|
sessionId: readBtwSessionId(ctx)
|