botrun-horse 2.29.2 → 2.30.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 (574) hide show
  1. package/botrun-c/.claude/skills/DOCX/351/226/261/350/256/200/346/212/200/350/203/275/SKILL.md +103 -0
  2. package/botrun-c/.claude/skills/DOCX/351/226/261/350/256/200/346/212/200/350/203/275/scripts/docx-to-markdown.mjs +206 -0
  3. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/SKILL.md +1093 -0
  4. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branch.mjs +73 -0
  5. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-branches.mjs +77 -0
  6. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-checkout.mjs +72 -0
  7. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-clone.mjs +72 -0
  8. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-commit.mjs +75 -0
  9. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-branch.mjs +75 -0
  10. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-delete-file.mjs +72 -0
  11. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-diff.mjs +80 -0
  12. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list-tree.mjs +336 -0
  13. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-list.mjs +199 -0
  14. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-merge.mjs +86 -0
  15. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-move.mjs +75 -0
  16. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-create.mjs +81 -0
  17. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-list.mjs +74 -0
  18. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-merge.mjs +83 -0
  19. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-pr-view.mjs +71 -0
  20. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-push.mjs +71 -0
  21. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-read.mjs +277 -0
  22. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-search.mjs +370 -0
  23. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-stash.mjs +116 -0
  24. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-sync.mjs +71 -0
  25. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/github-write.mjs +74 -0
  26. package/botrun-c/.claude/skills/GitHub/346/212/200/350/203/275/scripts/lib/path-validator.mjs +167 -0
  27. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/SKILL.md +605 -0
  28. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-create.mjs +127 -0
  29. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-delete.mjs +77 -0
  30. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-diff.mjs +87 -0
  31. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-history.mjs +99 -0
  32. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-list.mjs +174 -0
  33. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-read.mjs +214 -0
  34. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-restore.mjs +75 -0
  35. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-search.mjs +270 -0
  36. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-sync-back.mjs +155 -0
  37. package/botrun-c/.claude/skills/GoogleDrive/346/212/200/350/203/275/scripts/gdrive-update.mjs +100 -0
  38. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/SKILL.md +414 -0
  39. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/create-project.mjs +91 -0
  40. package/botrun-c/.claude/skills/HTML/347/224/237/346/210/220/346/212/200/350/203/275/scripts/finalize-project.mjs +162 -0
  41. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/SKILL.md +206 -0
  42. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/package.json +19 -0
  43. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-analyze.mjs +309 -0
  44. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-compress.mjs +315 -0
  45. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-split.mjs +275 -0
  46. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/pdf-to-text.mjs +336 -0
  47. package/botrun-c/.claude/skills/PDF/346/212/200/350/203/275/scripts/test-pdf-scripts.mjs +491 -0
  48. package/botrun-c/.claude/skills/docx-to-markdown/SKILL.md +76 -0
  49. package/botrun-c/.claude/skills/docx-to-markdown/scripts/convert_docx.py +183 -0
  50. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/SKILL.md +133 -0
  51. package/botrun-c/.claude/skills/gcp-coord-ml-ocr/scripts/ocr_processor.py +381 -0
  52. package/botrun-c/.claude/skills/gemini-transcribe/SKILL.md +115 -0
  53. package/botrun-c/.claude/skills/gemini-transcribe/scripts/transcribe.py +499 -0
  54. package/botrun-c/.claude/skills/nchc-transcribe/SKILL.md +131 -0
  55. package/botrun-c/.claude/skills/nchc-transcribe/scripts/transcribe.py +522 -0
  56. package/botrun-c/.claude/skills/p320-moj-review/SKILL.md +200 -0
  57. package/botrun-c/.claude/skills/p320-moj-review/references/guideline.md +118 -0
  58. package/botrun-c/.claude/skills/pdf-multimodal-processor/SKILL.md +186 -0
  59. package/botrun-c/.claude/skills/pdf-multimodal-processor/scripts/process_pdf.py +515 -0
  60. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/SKILL.md +81 -0
  61. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/package.json +13 -0
  62. package/botrun-c/.claude/skills/ripgrep/346/220/234/345/260/213/346/212/200/350/203/275/scripts/secure-search.mjs +232 -0
  63. 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 +518 -0
  64. package/botrun-c/.claude/skills//345/216/273/350/255/230/345/210/245/346/212/200/350/203/275/SKILL.md +125 -0
  65. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/SKILL.md +123 -0
  66. package/botrun-c/.claude/skills//345/233/236/346/206/266/346/212/200/350/203/275/scripts/recall.mjs +339 -0
  67. 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 +156 -0
  68. 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 +139 -0
  69. 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 +40 -0
  70. 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 +195 -0
  71. 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 +307 -0
  72. 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 +103 -0
  73. 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 +219 -0
  74. 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 +209 -0
  75. 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 +20 -0
  76. 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 +115 -0
  77. 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 +86 -0
  78. 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 +304 -0
  79. 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 +17 -0
  80. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/SKILL.md +131 -0
  81. package/botrun-c/.claude/skills//345/255/265/345/214/226/346/212/200/350/203/275/scripts/skill-manager.mjs +542 -0
  82. 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 +127 -0
  83. 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 +53 -0
  84. 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 +13 -0
  85. 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 +149 -0
  86. 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 +82 -0
  87. 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 +16 -0
  88. 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 +260 -0
  89. 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 +156 -0
  90. 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 +16 -0
  91. 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 +139 -0
  92. 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 +272 -0
  93. 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 +166 -0
  94. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/SKILL.md +114 -0
  95. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/remember.mjs +159 -0
  96. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test-advanced.mjs +342 -0
  97. package/botrun-c/.claude/skills//350/250/230/346/206/266/346/212/200/350/203/275/scripts/test.mjs +430 -0
  98. 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 +30 -0
  99. 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 +13 -0
  100. 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 +294 -0
  101. 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 +338 -0
  102. package/botrun-c/.dockerignore +131 -0
  103. package/botrun-c/.dockeroptimize +13 -0
  104. package/botrun-c/.firebase/hosting.b3V0.cache +30 -0
  105. package/botrun-c/.firebaserc +5 -0
  106. package/botrun-c/.gcloudignore +56 -0
  107. package/botrun-c/.ruby-version +1 -0
  108. package/botrun-c/CHANGELOG.md +224 -0
  109. package/botrun-c/Dockerfile.gcp +365 -0
  110. package/botrun-c/Dockerfile.slim +195 -0
  111. package/botrun-c/Gemfile +8 -0
  112. package/botrun-c/Gemfile.lock +233 -0
  113. package/botrun-c/LOCAL-DEVELOPMENT-GUIDE.md +393 -0
  114. package/botrun-c/PLAN.md +131 -0
  115. package/botrun-c/README.md +129 -0
  116. package/botrun-c/TODO-CAPACITOR-INTEGRATION.md +482 -0
  117. package/botrun-c/VERIFICATION.md +121 -0
  118. package/botrun-c/admin/RATE_LIMIT_MANAGEMENT.md +312 -0
  119. package/botrun-c/admin/README.md +338 -0
  120. package/botrun-c/admin/botrun-billing-report-1765235244038.csv +22 -0
  121. package/botrun-c/admin/botrun-billing-report-1765235323089.csv +22 -0
  122. package/botrun-c/admin/botrun-dashboard-1765235244039.html +278 -0
  123. package/botrun-c/admin/botrun-dashboard-1765235323089.html +278 -0
  124. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235244039.html +161 -0
  125. package/botrun-c/admin/botrun-timeseries-074xGzIKWyfKTBt1NMIj9lxi5mO2-1765235323090.html +161 -0
  126. package/botrun-c/admin/check-billing.ts +48 -0
  127. package/botrun-c/admin/count-all-users.ts +65 -0
  128. package/botrun-c/admin/generate-analytics-report.ts +188 -0
  129. package/botrun-c/admin/jest.config.ts +43 -0
  130. package/botrun-c/admin/lib/__tests__/formatters.test.ts +264 -0
  131. package/botrun-c/admin/lib/__tests__/mocks/firebase.mock.ts +112 -0
  132. package/botrun-c/admin/lib/__tests__/services/UserService.test.ts +83 -0
  133. package/botrun-c/admin/lib/__tests__/user-resolver.test.ts +439 -0
  134. package/botrun-c/admin/lib/analyzers/BillingAnalyticsService.ts +242 -0
  135. package/botrun-c/admin/lib/analyzers/CsvExporter.ts +263 -0
  136. package/botrun-c/admin/lib/analyzers/HtmlChartGenerator.ts +530 -0
  137. package/botrun-c/admin/lib/analyzers/SpikeAnalyzer.ts +608 -0
  138. package/botrun-c/admin/lib/analyzers/TimeSeriesAnalyzer.ts +344 -0
  139. package/botrun-c/admin/lib/cli/CLIBootstrapper.ts +40 -0
  140. package/botrun-c/admin/lib/commands/AbstractCommand.ts +69 -0
  141. package/botrun-c/admin/lib/commands/AnalyticsCommand.ts +215 -0
  142. package/botrun-c/admin/lib/commands/ListCommand.ts +85 -0
  143. package/botrun-c/admin/lib/commands/QueryCommand.ts +81 -0
  144. package/botrun-c/admin/lib/commands/SpikeCommand.ts +83 -0
  145. package/botrun-c/admin/lib/domain/User.ts +38 -0
  146. package/botrun-c/admin/lib/firebase.ts +92 -0
  147. package/botrun-c/admin/lib/firestore-safe.ts +105 -0
  148. package/botrun-c/admin/lib/formatters.ts +154 -0
  149. package/botrun-c/admin/lib/rate-limit-detailed.ts +355 -0
  150. package/botrun-c/admin/lib/rate-limit.ts +286 -0
  151. package/botrun-c/admin/lib/repositories/UserRepository.ts +104 -0
  152. package/botrun-c/admin/lib/services/UserService.ts +108 -0
  153. package/botrun-c/admin/lib/types.ts +56 -0
  154. package/botrun-c/admin/lib/user-resolver.ts +275 -0
  155. package/botrun-c/admin/manage-auth-domains.js +178 -0
  156. package/botrun-c/admin/migrate-plan-free.sh +64 -0
  157. package/botrun-c/admin/package-lock.json +5656 -0
  158. package/botrun-c/admin/package.json +28 -0
  159. package/botrun-c/admin/rate-limit.sh +55 -0
  160. package/botrun-c/admin/remove-custom-limits.ts +75 -0
  161. package/botrun-c/admin/reset-rate.sh +70 -0
  162. package/botrun-c/admin/reset-trial.sh +68 -0
  163. package/botrun-c/admin/seed-trial-data.sh +38 -0
  164. package/botrun-c/admin/trial.sh +55 -0
  165. package/botrun-c/admin/tsconfig.json +20 -0
  166. package/botrun-c/admin/users-cli.py +298 -0
  167. package/botrun-c/admin/users.sh +12 -0
  168. package/botrun-c/admin/users.ts +1321 -0
  169. package/botrun-c/api/admin-tools/check-whitelist.mjs.migration-bak +74 -0
  170. package/botrun-c/api/admin-tools/create-user.mjs +92 -0
  171. package/botrun-c/api/admin-tools/create-user.mjs.migration-bak +92 -0
  172. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py +287 -0
  173. package/botrun-c/api/admin-tools/firebase-auth-domains-v2.py.migration-bak +287 -0
  174. package/botrun-c/api/admin-tools/init-firestore.mjs +75 -0
  175. package/botrun-c/api/admin-tools/init-firestore.mjs.migration-bak +101 -0
  176. package/botrun-c/api/admin-tools/list-users.mjs +43 -0
  177. package/botrun-c/api/admin-tools/list-users.mjs.migration-bak +43 -0
  178. package/botrun-c/api/admin-tools/manage-authorized-domains.ts +255 -0
  179. package/botrun-c/api/admin-tools/manage-authorized-domains.ts.migration-bak +255 -0
  180. package/botrun-c/api/admin-tools/setup-custom-claims.ts.migration-bak +155 -0
  181. package/botrun-c/api/admin-tools/test-claims.mjs +69 -0
  182. package/botrun-c/api/admin-tools/test-claims.mjs.migration-bak +69 -0
  183. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs +72 -0
  184. package/botrun-c/api/admin-tools/update-service-urls-gcloud.mjs.migration-bak +72 -0
  185. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs +159 -0
  186. package/botrun-c/api/admin-tools/update-service-urls-to-lb.mjs.migration-bak +159 -0
  187. package/botrun-c/api/admin-tools/update-service-urls.mjs +82 -0
  188. package/botrun-c/api/admin-tools/update-service-urls.mjs.migration-bak +82 -0
  189. package/botrun-c/api/package-lock.json +5031 -0
  190. package/botrun-c/api/package.json +63 -0
  191. package/botrun-c/api/pnpm-lock.yaml +4157 -0
  192. package/botrun-c/api/rate-limit-export-1763620678737.csv +79 -0
  193. package/botrun-c/api/scripts/README-migrate-plan-free.md +197 -0
  194. package/botrun-c/api/scripts/check-users.ts +45 -0
  195. package/botrun-c/api/scripts/delete-firestore-docs.js +43 -0
  196. package/botrun-c/api/scripts/dump-subscriptions.ts +395 -0
  197. package/botrun-c/api/scripts/list-all-users.ts +65 -0
  198. package/botrun-c/api/scripts/migrate-plan-free-rpd-16to32.ts +262 -0
  199. package/botrun-c/api/scripts/migrate-plan-names-to-lite-max.ts +269 -0
  200. package/botrun-c/api/scripts/query-user-info.ts +304 -0
  201. package/botrun-c/api/scripts/reset-rate-limit.ts +206 -0
  202. package/botrun-c/api/scripts/reset-trial-subscription.ts +166 -0
  203. package/botrun-c/api/scripts/rollback-plan-names-from-lite-max.ts +139 -0
  204. package/botrun-c/api/scripts/seed-rate-limit-test-data.ts +114 -0
  205. package/botrun-c/api/scripts/seed-subscription-test-data.ts +173 -0
  206. package/botrun-c/api/scripts/test-rate-limit-message.ts +108 -0
  207. package/botrun-c/api/test-billing-write.ts +103 -0
  208. package/botrun-c/api/test-billing.ts +81 -0
  209. package/botrun-c/api/test-chat-upload.sh +162 -0
  210. package/botrun-c/api/test-nchc-whisper.ts +87 -0
  211. package/botrun-c/api/test-skills-loading.js +77 -0
  212. package/botrun-c/api/test-skills-symlink.js +118 -0
  213. package/botrun-c/api/test-upload-multimodal.sh +167 -0
  214. package/botrun-c/api/tsconfig.json +27 -0
  215. package/botrun-c/api/verify-form-2-1.mjs +229 -0
  216. package/botrun-c/api/vitest.config.ts +9 -0
  217. package/botrun-c/appium-capabilities.json +20 -0
  218. package/botrun-c/cors.json +26 -0
  219. package/botrun-c/delete-old.sh +44 -0
  220. package/botrun-c/design/google-drive/01-architecture.md +186 -0
  221. package/botrun-c/design/google-drive/02-api-design.md +314 -0
  222. package/botrun-c/design/google-drive/03-frontend-design.md +278 -0
  223. package/botrun-c/design/google-drive/04-skill-design.md +384 -0
  224. package/botrun-c/design/google-drive/05-test-plan.md +507 -0
  225. package/botrun-c/design/google-drive/README.md +32 -0
  226. package/botrun-c/dev/mcp-token-calculator/README.md +92 -0
  227. package/botrun-c/dev/mcp-token-calculator/RESULTS.md +188 -0
  228. package/botrun-c/dev/mcp-token-calculator/calculate-current-tokens.ts +369 -0
  229. package/botrun-c/dev/mcp-token-calculator/calculate-mcp-tokens.ts +464 -0
  230. package/botrun-c/dev/mcp-token-calculator/optimization-proposals.ts +316 -0
  231. package/botrun-c/dev/mcp-token-calculator/package-lock.json +599 -0
  232. package/botrun-c/dev/mcp-token-calculator/package.json +22 -0
  233. package/botrun-c/dev/mcp-token-calculator/test-all-schemas.ts +314 -0
  234. package/botrun-c/dev/mcp-token-calculator/test-schema-correctness.ts +221 -0
  235. package/botrun-c/dev/mcp-token-calculator/verify-optimization.ts +159 -0
  236. package/botrun-c/fastlane/ANDROID-DEPLOYMENT-SETUP.md +825 -0
  237. package/botrun-c/fastlane/IOS-DEPLOYMENT-SETUP.md +431 -0
  238. package/botrun-c/fastlane/Pluginfile +5 -0
  239. package/botrun-c/fastlane/QUICK-START.md +133 -0
  240. package/botrun-c/fastlane/README.md +424 -0
  241. package/botrun-c/fastlane/RUBY-SETUP.md +449 -0
  242. package/botrun-c/fastlane/android/Appfile +11 -0
  243. package/botrun-c/fastlane/android/Fastfile +240 -0
  244. package/botrun-c/firebase.json +46 -0
  245. package/botrun-c/firestore-init-data.json +40 -0
  246. package/botrun-c/firestore.indexes.json +55 -0
  247. package/botrun-c/firestore.rules +53 -0
  248. package/botrun-c/fix-codex-permissions.sh +56 -0
  249. package/botrun-c/gcs-lifecycle-30day-retention.json +12 -0
  250. package/botrun-c/html-architecture/architecture/deployment.html +664 -0
  251. package/botrun-c/html-architecture/architecture/index.html +309 -0
  252. package/botrun-c/html-architecture/architecture/styles.css +500 -0
  253. package/botrun-c/html-architecture/architecture/system-components.html +538 -0
  254. package/botrun-c/html-architecture/architecture/user-flow.html +370 -0
  255. package/botrun-c/mobile-android/FIREBASE-AUTH-SETUP.md +302 -0
  256. package/botrun-c/mobile-android/WSL-ANDROID-SETUP.md +252 -0
  257. package/botrun-c/mobile-android/android/app/build.gradle +75 -0
  258. package/botrun-c/mobile-android/android/app/capacitor.build.gradle +31 -0
  259. package/botrun-c/mobile-android/android/app/proguard-rules.pro +21 -0
  260. package/botrun-c/mobile-android/android/build.gradle +29 -0
  261. package/botrun-c/mobile-android/android/capacitor.settings.gradle +42 -0
  262. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  263. package/botrun-c/mobile-android/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  264. package/botrun-c/mobile-android/android/gradle.properties +22 -0
  265. package/botrun-c/mobile-android/android/gradlew +252 -0
  266. package/botrun-c/mobile-android/android/gradlew.bat +94 -0
  267. package/botrun-c/mobile-android/android/settings.gradle +5 -0
  268. package/botrun-c/mobile-android/android/variables.gradle +16 -0
  269. package/botrun-c/mobile-android/capacitor.config.ts +44 -0
  270. package/botrun-c/mobile-android/fastlane/Appfile +11 -0
  271. package/botrun-c/mobile-android/fastlane/Fastfile +202 -0
  272. package/botrun-c/mobile-android/fastlane/README.md +96 -0
  273. package/botrun-c/mobile-android/google-services.json.template +39 -0
  274. package/botrun-c/mobile-android/package.json +32 -0
  275. package/botrun-c/mobile-android/resources/icon.png +0 -0
  276. package/botrun-c/mobile-android/tsconfig.json +15 -0
  277. package/botrun-c/mobile-ios/.ruby-version +1 -0
  278. package/botrun-c/mobile-ios/BUILD-LOG.md +82 -0
  279. package/botrun-c/mobile-ios/Gemfile +4 -0
  280. package/botrun-c/mobile-ios/Gemfile.lock +299 -0
  281. package/botrun-c/mobile-ios/GoogleService-Info.plist.template +34 -0
  282. package/botrun-c/mobile-ios/IOS-PERMISSIONS.md +80 -0
  283. package/botrun-c/mobile-ios/QUICK-START.md +189 -0
  284. package/botrun-c/mobile-ios/README.md +231 -0
  285. package/botrun-c/mobile-ios/capacitor.config.ts +46 -0
  286. package/botrun-c/mobile-ios/fastlane/Fastfile +326 -0
  287. package/botrun-c/mobile-ios/fastlane/README.md +88 -0
  288. package/botrun-c/mobile-ios/ios/App/App/App.entitlements +10 -0
  289. package/botrun-c/mobile-ios/ios/App/App/AppDelegate.swift +49 -0
  290. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png +0 -0
  291. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  292. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Contents.json +6 -0
  293. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +56 -0
  294. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany-dark.png +0 -0
  295. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany.png +0 -0
  296. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany-dark.png +0 -0
  297. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany.png +0 -0
  298. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany-dark.png +0 -0
  299. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany.png +0 -0
  300. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  301. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  302. package/botrun-c/mobile-ios/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  303. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/LaunchScreen.storyboard +32 -0
  304. package/botrun-c/mobile-ios/ios/App/App/Base.lproj/Main.storyboard +19 -0
  305. package/botrun-c/mobile-ios/ios/App/App/Info.plist +72 -0
  306. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/project.pbxproj +446 -0
  307. package/botrun-c/mobile-ios/ios/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme +78 -0
  308. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/contents.xcworkspacedata +10 -0
  309. package/botrun-c/mobile-ios/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  310. package/botrun-c/mobile-ios/ios/App/Podfile +52 -0
  311. package/botrun-c/mobile-ios/ios/App/Podfile.lock +205 -0
  312. package/botrun-c/mobile-ios/ios/App/add_plist.rb +30 -0
  313. package/botrun-c/mobile-ios/ios/App/fix_plist_path.rb +22 -0
  314. package/botrun-c/mobile-ios/package.json +29 -0
  315. package/botrun-c/mobile-ios/resources/icon.png +0 -0
  316. package/botrun-c/mobile-ios/run-simulator.sh +34 -0
  317. package/botrun-c/mobile-ios/screenshot-after-clean-rebuild.png +0 -0
  318. package/botrun-c/mobile-ios/screenshot-final-version.png +0 -0
  319. package/botrun-c/mobile-ios/screenshot-simulator.png +0 -0
  320. package/botrun-c/mobile-ios/screenshot-version-1009.png +0 -0
  321. package/botrun-c/mobile-ios/screenshot-with-version.png +0 -0
  322. package/botrun-c/mobile-ios/screenshot-working.png +0 -0
  323. package/botrun-c/mobile-ios/setup-ios.sh +106 -0
  324. package/botrun-c/mobile-ios/tsconfig.json +16 -0
  325. package/botrun-c/org-policy-allow-all-users.yaml +3 -0
  326. package/botrun-c/package.json +68 -0
  327. package/botrun-c/pnpm-lock.yaml +10198 -0
  328. package/botrun-c/pnpm-workspace.yaml +6 -0
  329. package/botrun-c/prompts/BOTRUN-1.md +13 -0
  330. package/botrun-c/prompts/BOTRUN-2.md +70 -0
  331. package/botrun-c/prompts/BOTRUN-3.md +139 -0
  332. package/botrun-c/prototypes/firestore-gax-debug/package-lock.json +1204 -0
  333. package/botrun-c/prototypes/firestore-gax-debug/package.json +12 -0
  334. package/botrun-c/prototypes/firestore-gax-debug/pnpm-workspace.yaml +2 -0
  335. package/botrun-c/prototypes/firestore-gax-debug/test.js +98 -0
  336. package/botrun-c/prototypes/taiwan-haiku/README.md +93 -0
  337. package/botrun-c/prototypes/taiwan-haiku/index.ts +139 -0
  338. package/botrun-c/prototypes/taiwan-haiku/package.json +23 -0
  339. package/botrun-c/prototypes/taiwan-haiku/pnpm-lock.yaml +730 -0
  340. package/botrun-c/prototypes/taiwan-haiku/test-vertex-direct.ts +83 -0
  341. package/botrun-c/prototypes/taiwan-haiku/tsconfig.json +18 -0
  342. package/botrun-c/prototypes/web-search/FINDINGS-STAGE-1.md +48 -0
  343. package/botrun-c/prototypes/web-search/README.md +46 -0
  344. package/botrun-c/prototypes/web-search/VERIFICATION-REPORT.md +310 -0
  345. package/botrun-c/prototypes/web-search/package-lock.json +595 -0
  346. package/botrun-c/prototypes/web-search/package.json +18 -0
  347. package/botrun-c/prototypes/web-search/stage-1.1-basic-connection.js +123 -0
  348. package/botrun-c/prototypes/web-search/stage-1.2-with-websearch.js +154 -0
  349. package/botrun-c/prototypes/web-search/stage-1.3-search-query.js +192 -0
  350. package/botrun-c/prototypes/web-search/stage-2-agent-sdk-websearch.js +265 -0
  351. package/botrun-c/runtime-scripts/env-detect.sh +64 -0
  352. package/botrun-c/scripts/github-collaborator-manager.sh +297 -0
  353. package/botrun-c/scripts/github-collaborator-manager.ts +325 -0
  354. package/botrun-c/scripts/manage-collaborators.sh +91 -0
  355. package/botrun-c/scripts/setup-secrets.sh +202 -0
  356. package/botrun-c/scripts/stress-test-17-users.sh +113 -0
  357. package/botrun-c/scripts/stress-test-api.sh +119 -0
  358. package/botrun-c/scripts/stress-test-full-report.sh +385 -0
  359. package/botrun-c/specs/infra-vm/design.md +0 -0
  360. package/botrun-c/specs/share-skill/design.md +1146 -0
  361. package/botrun-c/specs/share-skill/tasks.md +444 -0
  362. package/botrun-c/stress-test-results/20260121-162630/config.json +7 -0
  363. package/botrun-c/stress-test-results/20260121-162630/user-1-status.txt +1 -0
  364. package/botrun-c/stress-test-results/20260121-162630/user-1-timing.txt +1 -0
  365. package/botrun-c/stress-test-results/20260121-162630/user-1.json +2 -0
  366. package/botrun-c/stress-test-results/20260121-162646/config.json +7 -0
  367. package/botrun-c/stress-test-results/20260121-162646/user-1-status.txt +1 -0
  368. package/botrun-c/stress-test-results/20260121-162646/user-1-timing.txt +1 -0
  369. package/botrun-c/stress-test-results/20260121-162646/user-1.json +2 -0
  370. package/botrun-c/stress-test-results/20260121-162646/user-10-status.txt +1 -0
  371. package/botrun-c/stress-test-results/20260121-162646/user-10-timing.txt +1 -0
  372. package/botrun-c/stress-test-results/20260121-162646/user-10.json +2 -0
  373. package/botrun-c/stress-test-results/20260121-162646/user-11-status.txt +1 -0
  374. package/botrun-c/stress-test-results/20260121-162646/user-11-timing.txt +1 -0
  375. package/botrun-c/stress-test-results/20260121-162646/user-11.json +2 -0
  376. package/botrun-c/stress-test-results/20260121-162646/user-12-status.txt +1 -0
  377. package/botrun-c/stress-test-results/20260121-162646/user-12-timing.txt +1 -0
  378. package/botrun-c/stress-test-results/20260121-162646/user-12.json +2 -0
  379. package/botrun-c/stress-test-results/20260121-162646/user-13-status.txt +1 -0
  380. package/botrun-c/stress-test-results/20260121-162646/user-13-timing.txt +1 -0
  381. package/botrun-c/stress-test-results/20260121-162646/user-13.json +2 -0
  382. package/botrun-c/stress-test-results/20260121-162646/user-14-status.txt +1 -0
  383. package/botrun-c/stress-test-results/20260121-162646/user-14-timing.txt +1 -0
  384. package/botrun-c/stress-test-results/20260121-162646/user-14.json +2 -0
  385. package/botrun-c/stress-test-results/20260121-162646/user-15-status.txt +1 -0
  386. package/botrun-c/stress-test-results/20260121-162646/user-15-timing.txt +1 -0
  387. package/botrun-c/stress-test-results/20260121-162646/user-15.json +2 -0
  388. package/botrun-c/stress-test-results/20260121-162646/user-16-status.txt +1 -0
  389. package/botrun-c/stress-test-results/20260121-162646/user-16-timing.txt +1 -0
  390. package/botrun-c/stress-test-results/20260121-162646/user-16.json +2 -0
  391. package/botrun-c/stress-test-results/20260121-162646/user-17-status.txt +1 -0
  392. package/botrun-c/stress-test-results/20260121-162646/user-17-timing.txt +1 -0
  393. package/botrun-c/stress-test-results/20260121-162646/user-17.json +2 -0
  394. package/botrun-c/stress-test-results/20260121-162646/user-2-status.txt +1 -0
  395. package/botrun-c/stress-test-results/20260121-162646/user-2-timing.txt +1 -0
  396. package/botrun-c/stress-test-results/20260121-162646/user-2.json +2 -0
  397. package/botrun-c/stress-test-results/20260121-162646/user-3-status.txt +1 -0
  398. package/botrun-c/stress-test-results/20260121-162646/user-3-timing.txt +1 -0
  399. package/botrun-c/stress-test-results/20260121-162646/user-3.json +2 -0
  400. package/botrun-c/stress-test-results/20260121-162646/user-4-status.txt +1 -0
  401. package/botrun-c/stress-test-results/20260121-162646/user-4-timing.txt +1 -0
  402. package/botrun-c/stress-test-results/20260121-162646/user-4.json +2 -0
  403. package/botrun-c/stress-test-results/20260121-162646/user-5-status.txt +1 -0
  404. package/botrun-c/stress-test-results/20260121-162646/user-5-timing.txt +1 -0
  405. package/botrun-c/stress-test-results/20260121-162646/user-5.json +2 -0
  406. package/botrun-c/stress-test-results/20260121-162646/user-6-status.txt +1 -0
  407. package/botrun-c/stress-test-results/20260121-162646/user-6-timing.txt +1 -0
  408. package/botrun-c/stress-test-results/20260121-162646/user-6.json +2 -0
  409. package/botrun-c/stress-test-results/20260121-162646/user-7-status.txt +1 -0
  410. package/botrun-c/stress-test-results/20260121-162646/user-7-timing.txt +1 -0
  411. package/botrun-c/stress-test-results/20260121-162646/user-7.json +2 -0
  412. package/botrun-c/stress-test-results/20260121-162646/user-8-status.txt +1 -0
  413. package/botrun-c/stress-test-results/20260121-162646/user-8-timing.txt +1 -0
  414. package/botrun-c/stress-test-results/20260121-162646/user-8.json +2 -0
  415. package/botrun-c/stress-test-results/20260121-162646/user-9-status.txt +1 -0
  416. package/botrun-c/stress-test-results/20260121-162646/user-9-timing.txt +1 -0
  417. package/botrun-c/stress-test-results/20260121-162646/user-9.json +2 -0
  418. package/botrun-c/stress-test-results/20260121-163148/REPORT.html +344 -0
  419. package/botrun-c/stress-test-results/20260121-163148/REPORT.md +93 -0
  420. package/botrun-c/stress-test-results/20260121-163148/REPORT.pdf +0 -0
  421. package/botrun-c/stress-test-results/20260121-163148/config.json +7 -0
  422. package/botrun-c/stress-test-results/20260121-163148/summary.json +26 -0
  423. package/botrun-c/stress-test-results/20260121-163148/user-1-status.txt +1 -0
  424. package/botrun-c/stress-test-results/20260121-163148/user-1-timing.txt +1 -0
  425. package/botrun-c/stress-test-results/20260121-163148/user-1.json +206 -0
  426. package/botrun-c/stress-test-results/20260121-163148/user-10-status.txt +1 -0
  427. package/botrun-c/stress-test-results/20260121-163148/user-10-timing.txt +1 -0
  428. package/botrun-c/stress-test-results/20260121-163148/user-10.json +110 -0
  429. package/botrun-c/stress-test-results/20260121-163148/user-11-status.txt +1 -0
  430. package/botrun-c/stress-test-results/20260121-163148/user-11-timing.txt +1 -0
  431. package/botrun-c/stress-test-results/20260121-163148/user-11.json +104 -0
  432. package/botrun-c/stress-test-results/20260121-163148/user-12-status.txt +1 -0
  433. package/botrun-c/stress-test-results/20260121-163148/user-12-timing.txt +1 -0
  434. package/botrun-c/stress-test-results/20260121-163148/user-12.json +98 -0
  435. package/botrun-c/stress-test-results/20260121-163148/user-13-status.txt +1 -0
  436. package/botrun-c/stress-test-results/20260121-163148/user-13-timing.txt +1 -0
  437. package/botrun-c/stress-test-results/20260121-163148/user-13.json +68 -0
  438. package/botrun-c/stress-test-results/20260121-163148/user-14-status.txt +1 -0
  439. package/botrun-c/stress-test-results/20260121-163148/user-14-timing.txt +1 -0
  440. package/botrun-c/stress-test-results/20260121-163148/user-14.json +116 -0
  441. package/botrun-c/stress-test-results/20260121-163148/user-15-status.txt +1 -0
  442. package/botrun-c/stress-test-results/20260121-163148/user-15-timing.txt +1 -0
  443. package/botrun-c/stress-test-results/20260121-163148/user-15.json +131 -0
  444. package/botrun-c/stress-test-results/20260121-163148/user-16-status.txt +1 -0
  445. package/botrun-c/stress-test-results/20260121-163148/user-16-timing.txt +1 -0
  446. package/botrun-c/stress-test-results/20260121-163148/user-16.json +110 -0
  447. package/botrun-c/stress-test-results/20260121-163148/user-17-status.txt +1 -0
  448. package/botrun-c/stress-test-results/20260121-163148/user-17-timing.txt +1 -0
  449. package/botrun-c/stress-test-results/20260121-163148/user-17.json +116 -0
  450. package/botrun-c/stress-test-results/20260121-163148/user-2-status.txt +1 -0
  451. package/botrun-c/stress-test-results/20260121-163148/user-2-timing.txt +1 -0
  452. package/botrun-c/stress-test-results/20260121-163148/user-2.json +98 -0
  453. package/botrun-c/stress-test-results/20260121-163148/user-3-status.txt +1 -0
  454. package/botrun-c/stress-test-results/20260121-163148/user-3-timing.txt +1 -0
  455. package/botrun-c/stress-test-results/20260121-163148/user-3.json +62 -0
  456. package/botrun-c/stress-test-results/20260121-163148/user-4-status.txt +1 -0
  457. package/botrun-c/stress-test-results/20260121-163148/user-4-timing.txt +1 -0
  458. package/botrun-c/stress-test-results/20260121-163148/user-4.json +113 -0
  459. package/botrun-c/stress-test-results/20260121-163148/user-5-status.txt +1 -0
  460. package/botrun-c/stress-test-results/20260121-163148/user-5-timing.txt +1 -0
  461. package/botrun-c/stress-test-results/20260121-163148/user-5.json +83 -0
  462. package/botrun-c/stress-test-results/20260121-163148/user-6-status.txt +1 -0
  463. package/botrun-c/stress-test-results/20260121-163148/user-6-timing.txt +1 -0
  464. package/botrun-c/stress-test-results/20260121-163148/user-6.json +125 -0
  465. package/botrun-c/stress-test-results/20260121-163148/user-7-status.txt +1 -0
  466. package/botrun-c/stress-test-results/20260121-163148/user-7-timing.txt +1 -0
  467. package/botrun-c/stress-test-results/20260121-163148/user-7.json +62 -0
  468. package/botrun-c/stress-test-results/20260121-163148/user-8-status.txt +1 -0
  469. package/botrun-c/stress-test-results/20260121-163148/user-8-timing.txt +1 -0
  470. package/botrun-c/stress-test-results/20260121-163148/user-8.json +41 -0
  471. package/botrun-c/stress-test-results/20260121-163148/user-9-status.txt +1 -0
  472. package/botrun-c/stress-test-results/20260121-163148/user-9-timing.txt +1 -0
  473. package/botrun-c/stress-test-results/20260121-163148/user-9.json +53 -0
  474. package/botrun-c/test-merge.md +1 -0
  475. package/botrun-c/version.txt +1 -0
  476. package/botrun-c/web/.version +1 -0
  477. package/botrun-c/web/ALLOW-PUBLIC-ACCESS.md +57 -0
  478. package/botrun-c/web/FINAL-SETUP-STEPS.md +71 -0
  479. package/botrun-c/web/FIREBASE-MANUAL-STEPS.md +41 -0
  480. package/botrun-c/web/QUICK-SETUP-HELPER.md +79 -0
  481. package/botrun-c/web/README.md +162 -0
  482. package/botrun-c/web/__tests__/image-extractor.test.ts +147 -0
  483. package/botrun-c/web/__tests__/useGitHub.test.ts +245 -0
  484. package/botrun-c/web/app/favicon.ico +0 -0
  485. package/botrun-c/web/app/globals.css +215 -0
  486. package/botrun-c/web/app/image-preview/page.tsx +213 -0
  487. package/botrun-c/web/app/layout.tsx +46 -0
  488. package/botrun-c/web/app/page.tsx +45 -0
  489. package/botrun-c/web/components/CapacitorProvider.tsx +43 -0
  490. package/botrun-c/web/components/ChatPage.tsx +1736 -0
  491. package/botrun-c/web/components/ConversationList.tsx +237 -0
  492. package/botrun-c/web/components/ConversationListItem.tsx +121 -0
  493. package/botrun-c/web/components/LoginPage.tsx +212 -0
  494. package/botrun-c/web/components/Providers.tsx +12 -0
  495. package/botrun-c/web/components/StatusBarProvider.tsx +16 -0
  496. package/botrun-c/web/components/attachment-preview.tsx +193 -0
  497. package/botrun-c/web/components/botrun-incubator/BotrunIncubator.tsx +266 -0
  498. package/botrun-c/web/components/botrun-incubator/index.ts +1 -0
  499. package/botrun-c/web/components/chat-input.tsx +1251 -0
  500. package/botrun-c/web/components/chat-message.tsx +598 -0
  501. package/botrun-c/web/components/drop-zone.tsx +143 -0
  502. package/botrun-c/web/components/gdrive/gdrive-add-dialog.tsx +254 -0
  503. package/botrun-c/web/components/gdrive/gdrive-drawer.tsx +236 -0
  504. package/botrun-c/web/components/gdrive/gdrive-selector.tsx +226 -0
  505. package/botrun-c/web/components/gdrive/index.ts +7 -0
  506. package/botrun-c/web/components/generated-image-card.tsx +363 -0
  507. package/botrun-c/web/components/github/GitHubConnect.tsx +366 -0
  508. package/botrun-c/web/components/github/index.ts +2 -0
  509. package/botrun-c/web/components/import-skill-dialog.tsx +208 -0
  510. package/botrun-c/web/components/scroll-to-bottom-button.tsx +90 -0
  511. package/botrun-c/web/components/share-skill-dialog.tsx +175 -0
  512. package/botrun-c/web/components/skills-editor.tsx +443 -0
  513. package/botrun-c/web/components/skills-manager-drawer.tsx +586 -0
  514. package/botrun-c/web/components/smart-button-group.tsx +132 -0
  515. package/botrun-c/web/config/smart-buttons.ts +295 -0
  516. package/botrun-c/web/config/welcome-messages.ts +29 -0
  517. package/botrun-c/web/contexts/AuthContext.tsx +220 -0
  518. package/botrun-c/web/hooks/use-toast.ts +187 -0
  519. package/botrun-c/web/hooks/useAppStoreUpdate.ts +356 -0
  520. package/botrun-c/web/hooks/useAppVersion.ts +113 -0
  521. package/botrun-c/web/hooks/useAttachments.ts +269 -0
  522. package/botrun-c/web/hooks/useAuthToken.ts +59 -0
  523. package/botrun-c/web/hooks/useAutoWelcome.ts +89 -0
  524. package/botrun-c/web/hooks/useCapacitorPlatform.ts +113 -0
  525. package/botrun-c/web/hooks/useCapawesomeLiveUpdate.ts +149 -0
  526. package/botrun-c/web/hooks/useClaudeModel.ts +118 -0
  527. package/botrun-c/web/hooks/useConversation.ts +115 -0
  528. package/botrun-c/web/hooks/useConversations.ts +235 -0
  529. package/botrun-c/web/hooks/useGdriveFolders.ts +199 -0
  530. package/botrun-c/web/hooks/useGdriveSync.ts +107 -0
  531. package/botrun-c/web/hooks/useGitHub.ts +409 -0
  532. package/botrun-c/web/hooks/useScrollToBottom.ts +150 -0
  533. package/botrun-c/web/hooks/useStatusBar.ts +42 -0
  534. package/botrun-c/web/hooks/useUserPlan.ts +153 -0
  535. package/botrun-c/web/lib/api-config.ts +162 -0
  536. package/botrun-c/web/lib/api-url.ts +62 -0
  537. package/botrun-c/web/lib/api.ts +105 -0
  538. package/botrun-c/web/lib/attachment-utils.ts +168 -0
  539. package/botrun-c/web/lib/build-version.ts +11 -0
  540. package/botrun-c/web/lib/clipboard-utils.ts +199 -0
  541. package/botrun-c/web/lib/constants.ts +62 -0
  542. package/botrun-c/web/lib/conversation-storage.ts +324 -0
  543. package/botrun-c/web/lib/firebase-capacitor.ts +135 -0
  544. package/botrun-c/web/lib/firebase.ts +137 -0
  545. package/botrun-c/web/lib/firestore-auth.ts +61 -0
  546. package/botrun-c/web/lib/firestore-auth.ts.migration-bak +319 -0
  547. package/botrun-c/web/lib/image-extractor.ts +156 -0
  548. package/botrun-c/web/lib/path-utils.ts +48 -0
  549. package/botrun-c/web/lib/rehype-del-to-mark.ts +19 -0
  550. package/botrun-c/web/lib/upload-service.ts +326 -0
  551. package/botrun-c/web/lib/utils.ts +6 -0
  552. package/botrun-c/web/next.config.js +49 -0
  553. package/botrun-c/web/package-lock.json +6711 -0
  554. package/botrun-c/web/package.json +63 -0
  555. package/botrun-c/web/postcss.config.js +6 -0
  556. package/botrun-c/web/public/apple_icon.png +0 -0
  557. package/botrun-c/web/public/google_icon.png +0 -0
  558. package/botrun-c/web/public/logo-48-small.png +0 -0
  559. package/botrun-c/web/public/logo-48.png +0 -0
  560. package/botrun-c/web/scripts/generate-version.js +36 -0
  561. package/botrun-c/web/scripts/update-build-version.js +41 -0
  562. package/botrun-c/web/tailwind.config.ts +80 -0
  563. package/botrun-c/web/test-welcome-message.mjs +115 -0
  564. package/botrun-c/web/tsconfig.json +42 -0
  565. package/botrun-c/web/types/agent.ts +6 -0
  566. package/botrun-c/web/types/attachment.ts +39 -0
  567. package/botrun-c/web/types/conversation.ts +68 -0
  568. package/botrun-c/web/types/flutter.d.ts +6 -0
  569. package/botrun-c/web/types/project.ts +41 -0
  570. package/botrun-c/web/types/skills.ts +13 -0
  571. 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 +83 -0
  572. package/lib/prompt/prompts/zero-framework/fullstack.md +17 -0
  573. package/lib/prompt/prompts/zero-framework/segment.md +13 -0
  574. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ # Node.js(全域排除)
2
+ **/node_modules/
3
+ node_modules/
4
+ npm-debug.log
5
+ yarn-error.log
6
+ pnpm-debug.log
7
+ .pnpm-store/
8
+
9
+ # Environment
10
+ .env
11
+ .env.local
12
+ .env.*.local
13
+
14
+ # Git
15
+ .git/
16
+ .gitignore
17
+ .gitattributes
18
+
19
+ # CI/CD
20
+ .github/
21
+
22
+ # Documentation
23
+ *.md
24
+ !README.md
25
+ !CLAUDE.md
26
+ docs/
27
+ bak/
28
+
29
+ # Logs
30
+ logs/
31
+ *.log
32
+
33
+ # Testing
34
+ coverage/
35
+ .nyc_output/
36
+ **/__tests__/
37
+ **/*.test.ts
38
+ **/*.test.tsx
39
+ **/*.spec.ts
40
+ **/*.spec.tsx
41
+
42
+ # Editor
43
+ .vscode/
44
+ .idea/
45
+ *.swp
46
+ *.swo
47
+ *~
48
+
49
+ # OS
50
+ .DS_Store
51
+ Thumbs.db
52
+
53
+ # Build artifacts(全域排除)
54
+ **/dist/
55
+ dist/
56
+ build/
57
+ out/
58
+ *.tgz
59
+
60
+ # Backup
61
+ bak/
62
+
63
+ # Development directories (開發工具和臨時檔案,不應包含在 Docker image 中)
64
+ dev/ # 開發工具,約 60MB
65
+ tmp/ # 臨時檔案,約 60MB
66
+ prototypes/ # 原型專案,約 247MB (包含 node_modules)
67
+ .gemini-clipboard/ # 剪貼簿圖片,約 1MB
68
+ users/ # 使用者資料目錄(本地測試用)
69
+ admin/ # 管理腳本(非執行期需要)
70
+ runtime-scripts/ # 執行期腳本(若不需要可排除)
71
+
72
+ # Development scripts (除了 sh/env-detect.sh 是必要的)
73
+ # sh/
74
+
75
+ # API projects (local development/testing data - should NOT be deployed)
76
+ api/projects/
77
+
78
+ # User data directory (should NOT be deployed - production uses GCS mount, saves ~200MB)
79
+ data/
80
+
81
+ # Upload directory (should NOT be deployed - production uses GCS)
82
+ uploads/
83
+
84
+ # Test files
85
+ tests/
86
+
87
+ # Web frontend (NEEDED for unified deployment - do NOT exclude)
88
+ # web/
89
+
90
+ # Web build cache and output (exclude to reduce upload size and prevent cache invalidation)
91
+ web/.next/
92
+ web/.turbo/
93
+ web/.vercel/
94
+ web/next-env.d.ts
95
+ web/firebase-debug.log
96
+ web/out/
97
+
98
+ # TypeScript
99
+ *.tsbuildinfo
100
+ **/*.tsbuildinfo
101
+
102
+ # Logs(全域排除)
103
+ logs/
104
+ *.log
105
+
106
+ # MCP Servers - 排除 node_modules 和編譯產物(Dockerfile 會自己建置)
107
+ botrun-mcp-servers/**/node_modules/
108
+ botrun-mcp-servers/**/dist/
109
+ botrun-mcp-servers/**/*.log
110
+ botrun-mcp-servers/**/.DS_Store
111
+
112
+ # Skills - 排除 node_modules 和編譯產物(保留 SKILL.md 和程式碼)
113
+ .claude/skills/**/node_modules/
114
+ .claude/skills/**/dist/
115
+ .claude/skills/**/*.log
116
+ .claude/skills/**/.DS_Store
117
+
118
+ # Test media files (audio, video) - 測試用的媒體檔案,不應包含在 Docker image
119
+ *.mp3
120
+ *.wav
121
+ *.m4a
122
+ *.aac
123
+ *.ogg
124
+ *.flac
125
+ *.webm
126
+ *.opus
127
+ *.mp4
128
+ *.mov
129
+ *.avi
130
+ *.mkv
131
+ *.wmv
@@ -0,0 +1,13 @@
1
+ # Docker 映像優化腳本
2
+ # 在 final stage 執行,刪除不必要的檔案以減小映像大小
3
+
4
+ # 刪除 Claude Agent SDK 中不需要的檔案
5
+ rm -rf /app/node_modules/@anthropic-ai/claude-agent-sdk/vendor/claude-code-jetbrains-plugin
6
+ rm -rf /app/node_modules/@anthropic-ai/claude-agent-sdk/cli.js
7
+
8
+ # 刪除 Sharp 原始檔案(如果你的靜態前端不需要動態處理圖片)
9
+ # rm -rf /app/node_modules/@img
10
+
11
+ # 清理 npm cache 和臨時檔案
12
+ rm -rf /root/.npm
13
+ rm -rf /tmp/*
@@ -0,0 +1,30 @@
1
+ index.txt,1761754918659,fa891ad26bba5fd8de3e79ca356d6230bade8ea9f29150ebf0b91e8070e5818d
2
+ index.html,1761754918659,4887333a89ca50501fe56975ed358586ba75b3ff8531264daf95e9af4cd7777b
3
+ 404.html,1761754918659,d7bfcb684d6176fd2c89a279299c18ebe3e8d032a17781ed598414482e83aa28
4
+ _next/static/xjgf6ZNdXTuQabs8hip8n/_ssgManifest.js,1761754918657,02dbc1aeab6ef0a6ff2ff9a1643158cf9bb38929945eaa343a3627dee9ba6778
5
+ _next/static/xjgf6ZNdXTuQabs8hip8n/_buildManifest.js,1761754918658,a1d6ce5a18ef57054d2eb797becaafbc41676f1463cd97a4c8494a4771af4a58
6
+ _next/static/media/e4af272ccee01ff0-s.p.woff2,1761754918659,28d3c49d99e0f60c3d54343c8188ada21c804877b2b1fd9acc1695bf6b47ef22
7
+ _next/static/media/df0a9ae256c0569c-s.woff2,1761754918658,bbf2b69affb52c37fbd41b4c75ae7fc2f2421b70be2218dbe876cef0fcdc18a9
8
+ _next/static/media/c5fe6dc8356a8c31-s.woff2,1761754918659,1a0e14609112860ada68bcd117557d881c437c49a652fc25f03478d32db23261
9
+ _next/static/media/ba9851c3c22cd980-s.woff2,1761754918658,60bcc7eca099398d9118a54458d766e098397b9b59a1788046e101bc7797906b
10
+ _next/static/media/8e9860b6e62d6359-s.woff2,1761754918658,865e90fb09b8be8261d53d6a40c80daa87669020b3d5fa186cb66c1944efca21
11
+ _next/static/media/21350d82a1f187e9-s.woff2,1761754918658,a30747ba3d635d16cfc52331d3364bcbb1024d1d1bfe0e830e6329ef1e7dda23
12
+ _next/static/media/19cfc7226ec3afaa-s.woff2,1761754918658,9158a62c685560cf2e28de5854b559863dc9dbda0bf98277ab1ed711bddd8a77
13
+ _next/static/css/786754ab60d23fb1.css,1761754918654,b9f9ec767459c00a3dea08df5eedbcf363ed0c4febf40e2652713db21337cb05
14
+ _next/static/chunks/webpack-e7cad3ae9fb1141e.js,1761754918655,8a4bebeb7f10eb78f14d1b0d379c80867a0e55ef9d0b8fd7aec1fba410c31c30
15
+ _next/static/chunks/polyfills-42372ed130431b0a.js,1761754918657,67dee1c02c6a6700d63b5c1898cf2df618101a68a395db469192763d24925a23
16
+ _next/static/chunks/main-c7238946be43b608.js,1761754918657,7e0449dc8a877acea667aef7f271a619c211b9f8910d7c1497c6896215a8c695
17
+ _next/static/chunks/main-app-4897dd7f629eecb4.js,1761754918656,36b5cfe4cfb066d82c084d85279a87ff022956d9599cd5613994504fa3aada21
18
+ _next/static/chunks/framework-00a8ba1a63cfdc9e.js,1761754918655,aeb3fa38e1f12bf9e53c0b361d77ea9d6cfb4f61ac21adf8a537249897952a28
19
+ _next/static/chunks/fd9d1056-66408495c002d330.js,1761754918656,0469b536a9beb87a0ab84d3b3ccc70976e30fdd17dd2349bb56296a5651fba5f
20
+ _next/static/chunks/b1644e8c-82f40f46515a9ac4.js,1761754918655,97c2761906462721262e1356a6e2956027d2a9cdcadd4125f3b588dfbb7a1ef0
21
+ _next/static/chunks/498-8d108853e060d017.js,1761754918656,47a11de3d3d7c6f8a1f054c14c728d837dab5cf00be25d188e1fb8c89de0fd7c
22
+ _next/static/chunks/479-5e780cd13c7b787d.js,1761754918656,9b927fc14097eb9a7be61e0f28026420b953bc4cfaed82d23f413c3a02dac55b
23
+ _next/static/chunks/281-b0d1894b4fab09e1.js,1761754918657,412eace762bc3cceb25ac34e59dc48a47e71c34847de4ba6a46c3169cbec9969
24
+ _next/static/chunks/261b60bd-6c21e547ce137f76.js,1761754918654,ef84313e2e013551c8d18f311d1d11df065c21f3cc17339112aaf56cae032d04
25
+ _next/static/chunks/117-7c6bfb3e4083e578.js,1761754918657,ea402debb508850760df4dce4e47998957257253489c7d2601390cdc2c20a20c
26
+ _next/static/chunks/pages/_error-28b803cb2479b966.js,1761754918656,4aceb828d82ae3033dbde9b5f1e496fcaa7eccc0834add39a212e0ada1d38af1
27
+ _next/static/chunks/pages/_app-15e2daefa259f0b5.js,1761754918657,37e6a033ed035f11e73b22db4f7db0e6c57a00782844a34bc40c99fc76f8abda
28
+ _next/static/chunks/app/page-e36aacb6fd761a6f.js,1761754918655,0f91578e6b10d097cff320f9ace0b47e3fef2286da2b6775a29c89f1d4755e7c
29
+ _next/static/chunks/app/layout-8c5016584c3d4640.js,1761754918655,996004490eecc7d273ae56192e8fcfc272c2d6a81b72a5ec3f5b11b7068eaa9c
30
+ _next/static/chunks/app/_not-found/page-e6a651cc5ac898f8.js,1761754918655,4a86c29d990cb5ddd68a6e611a6f72c418af5a37066c9f13a2d48e8cd3ad22ef
@@ -0,0 +1,5 @@
1
+ {
2
+ "projects": {
3
+ "default": "botrun-c"
4
+ }
5
+ }
@@ -0,0 +1,56 @@
1
+ # GCP Cloud Run deployment ignore file
2
+ # This file specifies files that are *not* uploaded to Google Cloud
3
+
4
+ .gcloudignore
5
+ .git
6
+ .gitignore
7
+
8
+ # Node.js
9
+ node_modules/
10
+ npm-debug.log
11
+
12
+ # Environment
13
+ .env
14
+ .env.*
15
+ !.env.example
16
+
17
+ # Documentation
18
+ *.md
19
+ !README.md
20
+ docs/
21
+
22
+ # Logs
23
+ logs/
24
+ *.log
25
+
26
+ # Backup
27
+ bak/
28
+
29
+ # Development
30
+ sh/
31
+ .vscode/
32
+ .idea/
33
+
34
+ # Web frontend (NEEDED for unified deployment - do NOT exclude)
35
+ # web/
36
+
37
+ # Testing
38
+ coverage/
39
+ __tests__/
40
+
41
+ # Build artifacts (we use tsx in production)
42
+ dist/
43
+ build/
44
+
45
+ # OS
46
+ .DS_Store
47
+
48
+ # iOS build files
49
+ mobile-ios/ios-build/
50
+ mobile-ios/*.png
51
+
52
+ # Web build artifacts
53
+ web/.version
54
+ web/scripts/
55
+ web/.next/
56
+ web/out/
@@ -0,0 +1 @@
1
+ 3.3.0
@@ -0,0 +1,224 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [5.1224.1540] - 2025-12-24
11
+
12
+ ### Added (server 端)
13
+ - **音訊轉錄三階段 Fallback 機制**:新增 [Spot VM Whisper](https://github.com/botrun/whisper-gcp-spot-vm) 作為第二階段容錯
14
+ - 階段 1: NCHC Whisper (retry 3 次)
15
+ - 階段 2: Spot VM Whisper (retry 3 次) - 新增,使用 Google Spot VM 降低成本
16
+ - 階段 3: Cloud Run Whisper (retry 3 次)
17
+ - 每階段失敗時發送 Webhook 告警通知
18
+ - 支援 OpenCC 簡體轉台灣繁體中文用語 (cn → twp)
19
+ - 詳細技術說明:[Spot VM Whisper 架構文件](https://docs.google.com/presentation/d/1ABl1-lUhfwBqID0nlAyh8l9moxEN6tMz/edit?slide=id.p1#slide=id.p1)
20
+
21
+
22
+ ## [5.1218.1734] - 2025-12-18
23
+
24
+ ### Added
25
+ - **分享技能功能**:可以在技能中建立分享連結,其他人可以透過此連結將技能匯入到自己的技能集
26
+
27
+ ## [1.6.4] - 2025-12-18
28
+
29
+ ### Fixed (iOS)
30
+ - **移除測試按鈕**:在檔案上傳的按鈕,移除測試錄音的按鈕
31
+
32
+ ## [5.1216.1629] - 2025-12-16
33
+
34
+ ### Added (server 端)
35
+ - **音訊轉錄 Fallback 機制**:NCHC Whisper → Cloud Run Whisper 雙重容錯
36
+ - 每個服務各支援 3 次重試(指數退避 + Jitter)
37
+ - NCHC 失敗後自動切換到 Cloud Run Whisper
38
+ - 加入詳細 debug 訊息,方便追蹤問題
39
+ - **Cloud Run Whisper 整合**:使用 [whisper-cpp-tw](https://github.com/botrun/whisper-cpp-tw) 部署在 Google Cloud Run (Taiwan)
40
+ - 自動將簡體中文轉換為台灣繁體用語 (OpenCC: cn → twp)
41
+
42
+ ## [1.6.3] - 2025-12-12
43
+
44
+ ### Added
45
+ - **響應式圖片檢視器(Dialog 版本)**:使用 shadcn/ui Dialog 實作全螢幕圖片預覽
46
+ - 支援縮放、平移、雙擊重置功能 (react-zoom-pan-pinch)
47
+ - 響應式按鈕配置:桌面版右上角並排顯示下載與關閉按鈕,手機版關閉按鈕置於右上角、下載按鈕置於底部中央
48
+ - 按鈕尺寸符合 Apple HIG 標準 (48x48px)
49
+ - 支援 ESC 鍵關閉(Radix UI 內建)
50
+ - 整合 Capacitor Share API,iOS/Android 可直接儲存圖片
51
+ - **前端自動重試機制**:間歇性連線錯誤透明處理,提升使用體驗
52
+ - **部署工具強化**:新增 `--new` 選項支援自訂端點部署
53
+
54
+ ### Changed
55
+ - **UI 優化**:
56
+ - 重構選單佈局(右上角選單順序調整與左下角上傳按鈕簡化)
57
+ - 技能孵化器 icon 改為榔頭 (Hammer)
58
+ - 波特人孵化器更名為指揮家孵化器
59
+ - AI 回應文字改為純黑色(覆寫 prose 預設灰色)
60
+
61
+ ### Fixed
62
+ - **全形標點符號顯示修復**:全形逗號(,)現在可以正常顯示
63
+ - 暫時停用全形轉半形功能,避免中文標點符號被錯誤轉換
64
+ - **孵化技能修復**:修正 SKILL.md 使用錯誤環境變數導致腳本找不到
65
+ - **HTML 生成技能修復**:修正路徑不一致導致預覽失敗
66
+ - **轉錄錯誤 UI 排版修復**:小螢幕上按鈕不再被截斷,X 按鈕不再與文字重疊
67
+ - 使用 Tailwind responsive utilities 實現響應式按鈕排版(手機垂直堆疊,桌面水平排列)
68
+ - **圖片展示修復**:移除測試用草莓圖片,修正 `toolUses is not defined` 錯誤
69
+
70
+ ## [1.6.2] - 2025-12-10
71
+
72
+ ### Fixed
73
+ - **M4A 錄音分段失敗修復**:FFmpeg 動態匹配輸入格式,支援 M4A/MP3/WebM 等格式
74
+ - **轉錄狀態顯示恢復**:琥珀色背景雙行文字設計,顯示上傳與轉錄進度
75
+
76
+ ### Changed
77
+ - **動態 MIME 偵測**:使用 file-type 套件從二進位內容偵測真實檔案格式
78
+ - **測試工具強化**:新增 Android/iOS 真實錄音測試按鈕
79
+
80
+ ## [1.6.1] - 2025-12-09
81
+
82
+ ### Changed
83
+ - **錄音下載功能改進**(iOS/Android)
84
+ - 改用系統分享面板,使用者可選擇儲存位置或分享到其他 App
85
+ - 取消分享不再顯示錯誤訊息
86
+
87
+ ## [5.1209.1523] - 2025-12-09
88
+
89
+ ### Improved
90
+ - **音訊分段轉錄效能優化**:Server 端
91
+ - 加入 Retry 機制的 Jitter(防止 Thundering Herd 問題)
92
+ - 實作錯誤分類:5xx 伺服器錯誤重試,4xx 客戶端錯誤立即失敗
93
+ - 支援網路錯誤重試(fetch failed, timeout, ECONNRESET, ETIMEDOUT)
94
+ - 指數退避時間:1s, 2s, 4s + 隨機 Jitter (0-1000ms)
95
+ - 成功率從 96% 提升至 100%(120 個並發片段零失敗)
96
+
97
+ ## [1.6.0] - 2025-12-09
98
+
99
+ ### Added
100
+ - **圖片直接顯示**:生成的圖片現在直接顯示在對話中,手機 app 不再需要自己找 URL 貼到瀏覽器
101
+ - 支援點擊放大查看
102
+ - 支援下載儲存
103
+ - 支援多輪迭代修改圖片(可以要求調整細節)
104
+ - **孵化技能系統**:可以在對話中建立、修改、刪除自訂技能
105
+ - 支援完整的技能 CRUD 操作
106
+ - 自動載入新建立的技能,無需重啟
107
+ - **HTML 生成技能**:可以生成多檔案 HTML 專案(支援 CSS、JS)
108
+ - **互動卡片技能**:在對話中嵌入可互動的 HTML 卡片
109
+ - **永久記憶功能**:記憶/回憶技能,可永久儲存重要資訊
110
+ - **網路搜尋強化**:支援多關鍵字平行搜尋,智慧拆解複雜問題
111
+
112
+ ### Changed
113
+ - **複製功能大幅改進**:
114
+ - 複製按鈕現在同時複製純文字和 HTML 格式
115
+ - 純文字自動移除 Markdown 符號(**、*、# 等)
116
+ - 貼到 Word 等應用時會保留格式(粗體、斜體、標題等)
117
+ - **UI 優化**:
118
+ - Email 發送成功提示 0.8 秒後自動消失
119
+ - 簡化錄音介面,移除冗餘的狀態提示
120
+ - 工具結果顯示從 "MCP Response" 更名為 "Tool Response"
121
+ - **語音功能整合**:語音轉文字完成後自動啟動會議記錄技能進行文字整理
122
+
123
+ ### Fixed
124
+ - 修正圖片生成技能路徑與 Session 迭代問題
125
+ - 修正連續工具呼叫結果被覆蓋問題
126
+ - 修正 HTML 預覽 404 問題
127
+ - 修正記憶/回憶技能安全性漏洞
128
+ - 修正技能環境變數路徑展開失敗問題(現在首輪即可成功執行)
129
+
130
+ ### Security
131
+ - 啟用 Read 工具並強化 Read/Write 路徑安全驗證
132
+ - HTML 預覽改用 Token-based 公開連結(支援 O(1) 定位)
133
+ - 修補 CVE-2025-55182 及 10 項安全漏洞
134
+ - 強化技能路徑驗證機制,防止路徑穿越攻擊
135
+
136
+ ## [1.5.0] - 2025-12-04
137
+
138
+ ### Added
139
+ - 統一附件系統,支援貼上/拖放/點選上傳檔案 (Web有拖放功能, iOS/Android沒有拖放)
140
+ - Admin CLI 新增批次建立使用者功能 (`batch provision`)
141
+ - Admin CLI 新增延長訂閱功能 (`subscription extend`)
142
+ - 網路搜尋技能,取代原有 MCP web-search
143
+ - PDF 技能 v2.0 智慧決策樹版本(支援壓縮/切割/轉文字)
144
+ - 長錄音上傳測試工具與文件
145
+
146
+ ### Changed
147
+ - 全面遷移 MCP Servers 至 Skills 架構
148
+ - Skills 使用 symlink 減少 Docker 映像檔大小(節省 ~71MB)
149
+ - GET /api/skills 端點根據平台(Web/iOS/Android)區分回傳技能列表
150
+ - 全站字體縮小 10%(144% → 130%)
151
+ - AI 頭像改為黃色並縮小字體 5%
152
+
153
+ ### Fixed
154
+ - 修正 Bash 工具相對路徑遍歷攻擊漏洞
155
+ - 修正 PreToolUse Hook bashAllowedScriptPaths undefined 錯誤
156
+ - 修正 OpenCC「報名表→報名錶」誤判問題
157
+ - 修正 Docker 建置 Capawesome Registry 連線超時問題
158
+
159
+ ### Security
160
+ - 實作 Bash 工具 5 層安全驗證機制
161
+ - 新增 PreToolUse Hook 路徑安全驗證
162
+
163
+ ### Removed
164
+ - 移除 timestamp-proof 技能
165
+ - 隱藏「+」下拉選單中的技能列表顯示
166
+
167
+ ## [1.4.2] - 2025-11-27
168
+ ### Updated - iOS & Android
169
+ - 預設 API URL 改成 app.botrun.ai
170
+
171
+ ### Updated - iOS
172
+ - iOS 使用 @capawesome/capacitor-app-update 套件來偵測有沒有更新 (原本的邏輯還是會留著)
173
+
174
+ ### Fixed - Chat
175
+ - 修正對話閒置過久導致無法繼續的問題 (Claude Code process exited)。
176
+ - 實作自動重試機制:當 Session 失效時,自動開啟新對話並重送訊息。
177
+ - **已知限制**:自動重試後會失去該次對話的短期記憶 (Context)。
178
+ - 詳情請參考文件:[Claude Agent Session Persistence](docs/claude-agent-session-persistence.md)
179
+
180
+ ## [1.4.1] - 2025-11-25
181
+ ### Fixed - iOS & Android
182
+ - capawesome 有 LiveUpdate enable 的設定,目前的程式沒有去讀取,改成會讀取
183
+ - 關閉 capawesome LiveUpdate 的功能,一直無法掌握它的更新時機
184
+
185
+ ## [5.1125.1614] - 2025-11-25
186
+
187
+ ### Updated - iOS & Android
188
+ - 送訊息的時候,如果 api連不到,不會出現 api url 的 錯誤訊息,會比較人性化一點
189
+ - 對話時,ios, android 不會自動 focus text input
190
+
191
+ ## [1.4.0] - 2025-11-24
192
+
193
+ ### Added - iOS & Android
194
+ - 支援 Capawesome Live Update,實現 OTA 更新功能
195
+
196
+ ## [1.3.9] - 2025-11-20
197
+
198
+ ### Added - Android
199
+ - Android 版本更新檢測功能,可偵測 Google Play 是否有新版本
200
+ - 版本更新提示導向 Google Play Store
201
+ - 右上角選單,會顯示自己的頭像與 email
202
+
203
+ ## [1.3.2] - 2025-11-20
204
+
205
+ ### Fixed - iOS
206
+ - iTunes API 加上 timestamp 參數,防止快取導致版本檢測錯誤
207
+
208
+ ## [1.3.0] - 2025-11-19
209
+
210
+ ### Added - iOS
211
+ - App 版本更新檢測功能,啟動時自動檢查是否有新版本
212
+ - 版本更新提示移至右側選單,提升使用者體驗
213
+ - 選單紅點提示功能,每次重新開啟 app 時顯示更新通知
214
+
215
+ ## [1.2.2] - 2025-11-19
216
+
217
+ ### Fixed - iOS
218
+ - 修正 API URL 讀取問題,確保 mobile app 正確連接後端服務
219
+
220
+ ---
221
+
222
+ [Unreleased]: https://github.com/botrun/botrun-c/compare/v1.3.0...HEAD
223
+ [1.3.0]: https://github.com/botrun/botrun-c/compare/v1.2.2...v1.3.0
224
+ [1.2.2]: https://github.com/botrun/botrun-c/releases/tag/v1.2.2