@caddis/cli 0.1.0 → 0.2.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 (364) hide show
  1. package/README.md +29 -16
  2. package/bundles/antigravity-plugin-extras/plugin.json +5 -0
  3. package/bundles/antigravity-plugin-extras/skills/_registry.md +154 -0
  4. package/bundles/antigravity-plugin-extras/skills/agent-md-refactor/SKILL.md +356 -0
  5. package/bundles/antigravity-plugin-extras/skills/agent-orchestration/SKILL.md +517 -0
  6. package/bundles/antigravity-plugin-extras/skills/algorithmic-art/SKILL.md +293 -0
  7. package/bundles/antigravity-plugin-extras/skills/anchor-review/SKILL.md +135 -0
  8. package/bundles/antigravity-plugin-extras/skills/api-client-patterns/SKILL.md +367 -0
  9. package/bundles/antigravity-plugin-extras/skills/architecture-design/SKILL.md +244 -0
  10. package/bundles/antigravity-plugin-extras/skills/architecture-diagram/SKILL.md +156 -0
  11. package/bundles/antigravity-plugin-extras/skills/architecture-document/SKILL.md +321 -0
  12. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/LICENSE.txt +202 -0
  13. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/SKILL.md +74 -0
  14. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  15. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  16. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  17. package/bundles/antigravity-plugin-extras/skills/ascii-art/SKILL.md +144 -0
  18. package/bundles/antigravity-plugin-extras/skills/asking-questions/SKILL.md +81 -0
  19. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/SKILL.md +118 -0
  20. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
  21. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/browser/README.md +363 -0
  22. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
  23. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/README.md +100 -0
  24. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
  25. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
  26. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
  27. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
  28. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/identity/README.md +186 -0
  29. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/memory/README.md +253 -0
  30. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/observability/README.md +517 -0
  31. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/runtime/README.md +215 -0
  32. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/SKILL.md +279 -0
  33. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
  34. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
  35. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/SKILL.md +318 -0
  36. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
  37. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/operations-patterns.md +394 -0
  38. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/SKILL.md +758 -0
  39. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
  40. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
  41. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
  42. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
  43. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
  44. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
  45. package/bundles/antigravity-plugin-extras/skills/backend-to-frontend-handoff/SKILL.md +139 -0
  46. package/bundles/antigravity-plugin-extras/skills/banner-design/SKILL.md +188 -0
  47. package/bundles/antigravity-plugin-extras/skills/brand-design/SKILL.md +298 -0
  48. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/LICENSE.txt +202 -0
  49. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/SKILL.md +118 -0
  50. package/bundles/antigravity-plugin-extras/skills/brand-voice/SKILL.md +93 -0
  51. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/SKILL.md +392 -0
  52. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
  53. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
  54. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
  55. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
  56. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/SKILL.md +266 -0
  57. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
  58. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
  59. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
  60. package/bundles/antigravity-plugin-extras/skills/caching-patterns/SKILL.md +385 -0
  61. package/bundles/antigravity-plugin-extras/skills/canvas-design/LICENSE.txt +202 -0
  62. package/bundles/antigravity-plugin-extras/skills/canvas-design/SKILL.md +91 -0
  63. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  64. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  65. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  66. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  67. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  68. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  69. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  70. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  71. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  72. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  73. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  74. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  75. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  76. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  77. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  78. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  79. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  80. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  81. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  82. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  83. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  84. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  85. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  86. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  87. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  88. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  89. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  90. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  91. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  92. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  93. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  94. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  95. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  96. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  97. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  98. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  99. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  100. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  101. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  102. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  103. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  104. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  105. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  106. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  107. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  108. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  109. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  110. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  111. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  112. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  113. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  114. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  115. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  116. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  117. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  118. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  119. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  120. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  121. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  122. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  123. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  124. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  125. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  126. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  127. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  128. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  129. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  130. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  131. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  132. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  133. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  134. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  135. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  136. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  137. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  138. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  139. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  140. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  141. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  142. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  143. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  144. package/bundles/antigravity-plugin-extras/skills/changelog-generator/SKILL.md +105 -0
  145. package/bundles/antigravity-plugin-extras/skills/code-explainer/SKILL.md +91 -0
  146. package/bundles/antigravity-plugin-extras/skills/competitive-ads-extractor/SKILL.md +294 -0
  147. package/bundles/antigravity-plugin-extras/skills/component-testing/SKILL.md +310 -0
  148. package/bundles/antigravity-plugin-extras/skills/content-research-writer/SKILL.md +539 -0
  149. package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +51 -0
  150. package/bundles/antigravity-plugin-extras/skills/data-analysis/SKILL.md +111 -0
  151. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/README.md +248 -0
  152. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/SKILL.md +203 -0
  153. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template +44 -0
  154. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/api-router.py.template +43 -0
  155. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/contract-test.py.template +384 -0
  156. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/display-dto.py.template +39 -0
  157. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-service.ts.template +46 -0
  158. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-types.ts.template +38 -0
  159. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/ingestion-model.py.template +42 -0
  160. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/mapping-doc.md.template +46 -0
  161. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/normalizer.py.template +48 -0
  162. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_requirements.md +36 -0
  163. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_ui_demand.md +35 -0
  164. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/reconcile_mapping.md +66 -0
  165. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/query-catalog.md.template +62 -0
  166. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/consumer-driven-contracts.md +131 -0
  167. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/drift-check-catalog.md +305 -0
  168. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/layer-responsibilities.md +333 -0
  169. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py +170 -0
  170. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py +161 -0
  171. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py +171 -0
  172. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py +1363 -0
  173. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py +81 -0
  174. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py +294 -0
  175. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py +214 -0
  176. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py +51 -0
  177. package/bundles/antigravity-plugin-extras/skills/data-loader/SKILL.md +753 -0
  178. package/bundles/antigravity-plugin-extras/skills/data-validation/SKILL.md +220 -0
  179. package/bundles/antigravity-plugin-extras/skills/db-testing/SKILL.md +117 -0
  180. package/bundles/antigravity-plugin-extras/skills/deploy-local/SKILL.md +259 -0
  181. package/bundles/antigravity-plugin-extras/skills/design-md/SKILL.md +167 -0
  182. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/SKILL.md +240 -0
  183. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/references/DESIGN-SYSTEM-TEMPLATE.md +577 -0
  184. package/bundles/antigravity-plugin-extras/skills/developer-growth-analysis/SKILL.md +323 -0
  185. package/bundles/antigravity-plugin-extras/skills/doc-coauthoring/SKILL.md +378 -0
  186. package/bundles/antigravity-plugin-extras/skills/documentation-analyzer/SKILL.md +78 -0
  187. package/bundles/antigravity-plugin-extras/skills/domain-name-brainstormer/SKILL.md +213 -0
  188. package/bundles/antigravity-plugin-extras/skills/enterprise-dashboard-aesthetic-system/SKILL.md +120 -0
  189. package/bundles/antigravity-plugin-extras/skills/excalidraw/SKILL.md +193 -0
  190. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/element-types.md +497 -0
  191. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/excalidraw-schema.md +356 -0
  192. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/reliable-diagrams.md +115 -0
  193. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/README.md +60 -0
  194. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-arrow.py +354 -0
  195. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py +412 -0
  196. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py +183 -0
  197. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/business-flow-swimlane-template.excalidraw +334 -0
  198. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/class-diagram-template.excalidraw +558 -0
  199. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/data-flow-diagram-template.excalidraw +279 -0
  200. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/er-diagram-template.excalidraw +662 -0
  201. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/flowchart-template.excalidraw +179 -0
  202. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/mindmap-template.excalidraw +244 -0
  203. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/relationship-template.excalidraw +145 -0
  204. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/reliable-flowchart.excalidraw +1 -0
  205. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/sequence-diagram-template.excalidraw +509 -0
  206. package/bundles/antigravity-plugin-extras/skills/file-organizer/SKILL.md +434 -0
  207. package/bundles/antigravity-plugin-extras/skills/game-changing-features/README.md +221 -0
  208. package/bundles/antigravity-plugin-extras/skills/game-changing-features/SKILL.md +265 -0
  209. package/bundles/antigravity-plugin-extras/skills/github-issues/SKILL.md +359 -0
  210. package/bundles/antigravity-plugin-extras/skills/github-issues/references/templates.md +90 -0
  211. package/bundles/antigravity-plugin-extras/skills/golden-nuggets/SKILL.md +192 -0
  212. package/bundles/antigravity-plugin-extras/skills/humanizer/SKILL.md +194 -0
  213. package/bundles/antigravity-plugin-extras/skills/image-enhancer/SKILL.md +100 -0
  214. package/bundles/antigravity-plugin-extras/skills/intent-writer/SKILL.md +201 -0
  215. package/bundles/antigravity-plugin-extras/skills/internal-comms/LICENSE.txt +202 -0
  216. package/bundles/antigravity-plugin-extras/skills/internal-comms/SKILL.md +124 -0
  217. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/3p-updates.md +47 -0
  218. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/company-newsletter.md +65 -0
  219. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/faq-answers.md +30 -0
  220. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/general-comms.md +16 -0
  221. package/bundles/antigravity-plugin-extras/skills/invoice-organizer/SKILL.md +447 -0
  222. package/bundles/antigravity-plugin-extras/skills/jira-issues/SKILL.md +182 -0
  223. package/bundles/antigravity-plugin-extras/skills/job-application/SKILL.md +188 -0
  224. package/bundles/antigravity-plugin-extras/skills/lead-research-assistant/SKILL.md +200 -0
  225. package/bundles/antigravity-plugin-extras/skills/llm-application-dev/SKILL.md +217 -0
  226. package/bundles/antigravity-plugin-extras/skills/mcp-builder/LICENSE.txt +202 -0
  227. package/bundles/antigravity-plugin-extras/skills/mcp-builder/SKILL.md +100 -0
  228. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/evaluation.md +602 -0
  229. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/mcp_best_practices.md +915 -0
  230. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/node_mcp_server.md +916 -0
  231. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/python_mcp_server.md +752 -0
  232. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/connections.py +151 -0
  233. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/evaluation.py +373 -0
  234. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  235. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/requirements.txt +2 -0
  236. package/bundles/antigravity-plugin-extras/skills/meeting-insights-analyzer/SKILL.md +328 -0
  237. package/bundles/antigravity-plugin-extras/skills/monorepo/SKILL.md +267 -0
  238. package/bundles/antigravity-plugin-extras/skills/naming-analyzer/SKILL.md +376 -0
  239. package/bundles/antigravity-plugin-extras/skills/nextjs-app-router/SKILL.md +271 -0
  240. package/bundles/antigravity-plugin-extras/skills/notebooklm/AUTHENTICATION.md +154 -0
  241. package/bundles/antigravity-plugin-extras/skills/notebooklm/SKILL.md +270 -0
  242. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/api_reference.md +309 -0
  243. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/troubleshooting.md +376 -0
  244. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/usage_patterns.md +338 -0
  245. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/__init__.py +81 -0
  246. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/ask_question.py +256 -0
  247. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/auth_manager.py +358 -0
  248. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_session.py +255 -0
  249. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_utils.py +107 -0
  250. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/cleanup_manager.py +302 -0
  251. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/config.py +44 -0
  252. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/notebook_manager.py +410 -0
  253. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/run.py +102 -0
  254. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/setup_environment.py +204 -0
  255. package/bundles/antigravity-plugin-extras/skills/observability/SKILL.md +371 -0
  256. package/bundles/antigravity-plugin-extras/skills/onboard-project/SKILL.md +192 -0
  257. package/bundles/antigravity-plugin-extras/skills/performance-testing/SKILL.md +226 -0
  258. package/bundles/antigravity-plugin-extras/skills/pipeline-state/SKILL.md +208 -0
  259. package/bundles/antigravity-plugin-extras/skills/plantuml/SKILL.md +228 -0
  260. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/SKILL.md +142 -0
  261. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/linear.app.md +196 -0
  262. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/stripe.md +214 -0
  263. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/vercel.md +218 -0
  264. package/bundles/antigravity-plugin-extras/skills/prd-to-code/SKILL.md +127 -0
  265. package/bundles/antigravity-plugin-extras/skills/raffle-winner-picker/SKILL.md +159 -0
  266. package/bundles/antigravity-plugin-extras/skills/react-useeffect/README.md +320 -0
  267. package/bundles/antigravity-plugin-extras/skills/react-useeffect/SKILL.md +53 -0
  268. package/bundles/antigravity-plugin-extras/skills/react-useeffect/alternatives.md +258 -0
  269. package/bundles/antigravity-plugin-extras/skills/react-useeffect/anti-patterns.md +290 -0
  270. package/bundles/antigravity-plugin-extras/skills/receiving-code-review/SKILL.md +213 -0
  271. package/bundles/antigravity-plugin-extras/skills/relay/SKILL.md +246 -0
  272. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/SKILL.md +105 -0
  273. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/code-reviewer.md +146 -0
  274. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/SKILL.md +350 -0
  275. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/pwa-checklist.md +226 -0
  276. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/touch-and-interaction.md +265 -0
  277. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/transformation-catalogue.md +326 -0
  278. package/bundles/antigravity-plugin-extras/skills/schema-migration/SKILL.md +275 -0
  279. package/bundles/antigravity-plugin-extras/skills/setup-project-ai/SKILL.md +120 -0
  280. package/bundles/antigravity-plugin-extras/skills/shadcn-radix/SKILL.md +330 -0
  281. package/bundles/antigravity-plugin-extras/skills/sketch/SKILL.md +104 -0
  282. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/LICENSE.txt +202 -0
  283. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/SKILL.md +646 -0
  284. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/color_palettes.py +302 -0
  285. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/easing.py +230 -0
  286. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/frame_composer.py +469 -0
  287. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/gif_builder.py +246 -0
  288. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/typography.py +357 -0
  289. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/validators.py +264 -0
  290. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/visual_effects.py +494 -0
  291. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/requirements.txt +4 -0
  292. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/bounce.py +106 -0
  293. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/explode.py +331 -0
  294. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/fade.py +329 -0
  295. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/flip.py +291 -0
  296. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  297. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/morph.py +329 -0
  298. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/move.py +293 -0
  299. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/pulse.py +268 -0
  300. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/shake.py +127 -0
  301. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/slide.py +291 -0
  302. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/spin.py +269 -0
  303. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/wiggle.py +300 -0
  304. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/zoom.py +312 -0
  305. package/bundles/antigravity-plugin-extras/skills/slides/SKILL.md +38 -0
  306. package/bundles/antigravity-plugin-extras/skills/state-tracking/SKILL.md +131 -0
  307. package/bundles/antigravity-plugin-extras/skills/streamlit-dev/SKILL.md +268 -0
  308. package/bundles/antigravity-plugin-extras/skills/svg-create/SKILL.md +251 -0
  309. package/bundles/antigravity-plugin-extras/skills/theme-factory/LICENSE.txt +202 -0
  310. package/bundles/antigravity-plugin-extras/skills/theme-factory/SKILL.md +59 -0
  311. package/bundles/antigravity-plugin-extras/skills/theme-factory/theme-showcase.pdf +0 -0
  312. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/arctic-frost.md +19 -0
  313. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/botanical-garden.md +19 -0
  314. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/desert-rose.md +19 -0
  315. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/forest-canopy.md +19 -0
  316. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/golden-hour.md +19 -0
  317. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  318. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/modern-minimalist.md +19 -0
  319. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/ocean-depths.md +19 -0
  320. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  321. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/tech-innovation.md +19 -0
  322. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/LICENSE.txt +202 -0
  323. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/SKILL.md +320 -0
  324. package/bundles/antigravity-plugin-extras/skills/ui-testing/SKILL.md +660 -0
  325. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/SKILL.md +660 -0
  326. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py +414 -0
  327. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/app-interface.csv +31 -0
  328. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/charts.csv +26 -0
  329. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/colors.csv +162 -0
  330. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/design.csv +1776 -0
  331. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/draft.csv +1779 -0
  332. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/google-fonts.csv +1924 -0
  333. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/icons.csv +106 -0
  334. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/landing.csv +35 -0
  335. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/products.csv +162 -0
  336. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/react-performance.csv +45 -0
  337. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/styles.csv +85 -0
  338. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/typography.csv +74 -0
  339. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ui-reasoning.csv +162 -0
  340. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ux-guidelines.csv +100 -0
  341. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/core.py +247 -0
  342. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py +1067 -0
  343. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/search.py +114 -0
  344. package/bundles/antigravity-plugin-extras/skills/understand-anything/SKILL.md +140 -0
  345. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/commands.md +252 -0
  346. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/graph-schema.md +116 -0
  347. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/pipeline.md +331 -0
  348. package/bundles/antigravity-plugin-extras/skills/update-readme/SKILL.md +74 -0
  349. package/bundles/antigravity-plugin-extras/skills/verification-loop/SKILL.md +209 -0
  350. package/bundles/antigravity-plugin-extras/skills/video-downloader/SKILL.md +107 -0
  351. package/bundles/antigravity-plugin-extras/skills/webapp-development/SKILL.md +288 -0
  352. package/bundles/antigravity-plugin-extras/skills/word-cloud/SKILL.md +339 -0
  353. package/bundles/antigravity-plugin-extras/skills/word-cloud/agents/agent-interface.md +175 -0
  354. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/html.md +384 -0
  355. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/nlp-keywords.md +127 -0
  356. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/palettes.md +149 -0
  357. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/python.md +249 -0
  358. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/react.md +427 -0
  359. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/shapes.md +135 -0
  360. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/stopwords.md +115 -0
  361. package/bundles/antigravity-plugin-extras/skills/youtube-transcript/SKILL.md +416 -0
  362. package/bundles/manifest.json +2 -1
  363. package/dist/cli.js +166 -37
  364. package/package.json +1 -1
@@ -0,0 +1,671 @@
1
+ # Serverless Performance Optimization
2
+
3
+ Performance optimization best practices for AWS Lambda and serverless architectures.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Lambda Execution Lifecycle](#lambda-execution-lifecycle)
8
+ - [Cold Start Optimization](#cold-start-optimization)
9
+ - [Memory and CPU Optimization](#memory-and-cpu-optimization)
10
+ - [Package Size Optimization](#package-size-optimization)
11
+ - [Initialization Optimization](#initialization-optimization)
12
+ - [Runtime Performance](#runtime-performance)
13
+
14
+ ## Lambda Execution Lifecycle
15
+
16
+ ### Execution Environment Phases
17
+
18
+ **Three phases of Lambda execution**:
19
+
20
+ 1. **Init Phase** (Cold Start):
21
+ - Download and unpack function package
22
+ - Create execution environment
23
+ - Initialize runtime
24
+ - Execute initialization code (outside handler)
25
+
26
+ 2. **Invoke Phase**:
27
+ - Execute handler code
28
+ - Return response
29
+ - Freeze execution environment
30
+
31
+ 3. **Shutdown Phase**:
32
+ - Runtime shutdown (after period of inactivity)
33
+ - Execution environment destroyed
34
+
35
+ ### Concurrency and Scaling
36
+
37
+ **Key concepts**:
38
+ - **Concurrency**: Number of execution environments serving requests simultaneously
39
+ - **One event per environment**: Each environment processes one event at a time
40
+ - **Automatic scaling**: Lambda creates new environments as needed
41
+ - **Environment reuse**: Warm starts reuse existing environments
42
+
43
+ **Example**:
44
+ - Function takes 100ms to execute
45
+ - Single environment can handle 10 requests/second
46
+ - 100 concurrent requests = 10 environments needed
47
+ - Default account limit: 1,000 concurrent executions (can be raised)
48
+
49
+ ## Cold Start Optimization
50
+
51
+ ### Understanding Cold Starts
52
+
53
+ **Cold start components**:
54
+ ```
55
+ Total Cold Start = Download Package + Init Environment + Init Code + Handler
56
+ ```
57
+
58
+ **Cold start frequency**:
59
+ - Development: Every code change creates new environments (frequent)
60
+ - Production: Typically < 1% of invocations
61
+ - Optimize for p95/p99 latency, not average
62
+
63
+ ### Package Size Optimization
64
+
65
+ **Minimize deployment package**:
66
+
67
+ ```typescript
68
+ new NodejsFunction(this, 'Function', {
69
+ entry: 'src/handler.ts',
70
+ bundling: {
71
+ minify: true, // Minify production code
72
+ sourceMap: false, // Disable in production
73
+ externalModules: [
74
+ '@aws-sdk/*', // Use AWS SDK from runtime
75
+ ],
76
+ // Tree-shaking removes unused code
77
+ },
78
+ });
79
+ ```
80
+
81
+ **Tools for optimization**:
82
+ - **esbuild**: Automatic tree-shaking and minification
83
+ - **Webpack**: Bundle optimization
84
+ - **Maven**: Dependency analysis
85
+ - **Gradle**: Unused dependency detection
86
+
87
+ **Best practices**:
88
+ 1. Avoid monolithic functions
89
+ 2. Bundle only required dependencies
90
+ 3. Use tree-shaking to remove unused code
91
+ 4. Minify production code
92
+ 5. Exclude AWS SDK (provided by runtime)
93
+
94
+ ### Provisioned Concurrency
95
+
96
+ **Pre-initialize environments for predictable latency**:
97
+
98
+ ```typescript
99
+ const fn = new NodejsFunction(this, 'Function', {
100
+ entry: 'src/handler.ts',
101
+ });
102
+
103
+ // Static provisioned concurrency
104
+ fn.currentVersion.addAlias('live', {
105
+ provisionedConcurrentExecutions: 10,
106
+ });
107
+
108
+ // Auto-scaling provisioned concurrency
109
+ const alias = fn.currentVersion.addAlias('prod');
110
+
111
+ const target = new applicationautoscaling.ScalableTarget(this, 'ScalableTarget', {
112
+ serviceNamespace: applicationautoscaling.ServiceNamespace.LAMBDA,
113
+ maxCapacity: 100,
114
+ minCapacity: 10,
115
+ resourceId: `function:${fn.functionName}:${alias.aliasName}`,
116
+ scalableDimension: 'lambda:function:ProvisionedConcurrentExecutions',
117
+ });
118
+
119
+ target.scaleOnUtilization({
120
+ utilizationTarget: 0.7, // 70% utilization
121
+ });
122
+ ```
123
+
124
+ **When to use**:
125
+ - **Consistent traffic patterns**: Predictable load
126
+ - **Latency-sensitive APIs**: Sub-100ms requirements
127
+ - **Cost consideration**: Compare cold start frequency vs. provisioned cost
128
+
129
+ **Cost comparison**:
130
+ - **On-demand**: Pay only for actual usage
131
+ - **Provisioned**: Pay for provisioned capacity + invocations
132
+ - **Breakeven**: When cold starts > ~20% of invocations
133
+
134
+ ### Lambda SnapStart (Java)
135
+
136
+ **Instant cold starts for Java**:
137
+
138
+ ```typescript
139
+ new lambda.Function(this, 'JavaFunction', {
140
+ runtime: lambda.Runtime.JAVA_17,
141
+ code: lambda.Code.fromAsset('target/function.jar'),
142
+ handler: 'com.example.Handler::handleRequest',
143
+ snapStart: lambda.SnapStartConf.ON_PUBLISHED_VERSIONS,
144
+ });
145
+ ```
146
+
147
+ **Benefits**:
148
+ - Up to 10x faster cold starts for Java
149
+ - No code changes required
150
+ - Works with published versions
151
+ - No additional cost
152
+
153
+ ## Memory and CPU Optimization
154
+
155
+ ### Memory = CPU Allocation
156
+
157
+ **Key principle**: Memory and CPU are proportionally allocated
158
+
159
+ | Memory | vCPU |
160
+ |--------|------|
161
+ | 128 MB | 0.07 vCPU |
162
+ | 512 MB | 0.28 vCPU |
163
+ | 1,024 MB | 0.57 vCPU |
164
+ | 1,769 MB | 1.00 vCPU |
165
+ | 3,538 MB | 2.00 vCPU |
166
+ | 10,240 MB | 6.00 vCPU |
167
+
168
+ ### Cost vs. Performance Balancing
169
+
170
+ **Example - Compute-intensive function**:
171
+
172
+ | Memory | Duration | Cost |
173
+ |--------|----------|------|
174
+ | 128 MB | 11.72s | $0.0246 |
175
+ | 256 MB | 6.68s | $0.0280 |
176
+ | 512 MB | 3.19s | $0.0268 |
177
+ | 1024 MB | 1.46s | $0.0246 |
178
+
179
+ **Key insight**: More memory = faster execution = similar or lower cost
180
+
181
+ **Formula**:
182
+ ```
183
+ Duration = Allocated Memory (GB) × Execution Time (seconds)
184
+ Cost = Duration × Number of Invocations × Price per GB-second
185
+ ```
186
+
187
+ ### Finding Optimal Memory
188
+
189
+ **Use Lambda Power Tuning**:
190
+
191
+ ```bash
192
+ # Deploy power tuning state machine
193
+ sam deploy --template-file template.yml --stack-name lambda-power-tuning
194
+
195
+ # Run power tuning
196
+ aws lambda invoke \
197
+ --function-name powerTuningFunction \
198
+ --payload '{"lambdaARN": "arn:aws:lambda:...", "powerValues": [128, 256, 512, 1024, 1536, 3008]}' \
199
+ response.json
200
+ ```
201
+
202
+ **Manual testing approach**:
203
+ 1. Test function at different memory levels
204
+ 2. Measure execution time at each level
205
+ 3. Calculate cost for each configuration
206
+ 4. Choose optimal balance for your use case
207
+
208
+ ### Multi-Core Optimization
209
+
210
+ **Leverage multiple vCPUs** (at 1,769 MB+):
211
+
212
+ ```typescript
213
+ // Use Worker Threads for parallel processing
214
+ import { Worker } from 'worker_threads';
215
+
216
+ export const handler = async (event: any) => {
217
+ const items = event.items;
218
+
219
+ // Process in parallel using multiple cores
220
+ const workers = items.map(item =>
221
+ new Promise((resolve, reject) => {
222
+ const worker = new Worker('./worker.js', {
223
+ workerData: item,
224
+ });
225
+
226
+ worker.on('message', resolve);
227
+ worker.on('error', reject);
228
+ })
229
+ );
230
+
231
+ const results = await Promise.all(workers);
232
+ return results;
233
+ };
234
+ ```
235
+
236
+ **Python multiprocessing**:
237
+
238
+ ```python
239
+ import multiprocessing as mp
240
+
241
+ def handler(event, context):
242
+ items = event['items']
243
+
244
+ # Use multiple cores for CPU-bound work
245
+ with mp.Pool(mp.cpu_count()) as pool:
246
+ results = pool.map(process_item, items)
247
+
248
+ return {'results': results}
249
+ ```
250
+
251
+ ## Initialization Optimization
252
+
253
+ ### Code Outside Handler
254
+
255
+ **Initialize once, reuse across invocations**:
256
+
257
+ ```typescript
258
+ // ✅ GOOD - Initialize outside handler
259
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
260
+ import { S3Client } from '@aws-sdk/client-s3';
261
+
262
+ // Initialized once per execution environment
263
+ const dynamodb = new DynamoDBClient({});
264
+ const s3 = new S3Client({});
265
+
266
+ // Connection pool initialized once
267
+ const pool = createConnectionPool({
268
+ host: process.env.DB_HOST,
269
+ max: 1, // One connection per execution environment
270
+ });
271
+
272
+ export const handler = async (event: any) => {
273
+ // Reuse connections across invocations
274
+ const data = await dynamodb.getItem({ /* ... */ });
275
+ const file = await s3.getObject({ /* ... */ });
276
+ return processData(data, file);
277
+ };
278
+
279
+ // ❌ BAD - Initialize in handler
280
+ export const handler = async (event: any) => {
281
+ const dynamodb = new DynamoDBClient({}); // Created every invocation
282
+ const s3 = new S3Client({}); // Created every invocation
283
+ // ...
284
+ };
285
+ ```
286
+
287
+ ### Lazy Loading
288
+
289
+ **Load dependencies only when needed**:
290
+
291
+ ```typescript
292
+ // ✅ GOOD - Conditional loading
293
+ export const handler = async (event: any) => {
294
+ if (event.operation === 'generatePDF') {
295
+ // Load heavy PDF library only when needed
296
+ const pdfLib = await import('./pdf-generator');
297
+ return pdfLib.generatePDF(event.data);
298
+ }
299
+
300
+ if (event.operation === 'processImage') {
301
+ const sharp = await import('sharp');
302
+ return processImage(sharp, event.data);
303
+ }
304
+
305
+ // Default operation (no heavy dependencies)
306
+ return processDefault(event);
307
+ };
308
+
309
+ // ❌ BAD - Load everything upfront
310
+ import pdfLib from './pdf-generator'; // 50MB
311
+ import sharp from 'sharp'; // 20MB
312
+ // Even if not used!
313
+
314
+ export const handler = async (event: any) => {
315
+ if (event.operation === 'generatePDF') {
316
+ return pdfLib.generatePDF(event.data);
317
+ }
318
+ };
319
+ ```
320
+
321
+ ### Connection Reuse
322
+
323
+ **Enable connection reuse**:
324
+
325
+ ```typescript
326
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
327
+
328
+ const client = new DynamoDBClient({
329
+ // Enable keep-alive for connection reuse
330
+ requestHandler: {
331
+ connectionTimeout: 3000,
332
+ socketTimeout: 3000,
333
+ },
334
+ });
335
+
336
+ // For Node.js AWS SDK
337
+ process.env.AWS_NODEJS_CONNECTION_REUSE_ENABLED = '1';
338
+ ```
339
+
340
+ ## Runtime Performance
341
+
342
+ ### Choose the Right Runtime
343
+
344
+ **Runtime comparison**:
345
+
346
+ | Runtime | Cold Start | Execution Speed | Ecosystem | Best For |
347
+ |---------|------------|-----------------|-----------|----------|
348
+ | Node.js 20 | Fast | Fast | Excellent | APIs, I/O-bound |
349
+ | Python 3.12 | Fast | Medium | Excellent | Data processing |
350
+ | Java 17 + SnapStart | Fast (w/SnapStart) | Fast | Good | Enterprise apps |
351
+ | .NET 8 | Medium | Fast | Good | Enterprise apps |
352
+ | Go | Very Fast | Very Fast | Good | High performance |
353
+ | Rust | Very Fast | Very Fast | Growing | High performance |
354
+
355
+ ### Optimize Handler Code
356
+
357
+ **Efficient code patterns**:
358
+
359
+ ```typescript
360
+ // ✅ GOOD - Batch operations
361
+ const items = ['item1', 'item2', 'item3'];
362
+
363
+ // Single batch write
364
+ await dynamodb.batchWriteItem({
365
+ RequestItems: {
366
+ [tableName]: items.map(item => ({
367
+ PutRequest: { Item: item },
368
+ })),
369
+ },
370
+ });
371
+
372
+ // ❌ BAD - Multiple single operations
373
+ for (const item of items) {
374
+ await dynamodb.putItem({
375
+ TableName: tableName,
376
+ Item: item,
377
+ }); // Slow, multiple round trips
378
+ }
379
+ ```
380
+
381
+ ### Async Processing
382
+
383
+ **Use async/await effectively**:
384
+
385
+ ```typescript
386
+ // ✅ GOOD - Parallel async operations
387
+ const [userData, orderData, inventoryData] = await Promise.all([
388
+ getUserData(userId),
389
+ getOrderData(orderId),
390
+ getInventoryData(productId),
391
+ ]);
392
+
393
+ // ❌ BAD - Sequential async operations
394
+ const userData = await getUserData(userId);
395
+ const orderData = await getOrderData(orderId); // Waits unnecessarily
396
+ const inventoryData = await getInventoryData(productId); // Waits unnecessarily
397
+ ```
398
+
399
+ ### Caching Strategies
400
+
401
+ **Cache frequently accessed data**:
402
+
403
+ ```typescript
404
+ // In-memory cache (persists in warm environments)
405
+ const cache = new Map<string, any>();
406
+
407
+ export const handler = async (event: any) => {
408
+ const key = event.key;
409
+
410
+ // Check cache first
411
+ if (cache.has(key)) {
412
+ console.log('Cache hit');
413
+ return cache.get(key);
414
+ }
415
+
416
+ // Fetch from database
417
+ const data = await fetchFromDatabase(key);
418
+
419
+ // Store in cache
420
+ cache.set(key, data);
421
+
422
+ return data;
423
+ };
424
+ ```
425
+
426
+ **ElastiCache for shared cache**:
427
+
428
+ ```typescript
429
+ import Redis from 'ioredis';
430
+
431
+ // Initialize once
432
+ const redis = new Redis({
433
+ host: process.env.REDIS_HOST,
434
+ port: 6379,
435
+ lazyConnect: true,
436
+ enableOfflineQueue: false,
437
+ });
438
+
439
+ export const handler = async (event: any) => {
440
+ const key = `order:${event.orderId}`;
441
+
442
+ // Try cache
443
+ const cached = await redis.get(key);
444
+ if (cached) {
445
+ return JSON.parse(cached);
446
+ }
447
+
448
+ // Fetch and cache
449
+ const data = await fetchOrder(event.orderId);
450
+ await redis.setex(key, 300, JSON.stringify(data)); // 5 min TTL
451
+
452
+ return data;
453
+ };
454
+ ```
455
+
456
+ ## Performance Testing
457
+
458
+ ### Load Testing
459
+
460
+ **Use Artillery for load testing**:
461
+
462
+ ```yaml
463
+ # load-test.yml
464
+ config:
465
+ target: https://api.example.com
466
+ phases:
467
+ - duration: 60
468
+ arrivalRate: 10
469
+ rampTo: 100 # Ramp from 10 to 100 req/sec
470
+ scenarios:
471
+ - flow:
472
+ - post:
473
+ url: /orders
474
+ json:
475
+ orderId: "{{ $randomString() }}"
476
+ amount: "{{ $randomNumber(10, 1000) }}"
477
+ ```
478
+
479
+ ```bash
480
+ artillery run load-test.yml
481
+ ```
482
+
483
+ ### Benchmarking
484
+
485
+ **Test different configurations**:
486
+
487
+ ```typescript
488
+ // benchmark.ts
489
+ import { Lambda } from '@aws-sdk/client-lambda';
490
+
491
+ const lambda = new Lambda({});
492
+
493
+ const testConfigurations = [
494
+ { memory: 128, name: 'Function-128' },
495
+ { memory: 256, name: 'Function-256' },
496
+ { memory: 512, name: 'Function-512' },
497
+ { memory: 1024, name: 'Function-1024' },
498
+ ];
499
+
500
+ for (const config of testConfigurations) {
501
+ const times: number[] = [];
502
+
503
+ // Warm up
504
+ for (let i = 0; i < 5; i++) {
505
+ await lambda.invoke({ FunctionName: config.name });
506
+ }
507
+
508
+ // Measure
509
+ for (let i = 0; i < 100; i++) {
510
+ const start = Date.now();
511
+ await lambda.invoke({ FunctionName: config.name });
512
+ times.push(Date.now() - start);
513
+ }
514
+
515
+ const p99 = times.sort()[99];
516
+ const avg = times.reduce((a, b) => a + b) / times.length;
517
+
518
+ console.log(`${config.memory}MB - Avg: ${avg}ms, p99: ${p99}ms`);
519
+ }
520
+ ```
521
+
522
+ ## Cost Optimization
523
+
524
+ ### Right-Sizing Memory
525
+
526
+ **Balance cost and performance**:
527
+
528
+ **CPU-bound workloads**:
529
+ - More memory = more CPU = faster execution
530
+ - Often results in lower cost overall
531
+ - Test at 1769MB (1 vCPU) and above
532
+
533
+ **I/O-bound workloads**:
534
+ - Less sensitive to memory allocation
535
+ - May not benefit from higher memory
536
+ - Test at lower memory levels (256-512MB)
537
+
538
+ **Simple operations**:
539
+ - Minimal CPU required
540
+ - Use minimum memory (128-256MB)
541
+ - Fast execution despite low resources
542
+
543
+ ### Billing Granularity
544
+
545
+ **Lambda bills in 1ms increments**:
546
+ - Precise billing (7ms execution = 7ms cost)
547
+ - Optimize even small improvements
548
+ - Consider trade-offs carefully
549
+
550
+ **Cost calculation**:
551
+ ```
552
+ Cost = (Memory GB) × (Duration seconds) × (Invocations) × ($0.0000166667/GB-second)
553
+ + (Invocations) × ($0.20/1M requests)
554
+ ```
555
+
556
+ ### Cost Reduction Strategies
557
+
558
+ 1. **Optimize execution time**: Faster = cheaper
559
+ 2. **Right-size memory**: Balance CPU needs with cost
560
+ 3. **Reduce invocations**: Batch processing, caching
561
+ 4. **Use Graviton2**: 20% better price/performance
562
+ 5. **Reserved Concurrency**: Only when needed
563
+ 6. **Compression**: Reduce data transfer costs
564
+
565
+ ## Advanced Optimization
566
+
567
+ ### Lambda Extensions
568
+
569
+ **Use extensions for cross-cutting concerns**:
570
+
571
+ ```typescript
572
+ // Lambda layer with extension
573
+ const extensionLayer = lambda.LayerVersion.fromLayerVersionArn(
574
+ this,
575
+ 'Extension',
576
+ 'arn:aws:lambda:us-east-1:123456789:layer:my-extension:1'
577
+ );
578
+
579
+ new NodejsFunction(this, 'Function', {
580
+ entry: 'src/handler.ts',
581
+ layers: [extensionLayer],
582
+ });
583
+ ```
584
+
585
+ **Common extensions**:
586
+ - Secrets caching
587
+ - Configuration caching
588
+ - Custom logging
589
+ - Security scanning
590
+ - Performance monitoring
591
+
592
+ ### Graviton2 Architecture
593
+
594
+ **20% better price/performance**:
595
+
596
+ ```typescript
597
+ new NodejsFunction(this, 'Function', {
598
+ entry: 'src/handler.ts',
599
+ architecture: lambda.Architecture.ARM_64, // Graviton2
600
+ });
601
+ ```
602
+
603
+ **Considerations**:
604
+ - Most runtimes support ARM64
605
+ - Test thoroughly before migrating
606
+ - Dependencies must support ARM64
607
+ - Native extensions may need recompilation
608
+
609
+ ### VPC Optimization
610
+
611
+ **Hyperplane ENIs** (automatic since 2019):
612
+ - No ENI per function
613
+ - Faster cold starts in VPC
614
+ - Scales instantly
615
+
616
+ ```typescript
617
+ // Modern VPC configuration (fast)
618
+ new NodejsFunction(this, 'VpcFunction', {
619
+ entry: 'src/handler.ts',
620
+ vpc,
621
+ vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
622
+ // Fast scaling, no ENI limitations
623
+ });
624
+ ```
625
+
626
+ ## Performance Monitoring
627
+
628
+ ### Key Metrics
629
+
630
+ **Monitor these metrics**:
631
+ - **Duration**: p50, p95, p99, max
632
+ - **Cold Start %**: ColdStartDuration / TotalDuration
633
+ - **Error Rate**: Errors / Invocations
634
+ - **Throttles**: Indicates concurrency limit reached
635
+ - **Iterator Age**: For stream processing lag
636
+
637
+ ### Performance Dashboards
638
+
639
+ ```typescript
640
+ const dashboard = new cloudwatch.Dashboard(this, 'PerformanceDashboard');
641
+
642
+ dashboard.addWidgets(
643
+ new cloudwatch.GraphWidget({
644
+ title: 'Latency Distribution',
645
+ left: [
646
+ fn.metricDuration({ statistic: 'p50', label: 'p50' }),
647
+ fn.metricDuration({ statistic: 'p95', label: 'p95' }),
648
+ fn.metricDuration({ statistic: 'p99', label: 'p99' }),
649
+ fn.metricDuration({ statistic: 'Maximum', label: 'max' }),
650
+ ],
651
+ }),
652
+ new cloudwatch.GraphWidget({
653
+ title: 'Memory Utilization',
654
+ left: [fn.metricDuration()],
655
+ right: [fn.metricErrors()],
656
+ })
657
+ );
658
+ ```
659
+
660
+ ## Summary
661
+
662
+ - **Cold Starts**: Optimize package size, use provisioned concurrency for critical paths
663
+ - **Memory**: More memory often = faster execution = lower cost
664
+ - **Initialization**: Initialize connections outside handler
665
+ - **Lazy Loading**: Load dependencies only when needed
666
+ - **Connection Reuse**: Enable for AWS SDK clients
667
+ - **Testing**: Test at different memory levels to find optimal configuration
668
+ - **Monitoring**: Track p99 latency, not average
669
+ - **Graviton2**: Consider ARM64 for better price/performance
670
+ - **Batch Operations**: Reduce round trips to services
671
+ - **Caching**: Cache frequently accessed data