llmist 1.0.0 → 1.1.0
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/{chunk-53MM55JS.js → chunk-OIPLYP7M.js} +2 -2
- package/dist/{chunk-T24KLXY4.js → chunk-VXPZQZF5.js} +108 -21
- package/dist/chunk-VXPZQZF5.js.map +1 -0
- package/dist/cli.cjs +568 -52
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +471 -34
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +103 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -4
- package/dist/index.d.ts +15 -4
- package/dist/index.js +2 -2
- package/dist/testing/index.cjs +103 -20
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-T24KLXY4.js.map +0 -1
- /package/dist/{chunk-53MM55JS.js.map → chunk-OIPLYP7M.js.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
init_constants,
|
|
10
10
|
init_gadget,
|
|
11
11
|
init_logger
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VXPZQZF5.js";
|
|
13
13
|
|
|
14
14
|
// src/gadgets/validation.ts
|
|
15
15
|
function validateAndApplyDefaults(schema, params) {
|
|
@@ -935,4 +935,4 @@ export {
|
|
|
935
935
|
MockGadgetBuilder,
|
|
936
936
|
mockGadget
|
|
937
937
|
};
|
|
938
|
-
//# sourceMappingURL=chunk-
|
|
938
|
+
//# sourceMappingURL=chunk-OIPLYP7M.js.map
|
|
@@ -1346,21 +1346,107 @@ var init_exceptions = __esm({
|
|
|
1346
1346
|
}
|
|
1347
1347
|
});
|
|
1348
1348
|
|
|
1349
|
+
// src/gadgets/error-formatter.ts
|
|
1350
|
+
var GadgetErrorFormatter;
|
|
1351
|
+
var init_error_formatter = __esm({
|
|
1352
|
+
"src/gadgets/error-formatter.ts"() {
|
|
1353
|
+
"use strict";
|
|
1354
|
+
init_constants();
|
|
1355
|
+
GadgetErrorFormatter = class {
|
|
1356
|
+
argPrefix;
|
|
1357
|
+
startPrefix;
|
|
1358
|
+
endPrefix;
|
|
1359
|
+
constructor(options = {}) {
|
|
1360
|
+
this.argPrefix = options.argPrefix ?? GADGET_ARG_PREFIX;
|
|
1361
|
+
this.startPrefix = options.startPrefix ?? GADGET_START_PREFIX;
|
|
1362
|
+
this.endPrefix = options.endPrefix ?? GADGET_END_PREFIX;
|
|
1363
|
+
}
|
|
1364
|
+
/**
|
|
1365
|
+
* Format a Zod validation error with full gadget instructions.
|
|
1366
|
+
*
|
|
1367
|
+
* @param gadgetName - Name of the gadget that was called
|
|
1368
|
+
* @param zodError - The Zod validation error
|
|
1369
|
+
* @param gadget - The gadget instance (for generating instructions)
|
|
1370
|
+
* @returns Formatted error message with usage instructions
|
|
1371
|
+
*/
|
|
1372
|
+
formatValidationError(gadgetName, zodError, gadget) {
|
|
1373
|
+
const parts = [];
|
|
1374
|
+
parts.push(`Error: Invalid parameters for '${gadgetName}':`);
|
|
1375
|
+
for (const issue of zodError.issues) {
|
|
1376
|
+
const path = issue.path.join(".") || "root";
|
|
1377
|
+
parts.push(` - ${path}: ${issue.message}`);
|
|
1378
|
+
}
|
|
1379
|
+
parts.push("");
|
|
1380
|
+
parts.push("Gadget Usage:");
|
|
1381
|
+
parts.push(gadget.getInstruction(this.argPrefix));
|
|
1382
|
+
return parts.join("\n");
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Format a parse error with block format reference.
|
|
1386
|
+
*
|
|
1387
|
+
* @param gadgetName - Name of the gadget that was called
|
|
1388
|
+
* @param parseError - The parse error message
|
|
1389
|
+
* @param gadget - The gadget instance if found (for generating instructions)
|
|
1390
|
+
* @returns Formatted error message with format reference
|
|
1391
|
+
*/
|
|
1392
|
+
formatParseError(gadgetName, parseError, gadget) {
|
|
1393
|
+
const parts = [];
|
|
1394
|
+
parts.push(`Error: Failed to parse parameters for '${gadgetName}':`);
|
|
1395
|
+
parts.push(` ${parseError}`);
|
|
1396
|
+
if (gadget) {
|
|
1397
|
+
parts.push("");
|
|
1398
|
+
parts.push("Gadget Usage:");
|
|
1399
|
+
parts.push(gadget.getInstruction(this.argPrefix));
|
|
1400
|
+
}
|
|
1401
|
+
parts.push("");
|
|
1402
|
+
parts.push("Block Format Reference:");
|
|
1403
|
+
parts.push(` ${this.startPrefix}${gadgetName}`);
|
|
1404
|
+
parts.push(` ${this.argPrefix}parameterName`);
|
|
1405
|
+
parts.push(" parameter value here");
|
|
1406
|
+
parts.push(` ${this.endPrefix}`);
|
|
1407
|
+
return parts.join("\n");
|
|
1408
|
+
}
|
|
1409
|
+
/**
|
|
1410
|
+
* Format a registry error (gadget not found) with available gadgets list.
|
|
1411
|
+
*
|
|
1412
|
+
* @param gadgetName - Name of the gadget that was not found
|
|
1413
|
+
* @param availableGadgets - List of available gadget names
|
|
1414
|
+
* @returns Formatted error message with available gadgets
|
|
1415
|
+
*/
|
|
1416
|
+
formatRegistryError(gadgetName, availableGadgets) {
|
|
1417
|
+
const parts = [];
|
|
1418
|
+
parts.push(`Error: Gadget '${gadgetName}' not found.`);
|
|
1419
|
+
if (availableGadgets.length > 0) {
|
|
1420
|
+
parts.push("");
|
|
1421
|
+
parts.push(`Available gadgets: ${availableGadgets.join(", ")}`);
|
|
1422
|
+
} else {
|
|
1423
|
+
parts.push("");
|
|
1424
|
+
parts.push("No gadgets are currently registered.");
|
|
1425
|
+
}
|
|
1426
|
+
return parts.join("\n");
|
|
1427
|
+
}
|
|
1428
|
+
};
|
|
1429
|
+
}
|
|
1430
|
+
});
|
|
1431
|
+
|
|
1349
1432
|
// src/gadgets/executor.ts
|
|
1350
1433
|
var GadgetExecutor;
|
|
1351
1434
|
var init_executor = __esm({
|
|
1352
1435
|
"src/gadgets/executor.ts"() {
|
|
1353
1436
|
"use strict";
|
|
1354
1437
|
init_logger();
|
|
1438
|
+
init_error_formatter();
|
|
1355
1439
|
init_exceptions();
|
|
1356
1440
|
GadgetExecutor = class {
|
|
1357
|
-
constructor(registry, onHumanInputRequired, logger, defaultGadgetTimeoutMs) {
|
|
1441
|
+
constructor(registry, onHumanInputRequired, logger, defaultGadgetTimeoutMs, errorFormatterOptions) {
|
|
1358
1442
|
this.registry = registry;
|
|
1359
1443
|
this.onHumanInputRequired = onHumanInputRequired;
|
|
1360
1444
|
this.defaultGadgetTimeoutMs = defaultGadgetTimeoutMs;
|
|
1361
1445
|
this.logger = logger ?? createLogger({ name: "llmist:executor" });
|
|
1446
|
+
this.errorFormatter = new GadgetErrorFormatter(errorFormatterOptions);
|
|
1362
1447
|
}
|
|
1363
1448
|
logger;
|
|
1449
|
+
errorFormatter;
|
|
1364
1450
|
/**
|
|
1365
1451
|
* Creates a promise that rejects with a TimeoutException after the specified timeout.
|
|
1366
1452
|
*/
|
|
@@ -1385,11 +1471,12 @@ var init_executor = __esm({
|
|
|
1385
1471
|
const gadget = this.registry.get(call.gadgetName);
|
|
1386
1472
|
if (!gadget) {
|
|
1387
1473
|
this.logger.error("Gadget not found", { gadgetName: call.gadgetName });
|
|
1474
|
+
const availableGadgets = this.registry.getNames();
|
|
1388
1475
|
return {
|
|
1389
1476
|
gadgetName: call.gadgetName,
|
|
1390
1477
|
invocationId: call.invocationId,
|
|
1391
1478
|
parameters: call.parameters ?? {},
|
|
1392
|
-
error:
|
|
1479
|
+
error: this.errorFormatter.formatRegistryError(call.gadgetName, availableGadgets),
|
|
1393
1480
|
executionTimeMs: Date.now() - startTime
|
|
1394
1481
|
};
|
|
1395
1482
|
}
|
|
@@ -1399,25 +1486,26 @@ var init_executor = __esm({
|
|
|
1399
1486
|
parseError: call.parseError,
|
|
1400
1487
|
rawParameters: call.parametersRaw
|
|
1401
1488
|
});
|
|
1489
|
+
const parseErrorMessage = call.parseError ?? "Failed to parse parameters";
|
|
1402
1490
|
return {
|
|
1403
1491
|
gadgetName: call.gadgetName,
|
|
1404
1492
|
invocationId: call.invocationId,
|
|
1405
1493
|
parameters: {},
|
|
1406
|
-
error: call.
|
|
1494
|
+
error: this.errorFormatter.formatParseError(call.gadgetName, parseErrorMessage, gadget),
|
|
1407
1495
|
executionTimeMs: Date.now() - startTime
|
|
1408
1496
|
};
|
|
1409
1497
|
}
|
|
1410
1498
|
if (gadget.parameterSchema) {
|
|
1411
1499
|
const validationResult = gadget.parameterSchema.safeParse(rawParameters);
|
|
1412
1500
|
if (!validationResult.success) {
|
|
1413
|
-
const
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1501
|
+
const validationError = this.errorFormatter.formatValidationError(
|
|
1502
|
+
call.gadgetName,
|
|
1503
|
+
validationResult.error,
|
|
1504
|
+
gadget
|
|
1505
|
+
);
|
|
1418
1506
|
this.logger.error("Gadget parameter validation failed", {
|
|
1419
1507
|
gadgetName: call.gadgetName,
|
|
1420
|
-
|
|
1508
|
+
issueCount: validationResult.error.issues.length
|
|
1421
1509
|
});
|
|
1422
1510
|
return {
|
|
1423
1511
|
gadgetName: call.gadgetName,
|
|
@@ -1706,17 +1794,12 @@ var init_parser = __esm({
|
|
|
1706
1794
|
return { actualName: gadgetName, invocationId: `gadget_${++globalInvocationCounter}` };
|
|
1707
1795
|
}
|
|
1708
1796
|
/**
|
|
1709
|
-
*
|
|
1710
|
-
*
|
|
1797
|
+
* Extract the error message from a parse error.
|
|
1798
|
+
* Preserves full message since the error formatter adds contextual help
|
|
1799
|
+
* that benefits from precise, detailed error information.
|
|
1711
1800
|
*/
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
const firstLine = message.split("\n")[0];
|
|
1715
|
-
const maxLen = 200;
|
|
1716
|
-
if (firstLine.length <= maxLen) {
|
|
1717
|
-
return firstLine;
|
|
1718
|
-
}
|
|
1719
|
-
return `${firstLine.slice(0, maxLen)}... (${message.length} chars total)`;
|
|
1801
|
+
extractParseError(error) {
|
|
1802
|
+
return error instanceof Error ? error.message : String(error);
|
|
1720
1803
|
}
|
|
1721
1804
|
/**
|
|
1722
1805
|
* Parse parameter string using block format
|
|
@@ -1726,7 +1809,7 @@ var init_parser = __esm({
|
|
|
1726
1809
|
try {
|
|
1727
1810
|
return { parameters: parseBlockParams(cleaned, { argPrefix: this.argPrefix }) };
|
|
1728
1811
|
} catch (error) {
|
|
1729
|
-
return { parseError: this.
|
|
1812
|
+
return { parseError: this.extractParseError(error) };
|
|
1730
1813
|
}
|
|
1731
1814
|
}
|
|
1732
1815
|
// Feed a chunk of text and get parsed events
|
|
@@ -5498,6 +5581,8 @@ export {
|
|
|
5498
5581
|
getProvider,
|
|
5499
5582
|
getModelId,
|
|
5500
5583
|
init_model_shortcuts,
|
|
5584
|
+
validateGadgetSchema,
|
|
5585
|
+
init_schema_validator,
|
|
5501
5586
|
GadgetRegistry,
|
|
5502
5587
|
init_registry,
|
|
5503
5588
|
DEFAULT_PROMPTS,
|
|
@@ -5509,6 +5594,8 @@ export {
|
|
|
5509
5594
|
createLogger,
|
|
5510
5595
|
defaultLogger,
|
|
5511
5596
|
init_logger,
|
|
5597
|
+
schemaToJSONSchema,
|
|
5598
|
+
init_schema_to_json,
|
|
5512
5599
|
BaseGadget,
|
|
5513
5600
|
init_gadget,
|
|
5514
5601
|
createGadget,
|
|
@@ -5557,4 +5644,4 @@ export {
|
|
|
5557
5644
|
AgentBuilder,
|
|
5558
5645
|
init_builder
|
|
5559
5646
|
};
|
|
5560
|
-
//# sourceMappingURL=chunk-
|
|
5647
|
+
//# sourceMappingURL=chunk-VXPZQZF5.js.map
|