xcode-copilot-server 2.2.0 → 3.1.0

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 (173) hide show
  1. package/config.json5 +13 -8
  2. package/dist/cli-validators.d.ts +2 -0
  3. package/dist/cli-validators.js +10 -3
  4. package/dist/cli-validators.js.map +1 -1
  5. package/dist/config.d.ts +1 -1
  6. package/dist/config.js +2 -2
  7. package/dist/config.js.map +1 -1
  8. package/dist/conversation-manager.d.ts +2 -1
  9. package/dist/conversation-manager.js +20 -1
  10. package/dist/conversation-manager.js.map +1 -1
  11. package/dist/index.js +66 -105
  12. package/dist/index.js.map +1 -1
  13. package/dist/launchd/agent.d.ts +52 -0
  14. package/dist/launchd/agent.js +185 -0
  15. package/dist/launchd/agent.js.map +1 -0
  16. package/dist/launchd/index.d.ts +4 -0
  17. package/dist/launchd/index.js +3 -0
  18. package/dist/launchd/index.js.map +1 -0
  19. package/dist/launchd/socket.d.ts +5 -0
  20. package/dist/launchd/socket.js +31 -0
  21. package/dist/launchd/socket.js.map +1 -0
  22. package/dist/launchd-agent.d.ts +50 -0
  23. package/dist/launchd-agent.js +175 -0
  24. package/dist/launchd-agent.js.map +1 -0
  25. package/dist/launchd-socket.d.ts +5 -0
  26. package/dist/launchd-socket.js +33 -0
  27. package/dist/launchd-socket.js.map +1 -0
  28. package/dist/{handlers/messages → providers/claude}/count-tokens.js +2 -2
  29. package/dist/providers/claude/count-tokens.js.map +1 -0
  30. package/dist/{handlers/messages.d.ts → providers/claude/handler.d.ts} +2 -2
  31. package/dist/{handlers/messages.js → providers/claude/handler.js} +8 -8
  32. package/dist/providers/claude/handler.js.map +1 -0
  33. package/dist/{utils/anthropic-prompt.d.ts → providers/claude/prompt.d.ts} +1 -1
  34. package/dist/{utils/anthropic-prompt.js → providers/claude/prompt.js} +2 -2
  35. package/dist/providers/claude/prompt.js.map +1 -0
  36. package/dist/providers/{anthropic.d.ts → claude/provider.d.ts} +2 -2
  37. package/dist/providers/{anthropic.js → claude/provider.js} +8 -8
  38. package/dist/providers/claude/provider.js.map +1 -0
  39. package/dist/{schemas/anthropic.js → providers/claude/schemas.js} +1 -1
  40. package/dist/providers/claude/schemas.js.map +1 -0
  41. package/dist/providers/claude/streaming.js +116 -0
  42. package/dist/providers/claude/streaming.js.map +1 -0
  43. package/dist/{handlers/messages/tool-result-handler.d.ts → providers/claude/tool-results.d.ts} +1 -1
  44. package/dist/{handlers/messages/tool-result-handler.js → providers/claude/tool-results.js} +1 -1
  45. package/dist/providers/claude/tool-results.js.map +1 -0
  46. package/dist/providers/codex/handler.d.ts +4 -0
  47. package/dist/providers/codex/handler.js +164 -0
  48. package/dist/providers/codex/handler.js.map +1 -0
  49. package/dist/providers/codex/prompt.d.ts +4 -0
  50. package/dist/providers/codex/prompt.js +58 -0
  51. package/dist/providers/codex/prompt.js.map +1 -0
  52. package/dist/providers/codex/provider.d.ts +5 -0
  53. package/dist/providers/codex/provider.js +24 -0
  54. package/dist/providers/codex/provider.js.map +1 -0
  55. package/dist/providers/codex/schemas.d.ts +122 -0
  56. package/dist/providers/codex/schemas.js +55 -0
  57. package/dist/providers/codex/schemas.js.map +1 -0
  58. package/dist/providers/codex/streaming.d.ts +9 -0
  59. package/dist/providers/codex/streaming.js +172 -0
  60. package/dist/providers/codex/streaming.js.map +1 -0
  61. package/dist/providers/codex/tool-results.d.ts +4 -0
  62. package/dist/providers/codex/tool-results.js +9 -0
  63. package/dist/providers/codex/tool-results.js.map +1 -0
  64. package/dist/providers/index.d.ts +6 -1
  65. package/dist/providers/index.js +5 -3
  66. package/dist/providers/index.js.map +1 -1
  67. package/dist/{handlers/completions.d.ts → providers/openai/handler.d.ts} +2 -2
  68. package/dist/{handlers/completions.js → providers/openai/handler.js} +6 -6
  69. package/dist/providers/openai/handler.js.map +1 -0
  70. package/dist/{handlers → providers/openai}/models.d.ts +1 -1
  71. package/dist/{handlers → providers/openai}/models.js +1 -1
  72. package/dist/providers/openai/models.js.map +1 -0
  73. package/dist/providers/openai/prompt.d.ts +3 -0
  74. package/dist/{utils → providers/openai}/prompt.js +3 -15
  75. package/dist/providers/openai/prompt.js.map +1 -0
  76. package/dist/providers/{openai.d.ts → openai/provider.d.ts} +1 -1
  77. package/dist/providers/{openai.js → openai/provider.js} +4 -4
  78. package/dist/providers/openai/provider.js.map +1 -0
  79. package/dist/{schemas/openai.js → providers/openai/schemas.js} +1 -1
  80. package/dist/providers/openai/schemas.js.map +1 -0
  81. package/dist/{handlers/completions → providers/openai}/streaming.js +3 -3
  82. package/dist/providers/openai/streaming.js.map +1 -0
  83. package/dist/providers/shared/errors.js.map +1 -0
  84. package/dist/{utils → providers/shared}/model-resolver.d.ts +1 -1
  85. package/dist/providers/shared/model-resolver.js.map +1 -0
  86. package/dist/providers/shared/prompt-utils.d.ts +1 -0
  87. package/dist/providers/shared/prompt-utils.js +15 -0
  88. package/dist/providers/shared/prompt-utils.js.map +1 -0
  89. package/dist/{handlers → providers/shared}/session-config.d.ts +2 -2
  90. package/dist/{handlers → providers/shared}/session-config.js +24 -5
  91. package/dist/providers/shared/session-config.js.map +1 -0
  92. package/dist/providers/shared/streaming-core.d.ts +19 -0
  93. package/dist/providers/shared/streaming-core.js +176 -0
  94. package/dist/providers/shared/streaming-core.js.map +1 -0
  95. package/dist/{handlers → providers/shared}/streaming-utils.d.ts +2 -1
  96. package/dist/{handlers → providers/shared}/streaming-utils.js +11 -2
  97. package/dist/providers/shared/streaming-utils.js.map +1 -0
  98. package/dist/schemas/config.d.ts +19 -1
  99. package/dist/schemas/config.js +2 -1
  100. package/dist/schemas/config.js.map +1 -1
  101. package/dist/server.js +1 -2
  102. package/dist/server.js.map +1 -1
  103. package/dist/settings-patcher/claude.d.ts +5 -0
  104. package/dist/{settings-patcher.js → settings-patcher/claude.js} +4 -8
  105. package/dist/settings-patcher/claude.js.map +1 -0
  106. package/dist/settings-patcher/codex.d.ts +23 -0
  107. package/dist/settings-patcher/codex.js +114 -0
  108. package/dist/settings-patcher/codex.js.map +1 -0
  109. package/dist/settings-patcher/index.d.ts +15 -0
  110. package/dist/settings-patcher/index.js +9 -0
  111. package/dist/settings-patcher/index.js.map +1 -0
  112. package/dist/{settings-patcher.d.ts → settings-patcher/types.d.ts} +1 -5
  113. package/dist/settings-patcher/types.js.map +1 -0
  114. package/dist/startup.d.ts +13 -0
  115. package/dist/startup.js +193 -0
  116. package/dist/startup.js.map +1 -0
  117. package/dist/tool-bridge/constants.d.ts +2 -0
  118. package/dist/tool-bridge/constants.js +3 -0
  119. package/dist/tool-bridge/constants.js.map +1 -0
  120. package/dist/tool-bridge/index.d.ts +1 -0
  121. package/dist/tool-bridge/index.js +1 -0
  122. package/dist/tool-bridge/index.js.map +1 -1
  123. package/dist/tool-bridge/routes.js +2 -1
  124. package/dist/tool-bridge/routes.js.map +1 -1
  125. package/dist/tool-bridge/session-lifecycle.js +1 -1
  126. package/dist/tool-bridge/state.d.ts +1 -1
  127. package/dist/tool-bridge/tool-cache.d.ts +1 -1
  128. package/dist/ui.d.ts +7 -0
  129. package/dist/ui.js +8 -0
  130. package/dist/ui.js.map +1 -1
  131. package/package.json +8 -5
  132. package/LICENSE +0 -21
  133. package/README.md +0 -212
  134. package/dist/config-schema.d.ts +0 -85
  135. package/dist/config-schema.js +0 -38
  136. package/dist/config-schema.js.map +0 -1
  137. package/dist/handlers/completions/session-config.d.ts +0 -12
  138. package/dist/handlers/completions/session-config.js +0 -63
  139. package/dist/handlers/completions/session-config.js.map +0 -1
  140. package/dist/handlers/completions/streaming.js.map +0 -1
  141. package/dist/handlers/completions.js.map +0 -1
  142. package/dist/handlers/errors.js.map +0 -1
  143. package/dist/handlers/messages/count-tokens.js.map +0 -1
  144. package/dist/handlers/messages/streaming.js +0 -274
  145. package/dist/handlers/messages/streaming.js.map +0 -1
  146. package/dist/handlers/messages/tool-result-handler.js.map +0 -1
  147. package/dist/handlers/messages.js.map +0 -1
  148. package/dist/handlers/models.js.map +0 -1
  149. package/dist/handlers/session-config.js.map +0 -1
  150. package/dist/handlers/streaming-utils.js.map +0 -1
  151. package/dist/providers/anthropic.js.map +0 -1
  152. package/dist/providers/openai.js.map +0 -1
  153. package/dist/schemas/anthropic.js.map +0 -1
  154. package/dist/schemas/openai.js.map +0 -1
  155. package/dist/schemas.d.ts +0 -49
  156. package/dist/schemas.js +0 -75
  157. package/dist/schemas.js.map +0 -1
  158. package/dist/settings-patcher.js.map +0 -1
  159. package/dist/types.d.ts +0 -83
  160. package/dist/types.js.map +0 -1
  161. package/dist/utils/anthropic-prompt.js.map +0 -1
  162. package/dist/utils/model-resolver.js.map +0 -1
  163. package/dist/utils/prompt.d.ts +0 -3
  164. package/dist/utils/prompt.js.map +0 -1
  165. /package/dist/{handlers/messages → providers/claude}/count-tokens.d.ts +0 -0
  166. /package/dist/{schemas/anthropic.d.ts → providers/claude/schemas.d.ts} +0 -0
  167. /package/dist/{handlers/messages → providers/claude}/streaming.d.ts +0 -0
  168. /package/dist/{schemas/openai.d.ts → providers/openai/schemas.d.ts} +0 -0
  169. /package/dist/{handlers/completions → providers/openai}/streaming.d.ts +0 -0
  170. /package/dist/{handlers → providers/shared}/errors.d.ts +0 -0
  171. /package/dist/{handlers → providers/shared}/errors.js +0 -0
  172. /package/dist/{utils → providers/shared}/model-resolver.js +0 -0
  173. /package/dist/{types.js → settings-patcher/types.js} +0 -0
package/config.json5 CHANGED
@@ -5,12 +5,11 @@
5
5
  // exists in both CLI and MCP tools then they can't have different permissions.
6
6
 
7
7
  {
8
- // Provider-specific settings. The active --proxy flag determines which
9
- // section is used at runtime.
8
+ // Which section gets used depends on the --proxy flag.
10
9
 
11
10
  openai: {
12
11
  // No tool bridge needed for OpenAI because Xcode drives tool execution
13
- // directly. TODO: will need this for Codex Agent support.
12
+ // directly.
14
13
  toolBridge: false,
15
14
 
16
15
  mcpServers: {
@@ -25,17 +24,23 @@
25
24
  },
26
25
  },
27
26
 
28
- anthropic: {
29
- // Normally the Copilot CLI executes tool calls (file reads, edits, etc.)
30
- // on its own. This shim intercepts those calls and forwards them to Xcode
31
- // so Claude Agent can drive tool execution through the IDE instead.
32
- // Set to false or remove to disable the tool bridge.
27
+ claude: {
28
+ // Intercepts tool calls and forwards them to Xcode so Claude Agent
29
+ // drives tool execution through the IDE instead of the Copilot CLI.
33
30
  toolBridge: true,
34
31
 
35
32
  // No MCP servers needed, because Claude Agent handles tools natively.
36
33
  mcpServers: {},
37
34
  },
38
35
 
36
+ codex: {
37
+ // Same as Claude: intercepts tool calls and forwards them to Xcode
38
+ // so Codex drives tool execution through the IDE.
39
+ toolBridge: true,
40
+
41
+ mcpServers: {},
42
+ },
43
+
39
44
  // Built-in Copilot CLI tools allowlist (glob, grep, bash, etc). Use ["*"] to allow
40
45
  // all, [] to deny all, or list specific tools like ["glob", "grep"].
41
46
  //
@@ -1,6 +1,8 @@
1
1
  import { type LogLevel } from "./logger.js";
2
2
  import { type ProxyName } from "./providers/index.js";
3
+ export declare function isProxyName(value: string): value is ProxyName;
3
4
  export declare function parsePort(value: string): number;
4
5
  export declare function parseLogLevel(value: string): LogLevel;
5
6
  export declare function parseProxy(value: string): ProxyName;
7
+ export declare function parseIdleTimeout(value: string): number;
6
8
  export declare function validateAutoPatch(proxy: ProxyName, autoPatch: boolean): void;
@@ -5,7 +5,7 @@ const VALID_PROXIES = Object.keys(providers);
5
5
  function isLogLevel(value) {
6
6
  return value in LEVEL_PRIORITY;
7
7
  }
8
- function isProxyName(value) {
8
+ export function isProxyName(value) {
9
9
  return value in providers;
10
10
  }
11
11
  export function parsePort(value) {
@@ -27,9 +27,16 @@ export function parseProxy(value) {
27
27
  }
28
28
  return value;
29
29
  }
30
+ export function parseIdleTimeout(value) {
31
+ const minutes = parseInt(value, 10);
32
+ if (isNaN(minutes) || minutes < 0) {
33
+ throw new Error(`Invalid idle timeout "${value}". Must be a non-negative integer (minutes).`);
34
+ }
35
+ return minutes;
36
+ }
30
37
  export function validateAutoPatch(proxy, autoPatch) {
31
- if (autoPatch && proxy !== "anthropic") {
32
- throw new Error("--auto-patch can only be used with --proxy anthropic");
38
+ if (autoPatch && proxy !== "claude" && proxy !== "codex") {
39
+ throw new Error("--auto-patch can only be used with --proxy claude or --proxy codex");
33
40
  }
34
41
  }
35
42
  //# sourceMappingURL=cli-validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-validators.js","sourceRoot":"","sources":["../src/cli-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAe,CAAC;AACnE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAgB,CAAC;AAE5D,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,IAAI,cAAc,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,aAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,aAAa,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,SAAkB;IACpE,IAAI,SAAS,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli-validators.js","sourceRoot":"","sources":["../src/cli-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAe,CAAC;AACnE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAgB,CAAC;AAE5D,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,IAAI,cAAc,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,aAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,aAAa,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,8CAA8C,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,SAAkB;IACpE,IAAI,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { ProxyName } from "./providers/index.js";
3
3
  import { type MCPServer, type RawServerConfig } from "./schemas/config.js";
4
4
  export type { MCPLocalServer, MCPRemoteServer, MCPServer, ApprovalRule, ReasoningEffort, } from "./schemas/config.js";
5
5
  export type { ProxyName };
6
- export type ServerConfig = Omit<RawServerConfig, "bodyLimitMiB" | "openai" | "anthropic"> & {
6
+ export type ServerConfig = Omit<RawServerConfig, "bodyLimitMiB" | "openai" | "claude" | "codex"> & {
7
7
  toolBridge: boolean;
8
8
  mcpServers: Record<string, MCPServer>;
9
9
  bodyLimit: number;
package/dist/config.js CHANGED
@@ -8,7 +8,7 @@ const DEFAULT_CONFIG = {
8
8
  mcpServers: {},
9
9
  allowedCliTools: [],
10
10
  excludedFilePatterns: [],
11
- bodyLimit: 10 * 1024 * 1024, // 10 MiB
11
+ bodyLimit: 10 * 1024 * 1024,
12
12
  autoApprovePermissions: ["read", "mcp"],
13
13
  };
14
14
  function resolveServerPaths(servers, configDir) {
@@ -55,7 +55,7 @@ export async function loadConfig(configPath, logger, proxy) {
55
55
  raw = JSON5.parse(text);
56
56
  }
57
57
  catch (err) {
58
- throw new Error(`Failed to parse config file: ${err instanceof Error ? err.message : String(err)}`);
58
+ throw new Error(`Failed to parse config file: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
59
59
  }
60
60
  if (!raw || typeof raw !== "object") {
61
61
  throw new Error("Config file must contain a JSON5 object");
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CopilotSession } from "@github/copilot-sdk";
2
2
  import { ToolBridgeState } from "./tool-bridge/state.js";
3
- import type { AnthropicMessage } from "./schemas/anthropic.js";
3
+ import type { AnthropicMessage } from "./providers/claude/schemas.js";
4
4
  import type { Logger } from "./logger.js";
5
5
  export interface Conversation {
6
6
  id: string;
@@ -25,6 +25,7 @@ export declare class ConversationManager {
25
25
  isReuse: boolean;
26
26
  };
27
27
  findByContinuation(messages: AnthropicMessage[]): Conversation | undefined;
28
+ findByContinuationIds(callIds: string[]): Conversation | undefined;
28
29
  findByExpectedTool(name: string): ToolBridgeState | undefined;
29
30
  getState(convId: string): ToolBridgeState | undefined;
30
31
  remove(convId: string): void;
@@ -81,7 +81,7 @@ export class ConversationManager {
81
81
  }
82
82
  }
83
83
  }
84
- // the model sometimes retries a tool after an internal failure so the
84
+ // The model sometimes retries a tool after an internal failure so the
85
85
  // tool_use_id won't match anything, but we can still route by session
86
86
  for (const [, conv] of this.conversations) {
87
87
  if (conv.state.sessionActive) {
@@ -91,6 +91,25 @@ export class ConversationManager {
91
91
  }
92
92
  return undefined;
93
93
  }
94
+ findByContinuationIds(callIds) {
95
+ if (callIds.length === 0)
96
+ return undefined;
97
+ for (const [, conv] of this.conversations) {
98
+ for (const callId of callIds) {
99
+ if (conv.state.hasPendingToolCall(callId)) {
100
+ this.logger.debug(`Continuation matched conversation ${conv.id} via call_id ${callId}`);
101
+ return conv;
102
+ }
103
+ }
104
+ }
105
+ for (const [, conv] of this.conversations) {
106
+ if (conv.state.sessionActive) {
107
+ this.logger.debug(`Continuation matched conversation ${conv.id} via sessionActive fallback`);
108
+ return conv;
109
+ }
110
+ }
111
+ return undefined;
112
+ }
94
113
  findByExpectedTool(name) {
95
114
  for (const [, conv] of this.conversations) {
96
115
  if (conv.state.hasExpectedTool(name)) {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,145 +3,106 @@ import { join, dirname } from "node:path";
3
3
  import { readFile } from "node:fs/promises";
4
4
  import { z } from "zod";
5
5
  import { Command } from "commander";
6
- import { CopilotService } from "./copilot-service.js";
7
- import { loadConfig, resolveConfigPath } from "./config.js";
8
- import { createServer } from "./server.js";
9
6
  import { Logger } from "./logger.js";
10
- import { providers } from "./providers/index.js";
11
- import { patchSettings, restoreSettings } from "./settings-patcher.js";
12
- import { parsePort, parseLogLevel, parseProxy, validateAutoPatch, } from "./cli-validators.js";
13
- import { bold, dim, createSpinner, printBanner } from "./ui.js";
7
+ import { patcherByProxy } from "./settings-patcher/index.js";
8
+ import { parsePort, parseLogLevel, parseProxy, parseIdleTimeout, validateAutoPatch } from "./cli-validators.js";
9
+ import { startServer } from "./startup.js";
10
+ import { installAgent, uninstallAgent } from "./launchd/index.js";
14
11
  const PACKAGE_ROOT = dirname(import.meta.dirname);
15
12
  const DEFAULT_CONFIG_PATH = join(PACKAGE_ROOT, "config.json5");
16
- async function startServer(options) {
13
+ // Can't use a JSON import here because rootDir is src/ and package.json lives at the root
14
+ const { version } = z.object({ version: z.string() }).parse(JSON.parse(await readFile(join(PACKAGE_ROOT, "package.json"), "utf-8")));
15
+ async function patchSettingsCommand(options) {
17
16
  const logLevel = parseLogLevel(options.logLevel);
18
17
  const logger = new Logger(logLevel);
19
18
  const port = parsePort(options.port);
20
19
  const proxy = parseProxy(options.proxy);
21
- const autoPatch = options.autoPatch === true;
22
- validateAutoPatch(proxy, autoPatch);
23
- const provider = providers[proxy];
24
- const configPath = options.config ?? resolveConfigPath(options.cwd, process.cwd(), DEFAULT_CONFIG_PATH);
25
- const config = await loadConfig(configPath, logger, proxy);
26
- const cwd = options.cwd;
27
- const service = new CopilotService({
28
- logLevel,
29
- logger,
30
- cwd,
31
- });
32
- const quiet = logLevel === "none";
33
- if (!quiet) {
34
- console.log();
35
- console.log(` ${bold("xcode-copilot-server")} ${dim(`v${version}`)}`);
36
- console.log();
37
- }
38
- const bootSpinner = quiet ? null : createSpinner("Starting Copilot SDK...");
39
- await service.start();
40
- bootSpinner?.succeed("Copilot SDK started");
41
- const authSpinner = quiet ? null : createSpinner("Authenticating...");
42
- const auth = await service.getAuthStatus();
43
- if (!auth.isAuthenticated) {
44
- authSpinner?.fail("Not authenticated");
45
- logger.error("Sign in with the Copilot CLI (copilot login) or GitHub CLI (gh auth login), or set a GITHUB_TOKEN environment variable.");
46
- await service.stop();
47
- process.exit(1);
48
- }
49
- const login = auth.login ?? "unknown";
50
- const authType = auth.authType ?? "unknown";
51
- authSpinner?.succeed(`Authenticated as ${bold(login)} ${dim(`(${authType})`)}`);
52
- if (autoPatch) {
53
- await patchSettings({ port, logger });
20
+ const patcher = patcherByProxy[proxy];
21
+ if (!patcher) {
22
+ throw new Error(`No settings patcher for --proxy ${proxy}`);
54
23
  }
55
- const ctx = { service, logger, config, port };
56
- const app = await createServer(ctx, provider);
57
- const listenSpinner = quiet ? null : createSpinner(`Starting server on port ${String(port)}...`);
58
- const prevPinoLevel = app.log.level;
59
- app.log.level = "silent";
60
- await app.listen({ port, host: "127.0.0.1" });
61
- app.log.level = prevPinoLevel;
62
- listenSpinner?.succeed(`Listening on ${bold(`http://localhost:${String(port)}`)}`);
63
- if (!quiet) {
64
- printBanner({
65
- port,
66
- proxy,
67
- providerName: provider.name,
68
- routes: provider.routes,
69
- cwd: service.cwd,
70
- autoPatch,
71
- });
24
+ await patcher.patch({ port, logger });
25
+ }
26
+ async function restoreSettingsCommand(options) {
27
+ const logLevel = parseLogLevel(options.logLevel);
28
+ const logger = new Logger(logLevel);
29
+ const proxy = parseProxy(options.proxy);
30
+ const patcher = patcherByProxy[proxy];
31
+ if (!patcher) {
32
+ throw new Error(`No settings patcher for --proxy ${proxy}`);
72
33
  }
73
- logger.debug(`Config loaded from ${configPath}`);
74
- const mcpCount = Object.keys(config.mcpServers).length;
75
- const cliToolsSummary = config.allowedCliTools.includes("*")
76
- ? "all CLI tools allowed"
77
- : `${String(config.allowedCliTools.length)} allowed CLI tool(s)`;
78
- logger.debug(`${String(mcpCount)} MCP server(s), ${cliToolsSummary}`);
79
- const shutdown = async (signal) => {
80
- logger.info(`Got ${signal}, shutting down...`);
81
- if (autoPatch) {
82
- try {
83
- await restoreSettings({ logger });
84
- }
85
- catch (err) {
86
- logger.error(`Failed to restore settings.json: ${String(err)}`);
87
- }
88
- }
89
- await app.close();
90
- const stopPromise = service.stop().then(() => {
91
- logger.info("Clean shutdown complete");
92
- });
93
- const timeoutPromise = new Promise((resolve) => setTimeout(() => {
94
- logger.warn("Copilot client didn't stop in time, forcing exit");
95
- resolve();
96
- }, 3000));
97
- await Promise.race([stopPromise, timeoutPromise]);
98
- process.exit(0);
99
- };
100
- const onSignal = (signal) => {
101
- shutdown(signal).catch((err) => {
102
- console.error("Shutdown error:", err);
103
- process.exit(1);
104
- });
105
- };
106
- process.on("SIGINT", () => { onSignal("SIGINT"); });
107
- process.on("SIGTERM", () => { onSignal("SIGTERM"); });
34
+ await patcher.restore({ logger });
108
35
  }
109
- async function patchSettingsCommand(options) {
36
+ async function installAgentCommand(options) {
110
37
  const logLevel = parseLogLevel(options.logLevel);
111
38
  const logger = new Logger(logLevel);
112
39
  const port = parsePort(options.port);
113
- await patchSettings({ port, logger });
40
+ const proxy = parseProxy(options.proxy);
41
+ const idleTimeout = parseIdleTimeout(options.idleTimeout);
42
+ if (options.autoPatch) {
43
+ validateAutoPatch(proxy, true);
44
+ }
45
+ await installAgent({
46
+ port,
47
+ proxy,
48
+ logLevel: options.logLevel,
49
+ logger,
50
+ config: options.config,
51
+ cwd: options.cwd,
52
+ autoPatch: options.autoPatch === true,
53
+ idleTimeout,
54
+ });
114
55
  }
115
- async function restoreSettingsCommand(options) {
56
+ async function uninstallAgentCommand(options) {
116
57
  const logLevel = parseLogLevel(options.logLevel);
117
58
  const logger = new Logger(logLevel);
118
- await restoreSettings({ logger });
59
+ await uninstallAgent({ logger });
119
60
  }
120
- // Can't use JSON import because rootDir is src/ and package.json is at the project root.
121
- const { version } = z.object({ version: z.string() }).parse(JSON.parse(await readFile(join(PACKAGE_ROOT, "package.json"), "utf-8")));
122
61
  const program = new Command()
123
62
  .name("xcode-copilot-server")
124
63
  .description("Proxy API server for Xcode, powered by GitHub Copilot")
125
- .version(version, "-v, --version");
64
+ .version(version, "-v, --version")
65
+ .enablePositionalOptions()
66
+ .passThroughOptions();
126
67
  program
127
68
  .option("-p, --port <number>", "port to listen on", "8080")
128
- .option("--proxy <provider>", "API format: openai, anthropic", "openai")
69
+ .option("--proxy <provider>", "API format: openai, claude, codex", "openai")
129
70
  .option("-l, --log-level <level>", "log verbosity", "info")
130
71
  .option("-c, --config <path>", "path to config file")
131
72
  .option("--cwd <path>", "working directory for Copilot sessions")
132
73
  .option("--auto-patch", "auto-patch settings.json on start, restore on exit")
133
- .action((options) => startServer(options));
74
+ .option("--idle-timeout <minutes>", "shut down after N minutes of inactivity", "0")
75
+ .option("--launchd", "run in launchd mode (socket activation, no TTY output)")
76
+ .action((options) => startServer({ ...options, version, defaultConfigPath: DEFAULT_CONFIG_PATH }));
134
77
  program
135
78
  .command("patch-settings")
136
- .description("Patch settings.json to point to this server, then exit")
137
- .option("-p, --port <number>", "port to write into settings.json", "8080")
79
+ .description("Patch settings to point to this server, then exit")
80
+ .option("-p, --port <number>", "port to write into settings", "8080")
81
+ .option("--proxy <provider>", "which provider to patch: claude, codex", "claude")
138
82
  .option("-l, --log-level <level>", "log verbosity", "info")
139
83
  .action((options) => patchSettingsCommand(options));
140
84
  program
141
85
  .command("restore-settings")
142
- .description("Restore settings.json from backup, then exit")
86
+ .description("Restore settings from backup, then exit")
87
+ .option("--proxy <provider>", "which provider to restore: claude, codex", "claude")
143
88
  .option("-l, --log-level <level>", "log verbosity", "info")
144
89
  .action((options) => restoreSettingsCommand(options));
90
+ program
91
+ .command("install-agent")
92
+ .description("Install a launchd agent with socket activation")
93
+ .option("-p, --port <number>", "port to listen on", "8080")
94
+ .option("--proxy <provider>", "API format: openai, claude, codex", "openai")
95
+ .option("-l, --log-level <level>", "log verbosity for the agent", "info")
96
+ .option("-c, --config <path>", "path to config file")
97
+ .option("--cwd <path>", "working directory for Copilot sessions")
98
+ .option("--auto-patch", "patch settings on install, restore on uninstall")
99
+ .option("--idle-timeout <minutes>", "shut down agent after N minutes of inactivity", "60")
100
+ .action((options) => installAgentCommand(options));
101
+ program
102
+ .command("uninstall-agent")
103
+ .description("Uninstall the launchd agent and restore settings")
104
+ .option("-l, --log-level <level>", "log verbosity", "info")
105
+ .action((options) => uninstallAgentCommand(options));
145
106
  program.parseAsync().catch((err) => {
146
107
  console.error("Fatal error:", err);
147
108
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { Logger } from "../logger.js";
2
+ import type { ProxyName } from "../providers/index.js";
3
+ export type ExecFn = (cmd: string, args: string[]) => Promise<string>;
4
+ export declare const AGENT_LABEL = "com.xcode-copilot-server";
5
+ export declare function defaultPlistPath(): string;
6
+ export declare function defaultLogPaths(): {
7
+ out: string;
8
+ err: string;
9
+ };
10
+ export interface PlistOptions {
11
+ nodePath: string;
12
+ entryPoint: string;
13
+ port: number;
14
+ proxy: ProxyName;
15
+ logLevel: string;
16
+ config?: string | undefined;
17
+ cwd?: string | undefined;
18
+ autoPatch?: boolean | undefined;
19
+ idleTimeout?: number | undefined;
20
+ environmentVariables?: Record<string, string> | undefined;
21
+ logPaths?: {
22
+ out: string;
23
+ err: string;
24
+ } | undefined;
25
+ }
26
+ export declare function generatePlist(options: PlistOptions): string;
27
+ export interface ParsedPlistArgs {
28
+ proxy: ProxyName | null;
29
+ autoPatch: boolean;
30
+ }
31
+ export declare function parsePlistArgs(plistContent: string): ParsedPlistArgs;
32
+ export interface InstallAgentOptions {
33
+ port: number;
34
+ proxy: ProxyName;
35
+ logLevel: string;
36
+ logger: Logger;
37
+ config?: string | undefined;
38
+ cwd?: string | undefined;
39
+ autoPatch?: boolean | undefined;
40
+ idleTimeout?: number | undefined;
41
+ exec?: ExecFn | undefined;
42
+ plistPath?: string | undefined;
43
+ nodePath?: string | undefined;
44
+ entryPoint?: string | undefined;
45
+ }
46
+ export declare function installAgent(options: InstallAgentOptions): Promise<void>;
47
+ export interface UninstallAgentOptions {
48
+ logger: Logger;
49
+ exec?: ExecFn | undefined;
50
+ plistPath?: string | undefined;
51
+ }
52
+ export declare function uninstallAgent(options: UninstallAgentOptions): Promise<void>;