@vurb/core 3.3.4 → 3.6.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.
Files changed (95) hide show
  1. package/README.md +726 -677
  2. package/dist/cli/constants.js +59 -59
  3. package/dist/cli/scaffold.js +2 -0
  4. package/dist/cli/scaffold.js.map +1 -1
  5. package/dist/cli/templates/config.js +27 -27
  6. package/dist/cli/templates/config.js.map +1 -1
  7. package/dist/cli/templates/core.js +95 -95
  8. package/dist/cli/templates/index.d.ts +1 -0
  9. package/dist/cli/templates/index.d.ts.map +1 -1
  10. package/dist/cli/templates/index.js +2 -0
  11. package/dist/cli/templates/index.js.map +1 -1
  12. package/dist/cli/templates/middleware.js +25 -25
  13. package/dist/cli/templates/model.d.ts +7 -0
  14. package/dist/cli/templates/model.d.ts.map +1 -0
  15. package/dist/cli/templates/model.js +31 -0
  16. package/dist/cli/templates/model.js.map +1 -0
  17. package/dist/cli/templates/presenter.d.ts.map +1 -1
  18. package/dist/cli/templates/presenter.js +4 -9
  19. package/dist/cli/templates/presenter.js.map +1 -1
  20. package/dist/cli/templates/readme.d.ts.map +1 -1
  21. package/dist/cli/templates/readme.js +144 -142
  22. package/dist/cli/templates/readme.js.map +1 -1
  23. package/dist/cli/templates/testing.js +84 -84
  24. package/dist/cli/templates/tools.js +46 -46
  25. package/dist/cli/templates/vectors/database.js +69 -69
  26. package/dist/cli/templates/vectors/oauth.js +63 -63
  27. package/dist/cli/templates/vectors/openapi.js +97 -97
  28. package/dist/core/builder/BuildPipeline.d.ts +56 -0
  29. package/dist/core/builder/BuildPipeline.d.ts.map +1 -0
  30. package/dist/core/builder/BuildPipeline.js +139 -0
  31. package/dist/core/builder/BuildPipeline.js.map +1 -0
  32. package/dist/core/builder/FluentToolBuilder.d.ts +253 -19
  33. package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -1
  34. package/dist/core/builder/FluentToolBuilder.js +354 -114
  35. package/dist/core/builder/FluentToolBuilder.js.map +1 -1
  36. package/dist/core/builder/ProxyHandler.d.ts +26 -0
  37. package/dist/core/builder/ProxyHandler.d.ts.map +1 -0
  38. package/dist/core/builder/ProxyHandler.js +65 -0
  39. package/dist/core/builder/ProxyHandler.js.map +1 -0
  40. package/dist/core/builder/SemanticDefaults.d.ts +25 -0
  41. package/dist/core/builder/SemanticDefaults.d.ts.map +1 -0
  42. package/dist/core/builder/SemanticDefaults.js +16 -0
  43. package/dist/core/builder/SemanticDefaults.js.map +1 -0
  44. package/dist/core/builder/index.d.ts +2 -1
  45. package/dist/core/builder/index.d.ts.map +1 -1
  46. package/dist/core/builder/index.js +1 -0
  47. package/dist/core/builder/index.js.map +1 -1
  48. package/dist/core/middleware/AuditTrail.d.ts.map +1 -1
  49. package/dist/core/middleware/AuditTrail.js +6 -2
  50. package/dist/core/middleware/AuditTrail.js.map +1 -1
  51. package/dist/core/middleware/RateLimiter.d.ts.map +1 -1
  52. package/dist/core/middleware/RateLimiter.js +3 -1
  53. package/dist/core/middleware/RateLimiter.js.map +1 -1
  54. package/dist/fsm/StateMachineGate.d.ts +3 -0
  55. package/dist/fsm/StateMachineGate.d.ts.map +1 -1
  56. package/dist/fsm/StateMachineGate.js +12 -0
  57. package/dist/fsm/StateMachineGate.js.map +1 -1
  58. package/dist/index.d.ts +4 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +3 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/introspection/SemanticProbe.js +49 -49
  63. package/dist/model/defineModel.d.ts +167 -0
  64. package/dist/model/defineModel.d.ts.map +1 -0
  65. package/dist/model/defineModel.js +345 -0
  66. package/dist/model/defineModel.js.map +1 -0
  67. package/dist/model/index.d.ts +8 -0
  68. package/dist/model/index.d.ts.map +1 -0
  69. package/dist/model/index.js +7 -0
  70. package/dist/model/index.js.map +1 -0
  71. package/dist/observability/TelemetryBus.d.ts.map +1 -1
  72. package/dist/observability/TelemetryBus.js +14 -13
  73. package/dist/observability/TelemetryBus.js.map +1 -1
  74. package/dist/presenter/Presenter.d.ts +21 -0
  75. package/dist/presenter/Presenter.d.ts.map +1 -1
  76. package/dist/presenter/Presenter.js +17 -8
  77. package/dist/presenter/Presenter.js.map +1 -1
  78. package/dist/presenter/PresenterPipeline.d.ts +2 -0
  79. package/dist/presenter/PresenterPipeline.d.ts.map +1 -1
  80. package/dist/presenter/PresenterPipeline.js +4 -0
  81. package/dist/presenter/PresenterPipeline.js.map +1 -1
  82. package/dist/presenter/definePresenter.d.ts.map +1 -1
  83. package/dist/presenter/definePresenter.js +13 -3
  84. package/dist/presenter/definePresenter.js.map +1 -1
  85. package/dist/prompt/FluentPromptBuilder.d.ts.map +1 -1
  86. package/dist/resource/ResourceRegistry.d.ts +3 -0
  87. package/dist/resource/ResourceRegistry.d.ts.map +1 -1
  88. package/dist/resource/ResourceRegistry.js +8 -2
  89. package/dist/resource/ResourceRegistry.js.map +1 -1
  90. package/dist/sandbox/SandboxGuard.js +7 -4
  91. package/dist/sandbox/SandboxGuard.js.map +1 -1
  92. package/dist/server/ServerAttachment.d.ts.map +1 -1
  93. package/dist/server/ServerAttachment.js +48 -9
  94. package/dist/server/ServerAttachment.js.map +1 -1
  95. package/package.json +1 -1
@@ -26,20 +26,18 @@
26
26
  * @module
27
27
  */
28
28
  import { z } from 'zod';
29
+ import { compileFieldForInput } from '../../model/defineModel.js';
29
30
  import { GroupedToolBuilder } from './GroupedToolBuilder.js';
30
31
  import {} from '../types.js';
31
- import { success, TOOL_RESPONSE_BRAND } from '../response.js';
32
32
  import {} from '../../presenter/Presenter.js';
33
33
  import {} from '../execution/ConcurrencyGuard.js';
34
34
  import {} from '../../sandbox/SandboxEngine.js';
35
- import { SANDBOX_SYSTEM_INSTRUCTION } from '../../sandbox/index.js';
36
35
  import {} from '../middleware/ContextDerivation.js';
37
- /** Defaults for `f.query()` — read-only, no side effects */
38
- export const QUERY_DEFAULTS = { readOnly: true };
39
- /** Defaults for `f.mutation()` destructive, irreversible */
40
- export const MUTATION_DEFAULTS = { destructive: true };
41
- /** Defaults for `f.action()` neutral, no assumptions */
42
- export const ACTION_DEFAULTS = {};
36
+ import {} from './SemanticDefaults.js';
37
+ import { createProxyHandler } from './ProxyHandler.js';
38
+ import { buildToolFromFluent } from './BuildPipeline.js';
39
+ // Re-export SemanticDefaults for backward compatibility
40
+ export { QUERY_DEFAULTS, MUTATION_DEFAULTS, ACTION_DEFAULTS } from './SemanticDefaults.js';
43
41
  // ── Array Item Type Resolution ───────────────────────────
44
42
  /** Resolve Zod type from array item type string */
45
43
  function resolveArrayItemType(itemType) {
@@ -64,6 +62,7 @@ export class FluentToolBuilder {
64
62
  /** @internal */ _inputSchema;
65
63
  /** @internal */ _withParams = {};
66
64
  /** @internal */ _tags = [];
65
+ /** @internal */ _modelRef;
67
66
  /**
68
67
  * @internal Bug #118 fix: reject duplicate parameter names.
69
68
  * All `withXxx()` methods delegate to this instead of assigning directly.
@@ -73,7 +72,7 @@ export class FluentToolBuilder {
73
72
  throw new Error(`Empty parameter name on tool "${this._name}". ` +
74
73
  `Each parameter must have a non-empty name.`);
75
74
  }
76
- if (name in this._withParams) {
75
+ if (Object.prototype.hasOwnProperty.call(this._withParams, name)) {
77
76
  throw new Error(`Duplicate parameter name "${name}" on tool "${this._name}". ` +
78
77
  `Each parameter must have a unique name.`);
79
78
  }
@@ -218,6 +217,140 @@ export class FluentToolBuilder {
218
217
  this._addParam(name, base.optional());
219
218
  return this;
220
219
  }
220
+ // ── Bulk Parameter Declaration ────────────────────────
221
+ //
222
+ // Batch variants accept a Record<string, string> where
223
+ // keys are parameter names and values are descriptions.
224
+ //
225
+ // Before:
226
+ // .withOptionalString('title', 'Filter by title')
227
+ // .withOptionalString('status', 'Status filter')
228
+ //
229
+ // After:
230
+ // .withOptionalStrings({ title: 'Filter by title', status: 'Status filter' })
231
+ /**
232
+ * Add multiple required string parameters in bulk.
233
+ *
234
+ * @param fields - Record of `{ paramName: 'description' }`
235
+ * @returns Builder with narrowed `TInput` type
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * f.query('tasks.get')
240
+ * .withStrings({
241
+ * company_slug: 'Workspace identifier',
242
+ * project_slug: 'Project identifier',
243
+ * })
244
+ * .handle(async (input) => { ... });
245
+ * // input.company_slug: string ✅
246
+ * // input.project_slug: string ✅
247
+ * ```
248
+ */
249
+ withStrings(fields) {
250
+ for (const [name, description] of Object.entries(fields)) {
251
+ this._addParam(name, description ? z.string().describe(description) : z.string());
252
+ }
253
+ return this;
254
+ }
255
+ /**
256
+ * Add multiple optional string parameters in bulk.
257
+ *
258
+ * @param fields - Record of `{ paramName: 'description' }`
259
+ * @returns Builder with narrowed `TInput` type
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * f.query('tasks.filter')
264
+ * .withOptionalStrings({
265
+ * title: 'Filter by title (partial match)',
266
+ * workflow: 'Column name (e.g. "In Progress")',
267
+ * labels: 'Comma-separated label names',
268
+ * })
269
+ * .handle(async (input) => { ... });
270
+ * // input.title?: string | undefined ✅
271
+ * ```
272
+ */
273
+ withOptionalStrings(fields) {
274
+ for (const [name, description] of Object.entries(fields)) {
275
+ const base = description ? z.string().describe(description) : z.string();
276
+ this._addParam(name, base.optional());
277
+ }
278
+ return this;
279
+ }
280
+ /**
281
+ * Add multiple required number parameters in bulk.
282
+ *
283
+ * @param fields - Record of `{ paramName: 'description' }`
284
+ * @returns Builder with narrowed `TInput` type
285
+ */
286
+ withNumbers(fields) {
287
+ for (const [name, description] of Object.entries(fields)) {
288
+ this._addParam(name, description ? z.number().describe(description) : z.number());
289
+ }
290
+ return this;
291
+ }
292
+ /**
293
+ * Add multiple optional number parameters in bulk.
294
+ *
295
+ * @param fields - Record of `{ paramName: 'description' }`
296
+ * @returns Builder with narrowed `TInput` type
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * f.query('tasks.filter')
301
+ * .withOptionalNumbers({
302
+ * per_page: 'Results per page (default: 50)',
303
+ * offset: 'Pagination offset',
304
+ * })
305
+ * .handle(async (input) => { ... });
306
+ * // input.per_page?: number | undefined ✅
307
+ * ```
308
+ */
309
+ withOptionalNumbers(fields) {
310
+ for (const [name, description] of Object.entries(fields)) {
311
+ const base = description ? z.number().describe(description) : z.number();
312
+ this._addParam(name, base.optional());
313
+ }
314
+ return this;
315
+ }
316
+ /**
317
+ * Add multiple required boolean parameters in bulk.
318
+ *
319
+ * @param fields - Record of `{ paramName: 'description' }`
320
+ * @returns Builder with narrowed `TInput` type
321
+ */
322
+ withBooleans(fields) {
323
+ for (const [name, description] of Object.entries(fields)) {
324
+ this._addParam(name, description ? z.boolean().describe(description) : z.boolean());
325
+ }
326
+ return this;
327
+ }
328
+ /**
329
+ * Add multiple optional boolean parameters in bulk.
330
+ *
331
+ * @param fields - Record of `{ paramName: 'description' }`
332
+ * @returns Builder with narrowed `TInput` type
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * f.query('tasks.filter')
337
+ * .withOptionalBooleans({
338
+ * is_blocker: 'Only blockers',
339
+ * is_bug: 'Only bugs',
340
+ * unassigned: 'Only unassigned tasks',
341
+ * is_archived: 'Include archived tasks',
342
+ * })
343
+ * .handle(async (input) => { ... });
344
+ * // input.is_blocker?: boolean | undefined ✅
345
+ * ```
346
+ */
347
+ withOptionalBooleans(fields) {
348
+ for (const [name, description] of Object.entries(fields)) {
349
+ const base = description ? z.boolean().describe(description) : z.boolean();
350
+ this._addParam(name, base.optional());
351
+ }
352
+ return this;
353
+ }
221
354
  /**
222
355
  * Add a required enum parameter.
223
356
  *
@@ -287,6 +420,155 @@ export class FluentToolBuilder {
287
420
  this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
288
421
  return this;
289
422
  }
423
+ // ── Bulk Enum & Array Declaration ─────────────────────
424
+ /**
425
+ * Add multiple required enum parameters in bulk.
426
+ *
427
+ * Each entry is `paramName: [allowedValues, description?]`.
428
+ *
429
+ * @param fields - Record of `{ paramName: [values, description?] }`
430
+ * @returns Builder with narrowed `TInput` type
431
+ *
432
+ * @example
433
+ * ```typescript
434
+ * f.query('tasks.filter')
435
+ * .withEnums({
436
+ * status: [['open', 'closed', 'archived'], 'Task status'],
437
+ * priority: [['low', 'medium', 'high'], 'Priority level'],
438
+ * })
439
+ * .handle(async (input) => { ... });
440
+ * // input.status: 'open' | 'closed' | 'archived' ✅
441
+ * ```
442
+ */
443
+ withEnums(fields) {
444
+ for (const [name, [values, description]] of Object.entries(fields)) {
445
+ const schema = z.enum(values);
446
+ this._addParam(name, description ? schema.describe(description) : schema);
447
+ }
448
+ return this;
449
+ }
450
+ /**
451
+ * Add multiple optional enum parameters in bulk.
452
+ *
453
+ * Each entry is `paramName: [allowedValues, description?]`.
454
+ *
455
+ * @param fields - Record of `{ paramName: [values, description?] }`
456
+ * @returns Builder with narrowed `TInput` type
457
+ *
458
+ * @example
459
+ * ```typescript
460
+ * f.query('tasks.filter')
461
+ * .withOptionalEnums({
462
+ * status: [['open', 'closed'], 'Filter by status'],
463
+ * priority: [['low', 'medium', 'high'], 'Filter by priority'],
464
+ * })
465
+ * .handle(async (input) => { ... });
466
+ * // input.status?: 'open' | 'closed' | undefined ✅
467
+ * ```
468
+ */
469
+ withOptionalEnums(fields) {
470
+ for (const [name, [values, description]] of Object.entries(fields)) {
471
+ const schema = z.enum(values);
472
+ this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
473
+ }
474
+ return this;
475
+ }
476
+ /**
477
+ * Add multiple required array parameters in bulk, sharing the same item type.
478
+ *
479
+ * @param itemType - Type of array items (`'string'`, `'number'`, `'boolean'`)
480
+ * @param fields - Record of `{ paramName: 'description' }`
481
+ * @returns Builder with narrowed `TInput` type
482
+ *
483
+ * @example
484
+ * ```typescript
485
+ * f.mutation('tasks.update')
486
+ * .withArrays('string', {
487
+ * tags: 'Tags to apply',
488
+ * labels: 'Category labels',
489
+ * })
490
+ * .handle(async (input) => { ... });
491
+ * // input.tags: string[] ✅
492
+ * // input.labels: string[] ✅
493
+ * ```
494
+ */
495
+ withArrays(itemType, fields) {
496
+ for (const [name, description] of Object.entries(fields)) {
497
+ const schema = z.array(resolveArrayItemType(itemType));
498
+ this._addParam(name, description ? schema.describe(description) : schema);
499
+ }
500
+ return this;
501
+ }
502
+ /**
503
+ * Add multiple optional array parameters in bulk, sharing the same item type.
504
+ *
505
+ * @param itemType - Type of array items (`'string'`, `'number'`, `'boolean'`)
506
+ * @param fields - Record of `{ paramName: 'description' }`
507
+ * @returns Builder with narrowed `TInput` type
508
+ *
509
+ * @example
510
+ * ```typescript
511
+ * f.query('tasks.filter')
512
+ * .withOptionalArrays('string', {
513
+ * tags: 'Filter by tags',
514
+ * labels: 'Filter by labels',
515
+ * })
516
+ * .handle(async (input) => { ... });
517
+ * // input.tags?: string[] | undefined ✅
518
+ * ```
519
+ */
520
+ withOptionalArrays(itemType, fields) {
521
+ for (const [name, description] of Object.entries(fields)) {
522
+ const schema = z.array(resolveArrayItemType(itemType));
523
+ this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
524
+ }
525
+ return this;
526
+ }
527
+ // ── Model Integration ─────────────────────────────────
528
+ /**
529
+ * Derive tool input parameters from a Model's fillable profile.
530
+ *
531
+ * Reads the specified operation from `model.input` (fillable profiles),
532
+ * then adds each field as a parameter using the type and description from
533
+ * the Model's casts. For `create`, fields respect their schema optionality.
534
+ * For `update` and `filter`, all fields become optional.
535
+ *
536
+ * @param model - A `Model` from `defineModel()`
537
+ * @param operation - The fillable profile name (e.g. `'create'`, `'update'`, `'filter'`)
538
+ * @returns Builder with additional parameters from the Model
539
+ *
540
+ * @example
541
+ * ```typescript
542
+ * f.mutation('task.create')
543
+ * .fromModel(TaskModel, 'create')
544
+ * .withStrings({ company_slug: '...', project_slug: '...' })
545
+ * .handle(async (input, ctx) => { ... });
546
+ * ```
547
+ */
548
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Model fields are runtime-defined; `any` avoids forced casting
549
+ fromModel(model, operation) {
550
+ const fieldNames = model.input[operation];
551
+ if (!fieldNames) {
552
+ throw new Error(`Model "${model.name}" has no fillable profile "${operation}". ` +
553
+ `Available: ${Object.keys(model.input).join(', ') || 'none'}`);
554
+ }
555
+ // Determine if all fields should be forced optional (update/filter semantics)
556
+ const forceOptional = operation !== 'create';
557
+ for (const fieldName of fieldNames) {
558
+ const fieldDef = model.fields[fieldName];
559
+ if (!fieldDef) {
560
+ throw new Error(`Model "${model.name}" fillable profile "${operation}" references ` +
561
+ `field "${fieldName}" which is not defined in casts.`);
562
+ }
563
+ // Compile FieldDef → Zod schema for input context
564
+ const schema = compileFieldForInput(fieldDef, forceOptional);
565
+ this._addParam(fieldName, schema);
566
+ }
567
+ // Store Model reference for .proxy() alias resolution
568
+ this._modelRef = model;
569
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
570
+ return this;
571
+ }
290
572
  use(mw) {
291
573
  // Handle MiddlewareDefinition from f.middleware()
292
574
  if (typeof mw === 'object' && mw !== null && '__brand' in mw && mw.__brand === 'MiddlewareDefinition') {
@@ -325,6 +607,7 @@ export class FluentToolBuilder {
325
607
  * @param presenter - A Presenter instance
326
608
  * @returns `this` for chaining
327
609
  */
610
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- covariant: accept any Presenter subtype
328
611
  returns(presenter) {
329
612
  this._returns = presenter;
330
613
  return this;
@@ -515,6 +798,46 @@ export class FluentToolBuilder {
515
798
  handle(handler) {
516
799
  return this._build(handler);
517
800
  }
801
+ // ── Terminal: proxy() ────────────────────────────────
802
+ /**
803
+ * Auto-generate a handler that proxies to `ctx.client` HTTP methods.
804
+ *
805
+ * Eliminates boilerplate by deriving the HTTP method from the semantic
806
+ * verb (`query` → GET, `mutation` → POST) and passing model input
807
+ * directly as query params or request body.
808
+ *
809
+ * For tools with non-trivial logic (data transformation, multi-step
810
+ * calls, conditional behavior), use `.handle()` instead.
811
+ *
812
+ * @param endpoint - API path (e.g. `'companies/standup/summary'`)
813
+ * @param options - Optional overrides
814
+ * @param options.method - Force HTTP method (`'GET'`, `'POST'`, `'PUT'`, `'DELETE'`)
815
+ * @param options.unwrap - Auto-unwrap `response.data` (default: `true`)
816
+ * @returns A `GroupedToolBuilder` ready for registration
817
+ *
818
+ * @example
819
+ * ```typescript
820
+ * const pulse = analytics.query('pulse')
821
+ * .fromModel(AnalyticsModel, 'query')
822
+ * .proxy('companies/manager-dashboard/pulse');
823
+ *
824
+ * const create = note.mutation('create')
825
+ * .fromModel(NoteModel, 'create')
826
+ * .proxy('notes');
827
+ *
828
+ * const update = note.mutation('update')
829
+ * .fromModel(NoteModel, 'update')
830
+ * .proxy('notes/:uuid', { method: 'PUT' });
831
+ * ```
832
+ */
833
+ proxy(endpoint, options) {
834
+ const httpMethod = options?.method
835
+ ?? (this._semanticDefaults.readOnly ? 'GET' : 'POST');
836
+ const shouldUnwrap = options?.unwrap ?? true;
837
+ const handler = createProxyHandler(endpoint, httpMethod, shouldUnwrap, this._modelRef);
838
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
839
+ return this._build(handler);
840
+ }
518
841
  /**
519
842
  * Alias for `.handle()` — for backward compatibility.
520
843
  * @internal
@@ -532,112 +855,29 @@ export class FluentToolBuilder {
532
855
  `Each FluentToolBuilder can only have one handler.`);
533
856
  }
534
857
  this._handlerSet = true;
535
- // Build accumulated with* params into ZodObject
536
- if (Object.keys(this._withParams).length > 0) {
537
- this._inputSchema = z.object(this._withParams);
538
- }
539
- // Parse name: 'domain.action' → tool='domain', action='action'
540
- const dotIndex = this._name.indexOf('.');
541
- // Bug #109 fix: reject multi-dot names early with a clear error.
542
- if (dotIndex > 0 && this._name.indexOf('.', dotIndex + 1) !== -1) {
543
- throw new Error(`Tool name '${this._name}' has too many dot-separated segments. ` +
544
- `Only one dot is allowed (e.g. 'group.action'). Use f.router() for nested prefixes.`);
545
- }
546
- const toolName = dotIndex > 0 ? this._name.slice(0, dotIndex) : this._name;
547
- const actionName = dotIndex > 0 ? this._name.slice(dotIndex + 1) : 'default';
548
- // Compile description: instructions + description
549
- const descParts = [];
550
- if (this._instructions) {
551
- descParts.push(`[INSTRUCTIONS] ${this._instructions}`);
552
- }
553
- if (this._description) {
554
- descParts.push(this._description);
555
- }
556
- // HATEOAS Auto-Prompting: teach the LLM about sandbox capability
557
- if (this._sandboxConfig) {
558
- descParts.push(SANDBOX_SYSTEM_INSTRUCTION.trim());
559
- }
560
- const compiledDescription = descParts.length > 0 ? descParts.join('\n\n') : undefined;
561
- // Resolve semantic defaults + overrides
562
- const readOnly = this._readOnly ?? this._semanticDefaults.readOnly;
563
- const destructive = this._destructive ?? this._semanticDefaults.destructive;
564
- const idempotent = this._idempotent ?? this._semanticDefaults.idempotent;
565
- // Wrap handler: (input, ctx) → (ctx, args)
566
- const resolvedHandler = handler;
567
- const wrappedHandler = async (ctx, args) => {
568
- const result = await resolvedHandler(args, ctx);
569
- // Guard: void/null handlers → safe fallback (Bug #41)
570
- if (result === undefined || result === null) {
571
- return success('OK');
572
- }
573
- // Auto-wrap non-ToolResponse results (implicit success)
574
- // Primary: check brand symbol stamped by success()/error()/toolError() helpers.
575
- // Fallback: shape-based heuristic for manually constructed ToolResponse objects.
576
- if (typeof result === 'object' && result !== null) {
577
- // Brand check — reliable, no false positives (Bug #127)
578
- if (TOOL_RESPONSE_BRAND in result) {
579
- return result;
580
- }
581
- // Shape heuristic — backward compat for manually constructed ToolResponse
582
- if ('content' in result &&
583
- Array.isArray(result.content) &&
584
- result.content.length > 0 &&
585
- result.content[0]?.type === 'text' &&
586
- typeof result.content[0]?.text === 'string' &&
587
- Object.keys(result).every(k => k === 'content' || k === 'isError')) {
588
- return result;
589
- }
590
- }
591
- // Implicit success() — the dev just returns raw data!
592
- return success(result);
593
- };
594
- // Build via GroupedToolBuilder for consistency with existing pipeline
595
- const builder = new GroupedToolBuilder(toolName);
596
- if (compiledDescription)
597
- builder.description(compiledDescription);
598
- if (this._tags.length > 0)
599
- builder.tags(...this._tags);
600
- if (this._toonMode)
601
- builder.toonDescription();
602
- if (this._annotations)
603
- builder.annotations(this._annotations);
604
- // Propagate state sync hints
605
- if (this._invalidatesPatterns.length > 0) {
606
- builder.invalidates(...this._invalidatesPatterns);
607
- }
608
- if (this._cacheControl) {
609
- this._cacheControl === 'immutable' ? builder.cached() : builder.stale();
610
- }
611
- // Propagate runtime guards
612
- if (this._concurrency) {
613
- builder.concurrency(this._concurrency);
614
- }
615
- if (this._egressMaxBytes !== undefined) {
616
- builder.maxPayloadBytes(this._egressMaxBytes);
617
- }
618
- // Propagate sandbox config
619
- if (this._sandboxConfig) {
620
- builder.sandbox(this._sandboxConfig);
621
- }
622
- // Propagate FSM state gate
623
- if (this._fsmStates) {
624
- builder.bindState(this._fsmStates, this._fsmTransition);
625
- }
626
- // Apply middleware
627
- for (const mw of this._middlewares) {
628
- builder.use(mw);
629
- }
630
- // Register the single action
631
- builder.action({
632
- name: actionName,
633
- handler: wrappedHandler,
634
- ...(this._inputSchema ? { schema: this._inputSchema } : {}),
635
- ...(readOnly !== undefined ? { readOnly } : {}),
636
- ...(destructive !== undefined ? { destructive } : {}),
637
- ...(idempotent !== undefined ? { idempotent } : {}),
638
- ...(this._returns ? { returns: this._returns } : {}),
858
+ return buildToolFromFluent({
859
+ name: this._name,
860
+ description: this._description,
861
+ instructions: this._instructions,
862
+ withParams: this._withParams,
863
+ tags: this._tags,
864
+ middlewares: this._middlewares,
865
+ returns: this._returns,
866
+ semanticDefaults: this._semanticDefaults,
867
+ readOnly: this._readOnly,
868
+ destructive: this._destructive,
869
+ idempotent: this._idempotent,
870
+ toonMode: this._toonMode,
871
+ annotations: this._annotations,
872
+ invalidatesPatterns: this._invalidatesPatterns,
873
+ cacheControl: this._cacheControl,
874
+ concurrency: this._concurrency,
875
+ egressMaxBytes: this._egressMaxBytes,
876
+ sandboxConfig: this._sandboxConfig,
877
+ fsmStates: this._fsmStates,
878
+ fsmTransition: this._fsmTransition,
879
+ handler: handler,
639
880
  });
640
- return builder;
641
881
  }
642
882
  }
643
883
  //# sourceMappingURL=FluentToolBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FluentToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FluentToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ProxyHandler — Standalone factory for `.proxy()` HTTP handlers.
3
+ *
4
+ * Creates handler functions that proxy tool input directly to
5
+ * `ctx.client` HTTP methods. Applies Model aliases via `toApi()`
6
+ * and auto-unwraps `{ data }` response envelopes.
7
+ *
8
+ * @module
9
+ */
10
+ import { type Model } from '../../model/defineModel.js';
11
+ /** Options for the proxy handler factory */
12
+ export interface ProxyOptions {
13
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
14
+ unwrap?: boolean;
15
+ }
16
+ /**
17
+ * Create a handler function that proxies to `ctx.client`.
18
+ *
19
+ * @param endpoint - API path with optional `:param` placeholders
20
+ * @param httpMethod - HTTP method to use
21
+ * @param shouldUnwrap - Whether to auto-unwrap `{ data }` envelopes
22
+ * @param modelRef - Optional Model reference for alias resolution
23
+ * @returns Async handler `(input, ctx) => Promise<unknown>`
24
+ */
25
+ export declare function createProxyHandler(endpoint: string, httpMethod: 'GET' | 'POST' | 'PUT' | 'DELETE', shouldUnwrap: boolean, modelRef?: Model): (input: Record<string, unknown>, ctx: unknown) => Promise<unknown>;
26
+ //# sourceMappingURL=ProxyHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxyHandler.d.ts","sourceRoot":"","sources":["../../../src/core/builder/ProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,EAC7C,YAAY,EAAE,OAAO,EACrB,QAAQ,CAAC,EAAE,KAAK,GACjB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAmDpE"}