deepcode-ai 1.1.38 → 1.1.40

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
@@ -1927,7 +1927,14 @@ var BuildTurnPolicySchema = z.object({
1927
1927
  "projeto",
1928
1928
  "agente",
1929
1929
  "ferramenta",
1930
- "ferramentas"
1930
+ "ferramentas",
1931
+ "melhoria",
1932
+ "melhorias",
1933
+ "sugestao",
1934
+ "sugestoes",
1935
+ "codigo",
1936
+ "funcionalidade",
1937
+ "funcionalidades"
1931
1938
  ]),
1932
1939
  taskVerbs: BuildTurnPolicyStringArraySchema.default([
1933
1940
  "read",
@@ -1957,6 +1964,16 @@ var BuildTurnPolicySchema = z.object({
1957
1964
  "show",
1958
1965
  "plan",
1959
1966
  "write",
1967
+ "propose",
1968
+ "suggest",
1969
+ "improve",
1970
+ "optimize",
1971
+ "add",
1972
+ "remove",
1973
+ "delete",
1974
+ "migrate",
1975
+ "deploy",
1976
+ "build",
1960
1977
  "leia",
1961
1978
  "abra",
1962
1979
  "inspecione",
@@ -1981,7 +1998,20 @@ var BuildTurnPolicySchema = z.object({
1981
1998
  "compare",
1982
1999
  "mostre",
1983
2000
  "planeje",
1984
- "escreva"
2001
+ "escreva",
2002
+ "proponha",
2003
+ "sugira",
2004
+ "melhore",
2005
+ "otimize",
2006
+ "adicione",
2007
+ "remova",
2008
+ "delete",
2009
+ "veja",
2010
+ "olhe",
2011
+ "configure",
2012
+ "configure",
2013
+ "migre",
2014
+ "construa"
1985
2015
  ]),
1986
2016
  fileExtensions: BuildTurnPolicyStringArraySchema.default([
1987
2017
  ".ts",
@@ -3309,7 +3339,7 @@ function looksLikeWorkspaceRequest(input, policy) {
3309
3339
  if (input.includes("\n") || input.includes("`")) {
3310
3340
  return true;
3311
3341
  }
3312
- return containsConfiguredTerm(normalizedInput, policy.taskVerbs) && normalizedInput.split(/\s+/).length >= 3;
3342
+ return containsConfiguredTerm(normalizedInput, policy.taskVerbs) && normalizedInput.split(/\s+/).length >= 2;
3313
3343
  }
3314
3344
  function isDirectUtilityRequest(input, policy) {
3315
3345
  const normalizedInput = normalizeTurnInput(input);
@@ -6096,7 +6126,8 @@ var OpenAICompatibleProvider = class {
6096
6126
  await this.assertOk(response);
6097
6127
  const pendingTools = /* @__PURE__ */ new Map();
6098
6128
  let lastUsage = null;
6099
- let contentToolBuffer = null;
6129
+ const bufferAllContent = Boolean(this.contentToolCallParser);
6130
+ let bufferedContent = "";
6100
6131
  for await (const event of parseSse(response)) {
6101
6132
  const streamError = getOpenAICompatibleStreamError(event);
6102
6133
  if (streamError) {
@@ -6108,16 +6139,8 @@ var OpenAICompatibleProvider = class {
6108
6139
  const choice = event.choices?.[0];
6109
6140
  const delta = choice?.delta;
6110
6141
  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
- }
6142
+ if (bufferAllContent) {
6143
+ bufferedContent += delta.content;
6121
6144
  } else {
6122
6145
  yield { type: "delta", content: delta.content };
6123
6146
  }
@@ -6159,8 +6182,10 @@ var OpenAICompatibleProvider = class {
6159
6182
  };
6160
6183
  }
6161
6184
  }
6162
- if (contentToolBuffer && this.contentToolCallParser) {
6163
- const parsed = this.contentToolCallParser(contentToolBuffer);
6185
+ if (bufferAllContent && this.contentToolCallParser) {
6186
+ const marker = this.contentToolCallMarker;
6187
+ const likelyHasDsml = !marker || bufferedContent.includes(marker);
6188
+ const parsed = likelyHasDsml ? this.contentToolCallParser(bufferedContent) : null;
6164
6189
  if (parsed) {
6165
6190
  if (parsed.remainder) yield { type: "delta", content: parsed.remainder };
6166
6191
  for (let i = 0; i < parsed.toolCalls.length; i++) {
@@ -6170,8 +6195,8 @@ var OpenAICompatibleProvider = class {
6170
6195
  call: { id: `dsml_${i}`, name: call.name, arguments: call.arguments }
6171
6196
  };
6172
6197
  }
6173
- } else {
6174
- yield { type: "delta", content: contentToolBuffer };
6198
+ } else if (bufferedContent) {
6199
+ yield { type: "delta", content: bufferedContent };
6175
6200
  }
6176
6201
  }
6177
6202
  for (const [index, call] of pendingTools) {
@@ -6340,30 +6365,31 @@ function toOpenAICompatibleToolChoice(toolChoice) {
6340
6365
  }
6341
6366
  return toolChoice;
6342
6367
  }
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>`;
6368
+ var PIPE_PAT = "[\uFF5C|]{1,2}";
6369
+ var DSML_HINT = "DSML";
6370
+ var TOOL_CALLS_OPEN_RE = new RegExp(`<${PIPE_PAT}DSML${PIPE_PAT}tool_calls>`, "i");
6371
+ var TOOL_CALLS_CLOSE_RE = new RegExp(`<\\/${PIPE_PAT}DSML${PIPE_PAT}tool_calls>`, "i");
6372
+ var INVOKE_RE_SRC = `<${PIPE_PAT}DSML${PIPE_PAT}invoke name="([^"]+)">(.*?)<\\/${PIPE_PAT}DSML${PIPE_PAT}invoke>`;
6373
+ var PARAM_RE_SRC = `<${PIPE_PAT}DSML${PIPE_PAT}parameter name="([^"]+)"([^>]*)>(.*?)<\\/${PIPE_PAT}DSML${PIPE_PAT}parameter>`;
6346
6374
  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);
6375
+ const openMatch = TOOL_CALLS_OPEN_RE.exec(content);
6376
+ if (!openMatch) return null;
6377
+ const startIdx = openMatch.index;
6378
+ const blockStart = startIdx + openMatch[0].length;
6379
+ const closeMatch = TOOL_CALLS_CLOSE_RE.exec(content.slice(blockStart));
6380
+ if (!closeMatch) return null;
6381
+ const blockEnd = blockStart + closeMatch.index;
6382
+ const closeEnd = blockEnd + closeMatch[0].length;
6383
+ const remainder = (content.slice(0, startIdx) + content.slice(closeEnd)).trim();
6384
+ const block = content.slice(blockStart, blockEnd);
6353
6385
  const toolCalls = [];
6354
- const invokeRe = new RegExp(
6355
- `<${FF}DSML${FF}invoke name="([^"]+)">(.*?)<\\/${FF}DSML${FF}invoke>`,
6356
- "gis"
6357
- );
6386
+ const invokeRe = new RegExp(INVOKE_RE_SRC, "gis");
6358
6387
  let invokeMatch;
6359
6388
  while ((invokeMatch = invokeRe.exec(block)) !== null) {
6360
6389
  const toolName = invokeMatch[1];
6361
6390
  const paramBlock = invokeMatch[2];
6362
6391
  const args = {};
6363
- const paramRe = new RegExp(
6364
- `<${FF}DSML${FF}parameter name="([^"]+)"([^>]*)>(.*?)<\\/${FF}DSML${FF}parameter>`,
6365
- "gis"
6366
- );
6392
+ const paramRe = new RegExp(PARAM_RE_SRC, "gis");
6367
6393
  let paramMatch;
6368
6394
  while ((paramMatch = paramRe.exec(paramBlock)) !== null) {
6369
6395
  const paramName = paramMatch[1];
@@ -6452,7 +6478,7 @@ var ProviderManager = class {
6452
6478
  thinking: buildDeepSeekThinkingOverride(context.model)
6453
6479
  }),
6454
6480
  contentToolCallParser: parseDSMLToolCalls,
6455
- contentToolCallMarker: DSML_OPEN_TAG
6481
+ contentToolCallMarker: DSML_HINT
6456
6482
  })
6457
6483
  );
6458
6484
  this.register(
@@ -28428,7 +28454,7 @@ function parseVersion2(version) {
28428
28454
  if (!match) return null;
28429
28455
  return [Number(match[1]), Number(match[2]), Number(match[3])];
28430
28456
  }
28431
- var VERSION = "1.1.38".length > 0 ? "1.1.38" : "0.0.0-dev";
28457
+ var VERSION = "1.1.40".length > 0 ? "1.1.40" : "0.0.0-dev";
28432
28458
  var updateCommand = {
28433
28459
  name: "update",
28434
28460
  description: "Check published DeepCode versions",