@junctionpanel/server 0.1.59 → 0.1.61
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 +1 -0
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +1 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +50 -1
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +29 -0
- 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 +52 -23
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts +19 -2
- package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.js +195 -12
- package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +2 -10
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/index.js +11 -2
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/lifecycle-intent.d.ts +20 -0
- package/dist/server/server/lifecycle-intent.d.ts.map +1 -0
- package/dist/server/server/lifecycle-intent.js +2 -0
- package/dist/server/server/lifecycle-intent.js.map +1 -0
- package/dist/server/server/persisted-config.d.ts +19 -19
- package/dist/server/server/session.d.ts +3 -11
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +26 -15
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +16 -0
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +1 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/permission-questions.d.ts +4 -0
- package/dist/server/shared/permission-questions.d.ts.map +1 -1
- package/dist/server/shared/permission-questions.js +16 -2
- package/dist/server/shared/permission-questions.js.map +1 -1
- package/package.json +2 -2
|
@@ -82,10 +82,16 @@ function normalizeCodexModelId(modelId) {
|
|
|
82
82
|
}
|
|
83
83
|
return normalized;
|
|
84
84
|
}
|
|
85
|
-
function
|
|
85
|
+
function readCodexLegacyConfiguredDefaultsResponse(response) {
|
|
86
86
|
return {
|
|
87
|
-
model:
|
|
88
|
-
thinkingOptionId:
|
|
87
|
+
model: normalizeCodexModelId(response?.config?.model),
|
|
88
|
+
thinkingOptionId: normalizeCodexThinkingOptionId(response?.config?.modelReasoningEffort ?? null),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function readCodexCurrentConfiguredDefaultsResponse(response) {
|
|
92
|
+
return {
|
|
93
|
+
model: normalizeCodexModelId(response?.config?.model),
|
|
94
|
+
thinkingOptionId: normalizeCodexThinkingOptionId(response?.config?.model_reasoning_effort ?? null),
|
|
89
95
|
};
|
|
90
96
|
}
|
|
91
97
|
function resolveCodexBinary(runtimeSettings) {
|
|
@@ -523,6 +529,29 @@ class Pushable {
|
|
|
523
529
|
};
|
|
524
530
|
}
|
|
525
531
|
}
|
|
532
|
+
class CodexAppServerRequestError extends Error {
|
|
533
|
+
constructor(method, message, code) {
|
|
534
|
+
super(message);
|
|
535
|
+
this.name = "CodexAppServerRequestError";
|
|
536
|
+
this.method = method;
|
|
537
|
+
this.code = code;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
function isCodexAppServerUnsupportedMethodError(error, method) {
|
|
541
|
+
if (!error || typeof error !== "object") {
|
|
542
|
+
return false;
|
|
543
|
+
}
|
|
544
|
+
const methodValue = "method" in error ? error.method : undefined;
|
|
545
|
+
if (methodValue !== method) {
|
|
546
|
+
return false;
|
|
547
|
+
}
|
|
548
|
+
const codeValue = "code" in error && typeof error.code === "number" ? error.code : undefined;
|
|
549
|
+
const messageValue = "message" in error && typeof error.message === "string" ? error.message : "";
|
|
550
|
+
const lowered = messageValue.toLowerCase();
|
|
551
|
+
return (codeValue === -32601 ||
|
|
552
|
+
lowered.includes("method not found") ||
|
|
553
|
+
lowered.includes(`unknown variant \`${method.toLowerCase()}\``));
|
|
554
|
+
}
|
|
526
555
|
class CodexAppServerClient {
|
|
527
556
|
constructor(child, logger) {
|
|
528
557
|
this.child = child;
|
|
@@ -573,7 +602,7 @@ class CodexAppServerClient {
|
|
|
573
602
|
this.pending.delete(id);
|
|
574
603
|
reject(new Error(`Codex app-server request timed out for ${method}`));
|
|
575
604
|
}, timeoutMs);
|
|
576
|
-
this.pending.set(id, { resolve, reject, timer });
|
|
605
|
+
this.pending.set(id, { method, resolve, reject, timer });
|
|
577
606
|
});
|
|
578
607
|
}
|
|
579
608
|
notify(method, params) {
|
|
@@ -615,7 +644,8 @@ class CodexAppServerClient {
|
|
|
615
644
|
clearTimeout(pending.timer);
|
|
616
645
|
this.pending.delete(id);
|
|
617
646
|
if (msg.error) {
|
|
618
|
-
|
|
647
|
+
const errorPayload = msg.error;
|
|
648
|
+
pending.reject(new CodexAppServerRequestError(pending.method ?? "unknown", errorPayload?.message ?? "Unknown error", errorPayload?.code));
|
|
619
649
|
}
|
|
620
650
|
else {
|
|
621
651
|
pending.resolve(msg.result);
|
|
@@ -1527,32 +1557,29 @@ const CodexNotificationSchema = z.union([
|
|
|
1527
1557
|
z.object({ method: z.string(), params: z.unknown() }).transform(({ method, params }) => ({ kind: "unknown_method", method, params })),
|
|
1528
1558
|
]);
|
|
1529
1559
|
async function readCodexConfiguredDefaults(client, logger) {
|
|
1530
|
-
let savedConfigDefaults = {};
|
|
1531
1560
|
try {
|
|
1532
|
-
const response = (await client.request("
|
|
1533
|
-
|
|
1534
|
-
model: normalizeCodexModelId(response?.config?.model),
|
|
1535
|
-
thinkingOptionId: normalizeCodexThinkingOptionId(response?.config?.modelReasoningEffort ?? null),
|
|
1536
|
-
};
|
|
1561
|
+
const response = (await client.request("config/read", {}));
|
|
1562
|
+
return readCodexCurrentConfiguredDefaultsResponse(response);
|
|
1537
1563
|
}
|
|
1538
1564
|
catch (error) {
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1565
|
+
if (!isCodexAppServerUnsupportedMethodError(error, "config/read")) {
|
|
1566
|
+
logger.debug({ err: error }, "Failed to read Codex config defaults via config/read");
|
|
1567
|
+
return {};
|
|
1568
|
+
}
|
|
1569
|
+
logger.debug({ err: error, fallbackMethod: "getUserSavedConfig" }, "Codex app-server does not support config/read; falling back to legacy config defaults request");
|
|
1543
1570
|
}
|
|
1544
|
-
let configReadDefaults = {};
|
|
1545
1571
|
try {
|
|
1546
|
-
const response = (await client.request("
|
|
1547
|
-
|
|
1548
|
-
model: normalizeCodexModelId(response?.config?.model),
|
|
1549
|
-
thinkingOptionId: normalizeCodexThinkingOptionId(response?.config?.model_reasoning_effort ?? null),
|
|
1550
|
-
};
|
|
1572
|
+
const response = (await client.request("getUserSavedConfig", {}));
|
|
1573
|
+
return readCodexLegacyConfiguredDefaultsResponse(response);
|
|
1551
1574
|
}
|
|
1552
1575
|
catch (error) {
|
|
1553
|
-
|
|
1576
|
+
if (isCodexAppServerUnsupportedMethodError(error, "getUserSavedConfig")) {
|
|
1577
|
+
logger.debug({ err: error }, "Codex app-server does not support the legacy getUserSavedConfig request");
|
|
1578
|
+
return {};
|
|
1579
|
+
}
|
|
1580
|
+
logger.debug({ err: error }, "Failed to read Codex legacy config defaults");
|
|
1581
|
+
return {};
|
|
1554
1582
|
}
|
|
1555
|
-
return mergeCodexConfiguredDefaults(savedConfigDefaults, configReadDefaults);
|
|
1556
1583
|
}
|
|
1557
1584
|
export async function codexAppServerTurnInputFromPrompt(prompt, logger) {
|
|
1558
1585
|
if (typeof prompt === "string") {
|
|
@@ -1592,6 +1619,8 @@ export const __codexAppServerInternals = {
|
|
|
1592
1619
|
supportsPlanCollaborationMode,
|
|
1593
1620
|
shouldRetryInitializeWithoutExperimentalApi,
|
|
1594
1621
|
shouldRetryTurnStartWithoutCollaborationMode,
|
|
1622
|
+
isCodexAppServerUnsupportedMethodError,
|
|
1623
|
+
readCodexConfiguredDefaults,
|
|
1595
1624
|
formatProposedPlanBlock,
|
|
1596
1625
|
formatProposedPlanChunk,
|
|
1597
1626
|
buildCompletedCodexTimelineItem,
|