botrun-horse 2.30.0 → 2.34.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 (664) hide show
  1. package/bin/bh.mjs +37 -170
  2. package/bin/commands/help.mjs +30 -30
  3. package/{lib/flows → modules/_core}/draft-writing.mjs +1 -1
  4. package/{lib/flows → modules/_core}/gemini-ask.mjs +1 -1
  5. package/{lib/flows → modules/_core}/legal-ask.mjs +4 -4
  6. package/{lib/flows → modules/_core}/openai-agent.mjs +2 -2
  7. package/{lib/flows → modules/_core}/openrouter-ask.mjs +1 -1
  8. package/{bin/commands/dag-cmd.mjs → modules/dag/command.mjs} +2 -2
  9. package/modules/dag/index.mjs +30 -0
  10. package/{bin/commands/db-cmd.mjs → modules/db/command.mjs} +3 -3
  11. package/modules/db/index.mjs +26 -0
  12. package/modules/discover.mjs +43 -0
  13. package/{bin/commands/doc.mjs → modules/doc/command.mjs} +5 -5
  14. package/modules/doc/index.mjs +55 -0
  15. package/{lib/doc/index.mjs → modules/doc/ingest.mjs} +1 -1
  16. package/{lib → modules}/doc/office2text.mjs +1 -1
  17. package/{lib → modules}/doc/pdf2text.mjs +1 -1
  18. package/{lib → modules}/doc/split.mjs +1 -1
  19. package/{bin/commands/gemini.mjs → modules/gemini/command.mjs} +3 -3
  20. package/modules/gemini/index.mjs +41 -0
  21. package/modules/imagen/command.mjs +117 -0
  22. package/modules/imagen/imagen-client.mjs +239 -0
  23. package/modules/imagen/index.mjs +60 -0
  24. package/modules/imagen/server.mjs +133 -0
  25. package/{bin/commands/legal.mjs → modules/legal/command.mjs} +5 -5
  26. package/modules/legal/index.mjs +56 -0
  27. package/{bin/commands/nchc.mjs → modules/nchc/command.mjs} +4 -4
  28. package/modules/nchc/index.mjs +48 -0
  29. package/modules/ocr/index.mjs +17 -0
  30. package/{bin/commands/openrouter.mjs → modules/openrouter/command.mjs} +5 -5
  31. package/modules/openrouter/index.mjs +49 -0
  32. package/modules/portal/index.mjs +17 -0
  33. package/{bin/commands/search.mjs → modules/search/command.mjs} +3 -3
  34. package/modules/search/index.mjs +23 -0
  35. package/{lib/search/index.mjs → modules/search/search-lib.mjs} +1 -1
  36. package/{bin/commands/skill.mjs → modules/skill/command.mjs} +46 -9
  37. package/modules/skill/index.mjs +35 -0
  38. package/{lib/prompt → modules/skill}/prompt-search.mjs +1 -1
  39. package/{lib/prompt → modules/skill}/prompt-store.mjs +28 -11
  40. package/modules/skill/prompts/zero-framework/address-matching.md +22 -0
  41. package/modules/skill/prompts/zero-framework/data-integrity.md +15 -0
  42. package/modules/skill/prompts/zero-framework/data-reasonability.md +17 -0
  43. package/modules/skill/prompts/zero-framework/gemini-image-gen.md +20 -0
  44. package/modules/skill/prompts/zero-framework/gemini-search-cli.md +10 -0
  45. package/modules/skill/prompts/zero-framework/html-report.md +15 -0
  46. package/modules/skill/prompts/zero-framework/smart-cache.md +10 -0
  47. package/modules/skill/prompts/zero-framework/trigram-search.md +12 -0
  48. package/modules/skill/prompts/zero-framework/tts-format.md +6 -0
  49. package/modules/skill/prompts/zero-framework/watermelon-sqlite.md +8 -0
  50. package/{bin/commands/writing.mjs → modules/writing/command.mjs} +3 -3
  51. package/{lib → modules}/writing/generate.mjs +2 -2
  52. package/modules/writing/index.mjs +38 -0
  53. package/package.json +3 -1
  54. package/parallel-dag-todo-list/imagen-module.md +51 -0
  55. package/bin/commands/schema.mjs +0 -254
  56. package/botrun-c/.claude/skills/DOCX/351/226/261/350/256/200/346/212/200/350/203/275/SKILL.md +0 -103
  57. package/botrun-c/.claude/skills/DOCX/351/226/261/350/256/200/346/212/200/350/203/275/scripts/docx-to-markdown.mjs +0 -206
  58. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/SKILL.md +0 -1093
  59. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branch.mjs +0 -73
  60. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branches.mjs +0 -77
  61. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-checkout.mjs +0 -72
  62. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-clone.mjs +0 -72
  63. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-commit.mjs +0 -75
  64. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-branch.mjs +0 -75
  65. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-file.mjs +0 -72
  66. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-diff.mjs +0 -80
  67. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list-tree.mjs +0 -336
  68. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list.mjs +0 -199
  69. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-merge.mjs +0 -86
  70. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-move.mjs +0 -75
  71. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-create.mjs +0 -81
  72. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-list.mjs +0 -74
  73. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-merge.mjs +0 -83
  74. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-view.mjs +0 -71
  75. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-push.mjs +0 -71
  76. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-read.mjs +0 -277
  77. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-search.mjs +0 -370
  78. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-stash.mjs +0 -116
  79. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-sync.mjs +0 -71
  80. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-write.mjs +0 -74
  81. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/lib/path-validator.mjs +0 -167
  82. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/SKILL.md +0 -605
  83. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-create.mjs +0 -127
  84. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-delete.mjs +0 -77
  85. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-diff.mjs +0 -87
  86. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-history.mjs +0 -99
  87. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-list.mjs +0 -174
  88. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-read.mjs +0 -214
  89. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-restore.mjs +0 -75
  90. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-search.mjs +0 -270
  91. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-sync-back.mjs +0 -155
  92. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-update.mjs +0 -100
  93. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/SKILL.md +0 -414
  94. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/create-project.mjs +0 -91
  95. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/finalize-project.mjs +0 -162
  96. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/SKILL.md +0 -206
  97. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/package.json +0 -19
  98. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-analyze.mjs +0 -309
  99. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-compress.mjs +0 -315
  100. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-split.mjs +0 -275
  101. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-to-text.mjs +0 -336
  102. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/test-pdf-scripts.mjs +0 -491
  103. package/botrun-c/.claude/skills/docx-to-markdown/SKILL.md +0 -76
  104. package/botrun-c/.claude/skills/docx-to-markdown/scripts/convert_docx.py +0 -183
  105. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/SKILL.md +0 -133
  106. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/scripts/ocr_processor.py +0 -381
  107. package/botrun-c/.claude/skills/gemini-transcribe/SKILL.md +0 -115
  108. package/botrun-c/.claude/skills/gemini-transcribe/scripts/transcribe.py +0 -499
  109. package/botrun-c/.claude/skills/nchc-transcribe/SKILL.md +0 -131
  110. package/botrun-c/.claude/skills/nchc-transcribe/scripts/transcribe.py +0 -522
  111. package/botrun-c/.claude/skills/p320-moj-review/SKILL.md +0 -200
  112. package/botrun-c/.claude/skills/p320-moj-review/references/guideline.md +0 -118
  113. package/botrun-c/.claude/skills/pdf-multimodal-processor/SKILL.md +0 -186
  114. package/botrun-c/.claude/skills/pdf-multimodal-processor/scripts/process_pdf.py +0 -515
  115. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/SKILL.md +0 -81
  116. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/package.json +0 -13
  117. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/secure-search.mjs +0 -232
  118. package/botrun-c/.claude/skills/top100/351/240/230/350/242/226/351/240/220/346/270/254/346/212/200/350/203/275/SKILL.md +0 -518
  119. package/botrun-c/.claude/skills//345/216/273/350/255/230/345/210/245/346/212/200/350/203/275/SKILL.md +0 -125
  120. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/SKILL.md +0 -123
  121. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/scripts/recall.mjs +0 -339
  122. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/SKILL.md +0 -156
  123. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/__tests__/utils.test.mjs +0 -139
  124. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/constants.mjs +0 -40
  125. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/gcs-uploader.mjs +0 -195
  126. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/gemini-image-client.mjs +0 -307
  127. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/generate-image.mjs +0 -103
  128. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/image-session-manager.mjs +0 -219
  129. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/output-formatter.mjs +0 -209
  130. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/package.json +0 -20
  131. package/botrun-c/.claude/skills//345/234/226/347/211/207/347/224/237/346/210/220/346/212/200/350/203/275/scripts/utils.mjs +0 -115
  132. package/botrun-c/.claude/skills//345/244/232/346/250/241/346/205/213/351/226/261/350/256/200/346/212/200/350/203/275/SKILL.md +0 -86
  133. package/botrun-c/.claude/skills//345/244/232/346/250/241/346/205/213/351/226/261/350/256/200/346/212/200/350/203/275/scripts/multimodal-read.mjs +0 -304
  134. package/botrun-c/.claude/skills//345/244/232/346/250/241/346/205/213/351/226/261/350/256/200/346/212/200/350/203/275/scripts/package.json +0 -17
  135. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/SKILL.md +0 -131
  136. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/scripts/skill-manager.mjs +0 -542
  137. package/botrun-c/.claude/skills//346/234/203/350/255/260/350/250/230/351/214/204/346/212/200/350/203/275/SKILL.md +0 -127
  138. package/botrun-c/.claude/skills//347/233/256/351/214/204/345/210/227/350/241/250/346/212/200/350/203/275/SKILL.md +0 -53
  139. package/botrun-c/.claude/skills//347/233/256/351/214/204/345/210/227/350/241/250/346/212/200/350/203/275/scripts/package.json +0 -13
  140. package/botrun-c/.claude/skills//347/233/256/351/214/204/345/210/227/350/241/250/346/212/200/350/203/275/scripts/tree-view.mjs +0 -149
  141. package/botrun-c/.claude/skills//347/264/224/346/226/207/345/255/227/345/244/232/346/252/224/346/241/210/350/256/200/345/217/226/346/212/200/350/203/275/SKILL.md +0 -82
  142. package/botrun-c/.claude/skills//347/264/224/346/226/207/345/255/227/345/244/232/346/252/224/346/241/210/350/256/200/345/217/226/346/212/200/350/203/275/scripts/package.json +0 -16
  143. package/botrun-c/.claude/skills//347/264/224/346/226/207/345/255/227/345/244/232/346/252/224/346/241/210/350/256/200/345/217/226/346/212/200/350/203/275/scripts/secure-read.mjs +0 -260
  144. package/botrun-c/.claude/skills//347/266/262/350/267/257/346/220/234/345/260/213/346/212/200/350/203/275/SKILL.md +0 -156
  145. package/botrun-c/.claude/skills//347/266/262/350/267/257/346/220/234/345/260/213/346/212/200/350/203/275/scripts/package.json +0 -16
  146. package/botrun-c/.claude/skills//347/266/262/350/267/257/346/220/234/345/260/213/346/212/200/350/203/275/scripts/search.js +0 -139
  147. package/botrun-c/.claude/skills//347/266/262/350/267/257/346/220/234/345/260/213/346/212/200/350/203/275/scripts/search.mjs +0 -272
  148. package/botrun-c/.claude/skills//347/266/262/350/267/257/346/220/234/345/260/213/346/212/200/350/203/275/scripts/search.ts +0 -166
  149. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/SKILL.md +0 -114
  150. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/remember.mjs +0 -159
  151. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test-advanced.mjs +0 -342
  152. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test.mjs +0 -430
  153. package/botrun-c/.claude/skills//350/252/236/351/237/263/350/275/211/346/226/207/345/255/227/346/212/200/350/203/275/SKILL.md +0 -30
  154. package/botrun-c/.claude/skills//350/252/236/351/237/263/350/275/211/346/226/207/345/255/227/346/212/200/350/203/275/scripts/package.json +0 -13
  155. package/botrun-c/.claude/skills//350/252/236/351/237/263/350/275/211/346/226/207/345/255/227/346/212/200/350/203/275/scripts/transcribe.mjs +0 -294
  156. package/botrun-c/.claude/skills//351/233/266/345/271/273/350/246/272/350/255/211/346/230/216/346/212/200/350/203/275/SKILL.md +0 -338
  157. package/botrun-c/.dockerignore +0 -131
  158. package/botrun-c/.dockeroptimize +0 -13
  159. package/botrun-c/.firebase/hosting.b3V0.cache +0 -30
  160. package/botrun-c/.firebaserc +0 -5
  161. package/botrun-c/.gcloudignore +0 -56
  162. package/botrun-c/.ruby-version +0 -1
  163. package/botrun-c/CHANGELOG.md +0 -224
  164. package/botrun-c/Dockerfile.gcp +0 -365
  165. package/botrun-c/Dockerfile.slim +0 -195
  166. package/botrun-c/Gemfile +0 -8
  167. package/botrun-c/Gemfile.lock +0 -233
  168. package/botrun-c/LOCAL-DEVELOPMENT-GUIDE.md +0 -393
  169. package/botrun-c/PLAN.md +0 -131
  170. package/botrun-c/README.md +0 -129
  171. package/botrun-c/TODO-CAPACITOR-INTEGRATION.md +0 -482
  172. package/botrun-c/VERIFICATION.md +0 -121
  173. package/botrun-c/admin/RATE_LIMIT_MANAGEMENT.md +0 -312
  174. package/botrun-c/admin/README.md +0 -338
  175. package/botrun-c/admin/botrun-billing-report-1765235244038.csv +0 -22
  176. package/botrun-c/admin/botrun-billing-report-1765235323089.csv +0 -22
  177. package/botrun-c/admin/botrun-dashboard-1765235244039.html +0 -278
  178. package/botrun-c/admin/botrun-dashboard-1765235323089.html +0 -278
  179. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235244039.html +0 -161
  180. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235323090.html +0 -161
  181. package/botrun-c/admin/check-billing.ts +0 -48
  182. package/botrun-c/admin/count-all-users.ts +0 -65
  183. package/botrun-c/admin/generate-analytics-report.ts +0 -188
  184. package/botrun-c/admin/jest.config.ts +0 -43
  185. package/botrun-c/admin/lib/__tests__/formatters.test.ts +0 -264
  186. package/botrun-c/admin/lib/__tests__/mocks/firebase.mock.ts +0 -112
  187. package/botrun-c/admin/lib/__tests__/services/UserService.test.ts +0 -83
  188. package/botrun-c/admin/lib/__tests__/user-resolver.test.ts +0 -439
  189. package/botrun-c/admin/lib/analyzers/BillingAnalyticsService.ts +0 -242
  190. package/botrun-c/admin/lib/analyzers/CsvExporter.ts +0 -263
  191. package/botrun-c/admin/lib/analyzers/HtmlChartGenerator.ts +0 -530
  192. package/botrun-c/admin/lib/analyzers/SpikeAnalyzer.ts +0 -608
  193. package/botrun-c/admin/lib/analyzers/TimeSeriesAnalyzer.ts +0 -344
  194. package/botrun-c/admin/lib/cli/CLIBootstrapper.ts +0 -40
  195. package/botrun-c/admin/lib/commands/AbstractCommand.ts +0 -69
  196. package/botrun-c/admin/lib/commands/AnalyticsCommand.ts +0 -215
  197. package/botrun-c/admin/lib/commands/ListCommand.ts +0 -85
  198. package/botrun-c/admin/lib/commands/QueryCommand.ts +0 -81
  199. package/botrun-c/admin/lib/commands/SpikeCommand.ts +0 -83
  200. package/botrun-c/admin/lib/domain/User.ts +0 -38
  201. package/botrun-c/admin/lib/firebase.ts +0 -92
  202. package/botrun-c/admin/lib/firestore-safe.ts +0 -105
  203. package/botrun-c/admin/lib/formatters.ts +0 -154
  204. package/botrun-c/admin/lib/rate-limit-detailed.ts +0 -355
  205. package/botrun-c/admin/lib/rate-limit.ts +0 -286
  206. package/botrun-c/admin/lib/repositories/UserRepository.ts +0 -104
  207. package/botrun-c/admin/lib/services/UserService.ts +0 -108
  208. package/botrun-c/admin/lib/types.ts +0 -56
  209. package/botrun-c/admin/lib/user-resolver.ts +0 -275
  210. package/botrun-c/admin/manage-auth-domains.js +0 -178
  211. package/botrun-c/admin/migrate-plan-free.sh +0 -64
  212. package/botrun-c/admin/package-lock.json +0 -5656
  213. package/botrun-c/admin/package.json +0 -28
  214. package/botrun-c/admin/rate-limit.sh +0 -55
  215. package/botrun-c/admin/remove-custom-limits.ts +0 -75
  216. package/botrun-c/admin/reset-rate.sh +0 -70
  217. package/botrun-c/admin/reset-trial.sh +0 -68
  218. package/botrun-c/admin/seed-trial-data.sh +0 -38
  219. package/botrun-c/admin/trial.sh +0 -55
  220. package/botrun-c/admin/tsconfig.json +0 -20
  221. package/botrun-c/admin/users-cli.py +0 -298
  222. package/botrun-c/admin/users.sh +0 -12
  223. package/botrun-c/admin/users.ts +0 -1321
  224. package/botrun-c/api/admin-tools/check-whitelist.mjs.migration-bak +0 -74
  225. package/botrun-c/api/admin-tools/create-user.mjs +0 -92
  226. package/botrun-c/api/admin-tools/create-user.mjs.migration-bak +0 -92
  227. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py +0 -287
  228. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py.migration-bak +0 -287
  229. package/botrun-c/api/admin-tools/init-firestore.mjs +0 -75
  230. package/botrun-c/api/admin-tools/init-firestore.mjs.migration-bak +0 -101
  231. package/botrun-c/api/admin-tools/list-users.mjs +0 -43
  232. package/botrun-c/api/admin-tools/list-users.mjs.migration-bak +0 -43
  233. package/botrun-c/api/admin-tools/manage-authorized-domains.ts +0 -255
  234. package/botrun-c/api/admin-tools/manage-authorized-domains.ts.migration-bak +0 -255
  235. package/botrun-c/api/admin-tools/setup-custom-claims.ts.migration-bak +0 -155
  236. package/botrun-c/api/admin-tools/test-claims.mjs +0 -69
  237. package/botrun-c/api/admin-tools/test-claims.mjs.migration-bak +0 -69
  238. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs +0 -72
  239. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs.migration-bak +0 -72
  240. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs +0 -159
  241. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs.migration-bak +0 -159
  242. package/botrun-c/api/admin-tools/update-service-urls.mjs +0 -82
  243. package/botrun-c/api/admin-tools/update-service-urls.mjs.migration-bak +0 -82
  244. package/botrun-c/api/package-lock.json +0 -5031
  245. package/botrun-c/api/package.json +0 -63
  246. package/botrun-c/api/pnpm-lock.yaml +0 -4157
  247. package/botrun-c/api/rate-limit-export-1763620678737.csv +0 -79
  248. package/botrun-c/api/scripts/README-migrate-plan-free.md +0 -197
  249. package/botrun-c/api/scripts/check-users.ts +0 -45
  250. package/botrun-c/api/scripts/delete-firestore-docs.js +0 -43
  251. package/botrun-c/api/scripts/dump-subscriptions.ts +0 -395
  252. package/botrun-c/api/scripts/list-all-users.ts +0 -65
  253. package/botrun-c/api/scripts/migrate-plan-free-rpd-16to32.ts +0 -262
  254. package/botrun-c/api/scripts/migrate-plan-names-to-lite-max.ts +0 -269
  255. package/botrun-c/api/scripts/query-user-info.ts +0 -304
  256. package/botrun-c/api/scripts/reset-rate-limit.ts +0 -206
  257. package/botrun-c/api/scripts/reset-trial-subscription.ts +0 -166
  258. package/botrun-c/api/scripts/rollback-plan-names-from-lite-max.ts +0 -139
  259. package/botrun-c/api/scripts/seed-rate-limit-test-data.ts +0 -114
  260. package/botrun-c/api/scripts/seed-subscription-test-data.ts +0 -173
  261. package/botrun-c/api/scripts/test-rate-limit-message.ts +0 -108
  262. package/botrun-c/api/test-billing-write.ts +0 -103
  263. package/botrun-c/api/test-billing.ts +0 -81
  264. package/botrun-c/api/test-chat-upload.sh +0 -162
  265. package/botrun-c/api/test-nchc-whisper.ts +0 -87
  266. package/botrun-c/api/test-skills-loading.js +0 -77
  267. package/botrun-c/api/test-skills-symlink.js +0 -118
  268. package/botrun-c/api/test-upload-multimodal.sh +0 -167
  269. package/botrun-c/api/tsconfig.json +0 -27
  270. package/botrun-c/api/verify-form-2-1.mjs +0 -229
  271. package/botrun-c/api/vitest.config.ts +0 -9
  272. package/botrun-c/appium-capabilities.json +0 -20
  273. package/botrun-c/cors.json +0 -26
  274. package/botrun-c/delete-old.sh +0 -44
  275. package/botrun-c/design/google-drive/01-architecture.md +0 -186
  276. package/botrun-c/design/google-drive/02-api-design.md +0 -314
  277. package/botrun-c/design/google-drive/03-frontend-design.md +0 -278
  278. package/botrun-c/design/google-drive/04-skill-design.md +0 -384
  279. package/botrun-c/design/google-drive/05-test-plan.md +0 -507
  280. package/botrun-c/design/google-drive/README.md +0 -32
  281. package/botrun-c/dev/mcp-token-calculator/README.md +0 -92
  282. package/botrun-c/dev/mcp-token-calculator/RESULTS.md +0 -188
  283. package/botrun-c/dev/mcp-token-calculator/calculate-current-tokens.ts +0 -369
  284. package/botrun-c/dev/mcp-token-calculator/calculate-mcp-tokens.ts +0 -464
  285. package/botrun-c/dev/mcp-token-calculator/optimization-proposals.ts +0 -316
  286. package/botrun-c/dev/mcp-token-calculator/package-lock.json +0 -599
  287. package/botrun-c/dev/mcp-token-calculator/package.json +0 -22
  288. package/botrun-c/dev/mcp-token-calculator/test-all-schemas.ts +0 -314
  289. package/botrun-c/dev/mcp-token-calculator/test-schema-correctness.ts +0 -221
  290. package/botrun-c/dev/mcp-token-calculator/verify-optimization.ts +0 -159
  291. package/botrun-c/fastlane/ANDROID-DEPLOYMENT-SETUP.md +0 -825
  292. package/botrun-c/fastlane/IOS-DEPLOYMENT-SETUP.md +0 -431
  293. package/botrun-c/fastlane/Pluginfile +0 -5
  294. package/botrun-c/fastlane/QUICK-START.md +0 -133
  295. package/botrun-c/fastlane/README.md +0 -424
  296. package/botrun-c/fastlane/RUBY-SETUP.md +0 -449
  297. package/botrun-c/fastlane/android/Appfile +0 -11
  298. package/botrun-c/fastlane/android/Fastfile +0 -240
  299. package/botrun-c/firebase.json +0 -46
  300. package/botrun-c/firestore-init-data.json +0 -40
  301. package/botrun-c/firestore.indexes.json +0 -55
  302. package/botrun-c/firestore.rules +0 -53
  303. package/botrun-c/fix-codex-permissions.sh +0 -56
  304. package/botrun-c/gcs-lifecycle-30day-retention.json +0 -12
  305. package/botrun-c/html-architecture/architecture/deployment.html +0 -664
  306. package/botrun-c/html-architecture/architecture/index.html +0 -309
  307. package/botrun-c/html-architecture/architecture/styles.css +0 -500
  308. package/botrun-c/html-architecture/architecture/system-components.html +0 -538
  309. package/botrun-c/html-architecture/architecture/user-flow.html +0 -370
  310. package/botrun-c/mobile-android/FIREBASE-AUTH-SETUP.md +0 -302
  311. package/botrun-c/mobile-android/WSL-ANDROID-SETUP.md +0 -252
  312. package/botrun-c/mobile-android/android/app/build.gradle +0 -75
  313. package/botrun-c/mobile-android/android/app/capacitor.build.gradle +0 -31
  314. package/botrun-c/mobile-android/android/app/proguard-rules.pro +0 -21
  315. package/botrun-c/mobile-android/android/build.gradle +0 -29
  316. package/botrun-c/mobile-android/android/capacitor.settings.gradle +0 -42
  317. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  318. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  319. package/botrun-c/mobile-android/android/gradle.properties +0 -22
  320. package/botrun-c/mobile-android/android/gradlew +0 -252
  321. package/botrun-c/mobile-android/android/gradlew.bat +0 -94
  322. package/botrun-c/mobile-android/android/settings.gradle +0 -5
  323. package/botrun-c/mobile-android/android/variables.gradle +0 -16
  324. package/botrun-c/mobile-android/capacitor.config.ts +0 -44
  325. package/botrun-c/mobile-android/fastlane/Appfile +0 -11
  326. package/botrun-c/mobile-android/fastlane/Fastfile +0 -202
  327. package/botrun-c/mobile-android/fastlane/README.md +0 -96
  328. package/botrun-c/mobile-android/google-services.json.template +0 -39
  329. package/botrun-c/mobile-android/package.json +0 -32
  330. package/botrun-c/mobile-android/resources/icon.png +0 -0
  331. package/botrun-c/mobile-android/tsconfig.json +0 -15
  332. package/botrun-c/mobile-ios/.ruby-version +0 -1
  333. package/botrun-c/mobile-ios/BUILD-LOG.md +0 -82
  334. package/botrun-c/mobile-ios/Gemfile +0 -4
  335. package/botrun-c/mobile-ios/Gemfile.lock +0 -299
  336. package/botrun-c/mobile-ios/GoogleService-Info.plist.template +0 -34
  337. package/botrun-c/mobile-ios/IOS-PERMISSIONS.md +0 -80
  338. package/botrun-c/mobile-ios/QUICK-START.md +0 -189
  339. package/botrun-c/mobile-ios/README.md +0 -231
  340. package/botrun-c/mobile-ios/capacitor.config.ts +0 -46
  341. package/botrun-c/mobile-ios/fastlane/Fastfile +0 -326
  342. package/botrun-c/mobile-ios/fastlane/README.md +0 -88
  343. package/botrun-c/mobile-ios/ios/App/App/App.entitlements +0 -10
  344. package/botrun-c/mobile-ios/ios/App/App/AppDelegate.swift +0 -49
  345. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png +0 -0
  346. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  347. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Contents.json +0 -6
  348. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +0 -56
  349. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany-dark.png +0 -0
  350. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany.png +0 -0
  351. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany-dark.png +0 -0
  352. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany.png +0 -0
  353. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany-dark.png +0 -0
  354. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany.png +0 -0
  355. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  356. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  357. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  358. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/LaunchScreen.storyboard +0 -32
  359. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/Main.storyboard +0 -19
  360. package/botrun-c/mobile-ios/ios/App/App/Info.plist +0 -72
  361. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/project.pbxproj +0 -446
  362. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme +0 -78
  363. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/contents.xcworkspacedata +0 -10
  364. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  365. package/botrun-c/mobile-ios/ios/App/Podfile +0 -52
  366. package/botrun-c/mobile-ios/ios/App/Podfile.lock +0 -205
  367. package/botrun-c/mobile-ios/ios/App/add_plist.rb +0 -30
  368. package/botrun-c/mobile-ios/ios/App/fix_plist_path.rb +0 -22
  369. package/botrun-c/mobile-ios/package.json +0 -29
  370. package/botrun-c/mobile-ios/resources/icon.png +0 -0
  371. package/botrun-c/mobile-ios/run-simulator.sh +0 -34
  372. package/botrun-c/mobile-ios/screenshot-after-clean-rebuild.png +0 -0
  373. package/botrun-c/mobile-ios/screenshot-final-version.png +0 -0
  374. package/botrun-c/mobile-ios/screenshot-simulator.png +0 -0
  375. package/botrun-c/mobile-ios/screenshot-version-1009.png +0 -0
  376. package/botrun-c/mobile-ios/screenshot-with-version.png +0 -0
  377. package/botrun-c/mobile-ios/screenshot-working.png +0 -0
  378. package/botrun-c/mobile-ios/setup-ios.sh +0 -106
  379. package/botrun-c/mobile-ios/tsconfig.json +0 -16
  380. package/botrun-c/org-policy-allow-all-users.yaml +0 -3
  381. package/botrun-c/package.json +0 -68
  382. package/botrun-c/pnpm-lock.yaml +0 -10198
  383. package/botrun-c/pnpm-workspace.yaml +0 -6
  384. package/botrun-c/prompts/BOTRUN-1.md +0 -13
  385. package/botrun-c/prompts/BOTRUN-2.md +0 -70
  386. package/botrun-c/prompts/BOTRUN-3.md +0 -139
  387. package/botrun-c/prototypes/firestore-gax-debug/package-lock.json +0 -1204
  388. package/botrun-c/prototypes/firestore-gax-debug/package.json +0 -12
  389. package/botrun-c/prototypes/firestore-gax-debug/pnpm-workspace.yaml +0 -2
  390. package/botrun-c/prototypes/firestore-gax-debug/test.js +0 -98
  391. package/botrun-c/prototypes/taiwan-haiku/README.md +0 -93
  392. package/botrun-c/prototypes/taiwan-haiku/index.ts +0 -139
  393. package/botrun-c/prototypes/taiwan-haiku/package.json +0 -23
  394. package/botrun-c/prototypes/taiwan-haiku/pnpm-lock.yaml +0 -730
  395. package/botrun-c/prototypes/taiwan-haiku/test-vertex-direct.ts +0 -83
  396. package/botrun-c/prototypes/taiwan-haiku/tsconfig.json +0 -18
  397. package/botrun-c/prototypes/web-search/FINDINGS-STAGE-1.md +0 -48
  398. package/botrun-c/prototypes/web-search/README.md +0 -46
  399. package/botrun-c/prototypes/web-search/VERIFICATION-REPORT.md +0 -310
  400. package/botrun-c/prototypes/web-search/package-lock.json +0 -595
  401. package/botrun-c/prototypes/web-search/package.json +0 -18
  402. package/botrun-c/prototypes/web-search/stage-1.1-basic-connection.js +0 -123
  403. package/botrun-c/prototypes/web-search/stage-1.2-with-websearch.js +0 -154
  404. package/botrun-c/prototypes/web-search/stage-1.3-search-query.js +0 -192
  405. package/botrun-c/prototypes/web-search/stage-2-agent-sdk-websearch.js +0 -265
  406. package/botrun-c/runtime-scripts/env-detect.sh +0 -64
  407. package/botrun-c/scripts/github-collaborator-manager.sh +0 -297
  408. package/botrun-c/scripts/github-collaborator-manager.ts +0 -325
  409. package/botrun-c/scripts/manage-collaborators.sh +0 -91
  410. package/botrun-c/scripts/setup-secrets.sh +0 -202
  411. package/botrun-c/scripts/stress-test-17-users.sh +0 -113
  412. package/botrun-c/scripts/stress-test-api.sh +0 -119
  413. package/botrun-c/scripts/stress-test-full-report.sh +0 -385
  414. package/botrun-c/specs/infra-vm/design.md +0 -0
  415. package/botrun-c/specs/share-skill/design.md +0 -1146
  416. package/botrun-c/specs/share-skill/tasks.md +0 -444
  417. package/botrun-c/stress-test-results/20260121-162630/config.json +0 -7
  418. package/botrun-c/stress-test-results/20260121-162630/user-1-status.txt +0 -1
  419. package/botrun-c/stress-test-results/20260121-162630/user-1-timing.txt +0 -1
  420. package/botrun-c/stress-test-results/20260121-162630/user-1.json +0 -2
  421. package/botrun-c/stress-test-results/20260121-162646/config.json +0 -7
  422. package/botrun-c/stress-test-results/20260121-162646/user-1-status.txt +0 -1
  423. package/botrun-c/stress-test-results/20260121-162646/user-1-timing.txt +0 -1
  424. package/botrun-c/stress-test-results/20260121-162646/user-1.json +0 -2
  425. package/botrun-c/stress-test-results/20260121-162646/user-10-status.txt +0 -1
  426. package/botrun-c/stress-test-results/20260121-162646/user-10-timing.txt +0 -1
  427. package/botrun-c/stress-test-results/20260121-162646/user-10.json +0 -2
  428. package/botrun-c/stress-test-results/20260121-162646/user-11-status.txt +0 -1
  429. package/botrun-c/stress-test-results/20260121-162646/user-11-timing.txt +0 -1
  430. package/botrun-c/stress-test-results/20260121-162646/user-11.json +0 -2
  431. package/botrun-c/stress-test-results/20260121-162646/user-12-status.txt +0 -1
  432. package/botrun-c/stress-test-results/20260121-162646/user-12-timing.txt +0 -1
  433. package/botrun-c/stress-test-results/20260121-162646/user-12.json +0 -2
  434. package/botrun-c/stress-test-results/20260121-162646/user-13-status.txt +0 -1
  435. package/botrun-c/stress-test-results/20260121-162646/user-13-timing.txt +0 -1
  436. package/botrun-c/stress-test-results/20260121-162646/user-13.json +0 -2
  437. package/botrun-c/stress-test-results/20260121-162646/user-14-status.txt +0 -1
  438. package/botrun-c/stress-test-results/20260121-162646/user-14-timing.txt +0 -1
  439. package/botrun-c/stress-test-results/20260121-162646/user-14.json +0 -2
  440. package/botrun-c/stress-test-results/20260121-162646/user-15-status.txt +0 -1
  441. package/botrun-c/stress-test-results/20260121-162646/user-15-timing.txt +0 -1
  442. package/botrun-c/stress-test-results/20260121-162646/user-15.json +0 -2
  443. package/botrun-c/stress-test-results/20260121-162646/user-16-status.txt +0 -1
  444. package/botrun-c/stress-test-results/20260121-162646/user-16-timing.txt +0 -1
  445. package/botrun-c/stress-test-results/20260121-162646/user-16.json +0 -2
  446. package/botrun-c/stress-test-results/20260121-162646/user-17-status.txt +0 -1
  447. package/botrun-c/stress-test-results/20260121-162646/user-17-timing.txt +0 -1
  448. package/botrun-c/stress-test-results/20260121-162646/user-17.json +0 -2
  449. package/botrun-c/stress-test-results/20260121-162646/user-2-status.txt +0 -1
  450. package/botrun-c/stress-test-results/20260121-162646/user-2-timing.txt +0 -1
  451. package/botrun-c/stress-test-results/20260121-162646/user-2.json +0 -2
  452. package/botrun-c/stress-test-results/20260121-162646/user-3-status.txt +0 -1
  453. package/botrun-c/stress-test-results/20260121-162646/user-3-timing.txt +0 -1
  454. package/botrun-c/stress-test-results/20260121-162646/user-3.json +0 -2
  455. package/botrun-c/stress-test-results/20260121-162646/user-4-status.txt +0 -1
  456. package/botrun-c/stress-test-results/20260121-162646/user-4-timing.txt +0 -1
  457. package/botrun-c/stress-test-results/20260121-162646/user-4.json +0 -2
  458. package/botrun-c/stress-test-results/20260121-162646/user-5-status.txt +0 -1
  459. package/botrun-c/stress-test-results/20260121-162646/user-5-timing.txt +0 -1
  460. package/botrun-c/stress-test-results/20260121-162646/user-5.json +0 -2
  461. package/botrun-c/stress-test-results/20260121-162646/user-6-status.txt +0 -1
  462. package/botrun-c/stress-test-results/20260121-162646/user-6-timing.txt +0 -1
  463. package/botrun-c/stress-test-results/20260121-162646/user-6.json +0 -2
  464. package/botrun-c/stress-test-results/20260121-162646/user-7-status.txt +0 -1
  465. package/botrun-c/stress-test-results/20260121-162646/user-7-timing.txt +0 -1
  466. package/botrun-c/stress-test-results/20260121-162646/user-7.json +0 -2
  467. package/botrun-c/stress-test-results/20260121-162646/user-8-status.txt +0 -1
  468. package/botrun-c/stress-test-results/20260121-162646/user-8-timing.txt +0 -1
  469. package/botrun-c/stress-test-results/20260121-162646/user-8.json +0 -2
  470. package/botrun-c/stress-test-results/20260121-162646/user-9-status.txt +0 -1
  471. package/botrun-c/stress-test-results/20260121-162646/user-9-timing.txt +0 -1
  472. package/botrun-c/stress-test-results/20260121-162646/user-9.json +0 -2
  473. package/botrun-c/stress-test-results/20260121-163148/REPORT.html +0 -344
  474. package/botrun-c/stress-test-results/20260121-163148/REPORT.md +0 -93
  475. package/botrun-c/stress-test-results/20260121-163148/REPORT.pdf +0 -0
  476. package/botrun-c/stress-test-results/20260121-163148/config.json +0 -7
  477. package/botrun-c/stress-test-results/20260121-163148/summary.json +0 -26
  478. package/botrun-c/stress-test-results/20260121-163148/user-1-status.txt +0 -1
  479. package/botrun-c/stress-test-results/20260121-163148/user-1-timing.txt +0 -1
  480. package/botrun-c/stress-test-results/20260121-163148/user-1.json +0 -206
  481. package/botrun-c/stress-test-results/20260121-163148/user-10-status.txt +0 -1
  482. package/botrun-c/stress-test-results/20260121-163148/user-10-timing.txt +0 -1
  483. package/botrun-c/stress-test-results/20260121-163148/user-10.json +0 -110
  484. package/botrun-c/stress-test-results/20260121-163148/user-11-status.txt +0 -1
  485. package/botrun-c/stress-test-results/20260121-163148/user-11-timing.txt +0 -1
  486. package/botrun-c/stress-test-results/20260121-163148/user-11.json +0 -104
  487. package/botrun-c/stress-test-results/20260121-163148/user-12-status.txt +0 -1
  488. package/botrun-c/stress-test-results/20260121-163148/user-12-timing.txt +0 -1
  489. package/botrun-c/stress-test-results/20260121-163148/user-12.json +0 -98
  490. package/botrun-c/stress-test-results/20260121-163148/user-13-status.txt +0 -1
  491. package/botrun-c/stress-test-results/20260121-163148/user-13-timing.txt +0 -1
  492. package/botrun-c/stress-test-results/20260121-163148/user-13.json +0 -68
  493. package/botrun-c/stress-test-results/20260121-163148/user-14-status.txt +0 -1
  494. package/botrun-c/stress-test-results/20260121-163148/user-14-timing.txt +0 -1
  495. package/botrun-c/stress-test-results/20260121-163148/user-14.json +0 -116
  496. package/botrun-c/stress-test-results/20260121-163148/user-15-status.txt +0 -1
  497. package/botrun-c/stress-test-results/20260121-163148/user-15-timing.txt +0 -1
  498. package/botrun-c/stress-test-results/20260121-163148/user-15.json +0 -131
  499. package/botrun-c/stress-test-results/20260121-163148/user-16-status.txt +0 -1
  500. package/botrun-c/stress-test-results/20260121-163148/user-16-timing.txt +0 -1
  501. package/botrun-c/stress-test-results/20260121-163148/user-16.json +0 -110
  502. package/botrun-c/stress-test-results/20260121-163148/user-17-status.txt +0 -1
  503. package/botrun-c/stress-test-results/20260121-163148/user-17-timing.txt +0 -1
  504. package/botrun-c/stress-test-results/20260121-163148/user-17.json +0 -116
  505. package/botrun-c/stress-test-results/20260121-163148/user-2-status.txt +0 -1
  506. package/botrun-c/stress-test-results/20260121-163148/user-2-timing.txt +0 -1
  507. package/botrun-c/stress-test-results/20260121-163148/user-2.json +0 -98
  508. package/botrun-c/stress-test-results/20260121-163148/user-3-status.txt +0 -1
  509. package/botrun-c/stress-test-results/20260121-163148/user-3-timing.txt +0 -1
  510. package/botrun-c/stress-test-results/20260121-163148/user-3.json +0 -62
  511. package/botrun-c/stress-test-results/20260121-163148/user-4-status.txt +0 -1
  512. package/botrun-c/stress-test-results/20260121-163148/user-4-timing.txt +0 -1
  513. package/botrun-c/stress-test-results/20260121-163148/user-4.json +0 -113
  514. package/botrun-c/stress-test-results/20260121-163148/user-5-status.txt +0 -1
  515. package/botrun-c/stress-test-results/20260121-163148/user-5-timing.txt +0 -1
  516. package/botrun-c/stress-test-results/20260121-163148/user-5.json +0 -83
  517. package/botrun-c/stress-test-results/20260121-163148/user-6-status.txt +0 -1
  518. package/botrun-c/stress-test-results/20260121-163148/user-6-timing.txt +0 -1
  519. package/botrun-c/stress-test-results/20260121-163148/user-6.json +0 -125
  520. package/botrun-c/stress-test-results/20260121-163148/user-7-status.txt +0 -1
  521. package/botrun-c/stress-test-results/20260121-163148/user-7-timing.txt +0 -1
  522. package/botrun-c/stress-test-results/20260121-163148/user-7.json +0 -62
  523. package/botrun-c/stress-test-results/20260121-163148/user-8-status.txt +0 -1
  524. package/botrun-c/stress-test-results/20260121-163148/user-8-timing.txt +0 -1
  525. package/botrun-c/stress-test-results/20260121-163148/user-8.json +0 -41
  526. package/botrun-c/stress-test-results/20260121-163148/user-9-status.txt +0 -1
  527. package/botrun-c/stress-test-results/20260121-163148/user-9-timing.txt +0 -1
  528. package/botrun-c/stress-test-results/20260121-163148/user-9.json +0 -53
  529. package/botrun-c/test-merge.md +0 -1
  530. package/botrun-c/version.txt +0 -1
  531. package/botrun-c/web/.version +0 -1
  532. package/botrun-c/web/ALLOW-PUBLIC-ACCESS.md +0 -57
  533. package/botrun-c/web/FINAL-SETUP-STEPS.md +0 -71
  534. package/botrun-c/web/FIREBASE-MANUAL-STEPS.md +0 -41
  535. package/botrun-c/web/QUICK-SETUP-HELPER.md +0 -79
  536. package/botrun-c/web/README.md +0 -162
  537. package/botrun-c/web/__tests__/image-extractor.test.ts +0 -147
  538. package/botrun-c/web/__tests__/useGitHub.test.ts +0 -245
  539. package/botrun-c/web/app/favicon.ico +0 -0
  540. package/botrun-c/web/app/globals.css +0 -215
  541. package/botrun-c/web/app/image-preview/page.tsx +0 -213
  542. package/botrun-c/web/app/layout.tsx +0 -46
  543. package/botrun-c/web/app/page.tsx +0 -45
  544. package/botrun-c/web/components/CapacitorProvider.tsx +0 -43
  545. package/botrun-c/web/components/ChatPage.tsx +0 -1736
  546. package/botrun-c/web/components/ConversationList.tsx +0 -237
  547. package/botrun-c/web/components/ConversationListItem.tsx +0 -121
  548. package/botrun-c/web/components/LoginPage.tsx +0 -212
  549. package/botrun-c/web/components/Providers.tsx +0 -12
  550. package/botrun-c/web/components/StatusBarProvider.tsx +0 -16
  551. package/botrun-c/web/components/attachment-preview.tsx +0 -193
  552. package/botrun-c/web/components/botrun-incubator/BotrunIncubator.tsx +0 -266
  553. package/botrun-c/web/components/botrun-incubator/index.ts +0 -1
  554. package/botrun-c/web/components/chat-input.tsx +0 -1251
  555. package/botrun-c/web/components/chat-message.tsx +0 -598
  556. package/botrun-c/web/components/drop-zone.tsx +0 -143
  557. package/botrun-c/web/components/gdrive/gdrive-add-dialog.tsx +0 -254
  558. package/botrun-c/web/components/gdrive/gdrive-drawer.tsx +0 -236
  559. package/botrun-c/web/components/gdrive/gdrive-selector.tsx +0 -226
  560. package/botrun-c/web/components/gdrive/index.ts +0 -7
  561. package/botrun-c/web/components/generated-image-card.tsx +0 -363
  562. package/botrun-c/web/components/github/GitHubConnect.tsx +0 -366
  563. package/botrun-c/web/components/github/index.ts +0 -2
  564. package/botrun-c/web/components/import-skill-dialog.tsx +0 -208
  565. package/botrun-c/web/components/scroll-to-bottom-button.tsx +0 -90
  566. package/botrun-c/web/components/share-skill-dialog.tsx +0 -175
  567. package/botrun-c/web/components/skills-editor.tsx +0 -443
  568. package/botrun-c/web/components/skills-manager-drawer.tsx +0 -586
  569. package/botrun-c/web/components/smart-button-group.tsx +0 -132
  570. package/botrun-c/web/config/smart-buttons.ts +0 -295
  571. package/botrun-c/web/config/welcome-messages.ts +0 -29
  572. package/botrun-c/web/contexts/AuthContext.tsx +0 -220
  573. package/botrun-c/web/hooks/use-toast.ts +0 -187
  574. package/botrun-c/web/hooks/useAppStoreUpdate.ts +0 -356
  575. package/botrun-c/web/hooks/useAppVersion.ts +0 -113
  576. package/botrun-c/web/hooks/useAttachments.ts +0 -269
  577. package/botrun-c/web/hooks/useAuthToken.ts +0 -59
  578. package/botrun-c/web/hooks/useAutoWelcome.ts +0 -89
  579. package/botrun-c/web/hooks/useCapacitorPlatform.ts +0 -113
  580. package/botrun-c/web/hooks/useCapawesomeLiveUpdate.ts +0 -149
  581. package/botrun-c/web/hooks/useClaudeModel.ts +0 -118
  582. package/botrun-c/web/hooks/useConversation.ts +0 -115
  583. package/botrun-c/web/hooks/useConversations.ts +0 -235
  584. package/botrun-c/web/hooks/useGdriveFolders.ts +0 -199
  585. package/botrun-c/web/hooks/useGdriveSync.ts +0 -107
  586. package/botrun-c/web/hooks/useGitHub.ts +0 -409
  587. package/botrun-c/web/hooks/useScrollToBottom.ts +0 -150
  588. package/botrun-c/web/hooks/useStatusBar.ts +0 -42
  589. package/botrun-c/web/hooks/useUserPlan.ts +0 -153
  590. package/botrun-c/web/lib/api-config.ts +0 -162
  591. package/botrun-c/web/lib/api-url.ts +0 -62
  592. package/botrun-c/web/lib/api.ts +0 -105
  593. package/botrun-c/web/lib/attachment-utils.ts +0 -168
  594. package/botrun-c/web/lib/build-version.ts +0 -11
  595. package/botrun-c/web/lib/clipboard-utils.ts +0 -199
  596. package/botrun-c/web/lib/constants.ts +0 -62
  597. package/botrun-c/web/lib/conversation-storage.ts +0 -324
  598. package/botrun-c/web/lib/firebase-capacitor.ts +0 -135
  599. package/botrun-c/web/lib/firebase.ts +0 -137
  600. package/botrun-c/web/lib/firestore-auth.ts +0 -61
  601. package/botrun-c/web/lib/firestore-auth.ts.migration-bak +0 -319
  602. package/botrun-c/web/lib/image-extractor.ts +0 -156
  603. package/botrun-c/web/lib/path-utils.ts +0 -48
  604. package/botrun-c/web/lib/rehype-del-to-mark.ts +0 -19
  605. package/botrun-c/web/lib/upload-service.ts +0 -326
  606. package/botrun-c/web/lib/utils.ts +0 -6
  607. package/botrun-c/web/next.config.js +0 -49
  608. package/botrun-c/web/package-lock.json +0 -6711
  609. package/botrun-c/web/package.json +0 -63
  610. package/botrun-c/web/postcss.config.js +0 -6
  611. package/botrun-c/web/public/apple_icon.png +0 -0
  612. package/botrun-c/web/public/google_icon.png +0 -0
  613. package/botrun-c/web/public/logo-48-small.png +0 -0
  614. package/botrun-c/web/public/logo-48.png +0 -0
  615. package/botrun-c/web/scripts/generate-version.js +0 -36
  616. package/botrun-c/web/scripts/update-build-version.js +0 -41
  617. package/botrun-c/web/tailwind.config.ts +0 -80
  618. package/botrun-c/web/test-welcome-message.mjs +0 -115
  619. package/botrun-c/web/tsconfig.json +0 -42
  620. package/botrun-c/web/types/agent.ts +0 -6
  621. package/botrun-c/web/types/attachment.ts +0 -39
  622. package/botrun-c/web/types/conversation.ts +0 -68
  623. package/botrun-c/web/types/flutter.d.ts +0 -6
  624. package/botrun-c/web/types/project.ts +0 -41
  625. package/botrun-c/web/types/skills.ts +0 -13
  626. package/botrun-c/web//350/250/272/346/226/267-Skills-/345/211/215/347/253/257/351/241/257/347/244/272/345/225/217/351/241/214.md +0 -83
  627. package/lib/writing/index.mjs +0 -5
  628. /package/{lib/core → modules/_core}/adapters/base.mjs +0 -0
  629. /package/{lib/core → modules/_core}/adapters/claude.mjs +0 -0
  630. /package/{lib/core → modules/_core}/adapters/gemini-api.mjs +0 -0
  631. /package/{lib/core → modules/_core}/adapters/gemini-shared.mjs +0 -0
  632. /package/{lib/core → modules/_core}/adapters/gemini-vertex.mjs +0 -0
  633. /package/{lib/core → modules/_core}/adapters/local.mjs +0 -0
  634. /package/{lib/core → modules/_core}/adapters/nchc.mjs +0 -0
  635. /package/{lib/core → modules/_core}/adapters/openai-shared.mjs +0 -0
  636. /package/{lib/core → modules/_core}/adapters/openrouter.mjs +0 -0
  637. /package/{lib/core → modules/_core}/ai-cache.mjs +0 -0
  638. /package/{lib/core → modules/_core}/ai-router.mjs +0 -0
  639. /package/{lib/core → modules/_core}/cli-utils.mjs +0 -0
  640. /package/{lib/core → modules/_core}/dag.mjs +0 -0
  641. /package/{lib/core → modules/_core}/db.mjs +0 -0
  642. /package/{lib/core → modules/_core}/env.mjs +0 -0
  643. /package/{lib/flows → modules/_core}/hatch-portal.mjs +0 -0
  644. /package/{lib/core → modules/_core}/llm.mjs +0 -0
  645. /package/{lib/flows → modules/_core}/opencode-agent.mjs +0 -0
  646. /package/{lib/core → modules/_core}/paths.mjs +0 -0
  647. /package/{lib/core → modules/_core}/proxy.mjs +0 -0
  648. /package/{lib/flows → modules/_core}/review-doc.mjs +0 -0
  649. /package/{lib → modules/_core}/tools/fs-tools.mjs +0 -0
  650. /package/{lib → modules/_core}/tools/index.mjs +0 -0
  651. /package/{lib/core → modules/_core}/watermelon.mjs +0 -0
  652. /package/{lib/ocr/index.mjs → modules/ocr/ocr-lib.mjs} +0 -0
  653. /package/{lib → modules}/portal/hatch.mjs +0 -0
  654. /package/{lib/portal/index.mjs → modules/portal/portal-lib.mjs} +0 -0
  655. /package/{lib → modules}/search/crawler.mjs +0 -0
  656. /package/{lib/prompt → modules/skill}/prompts/zero-framework/coding.md +0 -0
  657. /package/{lib/prompt → modules/skill}/prompts/zero-framework/fullstack.md +0 -0
  658. /package/{lib/prompt → modules/skill}/prompts/zero-framework/search.md +0 -0
  659. /package/{lib/prompt → modules/skill}/prompts/zero-framework/segment.md +0 -0
  660. /package/{lib/prompt → modules/skill}/prompts/zero-framework/slice.md +0 -0
  661. /package/{lib → modules}/writing/generators/nstc-generators.mjs +0 -0
  662. /package/{lib → modules}/writing/generators/nstc-top5.mjs +0 -0
  663. /package/{lib → modules}/writing/layouts/nstc-layout.mjs +0 -0
  664. /package/{lib → modules}/writing/renderer.mjs +0 -0
@@ -1,365 +0,0 @@
1
- # ================================
2
- # Unified Dockerfile for GCP Cloud Run with pnpm Workspace (Optimized)
3
- # Next.js Static Export + Hono API backend + Skills (v5.1201)
4
- #
5
- # 🎯 v5.1201 重大變更:MCP Servers 全面改用 Skills
6
- # - 所有 MCP Servers 已轉換為 Skills(位於 .claude/skills/)
7
- # - Skills 透過 Bash 執行 Node.js 腳本
8
- # - 啟動速度大幅提升(無需啟動 MCP Server 進程)
9
- #
10
- # 🎯 pnpm Workspace 最佳實踐:
11
- # ✅ 在同一個 stage 使用依賴(不跨 stage COPY)
12
- # - frontend-builder, api-builder 都從 deps 繼承
13
- # - 保留完整的 .pnpm store 和 symlinks
14
- # ✅ 使用 pnpm deploy 部署 production
15
- # - 智慧解析完整的 workspace 依賴圖
16
- # - 自動去重,只複製需要的包(無重複)
17
- # - --no-optional: 排除 sharp 圖片處理 (~60MB)
18
- # - 體積比手動 COPY 小 60-70%
19
- #
20
- # 🚀 優化成果:
21
- # - MCP Servers 已全面改用 Skills(v5.1201)
22
- # - Skills symlink 優化:節省 ~71MB(避免重複複製到 /home/nodejs/.claude/skills)
23
- # - Skip optional dependencies: 節省 60MB (sharp)
24
- # - Multi-stage build + cache mount: 建置速度提升 5-10 倍
25
- # - Layer caching optimization: 按變動頻率排序
26
- #
27
- # 📊 Expected Final Size: ~150MB(Skills symlink 優化後)
28
- # ================================
29
-
30
- # ============================================================================
31
- # Stage 0: pnpm Setup (共用 stage)
32
- # ============================================================================
33
- FROM node:22-alpine AS base
34
- ENV PNPM_HOME="/pnpm"
35
- ENV PATH="$PNPM_HOME:$PATH"
36
- RUN corepack enable && corepack prepare pnpm@9.15.0 --activate
37
-
38
- # ============================================================================
39
- # Stage 1: Install ALL Dependencies (保留完整的 pnpm 結構)
40
- # 🚀 方案 3:Layer 優化策略
41
- # - 依變動頻率排序:lockfile > workspace config > package.json
42
- # - lockfile 改變時才重新安裝所有依賴
43
- # - package.json 改變時可以復用 lockfile layer(快取命中率更高)
44
- # ============================================================================
45
- FROM base AS deps
46
- WORKDIR /app
47
-
48
- # 複製 .npmrc(包含 Capawesome Registry 認證)
49
- COPY .npmrc ./
50
-
51
- # 🎯 Layer 1: Lockfile(最少改變,最大快取命中率)
52
- # pnpm-lock.yaml 只有在依賴版本變更時才改變
53
- # 這一層快取命中率最高(~90%)
54
- COPY pnpm-lock.yaml ./
55
-
56
- # 🎯 Layer 2: Workspace 配置(偶爾改變)
57
- # pnpm-workspace.yaml 和 root package.json 很少改變
58
- COPY pnpm-workspace.yaml package.json ./
59
-
60
- # 🎯 Layer 3: 所有子專案 package.json(經常改變)
61
- # 按字母順序排列,便於維護
62
- # API(經常改變)
63
- COPY api/package.json ./api/
64
-
65
- # MCP Servers(v5.1201 已全面改用 Skills,以下 COPY 保留供回退使用但已註解)
66
- # COPY botrun-mcp-servers/audio-transcribe/package.json ./botrun-mcp-servers/audio-transcribe/
67
- # COPY botrun-mcp-servers/botrun-bash/package.json ./botrun-mcp-servers/botrun-bash/ # 已移至 bak/
68
- # COPY botrun-mcp-servers/botrun-image-generator/package.json ./botrun-mcp-servers/botrun-image-generator/
69
- # COPY botrun-mcp-servers/botrun-web-search/package.json ./botrun-mcp-servers/botrun-web-search/
70
- # COPY botrun-mcp-servers/multimodal-reader/package.json ./botrun-mcp-servers/multimodal-reader/
71
- # COPY botrun-mcp-servers/pdf-split/package.json ./botrun-mcp-servers/pdf-split/ # 已移至 bak/
72
- # COPY botrun-mcp-servers/pdf-to-text/package.json ./botrun-mcp-servers/pdf-to-text/ # 已移至 bak/
73
- # COPY botrun-mcp-servers/secure-rg/package.json ./botrun-mcp-servers/secure-rg/
74
- # COPY botrun-mcp-servers/secure-read/package.json ./botrun-mcp-servers/secure-read/
75
- # COPY botrun-mcp-servers/tree-view/package.json ./botrun-mcp-servers/tree-view/
76
-
77
- # Web(經常改變)
78
- COPY web/package.json ./web/
79
-
80
- # 🎯 Layer 4: 安裝所有依賴(包含完整的 .pnpm store)
81
- # 使用 pnpm cache mount 加速(與遠端快取互補)
82
- RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
83
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
84
- echo "📦 [pnpm install] Installing all dependencies..." && \
85
- echo " Strategy: Frozen lockfile + layer optimization" && \
86
- echo " Cache: Local mount + Remote registry (dual-layer)" && \
87
- echo " pnpm.overrides: Forcing version unification" && \
88
- echo " Fetch timeout: 300000ms (5 minutes)" && \
89
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
90
- pnpm install --frozen-lockfile --fetch-timeout 300000 && \
91
- echo "" && \
92
- echo "📊 [Analysis] node_modules structure:" && \
93
- du -sh node_modules .pnpm 2>/dev/null || true && \
94
- echo "✅ Dependencies installed (optimized for cache reuse)"
95
-
96
- # ============================================================================
97
- # Stage 2: Build Next.js Frontend (在同一個 stage 內使用 deps)
98
- # ============================================================================
99
- FROM deps AS frontend-builder
100
-
101
- # 🔢 Accept version build argument
102
- ARG APP_VERSION=unknown
103
- ARG NEXT_PUBLIC_DEV_MODE
104
- ARG NEXT_PUBLIC_FIREBASE_API_KEY
105
- ARG NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
106
- ARG NEXT_PUBLIC_FIREBASE_PROJECT_ID
107
- ARG NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
108
- ARG NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
109
- ARG NEXT_PUBLIC_FIREBASE_APP_ID
110
- ARG NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
111
-
112
- # Set environment variables for build
113
- ENV APP_VERSION=$APP_VERSION
114
- ENV NEXT_PUBLIC_DEV_MODE=$NEXT_PUBLIC_DEV_MODE
115
- ENV NEXT_PUBLIC_FIREBASE_API_KEY=$NEXT_PUBLIC_FIREBASE_API_KEY
116
- ENV NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=$NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
117
- ENV NEXT_PUBLIC_FIREBASE_PROJECT_ID=$NEXT_PUBLIC_FIREBASE_PROJECT_ID
118
- ENV NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=$NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
119
- ENV NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=$NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
120
- ENV NEXT_PUBLIC_FIREBASE_APP_ID=$NEXT_PUBLIC_FIREBASE_APP_ID
121
- ENV NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=$NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
122
-
123
- # 複製源碼
124
- COPY web ./web
125
-
126
- # Build Next.js
127
- WORKDIR /app/web
128
- RUN --mount=type=cache,target=/app/web/.next/cache \
129
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
130
- echo "🔍 [Frontend Build]" && \
131
- echo " APP_VERSION: ${APP_VERSION}" && \
132
- echo " Using pnpm workspace (symlinks preserved)" && \
133
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
134
- NEXT_TELEMETRY_DISABLED=1 pnpm run build && \
135
- echo "✅ Frontend build completed"
136
-
137
- # ============================================================================
138
- # Stage 3: Build Skills Dependencies (v5.1201 新增)
139
- # ============================================================================
140
- # Skills 透過 Bash 執行 Node.js 腳本,需要安裝各自的 npm 依賴
141
- # 有依賴的 Skills:
142
- # - 圖片生成技能: @google-cloud/storage, @google/genai
143
- # - 多模態閱讀技能: @anthropic-ai/vertex-sdk, glob
144
- # - 安全讀取技能: glob
145
- # - 網路搜尋技能: @anthropic-ai/vertex-sdk
146
- FROM base AS skills-deps
147
- WORKDIR /app
148
-
149
- # 複製 Skills 目錄
150
- COPY .claude/skills ./.claude/skills
151
-
152
- # 安裝各 Skill 的依賴(只安裝有 package.json 且有 dependencies 的)
153
- RUN echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
154
- echo "📦 [Skills] Installing Skills dependencies..." && \
155
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
156
- for skill_dir in .claude/skills/*/scripts; do \
157
- if [ -f "$skill_dir/package.json" ]; then \
158
- echo "📦 Installing: $skill_dir"; \
159
- cd "/app/$skill_dir" && npm install --omit=dev 2>/dev/null || true; \
160
- cd /app; \
161
- fi; \
162
- done && \
163
- echo "" && \
164
- echo "📊 [Verification] Skills with node_modules:" && \
165
- find .claude/skills -name "node_modules" -type d 2>/dev/null && \
166
- echo "" && \
167
- echo "✅ Skills dependencies installed"
168
-
169
- # ============================================================================
170
- # Stage 4: Build API (在同一個 stage 內使用 deps)
171
- # ============================================================================
172
- FROM deps AS api-builder
173
-
174
- # 複製 API 源碼
175
- COPY api ./api
176
- COPY .claude ./.claude
177
-
178
- # 🔧 修復 node_modules symlinks(COPY 會覆蓋 deps 中建立的 symlinks)
179
- RUN pnpm install --offline --frozen-lockfile
180
-
181
- # Build API (從根目錄執行,使用 pnpm workspace)
182
- RUN echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
183
- echo "📦 [API] Building API server..." && \
184
- echo " Strategy: pnpm workspace + shared node_modules" && \
185
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
186
- pnpm --filter botrun-c-api run build && \
187
- echo "📊 [Verification] Build result:" && \
188
- ls -lh api/dist/ && \
189
- echo "✅ API compiled successfully"
190
-
191
- # ============================================================================
192
- # Stage 5: Prepare Production Dependencies - 最小化策略
193
- # ============================================================================
194
- # 🎯 最小化策略(取代 pnpm deploy):
195
- # - 使用 workspace 結構但只安裝 API 的 production dependencies
196
- # - 避免安裝 Next.js, React, Capacitor 等前端/Mobile 依賴
197
- # - 目標:< 120MB(相比 pnpm deploy 的 988MB)
198
-
199
- # ============================================================================
200
- # Stage 5a: Prepare Production Dependencies - API only (使用 pnpm deploy)
201
- # ============================================================================
202
- FROM base AS prod-deps
203
- WORKDIR /app
204
-
205
- # 複製 .npmrc(包含 Capawesome Registry 認證)
206
- COPY .npmrc ./
207
-
208
- # 🔍 複製完整的 workspace 結構(pnpm deploy 需要)
209
- COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
210
- COPY api/package.json ./api/
211
-
212
- # 🚀 使用 pnpm deploy:智慧複製 API 的 production dependencies
213
- # 優勢:
214
- # 1. 正確解析所有依賴(不會遺漏 hono 等套件)
215
- # 2. 自動去重(感謝 pnpm.overrides)
216
- # 3. 只複製 API 需要的依賴(排除 web、MCP Servers)
217
- # 4. --prod: 跳過 devDependencies
218
- RUN --mount=type=cache,id=pnpm-prod,target=/pnpm/store \
219
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
220
- echo "📦 [pnpm deploy] Deploying API production dependencies..." && \
221
- echo " Filter: botrun-c-api" && \
222
- echo " Mode: --prod (no devDependencies)" && \
223
- echo " Target: /tmp/api-deploy" && \
224
- echo " Fetch timeout: 300000ms (5 minutes)" && \
225
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
226
- pnpm --filter botrun-c-api deploy --prod --config.fetch-timeout=300000 /tmp/api-deploy && \
227
- echo "" && \
228
- echo "📊 [Size] Production dependencies:" && \
229
- du -sh /tmp/api-deploy/node_modules && \
230
- echo "" && \
231
- echo "🔍 [Verification] Checking key packages:" && \
232
- echo -n " hono: " && \
233
- if [ -d "/tmp/api-deploy/node_modules/hono" ]; then echo "✅ Installed"; else echo "❌ NOT FOUND"; fi && \
234
- echo -n " @hono/node-server: " && \
235
- if [ -d "/tmp/api-deploy/node_modules/@hono" ]; then echo "✅ Installed"; else echo "❌ NOT FOUND"; fi && \
236
- echo "" && \
237
- echo "✅ API production dependencies deployed"
238
-
239
- # ============================================================================
240
- # Stage 5b: MCP Servers 專屬依賴 - DISABLED (v5.1201 已全面改用 Skills)
241
- # ============================================================================
242
- # MCP Servers 已全面轉換為 Skills(v5.1201)
243
- # Skills 位於 .claude/skills/ 目錄,透過 Bash 執行 Node.js 腳本
244
- # 以下 stage 保留供參考,但已停用
245
- #
246
- # FROM base AS mcp-deps
247
- # WORKDIR /app
248
- # COPY .npmrc ./
249
- # COPY pnpm-lock.yaml ./
250
- # COPY botrun-mcp-servers/*/package.json ./botrun-mcp-servers/
251
- # RUN printf 'packages:\n - "botrun-mcp-servers/*"\n' > pnpm-workspace.yaml
252
- # RUN pnpm install --prod
253
-
254
- # ============================================================================
255
- # Stage 6: Final Runtime Image
256
- # ============================================================================
257
- FROM node:22-alpine AS runner
258
- WORKDIR /app
259
-
260
- # 安裝系統工具
261
- RUN apk add --no-cache \
262
- dumb-init \
263
- bash \
264
- qpdf \
265
- ghostscript \
266
- poppler-utils \
267
- ripgrep \
268
- ffmpeg \
269
- unzip \
270
- git \
271
- python3 \
272
- py3-pip
273
-
274
- # 安裝 uv(Python 套件管理器,用於 Skills 執行 Python 腳本)
275
- RUN pip3 install --break-system-packages uv && \
276
- uv --version && \
277
- echo "✅ uv installed successfully"
278
-
279
- # Create non-root user
280
- RUN addgroup -g 1001 -S nodejs && \
281
- adduser -S nodejs -u 1001 && \
282
- mkdir -p /home/nodejs/.claude && \
283
- chown -R nodejs:nodejs /home/nodejs/.claude
284
-
285
- # ═══════════════════════════════════════════════════════════
286
- # 📦 Layer Caching Optimization (按變動頻率排序)
287
- # ═══════════════════════════════════════════════════════════
288
- # 策略:變動頻率越低的越早複製,最大化 Docker layer cache 利用率
289
- #
290
- # pnpm deploy 優勢:
291
- # ✅ 智慧去重:只複製實際需要的包(無重複)
292
- # ✅ 正確 symlinks:保留 pnpm 的依賴結構
293
- # ✅ 體積最小:比手動 COPY node_modules 小 30-40%
294
- # ═══════════════════════════════════════════════════════════
295
-
296
- # Layer 1: API Production node_modules(只需要 API 的依賴,pnpm deploy)
297
- # 🎯 從 pnpm deploy 結果複製(正確包含所有依賴,如 hono)
298
- # 🔥 關鍵優化:只複製 API 的 node_modules(< 120MB)
299
- # 不會有 Next.js, React, Capacitor 等前端依賴(省略 868MB)
300
- COPY --from=prod-deps --chown=nodejs:nodejs /tmp/api-deploy/node_modules ./node_modules
301
- COPY --from=prod-deps --chown=nodejs:nodejs /tmp/api-deploy/package.json ./package.json
302
-
303
- # Layer 2: Static configuration
304
- COPY --chown=nodejs:nodejs keys ./keys
305
-
306
- # Layer 2b: Skills(包含已安裝的 npm 依賴)
307
- # 從 skills-deps stage 複製(已執行 npm install)
308
- # 🎯 v5.1201 優化:使用 symlink 避免重複複製(節省 ~71MB)
309
- # - /app/.claude/skills - 實際目錄(Skills Route + SKILLS_DIR 環境變數)
310
- # - /home/nodejs/.claude/skills - symlink → /app/.claude/skills
311
- # (Claude Agent SDK settingSources: ['user'] 需要此路徑)
312
- COPY --from=skills-deps --chown=nodejs:nodejs /app/.claude/skills ./.claude/skills
313
- RUN ln -s /app/.claude/skills /home/nodejs/.claude/skills
314
-
315
- # Layer 3: MCP Servers - DISABLED (v5.1201 已全面改用 Skills)
316
- # MCP Servers 已全面轉換為 Skills(v5.1201)
317
- # Skills 位於 .claude/skills/ 目錄,透過 Bash 執行 Node.js 腳本
318
- # 以下 COPY 保留供參考,但已停用
319
- #
320
- # COPY --from=mcp-deps --chown=nodejs:nodejs /app/node_modules/.pnpm ./node_modules/.pnpm
321
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/secure-rg/dist ./botrun-mcp-servers/secure-rg/dist
322
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/secure-read/dist ./botrun-mcp-servers/secure-read/dist
323
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/tree-view/dist ./botrun-mcp-servers/tree-view/dist
324
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/audio-transcribe/dist ./botrun-mcp-servers/audio-transcribe/dist
325
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/multimodal-reader/dist ./botrun-mcp-servers/multimodal-reader/dist
326
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/botrun-web-search/dist ./botrun-mcp-servers/botrun-web-search/dist
327
- # COPY --from=mcp-builder --chown=nodejs:nodejs /app/botrun-mcp-servers/botrun-image-generator/dist ./botrun-mcp-servers/botrun-image-generator/dist
328
-
329
- # Layer 4: Runtime scripts(變動頻率:低)
330
- COPY --chown=nodejs:nodejs runtime-scripts ./runtime-scripts
331
-
332
- # Layer 5: Frontend build(變動頻率:高)
333
- COPY --from=frontend-builder --chown=nodejs:nodejs /app/web/out ./web/public
334
-
335
- # Layer 6: API compiled code(變動頻率:高)
336
- COPY --from=api-builder --chown=nodejs:nodejs /app/api/dist ./dist
337
- COPY --chown=nodejs:nodejs api/src/init-data.sh ./dist/init-data.sh
338
-
339
- # Layer 7: Version file(變動頻率:每次部署都變)
340
- # 🎯 優化:放在最後,避免視覺上看起來會影響其他 layers
341
- # 實際上不影響 COPY --from= 的 layers,但邏輯更清晰
342
- COPY --chown=nodejs:nodejs version.txt ./version.txt
343
-
344
- # Make init-data.sh executable
345
- USER root
346
- RUN chmod +x /app/dist/init-data.sh
347
- USER nodejs
348
-
349
- # Version
350
- ARG APP_VERSION=unknown
351
- ENV APP_VERSION=$APP_VERSION
352
-
353
- # Environment
354
- EXPOSE 8080
355
- ENV NODE_ENV=production
356
- ENV PORT=8080
357
- ENV NEXT_TELEMETRY_DISABLED=1
358
- # 🔧 Skills 環境變數(新方案 A 簡化版)
359
- ENV OFFICIAL_SKILLS_DIR=/app/.claude/skills
360
- ENV DATA_ROOT=/mnt/data
361
-
362
- # Use dumb-init
363
- ENTRYPOINT ["dumb-init", "--"]
364
-
365
- CMD ["sh", "-c", "/app/dist/init-data.sh && echo '🚀 [Startup] Starting production server...' && echo '📦 [Startup] Node version:' $(node --version) && echo '⏱️ [Startup] Timestamp:' $(date -u +%Y-%m-%dT%H:%M:%SZ) && echo '🔧 [Startup] Working directory:' $(pwd) && echo '🎯 [Startup] Executing: node dist/index.js' && node dist/index.js"]
@@ -1,195 +0,0 @@
1
- # ================================
2
- # Slim Dockerfile - 移除所有 MCP Server 依賴
3
- # Next.js Static Export + Hono API backend ONLY
4
- #
5
- # 🎯 目的:比較 image 大小差異
6
- # - 完全移除 8 個 MCP Servers
7
- # - 只保留 API 和 Frontend
8
- # - 不安裝任何 MCP 依賴(@modelcontextprotocol、@anthropic-ai/sdk 等)
9
- #
10
- # 📊 預期效果:
11
- # - Image size 大幅縮小(預期 < 150MB)
12
- # - 只保留核心 API 功能
13
- # - 可用於分析 MCP dependencies 的實際體積
14
- # ================================
15
-
16
- # ============================================================================
17
- # Stage 0: pnpm Setup (共用 stage)
18
- # ============================================================================
19
- FROM node:22-alpine AS base
20
- ENV PNPM_HOME="/pnpm"
21
- ENV PATH="$PNPM_HOME:$PATH"
22
- RUN corepack enable && corepack prepare pnpm@9.15.0 --activate
23
-
24
- # ============================================================================
25
- # Stage 1: Install Dependencies (排除 MCP Servers)
26
- # ============================================================================
27
- FROM base AS deps
28
- WORKDIR /app
29
-
30
- # 複製 .npmrc(包含 Capawesome Registry 認證)
31
- COPY .npmrc ./
32
-
33
- # 🔥 只複製 web 和 api 的 package.json(排除 MCP Servers)
34
- COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
35
- COPY web/package.json ./web/
36
- COPY api/package.json ./api/
37
-
38
- # 建立精簡的 pnpm-workspace.yaml(只包含 web 和 api)
39
- RUN printf 'packages:\n - "web"\n - "api"\n' > pnpm-workspace.yaml
40
-
41
- # 安裝依賴(不包含 MCP Servers)
42
- RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
43
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
44
- echo "📦 [Slim Build] Installing dependencies (web + api ONLY)..." && \
45
- echo " Strategy: Exclude all MCP Servers" && \
46
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
47
- pnpm install --frozen-lockfile && \
48
- echo "" && \
49
- echo "🔄 [pnpm dedupe] Removing duplicate packages..." && \
50
- pnpm dedupe && \
51
- echo "" && \
52
- echo "📊 [Analysis] node_modules structure:" && \
53
- du -sh node_modules .pnpm 2>/dev/null || true && \
54
- echo "✅ Dependencies installed (slim mode)"
55
-
56
- # ============================================================================
57
- # Stage 2: Build Next.js Frontend
58
- # ============================================================================
59
- FROM deps AS frontend-builder
60
-
61
- # 🔢 Accept version build argument
62
- ARG APP_VERSION=unknown
63
- ARG NEXT_PUBLIC_DEV_MODE
64
- ARG NEXT_PUBLIC_FIREBASE_API_KEY
65
- ARG NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
66
- ARG NEXT_PUBLIC_FIREBASE_PROJECT_ID
67
- ARG NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
68
- ARG NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
69
- ARG NEXT_PUBLIC_FIREBASE_APP_ID
70
- ARG NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
71
-
72
- # Set environment variables for build
73
- ENV APP_VERSION=$APP_VERSION
74
- ENV NEXT_PUBLIC_DEV_MODE=$NEXT_PUBLIC_DEV_MODE
75
- ENV NEXT_PUBLIC_FIREBASE_API_KEY=$NEXT_PUBLIC_FIREBASE_API_KEY
76
- ENV NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=$NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
77
- ENV NEXT_PUBLIC_FIREBASE_PROJECT_ID=$NEXT_PUBLIC_FIREBASE_PROJECT_ID
78
- ENV NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=$NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
79
- ENV NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=$NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
80
- ENV NEXT_PUBLIC_FIREBASE_APP_ID=$NEXT_PUBLIC_FIREBASE_APP_ID
81
- ENV NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=$NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
82
-
83
- # 複製源碼
84
- COPY web ./web
85
-
86
- # Build Next.js
87
- WORKDIR /app/web
88
- RUN --mount=type=cache,target=/app/web/.next/cache \
89
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
90
- echo "🔍 [Frontend Build]" && \
91
- echo " APP_VERSION: ${APP_VERSION}" && \
92
- echo " Mode: Slim (no MCP Servers)" && \
93
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
94
- NEXT_TELEMETRY_DISABLED=1 pnpm run build && \
95
- echo "✅ Frontend build completed"
96
-
97
- # ============================================================================
98
- # Stage 3: Build API
99
- # ============================================================================
100
- FROM deps AS api-builder
101
-
102
- # 複製 API 源碼
103
- COPY api ./api
104
- COPY .claude ./.claude
105
-
106
- # Build API
107
- WORKDIR /app/api
108
- RUN pnpm run build && \
109
- ls -lh dist/
110
-
111
- # ============================================================================
112
- # Stage 4: Prepare Production Dependencies - API only
113
- # ============================================================================
114
- FROM base AS prod-deps
115
- WORKDIR /app
116
-
117
- # 複製 .npmrc
118
- COPY .npmrc ./
119
-
120
- # 🔍 只複製 API workspace 結構
121
- COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
122
- COPY api/package.json ./api/
123
-
124
- # 🚀 使用 pnpm deploy:只複製 API 的 production dependencies
125
- RUN --mount=type=cache,id=pnpm-prod,target=/pnpm/store \
126
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
127
- echo "📦 [Slim Build] Deploying API production dependencies..." && \
128
- echo " Filter: botrun-c-api" && \
129
- echo " Mode: --prod (no devDependencies, no MCP Servers)" && \
130
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
131
- pnpm --filter botrun-c-api --prod deploy /tmp/api-deploy && \
132
- echo "" && \
133
- echo "📊 [Size] Production dependencies:" && \
134
- du -sh /tmp/api-deploy/node_modules && \
135
- echo "" && \
136
- echo "✅ API production dependencies deployed (slim mode)"
137
-
138
- # ============================================================================
139
- # Stage 5: Final Runtime Image
140
- # ============================================================================
141
- FROM node:22-alpine AS runner
142
- WORKDIR /app
143
-
144
- # 🔥 Slim 版本:只安裝最基本的系統工具(不安裝 MCP 相關工具)
145
- RUN apk add --no-cache \
146
- dumb-init \
147
- bash
148
-
149
- # Create non-root user
150
- RUN addgroup -g 1001 -S nodejs && \
151
- adduser -S nodejs -u 1001 && \
152
- mkdir -p /home/nodejs/.claude && \
153
- chown -R nodejs:nodejs /home/nodejs/.claude
154
-
155
- # Layer 1: API Production node_modules(pnpm deploy)
156
- COPY --from=prod-deps --chown=nodejs:nodejs /tmp/api-deploy/node_modules ./node_modules
157
- COPY --from=prod-deps --chown=nodejs:nodejs /tmp/api-deploy/package.json ./package.json
158
-
159
- # Layer 2: Static configuration
160
- COPY --chown=nodejs:nodejs keys ./keys
161
- COPY --chown=nodejs:nodejs .claude/skills ./.claude/skills
162
- COPY --chown=nodejs:nodejs .claude/skills /home/nodejs/.claude/skills
163
-
164
- # 🔥 Layer 3: 移除所有 MCP Servers(slim 版本不包含)
165
-
166
- # Layer 4: Runtime scripts
167
- COPY --chown=nodejs:nodejs runtime-scripts ./runtime-scripts
168
- COPY --chown=nodejs:nodejs version.txt ./version.txt
169
-
170
- # Layer 5: Frontend build
171
- COPY --from=frontend-builder --chown=nodejs:nodejs /app/web/out ./web/public
172
-
173
- # Layer 6: API compiled code
174
- COPY --from=api-builder --chown=nodejs:nodejs /app/api/dist ./dist
175
- COPY --chown=nodejs:nodejs api/src/init-data.sh ./dist/init-data.sh
176
-
177
- # Make init-data.sh executable
178
- USER root
179
- RUN chmod +x /app/dist/init-data.sh
180
- USER nodejs
181
-
182
- # Version
183
- ARG APP_VERSION=unknown
184
- ENV APP_VERSION=$APP_VERSION
185
-
186
- # Environment
187
- EXPOSE 8080
188
- ENV NODE_ENV=production
189
- ENV PORT=8080
190
- ENV NEXT_TELEMETRY_DISABLED=1
191
-
192
- # Use dumb-init
193
- ENTRYPOINT ["dumb-init", "--"]
194
-
195
- CMD ["sh", "-c", "/app/dist/init-data.sh && echo '🚀 [Startup] Starting production server (SLIM MODE - NO MCP SERVERS)...' && echo '📦 [Startup] Node version:' $(node --version) && echo '⏱️ [Startup] Timestamp:' $(date -u +%Y-%m-%dT%H:%M:%SZ) && node dist/index.js"]
package/botrun-c/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Fastlane - 自動化部署工具
4
- gem "fastlane"
5
-
6
- # 可選:加速 Fastlane 的 plugins
7
- plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
8
- eval_gemfile(plugins_path) if File.exist?(plugins_path)