xcode-copilot-server 3.4.2 → 3.4.3

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.
@@ -85,6 +85,10 @@ export class ConversationManager {
85
85
  this.logger.debug(`Primary ${primary.id} is busy, creating isolated conversation`);
86
86
  return { conversation: this.create(), isReuse: false };
87
87
  }
88
+ if (primary.state.toolRouter.hasPending) {
89
+ this.logger.debug(`Primary ${primary.id} has pending tool calls, creating isolated conversation`);
90
+ return { conversation: this.create(), isReuse: false };
91
+ }
88
92
  if (!primary.session) {
89
93
  // No SDK session yet. Create an isolated conversation so the primary
90
94
  // stays available for the first real request.
@@ -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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"}
@@ -1,6 +1,10 @@
1
1
  export async function handleContinuation(existingConv, reply, logger, callbacks) {
2
2
  const { state } = existingConv;
3
3
  logger.info(`Continuation for conversation ${existingConv.id} (hasPending=${String(state.toolRouter.hasPending)}, sessionActive=${String(state.session.sessionActive)})`);
4
+ if (state.session.sessionActive) {
5
+ logger.warn(`Conversation ${existingConv.id} is already streaming, cannot handle continuation`);
6
+ return false;
7
+ }
4
8
  state.replies.setReply(reply);
5
9
  callbacks.startStream();
6
10
  reply.raw.on("close", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../../src/providers/shared/continuation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAA0B,EAC1B,KAAmB,EACnB,MAAc,EACd,SAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,MAAM,CAAC,IAAI,CAAC,iCAAiC,YAAY,CAAC,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1K,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,CAAC;IAExB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,cAAc,EAAE,CAAC;IAC3B,MAAM,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAC3C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../../src/providers/shared/continuation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAA0B,EAC1B,KAAmB,EACnB,MAAc,EACd,SAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,MAAM,CAAC,IAAI,CAAC,iCAAiC,YAAY,CAAC,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1K,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAC,EAAE,mDAAmD,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,CAAC;IAExB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,cAAc,EAAE,CAAC;IAC3B,MAAM,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAC3C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -43,8 +43,11 @@ export function createSessionConfig({ model, systemMessage, logger, config, supp
43
43
  supportsReasoningEffort,
44
44
  cwd,
45
45
  });
46
- if (!hasToolBridge)
47
- return base;
46
+ // Hide SDK built-ins so the model uses bridge tools (forwarded to Xcode).
47
+ const excludedTools = SDK_BUILT_IN_TOOLS.filter((t) => !config.allowedCliTools.includes("*") && !config.allowedCliTools.includes(t));
48
+ if (!hasToolBridge) {
49
+ return excludedTools.length > 0 ? { ...base, excludedTools } : base;
50
+ }
48
51
  const originalOnPreToolUse = base.hooks?.onPreToolUse;
49
52
  // Bridge controls tool visibility, so remove availableTools.
50
53
  // Can't assign undefined with exactOptionalPropertyTypes, so destructure.
@@ -60,8 +63,7 @@ export function createSessionConfig({ model, systemMessage, logger, config, supp
60
63
  tools: ["*"],
61
64
  },
62
65
  },
63
- // Hide SDK built-ins so the model uses bridge tools (forwarded to Xcode).
64
- excludedTools: SDK_BUILT_IN_TOOLS.filter((t) => !config.allowedCliTools.includes("*") && !config.allowedCliTools.includes(t)),
66
+ excludedTools,
65
67
  hooks: {
66
68
  ...base.hooks,
67
69
  onPreToolUse: (input, invocation) => {
@@ -1 +1 @@
1
- {"version":3,"file":"session-config.js","sourceRoot":"","sources":["../../../src/providers/shared/session-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-config.js","sourceRoot":"","sources":["../../../src/providers/shared/session-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEnF,MAAM,kBAAkB,GAAa;IACnC,QAAQ;IACR,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;IAC3D,WAAW;IACX,MAAM,EAAE,aAAa;IACrB,SAAS;IACT,IAAI,EAAE,MAAM;IACZ,2BAA2B;IAC3B,MAAM,EAAE,aAAa,EAAE,eAAe;IACtC,cAAc;IACd,UAAU;IACV,OAAO;IACP,OAAO,EAAE,WAAW,EAAE,iCAAiC;CACxD,CAAC;AAoBF,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAqB;IACrE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;IACvD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD,MAAM,UAAU,2BAA2B,CACzC,WAAqC,EACrC,GAAoB;IAEpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,OAAO,mBAAmB,CAAC;QACzB,GAAG,WAAW;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,SAAS;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,cAAc,EAAE,GAAG,CAAC,cAAc;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,uBAAuB,EACvB,GAAG,EACH,aAAa,EACb,IAAI,EACJ,cAAc,GACO;IACrB,MAAM,IAAI,GAAG,uBAAuB,CAAC;QACnC,KAAK;QACL,aAAa;QACb,MAAM;QACN,MAAM;QACN,uBAAuB;QACvB,GAAG;KACJ,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpF,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;IAEtD,6DAA6D;IAC7D,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,EAAE,cAAc,EAAE,GAAG,yBAAyB,EAAE,GAAG,IAAI,CAAC;IAE9D,OAAO;QACL,GAAG,yBAAyB;QAC5B,UAAU,EAAE;YACV,GAAG,IAAI,CAAC,UAAU;YAClB,CAAC,kBAAkB,CAAC,EAAE;gBACpB,IAAI,EAAE,MAAe;gBACrB,GAAG,EAAE,oBAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,cAAc,EAAE;gBAC7D,KAAK,EAAE,CAAC,GAAG,CAAC;aACb;SACF;QACD,aAAa;QACb,KAAK,EAAE;YACL,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAClD,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,QAAQ,qBAAqB,CAAC,CAAC;oBAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,OAAgB,EAAE,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,OAAgB,EAAE,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { FastifyReply } from "fastify";
2
2
  export declare class ReplyTracker {
3
3
  private reply;
4
- private streamingDone;
4
+ private streamingDoneCallbacks;
5
5
  get currentReply(): FastifyReply | null;
6
6
  setReply(reply: FastifyReply): void;
7
7
  clearReply(): void;
@@ -1,6 +1,6 @@
1
1
  export class ReplyTracker {
2
2
  reply = null;
3
- streamingDone = null;
3
+ streamingDoneCallbacks = [];
4
4
  get currentReply() {
5
5
  return this.reply;
6
6
  }
@@ -11,17 +11,14 @@ export class ReplyTracker {
11
11
  this.reply = null;
12
12
  }
13
13
  notifyStreamingDone() {
14
- if (this.streamingDone) {
15
- this.streamingDone();
16
- this.streamingDone = null;
17
- }
14
+ const callbacks = this.streamingDoneCallbacks;
15
+ this.streamingDoneCallbacks = [];
16
+ for (const cb of callbacks)
17
+ cb();
18
18
  }
19
19
  waitForStreamingDone() {
20
- if (this.streamingDone) {
21
- throw new Error("Already waiting for streaming to complete");
22
- }
23
20
  return new Promise((resolve) => {
24
- this.streamingDone = resolve;
21
+ this.streamingDoneCallbacks.push(resolve);
25
22
  });
26
23
  }
27
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reply-tracker.js","sourceRoot":"","sources":["../../src/tool-bridge/reply-tracker.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,KAAK,GAAwB,IAAI,CAAC;IAClC,aAAa,GAAwB,IAAI,CAAC;IAElD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAmB;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"reply-tracker.js","sourceRoot":"","sources":["../../src/tool-bridge/reply-tracker.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,KAAK,GAAwB,IAAI,CAAC;IAClC,sBAAsB,GAAmB,EAAE,CAAC;IAEpD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAmB;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,mBAAmB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,EAAE,IAAI,SAAS;YAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xcode-copilot-server",
3
- "version": "3.4.2",
3
+ "version": "3.4.3",
4
4
  "description": "OpenAI-compatible proxy API server for Xcode, powered by GitHub Copilot",
5
5
  "type": "module",
6
6
  "license": "MIT",