xcode-copilot-server 3.3.2 → 3.4.1
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/banner.d.ts +4 -4
- package/dist/banner.js +48 -12
- package/dist/banner.js.map +1 -1
- package/dist/bridge-constants.d.ts +2 -0
- package/dist/bridge-constants.js +3 -0
- package/dist/bridge-constants.js.map +1 -0
- package/dist/cli-validators.d.ts +2 -2
- package/dist/cli-validators.js +7 -2
- package/dist/cli-validators.js.map +1 -1
- package/dist/config-schema.d.ts +107 -0
- package/dist/config-schema.js +53 -0
- package/dist/config-schema.js.map +1 -0
- package/dist/config.d.ts +8 -28
- package/dist/config.js +39 -60
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +3 -1
- package/dist/conversation-manager.d.ts +9 -4
- package/dist/conversation-manager.js +44 -61
- package/dist/conversation-manager.js.map +1 -1
- package/dist/index.js +31 -12
- package/dist/index.js.map +1 -1
- package/dist/launchd/agent.d.ts +9 -13
- package/dist/launchd/agent.js +33 -26
- package/dist/launchd/agent.js.map +1 -1
- package/dist/launchd/index.d.ts +3 -3
- package/dist/launchd/index.js +1 -1
- package/dist/launchd/index.js.map +1 -1
- package/dist/launchd/socket.d.ts +2 -1
- package/dist/providers/claude/provider.js +40 -64
- package/dist/providers/claude/provider.js.map +1 -1
- package/dist/providers/claude/streaming.d.ts +10 -1
- package/dist/providers/claude/streaming.js +7 -3
- package/dist/providers/claude/streaming.js.map +1 -1
- package/dist/providers/claude/tool-results.js +1 -1
- package/dist/providers/claude/tool-results.js.map +1 -1
- package/dist/providers/codex/provider.js +28 -60
- package/dist/providers/codex/provider.js.map +1 -1
- package/dist/providers/codex/streaming.d.ts +12 -3
- package/dist/providers/codex/streaming.js +6 -6
- package/dist/providers/codex/streaming.js.map +1 -1
- package/dist/providers/codex/tool-results.js +1 -1
- package/dist/providers/codex/tool-results.js.map +1 -1
- package/dist/providers/index.d.ts +5 -19
- package/dist/providers/index.js +25 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/names.d.ts +4 -0
- package/dist/providers/names.js +7 -0
- package/dist/providers/names.js.map +1 -0
- package/dist/providers/openai/provider.js +5 -14
- package/dist/providers/openai/provider.js.map +1 -1
- package/dist/providers/shared/continuation.d.ts +10 -0
- package/dist/providers/shared/continuation.js +18 -0
- package/dist/providers/shared/continuation.js.map +1 -0
- package/dist/providers/shared/prompt-utils.d.ts +0 -11
- package/dist/providers/shared/prompt-utils.js +0 -11
- package/dist/providers/shared/prompt-utils.js.map +1 -1
- package/dist/providers/shared/session-config.d.ts +12 -3
- package/dist/providers/shared/session-config.js +24 -7
- package/dist/providers/shared/session-config.js.map +1 -1
- package/dist/providers/shared/streaming-core.d.ts +12 -2
- package/dist/providers/shared/streaming-core.js +183 -161
- package/dist/providers/shared/streaming-core.js.map +1 -1
- package/dist/providers/shared/streaming-orchestrator.d.ts +11 -0
- package/dist/providers/shared/streaming-orchestrator.js +11 -0
- package/dist/providers/shared/streaming-orchestrator.js.map +1 -0
- package/dist/providers/shared/user-agent-guard.d.ts +3 -0
- package/dist/providers/shared/user-agent-guard.js +17 -0
- package/dist/providers/shared/user-agent-guard.js.map +1 -0
- package/dist/settings-patcher/claude.d.ts +1 -2
- package/dist/settings-patcher/claude.js +35 -13
- package/dist/settings-patcher/claude.js.map +1 -1
- package/dist/settings-patcher/codex.d.ts +1 -20
- package/dist/settings-patcher/codex.js +58 -31
- package/dist/settings-patcher/codex.js.map +1 -1
- package/dist/settings-patcher/index.d.ts +5 -14
- package/dist/settings-patcher/index.js +26 -6
- package/dist/settings-patcher/index.js.map +1 -1
- package/dist/settings-patcher/types.d.ts +21 -0
- package/dist/settings-patcher/url-utils.d.ts +1 -0
- package/dist/settings-patcher/url-utils.js +6 -0
- package/dist/settings-patcher/url-utils.js.map +1 -0
- package/dist/shutdown.d.ts +16 -0
- package/dist/shutdown.js +53 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/startup.d.ts +1 -1
- package/dist/startup.js +74 -133
- package/dist/startup.js.map +1 -1
- package/dist/tool-bridge/constants.d.ts +4 -2
- package/dist/tool-bridge/constants.js +4 -2
- package/dist/tool-bridge/constants.js.map +1 -1
- package/dist/tool-bridge/index.d.ts +2 -1
- package/dist/tool-bridge/index.js +5 -1
- package/dist/tool-bridge/index.js.map +1 -1
- package/dist/tool-bridge/routes.d.ts +2 -2
- package/dist/tool-bridge/routes.js +24 -22
- package/dist/tool-bridge/routes.js.map +1 -1
- package/dist/tool-bridge/session-lifecycle.js +6 -3
- package/dist/tool-bridge/session-lifecycle.js.map +1 -1
- package/dist/tool-bridge/state.d.ts +4 -25
- package/dist/tool-bridge/state.js +6 -65
- package/dist/tool-bridge/state.js.map +1 -1
- package/dist/tool-bridge/tool-router.d.ts +1 -0
- package/dist/tool-bridge/tool-router.js +26 -19
- package/dist/tool-bridge/tool-router.js.map +1 -1
- package/dist/utils/child-process.d.ts +2 -0
- package/dist/utils/child-process.js +8 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/type-guards.d.ts +2 -0
- package/dist/utils/type-guards.js +7 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { ToolBridgeState } from "./tool-bridge/state.js";
|
|
3
|
+
function isConversation(conv) {
|
|
4
|
+
return "state" in conv && conv.state instanceof ToolBridgeState;
|
|
5
|
+
}
|
|
6
|
+
export function asConversation(conv) {
|
|
7
|
+
if (!isConversation(conv))
|
|
8
|
+
throw new Error("Expected extended Conversation with state");
|
|
9
|
+
return conv;
|
|
10
|
+
}
|
|
3
11
|
export class ConversationManager {
|
|
4
12
|
conversations = new Map();
|
|
5
13
|
logger;
|
|
@@ -18,63 +26,69 @@ export class ConversationManager {
|
|
|
18
26
|
sentMessageCount: 0,
|
|
19
27
|
isPrimary,
|
|
20
28
|
model: null,
|
|
21
|
-
get sessionActive() { return state.sessionActive; },
|
|
29
|
+
get sessionActive() { return state.session.sessionActive; },
|
|
22
30
|
set sessionActive(active) {
|
|
23
31
|
if (active) {
|
|
24
|
-
state.markSessionActive();
|
|
32
|
+
state.session.markSessionActive();
|
|
25
33
|
}
|
|
26
34
|
else {
|
|
27
|
-
state.markSessionInactive();
|
|
35
|
+
state.session.markSessionInactive();
|
|
28
36
|
}
|
|
29
37
|
},
|
|
30
|
-
get hadError() { return state.hadError; },
|
|
31
|
-
set hadError(
|
|
38
|
+
get hadError() { return state.session.hadError; },
|
|
39
|
+
set hadError(errored) { if (errored)
|
|
40
|
+
state.session.markSessionErrored(); },
|
|
32
41
|
};
|
|
33
42
|
this.conversations.set(id, conversation);
|
|
34
|
-
if (
|
|
35
|
-
|
|
43
|
+
if (isPrimary) {
|
|
44
|
+
this.primaryId = id;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
state.session.onSessionEnd(() => {
|
|
36
48
|
this.logger.debug(`Conversation ${id} session ended, removing`);
|
|
37
49
|
this.conversations.delete(id);
|
|
38
50
|
});
|
|
39
51
|
}
|
|
40
|
-
|
|
41
|
-
this.primaryId = id;
|
|
42
|
-
}
|
|
43
|
-
this.logger.debug(`Created conversation ${id} (primary=${String(isPrimary)}, active: ${String(this.conversations.size)})`);
|
|
52
|
+
this.logger.debug(`Created conversation ${id} (primary=${String(isPrimary)})`);
|
|
44
53
|
return conversation;
|
|
45
54
|
}
|
|
46
55
|
getPrimary() {
|
|
47
56
|
if (!this.primaryId)
|
|
48
|
-
return
|
|
49
|
-
return this.conversations.get(this.primaryId)
|
|
57
|
+
return undefined;
|
|
58
|
+
return this.conversations.get(this.primaryId);
|
|
50
59
|
}
|
|
51
60
|
clearPrimary() {
|
|
52
61
|
if (this.primaryId) {
|
|
53
62
|
const conv = this.conversations.get(this.primaryId);
|
|
54
63
|
if (conv) {
|
|
55
|
-
conv.state.cleanup();
|
|
64
|
+
conv.state.session.cleanup();
|
|
56
65
|
this.conversations.delete(this.primaryId);
|
|
57
|
-
this.logger.debug(`Cleared primary conversation ${this.primaryId}
|
|
66
|
+
this.logger.debug(`Cleared primary conversation ${this.primaryId}`);
|
|
58
67
|
}
|
|
59
68
|
this.primaryId = null;
|
|
60
69
|
}
|
|
61
70
|
}
|
|
62
|
-
|
|
63
|
-
// Isolated conversations pile up when the primary is busy, so clean
|
|
64
|
-
// up any that finished before we allocate more (the onSessionEnd
|
|
65
|
-
// callback usually handles this, but this catches edge cases where
|
|
66
|
-
// the callback never fired)
|
|
71
|
+
evictStale() {
|
|
67
72
|
for (const [id, conv] of this.conversations) {
|
|
68
|
-
if (!conv.isPrimary && !conv.state.sessionActive) {
|
|
69
|
-
conv.state.cleanup();
|
|
73
|
+
if (!conv.isPrimary && !conv.state.session.sessionActive) {
|
|
74
|
+
conv.state.session.cleanup();
|
|
70
75
|
this.conversations.delete(id);
|
|
71
|
-
this.logger.debug(`Evicted stale conversation ${id}
|
|
76
|
+
this.logger.debug(`Evicted stale conversation ${id}`);
|
|
72
77
|
}
|
|
73
78
|
}
|
|
79
|
+
}
|
|
80
|
+
findForNewRequest() {
|
|
81
|
+
this.evictStale();
|
|
74
82
|
const primary = this.getPrimary();
|
|
75
83
|
if (primary) {
|
|
76
|
-
if (primary.state.sessionActive
|
|
77
|
-
this.logger.debug(`Primary ${primary.id} is
|
|
84
|
+
if (primary.state.session.sessionActive) {
|
|
85
|
+
this.logger.debug(`Primary ${primary.id} is busy, creating isolated conversation`);
|
|
86
|
+
return { conversation: this.create(), isReuse: false };
|
|
87
|
+
}
|
|
88
|
+
if (!primary.session) {
|
|
89
|
+
// No SDK session yet. Create an isolated conversation so the primary
|
|
90
|
+
// stays available for the first real request.
|
|
91
|
+
this.logger.debug(`Primary ${primary.id} has no session, creating isolated conversation`);
|
|
78
92
|
return { conversation: this.create(), isReuse: false };
|
|
79
93
|
}
|
|
80
94
|
this.logger.debug(`Reusing primary conversation ${primary.id}`);
|
|
@@ -82,50 +96,19 @@ export class ConversationManager {
|
|
|
82
96
|
}
|
|
83
97
|
return { conversation: this.create({ isPrimary: true }), isReuse: false };
|
|
84
98
|
}
|
|
85
|
-
findByContinuation(messages) {
|
|
86
|
-
const lastMsg = messages[messages.length - 1];
|
|
87
|
-
if (!lastMsg || lastMsg.role !== "user" || typeof lastMsg.content === "string") {
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
const toolUseIds = [];
|
|
91
|
-
for (const block of lastMsg.content) {
|
|
92
|
-
if (block.type === "tool_result") {
|
|
93
|
-
toolUseIds.push(block.tool_use_id);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (toolUseIds.length === 0)
|
|
97
|
-
return undefined;
|
|
98
|
-
for (const [, conv] of this.conversations) {
|
|
99
|
-
for (const toolUseId of toolUseIds) {
|
|
100
|
-
if (conv.state.hasPendingToolCall(toolUseId)) {
|
|
101
|
-
this.logger.debug(`Continuation matched conversation ${conv.id} via tool_use_id ${toolUseId}`);
|
|
102
|
-
return conv;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// The model sometimes retries a tool after an internal failure so the
|
|
107
|
-
// tool_use_id won't match anything, but we can still route by session
|
|
108
|
-
for (const [, conv] of this.conversations) {
|
|
109
|
-
if (conv.state.sessionActive) {
|
|
110
|
-
this.logger.debug(`Continuation matched conversation ${conv.id} via sessionActive fallback`);
|
|
111
|
-
return conv;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
99
|
findByContinuationIds(callIds) {
|
|
117
100
|
if (callIds.length === 0)
|
|
118
101
|
return undefined;
|
|
119
102
|
for (const [, conv] of this.conversations) {
|
|
120
103
|
for (const callId of callIds) {
|
|
121
|
-
if (conv.state.hasPendingToolCall(callId)) {
|
|
104
|
+
if (conv.state.toolRouter.hasPendingToolCall(callId)) {
|
|
122
105
|
this.logger.debug(`Continuation matched conversation ${conv.id} via call_id ${callId}`);
|
|
123
106
|
return conv;
|
|
124
107
|
}
|
|
125
108
|
}
|
|
126
109
|
}
|
|
127
110
|
for (const [, conv] of this.conversations) {
|
|
128
|
-
if (conv.state.sessionActive) {
|
|
111
|
+
if (conv.state.session.sessionActive) {
|
|
129
112
|
this.logger.debug(`Continuation matched conversation ${conv.id} via sessionActive fallback`);
|
|
130
113
|
return conv;
|
|
131
114
|
}
|
|
@@ -134,7 +117,7 @@ export class ConversationManager {
|
|
|
134
117
|
}
|
|
135
118
|
findByExpectedTool(name) {
|
|
136
119
|
for (const [, conv] of this.conversations) {
|
|
137
|
-
if (conv.state.hasExpectedTool(name)) {
|
|
120
|
+
if (conv.state.toolRouter.hasExpectedTool(name)) {
|
|
138
121
|
return conv.state;
|
|
139
122
|
}
|
|
140
123
|
}
|
|
@@ -146,12 +129,12 @@ export class ConversationManager {
|
|
|
146
129
|
remove(convId) {
|
|
147
130
|
const conv = this.conversations.get(convId);
|
|
148
131
|
if (conv) {
|
|
149
|
-
conv.state.cleanup();
|
|
132
|
+
conv.state.session.cleanup();
|
|
150
133
|
this.conversations.delete(convId);
|
|
151
134
|
if (convId === this.primaryId) {
|
|
152
135
|
this.primaryId = null;
|
|
153
136
|
}
|
|
154
|
-
this.logger.debug(`Removed conversation ${convId}
|
|
137
|
+
this.logger.debug(`Removed conversation ${convId}`);
|
|
155
138
|
}
|
|
156
139
|
}
|
|
157
140
|
get size() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../src/conversation-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,11 +11,24 @@ import { installAgent, uninstallAgent } from "./launchd/index.js";
|
|
|
11
11
|
const PACKAGE_ROOT = dirname(import.meta.dirname);
|
|
12
12
|
const DEFAULT_CONFIG_PATH = join(PACKAGE_ROOT, "config.json5");
|
|
13
13
|
// Can't use a JSON import here because rootDir is src/ and package.json lives at the root
|
|
14
|
-
|
|
14
|
+
let version;
|
|
15
|
+
try {
|
|
16
|
+
const raw = JSON.parse(await readFile(join(PACKAGE_ROOT, "package.json"), "utf-8"));
|
|
17
|
+
version = z.object({ version: z.string() }).parse(raw).version;
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
throw new Error(`Failed to read package.json: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
21
|
+
}
|
|
15
22
|
async function patchSettingsCommand(options) {
|
|
16
23
|
const logLevel = parseLogLevel(options.logLevel);
|
|
17
24
|
const logger = new Logger(logLevel);
|
|
18
25
|
const port = parsePort(options.port);
|
|
26
|
+
if (!options.proxy) {
|
|
27
|
+
for (const patcher of Object.values(patcherByProxy)) {
|
|
28
|
+
await patcher.patch({ port, logger });
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
19
32
|
const proxy = parseProxy(options.proxy);
|
|
20
33
|
const patcher = patcherByProxy[proxy];
|
|
21
34
|
if (!patcher) {
|
|
@@ -26,6 +39,12 @@ async function patchSettingsCommand(options) {
|
|
|
26
39
|
async function restoreSettingsCommand(options) {
|
|
27
40
|
const logLevel = parseLogLevel(options.logLevel);
|
|
28
41
|
const logger = new Logger(logLevel);
|
|
42
|
+
if (!options.proxy) {
|
|
43
|
+
for (const patcher of Object.values(patcherByProxy)) {
|
|
44
|
+
await patcher.restore({ logger });
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
29
48
|
const proxy = parseProxy(options.proxy);
|
|
30
49
|
const patcher = patcherByProxy[proxy];
|
|
31
50
|
if (!patcher) {
|
|
@@ -37,19 +56,19 @@ async function installAgentCommand(options) {
|
|
|
37
56
|
const logLevel = parseLogLevel(options.logLevel);
|
|
38
57
|
const logger = new Logger(logLevel);
|
|
39
58
|
const port = parsePort(options.port);
|
|
40
|
-
const proxy = parseProxy(options.proxy);
|
|
41
59
|
const idleTimeout = parseIdleTimeout(options.idleTimeout);
|
|
42
|
-
|
|
60
|
+
const proxy = options.proxy ? parseProxy(options.proxy) : undefined;
|
|
61
|
+
if (proxy && options.autoPatch) {
|
|
43
62
|
validateAutoPatch(proxy, true);
|
|
44
63
|
}
|
|
45
64
|
await installAgent({
|
|
46
65
|
port,
|
|
47
|
-
proxy,
|
|
66
|
+
proxy: proxy ?? "auto",
|
|
48
67
|
logLevel: options.logLevel,
|
|
49
68
|
logger,
|
|
50
69
|
config: options.config,
|
|
51
70
|
cwd: options.cwd,
|
|
52
|
-
autoPatch: options.autoPatch === true,
|
|
71
|
+
autoPatch: proxy ? options.autoPatch === true : true,
|
|
53
72
|
idleTimeout,
|
|
54
73
|
});
|
|
55
74
|
}
|
|
@@ -66,11 +85,11 @@ const program = new Command()
|
|
|
66
85
|
.passThroughOptions();
|
|
67
86
|
program
|
|
68
87
|
.option("-p, --port <number>", "port to listen on", "8080")
|
|
69
|
-
.option("--proxy <provider>", "API format: openai, claude, codex
|
|
88
|
+
.option("--proxy <provider>", "API format: openai, claude, codex (default: all)")
|
|
70
89
|
.option("-l, --log-level <level>", "log verbosity", "info")
|
|
71
90
|
.option("-c, --config <path>", "path to config file")
|
|
72
91
|
.option("--cwd <path>", "working directory for Copilot sessions")
|
|
73
|
-
.option("--auto-patch", "auto-patch settings
|
|
92
|
+
.option("--auto-patch", "auto-patch settings on start, restore on exit (implied when --proxy is omitted)")
|
|
74
93
|
.option("--idle-timeout <minutes>", "shut down after N minutes of inactivity", "0")
|
|
75
94
|
.option("--launchd", "run in launchd mode (socket activation, no TTY output)")
|
|
76
95
|
.action((options) => startServer({ ...options, version, defaultConfigPath: DEFAULT_CONFIG_PATH }));
|
|
@@ -78,24 +97,24 @@ program
|
|
|
78
97
|
.command("patch-settings")
|
|
79
98
|
.description("Patch settings to point to this server, then exit")
|
|
80
99
|
.option("-p, --port <number>", "port to write into settings", "8080")
|
|
81
|
-
.option("--proxy <provider>", "which provider to patch: claude, codex
|
|
100
|
+
.option("--proxy <provider>", "which provider to patch: claude, codex (default: all)")
|
|
82
101
|
.option("-l, --log-level <level>", "log verbosity", "info")
|
|
83
102
|
.action((options) => patchSettingsCommand(options));
|
|
84
103
|
program
|
|
85
104
|
.command("restore-settings")
|
|
86
105
|
.description("Restore settings from backup, then exit")
|
|
87
|
-
.option("--proxy <provider>", "which provider to restore: claude, codex
|
|
106
|
+
.option("--proxy <provider>", "which provider to restore: claude, codex (default: all)")
|
|
88
107
|
.option("-l, --log-level <level>", "log verbosity", "info")
|
|
89
108
|
.action((options) => restoreSettingsCommand(options));
|
|
90
109
|
program
|
|
91
110
|
.command("install-agent")
|
|
92
111
|
.description("Install a launchd agent with socket activation")
|
|
93
112
|
.option("-p, --port <number>", "port to listen on", "8080")
|
|
94
|
-
.option("--proxy <provider>", "API format: openai, claude, codex
|
|
113
|
+
.option("--proxy <provider>", "API format: openai, claude, codex (default: all)")
|
|
95
114
|
.option("-l, --log-level <level>", "log verbosity for the agent", "info")
|
|
96
115
|
.option("-c, --config <path>", "path to config file")
|
|
97
116
|
.option("--cwd <path>", "working directory for Copilot sessions")
|
|
98
|
-
.option("--auto-patch", "patch settings on install, restore on uninstall")
|
|
117
|
+
.option("--auto-patch", "patch settings on install, restore on uninstall (implied when --proxy is omitted)")
|
|
99
118
|
.option("--idle-timeout <minutes>", "shut down agent after N minutes of inactivity", "60")
|
|
100
119
|
.action((options) => installAgentCommand(options));
|
|
101
120
|
program
|
|
@@ -104,7 +123,7 @@ program
|
|
|
104
123
|
.option("-l, --log-level <level>", "log verbosity", "info")
|
|
105
124
|
.action((options) => uninstallAgentCommand(options));
|
|
106
125
|
program.parseAsync().catch((err) => {
|
|
107
|
-
|
|
126
|
+
process.stderr.write(`Fatal error: ${String(err)}\n`);
|
|
108
127
|
process.exit(1);
|
|
109
128
|
});
|
|
110
129
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAE/D,0FAA0F;AAC1F,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/launchd/agent.d.ts
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import type { Logger } from "copilot-sdk-proxy";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type { ProxyMode } from "../providers/index.js";
|
|
3
|
+
import { type ExecFn } from "../utils/child-process.js";
|
|
4
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
5
|
export interface PlistOptions {
|
|
11
6
|
nodePath: string;
|
|
12
7
|
entryPoint: string;
|
|
13
8
|
port: number;
|
|
14
|
-
proxy:
|
|
9
|
+
proxy: ProxyMode;
|
|
15
10
|
logLevel: string;
|
|
16
11
|
config?: string | undefined;
|
|
17
12
|
cwd?: string | undefined;
|
|
@@ -24,14 +19,14 @@ export interface PlistOptions {
|
|
|
24
19
|
} | undefined;
|
|
25
20
|
}
|
|
26
21
|
export declare function generatePlist(options: PlistOptions): string;
|
|
27
|
-
|
|
28
|
-
proxy:
|
|
22
|
+
interface ParsedPlistArgs {
|
|
23
|
+
proxy: ProxyMode | null;
|
|
29
24
|
autoPatch: boolean;
|
|
30
25
|
}
|
|
31
26
|
export declare function parsePlistArgs(plistContent: string): ParsedPlistArgs;
|
|
32
|
-
|
|
27
|
+
interface InstallAgentOptions {
|
|
33
28
|
port: number;
|
|
34
|
-
proxy:
|
|
29
|
+
proxy: ProxyMode;
|
|
35
30
|
logLevel: string;
|
|
36
31
|
logger: Logger;
|
|
37
32
|
config?: string | undefined;
|
|
@@ -44,9 +39,10 @@ export interface InstallAgentOptions {
|
|
|
44
39
|
entryPoint?: string | undefined;
|
|
45
40
|
}
|
|
46
41
|
export declare function installAgent(options: InstallAgentOptions): Promise<void>;
|
|
47
|
-
|
|
42
|
+
interface UninstallAgentOptions {
|
|
48
43
|
logger: Logger;
|
|
49
44
|
exec?: ExecFn | undefined;
|
|
50
45
|
plistPath?: string | undefined;
|
|
51
46
|
}
|
|
52
47
|
export declare function uninstallAgent(options: UninstallAgentOptions): Promise<void>;
|
|
48
|
+
export {};
|
package/dist/launchd/agent.js
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { readFile, writeFile, unlink, mkdir } from "node:fs/promises";
|
|
3
|
-
import { execFile as execFileCb } from "node:child_process";
|
|
4
|
-
import { promisify } from "node:util";
|
|
5
3
|
import { dirname, join, resolve } from "node:path";
|
|
6
4
|
import { homedir } from "node:os";
|
|
7
5
|
import { Command } from "commander";
|
|
8
6
|
import plist, {} from "plist";
|
|
9
7
|
import { isProxyName } from "../cli-validators.js";
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const { stdout } = await execFileAsync(cmd, args);
|
|
14
|
-
return stdout;
|
|
15
|
-
}
|
|
8
|
+
import { patchSettings, restoreSettings } from "../settings-patcher/index.js";
|
|
9
|
+
import { defaultExec } from "../utils/child-process.js";
|
|
10
|
+
import { isRecord } from "../utils/type-guards.js";
|
|
16
11
|
export const AGENT_LABEL = "com.xcode-copilot-server";
|
|
17
|
-
|
|
12
|
+
function defaultPlistPath() {
|
|
18
13
|
return join(homedir(), "Library/LaunchAgents", `${AGENT_LABEL}.plist`);
|
|
19
14
|
}
|
|
20
|
-
|
|
15
|
+
function defaultLogPaths() {
|
|
21
16
|
const dir = join(homedir(), "Library/Logs");
|
|
22
17
|
return {
|
|
23
18
|
out: join(dir, "xcode-copilot-server.out.log"),
|
|
@@ -29,10 +24,12 @@ export function generatePlist(options) {
|
|
|
29
24
|
options.nodePath,
|
|
30
25
|
options.entryPoint,
|
|
31
26
|
"--launchd",
|
|
32
|
-
"--proxy", options.proxy,
|
|
33
27
|
"--port", String(options.port),
|
|
34
28
|
"--log-level", options.logLevel,
|
|
35
29
|
];
|
|
30
|
+
if (options.proxy !== "auto") {
|
|
31
|
+
args.push("--proxy", options.proxy);
|
|
32
|
+
}
|
|
36
33
|
if (options.config) {
|
|
37
34
|
args.push("--config", options.config);
|
|
38
35
|
}
|
|
@@ -79,9 +76,10 @@ export function parsePlistArgs(plistContent) {
|
|
|
79
76
|
raw = plist.parse(plistContent);
|
|
80
77
|
}
|
|
81
78
|
catch {
|
|
79
|
+
// Malformed plist, fall back to safe defaults
|
|
82
80
|
return { proxy: null, autoPatch: false };
|
|
83
81
|
}
|
|
84
|
-
if (
|
|
82
|
+
if (!isRecord(raw)) {
|
|
85
83
|
return { proxy: null, autoPatch: false };
|
|
86
84
|
}
|
|
87
85
|
const parsed = raw;
|
|
@@ -89,7 +87,6 @@ export function parsePlistArgs(plistContent) {
|
|
|
89
87
|
if (!Array.isArray(args)) {
|
|
90
88
|
return { proxy: null, autoPatch: false };
|
|
91
89
|
}
|
|
92
|
-
// First two entries are the node binary and entry point, everything after is flags
|
|
93
90
|
const flagArgs = args.slice(2).filter((a) => typeof a === "string");
|
|
94
91
|
const cmd = new Command()
|
|
95
92
|
.exitOverride()
|
|
@@ -102,14 +99,25 @@ export function parsePlistArgs(plistContent) {
|
|
|
102
99
|
cmd.parse(flagArgs, { from: "user" });
|
|
103
100
|
}
|
|
104
101
|
catch {
|
|
102
|
+
// Unparsable flags, fall back to safe defaults
|
|
105
103
|
return { proxy: null, autoPatch: false };
|
|
106
104
|
}
|
|
107
105
|
const opts = cmd.opts();
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
let proxy;
|
|
107
|
+
if (opts.proxy && isProxyName(opts.proxy)) {
|
|
108
|
+
proxy = opts.proxy;
|
|
109
|
+
}
|
|
110
|
+
else if (opts.proxy === undefined) {
|
|
111
|
+
// Omitting --proxy is how auto mode plists are generated
|
|
112
|
+
proxy = "auto";
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
proxy = null;
|
|
116
|
+
}
|
|
117
|
+
return { proxy, autoPatch: opts.autoPatch === true || proxy === "auto" };
|
|
110
118
|
}
|
|
111
119
|
export async function installAgent(options) {
|
|
112
|
-
const { port, proxy, logLevel, logger, autoPatch =
|
|
120
|
+
const { port, proxy, logLevel, logger, autoPatch = proxy === "auto", } = options;
|
|
113
121
|
const exec = options.exec ?? defaultExec;
|
|
114
122
|
const plistPath = options.plistPath ?? defaultPlistPath();
|
|
115
123
|
const nodePath = options.nodePath ?? process.execPath;
|
|
@@ -138,10 +146,7 @@ export async function installAgent(options) {
|
|
|
138
146
|
await writeFile(plistPath, plistXml, "utf-8");
|
|
139
147
|
await exec("launchctl", ["load", plistPath]);
|
|
140
148
|
if (autoPatch) {
|
|
141
|
-
|
|
142
|
-
if (patcher) {
|
|
143
|
-
await patcher.patch({ port, logger });
|
|
144
|
-
}
|
|
149
|
+
await patchSettings(proxy, port, logger);
|
|
145
150
|
}
|
|
146
151
|
const logPaths = defaultLogPaths();
|
|
147
152
|
logger.info(`Launchd agent installed: ${AGENT_LABEL}`);
|
|
@@ -173,12 +178,14 @@ export async function uninstallAgent(options) {
|
|
|
173
178
|
catch (err) {
|
|
174
179
|
logger.warn(`launchctl unload failed: ${String(err)}`);
|
|
175
180
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
181
|
+
try {
|
|
182
|
+
await unlink(plistPath);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
logger.warn(`Failed to remove plist file: ${String(err)}`);
|
|
186
|
+
}
|
|
187
|
+
if (parsed.autoPatch) {
|
|
188
|
+
await restoreSettings(parsed.proxy, logger);
|
|
182
189
|
}
|
|
183
190
|
logger.info(`Launchd agent uninstalled: ${AGENT_LABEL}`);
|
|
184
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/launchd/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/launchd/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/launchd/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { activateSocket } from "./socket.js";
|
|
2
|
-
export type { NativeActivateFn
|
|
3
|
-
export { installAgent, uninstallAgent, generatePlist, parsePlistArgs,
|
|
4
|
-
export type {
|
|
2
|
+
export type { NativeActivateFn } from "./socket.js";
|
|
3
|
+
export { installAgent, uninstallAgent, generatePlist, parsePlistArgs, AGENT_LABEL, } from "./agent.js";
|
|
4
|
+
export type { PlistOptions } from "./agent.js";
|
package/dist/launchd/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { activateSocket } from "./socket.js";
|
|
2
|
-
export { installAgent, uninstallAgent, generatePlist, parsePlistArgs,
|
|
2
|
+
export { installAgent, uninstallAgent, generatePlist, parsePlistArgs, AGENT_LABEL, } from "./agent.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/launchd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/launchd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/launchd/socket.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type NativeActivateFn = (name: string) => number[];
|
|
2
|
-
|
|
2
|
+
interface ActivateSocketOptions {
|
|
3
3
|
nativeActivate?: NativeActivateFn;
|
|
4
4
|
}
|
|
5
5
|
export declare function activateSocket(name: string, options?: ActivateSocketOptions): number[];
|
|
6
|
+
export {};
|