@shaykec/app-agent 1.0.9 → 1.0.10

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 (199) hide show
  1. package/.claude/agents/catalog-analyzer.md +57 -0
  2. package/.claude/skills/android-customizer/SKILL.md +23 -10
  3. package/.claude/skills/bug-fixer/SKILL.md +59 -0
  4. package/.claude/skills/catalog-analyzer/SKILL.md +96 -0
  5. package/.claude/skills/customization-planner/SKILL.md +44 -5
  6. package/.claude/skills/design-selector/SKILL.md +3 -1
  7. package/.claude/skills/design-system/SKILL.md +1 -1
  8. package/.claude/skills/exploratory-tester/SKILL.md +82 -0
  9. package/.claude/skills/ios-customizer/SKILL.md +29 -8
  10. package/.claude/skills/module-integrator/SKILL.md +1 -1
  11. package/.claude/skills/react-native-customizer/SKILL.md +22 -10
  12. package/.claude/skills/test-planner/SKILL.md +72 -0
  13. package/.cursor/agents/README.md +3 -1
  14. package/.cursor/agents/catalog-analyzer.md +83 -0
  15. package/.cursor/rules/safety-guardrails.mdc +1 -1
  16. package/.cursor/rules/workflow.mdc +52 -18
  17. package/.cursor/skills/android-customizer/SKILL.md +43 -19
  18. package/.cursor/skills/bug-fixer/SKILL.md +189 -0
  19. package/.cursor/skills/catalog-analyzer/SKILL.md +222 -0
  20. package/.cursor/skills/customization-planner/SKILL.md +55 -8
  21. package/.cursor/skills/design-selector/SKILL.md +6 -5
  22. package/.cursor/skills/design-system/SKILL.md +8 -7
  23. package/.cursor/skills/exploratory-tester/SKILL.md +223 -0
  24. package/.cursor/skills/ios-customizer/SKILL.md +47 -12
  25. package/.cursor/skills/module-integrator/SKILL.md +2 -2
  26. package/.cursor/skills/output-validator/SKILL.md +1 -1
  27. package/.cursor/skills/react-native-customizer/SKILL.md +46 -16
  28. package/.cursor/skills/test-planner/SKILL.md +199 -0
  29. package/AGENTS.md +32 -11
  30. package/CLAUDE.md +78 -33
  31. package/README.md +77 -11
  32. package/designs/DESIGN_CATALOG.md +17 -15
  33. package/designs/DESIGN_PRINCIPLES.md +53 -0
  34. package/designs/brands/accessible-high-contrast.md +14 -0
  35. package/designs/brands/corporate-professional.md +14 -0
  36. package/designs/brands/dark-luxe.md +14 -0
  37. package/designs/brands/kids-playful.md +14 -0
  38. package/designs/brands/medical-clinical.md +14 -0
  39. package/designs/brands/modern-minimal.md +14 -0
  40. package/designs/brands/nature-organic.md +14 -0
  41. package/designs/brands/neo-brutalist.md +14 -0
  42. package/designs/brands/retro-vintage.md +14 -0
  43. package/designs/brands/soft-gradient.md +14 -0
  44. package/designs/brands/sport-athletic.md +14 -0
  45. package/designs/brands/tech-dynamic.md +14 -0
  46. package/designs/brands/vibrant-playful.md +14 -0
  47. package/dist/cli.d.ts +4 -2
  48. package/dist/cli.d.ts.map +1 -1
  49. package/dist/cli.js +91 -1
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config.d.ts +2 -0
  52. package/dist/config.d.ts.map +1 -1
  53. package/dist/config.js +2 -0
  54. package/dist/config.js.map +1 -1
  55. package/dist/engines/claude-engine.d.ts.map +1 -1
  56. package/dist/engines/claude-engine.js +16 -4
  57. package/dist/engines/claude-engine.js.map +1 -1
  58. package/dist/engines/types.d.ts +1 -1
  59. package/dist/engines/types.d.ts.map +1 -1
  60. package/dist/engines/types.js +31 -2
  61. package/dist/engines/types.js.map +1 -1
  62. package/dist/github.d.ts +3 -0
  63. package/dist/github.d.ts.map +1 -1
  64. package/dist/github.js +47 -4
  65. package/dist/github.js.map +1 -1
  66. package/dist/index.js +217 -9
  67. package/dist/index.js.map +1 -1
  68. package/dist/prompt-builder.d.ts +11 -1
  69. package/dist/prompt-builder.d.ts.map +1 -1
  70. package/dist/prompt-builder.js +216 -1
  71. package/dist/prompt-builder.js.map +1 -1
  72. package/dist/validator.d.ts +7 -2
  73. package/dist/validator.d.ts.map +1 -1
  74. package/dist/validator.js +61 -41
  75. package/dist/validator.js.map +1 -1
  76. package/dist/workspace.js +2 -2
  77. package/dist/workspace.js.map +1 -1
  78. package/package.json +2 -2
  79. package/prompts/agent-prompt.md +35 -18
  80. package/prompts/deep-test-agent-prompt.md +122 -0
  81. package/prompts/fix-agent-prompt.md +90 -0
  82. package/prompts/quick-agent-prompt.md +32 -2
  83. package/prompts/scratch-agent-prompt.md +5 -8
  84. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  85. package/templates/android/ChatTemplate/app/src/main/kotlin/com/appship/chat/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  86. package/templates/android/ChatTemplate/app/src/main/kotlin/com/appship/chat/features/conversations/ConversationsScreen.kt +1 -1
  87. package/templates/android/DashTemplate/app/src/main/kotlin/com/appship/dash/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  88. package/templates/android/DashTemplate/app/src/main/kotlin/com/appship/dash/features/navigation/MainScreen.kt +1 -0
  89. package/templates/android/FamilyTemplate/app/src/main/java/com/appship/family/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  90. package/templates/android/FamilyTemplate/app/src/main/java/com/appship/family/features/navigation/MainNavigation.kt +5 -1
  91. package/templates/android/FinanceTemplate/app/src/main/kotlin/com/appship/finance/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  92. package/templates/android/GameTemplate/app/src/main/kotlin/com/appship/game/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  93. package/templates/android/GameTemplate/app/src/main/kotlin/com/appship/game/core/animation/MotionPreferencesScreen.kt +3 -3
  94. package/templates/android/GameTemplate/app/src/main/kotlin/com/appship/game/features/navigation/Navigation.kt +1 -1
  95. package/templates/android/GameTemplate/app/src/main/kotlin/com/appship/game/features/settings/SettingsScreen.kt +1 -1
  96. package/templates/android/HealthTemplate/app/src/main/kotlin/com/appship/health/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  97. package/templates/android/LearnTemplate/app/src/main/kotlin/com/appship/learn/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  98. package/templates/android/MapTemplate/app/src/main/kotlin/com/appship/map/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  99. package/templates/android/MediaTemplate/app/src/main/kotlin/com/appship/media/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  100. package/templates/android/MediaTemplate/app/src/main/kotlin/com/appship/media/features/settings/SettingsScreen.kt +3 -2
  101. package/templates/android/ReferenceTemplate/app/src/main/kotlin/com/appship/reference/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  102. package/templates/android/ReferenceTemplate/app/src/main/kotlin/com/appship/reference/features/settings/SettingsScreen.kt +1 -1
  103. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  104. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/features/cart/CartScreen.kt +3 -2
  105. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  106. package/templates/android/Skeleton/tests/03_detail_screen.yaml +1 -1
  107. package/templates/android/Skeleton/tests/04_favorites.yaml +1 -1
  108. package/templates/android/Skeleton/tests/08_full_e2e.yaml +7 -1
  109. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  110. package/templates/android/TaskTemplate/app/src/main/kotlin/com/appship/task/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  111. package/templates/android/TaskTemplate/app/src/main/kotlin/com/appship/task/features/settings/SettingsScreen.kt +3 -2
  112. package/templates/android/TrackTemplate/app/src/main/kotlin/com/appship/track/core/animation/AnimatedTransitionsModifiers.kt +188 -0
  113. package/templates/ios/BookTemplate/BookTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  114. package/templates/ios/ChatTemplate/ChatTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  115. package/templates/ios/DashTemplate/DashTemplate/App/AppConfig.swift +1 -0
  116. package/templates/ios/DashTemplate/DashTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  117. package/templates/ios/DashTemplate/DashTemplate/Core/Strings.swift +13 -0
  118. package/templates/ios/DashTemplate/DashTemplate.xcodeproj/project.pbxproj +32 -20
  119. package/templates/ios/FamilyTemplate/FamilyTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  120. package/templates/ios/FinanceTemplate/FinanceTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  121. package/templates/ios/FinanceTemplate/FinanceTemplate/Core/Strings.swift +42 -0
  122. package/templates/ios/FinanceTemplate/FinanceTemplate.xcodeproj/project.pbxproj +36 -30
  123. package/templates/ios/GameTemplate/GameTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  124. package/templates/ios/HealthTemplate/HealthTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  125. package/templates/ios/LearnTemplate/LearnTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  126. package/templates/ios/MapTemplate/MapTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  127. package/templates/ios/MediaTemplate/MediaTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  128. package/templates/ios/ReferenceTemplate/ReferenceTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  129. package/templates/ios/ReferenceTemplate/ReferenceTemplate/Core/Strings.swift +12 -0
  130. package/templates/ios/ReferenceTemplate/ReferenceTemplate/Features/SkeletonLoading/SkeletonLoadingView.swift +2 -37
  131. package/templates/ios/ShopTemplate/ShopTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  132. package/templates/ios/Skeleton/Skeleton/Core/Animation/AnimatedTransitionsView.swift +201 -0
  133. package/templates/ios/Skeleton/tests/08_full_e2e.yaml +4 -0
  134. package/templates/ios/SocialTemplate/SocialTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  135. package/templates/ios/TaskTemplate/TaskTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  136. package/templates/ios/TrackTemplate/TrackTemplate/Core/Animation/AnimatedTransitionsView.swift +201 -0
  137. package/templates/react-native/BookTemplate/src/animation/useAnimatedList.ts +219 -2
  138. package/templates/react-native/BookTemplate/src/animation/useMotionPreferences.ts +23 -9
  139. package/templates/react-native/BookTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  140. package/templates/react-native/ChatTemplate/src/animation/useAnimatedList.ts +219 -2
  141. package/templates/react-native/ChatTemplate/src/animation/useMotionPreferences.ts +23 -9
  142. package/templates/react-native/ChatTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  143. package/templates/react-native/DashTemplate/src/animation/useAnimatedList.ts +219 -2
  144. package/templates/react-native/DashTemplate/src/animation/useMotionPreferences.ts +23 -9
  145. package/templates/react-native/DashTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  146. package/templates/react-native/FamilyTemplate/src/animation/useAnimatedList.ts +219 -2
  147. package/templates/react-native/FamilyTemplate/src/animation/useMotionPreferences.ts +23 -9
  148. package/templates/react-native/FamilyTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  149. package/templates/react-native/FinanceTemplate/src/animation/useAnimatedList.ts +219 -2
  150. package/templates/react-native/FinanceTemplate/src/animation/useMotionPreferences.ts +23 -9
  151. package/templates/react-native/FinanceTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  152. package/templates/react-native/GameTemplate/src/animation/useAnimatedList.ts +219 -2
  153. package/templates/react-native/GameTemplate/src/animation/useMotionPreferences.ts +23 -9
  154. package/templates/react-native/GameTemplate/src/screens/GameDetail/GameDetailScreen.tsx +2 -1
  155. package/templates/react-native/GameTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  156. package/templates/react-native/HealthTemplate/src/animation/useAnimatedList.ts +219 -2
  157. package/templates/react-native/HealthTemplate/src/animation/useMotionPreferences.ts +23 -9
  158. package/templates/react-native/HealthTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  159. package/templates/react-native/HealthTemplate/src/screens/WorkoutDetail/WorkoutDetailScreen.tsx +1 -1
  160. package/templates/react-native/LearnTemplate/src/animation/useAnimatedList.ts +219 -2
  161. package/templates/react-native/LearnTemplate/src/animation/useMotionPreferences.ts +23 -9
  162. package/templates/react-native/LearnTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  163. package/templates/react-native/MapTemplate/src/animation/useAnimatedList.ts +219 -2
  164. package/templates/react-native/MapTemplate/src/animation/useMotionPreferences.ts +23 -9
  165. package/templates/react-native/MapTemplate/src/screens/Map/MapScreen.tsx +14 -0
  166. package/templates/react-native/MapTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  167. package/templates/react-native/MediaTemplate/src/animation/useAnimatedList.ts +219 -2
  168. package/templates/react-native/MediaTemplate/src/animation/useMotionPreferences.ts +23 -9
  169. package/templates/react-native/MediaTemplate/src/screens/PlaylistDetail/PlaylistDetailScreen.tsx +1 -1
  170. package/templates/react-native/MediaTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  171. package/templates/react-native/ReferenceTemplate/src/animation/useAnimatedList.ts +219 -2
  172. package/templates/react-native/ReferenceTemplate/src/animation/useMotionPreferences.ts +23 -9
  173. package/templates/react-native/ReferenceTemplate/src/screens/Settings/SettingsScreen.tsx +1 -1
  174. package/templates/react-native/ShopTemplate/src/animation/useAnimatedList.ts +219 -2
  175. package/templates/react-native/ShopTemplate/src/animation/useMotionPreferences.ts +23 -9
  176. package/templates/react-native/ShopTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  177. package/templates/react-native/Skeleton/TESTING_MANIFEST.md +1 -1
  178. package/templates/react-native/Skeleton/src/animation/useAnimatedList.ts +219 -2
  179. package/templates/react-native/Skeleton/src/animation/useMotionPreferences.ts +23 -9
  180. package/templates/react-native/Skeleton/src/screens/Profile/ProfileScreen.tsx +1 -1
  181. package/templates/react-native/Skeleton/tests/07_profile.yaml +3 -2
  182. package/templates/react-native/Skeleton/tests/08_full_e2e.yaml +12 -1
  183. package/templates/react-native/SocialTemplate/src/animation/useAnimatedList.ts +219 -2
  184. package/templates/react-native/SocialTemplate/src/animation/useMotionPreferences.ts +23 -9
  185. package/templates/react-native/SocialTemplate/src/screens/Feed/FeedScreen.tsx +1 -0
  186. package/templates/react-native/SocialTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  187. package/templates/react-native/TaskTemplate/src/animation/useAnimatedList.ts +219 -2
  188. package/templates/react-native/TaskTemplate/src/animation/useMotionPreferences.ts +23 -9
  189. package/templates/react-native/TaskTemplate/src/screens/Profile/ProfileScreen.tsx +1 -1
  190. package/templates/react-native/TrackTemplate/src/animation/useAnimatedList.ts +219 -2
  191. package/templates/react-native/TrackTemplate/src/animation/useMotionPreferences.ts +23 -9
  192. package/templates/react-native/TrackTemplate/src/screens/Settings/SettingsScreen.tsx +1 -1
  193. package/templates/shared/ios/AnimatedTransitions/AnimatedTransitionsView.swift +233 -93
  194. package/.claude/agents/template-selector.md +0 -39
  195. package/.claude/skills/module-selector/SKILL.md +0 -81
  196. package/.claude/skills/template-selector/SKILL.md +0 -44
  197. package/.cursor/agents/template-selector.md +0 -52
  198. package/.cursor/skills/module-selector/SKILL.md +0 -135
  199. package/.cursor/skills/template-selector/SKILL.md +0 -123
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAyFpC;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAChB,WAAW,GAAG,EAAE,CAAC;IACjB,MAAM,CAAS;IAEvB,YAAY,MAAM,GAAG,EAAE;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAY;QAChB,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,GAAY;QACf,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,gFAAgF;QAChF,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,GAAW;QACtB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,YAAY;IAEI;IADZ,WAAW,GAAG,EAAE,CAAC;IACzB,YAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE1C,KAAK,CAAC,GAAY;QAChB,IAAI,GAAG;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,GAAY,EAAE,IAAa;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAyB;IACrD,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAUf;IATF,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,GAAG,CAAC,CAAC;IACd,iBAAiB,CAAS;IAC1B,YAAY,CAAS;IAE7B,YACU,OAAoB,EAC5B,iBAAiB,GAAG,MAAM,EAC1B,SAAS,GAAG,EAAE;QAFN,YAAO,GAAP,OAAO,CAAa;QAI5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,0CAA0C;IAClC,OAAO;QACb,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,uEAAuE;IAC/D,MAAM;QACZ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAED;;;OAGG;IACK,GAAG,CAAC,OAAe,EAAE,QAAkC,MAAM;QACnE,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,aAAa;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,GAAG,CACN,aAAa,IAAI,CAAC,aAAa,gBAAgB,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,SAAS,QAAQ,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,wCAAwC;IACxC,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,GAAG,CAAC,wBAAwB,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,OAAe;QACtB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7E,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,MAAc,EAAE,KAAa;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,2BAA2B;IAC3B,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,mBAAmB,CAAC,OAAe;QACjC,MAAM,SAAS,GAAG;YAChB,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ;YAC7C,aAAa,EAAE,aAAa,EAAE,eAAe;YAC7C,iBAAiB,EAAE,KAAK,EAAE,OAAO;SAClC,CAAC;QACF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7E,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,SAAS,CAAC,QAAgB;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,KAAiB,EAAE,UAAkB;QACnD,MAAM,KAAK,GAAG;YACZ,gBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE;YAC5C,iBAAiB,IAAI,CAAC,aAAa,EAAE;YACrC,oBAAoB,KAAK,CAAC,YAAY,kBAAkB,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;QACzF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACF;AAED,mCAAmC;AACnC,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;IACtC,OAAO,GAAG,OAAO,KAAK,gBAAgB,GAAG,CAAC;AAC5C,CAAC"}
package/dist/github.d.ts CHANGED
@@ -21,6 +21,9 @@ export declare function checkAgentCli(): Promise<{
21
21
  /**
22
22
  * Initialize a git repo in the app directory, create a GitHub repo,
23
23
  * and push the code.
24
+ *
25
+ * If a repo with the given name already exists, automatically appends a
26
+ * numeric suffix (e.g., "yoga-booking-2") instead of failing.
24
27
  */
25
28
  export declare function pushToGitHub(appDir: string, repoName: string, visibility?: "private" | "public"): Promise<GitHubResult>;
26
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/github.js CHANGED
@@ -49,9 +49,43 @@ export async function checkAgentCli() {
49
49
  };
50
50
  }
51
51
  }
52
+ /**
53
+ * Check if a GitHub repo already exists under the authenticated user's account.
54
+ * Returns true if the repo exists, false otherwise.
55
+ */
56
+ async function repoExists(repoName) {
57
+ try {
58
+ await execa("gh", ["repo", "view", repoName, "--json", "name"]);
59
+ return true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Find an available repo name by appending numeric suffixes if the base name is taken.
67
+ * e.g., "yoga-booking" -> "yoga-booking-2" -> "yoga-booking-3"
68
+ */
69
+ async function findAvailableRepoName(baseName, maxAttempts = 5) {
70
+ if (!(await repoExists(baseName))) {
71
+ return baseName;
72
+ }
73
+ for (let i = 2; i <= maxAttempts + 1; i++) {
74
+ const candidate = `${baseName}-${i}`;
75
+ if (!(await repoExists(candidate))) {
76
+ return candidate;
77
+ }
78
+ }
79
+ // Last resort: append timestamp
80
+ const ts = Date.now().toString(36);
81
+ return `${baseName}-${ts}`;
82
+ }
52
83
  /**
53
84
  * Initialize a git repo in the app directory, create a GitHub repo,
54
85
  * and push the code.
86
+ *
87
+ * If a repo with the given name already exists, automatically appends a
88
+ * numeric suffix (e.g., "yoga-booking-2") instead of failing.
55
89
  */
56
90
  export async function pushToGitHub(appDir, repoName, visibility = "private") {
57
91
  const spinner = p.spinner();
@@ -67,19 +101,28 @@ export async function pushToGitHub(appDir, repoName, visibility = "private") {
67
101
  await execa("git", ["add", "-A"], { cwd: appDir, env: gitEnv });
68
102
  await execa("git", ["commit", "-m", "Initial app generated by AppAgent"], { cwd: appDir, env: gitEnv });
69
103
  spinner.stop("Git repository initialized");
70
- // 2. Create GitHub repo and push
71
- spinner.start(`Creating GitHub repo: ${repoName}...`);
104
+ // 2. Find an available repo name (auto-suffix if name is taken)
105
+ spinner.start(`Checking repo name availability: ${repoName}...`);
106
+ const availableName = await findAvailableRepoName(repoName);
107
+ if (availableName !== repoName) {
108
+ spinner.stop(`Repo "${repoName}" already exists — using "${availableName}" instead`);
109
+ }
110
+ else {
111
+ spinner.stop(`Repo name available: ${repoName}`);
112
+ }
113
+ // 3. Create GitHub repo and push
114
+ spinner.start(`Creating GitHub repo: ${availableName}...`);
72
115
  const result = await execa("gh", [
73
116
  "repo",
74
117
  "create",
75
- repoName,
118
+ availableName,
76
119
  `--${visibility}`,
77
120
  "--source",
78
121
  ".",
79
122
  "--push",
80
123
  ], { cwd: appDir });
81
124
  // Extract repo URL from gh output
82
- const repoUrl = extractRepoUrl(result.stdout) ?? `https://github.com/${repoName}`;
125
+ const repoUrl = extractRepoUrl(result.stdout) ?? `https://github.com/${availableName}`;
83
126
  spinner.stop(`Pushed to GitHub: ${repoUrl}`);
84
127
  return { success: true, repoUrl };
85
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import fs from "fs-extra";
4
4
  import path from "node:path";
5
5
  import { execSync } from "node:child_process";
6
6
  import { collectUserInput, confirmInput, parseCliArgs, parseManagementCommand } from "./cli.js";
7
- import { buildAgentPrompt, buildTestPrompt, buildScratchPrompt, buildQuickPrompt, buildUpdatePrompt } from "./prompt-builder.js";
7
+ import { buildAgentPrompt, buildTestPrompt, buildDeepTestPrompt, buildFixPrompt, buildScratchPrompt, buildQuickPrompt, buildUpdatePrompt } from "./prompt-builder.js";
8
8
  import { createEngine } from "./engines/index.js";
9
9
  import { validateOutput, reportValidation } from "./validator.js";
10
10
  import { validatePrompt, formatSanitizationResult } from "./prompt-sanitizer.js";
@@ -30,6 +30,12 @@ async function main() {
30
30
  else if (mgmtCmd.command === "test") {
31
31
  await testApp(mgmtCmd.appName, mgmtCmd.engine, mgmtCmd.model);
32
32
  }
33
+ else if (mgmtCmd.command === "deep-test") {
34
+ await deepTestApp(mgmtCmd.appName, mgmtCmd.autoFix ?? false, mgmtCmd.engine, mgmtCmd.model);
35
+ }
36
+ else if (mgmtCmd.command === "fix") {
37
+ await fixApp(mgmtCmd.appName, mgmtCmd.engine, mgmtCmd.model);
38
+ }
33
39
  else if (mgmtCmd.command === "preview") {
34
40
  await handlePreview(mgmtCmd.appName);
35
41
  }
@@ -55,6 +61,10 @@ async function main() {
55
61
  await runApp(cmd.appName);
56
62
  else if (cmd.command === "test")
57
63
  await testApp(cmd.appName, cmd.engine, cmd.model);
64
+ else if (cmd.command === "deep-test")
65
+ await deepTestApp(cmd.appName, cmd.autoFix ?? false, cmd.engine, cmd.model);
66
+ else if (cmd.command === "fix")
67
+ await fixApp(cmd.appName, cmd.engine, cmd.model);
58
68
  else if (cmd.command === "preview")
59
69
  await handlePreview(cmd.appName);
60
70
  else if (cmd.command === "screenshot")
@@ -246,7 +256,8 @@ async function main() {
246
256
  displayMaestroResults(agentResult);
247
257
  // ── Validate output ─────────────────────────────────────────────────
248
258
  p.log.step("Validating generated app...");
249
- const validation = await validateOutput(singlePlatform, knownAppDir);
259
+ const buildMode = input.quick ? "quick" : input.scratch ? "scratch" : "full";
260
+ const validation = await validateOutput(singlePlatform, knownAppDir, { mode: buildMode });
250
261
  reportValidation(validation);
251
262
  if (!validation.valid) {
252
263
  p.outro("Validation failed. The stop hook may have already retried. Check output/ for details.");
@@ -410,9 +421,10 @@ async function runParallelBuild(input, engine, cliResult, cliFlags, ghAvailable)
410
421
  // Validate each platform
411
422
  p.log.step("Validating generated apps...");
412
423
  let allValid = true;
424
+ const dualBuildMode = input.quick ? "quick" : input.scratch ? "scratch" : "full";
413
425
  for (const plat of platforms) {
414
426
  const platDir = path.join(monorepoDir, plat);
415
- const validation = await validateOutput(plat, platDir);
427
+ const validation = await validateOutput(plat, platDir, { mode: dualBuildMode });
416
428
  if (validation.valid) {
417
429
  p.log.success(`[${plat}] Validation passed`);
418
430
  }
@@ -515,9 +527,10 @@ async function handleGitHubPush(cliResult, cliFlags, ghAvailable, appDir, artifa
515
527
  }
516
528
  if (cliResult && cliFlags.push && appDir) {
517
529
  if (!ghAvailable) {
518
- p.log.error("Cannot push to GitHub: prerequisites not met. Run 'gh auth login' first.");
530
+ p.log.warn("Cannot push to GitHub: prerequisites not met. Run 'gh auth login' first.");
519
531
  p.outro(`App was generated at: ${appDir}${artifactLine}`);
520
- process.exit(1);
532
+ // Don't exit(1) — the app was generated successfully; push failure is non-fatal
533
+ return;
521
534
  }
522
535
  const repoName = cliFlags.repoName || deriveRepoName(appDir);
523
536
  const ghResult = await pushToGitHub(appDir, repoName);
@@ -525,9 +538,9 @@ async function handleGitHubPush(cliResult, cliFlags, ghAvailable, appDir, artifa
525
538
  p.outro(`Done! Your app is at: ${ghResult.repoUrl}${artifactLine}`);
526
539
  }
527
540
  else {
528
- p.log.error(`GitHub push failed: ${ghResult.error}`);
541
+ p.log.warn(`GitHub push failed: ${ghResult.error}`);
529
542
  p.outro(`App was generated at: ${appDir}${artifactLine}\nPush manually with: cd ${appDir} && gh repo create`);
530
- process.exit(1);
543
+ // Don't exit(1) — the app was generated successfully; push failure is non-fatal
531
544
  }
532
545
  }
533
546
  else if (cliResult) {
@@ -635,6 +648,40 @@ async function handleScreenshot(appName) {
635
648
  if (!platform) {
636
649
  platform = hasXcodeproj ? "ios" : hasBuildGradle ? "android" : null;
637
650
  }
651
+ // Check subdirectories for nested project structures (e.g. output/app-name/ios/*.xcodeproj)
652
+ if (!platform) {
653
+ for (const entry of appDirEntries) {
654
+ const subPath = path.join(appDir, entry);
655
+ try {
656
+ const stat = await fs.stat(subPath);
657
+ if (!stat.isDirectory() || entry.startsWith(".") || entry === "node_modules")
658
+ continue;
659
+ const subEntries = await fs.readdir(subPath);
660
+ if (subEntries.some((e) => e.endsWith(".xcodeproj"))) {
661
+ platform = "ios";
662
+ break;
663
+ }
664
+ if (subEntries.includes("build.gradle.kts") || subEntries.includes("build.gradle")) {
665
+ platform = "android";
666
+ break;
667
+ }
668
+ // Check for React Native in subdirectory
669
+ if ((subEntries.includes("metro.config.js") || subEntries.includes("metro.config.ts")) && subEntries.includes("package.json")) {
670
+ try {
671
+ const pkgJson = await fs.readJson(path.join(subPath, "package.json"));
672
+ if (pkgJson.dependencies?.["react-native"] || pkgJson.devDependencies?.["react-native"]) {
673
+ platform = "react-native";
674
+ break;
675
+ }
676
+ }
677
+ catch { /* continue */ }
678
+ }
679
+ }
680
+ catch {
681
+ // Skip unreadable directories
682
+ }
683
+ }
684
+ }
638
685
  if (!platform) {
639
686
  p.log.error("Could not detect platform (no .xcodeproj, build.gradle.kts, or react-native package.json found).");
640
687
  process.exit(1);
@@ -834,6 +881,152 @@ async function testApp(appName, engineOverride, modelOverride) {
834
881
  }
835
882
  p.outro(`UI testing complete for: ${ctx.dirPath}`);
836
883
  }
884
+ /**
885
+ * Deep-test an existing app: generate test plan, run exploratory + structured testing,
886
+ * produce bug report, and optionally auto-fix bugs.
887
+ */
888
+ async function deepTestApp(appName, autoFix, engineOverride, modelOverride) {
889
+ const fixLabel = autoFix ? " + Fix" : "";
890
+ p.intro(`AppAgent — Deep Test${fixLabel}: ${appName}`);
891
+ // ── Resolve app context ─────────────────────────────────────────────
892
+ const ctx = await resolveAppContext(appName);
893
+ p.log.info(`App: ${ctx.appName}`);
894
+ p.log.info(`Platform: ${ctx.platform}`);
895
+ p.log.info(`Bundle: ${ctx.bundleId}`);
896
+ p.log.info(`Mode: Deep Test${fixLabel}`);
897
+ if (ctx.artifactPath) {
898
+ p.log.info(`Artifact: ${ctx.artifactPath}`);
899
+ }
900
+ else {
901
+ p.log.warn("Build artifact not found — agent will rebuild before testing.");
902
+ }
903
+ if (ctx.manifestContent) {
904
+ p.log.info("Manifest: found (parallel batch testing enabled)");
905
+ }
906
+ // ── Determine engine and model ──────────────────────────────────────
907
+ const selectedEngine = engineOverride ?? DEFAULT_ENGINE;
908
+ const selectedModel = modelOverride ?? DEFAULT_MODEL;
909
+ const engine = createEngine(selectedEngine);
910
+ // ── Pre-flight check ────────────────────────────────────────────────
911
+ const agentCheck = await engine.checkInstallation();
912
+ if (!agentCheck.ok) {
913
+ p.log.error(agentCheck.error);
914
+ process.exit(1);
915
+ }
916
+ p.log.info(`Engine: ${engine.name}`);
917
+ p.log.info(`Model: ${selectedModel}`);
918
+ // ── Scaffold workspace (npx mode) ───────────────────────────────────
919
+ await scaffoldWorkspace();
920
+ // ── Build deep-test prompt ──────────────────────────────────────────
921
+ const prompt = await buildDeepTestPrompt(ctx, autoFix);
922
+ p.log.info("Deep test prompt built successfully.");
923
+ // ── Run the agent engine ────────────────────────────────────────────
924
+ p.log.step(`Launching ${engine.name} agent for deep testing...`);
925
+ const agentResult = await engine.run(prompt, selectedModel);
926
+ if (!agentResult.success) {
927
+ p.log.error(`Agent failed: ${agentResult.error}`);
928
+ p.outro("Deep testing did not complete successfully. Check the output directory for partial results.");
929
+ process.exit(1);
930
+ }
931
+ // ── Proof of work summary ──────────────────────────────────────────
932
+ const { proof } = agentResult;
933
+ p.log.step("Proof of work:");
934
+ p.log.info(` Files written: ${proof.filesWritten}`);
935
+ p.log.info(` Files read: ${proof.filesRead}`);
936
+ p.log.info(` Shell commands: ${proof.shellCommands.length}`);
937
+ p.log.info(` MCP tool calls: ${proof.mcpCalls.length}`);
938
+ if (proof.costUsd > 0) {
939
+ p.log.info(` API cost: $${proof.costUsd.toFixed(4)}`);
940
+ }
941
+ if (proof.subagentCalls.length > 0) {
942
+ p.log.info(` Subagent delegations: ${proof.subagentCalls.join(", ")}`);
943
+ }
944
+ // ── Check reports ─────────────────────────────────────────────────
945
+ const reportsDir = path.join(ctx.dirPath, "reports");
946
+ const testPlanPath = path.join(reportsDir, "10-test-plan.md");
947
+ const bugReportPath = path.join(reportsDir, "11-bug-report.md");
948
+ const fixReportPath = path.join(reportsDir, "12-fix-report.md");
949
+ if (await fs.pathExists(testPlanPath)) {
950
+ p.log.info(" Test plan: reports/10-test-plan.md ✓");
951
+ }
952
+ if (await fs.pathExists(bugReportPath)) {
953
+ p.log.info(" Bug report: reports/11-bug-report.md ✓");
954
+ }
955
+ if (autoFix && (await fs.pathExists(fixReportPath))) {
956
+ p.log.info(" Fix report: reports/12-fix-report.md ✓");
957
+ }
958
+ // ── Report-based summary ───────────────────────────────────────────
959
+ await displayReportSummary(appName);
960
+ p.outro(`Deep testing complete for: ${ctx.dirPath}`);
961
+ }
962
+ /**
963
+ * Fix bugs from a previous deep-test run: read bug report, fix each bug,
964
+ * rebuild, and verify.
965
+ */
966
+ async function fixApp(appName, engineOverride, modelOverride) {
967
+ p.intro(`AppAgent — Fix Bugs: ${appName}`);
968
+ // ── Resolve app context ─────────────────────────────────────────────
969
+ const ctx = await resolveAppContext(appName);
970
+ p.log.info(`App: ${ctx.appName}`);
971
+ p.log.info(`Platform: ${ctx.platform}`);
972
+ p.log.info(`Bundle: ${ctx.bundleId}`);
973
+ // ── Check for bug report ────────────────────────────────────────────
974
+ const bugReportPath = path.join(ctx.dirPath, "reports", "11-bug-report.md");
975
+ if (!(await fs.pathExists(bugReportPath))) {
976
+ p.log.error(`No bug report found at: ${bugReportPath}`);
977
+ p.log.error("Run --deep-test first to generate a bug report, then use --fix to fix the bugs.");
978
+ process.exit(1);
979
+ }
980
+ p.log.info("Bug report: found ✓");
981
+ if (ctx.artifactPath) {
982
+ p.log.info(`Artifact: ${ctx.artifactPath}`);
983
+ }
984
+ else {
985
+ p.log.warn("Build artifact not found — agent will rebuild.");
986
+ }
987
+ // ── Determine engine and model ──────────────────────────────────────
988
+ const selectedEngine = engineOverride ?? DEFAULT_ENGINE;
989
+ const selectedModel = modelOverride ?? DEFAULT_MODEL;
990
+ const engine = createEngine(selectedEngine);
991
+ // ── Pre-flight check ────────────────────────────────────────────────
992
+ const agentCheck = await engine.checkInstallation();
993
+ if (!agentCheck.ok) {
994
+ p.log.error(agentCheck.error);
995
+ process.exit(1);
996
+ }
997
+ p.log.info(`Engine: ${engine.name}`);
998
+ p.log.info(`Model: ${selectedModel}`);
999
+ // ── Scaffold workspace (npx mode) ───────────────────────────────────
1000
+ await scaffoldWorkspace();
1001
+ // ── Build fix prompt ───────────────────────────────────────────────
1002
+ const prompt = await buildFixPrompt(ctx);
1003
+ p.log.info("Fix prompt built successfully.");
1004
+ // ── Run the agent engine ────────────────────────────────────────────
1005
+ p.log.step(`Launching ${engine.name} agent for bug fixing...`);
1006
+ const agentResult = await engine.run(prompt, selectedModel);
1007
+ if (!agentResult.success) {
1008
+ p.log.error(`Agent failed: ${agentResult.error}`);
1009
+ p.outro("Bug fixing did not complete successfully. Check the output directory for partial results.");
1010
+ process.exit(1);
1011
+ }
1012
+ // ── Proof of work summary ──────────────────────────────────────────
1013
+ const { proof } = agentResult;
1014
+ p.log.step("Proof of work:");
1015
+ p.log.info(` Files written: ${proof.filesWritten}`);
1016
+ p.log.info(` Files read: ${proof.filesRead}`);
1017
+ p.log.info(` Shell commands: ${proof.shellCommands.length}`);
1018
+ if (proof.costUsd > 0) {
1019
+ p.log.info(` API cost: $${proof.costUsd.toFixed(4)}`);
1020
+ }
1021
+ // ── Check fix report ──────────────────────────────────────────────
1022
+ const fixReportPath = path.join(ctx.dirPath, "reports", "12-fix-report.md");
1023
+ if (await fs.pathExists(fixReportPath)) {
1024
+ p.log.info(" Fix report: reports/12-fix-report.md ✓");
1025
+ }
1026
+ // ── Report-based summary ───────────────────────────────────────────
1027
+ await displayReportSummary(appName);
1028
+ p.outro(`Bug fixing complete for: ${ctx.dirPath}`);
1029
+ }
837
1030
  /**
838
1031
  * Update an existing app: resolve source, run agent, commit, and optionally create a PR.
839
1032
  */
@@ -1107,13 +1300,28 @@ function deriveAppName(description) {
1107
1300
  }
1108
1301
  else {
1109
1302
  // Take the first few meaningful words from the description
1110
- const stopWords = new Set(["a", "an", "the", "and", "or", "for", "with", "to", "of", "in", "on", "app", "application"]);
1303
+ const stopWords = new Set([
1304
+ // Articles & conjunctions
1305
+ "a", "an", "the", "and", "or", "but", "not", "nor",
1306
+ // Prepositions
1307
+ "for", "with", "to", "of", "in", "on", "at", "by", "from", "into", "about", "between",
1308
+ // Common verbs / auxiliaries
1309
+ "is", "are", "was", "be", "has", "have", "will", "would", "could", "should",
1310
+ "can", "do", "does", "did",
1311
+ // Pronouns & determiners
1312
+ "my", "your", "its", "their", "our", "this", "that", "these", "those",
1313
+ "it", "them", "which", "where", "when", "who", "what", "how",
1314
+ // Filler / noise words
1315
+ "app", "application", "based", "using", "like", "just", "very", "also",
1316
+ "so", "such", "each", "every", "some", "any", "no", "only", "own", "more",
1317
+ "than", "been", "all",
1318
+ ]);
1111
1319
  const words = description
1112
1320
  .toLowerCase()
1113
1321
  .replace(/[^a-z0-9\s]/g, "")
1114
1322
  .split(/\s+/)
1115
1323
  .filter((w) => w.length > 1 && !stopWords.has(w))
1116
- .slice(0, 3);
1324
+ .slice(0, 2);
1117
1325
  baseName = words.join("-") || "my-app";
1118
1326
  }
1119
1327
  // Convert to kebab-case