deepcode-ai 1.1.38 → 1.1.39

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/index.js CHANGED
@@ -6096,7 +6096,8 @@ var OpenAICompatibleProvider = class {
6096
6096
  await this.assertOk(response);
6097
6097
  const pendingTools = /* @__PURE__ */ new Map();
6098
6098
  let lastUsage = null;
6099
- let contentToolBuffer = null;
6099
+ const bufferAllContent = Boolean(this.contentToolCallParser);
6100
+ let bufferedContent = "";
6100
6101
  for await (const event of parseSse(response)) {
6101
6102
  const streamError = getOpenAICompatibleStreamError(event);
6102
6103
  if (streamError) {
@@ -6108,16 +6109,8 @@ var OpenAICompatibleProvider = class {
6108
6109
  const choice = event.choices?.[0];
6109
6110
  const delta = choice?.delta;
6110
6111
  if (delta?.content) {
6111
- if (this.contentToolCallParser && this.contentToolCallMarker) {
6112
- if (contentToolBuffer !== null) {
6113
- contentToolBuffer += delta.content;
6114
- } else if (delta.content.includes(this.contentToolCallMarker)) {
6115
- const markerPos = delta.content.indexOf(this.contentToolCallMarker);
6116
- if (markerPos > 0) yield { type: "delta", content: delta.content.slice(0, markerPos) };
6117
- contentToolBuffer = delta.content.slice(markerPos);
6118
- } else {
6119
- yield { type: "delta", content: delta.content };
6120
- }
6112
+ if (bufferAllContent) {
6113
+ bufferedContent += delta.content;
6121
6114
  } else {
6122
6115
  yield { type: "delta", content: delta.content };
6123
6116
  }
@@ -6159,8 +6152,10 @@ var OpenAICompatibleProvider = class {
6159
6152
  };
6160
6153
  }
6161
6154
  }
6162
- if (contentToolBuffer && this.contentToolCallParser) {
6163
- const parsed = this.contentToolCallParser(contentToolBuffer);
6155
+ if (bufferAllContent && this.contentToolCallParser) {
6156
+ const marker = this.contentToolCallMarker;
6157
+ const likelyHasDsml = !marker || bufferedContent.includes(marker);
6158
+ const parsed = likelyHasDsml ? this.contentToolCallParser(bufferedContent) : null;
6164
6159
  if (parsed) {
6165
6160
  if (parsed.remainder) yield { type: "delta", content: parsed.remainder };
6166
6161
  for (let i = 0; i < parsed.toolCalls.length; i++) {
@@ -6170,8 +6165,8 @@ var OpenAICompatibleProvider = class {
6170
6165
  call: { id: `dsml_${i}`, name: call.name, arguments: call.arguments }
6171
6166
  };
6172
6167
  }
6173
- } else {
6174
- yield { type: "delta", content: contentToolBuffer };
6168
+ } else if (bufferedContent) {
6169
+ yield { type: "delta", content: bufferedContent };
6175
6170
  }
6176
6171
  }
6177
6172
  for (const [index, call] of pendingTools) {
@@ -6340,30 +6335,31 @@ function toOpenAICompatibleToolChoice(toolChoice) {
6340
6335
  }
6341
6336
  return toolChoice;
6342
6337
  }
6343
- var FF = "\uFF5C\uFF5C";
6344
- var DSML_OPEN_TAG = `<${FF}DSML${FF}tool_calls>`;
6345
- var DSML_CLOSE_TAG = `</${FF}DSML${FF}tool_calls>`;
6338
+ var PIPE_PAT = "[\uFF5C|]{1,2}";
6339
+ var DSML_HINT = "DSML";
6340
+ var TOOL_CALLS_OPEN_RE = new RegExp(`<${PIPE_PAT}DSML${PIPE_PAT}tool_calls>`, "i");
6341
+ var TOOL_CALLS_CLOSE_RE = new RegExp(`<\\/${PIPE_PAT}DSML${PIPE_PAT}tool_calls>`, "i");
6342
+ var INVOKE_RE_SRC = `<${PIPE_PAT}DSML${PIPE_PAT}invoke name="([^"]+)">(.*?)<\\/${PIPE_PAT}DSML${PIPE_PAT}invoke>`;
6343
+ var PARAM_RE_SRC = `<${PIPE_PAT}DSML${PIPE_PAT}parameter name="([^"]+)"([^>]*)>(.*?)<\\/${PIPE_PAT}DSML${PIPE_PAT}parameter>`;
6346
6344
  function parseDSMLToolCalls(content) {
6347
- const startIdx = content.indexOf(DSML_OPEN_TAG);
6348
- if (startIdx === -1) return null;
6349
- const endIdx = content.indexOf(DSML_CLOSE_TAG, startIdx);
6350
- if (endIdx === -1) return null;
6351
- const remainder = (content.slice(0, startIdx) + content.slice(endIdx + DSML_CLOSE_TAG.length)).trim();
6352
- const block = content.slice(startIdx + DSML_OPEN_TAG.length, endIdx);
6345
+ const openMatch = TOOL_CALLS_OPEN_RE.exec(content);
6346
+ if (!openMatch) return null;
6347
+ const startIdx = openMatch.index;
6348
+ const blockStart = startIdx + openMatch[0].length;
6349
+ const closeMatch = TOOL_CALLS_CLOSE_RE.exec(content.slice(blockStart));
6350
+ if (!closeMatch) return null;
6351
+ const blockEnd = blockStart + closeMatch.index;
6352
+ const closeEnd = blockEnd + closeMatch[0].length;
6353
+ const remainder = (content.slice(0, startIdx) + content.slice(closeEnd)).trim();
6354
+ const block = content.slice(blockStart, blockEnd);
6353
6355
  const toolCalls = [];
6354
- const invokeRe = new RegExp(
6355
- `<${FF}DSML${FF}invoke name="([^"]+)">(.*?)<\\/${FF}DSML${FF}invoke>`,
6356
- "gis"
6357
- );
6356
+ const invokeRe = new RegExp(INVOKE_RE_SRC, "gis");
6358
6357
  let invokeMatch;
6359
6358
  while ((invokeMatch = invokeRe.exec(block)) !== null) {
6360
6359
  const toolName = invokeMatch[1];
6361
6360
  const paramBlock = invokeMatch[2];
6362
6361
  const args = {};
6363
- const paramRe = new RegExp(
6364
- `<${FF}DSML${FF}parameter name="([^"]+)"([^>]*)>(.*?)<\\/${FF}DSML${FF}parameter>`,
6365
- "gis"
6366
- );
6362
+ const paramRe = new RegExp(PARAM_RE_SRC, "gis");
6367
6363
  let paramMatch;
6368
6364
  while ((paramMatch = paramRe.exec(paramBlock)) !== null) {
6369
6365
  const paramName = paramMatch[1];
@@ -6452,7 +6448,7 @@ var ProviderManager = class {
6452
6448
  thinking: buildDeepSeekThinkingOverride(context.model)
6453
6449
  }),
6454
6450
  contentToolCallParser: parseDSMLToolCalls,
6455
- contentToolCallMarker: DSML_OPEN_TAG
6451
+ contentToolCallMarker: DSML_HINT
6456
6452
  })
6457
6453
  );
6458
6454
  this.register(
@@ -28428,7 +28424,7 @@ function parseVersion2(version) {
28428
28424
  if (!match) return null;
28429
28425
  return [Number(match[1]), Number(match[2]), Number(match[3])];
28430
28426
  }
28431
- var VERSION = "1.1.38".length > 0 ? "1.1.38" : "0.0.0-dev";
28427
+ var VERSION = "1.1.39".length > 0 ? "1.1.39" : "0.0.0-dev";
28432
28428
  var updateCommand = {
28433
28429
  name: "update",
28434
28430
  description: "Check published DeepCode versions",