@agents-inc/cli 0.65.0 → 0.68.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 (103) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/{chunk-J4POGAJF.js → chunk-2JJUPWE5.js} +2 -2
  3. package/dist/{chunk-53URJ5XK.js → chunk-45R64U2S.js} +21 -21
  4. package/dist/chunk-45R64U2S.js.map +1 -0
  5. package/dist/{chunk-FGLUQSVU.js → chunk-6BXKF5GP.js} +2 -2
  6. package/dist/{chunk-EZ35IPXZ.js → chunk-7LCI5PSJ.js} +2 -2
  7. package/dist/{chunk-4C7CSZC5.js → chunk-EULHBV5V.js} +3 -3
  8. package/dist/{chunk-ZFY5EMDV.js → chunk-F6KEZ4Y5.js} +4 -4
  9. package/dist/{chunk-EE5EPS32.js → chunk-FCF4WQEI.js} +2 -2
  10. package/dist/{chunk-R46CB36B.js → chunk-GK5CAS3A.js} +4 -4
  11. package/dist/{chunk-WSMQ5GAP.js → chunk-HADHP7XF.js} +3 -3
  12. package/dist/{chunk-OORWBS6F.js → chunk-JAWXWNIX.js} +16 -10
  13. package/dist/chunk-JAWXWNIX.js.map +1 -0
  14. package/dist/{chunk-3YNT3NX3.js → chunk-KBG7GYPL.js} +5 -5
  15. package/dist/{chunk-O2HK3NTG.js → chunk-KMDBOO3E.js} +2 -2
  16. package/dist/{chunk-EC3UJRKZ.js → chunk-KWB3B2HS.js} +92 -163
  17. package/dist/chunk-KWB3B2HS.js.map +1 -0
  18. package/dist/{chunk-7DI3HGKL.js → chunk-KYULKBFC.js} +2 -2
  19. package/dist/chunk-KYULKBFC.js.map +1 -0
  20. package/dist/{chunk-6DEK3TDF.js → chunk-L5LD3ZSR.js} +4 -4
  21. package/dist/{chunk-F3REOP7N.js → chunk-L6MTIQ2U.js} +2 -2
  22. package/dist/{chunk-RG3KDXMR.js → chunk-QUEO6QEL.js} +3 -3
  23. package/dist/{chunk-LMZXL5RQ.js → chunk-R3AR4VLZ.js} +11 -11
  24. package/dist/chunk-R3AR4VLZ.js.map +1 -0
  25. package/dist/{chunk-4KVBH2X4.js → chunk-RMMHVE2R.js} +3 -3
  26. package/dist/{chunk-YEGPTBX5.js → chunk-SSGPFKS4.js} +3 -3
  27. package/dist/{chunk-BGPGQF35.js → chunk-VTRVAXUM.js} +3 -3
  28. package/dist/commands/build/marketplace.js +3 -3
  29. package/dist/commands/build/plugins.js +6 -6
  30. package/dist/commands/build/stack.js +6 -6
  31. package/dist/commands/compile.js +6 -6
  32. package/dist/commands/config/index.js +6 -6
  33. package/dist/commands/config/path.js +5 -5
  34. package/dist/commands/config/show.js +6 -6
  35. package/dist/commands/diff.js +5 -5
  36. package/dist/commands/doctor.js +5 -5
  37. package/dist/commands/edit.js +40 -20
  38. package/dist/commands/edit.js.map +1 -1
  39. package/dist/commands/eject.js +5 -5
  40. package/dist/commands/import/skill.js +5 -5
  41. package/dist/commands/info.js +5 -5
  42. package/dist/commands/init.js +17 -17
  43. package/dist/commands/list.js +5 -5
  44. package/dist/commands/new/agent.js +6 -6
  45. package/dist/commands/new/marketplace.js +7 -7
  46. package/dist/commands/new/skill.js +6 -6
  47. package/dist/commands/outdated.js +5 -5
  48. package/dist/commands/search.js +5 -5
  49. package/dist/commands/uninstall.js +5 -5
  50. package/dist/commands/update.js +6 -6
  51. package/dist/commands/validate.js +5 -5
  52. package/dist/components/wizard/category-grid.test.js +5 -5
  53. package/dist/components/wizard/domain-selection.js +6 -6
  54. package/dist/components/wizard/help-modal.js +1 -1
  55. package/dist/components/wizard/source-grid.test.js +5 -5
  56. package/dist/components/wizard/stack-selection.js +6 -6
  57. package/dist/components/wizard/step-agents.js +6 -6
  58. package/dist/components/wizard/step-agents.test.js +6 -6
  59. package/dist/components/wizard/step-build.js +6 -6
  60. package/dist/components/wizard/step-build.test.js +6 -6
  61. package/dist/components/wizard/step-confirm.test.js +5 -5
  62. package/dist/components/wizard/step-settings.js +5 -5
  63. package/dist/components/wizard/step-settings.test.js +8 -8
  64. package/dist/components/wizard/step-sources.js +6 -6
  65. package/dist/components/wizard/step-sources.test.js +6 -6
  66. package/dist/components/wizard/step-stack.js +8 -8
  67. package/dist/components/wizard/step-stack.test.js +8 -8
  68. package/dist/components/wizard/wizard-layout.js +7 -7
  69. package/dist/components/wizard/wizard.js +15 -15
  70. package/dist/config-exports.js +1 -1
  71. package/dist/hooks/init.js +17 -17
  72. package/dist/{loader-4YOZCFIP.js → loader-CMSC3RAO.js} +3 -3
  73. package/dist/{source-loader-O5RMYUBW.js → source-loader-YMWWZFVD.js} +5 -5
  74. package/dist/{source-manager-NKLL6HCL.js → source-manager-6G3EVTU2.js} +5 -5
  75. package/dist/stores/matrix-store.test.js +5 -5
  76. package/dist/stores/wizard-store.js +5 -5
  77. package/dist/stores/wizard-store.test.js +5 -5
  78. package/package.json +1 -1
  79. package/src/schemas/metadata.schema.json +1 -1
  80. package/dist/chunk-53URJ5XK.js.map +0 -1
  81. package/dist/chunk-7DI3HGKL.js.map +0 -1
  82. package/dist/chunk-EC3UJRKZ.js.map +0 -1
  83. package/dist/chunk-LMZXL5RQ.js.map +0 -1
  84. package/dist/chunk-OORWBS6F.js.map +0 -1
  85. /package/dist/{chunk-J4POGAJF.js.map → chunk-2JJUPWE5.js.map} +0 -0
  86. /package/dist/{chunk-FGLUQSVU.js.map → chunk-6BXKF5GP.js.map} +0 -0
  87. /package/dist/{chunk-EZ35IPXZ.js.map → chunk-7LCI5PSJ.js.map} +0 -0
  88. /package/dist/{chunk-4C7CSZC5.js.map → chunk-EULHBV5V.js.map} +0 -0
  89. /package/dist/{chunk-ZFY5EMDV.js.map → chunk-F6KEZ4Y5.js.map} +0 -0
  90. /package/dist/{chunk-EE5EPS32.js.map → chunk-FCF4WQEI.js.map} +0 -0
  91. /package/dist/{chunk-R46CB36B.js.map → chunk-GK5CAS3A.js.map} +0 -0
  92. /package/dist/{chunk-WSMQ5GAP.js.map → chunk-HADHP7XF.js.map} +0 -0
  93. /package/dist/{chunk-3YNT3NX3.js.map → chunk-KBG7GYPL.js.map} +0 -0
  94. /package/dist/{chunk-O2HK3NTG.js.map → chunk-KMDBOO3E.js.map} +0 -0
  95. /package/dist/{chunk-6DEK3TDF.js.map → chunk-L5LD3ZSR.js.map} +0 -0
  96. /package/dist/{chunk-F3REOP7N.js.map → chunk-L6MTIQ2U.js.map} +0 -0
  97. /package/dist/{chunk-RG3KDXMR.js.map → chunk-QUEO6QEL.js.map} +0 -0
  98. /package/dist/{chunk-4KVBH2X4.js.map → chunk-RMMHVE2R.js.map} +0 -0
  99. /package/dist/{chunk-YEGPTBX5.js.map → chunk-SSGPFKS4.js.map} +0 -0
  100. /package/dist/{chunk-BGPGQF35.js.map → chunk-VTRVAXUM.js.map} +0 -0
  101. /package/dist/{loader-4YOZCFIP.js.map → loader-CMSC3RAO.js.map} +0 -0
  102. /package/dist/{source-loader-O5RMYUBW.js.map → source-loader-YMWWZFVD.js.map} +0 -0
  103. /package/dist/{source-manager-NKLL6HCL.js.map → source-manager-6G3EVTU2.js.map} +0 -0
@@ -363,248 +363,190 @@ var defaultRules = {
363
363
  relationships: {
364
364
  conflicts: [
365
365
  {
366
- skills: [
367
- "web-framework-react",
368
- "web-framework-vue-composition-api",
369
- "web-framework-angular-standalone",
370
- "web-framework-solidjs",
371
- "web-framework-nextjs-app-router",
372
- "web-framework-remix",
373
- "web-framework-nuxt"
374
- ],
366
+ skills: ["react", "vue", "angular", "solidjs", "nextjs-app-router", "remix", "nuxt"],
375
367
  reason: "Frameworks are mutually exclusive"
376
368
  },
377
369
  {
378
- skills: [
379
- "web-state-pinia",
380
- "web-state-zustand",
381
- "web-state-redux-toolkit",
382
- "web-state-mobx"
383
- ],
370
+ skills: ["pinia", "zustand", "redux-toolkit", "mobx"],
384
371
  reason: "Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns"
385
372
  },
386
373
  {
387
- skills: [
388
- "web-state-ngrx-signalstore",
389
- "web-state-zustand",
390
- "web-state-pinia",
391
- "web-state-redux-toolkit",
392
- "web-state-mobx"
393
- ],
374
+ skills: ["ngrx-signalstore", "zustand", "pinia", "redux-toolkit", "mobx"],
394
375
  reason: "NgRx SignalStore is Angular-only"
395
376
  },
396
377
  {
397
- skills: ["web-server-state-react-query", "web-data-fetching-swr"],
378
+ skills: ["react-query", "swr"],
398
379
  reason: "Both solve server state caching"
399
380
  },
400
381
  {
401
- skills: ["web-data-fetching-graphql-apollo", "web-data-fetching-graphql-urql"],
382
+ skills: ["graphql-apollo", "graphql-urql"],
402
383
  reason: "Both are GraphQL clients"
403
384
  },
404
385
  {
405
- skills: ["web-testing-playwright-e2e", "web-testing-cypress-e2e"],
386
+ skills: ["playwright-e2e", "cypress-e2e"],
406
387
  reason: "Both are E2E frameworks"
407
388
  },
408
389
  {
409
- skills: ["web-forms-react-hook-form", "web-forms-vee-validate"],
390
+ skills: ["react-hook-form", "vee-validate"],
410
391
  reason: "react-hook-form is React-only, vee-validate is Vue-only"
411
392
  },
412
393
  {
413
- skills: ["web-testing-react-testing-library", "web-testing-vue-test-utils"],
394
+ skills: ["react-testing-library", "vue-test-utils"],
414
395
  reason: "Framework-specific testing libraries"
415
396
  },
416
397
  {
417
- skills: ["api-framework-hono", "api-framework-express", "api-framework-fastify"],
398
+ skills: ["hono", "express", "fastify"],
418
399
  reason: "API frameworks are mutually exclusive within a single service"
419
400
  },
420
401
  {
421
- skills: ["api-database-drizzle", "api-database-prisma"],
402
+ skills: ["drizzle", "prisma"],
422
403
  reason: "Both are ORMs serving similar purposes"
423
404
  },
424
405
  {
425
- skills: ["cli-framework-cli-commander", "cli-framework-oclif-ink"],
406
+ skills: ["cli-commander", "oclif"],
426
407
  reason: "CLI frameworks are mutually exclusive"
427
408
  }
428
409
  ],
429
410
  discourages: [
430
411
  {
431
- skills: ["web-state-zustand", "web-state-redux-toolkit", "web-state-mobx"],
412
+ skills: ["zustand", "redux-toolkit", "mobx"],
432
413
  reason: "Using multiple React state libraries adds complexity"
433
414
  },
434
415
  {
435
- skills: ["web-state-redux-toolkit", "web-state-zustand"],
416
+ skills: ["redux-toolkit", "zustand"],
436
417
  reason: "Redux Toolkit adds more boilerplate than Zustand"
437
418
  },
438
419
  {
439
- skills: ["web-data-fetching-swr", "web-server-state-react-query"],
420
+ skills: ["swr", "react-query"],
440
421
  reason: "SWR is simpler but React Query has more features"
441
422
  },
442
423
  {
443
- skills: ["api-framework-express", "api-framework-hono"],
424
+ skills: ["express", "hono"],
444
425
  reason: "Express is mature but Hono offers better performance and edge support"
445
426
  },
446
427
  {
447
- skills: ["api-framework-express", "api-framework-fastify"],
428
+ skills: ["express", "fastify"],
448
429
  reason: "Express is mature but Fastify offers better performance"
449
430
  },
450
431
  {
451
- skills: ["web-testing-cypress-e2e", "web-testing-playwright-e2e"],
432
+ skills: ["cypress-e2e", "playwright-e2e"],
452
433
  reason: "Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance"
453
434
  }
454
435
  ],
455
436
  recommends: [
456
- { skill: "web-state-zustand", reason: "Best-in-class React state management" },
457
- { skill: "web-server-state-react-query", reason: "Modern server state caching for React" },
458
- { skill: "web-testing-vitest", reason: "Fast, modern test runner for all frameworks" },
459
- { skill: "web-forms-react-hook-form", reason: "Best React form library" },
460
- { skill: "web-testing-react-testing-library", reason: "Standard React component testing" },
461
- { skill: "web-ui-shadcn-ui", reason: "Best-in-class React + Tailwind component library" },
462
- { skill: "web-forms-zod-validation", reason: "Type-safe validation for forms and APIs" },
463
- { skill: "web-state-pinia", reason: "Vue community standard state management" },
464
- { skill: "web-forms-vee-validate", reason: "Vue community standard form validation" },
465
- { skill: "web-testing-vue-test-utils", reason: "Vue component testing library" },
466
- { skill: "web-state-ngrx-signalstore", reason: "Angular Signals-based state management" },
467
- { skill: "web-styling-tailwind", reason: "Utility-first CSS framework" },
468
- { skill: "api-database-drizzle", reason: "Modern TypeScript-first ORM" },
469
- { skill: "api-auth-better-auth-drizzle-hono", reason: "Full-featured auth solution" },
470
- { skill: "web-ui-radix-ui", reason: "Accessible unstyled component primitives" },
471
- { skill: "web-styling-cva", reason: "Type-safe variant management for Tailwind" },
472
- { skill: "web-mocks-msw", reason: "Network-level API mocking for tests" },
473
- { skill: "web-testing-playwright-e2e", reason: "Cross-browser E2E testing" },
474
- { skill: "api-analytics-posthog-analytics", reason: "Product analytics and feature flags" },
475
- { skill: "api-database-prisma", reason: "Mature database ORM with great DX" }
437
+ { skill: "zustand", reason: "Best-in-class React state management" },
438
+ { skill: "react-query", reason: "Modern server state caching for React" },
439
+ { skill: "vitest", reason: "Fast, modern test runner for all frameworks" },
440
+ { skill: "react-hook-form", reason: "Best React form library" },
441
+ { skill: "react-testing-library", reason: "Standard React component testing" },
442
+ { skill: "shadcn-ui", reason: "Best-in-class React + Tailwind component library" },
443
+ { skill: "zod-validation", reason: "Type-safe validation for forms and APIs" },
444
+ { skill: "pinia", reason: "Vue community standard state management" },
445
+ { skill: "vee-validate", reason: "Vue community standard form validation" },
446
+ { skill: "vue-test-utils", reason: "Vue component testing library" },
447
+ { skill: "ngrx-signalstore", reason: "Angular Signals-based state management" },
448
+ { skill: "tailwind", reason: "Utility-first CSS framework" },
449
+ { skill: "drizzle", reason: "Modern TypeScript-first ORM" },
450
+ { skill: "better-auth", reason: "Full-featured auth solution" },
451
+ { skill: "radix-ui", reason: "Accessible unstyled component primitives" },
452
+ { skill: "cva", reason: "Type-safe variant management for Tailwind" },
453
+ { skill: "msw", reason: "Network-level API mocking for tests" },
454
+ { skill: "playwright-e2e", reason: "Cross-browser E2E testing" },
455
+ { skill: "posthog", reason: "Product analytics and feature flags" },
456
+ { skill: "prisma", reason: "Mature database ORM with great DX" }
476
457
  ],
477
458
  requires: [
478
459
  {
479
- skill: "web-state-zustand",
480
- needs: [
481
- "web-framework-react",
482
- "web-framework-nextjs-app-router",
483
- "web-framework-remix",
484
- "mobile-framework-react-native"
485
- ],
460
+ skill: "zustand",
461
+ needs: ["react", "nextjs-app-router", "remix", "react-native"],
486
462
  needsAny: true,
487
463
  reason: "Our Zustand skill covers React/React Native patterns"
488
464
  },
489
465
  {
490
- skill: "web-state-redux-toolkit",
491
- needs: [
492
- "web-framework-react",
493
- "web-framework-nextjs-app-router",
494
- "web-framework-remix",
495
- "mobile-framework-react-native"
496
- ],
466
+ skill: "redux-toolkit",
467
+ needs: ["react", "nextjs-app-router", "remix", "react-native"],
497
468
  needsAny: true,
498
469
  reason: "Our Redux Toolkit skill covers React/React Native patterns"
499
470
  },
500
471
  {
501
- skill: "web-state-mobx",
502
- needs: ["web-framework-react", "web-framework-nextjs-app-router", "web-framework-remix"],
472
+ skill: "mobx",
473
+ needs: ["react", "nextjs-app-router", "remix"],
503
474
  needsAny: true,
504
475
  reason: "Our MobX skill teaches React patterns"
505
476
  },
506
477
  {
507
- skill: "web-server-state-react-query",
508
- needs: [
509
- "web-framework-react",
510
- "web-framework-nextjs-app-router",
511
- "web-framework-remix",
512
- "mobile-framework-react-native"
513
- ],
478
+ skill: "react-query",
479
+ needs: ["react", "nextjs-app-router", "remix", "react-native"],
514
480
  needsAny: true,
515
481
  reason: "TanStack Query's React adapter"
516
482
  },
517
483
  {
518
- skill: "web-data-fetching-swr",
519
- needs: [
520
- "web-framework-react",
521
- "web-framework-nextjs-app-router",
522
- "web-framework-remix",
523
- "mobile-framework-react-native"
524
- ],
484
+ skill: "swr",
485
+ needs: ["react", "nextjs-app-router", "remix", "react-native"],
525
486
  needsAny: true,
526
487
  reason: "SWR is a React Hooks library"
527
488
  },
528
489
  {
529
- skill: "web-forms-react-hook-form",
530
- needs: [
531
- "web-framework-react",
532
- "web-framework-nextjs-app-router",
533
- "web-framework-remix",
534
- "mobile-framework-react-native"
535
- ],
490
+ skill: "react-hook-form",
491
+ needs: ["react", "nextjs-app-router", "remix", "react-native"],
536
492
  needsAny: true,
537
493
  reason: "React Hook Form is React only"
538
494
  },
539
495
  {
540
- skill: "web-testing-react-testing-library",
541
- needs: ["web-framework-react", "web-framework-nextjs-app-router", "web-framework-remix"],
496
+ skill: "react-testing-library",
497
+ needs: ["react", "nextjs-app-router", "remix"],
542
498
  needsAny: true,
543
499
  reason: "React Testing Library is React only"
544
500
  },
545
501
  {
546
- skill: "web-state-pinia",
547
- needs: ["web-framework-vue-composition-api", "web-framework-nuxt"],
502
+ skill: "pinia",
503
+ needs: ["vue", "nuxt"],
548
504
  needsAny: true,
549
505
  reason: "Pinia is Vue only"
550
506
  },
551
507
  {
552
- skill: "web-forms-vee-validate",
553
- needs: ["web-framework-vue-composition-api", "web-framework-nuxt"],
508
+ skill: "vee-validate",
509
+ needs: ["vue", "nuxt"],
554
510
  needsAny: true,
555
511
  reason: "VeeValidate is Vue only"
556
512
  },
557
513
  {
558
- skill: "web-testing-vue-test-utils",
559
- needs: ["web-framework-vue-composition-api", "web-framework-nuxt"],
514
+ skill: "vue-test-utils",
515
+ needs: ["vue", "nuxt"],
560
516
  needsAny: true,
561
517
  reason: "Vue Test Utils is Vue only"
562
518
  },
563
519
  {
564
- skill: "web-state-ngrx-signalstore",
565
- needs: ["web-framework-angular-standalone"],
520
+ skill: "ngrx-signalstore",
521
+ needs: ["angular"],
566
522
  reason: "NgRx SignalStore is Angular only"
567
523
  },
568
524
  {
569
- skill: "api-auth-better-auth-drizzle-hono",
570
- needs: ["api-database-drizzle", "api-database-prisma"],
525
+ skill: "better-auth",
526
+ needs: ["drizzle", "prisma"],
571
527
  needsAny: true,
572
528
  reason: "Better Auth requires a database adapter"
573
529
  },
574
530
  {
575
- skill: "web-ui-shadcn-ui",
576
- needs: ["web-framework-react", "web-framework-nextjs-app-router", "web-framework-remix"],
531
+ skill: "shadcn-ui",
532
+ needs: ["react", "nextjs-app-router", "remix"],
577
533
  needsAny: true,
578
534
  reason: "shadcn/ui requires a React-based framework"
579
535
  },
580
536
  {
581
- skill: "web-ui-shadcn-ui",
582
- needs: ["web-styling-tailwind"],
537
+ skill: "shadcn-ui",
538
+ needs: ["tailwind"],
583
539
  reason: "shadcn/ui requires Tailwind CSS"
584
540
  },
585
541
  {
586
- skill: "web-data-fetching-graphql-apollo",
587
- needs: [
588
- "web-framework-react",
589
- "web-framework-vue-composition-api",
590
- "web-framework-angular-standalone",
591
- "web-framework-nextjs-app-router",
592
- "web-framework-remix",
593
- "web-framework-nuxt"
594
- ],
542
+ skill: "graphql-apollo",
543
+ needs: ["react", "vue", "angular", "nextjs-app-router", "remix", "nuxt"],
595
544
  needsAny: true,
596
545
  reason: "Apollo Client requires a UI framework"
597
546
  },
598
547
  {
599
- skill: "web-data-fetching-graphql-urql",
600
- needs: [
601
- "web-framework-react",
602
- "web-framework-vue-composition-api",
603
- "web-framework-solidjs",
604
- "web-framework-nextjs-app-router",
605
- "web-framework-remix",
606
- "web-framework-nuxt"
607
- ],
548
+ skill: "graphql-urql",
549
+ needs: ["react", "vue", "solidjs", "nextjs-app-router", "remix", "nuxt"],
608
550
  needsAny: true,
609
551
  reason: "URQL supports React, Vue, and Solid"
610
552
  }
@@ -612,60 +554,47 @@ var defaultRules = {
612
554
  alternatives: [
613
555
  {
614
556
  purpose: "Frontend Framework",
615
- skills: [
616
- "web-framework-react",
617
- "web-framework-vue-composition-api",
618
- "web-framework-angular-standalone",
619
- "web-framework-solidjs",
620
- "web-framework-nextjs-app-router",
621
- "web-framework-remix",
622
- "web-framework-nuxt"
623
- ]
557
+ skills: ["react", "vue", "angular", "solidjs", "nextjs-app-router", "remix", "nuxt"]
624
558
  },
625
559
  {
626
560
  purpose: "Styling",
627
- skills: ["web-styling-scss-modules", "web-styling-tailwind", "web-styling-cva"]
561
+ skills: ["scss-modules", "tailwind", "cva"]
628
562
  },
629
563
  {
630
564
  purpose: "Client State (React)",
631
- skills: [
632
- "web-state-zustand",
633
- "web-state-redux-toolkit",
634
- "web-state-mobx",
635
- "web-state-jotai"
636
- ]
637
- },
638
- { purpose: "Client State (Vue)", skills: ["web-state-pinia"] },
639
- { purpose: "Client State (Angular)", skills: ["web-state-ngrx-signalstore"] },
565
+ skills: ["zustand", "redux-toolkit", "mobx", "jotai"]
566
+ },
567
+ { purpose: "Client State (Vue)", skills: ["pinia"] },
568
+ { purpose: "Client State (Angular)", skills: ["ngrx-signalstore"] },
640
569
  {
641
570
  purpose: "Server State / Data Fetching",
642
- skills: ["web-server-state-react-query", "web-data-fetching-swr"]
571
+ skills: ["react-query", "swr"]
643
572
  },
644
573
  {
645
574
  purpose: "GraphQL Client",
646
- skills: ["web-data-fetching-graphql-apollo", "web-data-fetching-graphql-urql"]
575
+ skills: ["graphql-apollo", "graphql-urql"]
647
576
  },
648
577
  {
649
578
  purpose: "API Framework",
650
- skills: ["api-framework-hono", "api-framework-express", "api-framework-fastify"]
651
- },
652
- { purpose: "Database ORM", skills: ["api-database-drizzle", "api-database-prisma"] },
653
- { purpose: "Forms (React)", skills: ["web-forms-react-hook-form"] },
654
- { purpose: "Forms (Vue)", skills: ["web-forms-vee-validate"] },
655
- { purpose: "Validation", skills: ["web-forms-zod-validation"] },
656
- { purpose: "Unit Testing", skills: ["web-testing-vitest"] },
657
- { purpose: "Component Testing (React)", skills: ["web-testing-react-testing-library"] },
658
- { purpose: "Component Testing (Vue)", skills: ["web-testing-vue-test-utils"] },
579
+ skills: ["hono", "express", "fastify"]
580
+ },
581
+ { purpose: "Database ORM", skills: ["drizzle", "prisma"] },
582
+ { purpose: "Forms (React)", skills: ["react-hook-form"] },
583
+ { purpose: "Forms (Vue)", skills: ["vee-validate"] },
584
+ { purpose: "Validation", skills: ["zod-validation"] },
585
+ { purpose: "Unit Testing", skills: ["vitest"] },
586
+ { purpose: "Component Testing (React)", skills: ["react-testing-library"] },
587
+ { purpose: "Component Testing (Vue)", skills: ["vue-test-utils"] },
659
588
  {
660
589
  purpose: "E2E Testing",
661
- skills: ["web-testing-playwright-e2e", "web-testing-cypress-e2e"]
590
+ skills: ["playwright-e2e", "cypress-e2e"]
662
591
  },
663
- { purpose: "API Mocking", skills: ["web-mocks-msw"] },
664
- { purpose: "UI Components (React + Tailwind)", skills: ["web-ui-shadcn-ui"] },
665
- { purpose: "Mobile", skills: ["mobile-framework-react-native"] },
592
+ { purpose: "API Mocking", skills: ["msw"] },
593
+ { purpose: "UI Components (React + Tailwind)", skills: ["shadcn-ui"] },
594
+ { purpose: "Mobile", skills: ["react-native"] },
666
595
  {
667
596
  purpose: "CLI Framework",
668
- skills: ["cli-framework-cli-commander", "cli-framework-oclif-ink"]
597
+ skills: ["cli-commander", "oclif"]
669
598
  }
670
599
  ]
671
600
  }
@@ -1531,4 +1460,4 @@ export {
1531
1460
  defaultRules,
1532
1461
  defaultStacks
1533
1462
  };
1534
- //# sourceMappingURL=chunk-EC3UJRKZ.js.map
1463
+ //# sourceMappingURL=chunk-KWB3B2HS.js.map