@junctionpanel/server 0.1.74 → 0.1.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/client/daemon-client.d.ts +1 -0
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +58 -5
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/provider-model-cache.d.ts +1 -0
- package/dist/server/server/agent/provider-model-cache.d.ts.map +1 -1
- package/dist/server/server/agent/provider-model-cache.js +18 -4
- package/dist/server/server/agent/provider-model-cache.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +91 -72
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.js +233 -77
- package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +1 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +111 -90
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +13 -0
- package/dist/server/server/relay-transport.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,6 +9,7 @@ import { z } from "zod";
|
|
|
9
9
|
import { loadCodexPersistedTimeline } from "./codex-rollout-timeline.js";
|
|
10
10
|
import { mapCodexRolloutToolCall, mapCodexToolCallFromThreadItem, } from "./codex/tool-call-mapper.js";
|
|
11
11
|
import { applyProviderEnv, isProviderCommandAvailable, resolveProviderCommandPrefix, } from "../provider-launch-config.js";
|
|
12
|
+
import { getCachedProviderModels } from "../provider-model-cache.js";
|
|
12
13
|
import { resolveCommandPathWithFallback } from "../../provider-command-resolution.js";
|
|
13
14
|
import { buildCodexRuntimeExtra, DEFAULT_CODEX_MODE_ID, isCodexPlanModeEnabled, normalizeCodexModeId, setCodexPlanModeEnabled, } from "../codex-config.js";
|
|
14
15
|
import { writeImageAttachment } from "./image-attachments.js";
|
|
@@ -4256,80 +4257,98 @@ export class CodexAppServerAgentClient {
|
|
|
4256
4257
|
}
|
|
4257
4258
|
}
|
|
4258
4259
|
async listModels(_options) {
|
|
4259
|
-
const
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
?
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
thinkingById
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4260
|
+
const cacheKey = JSON.stringify({
|
|
4261
|
+
provider: CODEX_PROVIDER,
|
|
4262
|
+
runtime: this.runtimeSettings ?? null,
|
|
4263
|
+
});
|
|
4264
|
+
return getCachedProviderModels({
|
|
4265
|
+
cacheKey,
|
|
4266
|
+
provider: CODEX_PROVIDER,
|
|
4267
|
+
logger: this.logger,
|
|
4268
|
+
load: async () => {
|
|
4269
|
+
const child = this.spawnAppServer();
|
|
4270
|
+
const client = new CodexAppServerClient(child, this.logger);
|
|
4271
|
+
try {
|
|
4272
|
+
await client.request("initialize", {
|
|
4273
|
+
clientInfo: {
|
|
4274
|
+
name: "junction",
|
|
4275
|
+
title: "Junction",
|
|
4276
|
+
version: "0.0.0",
|
|
4277
|
+
},
|
|
4278
|
+
});
|
|
4279
|
+
client.notify("initialized", {});
|
|
4280
|
+
const response = (await client.request("model/list", {}));
|
|
4281
|
+
const models = Array.isArray(response?.data) ? response.data : [];
|
|
4282
|
+
const configuredDefaults = await readCodexConfiguredDefaults(client, this.logger);
|
|
4283
|
+
const configuredDefaultModelId = configuredDefaults.model;
|
|
4284
|
+
const configuredDefaultThinkingOptionId = configuredDefaults.thinkingOptionId;
|
|
4285
|
+
const hasConfiguredDefaultModel = typeof configuredDefaultModelId === "string"
|
|
4286
|
+
? models.some((model) => model?.id === configuredDefaultModelId)
|
|
4287
|
+
: false;
|
|
4288
|
+
return models.map((model) => {
|
|
4289
|
+
const defaultReasoningEffort = normalizeCodexThinkingOptionId(typeof model.defaultReasoningEffort === "string"
|
|
4290
|
+
? model.defaultReasoningEffort
|
|
4291
|
+
: null);
|
|
4292
|
+
const resolvedDefaultReasoningEffort = configuredDefaultThinkingOptionId ?? defaultReasoningEffort;
|
|
4293
|
+
const thinkingById = new Map();
|
|
4294
|
+
if (Array.isArray(model.supportedReasoningEfforts)) {
|
|
4295
|
+
for (const entry of model.supportedReasoningEfforts) {
|
|
4296
|
+
const id = normalizeCodexThinkingOptionId(typeof entry === "string"
|
|
4297
|
+
? entry
|
|
4298
|
+
: typeof entry?.reasoningEffort === "string"
|
|
4299
|
+
? entry.reasoningEffort
|
|
4300
|
+
: null);
|
|
4301
|
+
if (!id)
|
|
4302
|
+
continue;
|
|
4303
|
+
const description = typeof entry === "object" &&
|
|
4304
|
+
entry !== null &&
|
|
4305
|
+
typeof entry.description === "string" &&
|
|
4306
|
+
entry.description.trim().length > 0
|
|
4307
|
+
? entry.description
|
|
4308
|
+
: undefined;
|
|
4309
|
+
thinkingById.set(id, { id, label: id, description });
|
|
4310
|
+
}
|
|
4311
|
+
}
|
|
4312
|
+
if (resolvedDefaultReasoningEffort && !thinkingById.has(resolvedDefaultReasoningEffort)) {
|
|
4313
|
+
thinkingById.set(resolvedDefaultReasoningEffort, {
|
|
4314
|
+
id: resolvedDefaultReasoningEffort,
|
|
4315
|
+
label: resolvedDefaultReasoningEffort,
|
|
4316
|
+
description: configuredDefaultThinkingOptionId === resolvedDefaultReasoningEffort
|
|
4317
|
+
? "Configured default reasoning effort"
|
|
4318
|
+
: "Model default reasoning effort",
|
|
4319
|
+
});
|
|
4320
|
+
}
|
|
4321
|
+
const thinkingOptions = Array.from(thinkingById.values()).map((option) => ({
|
|
4322
|
+
...option,
|
|
4323
|
+
isDefault: option.id === resolvedDefaultReasoningEffort,
|
|
4324
|
+
}));
|
|
4325
|
+
const defaultThinkingOptionId = resolvedDefaultReasoningEffort ??
|
|
4326
|
+
thinkingOptions.find((option) => option.isDefault)?.id ??
|
|
4327
|
+
thinkingOptions[0]?.id;
|
|
4328
|
+
const isDefaultModel = hasConfiguredDefaultModel
|
|
4329
|
+
? model.id === configuredDefaultModelId
|
|
4330
|
+
: model.isDefault;
|
|
4331
|
+
return {
|
|
4332
|
+
provider: CODEX_PROVIDER,
|
|
4333
|
+
id: model.id,
|
|
4334
|
+
label: model.displayName,
|
|
4335
|
+
description: model.description,
|
|
4336
|
+
isDefault: isDefaultModel,
|
|
4337
|
+
thinkingOptions: thinkingOptions.length > 0 ? thinkingOptions : undefined,
|
|
4338
|
+
defaultThinkingOptionId,
|
|
4339
|
+
metadata: {
|
|
4340
|
+
model: model.model,
|
|
4341
|
+
defaultReasoningEffort: model.defaultReasoningEffort,
|
|
4342
|
+
supportedReasoningEfforts: model.supportedReasoningEfforts,
|
|
4343
|
+
},
|
|
4344
|
+
};
|
|
4302
4345
|
});
|
|
4303
4346
|
}
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
thinkingOptions.find((option) => option.isDefault)?.id ??
|
|
4310
|
-
thinkingOptions[0]?.id;
|
|
4311
|
-
const isDefaultModel = hasConfiguredDefaultModel
|
|
4312
|
-
? model.id === configuredDefaultModelId
|
|
4313
|
-
: model.isDefault;
|
|
4314
|
-
return {
|
|
4315
|
-
provider: CODEX_PROVIDER,
|
|
4316
|
-
id: model.id,
|
|
4317
|
-
label: model.displayName,
|
|
4318
|
-
description: model.description,
|
|
4319
|
-
isDefault: isDefaultModel,
|
|
4320
|
-
thinkingOptions: thinkingOptions.length > 0 ? thinkingOptions : undefined,
|
|
4321
|
-
defaultThinkingOptionId,
|
|
4322
|
-
metadata: {
|
|
4323
|
-
model: model.model,
|
|
4324
|
-
defaultReasoningEffort: model.defaultReasoningEffort,
|
|
4325
|
-
supportedReasoningEfforts: model.supportedReasoningEfforts,
|
|
4326
|
-
},
|
|
4327
|
-
};
|
|
4328
|
-
});
|
|
4329
|
-
}
|
|
4330
|
-
finally {
|
|
4331
|
-
await client.dispose();
|
|
4332
|
-
}
|
|
4347
|
+
finally {
|
|
4348
|
+
await client.dispose();
|
|
4349
|
+
}
|
|
4350
|
+
},
|
|
4351
|
+
});
|
|
4333
4352
|
}
|
|
4334
4353
|
async isAvailable() {
|
|
4335
4354
|
return isProviderCommandAvailable(this.runtimeSettings?.command, () => resolveCodexBinary(this.runtimeSettings), applyProviderEnv(process.env, this.runtimeSettings));
|