capman 0.5.2 → 0.5.3

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 (46) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/CODEBASE.md +2 -1
  3. package/dist/cjs/cache.d.ts +2 -1
  4. package/dist/cjs/cache.d.ts.map +1 -1
  5. package/dist/cjs/cache.js +11 -6
  6. package/dist/cjs/cache.js.map +1 -1
  7. package/dist/cjs/engine.d.ts.map +1 -1
  8. package/dist/cjs/engine.js +35 -17
  9. package/dist/cjs/engine.js.map +1 -1
  10. package/dist/cjs/generator.d.ts.map +1 -1
  11. package/dist/cjs/generator.js +16 -1
  12. package/dist/cjs/generator.js.map +1 -1
  13. package/dist/cjs/learning.d.ts +20 -10
  14. package/dist/cjs/learning.d.ts.map +1 -1
  15. package/dist/cjs/learning.js +146 -129
  16. package/dist/cjs/learning.js.map +1 -1
  17. package/dist/cjs/matcher.d.ts.map +1 -1
  18. package/dist/cjs/matcher.js +2 -1
  19. package/dist/cjs/matcher.js.map +1 -1
  20. package/dist/cjs/parser.js +8 -2
  21. package/dist/cjs/parser.js.map +1 -1
  22. package/dist/cjs/resolver.d.ts +7 -0
  23. package/dist/cjs/resolver.d.ts.map +1 -1
  24. package/dist/cjs/resolver.js +47 -23
  25. package/dist/cjs/resolver.js.map +1 -1
  26. package/dist/cjs/schema.d.ts +93 -1
  27. package/dist/cjs/schema.d.ts.map +1 -1
  28. package/dist/cjs/schema.js +5 -2
  29. package/dist/cjs/schema.js.map +1 -1
  30. package/dist/cjs/version.d.ts +1 -1
  31. package/dist/cjs/version.js +1 -1
  32. package/dist/esm/cache.d.ts +2 -1
  33. package/dist/esm/cache.js +11 -6
  34. package/dist/esm/engine.js +35 -17
  35. package/dist/esm/generator.js +16 -1
  36. package/dist/esm/learning.d.ts +20 -10
  37. package/dist/esm/learning.js +146 -129
  38. package/dist/esm/matcher.js +2 -1
  39. package/dist/esm/parser.js +8 -2
  40. package/dist/esm/resolver.d.ts +7 -0
  41. package/dist/esm/resolver.js +47 -23
  42. package/dist/esm/schema.d.ts +93 -1
  43. package/dist/esm/schema.js +5 -2
  44. package/dist/esm/version.d.ts +1 -1
  45. package/dist/esm/version.js +1 -1
  46. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const CapmanConfigSchema: z.ZodObject<{
2
+ export declare const CapmanConfigSchema: z.ZodEffects<z.ZodObject<{
3
3
  app: z.ZodString;
4
4
  baseUrl: z.ZodOptional<z.ZodString>;
5
5
  capabilities: z.ZodEffects<z.ZodArray<z.ZodObject<{
@@ -405,6 +405,98 @@ export declare const CapmanConfigSchema: z.ZodObject<{
405
405
  examples?: string[] | undefined;
406
406
  }[];
407
407
  baseUrl?: string | undefined;
408
+ }>, {
409
+ app: string;
410
+ capabilities: {
411
+ name: string;
412
+ id: string;
413
+ params: {
414
+ name: string;
415
+ required: boolean;
416
+ description: string;
417
+ source: "user_query" | "session" | "context" | "static";
418
+ default?: string | number | boolean | undefined;
419
+ }[];
420
+ description: string;
421
+ returns: string[];
422
+ resolver: {
423
+ type: "api";
424
+ endpoints: {
425
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
426
+ path: string;
427
+ params?: string[] | undefined;
428
+ }[];
429
+ } | {
430
+ type: "nav";
431
+ destination: string;
432
+ hint?: string | undefined;
433
+ } | {
434
+ type: "hybrid";
435
+ api: {
436
+ endpoints: {
437
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
438
+ path: string;
439
+ params?: string[] | undefined;
440
+ }[];
441
+ };
442
+ nav: {
443
+ destination: string;
444
+ hint?: string | undefined;
445
+ };
446
+ };
447
+ privacy: {
448
+ level: "public" | "user_owned" | "admin";
449
+ note?: string | undefined;
450
+ };
451
+ examples?: string[] | undefined;
452
+ }[];
453
+ baseUrl?: string | undefined;
454
+ }, {
455
+ app: string;
456
+ capabilities: {
457
+ name: string;
458
+ id: string;
459
+ params: {
460
+ name: string;
461
+ required: boolean;
462
+ description: string;
463
+ source: "user_query" | "session" | "context" | "static";
464
+ default?: string | number | boolean | undefined;
465
+ }[];
466
+ description: string;
467
+ returns: string[];
468
+ resolver: {
469
+ type: "api";
470
+ endpoints: {
471
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
472
+ path: string;
473
+ params?: string[] | undefined;
474
+ }[];
475
+ } | {
476
+ type: "nav";
477
+ destination: string;
478
+ hint?: string | undefined;
479
+ } | {
480
+ type: "hybrid";
481
+ api: {
482
+ endpoints: {
483
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
484
+ path: string;
485
+ params?: string[] | undefined;
486
+ }[];
487
+ };
488
+ nav: {
489
+ destination: string;
490
+ hint?: string | undefined;
491
+ };
492
+ };
493
+ privacy: {
494
+ level: "public" | "user_owned" | "admin";
495
+ note?: string | undefined;
496
+ };
497
+ examples?: string[] | undefined;
498
+ }[];
499
+ baseUrl?: string | undefined;
408
500
  }>;
409
501
  export declare const ManifestSchema: z.ZodObject<{
410
502
  version: z.ZodString;
@@ -62,11 +62,14 @@ const CapabilitySchema = z.object({
62
62
  // ─── Config Schema ────────────────────────────────────────────────────────────
63
63
  export const CapmanConfigSchema = z.object({
64
64
  app: z.string().min(1, 'app name is required'),
65
- baseUrl: z.string().url('baseUrl must be a valid URL').optional(),
65
+ baseUrl: z.string().url().optional(),
66
66
  capabilities: z.array(CapabilitySchema)
67
67
  .min(1, 'at least one capability is required')
68
68
  .refine(caps => new Set(caps.map(c => c.id)).size === caps.length, 'capability ids must be unique'),
69
- });
69
+ }).refine(cfg => {
70
+ const needsBaseUrl = cfg.capabilities.some(c => c.resolver.type === 'api' || c.resolver.type === 'hybrid');
71
+ return !needsBaseUrl || !!cfg.baseUrl;
72
+ }, { message: 'baseUrl is required when any capability uses an api or hybrid resolver' });
70
73
  // ─── Manifest Schema ──────────────────────────────────────────────────────────
71
74
  export const ManifestSchema = z.object({
72
75
  version: z.string(),
@@ -1 +1 @@
1
- export declare const VERSION = "0.5.2";
1
+ export declare const VERSION = "0.5.3";
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by scripts/version.js — do not edit manually
2
- export const VERSION = '0.5.2';
2
+ export const VERSION = '0.5.3';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capman",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Capability Manifest Engine — let AI agents interact with your app without navigating the UI",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",