botrun-horse 2.31.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} +8 -8
  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 +7 -5
  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/html-report.md +15 -0
  45. package/{bin/commands/writing.mjs → modules/writing/command.mjs} +3 -3
  46. package/{lib → modules}/writing/generate.mjs +2 -2
  47. package/modules/writing/index.mjs +38 -0
  48. package/package.json +3 -1
  49. package/parallel-dag-todo-list/imagen-module.md +51 -0
  50. package/bin/commands/schema.mjs +0 -254
  51. package/botrun-c/.claude/skills/DOCX/351/226/261/350/256/200/346/212/200/350/203/275/SKILL.md +0 -103
  52. 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
  53. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/SKILL.md +0 -1093
  54. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branch.mjs +0 -73
  55. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branches.mjs +0 -77
  56. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-checkout.mjs +0 -72
  57. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-clone.mjs +0 -72
  58. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-commit.mjs +0 -75
  59. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-branch.mjs +0 -75
  60. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-file.mjs +0 -72
  61. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-diff.mjs +0 -80
  62. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list-tree.mjs +0 -336
  63. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list.mjs +0 -199
  64. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-merge.mjs +0 -86
  65. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-move.mjs +0 -75
  66. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-create.mjs +0 -81
  67. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-list.mjs +0 -74
  68. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-merge.mjs +0 -83
  69. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-view.mjs +0 -71
  70. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-push.mjs +0 -71
  71. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-read.mjs +0 -277
  72. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-search.mjs +0 -370
  73. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-stash.mjs +0 -116
  74. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-sync.mjs +0 -71
  75. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-write.mjs +0 -74
  76. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/lib/path-validator.mjs +0 -167
  77. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/SKILL.md +0 -605
  78. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-create.mjs +0 -127
  79. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-delete.mjs +0 -77
  80. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-diff.mjs +0 -87
  81. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-history.mjs +0 -99
  82. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-list.mjs +0 -174
  83. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-read.mjs +0 -214
  84. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-restore.mjs +0 -75
  85. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-search.mjs +0 -270
  86. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-sync-back.mjs +0 -155
  87. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-update.mjs +0 -100
  88. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/SKILL.md +0 -414
  89. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/create-project.mjs +0 -91
  90. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/finalize-project.mjs +0 -162
  91. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/SKILL.md +0 -206
  92. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/package.json +0 -19
  93. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-analyze.mjs +0 -309
  94. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-compress.mjs +0 -315
  95. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-split.mjs +0 -275
  96. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-to-text.mjs +0 -336
  97. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/test-pdf-scripts.mjs +0 -491
  98. package/botrun-c/.claude/skills/docx-to-markdown/SKILL.md +0 -76
  99. package/botrun-c/.claude/skills/docx-to-markdown/scripts/convert_docx.py +0 -183
  100. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/SKILL.md +0 -133
  101. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/scripts/ocr_processor.py +0 -381
  102. package/botrun-c/.claude/skills/gemini-transcribe/SKILL.md +0 -115
  103. package/botrun-c/.claude/skills/gemini-transcribe/scripts/transcribe.py +0 -499
  104. package/botrun-c/.claude/skills/nchc-transcribe/SKILL.md +0 -131
  105. package/botrun-c/.claude/skills/nchc-transcribe/scripts/transcribe.py +0 -522
  106. package/botrun-c/.claude/skills/p320-moj-review/SKILL.md +0 -200
  107. package/botrun-c/.claude/skills/p320-moj-review/references/guideline.md +0 -118
  108. package/botrun-c/.claude/skills/pdf-multimodal-processor/SKILL.md +0 -186
  109. package/botrun-c/.claude/skills/pdf-multimodal-processor/scripts/process_pdf.py +0 -515
  110. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/SKILL.md +0 -81
  111. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/package.json +0 -13
  112. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/secure-search.mjs +0 -232
  113. 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
  114. package/botrun-c/.claude/skills//345/216/273/350/255/230/345/210/245/346/212/200/350/203/275/SKILL.md +0 -125
  115. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/SKILL.md +0 -123
  116. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/scripts/recall.mjs +0 -339
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  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/image-session-manager.mjs +0 -219
  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/output-formatter.mjs +0 -209
  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/package.json +0 -20
  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/utils.mjs +0 -115
  127. 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
  128. 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
  129. 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
  130. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/SKILL.md +0 -131
  131. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/scripts/skill-manager.mjs +0 -542
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/SKILL.md +0 -114
  145. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/remember.mjs +0 -159
  146. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test-advanced.mjs +0 -342
  147. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test.mjs +0 -430
  148. 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
  149. 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
  150. 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
  151. 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
  152. package/botrun-c/.dockerignore +0 -131
  153. package/botrun-c/.dockeroptimize +0 -13
  154. package/botrun-c/.firebase/hosting.b3V0.cache +0 -30
  155. package/botrun-c/.firebaserc +0 -5
  156. package/botrun-c/.gcloudignore +0 -56
  157. package/botrun-c/.ruby-version +0 -1
  158. package/botrun-c/CHANGELOG.md +0 -224
  159. package/botrun-c/Dockerfile.gcp +0 -365
  160. package/botrun-c/Dockerfile.slim +0 -195
  161. package/botrun-c/Gemfile +0 -8
  162. package/botrun-c/Gemfile.lock +0 -233
  163. package/botrun-c/LOCAL-DEVELOPMENT-GUIDE.md +0 -393
  164. package/botrun-c/PLAN.md +0 -131
  165. package/botrun-c/README.md +0 -129
  166. package/botrun-c/TODO-CAPACITOR-INTEGRATION.md +0 -482
  167. package/botrun-c/VERIFICATION.md +0 -121
  168. package/botrun-c/admin/RATE_LIMIT_MANAGEMENT.md +0 -312
  169. package/botrun-c/admin/README.md +0 -338
  170. package/botrun-c/admin/botrun-billing-report-1765235244038.csv +0 -22
  171. package/botrun-c/admin/botrun-billing-report-1765235323089.csv +0 -22
  172. package/botrun-c/admin/botrun-dashboard-1765235244039.html +0 -278
  173. package/botrun-c/admin/botrun-dashboard-1765235323089.html +0 -278
  174. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235244039.html +0 -161
  175. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235323090.html +0 -161
  176. package/botrun-c/admin/check-billing.ts +0 -48
  177. package/botrun-c/admin/count-all-users.ts +0 -65
  178. package/botrun-c/admin/generate-analytics-report.ts +0 -188
  179. package/botrun-c/admin/jest.config.ts +0 -43
  180. package/botrun-c/admin/lib/__tests__/formatters.test.ts +0 -264
  181. package/botrun-c/admin/lib/__tests__/mocks/firebase.mock.ts +0 -112
  182. package/botrun-c/admin/lib/__tests__/services/UserService.test.ts +0 -83
  183. package/botrun-c/admin/lib/__tests__/user-resolver.test.ts +0 -439
  184. package/botrun-c/admin/lib/analyzers/BillingAnalyticsService.ts +0 -242
  185. package/botrun-c/admin/lib/analyzers/CsvExporter.ts +0 -263
  186. package/botrun-c/admin/lib/analyzers/HtmlChartGenerator.ts +0 -530
  187. package/botrun-c/admin/lib/analyzers/SpikeAnalyzer.ts +0 -608
  188. package/botrun-c/admin/lib/analyzers/TimeSeriesAnalyzer.ts +0 -344
  189. package/botrun-c/admin/lib/cli/CLIBootstrapper.ts +0 -40
  190. package/botrun-c/admin/lib/commands/AbstractCommand.ts +0 -69
  191. package/botrun-c/admin/lib/commands/AnalyticsCommand.ts +0 -215
  192. package/botrun-c/admin/lib/commands/ListCommand.ts +0 -85
  193. package/botrun-c/admin/lib/commands/QueryCommand.ts +0 -81
  194. package/botrun-c/admin/lib/commands/SpikeCommand.ts +0 -83
  195. package/botrun-c/admin/lib/domain/User.ts +0 -38
  196. package/botrun-c/admin/lib/firebase.ts +0 -92
  197. package/botrun-c/admin/lib/firestore-safe.ts +0 -105
  198. package/botrun-c/admin/lib/formatters.ts +0 -154
  199. package/botrun-c/admin/lib/rate-limit-detailed.ts +0 -355
  200. package/botrun-c/admin/lib/rate-limit.ts +0 -286
  201. package/botrun-c/admin/lib/repositories/UserRepository.ts +0 -104
  202. package/botrun-c/admin/lib/services/UserService.ts +0 -108
  203. package/botrun-c/admin/lib/types.ts +0 -56
  204. package/botrun-c/admin/lib/user-resolver.ts +0 -275
  205. package/botrun-c/admin/manage-auth-domains.js +0 -178
  206. package/botrun-c/admin/migrate-plan-free.sh +0 -64
  207. package/botrun-c/admin/package-lock.json +0 -5656
  208. package/botrun-c/admin/package.json +0 -28
  209. package/botrun-c/admin/rate-limit.sh +0 -55
  210. package/botrun-c/admin/remove-custom-limits.ts +0 -75
  211. package/botrun-c/admin/reset-rate.sh +0 -70
  212. package/botrun-c/admin/reset-trial.sh +0 -68
  213. package/botrun-c/admin/seed-trial-data.sh +0 -38
  214. package/botrun-c/admin/trial.sh +0 -55
  215. package/botrun-c/admin/tsconfig.json +0 -20
  216. package/botrun-c/admin/users-cli.py +0 -298
  217. package/botrun-c/admin/users.sh +0 -12
  218. package/botrun-c/admin/users.ts +0 -1321
  219. package/botrun-c/api/admin-tools/check-whitelist.mjs.migration-bak +0 -74
  220. package/botrun-c/api/admin-tools/create-user.mjs +0 -92
  221. package/botrun-c/api/admin-tools/create-user.mjs.migration-bak +0 -92
  222. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py +0 -287
  223. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py.migration-bak +0 -287
  224. package/botrun-c/api/admin-tools/init-firestore.mjs +0 -75
  225. package/botrun-c/api/admin-tools/init-firestore.mjs.migration-bak +0 -101
  226. package/botrun-c/api/admin-tools/list-users.mjs +0 -43
  227. package/botrun-c/api/admin-tools/list-users.mjs.migration-bak +0 -43
  228. package/botrun-c/api/admin-tools/manage-authorized-domains.ts +0 -255
  229. package/botrun-c/api/admin-tools/manage-authorized-domains.ts.migration-bak +0 -255
  230. package/botrun-c/api/admin-tools/setup-custom-claims.ts.migration-bak +0 -155
  231. package/botrun-c/api/admin-tools/test-claims.mjs +0 -69
  232. package/botrun-c/api/admin-tools/test-claims.mjs.migration-bak +0 -69
  233. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs +0 -72
  234. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs.migration-bak +0 -72
  235. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs +0 -159
  236. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs.migration-bak +0 -159
  237. package/botrun-c/api/admin-tools/update-service-urls.mjs +0 -82
  238. package/botrun-c/api/admin-tools/update-service-urls.mjs.migration-bak +0 -82
  239. package/botrun-c/api/package-lock.json +0 -5031
  240. package/botrun-c/api/package.json +0 -63
  241. package/botrun-c/api/pnpm-lock.yaml +0 -4157
  242. package/botrun-c/api/rate-limit-export-1763620678737.csv +0 -79
  243. package/botrun-c/api/scripts/README-migrate-plan-free.md +0 -197
  244. package/botrun-c/api/scripts/check-users.ts +0 -45
  245. package/botrun-c/api/scripts/delete-firestore-docs.js +0 -43
  246. package/botrun-c/api/scripts/dump-subscriptions.ts +0 -395
  247. package/botrun-c/api/scripts/list-all-users.ts +0 -65
  248. package/botrun-c/api/scripts/migrate-plan-free-rpd-16to32.ts +0 -262
  249. package/botrun-c/api/scripts/migrate-plan-names-to-lite-max.ts +0 -269
  250. package/botrun-c/api/scripts/query-user-info.ts +0 -304
  251. package/botrun-c/api/scripts/reset-rate-limit.ts +0 -206
  252. package/botrun-c/api/scripts/reset-trial-subscription.ts +0 -166
  253. package/botrun-c/api/scripts/rollback-plan-names-from-lite-max.ts +0 -139
  254. package/botrun-c/api/scripts/seed-rate-limit-test-data.ts +0 -114
  255. package/botrun-c/api/scripts/seed-subscription-test-data.ts +0 -173
  256. package/botrun-c/api/scripts/test-rate-limit-message.ts +0 -108
  257. package/botrun-c/api/test-billing-write.ts +0 -103
  258. package/botrun-c/api/test-billing.ts +0 -81
  259. package/botrun-c/api/test-chat-upload.sh +0 -162
  260. package/botrun-c/api/test-nchc-whisper.ts +0 -87
  261. package/botrun-c/api/test-skills-loading.js +0 -77
  262. package/botrun-c/api/test-skills-symlink.js +0 -118
  263. package/botrun-c/api/test-upload-multimodal.sh +0 -167
  264. package/botrun-c/api/tsconfig.json +0 -27
  265. package/botrun-c/api/verify-form-2-1.mjs +0 -229
  266. package/botrun-c/api/vitest.config.ts +0 -9
  267. package/botrun-c/appium-capabilities.json +0 -20
  268. package/botrun-c/cors.json +0 -26
  269. package/botrun-c/delete-old.sh +0 -44
  270. package/botrun-c/design/google-drive/01-architecture.md +0 -186
  271. package/botrun-c/design/google-drive/02-api-design.md +0 -314
  272. package/botrun-c/design/google-drive/03-frontend-design.md +0 -278
  273. package/botrun-c/design/google-drive/04-skill-design.md +0 -384
  274. package/botrun-c/design/google-drive/05-test-plan.md +0 -507
  275. package/botrun-c/design/google-drive/README.md +0 -32
  276. package/botrun-c/dev/mcp-token-calculator/README.md +0 -92
  277. package/botrun-c/dev/mcp-token-calculator/RESULTS.md +0 -188
  278. package/botrun-c/dev/mcp-token-calculator/calculate-current-tokens.ts +0 -369
  279. package/botrun-c/dev/mcp-token-calculator/calculate-mcp-tokens.ts +0 -464
  280. package/botrun-c/dev/mcp-token-calculator/optimization-proposals.ts +0 -316
  281. package/botrun-c/dev/mcp-token-calculator/package-lock.json +0 -599
  282. package/botrun-c/dev/mcp-token-calculator/package.json +0 -22
  283. package/botrun-c/dev/mcp-token-calculator/test-all-schemas.ts +0 -314
  284. package/botrun-c/dev/mcp-token-calculator/test-schema-correctness.ts +0 -221
  285. package/botrun-c/dev/mcp-token-calculator/verify-optimization.ts +0 -159
  286. package/botrun-c/fastlane/ANDROID-DEPLOYMENT-SETUP.md +0 -825
  287. package/botrun-c/fastlane/IOS-DEPLOYMENT-SETUP.md +0 -431
  288. package/botrun-c/fastlane/Pluginfile +0 -5
  289. package/botrun-c/fastlane/QUICK-START.md +0 -133
  290. package/botrun-c/fastlane/README.md +0 -424
  291. package/botrun-c/fastlane/RUBY-SETUP.md +0 -449
  292. package/botrun-c/fastlane/android/Appfile +0 -11
  293. package/botrun-c/fastlane/android/Fastfile +0 -240
  294. package/botrun-c/firebase.json +0 -46
  295. package/botrun-c/firestore-init-data.json +0 -40
  296. package/botrun-c/firestore.indexes.json +0 -55
  297. package/botrun-c/firestore.rules +0 -53
  298. package/botrun-c/fix-codex-permissions.sh +0 -56
  299. package/botrun-c/gcs-lifecycle-30day-retention.json +0 -12
  300. package/botrun-c/html-architecture/architecture/deployment.html +0 -664
  301. package/botrun-c/html-architecture/architecture/index.html +0 -309
  302. package/botrun-c/html-architecture/architecture/styles.css +0 -500
  303. package/botrun-c/html-architecture/architecture/system-components.html +0 -538
  304. package/botrun-c/html-architecture/architecture/user-flow.html +0 -370
  305. package/botrun-c/mobile-android/FIREBASE-AUTH-SETUP.md +0 -302
  306. package/botrun-c/mobile-android/WSL-ANDROID-SETUP.md +0 -252
  307. package/botrun-c/mobile-android/android/app/build.gradle +0 -75
  308. package/botrun-c/mobile-android/android/app/capacitor.build.gradle +0 -31
  309. package/botrun-c/mobile-android/android/app/proguard-rules.pro +0 -21
  310. package/botrun-c/mobile-android/android/build.gradle +0 -29
  311. package/botrun-c/mobile-android/android/capacitor.settings.gradle +0 -42
  312. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  313. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  314. package/botrun-c/mobile-android/android/gradle.properties +0 -22
  315. package/botrun-c/mobile-android/android/gradlew +0 -252
  316. package/botrun-c/mobile-android/android/gradlew.bat +0 -94
  317. package/botrun-c/mobile-android/android/settings.gradle +0 -5
  318. package/botrun-c/mobile-android/android/variables.gradle +0 -16
  319. package/botrun-c/mobile-android/capacitor.config.ts +0 -44
  320. package/botrun-c/mobile-android/fastlane/Appfile +0 -11
  321. package/botrun-c/mobile-android/fastlane/Fastfile +0 -202
  322. package/botrun-c/mobile-android/fastlane/README.md +0 -96
  323. package/botrun-c/mobile-android/google-services.json.template +0 -39
  324. package/botrun-c/mobile-android/package.json +0 -32
  325. package/botrun-c/mobile-android/resources/icon.png +0 -0
  326. package/botrun-c/mobile-android/tsconfig.json +0 -15
  327. package/botrun-c/mobile-ios/.ruby-version +0 -1
  328. package/botrun-c/mobile-ios/BUILD-LOG.md +0 -82
  329. package/botrun-c/mobile-ios/Gemfile +0 -4
  330. package/botrun-c/mobile-ios/Gemfile.lock +0 -299
  331. package/botrun-c/mobile-ios/GoogleService-Info.plist.template +0 -34
  332. package/botrun-c/mobile-ios/IOS-PERMISSIONS.md +0 -80
  333. package/botrun-c/mobile-ios/QUICK-START.md +0 -189
  334. package/botrun-c/mobile-ios/README.md +0 -231
  335. package/botrun-c/mobile-ios/capacitor.config.ts +0 -46
  336. package/botrun-c/mobile-ios/fastlane/Fastfile +0 -326
  337. package/botrun-c/mobile-ios/fastlane/README.md +0 -88
  338. package/botrun-c/mobile-ios/ios/App/App/App.entitlements +0 -10
  339. package/botrun-c/mobile-ios/ios/App/App/AppDelegate.swift +0 -49
  340. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png +0 -0
  341. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  342. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Contents.json +0 -6
  343. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +0 -56
  344. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany-dark.png +0 -0
  345. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany.png +0 -0
  346. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany-dark.png +0 -0
  347. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany.png +0 -0
  348. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany-dark.png +0 -0
  349. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany.png +0 -0
  350. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  351. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  352. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  353. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/LaunchScreen.storyboard +0 -32
  354. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/Main.storyboard +0 -19
  355. package/botrun-c/mobile-ios/ios/App/App/Info.plist +0 -72
  356. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/project.pbxproj +0 -446
  357. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme +0 -78
  358. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/contents.xcworkspacedata +0 -10
  359. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  360. package/botrun-c/mobile-ios/ios/App/Podfile +0 -52
  361. package/botrun-c/mobile-ios/ios/App/Podfile.lock +0 -205
  362. package/botrun-c/mobile-ios/ios/App/add_plist.rb +0 -30
  363. package/botrun-c/mobile-ios/ios/App/fix_plist_path.rb +0 -22
  364. package/botrun-c/mobile-ios/package.json +0 -29
  365. package/botrun-c/mobile-ios/resources/icon.png +0 -0
  366. package/botrun-c/mobile-ios/run-simulator.sh +0 -34
  367. package/botrun-c/mobile-ios/screenshot-after-clean-rebuild.png +0 -0
  368. package/botrun-c/mobile-ios/screenshot-final-version.png +0 -0
  369. package/botrun-c/mobile-ios/screenshot-simulator.png +0 -0
  370. package/botrun-c/mobile-ios/screenshot-version-1009.png +0 -0
  371. package/botrun-c/mobile-ios/screenshot-with-version.png +0 -0
  372. package/botrun-c/mobile-ios/screenshot-working.png +0 -0
  373. package/botrun-c/mobile-ios/setup-ios.sh +0 -106
  374. package/botrun-c/mobile-ios/tsconfig.json +0 -16
  375. package/botrun-c/org-policy-allow-all-users.yaml +0 -3
  376. package/botrun-c/package.json +0 -68
  377. package/botrun-c/pnpm-lock.yaml +0 -10198
  378. package/botrun-c/pnpm-workspace.yaml +0 -6
  379. package/botrun-c/prompts/BOTRUN-1.md +0 -13
  380. package/botrun-c/prompts/BOTRUN-2.md +0 -70
  381. package/botrun-c/prompts/BOTRUN-3.md +0 -139
  382. package/botrun-c/prototypes/firestore-gax-debug/package-lock.json +0 -1204
  383. package/botrun-c/prototypes/firestore-gax-debug/package.json +0 -12
  384. package/botrun-c/prototypes/firestore-gax-debug/pnpm-workspace.yaml +0 -2
  385. package/botrun-c/prototypes/firestore-gax-debug/test.js +0 -98
  386. package/botrun-c/prototypes/taiwan-haiku/README.md +0 -93
  387. package/botrun-c/prototypes/taiwan-haiku/index.ts +0 -139
  388. package/botrun-c/prototypes/taiwan-haiku/package.json +0 -23
  389. package/botrun-c/prototypes/taiwan-haiku/pnpm-lock.yaml +0 -730
  390. package/botrun-c/prototypes/taiwan-haiku/test-vertex-direct.ts +0 -83
  391. package/botrun-c/prototypes/taiwan-haiku/tsconfig.json +0 -18
  392. package/botrun-c/prototypes/web-search/FINDINGS-STAGE-1.md +0 -48
  393. package/botrun-c/prototypes/web-search/README.md +0 -46
  394. package/botrun-c/prototypes/web-search/VERIFICATION-REPORT.md +0 -310
  395. package/botrun-c/prototypes/web-search/package-lock.json +0 -595
  396. package/botrun-c/prototypes/web-search/package.json +0 -18
  397. package/botrun-c/prototypes/web-search/stage-1.1-basic-connection.js +0 -123
  398. package/botrun-c/prototypes/web-search/stage-1.2-with-websearch.js +0 -154
  399. package/botrun-c/prototypes/web-search/stage-1.3-search-query.js +0 -192
  400. package/botrun-c/prototypes/web-search/stage-2-agent-sdk-websearch.js +0 -265
  401. package/botrun-c/runtime-scripts/env-detect.sh +0 -64
  402. package/botrun-c/scripts/github-collaborator-manager.sh +0 -297
  403. package/botrun-c/scripts/github-collaborator-manager.ts +0 -325
  404. package/botrun-c/scripts/manage-collaborators.sh +0 -91
  405. package/botrun-c/scripts/setup-secrets.sh +0 -202
  406. package/botrun-c/scripts/stress-test-17-users.sh +0 -113
  407. package/botrun-c/scripts/stress-test-api.sh +0 -119
  408. package/botrun-c/scripts/stress-test-full-report.sh +0 -385
  409. package/botrun-c/specs/infra-vm/design.md +0 -0
  410. package/botrun-c/specs/share-skill/design.md +0 -1146
  411. package/botrun-c/specs/share-skill/tasks.md +0 -444
  412. package/botrun-c/stress-test-results/20260121-162630/config.json +0 -7
  413. package/botrun-c/stress-test-results/20260121-162630/user-1-status.txt +0 -1
  414. package/botrun-c/stress-test-results/20260121-162630/user-1-timing.txt +0 -1
  415. package/botrun-c/stress-test-results/20260121-162630/user-1.json +0 -2
  416. package/botrun-c/stress-test-results/20260121-162646/config.json +0 -7
  417. package/botrun-c/stress-test-results/20260121-162646/user-1-status.txt +0 -1
  418. package/botrun-c/stress-test-results/20260121-162646/user-1-timing.txt +0 -1
  419. package/botrun-c/stress-test-results/20260121-162646/user-1.json +0 -2
  420. package/botrun-c/stress-test-results/20260121-162646/user-10-status.txt +0 -1
  421. package/botrun-c/stress-test-results/20260121-162646/user-10-timing.txt +0 -1
  422. package/botrun-c/stress-test-results/20260121-162646/user-10.json +0 -2
  423. package/botrun-c/stress-test-results/20260121-162646/user-11-status.txt +0 -1
  424. package/botrun-c/stress-test-results/20260121-162646/user-11-timing.txt +0 -1
  425. package/botrun-c/stress-test-results/20260121-162646/user-11.json +0 -2
  426. package/botrun-c/stress-test-results/20260121-162646/user-12-status.txt +0 -1
  427. package/botrun-c/stress-test-results/20260121-162646/user-12-timing.txt +0 -1
  428. package/botrun-c/stress-test-results/20260121-162646/user-12.json +0 -2
  429. package/botrun-c/stress-test-results/20260121-162646/user-13-status.txt +0 -1
  430. package/botrun-c/stress-test-results/20260121-162646/user-13-timing.txt +0 -1
  431. package/botrun-c/stress-test-results/20260121-162646/user-13.json +0 -2
  432. package/botrun-c/stress-test-results/20260121-162646/user-14-status.txt +0 -1
  433. package/botrun-c/stress-test-results/20260121-162646/user-14-timing.txt +0 -1
  434. package/botrun-c/stress-test-results/20260121-162646/user-14.json +0 -2
  435. package/botrun-c/stress-test-results/20260121-162646/user-15-status.txt +0 -1
  436. package/botrun-c/stress-test-results/20260121-162646/user-15-timing.txt +0 -1
  437. package/botrun-c/stress-test-results/20260121-162646/user-15.json +0 -2
  438. package/botrun-c/stress-test-results/20260121-162646/user-16-status.txt +0 -1
  439. package/botrun-c/stress-test-results/20260121-162646/user-16-timing.txt +0 -1
  440. package/botrun-c/stress-test-results/20260121-162646/user-16.json +0 -2
  441. package/botrun-c/stress-test-results/20260121-162646/user-17-status.txt +0 -1
  442. package/botrun-c/stress-test-results/20260121-162646/user-17-timing.txt +0 -1
  443. package/botrun-c/stress-test-results/20260121-162646/user-17.json +0 -2
  444. package/botrun-c/stress-test-results/20260121-162646/user-2-status.txt +0 -1
  445. package/botrun-c/stress-test-results/20260121-162646/user-2-timing.txt +0 -1
  446. package/botrun-c/stress-test-results/20260121-162646/user-2.json +0 -2
  447. package/botrun-c/stress-test-results/20260121-162646/user-3-status.txt +0 -1
  448. package/botrun-c/stress-test-results/20260121-162646/user-3-timing.txt +0 -1
  449. package/botrun-c/stress-test-results/20260121-162646/user-3.json +0 -2
  450. package/botrun-c/stress-test-results/20260121-162646/user-4-status.txt +0 -1
  451. package/botrun-c/stress-test-results/20260121-162646/user-4-timing.txt +0 -1
  452. package/botrun-c/stress-test-results/20260121-162646/user-4.json +0 -2
  453. package/botrun-c/stress-test-results/20260121-162646/user-5-status.txt +0 -1
  454. package/botrun-c/stress-test-results/20260121-162646/user-5-timing.txt +0 -1
  455. package/botrun-c/stress-test-results/20260121-162646/user-5.json +0 -2
  456. package/botrun-c/stress-test-results/20260121-162646/user-6-status.txt +0 -1
  457. package/botrun-c/stress-test-results/20260121-162646/user-6-timing.txt +0 -1
  458. package/botrun-c/stress-test-results/20260121-162646/user-6.json +0 -2
  459. package/botrun-c/stress-test-results/20260121-162646/user-7-status.txt +0 -1
  460. package/botrun-c/stress-test-results/20260121-162646/user-7-timing.txt +0 -1
  461. package/botrun-c/stress-test-results/20260121-162646/user-7.json +0 -2
  462. package/botrun-c/stress-test-results/20260121-162646/user-8-status.txt +0 -1
  463. package/botrun-c/stress-test-results/20260121-162646/user-8-timing.txt +0 -1
  464. package/botrun-c/stress-test-results/20260121-162646/user-8.json +0 -2
  465. package/botrun-c/stress-test-results/20260121-162646/user-9-status.txt +0 -1
  466. package/botrun-c/stress-test-results/20260121-162646/user-9-timing.txt +0 -1
  467. package/botrun-c/stress-test-results/20260121-162646/user-9.json +0 -2
  468. package/botrun-c/stress-test-results/20260121-163148/REPORT.html +0 -344
  469. package/botrun-c/stress-test-results/20260121-163148/REPORT.md +0 -93
  470. package/botrun-c/stress-test-results/20260121-163148/REPORT.pdf +0 -0
  471. package/botrun-c/stress-test-results/20260121-163148/config.json +0 -7
  472. package/botrun-c/stress-test-results/20260121-163148/summary.json +0 -26
  473. package/botrun-c/stress-test-results/20260121-163148/user-1-status.txt +0 -1
  474. package/botrun-c/stress-test-results/20260121-163148/user-1-timing.txt +0 -1
  475. package/botrun-c/stress-test-results/20260121-163148/user-1.json +0 -206
  476. package/botrun-c/stress-test-results/20260121-163148/user-10-status.txt +0 -1
  477. package/botrun-c/stress-test-results/20260121-163148/user-10-timing.txt +0 -1
  478. package/botrun-c/stress-test-results/20260121-163148/user-10.json +0 -110
  479. package/botrun-c/stress-test-results/20260121-163148/user-11-status.txt +0 -1
  480. package/botrun-c/stress-test-results/20260121-163148/user-11-timing.txt +0 -1
  481. package/botrun-c/stress-test-results/20260121-163148/user-11.json +0 -104
  482. package/botrun-c/stress-test-results/20260121-163148/user-12-status.txt +0 -1
  483. package/botrun-c/stress-test-results/20260121-163148/user-12-timing.txt +0 -1
  484. package/botrun-c/stress-test-results/20260121-163148/user-12.json +0 -98
  485. package/botrun-c/stress-test-results/20260121-163148/user-13-status.txt +0 -1
  486. package/botrun-c/stress-test-results/20260121-163148/user-13-timing.txt +0 -1
  487. package/botrun-c/stress-test-results/20260121-163148/user-13.json +0 -68
  488. package/botrun-c/stress-test-results/20260121-163148/user-14-status.txt +0 -1
  489. package/botrun-c/stress-test-results/20260121-163148/user-14-timing.txt +0 -1
  490. package/botrun-c/stress-test-results/20260121-163148/user-14.json +0 -116
  491. package/botrun-c/stress-test-results/20260121-163148/user-15-status.txt +0 -1
  492. package/botrun-c/stress-test-results/20260121-163148/user-15-timing.txt +0 -1
  493. package/botrun-c/stress-test-results/20260121-163148/user-15.json +0 -131
  494. package/botrun-c/stress-test-results/20260121-163148/user-16-status.txt +0 -1
  495. package/botrun-c/stress-test-results/20260121-163148/user-16-timing.txt +0 -1
  496. package/botrun-c/stress-test-results/20260121-163148/user-16.json +0 -110
  497. package/botrun-c/stress-test-results/20260121-163148/user-17-status.txt +0 -1
  498. package/botrun-c/stress-test-results/20260121-163148/user-17-timing.txt +0 -1
  499. package/botrun-c/stress-test-results/20260121-163148/user-17.json +0 -116
  500. package/botrun-c/stress-test-results/20260121-163148/user-2-status.txt +0 -1
  501. package/botrun-c/stress-test-results/20260121-163148/user-2-timing.txt +0 -1
  502. package/botrun-c/stress-test-results/20260121-163148/user-2.json +0 -98
  503. package/botrun-c/stress-test-results/20260121-163148/user-3-status.txt +0 -1
  504. package/botrun-c/stress-test-results/20260121-163148/user-3-timing.txt +0 -1
  505. package/botrun-c/stress-test-results/20260121-163148/user-3.json +0 -62
  506. package/botrun-c/stress-test-results/20260121-163148/user-4-status.txt +0 -1
  507. package/botrun-c/stress-test-results/20260121-163148/user-4-timing.txt +0 -1
  508. package/botrun-c/stress-test-results/20260121-163148/user-4.json +0 -113
  509. package/botrun-c/stress-test-results/20260121-163148/user-5-status.txt +0 -1
  510. package/botrun-c/stress-test-results/20260121-163148/user-5-timing.txt +0 -1
  511. package/botrun-c/stress-test-results/20260121-163148/user-5.json +0 -83
  512. package/botrun-c/stress-test-results/20260121-163148/user-6-status.txt +0 -1
  513. package/botrun-c/stress-test-results/20260121-163148/user-6-timing.txt +0 -1
  514. package/botrun-c/stress-test-results/20260121-163148/user-6.json +0 -125
  515. package/botrun-c/stress-test-results/20260121-163148/user-7-status.txt +0 -1
  516. package/botrun-c/stress-test-results/20260121-163148/user-7-timing.txt +0 -1
  517. package/botrun-c/stress-test-results/20260121-163148/user-7.json +0 -62
  518. package/botrun-c/stress-test-results/20260121-163148/user-8-status.txt +0 -1
  519. package/botrun-c/stress-test-results/20260121-163148/user-8-timing.txt +0 -1
  520. package/botrun-c/stress-test-results/20260121-163148/user-8.json +0 -41
  521. package/botrun-c/stress-test-results/20260121-163148/user-9-status.txt +0 -1
  522. package/botrun-c/stress-test-results/20260121-163148/user-9-timing.txt +0 -1
  523. package/botrun-c/stress-test-results/20260121-163148/user-9.json +0 -53
  524. package/botrun-c/test-merge.md +0 -1
  525. package/botrun-c/version.txt +0 -1
  526. package/botrun-c/web/.version +0 -1
  527. package/botrun-c/web/ALLOW-PUBLIC-ACCESS.md +0 -57
  528. package/botrun-c/web/FINAL-SETUP-STEPS.md +0 -71
  529. package/botrun-c/web/FIREBASE-MANUAL-STEPS.md +0 -41
  530. package/botrun-c/web/QUICK-SETUP-HELPER.md +0 -79
  531. package/botrun-c/web/README.md +0 -162
  532. package/botrun-c/web/__tests__/image-extractor.test.ts +0 -147
  533. package/botrun-c/web/__tests__/useGitHub.test.ts +0 -245
  534. package/botrun-c/web/app/favicon.ico +0 -0
  535. package/botrun-c/web/app/globals.css +0 -215
  536. package/botrun-c/web/app/image-preview/page.tsx +0 -213
  537. package/botrun-c/web/app/layout.tsx +0 -46
  538. package/botrun-c/web/app/page.tsx +0 -45
  539. package/botrun-c/web/components/CapacitorProvider.tsx +0 -43
  540. package/botrun-c/web/components/ChatPage.tsx +0 -1736
  541. package/botrun-c/web/components/ConversationList.tsx +0 -237
  542. package/botrun-c/web/components/ConversationListItem.tsx +0 -121
  543. package/botrun-c/web/components/LoginPage.tsx +0 -212
  544. package/botrun-c/web/components/Providers.tsx +0 -12
  545. package/botrun-c/web/components/StatusBarProvider.tsx +0 -16
  546. package/botrun-c/web/components/attachment-preview.tsx +0 -193
  547. package/botrun-c/web/components/botrun-incubator/BotrunIncubator.tsx +0 -266
  548. package/botrun-c/web/components/botrun-incubator/index.ts +0 -1
  549. package/botrun-c/web/components/chat-input.tsx +0 -1251
  550. package/botrun-c/web/components/chat-message.tsx +0 -598
  551. package/botrun-c/web/components/drop-zone.tsx +0 -143
  552. package/botrun-c/web/components/gdrive/gdrive-add-dialog.tsx +0 -254
  553. package/botrun-c/web/components/gdrive/gdrive-drawer.tsx +0 -236
  554. package/botrun-c/web/components/gdrive/gdrive-selector.tsx +0 -226
  555. package/botrun-c/web/components/gdrive/index.ts +0 -7
  556. package/botrun-c/web/components/generated-image-card.tsx +0 -363
  557. package/botrun-c/web/components/github/GitHubConnect.tsx +0 -366
  558. package/botrun-c/web/components/github/index.ts +0 -2
  559. package/botrun-c/web/components/import-skill-dialog.tsx +0 -208
  560. package/botrun-c/web/components/scroll-to-bottom-button.tsx +0 -90
  561. package/botrun-c/web/components/share-skill-dialog.tsx +0 -175
  562. package/botrun-c/web/components/skills-editor.tsx +0 -443
  563. package/botrun-c/web/components/skills-manager-drawer.tsx +0 -586
  564. package/botrun-c/web/components/smart-button-group.tsx +0 -132
  565. package/botrun-c/web/config/smart-buttons.ts +0 -295
  566. package/botrun-c/web/config/welcome-messages.ts +0 -29
  567. package/botrun-c/web/contexts/AuthContext.tsx +0 -220
  568. package/botrun-c/web/hooks/use-toast.ts +0 -187
  569. package/botrun-c/web/hooks/useAppStoreUpdate.ts +0 -356
  570. package/botrun-c/web/hooks/useAppVersion.ts +0 -113
  571. package/botrun-c/web/hooks/useAttachments.ts +0 -269
  572. package/botrun-c/web/hooks/useAuthToken.ts +0 -59
  573. package/botrun-c/web/hooks/useAutoWelcome.ts +0 -89
  574. package/botrun-c/web/hooks/useCapacitorPlatform.ts +0 -113
  575. package/botrun-c/web/hooks/useCapawesomeLiveUpdate.ts +0 -149
  576. package/botrun-c/web/hooks/useClaudeModel.ts +0 -118
  577. package/botrun-c/web/hooks/useConversation.ts +0 -115
  578. package/botrun-c/web/hooks/useConversations.ts +0 -235
  579. package/botrun-c/web/hooks/useGdriveFolders.ts +0 -199
  580. package/botrun-c/web/hooks/useGdriveSync.ts +0 -107
  581. package/botrun-c/web/hooks/useGitHub.ts +0 -409
  582. package/botrun-c/web/hooks/useScrollToBottom.ts +0 -150
  583. package/botrun-c/web/hooks/useStatusBar.ts +0 -42
  584. package/botrun-c/web/hooks/useUserPlan.ts +0 -153
  585. package/botrun-c/web/lib/api-config.ts +0 -162
  586. package/botrun-c/web/lib/api-url.ts +0 -62
  587. package/botrun-c/web/lib/api.ts +0 -105
  588. package/botrun-c/web/lib/attachment-utils.ts +0 -168
  589. package/botrun-c/web/lib/build-version.ts +0 -11
  590. package/botrun-c/web/lib/clipboard-utils.ts +0 -199
  591. package/botrun-c/web/lib/constants.ts +0 -62
  592. package/botrun-c/web/lib/conversation-storage.ts +0 -324
  593. package/botrun-c/web/lib/firebase-capacitor.ts +0 -135
  594. package/botrun-c/web/lib/firebase.ts +0 -137
  595. package/botrun-c/web/lib/firestore-auth.ts +0 -61
  596. package/botrun-c/web/lib/firestore-auth.ts.migration-bak +0 -319
  597. package/botrun-c/web/lib/image-extractor.ts +0 -156
  598. package/botrun-c/web/lib/path-utils.ts +0 -48
  599. package/botrun-c/web/lib/rehype-del-to-mark.ts +0 -19
  600. package/botrun-c/web/lib/upload-service.ts +0 -326
  601. package/botrun-c/web/lib/utils.ts +0 -6
  602. package/botrun-c/web/next.config.js +0 -49
  603. package/botrun-c/web/package-lock.json +0 -6711
  604. package/botrun-c/web/package.json +0 -63
  605. package/botrun-c/web/postcss.config.js +0 -6
  606. package/botrun-c/web/public/apple_icon.png +0 -0
  607. package/botrun-c/web/public/google_icon.png +0 -0
  608. package/botrun-c/web/public/logo-48-small.png +0 -0
  609. package/botrun-c/web/public/logo-48.png +0 -0
  610. package/botrun-c/web/scripts/generate-version.js +0 -36
  611. package/botrun-c/web/scripts/update-build-version.js +0 -41
  612. package/botrun-c/web/tailwind.config.ts +0 -80
  613. package/botrun-c/web/test-welcome-message.mjs +0 -115
  614. package/botrun-c/web/tsconfig.json +0 -42
  615. package/botrun-c/web/types/agent.ts +0 -6
  616. package/botrun-c/web/types/attachment.ts +0 -39
  617. package/botrun-c/web/types/conversation.ts +0 -68
  618. package/botrun-c/web/types/flutter.d.ts +0 -6
  619. package/botrun-c/web/types/project.ts +0 -41
  620. package/botrun-c/web/types/skills.ts +0 -13
  621. 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
  622. package/lib/writing/index.mjs +0 -5
  623. /package/{lib/core → modules/_core}/adapters/base.mjs +0 -0
  624. /package/{lib/core → modules/_core}/adapters/claude.mjs +0 -0
  625. /package/{lib/core → modules/_core}/adapters/gemini-api.mjs +0 -0
  626. /package/{lib/core → modules/_core}/adapters/gemini-shared.mjs +0 -0
  627. /package/{lib/core → modules/_core}/adapters/gemini-vertex.mjs +0 -0
  628. /package/{lib/core → modules/_core}/adapters/local.mjs +0 -0
  629. /package/{lib/core → modules/_core}/adapters/nchc.mjs +0 -0
  630. /package/{lib/core → modules/_core}/adapters/openai-shared.mjs +0 -0
  631. /package/{lib/core → modules/_core}/adapters/openrouter.mjs +0 -0
  632. /package/{lib/core → modules/_core}/ai-cache.mjs +0 -0
  633. /package/{lib/core → modules/_core}/ai-router.mjs +0 -0
  634. /package/{lib/core → modules/_core}/cli-utils.mjs +0 -0
  635. /package/{lib/core → modules/_core}/dag.mjs +0 -0
  636. /package/{lib/core → modules/_core}/db.mjs +0 -0
  637. /package/{lib/core → modules/_core}/env.mjs +0 -0
  638. /package/{lib/flows → modules/_core}/hatch-portal.mjs +0 -0
  639. /package/{lib/core → modules/_core}/llm.mjs +0 -0
  640. /package/{lib/flows → modules/_core}/opencode-agent.mjs +0 -0
  641. /package/{lib/core → modules/_core}/paths.mjs +0 -0
  642. /package/{lib/core → modules/_core}/proxy.mjs +0 -0
  643. /package/{lib/flows → modules/_core}/review-doc.mjs +0 -0
  644. /package/{lib → modules/_core}/tools/fs-tools.mjs +0 -0
  645. /package/{lib → modules/_core}/tools/index.mjs +0 -0
  646. /package/{lib/core → modules/_core}/watermelon.mjs +0 -0
  647. /package/{lib/ocr/index.mjs → modules/ocr/ocr-lib.mjs} +0 -0
  648. /package/{lib → modules}/portal/hatch.mjs +0 -0
  649. /package/{lib/portal/index.mjs → modules/portal/portal-lib.mjs} +0 -0
  650. /package/{lib → modules}/search/crawler.mjs +0 -0
  651. /package/{lib/prompt → modules/skill}/prompts/zero-framework/coding.md +0 -0
  652. /package/{lib/prompt → modules/skill}/prompts/zero-framework/fullstack.md +0 -0
  653. /package/{lib/prompt → modules/skill}/prompts/zero-framework/gemini-search-cli.md +0 -0
  654. /package/{lib/prompt → modules/skill}/prompts/zero-framework/search.md +0 -0
  655. /package/{lib/prompt → modules/skill}/prompts/zero-framework/segment.md +0 -0
  656. /package/{lib/prompt → modules/skill}/prompts/zero-framework/slice.md +0 -0
  657. /package/{lib/prompt → modules/skill}/prompts/zero-framework/smart-cache.md +0 -0
  658. /package/{lib/prompt → modules/skill}/prompts/zero-framework/trigram-search.md +0 -0
  659. /package/{lib/prompt → modules/skill}/prompts/zero-framework/tts-format.md +0 -0
  660. /package/{lib/prompt → modules/skill}/prompts/zero-framework/watermelon-sqlite.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)