@polka-codes/cli 0.8.5 → 0.8.7

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 (2) hide show
  1. package/dist/index.js +64 -10
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -31550,7 +31550,7 @@ var {
31550
31550
  Help
31551
31551
  } = import__.default;
31552
31552
  // package.json
31553
- var version = "0.8.5";
31553
+ var version = "0.8.7";
31554
31554
 
31555
31555
  // ../core/src/AiService/AiServiceBase.ts
31556
31556
  class AiServiceBase {
@@ -40953,6 +40953,14 @@ var getStringArray = (args2, name2, defaultValue) => {
40953
40953
  if (ret === "") {
40954
40954
  return [];
40955
40955
  }
40956
+ if (Array.isArray(ret)) {
40957
+ for (const item of ret) {
40958
+ if (typeof item !== "string") {
40959
+ throw new Error(`Invalid argument type: ${name2} ${item}`);
40960
+ }
40961
+ }
40962
+ return ret;
40963
+ }
40956
40964
  if (typeof ret !== "string") {
40957
40965
  throw new Error(`Invalid argument type: ${name2} ${ret}`);
40958
40966
  }
@@ -41021,6 +41029,7 @@ var toolInfo = {
41021
41029
  description: "One or more follow-up questions you need answered before you can continue.",
41022
41030
  required: true,
41023
41031
  allowMultiple: true,
41032
+ usageValue: "questions here",
41024
41033
  children: [
41025
41034
  {
41026
41035
  name: "prompt",
@@ -42235,17 +42244,47 @@ var getAvailableTools = ({
42235
42244
  };
42236
42245
 
42237
42246
  // ../core/src/Agent/parseAssistantMessage.ts
42238
- function parseNestedParameters(content, parameterPrefix) {
42247
+ function parseNestedParameters(content, parameterPrefix, childrenParams) {
42239
42248
  const result = {};
42240
42249
  const nestedParamRegex = new RegExp(`<${parameterPrefix}([^>]+)>([\\s\\S]*?)<\\/${parameterPrefix}\\1>`, "gs");
42250
+ const arrayParams = new Set;
42251
+ if (childrenParams) {
42252
+ for (const param of childrenParams) {
42253
+ if (param.allowMultiple) {
42254
+ arrayParams.add(param.name);
42255
+ }
42256
+ }
42257
+ }
42241
42258
  while (true) {
42242
42259
  const match = nestedParamRegex.exec(content);
42243
42260
  if (match === null)
42244
42261
  break;
42245
42262
  const paramName = match[1];
42246
42263
  const paramContent = match[2].trim();
42247
- if (paramContent.includes(`<${parameterPrefix}`)) {
42248
- result[paramName] = parseNestedParameters(paramContent, parameterPrefix);
42264
+ const childParam = childrenParams?.find((p2) => p2.name === paramName);
42265
+ if (paramContent.includes(`<${parameterPrefix}`) && childParam?.children) {
42266
+ const nestedResult = parseNestedParameters(paramContent, parameterPrefix, childParam.children);
42267
+ if (arrayParams.has(paramName)) {
42268
+ if (!result[paramName]) {
42269
+ result[paramName] = [];
42270
+ }
42271
+ if (Array.isArray(result[paramName])) {
42272
+ result[paramName].push(nestedResult);
42273
+ } else {
42274
+ result[paramName] = [nestedResult];
42275
+ }
42276
+ } else {
42277
+ result[paramName] = nestedResult;
42278
+ }
42279
+ } else if (arrayParams.has(paramName)) {
42280
+ if (!result[paramName]) {
42281
+ result[paramName] = [];
42282
+ }
42283
+ if (Array.isArray(result[paramName])) {
42284
+ result[paramName].push(paramContent);
42285
+ } else {
42286
+ result[paramName] = [paramContent];
42287
+ }
42249
42288
  } else {
42250
42289
  result[paramName] = paramContent;
42251
42290
  }
@@ -42289,15 +42328,29 @@ function parseAssistantMessage(assistantMessage, tools, toolNamePrefix) {
42289
42328
  paramMatches.push(paramMatch[1].trim());
42290
42329
  }
42291
42330
  if (paramMatches.length > 0) {
42292
- if (paramMatches.length === 1) {
42331
+ if (paramMatches.length === 1 && !param.allowMultiple) {
42293
42332
  const paramContent = paramMatches[0];
42294
- if (paramContent.includes(`<${parameterPrefix}`)) {
42295
- params[param.name] = parseNestedParameters(paramContent, parameterPrefix);
42333
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
42334
+ params[param.name] = parseNestedParameters(paramContent, parameterPrefix, param.children);
42296
42335
  } else {
42297
42336
  params[param.name] = paramContent;
42298
42337
  }
42299
42338
  } else {
42300
- params[param.name] = paramMatches;
42339
+ if (param.allowMultiple) {
42340
+ params[param.name] = paramMatches.map((paramContent) => {
42341
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
42342
+ return parseNestedParameters(paramContent, parameterPrefix, param.children);
42343
+ }
42344
+ return paramContent;
42345
+ });
42346
+ } else {
42347
+ const paramContent = paramMatches[0];
42348
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
42349
+ params[param.name] = parseNestedParameters(paramContent, parameterPrefix, param.children);
42350
+ } else {
42351
+ params[param.name] = paramContent;
42352
+ }
42353
+ }
42301
42354
  }
42302
42355
  }
42303
42356
  }
@@ -42350,12 +42403,13 @@ var toolInfoPrompt = (tool, toolNamePrefix, parameterPrefix) => `
42350
42403
  Description: ${tool.description}
42351
42404
 
42352
42405
  Parameters:
42353
- ${tool.parameters.map((param) => `- ${parameterPrefix}${param.name}: (${param.required ? "required" : "optional"}) ${param.description}`).join(`
42406
+ ${tool.parameters.map((param) => `- ${parameterPrefix}${param.name}: (${param.required ? "required" : "optional"})${param.allowMultiple ? " (multiple allowed)" : ""} ${param.description}`).join(`
42354
42407
  `)}
42355
42408
 
42356
42409
  Usage:
42357
42410
  <${toolNamePrefix}${tool.name}>
42358
- ${tool.parameters.map((param) => `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>`).join(`
42411
+ ${tool.parameters.map((param) => param.allowMultiple ? `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>
42412
+ <${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>` : `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>`).join(`
42359
42413
  `)}
42360
42414
  </${toolNamePrefix}${tool.name}>`;
42361
42415
  var toolInfoExamplesPrompt = (tool, example, toolNamePrefix, parameterPrefix) => `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polka-codes/cli",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "license": "AGPL-3.0",
5
5
  "author": "github@polka.codes",
6
6
  "type": "module",