@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.
Files changed (39) hide show
  1. package/dist/server/client/daemon-client.d.ts +1 -0
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +1 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-manager.d.ts +1 -0
  6. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  7. package/dist/server/server/agent/agent-manager.js +50 -1
  8. package/dist/server/server/agent/agent-manager.js.map +1 -1
  9. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +29 -0
  10. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  11. package/dist/server/server/agent/providers/codex-app-server-agent.js +52 -23
  12. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  13. package/dist/server/server/agent/providers/gemini-agent.d.ts +19 -2
  14. package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
  15. package/dist/server/server/agent/providers/gemini-agent.js +195 -12
  16. package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
  17. package/dist/server/server/bootstrap.d.ts +2 -10
  18. package/dist/server/server/bootstrap.d.ts.map +1 -1
  19. package/dist/server/server/bootstrap.js.map +1 -1
  20. package/dist/server/server/index.js +11 -2
  21. package/dist/server/server/index.js.map +1 -1
  22. package/dist/server/server/lifecycle-intent.d.ts +20 -0
  23. package/dist/server/server/lifecycle-intent.d.ts.map +1 -0
  24. package/dist/server/server/lifecycle-intent.js +2 -0
  25. package/dist/server/server/lifecycle-intent.js.map +1 -0
  26. package/dist/server/server/persisted-config.d.ts +19 -19
  27. package/dist/server/server/session.d.ts +3 -11
  28. package/dist/server/server/session.d.ts.map +1 -1
  29. package/dist/server/server/session.js +26 -15
  30. package/dist/server/server/session.js.map +1 -1
  31. package/dist/server/shared/messages.d.ts +16 -0
  32. package/dist/server/shared/messages.d.ts.map +1 -1
  33. package/dist/server/shared/messages.js +1 -0
  34. package/dist/server/shared/messages.js.map +1 -1
  35. package/dist/server/shared/permission-questions.d.ts +4 -0
  36. package/dist/server/shared/permission-questions.d.ts.map +1 -1
  37. package/dist/server/shared/permission-questions.js +16 -2
  38. package/dist/server/shared/permission-questions.js.map +1 -1
  39. package/package.json +2 -2
@@ -82,10 +82,16 @@ function normalizeCodexModelId(modelId) {
82
82
  }
83
83
  return normalized;
84
84
  }
85
- function mergeCodexConfiguredDefaults(primary, fallback) {
85
+ function readCodexLegacyConfiguredDefaultsResponse(response) {
86
86
  return {
87
- model: primary.model ?? fallback.model,
88
- thinkingOptionId: primary.thinkingOptionId ?? fallback.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
- pending.reject(new Error(msg.error?.message ?? "Unknown error"));
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("getUserSavedConfig", {}));
1533
- savedConfigDefaults = {
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
- logger.debug({ err: error }, "Failed to read Codex saved config defaults");
1540
- }
1541
- if (savedConfigDefaults.model && savedConfigDefaults.thinkingOptionId) {
1542
- return savedConfigDefaults;
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("config/read", {}));
1547
- configReadDefaults = {
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
- logger.debug({ err: error }, "Failed to read Codex config defaults");
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,