proagents 1.0.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 (444) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/bin/proagents.js +90 -0
  4. package/lib/commands/feature.js +125 -0
  5. package/lib/commands/fix.js +60 -0
  6. package/lib/commands/help.js +76 -0
  7. package/lib/commands/init.js +64 -0
  8. package/lib/commands/status.js +91 -0
  9. package/lib/index.js +28 -0
  10. package/package.json +52 -0
  11. package/proagents/.learning/global/common-patterns.json +77 -0
  12. package/proagents/.learning/global/user-preferences.json +76 -0
  13. package/proagents/.learning/projects/example-project/corrections.json +99 -0
  14. package/proagents/.learning/projects/example-project/feedback.json +109 -0
  15. package/proagents/.learning/projects/example-project/metrics.json +101 -0
  16. package/proagents/.learning/projects/example-project/patterns.json +102 -0
  17. package/proagents/.learning/schemas/README.md +48 -0
  18. package/proagents/.learning/schemas/corrections-schema.json +100 -0
  19. package/proagents/.learning/schemas/feedback-schema.json +144 -0
  20. package/proagents/.learning/schemas/metrics-schema.json +96 -0
  21. package/proagents/.learning/schemas/patterns-schema.json +82 -0
  22. package/proagents/.learning/schemas/project-patterns-schema.json +125 -0
  23. package/proagents/.learning/schemas/user-preferences-schema.json +136 -0
  24. package/proagents/GETTING-STARTED-STORY.md +708 -0
  25. package/proagents/README.md +99 -0
  26. package/proagents/WORKFLOW.md +1234 -0
  27. package/proagents/active-features/.gitkeep +0 -0
  28. package/proagents/active-features/README.md +176 -0
  29. package/proagents/active-features/_index.json +74 -0
  30. package/proagents/active-features/feature-user-auth/dependencies.json +81 -0
  31. package/proagents/active-features/feature-user-auth/files-modified.json +126 -0
  32. package/proagents/active-features/feature-user-auth/status.json +122 -0
  33. package/proagents/active-features/schemas/dependencies-schema.json +119 -0
  34. package/proagents/active-features/schemas/feature-schema.json +132 -0
  35. package/proagents/active-features/schemas/files-schema.json +100 -0
  36. package/proagents/active-features/schemas/index-schema.json +95 -0
  37. package/proagents/adr/README.md +302 -0
  38. package/proagents/adr/examples/api-versioning.md +297 -0
  39. package/proagents/adr/examples/database-choice.md +264 -0
  40. package/proagents/adr/template.md +273 -0
  41. package/proagents/ai-models/README.md +141 -0
  42. package/proagents/ai-models/cost-management.md +362 -0
  43. package/proagents/ai-models/fallbacks.md +342 -0
  44. package/proagents/ai-models/model-config.md +318 -0
  45. package/proagents/ai-models/task-routing.md +503 -0
  46. package/proagents/ai-training/README.md +155 -0
  47. package/proagents/ai-training/continuous-learning.md +413 -0
  48. package/proagents/ai-training/domain-knowledge.md +378 -0
  49. package/proagents/ai-training/pattern-learning.md +455 -0
  50. package/proagents/ai-training/training-data.md +337 -0
  51. package/proagents/ai-training/user-preferences.md +346 -0
  52. package/proagents/api-versioning/README.md +257 -0
  53. package/proagents/api-versioning/changelog-template.md +225 -0
  54. package/proagents/api-versioning/deprecation-workflow.md +470 -0
  55. package/proagents/api-versioning/versioning-strategy.md +291 -0
  56. package/proagents/approval-workflows/README.md +146 -0
  57. package/proagents/approval-workflows/approval-config.md +332 -0
  58. package/proagents/approval-workflows/approval-stages.md +503 -0
  59. package/proagents/approval-workflows/emergency-bypass.md +351 -0
  60. package/proagents/approval-workflows/examples.md +859 -0
  61. package/proagents/approval-workflows/notifications.md +320 -0
  62. package/proagents/automation/README.md +38 -0
  63. package/proagents/automation/ai-behavior-rules.md +339 -0
  64. package/proagents/automation/ai-prompt-injection.md +331 -0
  65. package/proagents/automation/auto-decisions.md +535 -0
  66. package/proagents/automation/decision-defaults.yaml +317 -0
  67. package/proagents/cache/README.md +110 -0
  68. package/proagents/cache/analysis-metadata.json +76 -0
  69. package/proagents/cache/conventions.json +125 -0
  70. package/proagents/cache/dependencies.json +85 -0
  71. package/proagents/cache/features.json +115 -0
  72. package/proagents/cache/patterns.json +105 -0
  73. package/proagents/cache/schemas/conventions-schema.json +138 -0
  74. package/proagents/cache/schemas/dependencies-schema.json +95 -0
  75. package/proagents/cache/schemas/features-schema.json +104 -0
  76. package/proagents/cache/schemas/metadata-schema.json +83 -0
  77. package/proagents/cache/schemas/patterns-schema.json +136 -0
  78. package/proagents/cache/schemas/structure-schema.json +72 -0
  79. package/proagents/cache/structure.json +109 -0
  80. package/proagents/changelog/2024/01/2024-01-10-api-url-config.md +41 -0
  81. package/proagents/changelog/2024/01/2024-01-12-login-bug-fix.md +69 -0
  82. package/proagents/changelog/2024/01/2024-01-15-user-auth-feature.md +99 -0
  83. package/proagents/changelog/CHANGELOG.md +82 -0
  84. package/proagents/changelog/README.md +327 -0
  85. package/proagents/changelog/entry-template.md +283 -0
  86. package/proagents/checklists/README.md +261 -0
  87. package/proagents/checklists/code-quality.md +137 -0
  88. package/proagents/checklists/code-review.md +148 -0
  89. package/proagents/checklists/pr-checklist.md +78 -0
  90. package/proagents/checklists/pre-deployment.md +132 -0
  91. package/proagents/checklists/pre-implementation.md +80 -0
  92. package/proagents/checklists/testing.md +120 -0
  93. package/proagents/cicd/README.md +338 -0
  94. package/proagents/cicd/azure-devops.md +267 -0
  95. package/proagents/cicd/github-actions.md +375 -0
  96. package/proagents/cicd/gitlab-ci.md +278 -0
  97. package/proagents/cicd/jenkins.md +317 -0
  98. package/proagents/cli/README.md +392 -0
  99. package/proagents/cli/commands-reference.md +893 -0
  100. package/proagents/cli/ide-integration.md +584 -0
  101. package/proagents/cli/shortcuts.md +394 -0
  102. package/proagents/cli/slash-commands.md +507 -0
  103. package/proagents/collaboration/README.md +143 -0
  104. package/proagents/collaboration/roles.md +248 -0
  105. package/proagents/collaboration/sessions.md +390 -0
  106. package/proagents/collaboration/sync.md +358 -0
  107. package/proagents/compliance/README.md +206 -0
  108. package/proagents/compliance/access-control.md +310 -0
  109. package/proagents/compliance/audit-logging.md +444 -0
  110. package/proagents/compliance/compliance-frameworks.md +429 -0
  111. package/proagents/compliance/reports.md +491 -0
  112. package/proagents/compliance/retention-policies.md +454 -0
  113. package/proagents/config/README.md +181 -0
  114. package/proagents/config/integrations/README.md +68 -0
  115. package/proagents/config/integrations/github.yaml +211 -0
  116. package/proagents/config/integrations/jira.yaml +144 -0
  117. package/proagents/config/integrations/linear.yaml +157 -0
  118. package/proagents/config/integrations/notion.yaml +203 -0
  119. package/proagents/config/integrations/slack.yaml +230 -0
  120. package/proagents/config/rules/README.md +73 -0
  121. package/proagents/config/rules/custom-rules.template.yaml +188 -0
  122. package/proagents/config/rules/validation-rules.template.yaml +177 -0
  123. package/proagents/config/standards/README.md +58 -0
  124. package/proagents/config/standards/architecture-rules.template.md +124 -0
  125. package/proagents/config/standards/coding-standards.template.md +107 -0
  126. package/proagents/config/standards/naming-conventions.template.md +114 -0
  127. package/proagents/config/standards/testing-standards.template.md +213 -0
  128. package/proagents/config/templates/README.md +74 -0
  129. package/proagents/config/templates/api-route.template.ts +142 -0
  130. package/proagents/config/templates/component.template.tsx +55 -0
  131. package/proagents/config/templates/hook.template.ts +93 -0
  132. package/proagents/config/templates/test.template.ts +171 -0
  133. package/proagents/config-versioning/README.md +120 -0
  134. package/proagents/config-versioning/changelog.md +300 -0
  135. package/proagents/config-versioning/rollback.md +283 -0
  136. package/proagents/config-versioning/versioning.md +330 -0
  137. package/proagents/contract-testing/README.md +223 -0
  138. package/proagents/contract-testing/contract-testing.md +614 -0
  139. package/proagents/contract-testing/pact-integration.md +507 -0
  140. package/proagents/contract-testing/schema-validation.md +565 -0
  141. package/proagents/cost/README.md +48 -0
  142. package/proagents/cost/cost-template.md +283 -0
  143. package/proagents/cost/estimation-framework.md +287 -0
  144. package/proagents/database/README.md +72 -0
  145. package/proagents/database/examples/001-create-users.sql +129 -0
  146. package/proagents/database/examples/002-add-preferences.sql +94 -0
  147. package/proagents/database/examples/003-add-index.sql +105 -0
  148. package/proagents/database/examples/004-rename-column.sql +122 -0
  149. package/proagents/database/examples/005-add-foreign-key.sql +142 -0
  150. package/proagents/database/examples/006-data-migration.sql +196 -0
  151. package/proagents/database/examples/007-drop-column.sql +163 -0
  152. package/proagents/database/examples/README.md +89 -0
  153. package/proagents/database/migration-workflow.md +478 -0
  154. package/proagents/database/rollback-scripts.md +487 -0
  155. package/proagents/database/safety-checks.md +447 -0
  156. package/proagents/dependency-management/README.md +140 -0
  157. package/proagents/dependency-management/automation.md +363 -0
  158. package/proagents/dependency-management/compatibility.md +319 -0
  159. package/proagents/dependency-management/security-scanning.md +413 -0
  160. package/proagents/dependency-management/update-policies.md +374 -0
  161. package/proagents/disaster-recovery/README.md +247 -0
  162. package/proagents/disaster-recovery/automation.md +366 -0
  163. package/proagents/disaster-recovery/backup-recovery.md +571 -0
  164. package/proagents/disaster-recovery/incident-response.md +565 -0
  165. package/proagents/disaster-recovery/rollback-procedures.md +499 -0
  166. package/proagents/disaster-recovery/runbooks.md +603 -0
  167. package/proagents/disaster-recovery/scenarios.md +892 -0
  168. package/proagents/disaster-recovery/testing.md +438 -0
  169. package/proagents/environments/README.md +244 -0
  170. package/proagents/environments/configuration.md +437 -0
  171. package/proagents/environments/promotion.md +434 -0
  172. package/proagents/environments/setup.md +420 -0
  173. package/proagents/examples/README.md +55 -0
  174. package/proagents/examples/backend-nodejs/README.md +188 -0
  175. package/proagents/examples/backend-nodejs/complete-conversation.md +601 -0
  176. package/proagents/examples/backend-nodejs/proagents.config.yaml +415 -0
  177. package/proagents/examples/backend-nodejs/workflow-example.md +909 -0
  178. package/proagents/examples/fullstack-nextjs/README.md +155 -0
  179. package/proagents/examples/fullstack-nextjs/complete-conversation.md +604 -0
  180. package/proagents/examples/fullstack-nextjs/proagents.config.yaml +287 -0
  181. package/proagents/examples/fullstack-nextjs/workflow-example.md +553 -0
  182. package/proagents/examples/mobile-react-native/README.md +171 -0
  183. package/proagents/examples/mobile-react-native/complete-conversation.md +825 -0
  184. package/proagents/examples/mobile-react-native/proagents.config.yaml +330 -0
  185. package/proagents/examples/mobile-react-native/workflow-example.md +723 -0
  186. package/proagents/examples/web-frontend-react/README.md +125 -0
  187. package/proagents/examples/web-frontend-react/complete-conversation.md +556 -0
  188. package/proagents/examples/web-frontend-react/proagents.config.yaml +183 -0
  189. package/proagents/examples/web-frontend-react/workflow-example.md +603 -0
  190. package/proagents/existing-projects/README.md +65 -0
  191. package/proagents/existing-projects/challenges.md +861 -0
  192. package/proagents/existing-projects/coexistence-mode.md +483 -0
  193. package/proagents/existing-projects/compatibility-assessment.md +541 -0
  194. package/proagents/existing-projects/gradual-adoption.md +515 -0
  195. package/proagents/existing-projects/migration-strategies.md +788 -0
  196. package/proagents/existing-projects/pattern-reconciliation.md +489 -0
  197. package/proagents/existing-projects/team-onboarding.md +617 -0
  198. package/proagents/existing-projects/technical-debt-handling.md +644 -0
  199. package/proagents/feature-flags/README.md +263 -0
  200. package/proagents/feature-flags/ab-testing.md +413 -0
  201. package/proagents/feature-flags/configuration.md +420 -0
  202. package/proagents/feature-flags/kill-switches.md +444 -0
  203. package/proagents/feature-flags/rollout-strategies.md +392 -0
  204. package/proagents/getting-started/README.md +60 -0
  205. package/proagents/getting-started/ai-training-setup.md +380 -0
  206. package/proagents/getting-started/ide-setup.md +195 -0
  207. package/proagents/getting-started/mcp-setup.md +239 -0
  208. package/proagents/getting-started/pm-integration.md +336 -0
  209. package/proagents/getting-started/prompt-engineering.md +478 -0
  210. package/proagents/getting-started/team-onboarding.md +236 -0
  211. package/proagents/git/README.md +68 -0
  212. package/proagents/git/branch-strategy.md +164 -0
  213. package/proagents/git/commit-conventions.md +241 -0
  214. package/proagents/git/pr-workflow.md +286 -0
  215. package/proagents/git/rollback-procedures.md +416 -0
  216. package/proagents/i18n/README.md +133 -0
  217. package/proagents/i18n/extraction.md +433 -0
  218. package/proagents/i18n/tms-integration.md +332 -0
  219. package/proagents/i18n/translation-workflow.md +413 -0
  220. package/proagents/i18n/validation.md +355 -0
  221. package/proagents/ide-integration/README.md +124 -0
  222. package/proagents/ide-integration/cline-config.md +429 -0
  223. package/proagents/ide-integration/continue-config.md +380 -0
  224. package/proagents/ide-integration/cursor-rules.md +280 -0
  225. package/proagents/ide-integration/github-copilot.md +384 -0
  226. package/proagents/ide-integration/windsurf-rules.md +314 -0
  227. package/proagents/integrations/README.md +97 -0
  228. package/proagents/integrations/pm/README.md +344 -0
  229. package/proagents/learning/README.md +136 -0
  230. package/proagents/learning/adaptation.md +305 -0
  231. package/proagents/learning/data-collection.md +283 -0
  232. package/proagents/learning/implementation-guide.md +865 -0
  233. package/proagents/learning/reports.md +306 -0
  234. package/proagents/logging/README.md +276 -0
  235. package/proagents/logging/aggregation.md +475 -0
  236. package/proagents/logging/log-levels.md +376 -0
  237. package/proagents/logging/sensitive-data.md +423 -0
  238. package/proagents/logging/structured-logging.md +406 -0
  239. package/proagents/mcp/README.md +133 -0
  240. package/proagents/mcp/context-providers.md +442 -0
  241. package/proagents/mcp/server-config.md +306 -0
  242. package/proagents/mcp/tools-definition.md +513 -0
  243. package/proagents/metrics/README.md +174 -0
  244. package/proagents/metrics/code-quality-kpis.md +461 -0
  245. package/proagents/metrics/deployment-metrics.md +517 -0
  246. package/proagents/metrics/developer-productivity.md +368 -0
  247. package/proagents/metrics/learning-effectiveness.md +478 -0
  248. package/proagents/migrations/README.md +77 -0
  249. package/proagents/migrations/from-claude-projects.md +312 -0
  250. package/proagents/migrations/from-cursor-rules.md +345 -0
  251. package/proagents/migrations/from-custom-workflows.md +410 -0
  252. package/proagents/monitoring/README.md +308 -0
  253. package/proagents/monitoring/alerting.md +449 -0
  254. package/proagents/monitoring/dashboards.md +454 -0
  255. package/proagents/monitoring/health-checks.md +436 -0
  256. package/proagents/monitoring/metrics.md +434 -0
  257. package/proagents/multi-project/README.md +170 -0
  258. package/proagents/multi-project/coordinated-deploy.md +510 -0
  259. package/proagents/multi-project/cross-project-deps.md +395 -0
  260. package/proagents/multi-project/unified-changelog.md +477 -0
  261. package/proagents/multi-project/walkthroughs/monorepo-setup.md +787 -0
  262. package/proagents/multi-project/workspace-config.md +408 -0
  263. package/proagents/notifications/README.md +151 -0
  264. package/proagents/notifications/channels.md +457 -0
  265. package/proagents/notifications/preferences.md +415 -0
  266. package/proagents/notifications/routing.md +449 -0
  267. package/proagents/notifications/scheduling.md +425 -0
  268. package/proagents/notifications/templates.md +446 -0
  269. package/proagents/offline-mode/README.md +145 -0
  270. package/proagents/offline-mode/caching.md +344 -0
  271. package/proagents/offline-mode/offline-operations.md +312 -0
  272. package/proagents/offline-mode/queue-specifications.md +679 -0
  273. package/proagents/offline-mode/sync.md +475 -0
  274. package/proagents/parallel-features/README.md +85 -0
  275. package/proagents/parallel-features/conflict-detection.md +226 -0
  276. package/proagents/parallel-features/dependency-management.md +392 -0
  277. package/proagents/parallel-features/merge-coordination.md +506 -0
  278. package/proagents/parallel-features/tracking-system.md +416 -0
  279. package/proagents/patterns/README.md +305 -0
  280. package/proagents/patterns/api-errors.md +453 -0
  281. package/proagents/patterns/async-errors.md +521 -0
  282. package/proagents/patterns/error-types.md +437 -0
  283. package/proagents/patterns/ui-errors.md +595 -0
  284. package/proagents/performance/README.md +59 -0
  285. package/proagents/performance/bundle-analysis.md +375 -0
  286. package/proagents/performance/load-testing.md +563 -0
  287. package/proagents/performance/runtime-metrics.md +489 -0
  288. package/proagents/performance/web-vitals.md +425 -0
  289. package/proagents/plugins/README.md +139 -0
  290. package/proagents/plugins/creating-plugins.md +504 -0
  291. package/proagents/plugins/plugin-api.md +467 -0
  292. package/proagents/plugins/plugin-registry.md +276 -0
  293. package/proagents/pm-integration/README.md +151 -0
  294. package/proagents/pm-integration/asana.md +346 -0
  295. package/proagents/pm-integration/github-issues.md +308 -0
  296. package/proagents/pm-integration/gitlab-issues.md +482 -0
  297. package/proagents/pm-integration/jira.md +364 -0
  298. package/proagents/pm-integration/linear.md +409 -0
  299. package/proagents/pm-integration/notion.md +275 -0
  300. package/proagents/pm-integration/sync-config.md +533 -0
  301. package/proagents/pm-integration/trello.md +159 -0
  302. package/proagents/proagents.config.yaml +213 -0
  303. package/proagents/prompts/00-init-wizard.md +426 -0
  304. package/proagents/prompts/00-init.md +219 -0
  305. package/proagents/prompts/01-analysis.md +244 -0
  306. package/proagents/prompts/02-requirements.md +399 -0
  307. package/proagents/prompts/03-ui-design.md +493 -0
  308. package/proagents/prompts/04-planning.md +505 -0
  309. package/proagents/prompts/05-implementation.md +518 -0
  310. package/proagents/prompts/06-testing.md +620 -0
  311. package/proagents/prompts/06.5-code-review.md +512 -0
  312. package/proagents/prompts/07-documentation.md +673 -0
  313. package/proagents/prompts/08-deployment.md +539 -0
  314. package/proagents/prompts/09-rollback.md +554 -0
  315. package/proagents/prompts/README.md +51 -0
  316. package/proagents/prompts/accessibility/README.md +146 -0
  317. package/proagents/prompts/accessibility/aria.md +276 -0
  318. package/proagents/prompts/accessibility/audit.md +233 -0
  319. package/proagents/prompts/accessibility/keyboard.md +392 -0
  320. package/proagents/prompts/accessibility/wcag.md +189 -0
  321. package/proagents/prompts/debugging/README.md +51 -0
  322. package/proagents/prompts/debugging/error-analysis.md +385 -0
  323. package/proagents/prompts/debugging/performance-debug.md +381 -0
  324. package/proagents/prompts/debugging/systematic.md +270 -0
  325. package/proagents/prompts/performance/README.md +47 -0
  326. package/proagents/prompts/performance/analyze.md +265 -0
  327. package/proagents/prompts/performance/optimize.md +347 -0
  328. package/proagents/prompts/refactoring/README.md +51 -0
  329. package/proagents/prompts/refactoring/architecture.md +531 -0
  330. package/proagents/prompts/refactoring/code-smells.md +174 -0
  331. package/proagents/prompts/refactoring/patterns.md +516 -0
  332. package/proagents/prompts/security-audit/README.md +197 -0
  333. package/proagents/prompts/security-audit/code-review.md +260 -0
  334. package/proagents/prompts/security-audit/vulnerability-scan.md +288 -0
  335. package/proagents/reporting/README.md +158 -0
  336. package/proagents/reporting/dashboards.md +366 -0
  337. package/proagents/reporting/exports.md +524 -0
  338. package/proagents/reporting/quality-metrics.md +385 -0
  339. package/proagents/reporting/templates/README.md +56 -0
  340. package/proagents/reporting/templates/dashboard-config.json +187 -0
  341. package/proagents/reporting/templates/metrics-queries.md +427 -0
  342. package/proagents/reporting/templates/react-dashboard.tsx +544 -0
  343. package/proagents/reporting/templates/widgets.md +451 -0
  344. package/proagents/reporting/velocity-metrics.md +340 -0
  345. package/proagents/reverse-engineering/README.md +151 -0
  346. package/proagents/reverse-engineering/architecture-extraction.md +325 -0
  347. package/proagents/reverse-engineering/code-analysis.md +377 -0
  348. package/proagents/reverse-engineering/dependency-mapping.md +567 -0
  349. package/proagents/reverse-engineering/diagram-generation.md +586 -0
  350. package/proagents/reverse-engineering/documentation-generation.md +468 -0
  351. package/proagents/reverse-engineering/pattern-detection.md +569 -0
  352. package/proagents/reverse-engineering/quality-assessment.md +733 -0
  353. package/proagents/rules/README.md +179 -0
  354. package/proagents/rules/custom-rules-template.yaml +286 -0
  355. package/proagents/rules/custom-rules.md +754 -0
  356. package/proagents/rules/validation-rules-template.yaml +517 -0
  357. package/proagents/runbooks/README.md +219 -0
  358. package/proagents/runbooks/dependency-vulnerability.md +505 -0
  359. package/proagents/runbooks/incident-response.md +451 -0
  360. package/proagents/runbooks/performance-degradation.md +584 -0
  361. package/proagents/runbooks/production-debugging.md +489 -0
  362. package/proagents/scaffolding/README.md +64 -0
  363. package/proagents/scaffolding/nextjs/README.md +578 -0
  364. package/proagents/scaffolding/nextjs/templates/api-route.ts.template +185 -0
  365. package/proagents/scaffolding/nextjs/templates/page.tsx.template +109 -0
  366. package/proagents/scaffolding/nextjs/templates/server-action.ts.template +204 -0
  367. package/proagents/scaffolding/nodejs/README.md +558 -0
  368. package/proagents/scaffolding/nodejs/templates/controller.ts.template +167 -0
  369. package/proagents/scaffolding/nodejs/templates/repository.ts.template +155 -0
  370. package/proagents/scaffolding/nodejs/templates/service.ts.template +207 -0
  371. package/proagents/scaffolding/project-types.md +401 -0
  372. package/proagents/scaffolding/react/README.md +399 -0
  373. package/proagents/scaffolding/react/templates/component.tsx.template +88 -0
  374. package/proagents/scaffolding/react/templates/hook.ts.template +127 -0
  375. package/proagents/scaffolding/react/templates/service.ts.template +155 -0
  376. package/proagents/scaffolding/react/templates/test.tsx.template +149 -0
  377. package/proagents/scaffolding/react-native/README.md +476 -0
  378. package/proagents/scaffolding/react-native/templates/hook.ts.template +226 -0
  379. package/proagents/scaffolding/react-native/templates/screen.tsx.template +247 -0
  380. package/proagents/secrets/README.md +278 -0
  381. package/proagents/secrets/access-control.md +443 -0
  382. package/proagents/secrets/rotation.md +403 -0
  383. package/proagents/secrets/scanning.md +487 -0
  384. package/proagents/secrets/storage.md +394 -0
  385. package/proagents/security/README.md +71 -0
  386. package/proagents/security/owasp-checklist.md +390 -0
  387. package/proagents/security/sast-guide.md +473 -0
  388. package/proagents/security/security-report-template.md +343 -0
  389. package/proagents/security/vulnerability-scanning.md +329 -0
  390. package/proagents/slash-commands.json +161 -0
  391. package/proagents/standards/README.md +120 -0
  392. package/proagents/standards/architecture-patterns.md +728 -0
  393. package/proagents/standards/architecture-rules-template.md +489 -0
  394. package/proagents/standards/coding-standards-template.md +489 -0
  395. package/proagents/standards/examples/README.md +61 -0
  396. package/proagents/standards/examples/nodejs-api.md +560 -0
  397. package/proagents/standards/examples/react-nextjs.md +428 -0
  398. package/proagents/standards/naming-conventions-template.md +526 -0
  399. package/proagents/standards/override-system.md +717 -0
  400. package/proagents/standards/testing-standards-template.md +220 -0
  401. package/proagents/team/README.md +256 -0
  402. package/proagents/team/code-ownership.md +306 -0
  403. package/proagents/team/communication-templates.md +441 -0
  404. package/proagents/team/handoff-protocol.md +380 -0
  405. package/proagents/team/ide-setup/README.md +103 -0
  406. package/proagents/team/ide-setup/cursor.md +276 -0
  407. package/proagents/team/ide-setup/jetbrains.md +330 -0
  408. package/proagents/team/ide-setup/neovim.md +640 -0
  409. package/proagents/team/ide-setup/vscode.md +348 -0
  410. package/proagents/team/onboarding.md +278 -0
  411. package/proagents/templates/README.md +57 -0
  412. package/proagents/templates/code-review-report.md +255 -0
  413. package/proagents/templates/codebase-analysis-report.md +315 -0
  414. package/proagents/templates/deployment-checklist.md +277 -0
  415. package/proagents/templates/feature-requirements.md +142 -0
  416. package/proagents/templates/feature-status.md +231 -0
  417. package/proagents/templates/implementation-plan.md +373 -0
  418. package/proagents/templates/rollback-plan.md +331 -0
  419. package/proagents/templates/test-plan.md +336 -0
  420. package/proagents/templates/ui-specification.md +431 -0
  421. package/proagents/testing-standards/README.md +229 -0
  422. package/proagents/testing-standards/coverage-requirements.md +198 -0
  423. package/proagents/testing-standards/mocking-guidelines.md +478 -0
  424. package/proagents/testing-standards/test-naming.md +485 -0
  425. package/proagents/testing-standards/test-patterns.md +488 -0
  426. package/proagents/troubleshooting/README.md +730 -0
  427. package/proagents/troubleshooting/ai-issues.md +601 -0
  428. package/proagents/troubleshooting/workflow-issues.md +571 -0
  429. package/proagents/ui-integration/README.md +77 -0
  430. package/proagents/ui-integration/figma-guide.md +217 -0
  431. package/proagents/ui-integration/manual-export-guide.md +358 -0
  432. package/proagents/ui-integration/sketch-interpretation.md +471 -0
  433. package/proagents/webhooks/README.md +126 -0
  434. package/proagents/webhooks/endpoints.md +298 -0
  435. package/proagents/webhooks/events.md +316 -0
  436. package/proagents/webhooks/payloads.md +325 -0
  437. package/proagents/webhooks/reliability.md +363 -0
  438. package/proagents/webhooks/security.md +380 -0
  439. package/proagents/workflow-modes/README.md +136 -0
  440. package/proagents/workflow-modes/deferred-tracking.md +405 -0
  441. package/proagents/workflow-modes/entry-modes.md +397 -0
  442. package/proagents/workflow-modes/guardrails.md +405 -0
  443. package/proagents/workflow-modes/mode-detection.md +358 -0
  444. package/proagents/workflow-modes/mode-switching.md +372 -0
@@ -0,0 +1,476 @@
1
+ # React Native (Mobile) Scaffold
2
+
3
+ Project structure and configuration for React Native mobile applications.
4
+
5
+ ---
6
+
7
+ ## Directory Structure
8
+
9
+ ```
10
+ project-root/
11
+ ├── src/
12
+ │ ├── screens/ # Screen components (pages)
13
+ │ │ ├── Home/
14
+ │ │ │ ├── HomeScreen.tsx
15
+ │ │ │ ├── HomeScreen.test.tsx
16
+ │ │ │ └── index.ts
17
+ │ │ ├── Auth/
18
+ │ │ │ ├── LoginScreen.tsx
19
+ │ │ │ └── RegisterScreen.tsx
20
+ │ │ └── index.ts
21
+ │ │
22
+ │ ├── components/ # Reusable UI components
23
+ │ │ ├── common/ # Basic UI elements
24
+ │ │ │ ├── Button.tsx
25
+ │ │ │ ├── Input.tsx
26
+ │ │ │ └── Card.tsx
27
+ │ │ ├── forms/ # Form components
28
+ │ │ └── index.ts
29
+ │ │
30
+ │ ├── navigation/ # Navigation configuration
31
+ │ │ ├── RootNavigator.tsx
32
+ │ │ ├── AuthNavigator.tsx
33
+ │ │ ├── MainNavigator.tsx
34
+ │ │ ├── types.ts
35
+ │ │ └── index.ts
36
+ │ │
37
+ │ ├── hooks/ # Custom React hooks
38
+ │ │ ├── useAuth.ts
39
+ │ │ ├── useApi.ts
40
+ │ │ └── index.ts
41
+ │ │
42
+ │ ├── services/ # API and external services
43
+ │ │ ├── api.ts
44
+ │ │ ├── authService.ts
45
+ │ │ ├── storageService.ts
46
+ │ │ └── index.ts
47
+ │ │
48
+ │ ├── stores/ # State management (Zustand)
49
+ │ │ ├── authStore.ts
50
+ │ │ ├── userStore.ts
51
+ │ │ └── index.ts
52
+ │ │
53
+ │ ├── utils/ # Utility functions
54
+ │ │ ├── helpers.ts
55
+ │ │ ├── constants.ts
56
+ │ │ ├── dimensions.ts
57
+ │ │ └── index.ts
58
+ │ │
59
+ │ ├── types/ # TypeScript types
60
+ │ │ ├── navigation.types.ts
61
+ │ │ ├── api.types.ts
62
+ │ │ └── index.ts
63
+ │ │
64
+ │ ├── theme/ # Theme configuration
65
+ │ │ ├── colors.ts
66
+ │ │ ├── typography.ts
67
+ │ │ ├── spacing.ts
68
+ │ │ └── index.ts
69
+ │ │
70
+ │ └── assets/ # Local assets
71
+ │ ├── images/
72
+ │ ├── fonts/
73
+ │ └── icons/
74
+
75
+ ├── __tests__/ # Test files
76
+ │ ├── setup.ts
77
+ │ └── utils.tsx
78
+
79
+ ├── ios/ # iOS native code
80
+ │ └── ...
81
+
82
+ ├── android/ # Android native code
83
+ │ └── ...
84
+
85
+ ├── .husky/ # Git hooks
86
+
87
+ ├── proagents/ # ProAgents configuration
88
+
89
+ ├── App.tsx # Root component
90
+ ├── index.js # Entry point
91
+ ├── app.json # App configuration
92
+ ├── package.json
93
+ ├── tsconfig.json
94
+ ├── babel.config.js
95
+ ├── metro.config.js
96
+ ├── jest.config.js
97
+ └── proagents.config.yaml
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Configuration Files
103
+
104
+ ### package.json
105
+ ```json
106
+ {
107
+ "name": "{{project-name}}",
108
+ "version": "0.1.0",
109
+ "private": true,
110
+ "scripts": {
111
+ "android": "react-native run-android",
112
+ "ios": "react-native run-ios",
113
+ "start": "react-native start",
114
+ "test": "jest",
115
+ "test:coverage": "jest --coverage",
116
+ "lint": "eslint src/",
117
+ "lint:fix": "eslint src/ --fix",
118
+ "type-check": "tsc --noEmit",
119
+ "clean": "watchman watch-del-all && rm -rf node_modules && npm install",
120
+ "clean:android": "cd android && ./gradlew clean && cd ..",
121
+ "clean:ios": "cd ios && pod deintegrate && pod install && cd ..",
122
+ "prepare": "husky install"
123
+ },
124
+ "dependencies": {
125
+ "react": "18.2.0",
126
+ "react-native": "0.73.0",
127
+ "@react-navigation/native": "^6.1.0",
128
+ "@react-navigation/native-stack": "^6.9.0",
129
+ "react-native-screens": "^3.29.0",
130
+ "react-native-safe-area-context": "^4.8.0",
131
+ "zustand": "^4.4.0",
132
+ "@tanstack/react-query": "^5.0.0",
133
+ "axios": "^1.6.0",
134
+ "@react-native-async-storage/async-storage": "^1.21.0"
135
+ },
136
+ "devDependencies": {
137
+ "@babel/core": "^7.20.0",
138
+ "@babel/preset-env": "^7.20.0",
139
+ "@babel/runtime": "^7.20.0",
140
+ "@react-native/babel-preset": "^0.73.0",
141
+ "@react-native/eslint-config": "^0.73.0",
142
+ "@react-native/metro-config": "^0.73.0",
143
+ "@react-native/typescript-config": "^0.73.0",
144
+ "@types/react": "^18.2.0",
145
+ "@types/react-test-renderer": "^18.0.0",
146
+ "typescript": "^5.0.0",
147
+ "jest": "^29.6.0",
148
+ "@testing-library/react-native": "^12.4.0",
149
+ "eslint": "^8.19.0",
150
+ "prettier": "^3.1.0",
151
+ "husky": "^8.0.0",
152
+ "@commitlint/cli": "^18.4.0",
153
+ "@commitlint/config-conventional": "^18.4.0"
154
+ }
155
+ }
156
+ ```
157
+
158
+ ### tsconfig.json
159
+ ```json
160
+ {
161
+ "extends": "@react-native/typescript-config/tsconfig.json",
162
+ "compilerOptions": {
163
+ "strict": true,
164
+ "baseUrl": ".",
165
+ "paths": {
166
+ "@/*": ["src/*"],
167
+ "@screens/*": ["src/screens/*"],
168
+ "@components/*": ["src/components/*"],
169
+ "@navigation/*": ["src/navigation/*"],
170
+ "@hooks/*": ["src/hooks/*"],
171
+ "@services/*": ["src/services/*"],
172
+ "@stores/*": ["src/stores/*"],
173
+ "@utils/*": ["src/utils/*"],
174
+ "@types/*": ["src/types/*"],
175
+ "@theme/*": ["src/theme/*"],
176
+ "@assets/*": ["src/assets/*"]
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### babel.config.js
183
+ ```javascript
184
+ module.exports = {
185
+ presets: ['module:@react-native/babel-preset'],
186
+ plugins: [
187
+ [
188
+ 'module-resolver',
189
+ {
190
+ root: ['./src'],
191
+ alias: {
192
+ '@': './src',
193
+ '@screens': './src/screens',
194
+ '@components': './src/components',
195
+ '@navigation': './src/navigation',
196
+ '@hooks': './src/hooks',
197
+ '@services': './src/services',
198
+ '@stores': './src/stores',
199
+ '@utils': './src/utils',
200
+ '@types': './src/types',
201
+ '@theme': './src/theme',
202
+ '@assets': './src/assets',
203
+ },
204
+ },
205
+ ],
206
+ ],
207
+ };
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Starter Files
213
+
214
+ ### App.tsx
215
+ ```tsx
216
+ import React from 'react';
217
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
218
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
219
+ import { RootNavigator } from '@/navigation';
220
+
221
+ const queryClient = new QueryClient();
222
+
223
+ function App(): React.JSX.Element {
224
+ return (
225
+ <QueryClientProvider client={queryClient}>
226
+ <SafeAreaProvider>
227
+ <RootNavigator />
228
+ </SafeAreaProvider>
229
+ </QueryClientProvider>
230
+ );
231
+ }
232
+
233
+ export default App;
234
+ ```
235
+
236
+ ### src/navigation/RootNavigator.tsx
237
+ ```tsx
238
+ import React from 'react';
239
+ import { NavigationContainer } from '@react-navigation/native';
240
+ import { createNativeStackNavigator } from '@react-navigation/native-stack';
241
+ import { HomeScreen } from '@/screens/Home';
242
+ import type { RootStackParamList } from './types';
243
+
244
+ const Stack = createNativeStackNavigator<RootStackParamList>();
245
+
246
+ export function RootNavigator() {
247
+ return (
248
+ <NavigationContainer>
249
+ <Stack.Navigator initialRouteName="Home">
250
+ <Stack.Screen name="Home" component={HomeScreen} />
251
+ </Stack.Navigator>
252
+ </NavigationContainer>
253
+ );
254
+ }
255
+ ```
256
+
257
+ ### src/navigation/types.ts
258
+ ```tsx
259
+ export type RootStackParamList = {
260
+ Home: undefined;
261
+ Details: { id: string };
262
+ Profile: { userId: string };
263
+ };
264
+
265
+ declare global {
266
+ namespace ReactNavigation {
267
+ interface RootParamList extends RootStackParamList {}
268
+ }
269
+ }
270
+ ```
271
+
272
+ ### src/screens/Home/HomeScreen.tsx
273
+ ```tsx
274
+ import React from 'react';
275
+ import { View, Text, StyleSheet } from 'react-native';
276
+ import { SafeAreaView } from 'react-native-safe-area-context';
277
+
278
+ export function HomeScreen() {
279
+ return (
280
+ <SafeAreaView style={styles.container}>
281
+ <View style={styles.content}>
282
+ <Text style={styles.title}>Welcome!</Text>
283
+ <Text style={styles.subtitle}>Start building your app</Text>
284
+ </View>
285
+ </SafeAreaView>
286
+ );
287
+ }
288
+
289
+ const styles = StyleSheet.create({
290
+ container: {
291
+ flex: 1,
292
+ backgroundColor: '#fff',
293
+ },
294
+ content: {
295
+ flex: 1,
296
+ justifyContent: 'center',
297
+ alignItems: 'center',
298
+ padding: 20,
299
+ },
300
+ title: {
301
+ fontSize: 28,
302
+ fontWeight: 'bold',
303
+ marginBottom: 8,
304
+ },
305
+ subtitle: {
306
+ fontSize: 16,
307
+ color: '#666',
308
+ },
309
+ });
310
+ ```
311
+
312
+ ### src/theme/colors.ts
313
+ ```typescript
314
+ export const colors = {
315
+ primary: '#007AFF',
316
+ secondary: '#5856D6',
317
+ success: '#34C759',
318
+ warning: '#FF9500',
319
+ error: '#FF3B30',
320
+
321
+ background: '#FFFFFF',
322
+ surface: '#F2F2F7',
323
+ text: '#000000',
324
+ textSecondary: '#8E8E93',
325
+
326
+ border: '#C6C6C8',
327
+ divider: '#E5E5EA',
328
+ };
329
+ ```
330
+
331
+ ---
332
+
333
+ ## ProAgents Configuration
334
+
335
+ ### proagents.config.yaml (React Native-specific)
336
+ ```yaml
337
+ project:
338
+ name: "{{project-name}}"
339
+ type: "mobile"
340
+ framework: "react-native"
341
+ language: "typescript"
342
+ platforms: ["ios", "android"]
343
+
344
+ phases:
345
+ analysis:
346
+ enabled: true
347
+ focus:
348
+ - "screen-structure"
349
+ - "navigation-patterns"
350
+ - "platform-specific"
351
+ ui_design:
352
+ enabled: true
353
+ guidelines:
354
+ - "ios-hig"
355
+ - "material-design"
356
+ - "accessibility"
357
+ api_design:
358
+ enabled: false
359
+ testing:
360
+ coverage_target: 75
361
+ types: ["unit", "integration"]
362
+ device_testing: true
363
+
364
+ patterns:
365
+ screens:
366
+ naming: "PascalCase"
367
+ suffix: "Screen"
368
+ structure: "folder-per-screen"
369
+ components:
370
+ style: "functional"
371
+ platform_specific: true
372
+ navigation:
373
+ library: "react-navigation"
374
+ type: "native-stack"
375
+ state:
376
+ global: "zustand"
377
+ server: "react-query"
378
+ styling:
379
+ approach: "stylesheet" # or nativewind, styled-components
380
+
381
+ testing:
382
+ framework: "jest"
383
+ library: "testing-library-react-native"
384
+ device_testing:
385
+ ios_simulator: true
386
+ android_emulator: true
387
+
388
+ deployment:
389
+ ios:
390
+ method: "app-store" # or testflight, adhoc
391
+ signing: "automatic"
392
+ android:
393
+ method: "play-store" # or internal, beta
394
+ signing: "release-keystore"
395
+ ```
396
+
397
+ ---
398
+
399
+ ## Screen Template
400
+
401
+ When creating new screens:
402
+
403
+ ```
404
+ src/screens/MyScreen/
405
+ ├── MyScreen.tsx # Main screen component
406
+ ├── MyScreen.test.tsx # Screen tests
407
+ ├── components/ # Screen-specific components
408
+ ├── hooks/ # Screen-specific hooks
409
+ └── index.ts # Export
410
+ ```
411
+
412
+ ### Screen File Template
413
+ ```tsx
414
+ import React from 'react';
415
+ import { View, Text, StyleSheet } from 'react-native';
416
+ import { SafeAreaView } from 'react-native-safe-area-context';
417
+ import type { NativeStackScreenProps } from '@react-navigation/native-stack';
418
+ import type { RootStackParamList } from '@/navigation/types';
419
+
420
+ type Props = NativeStackScreenProps<RootStackParamList, 'MyScreen'>;
421
+
422
+ export function MyScreen({ navigation, route }: Props) {
423
+ return (
424
+ <SafeAreaView style={styles.container}>
425
+ <View style={styles.content}>
426
+ <Text style={styles.title}>My Screen</Text>
427
+ </View>
428
+ </SafeAreaView>
429
+ );
430
+ }
431
+
432
+ const styles = StyleSheet.create({
433
+ container: {
434
+ flex: 1,
435
+ backgroundColor: '#fff',
436
+ },
437
+ content: {
438
+ flex: 1,
439
+ padding: 20,
440
+ },
441
+ title: {
442
+ fontSize: 24,
443
+ fontWeight: 'bold',
444
+ },
445
+ });
446
+ ```
447
+
448
+ ---
449
+
450
+ ## Platform-Specific Files
451
+
452
+ For platform-specific code:
453
+
454
+ ```
455
+ src/components/Button/
456
+ ├── Button.tsx # Shared logic
457
+ ├── Button.ios.tsx # iOS-specific
458
+ ├── Button.android.tsx # Android-specific
459
+ └── index.ts
460
+ ```
461
+
462
+ ---
463
+
464
+ ## Slash Commands (React Native-specific)
465
+
466
+ | Command | Description |
467
+ |---------|-------------|
468
+ | `/screen [name]` | Generate new screen |
469
+ | `/component [name]` | Generate component |
470
+ | `/hook [name]` | Generate custom hook |
471
+ | `/navigator [name]` | Generate navigator |
472
+ | `/service [name]` | Generate service |
473
+ | `/run ios` | Run on iOS simulator |
474
+ | `/run android` | Run on Android emulator |
475
+ | `/build ios` | Build iOS release |
476
+ | `/build android` | Build Android release |
@@ -0,0 +1,226 @@
1
+ /**
2
+ * use{{HookName}} Hook
3
+ *
4
+ * {{description}}
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * const { data, loading, error, refetch } = use{{HookName}}();
9
+ * ```
10
+ */
11
+
12
+ import { useState, useEffect, useCallback, useMemo } from 'react';
13
+ {{#if useQuery}}
14
+ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
15
+ {{/if}}
16
+ import { {{serviceName}} } from '@/services/{{serviceName}}';
17
+ import type { {{EntityName}} } from '@/types';
18
+
19
+ // ============================================================================
20
+ // Types
21
+ // ============================================================================
22
+
23
+ export interface Use{{HookName}}Options {
24
+ /** Enable/disable auto-fetching */
25
+ enabled?: boolean;
26
+ /** Initial data */
27
+ initialData?: {{EntityName}}[];
28
+ /** Refetch interval in milliseconds */
29
+ refetchInterval?: number;
30
+ }
31
+
32
+ export interface Use{{HookName}}Result {
33
+ /** Fetched data */
34
+ data: {{EntityName}}[] | null;
35
+ /** Loading state */
36
+ loading: boolean;
37
+ /** Error state */
38
+ error: Error | null;
39
+ /** Refetch function */
40
+ refetch: () => Promise<void>;
41
+ /** Create new item */
42
+ create: (input: Create{{EntityName}}Input) => Promise<{{EntityName}}>;
43
+ /** Update item */
44
+ update: (id: string, input: Update{{EntityName}}Input) => Promise<{{EntityName}}>;
45
+ /** Delete item */
46
+ remove: (id: string) => Promise<void>;
47
+ /** Mutation loading state */
48
+ mutating: boolean;
49
+ }
50
+
51
+ interface Create{{EntityName}}Input {
52
+ name: string;
53
+ description?: string;
54
+ }
55
+
56
+ interface Update{{EntityName}}Input {
57
+ name?: string;
58
+ description?: string;
59
+ }
60
+
61
+ // ============================================================================
62
+ // Hook Implementation
63
+ // ============================================================================
64
+
65
+ export function use{{HookName}}(
66
+ options: Use{{HookName}}Options = {}
67
+ ): Use{{HookName}}Result {
68
+ const {
69
+ enabled = true,
70
+ initialData = null,
71
+ refetchInterval,
72
+ } = options;
73
+
74
+ {{#if useQuery}}
75
+ // React Query implementation
76
+ const queryClient = useQueryClient();
77
+
78
+ // Query
79
+ const {
80
+ data,
81
+ isLoading: loading,
82
+ error,
83
+ refetch: queryRefetch,
84
+ } = useQuery({
85
+ queryKey: ['{{entityName}}s'],
86
+ queryFn: () => {{serviceName}}.getAll(),
87
+ enabled,
88
+ initialData,
89
+ refetchInterval,
90
+ });
91
+
92
+ // Mutations
93
+ const createMutation = useMutation({
94
+ mutationFn: (input: Create{{EntityName}}Input) => {{serviceName}}.create(input),
95
+ onSuccess: () => {
96
+ queryClient.invalidateQueries({ queryKey: ['{{entityName}}s'] });
97
+ },
98
+ });
99
+
100
+ const updateMutation = useMutation({
101
+ mutationFn: ({ id, input }: { id: string; input: Update{{EntityName}}Input }) =>
102
+ {{serviceName}}.update(id, input),
103
+ onSuccess: () => {
104
+ queryClient.invalidateQueries({ queryKey: ['{{entityName}}s'] });
105
+ },
106
+ });
107
+
108
+ const deleteMutation = useMutation({
109
+ mutationFn: (id: string) => {{serviceName}}.delete(id),
110
+ onSuccess: () => {
111
+ queryClient.invalidateQueries({ queryKey: ['{{entityName}}s'] });
112
+ },
113
+ });
114
+
115
+ const refetch = useCallback(async () => {
116
+ await queryRefetch();
117
+ }, [queryRefetch]);
118
+
119
+ const create = useCallback(async (input: Create{{EntityName}}Input) => {
120
+ return createMutation.mutateAsync(input);
121
+ }, [createMutation]);
122
+
123
+ const update = useCallback(async (id: string, input: Update{{EntityName}}Input) => {
124
+ return updateMutation.mutateAsync({ id, input });
125
+ }, [updateMutation]);
126
+
127
+ const remove = useCallback(async (id: string) => {
128
+ await deleteMutation.mutateAsync(id);
129
+ }, [deleteMutation]);
130
+
131
+ const mutating = createMutation.isPending ||
132
+ updateMutation.isPending ||
133
+ deleteMutation.isPending;
134
+
135
+ return {
136
+ data: data ?? null,
137
+ loading,
138
+ error: error as Error | null,
139
+ refetch,
140
+ create,
141
+ update,
142
+ remove,
143
+ mutating,
144
+ };
145
+ {{else}}
146
+ // useState implementation
147
+ const [data, setData] = useState<{{EntityName}}[] | null>(initialData);
148
+ const [loading, setLoading] = useState(false);
149
+ const [error, setError] = useState<Error | null>(null);
150
+ const [mutating, setMutating] = useState(false);
151
+
152
+ const fetchData = useCallback(async () => {
153
+ if (!enabled) return;
154
+
155
+ setLoading(true);
156
+ setError(null);
157
+
158
+ try {
159
+ const result = await {{serviceName}}.getAll();
160
+ setData(result);
161
+ } catch (err) {
162
+ setError(err instanceof Error ? err : new Error('Failed to fetch'));
163
+ } finally {
164
+ setLoading(false);
165
+ }
166
+ }, [enabled]);
167
+
168
+ useEffect(() => {
169
+ fetchData();
170
+
171
+ if (refetchInterval) {
172
+ const interval = setInterval(fetchData, refetchInterval);
173
+ return () => clearInterval(interval);
174
+ }
175
+ }, [fetchData, refetchInterval]);
176
+
177
+ const refetch = useCallback(async () => {
178
+ await fetchData();
179
+ }, [fetchData]);
180
+
181
+ const create = useCallback(async (input: Create{{EntityName}}Input) => {
182
+ setMutating(true);
183
+ try {
184
+ const result = await {{serviceName}}.create(input);
185
+ await fetchData();
186
+ return result;
187
+ } finally {
188
+ setMutating(false);
189
+ }
190
+ }, [fetchData]);
191
+
192
+ const update = useCallback(async (id: string, input: Update{{EntityName}}Input) => {
193
+ setMutating(true);
194
+ try {
195
+ const result = await {{serviceName}}.update(id, input);
196
+ await fetchData();
197
+ return result;
198
+ } finally {
199
+ setMutating(false);
200
+ }
201
+ }, [fetchData]);
202
+
203
+ const remove = useCallback(async (id: string) => {
204
+ setMutating(true);
205
+ try {
206
+ await {{serviceName}}.delete(id);
207
+ await fetchData();
208
+ } finally {
209
+ setMutating(false);
210
+ }
211
+ }, [fetchData]);
212
+
213
+ return {
214
+ data,
215
+ loading,
216
+ error,
217
+ refetch,
218
+ create,
219
+ update,
220
+ remove,
221
+ mutating,
222
+ };
223
+ {{/if}}
224
+ }
225
+
226
+ export default use{{HookName}};