@polka-codes/runner 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
@@ -32736,7 +32736,7 @@ var {
32736
32736
  Help
32737
32737
  } = import__.default;
32738
32738
  // package.json
32739
- var version = "0.8.5";
32739
+ var version = "0.8.7";
32740
32740
 
32741
32741
  // src/runner.ts
32742
32742
  import { execSync } from "node:child_process";
@@ -42129,6 +42129,14 @@ var getStringArray = (args2, name2, defaultValue) => {
42129
42129
  if (ret === "") {
42130
42130
  return [];
42131
42131
  }
42132
+ if (Array.isArray(ret)) {
42133
+ for (const item of ret) {
42134
+ if (typeof item !== "string") {
42135
+ throw new Error(`Invalid argument type: ${name2} ${item}`);
42136
+ }
42137
+ }
42138
+ return ret;
42139
+ }
42132
42140
  if (typeof ret !== "string") {
42133
42141
  throw new Error(`Invalid argument type: ${name2} ${ret}`);
42134
42142
  }
@@ -42197,6 +42205,7 @@ var toolInfo = {
42197
42205
  description: "One or more follow-up questions you need answered before you can continue.",
42198
42206
  required: true,
42199
42207
  allowMultiple: true,
42208
+ usageValue: "questions here",
42200
42209
  children: [
42201
42210
  {
42202
42211
  name: "prompt",
@@ -43411,17 +43420,47 @@ var getAvailableTools = ({
43411
43420
  };
43412
43421
 
43413
43422
  // ../core/src/Agent/parseAssistantMessage.ts
43414
- function parseNestedParameters(content, parameterPrefix) {
43423
+ function parseNestedParameters(content, parameterPrefix, childrenParams) {
43415
43424
  const result = {};
43416
43425
  const nestedParamRegex = new RegExp(`<${parameterPrefix}([^>]+)>([\\s\\S]*?)<\\/${parameterPrefix}\\1>`, "gs");
43426
+ const arrayParams = new Set;
43427
+ if (childrenParams) {
43428
+ for (const param of childrenParams) {
43429
+ if (param.allowMultiple) {
43430
+ arrayParams.add(param.name);
43431
+ }
43432
+ }
43433
+ }
43417
43434
  while (true) {
43418
43435
  const match = nestedParamRegex.exec(content);
43419
43436
  if (match === null)
43420
43437
  break;
43421
43438
  const paramName = match[1];
43422
43439
  const paramContent = match[2].trim();
43423
- if (paramContent.includes(`<${parameterPrefix}`)) {
43424
- result[paramName] = parseNestedParameters(paramContent, parameterPrefix);
43440
+ const childParam = childrenParams?.find((p2) => p2.name === paramName);
43441
+ if (paramContent.includes(`<${parameterPrefix}`) && childParam?.children) {
43442
+ const nestedResult = parseNestedParameters(paramContent, parameterPrefix, childParam.children);
43443
+ if (arrayParams.has(paramName)) {
43444
+ if (!result[paramName]) {
43445
+ result[paramName] = [];
43446
+ }
43447
+ if (Array.isArray(result[paramName])) {
43448
+ result[paramName].push(nestedResult);
43449
+ } else {
43450
+ result[paramName] = [nestedResult];
43451
+ }
43452
+ } else {
43453
+ result[paramName] = nestedResult;
43454
+ }
43455
+ } else if (arrayParams.has(paramName)) {
43456
+ if (!result[paramName]) {
43457
+ result[paramName] = [];
43458
+ }
43459
+ if (Array.isArray(result[paramName])) {
43460
+ result[paramName].push(paramContent);
43461
+ } else {
43462
+ result[paramName] = [paramContent];
43463
+ }
43425
43464
  } else {
43426
43465
  result[paramName] = paramContent;
43427
43466
  }
@@ -43465,15 +43504,29 @@ function parseAssistantMessage(assistantMessage, tools, toolNamePrefix) {
43465
43504
  paramMatches.push(paramMatch[1].trim());
43466
43505
  }
43467
43506
  if (paramMatches.length > 0) {
43468
- if (paramMatches.length === 1) {
43507
+ if (paramMatches.length === 1 && !param.allowMultiple) {
43469
43508
  const paramContent = paramMatches[0];
43470
- if (paramContent.includes(`<${parameterPrefix}`)) {
43471
- params[param.name] = parseNestedParameters(paramContent, parameterPrefix);
43509
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
43510
+ params[param.name] = parseNestedParameters(paramContent, parameterPrefix, param.children);
43472
43511
  } else {
43473
43512
  params[param.name] = paramContent;
43474
43513
  }
43475
43514
  } else {
43476
- params[param.name] = paramMatches;
43515
+ if (param.allowMultiple) {
43516
+ params[param.name] = paramMatches.map((paramContent) => {
43517
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
43518
+ return parseNestedParameters(paramContent, parameterPrefix, param.children);
43519
+ }
43520
+ return paramContent;
43521
+ });
43522
+ } else {
43523
+ const paramContent = paramMatches[0];
43524
+ if (paramContent.includes(`<${parameterPrefix}`) && param.children) {
43525
+ params[param.name] = parseNestedParameters(paramContent, parameterPrefix, param.children);
43526
+ } else {
43527
+ params[param.name] = paramContent;
43528
+ }
43529
+ }
43477
43530
  }
43478
43531
  }
43479
43532
  }
@@ -43526,12 +43579,13 @@ var toolInfoPrompt = (tool, toolNamePrefix, parameterPrefix) => `
43526
43579
  Description: ${tool.description}
43527
43580
 
43528
43581
  Parameters:
43529
- ${tool.parameters.map((param) => `- ${parameterPrefix}${param.name}: (${param.required ? "required" : "optional"}) ${param.description}`).join(`
43582
+ ${tool.parameters.map((param) => `- ${parameterPrefix}${param.name}: (${param.required ? "required" : "optional"})${param.allowMultiple ? " (multiple allowed)" : ""} ${param.description}`).join(`
43530
43583
  `)}
43531
43584
 
43532
43585
  Usage:
43533
43586
  <${toolNamePrefix}${tool.name}>
43534
- ${tool.parameters.map((param) => `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>`).join(`
43587
+ ${tool.parameters.map((param) => param.allowMultiple ? `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>
43588
+ <${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>` : `<${parameterPrefix}${param.name}>${param.usageValue}</${parameterPrefix}${param.name}>`).join(`
43535
43589
  `)}
43536
43590
  </${toolNamePrefix}${tool.name}>`;
43537
43591
  var toolInfoExamplesPrompt = (tool, example, toolNamePrefix, parameterPrefix) => `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polka-codes/runner",
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",