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,294 +0,0 @@
1
- #!/usr/bin/env node
2
- // 音訊轉錄腳本 - 使用 NCHC Whisper API
3
- // Usage: node transcribe.mjs "audio-file.mp3"
4
- // 環境變數: TAIDE_API_KEY, WORKING_DIR
5
-
6
- import { readFileSync, existsSync, mkdirSync, unlinkSync, readdirSync, rmdirSync } from 'fs';
7
- import { join, dirname, basename, extname, isAbsolute, relative, resolve } from 'path';
8
- import { exec } from 'child_process';
9
- import { promisify } from 'util';
10
-
11
- const execAsync = promisify(exec);
12
-
13
- // ============================================================================
14
- // 常數配置
15
- // ============================================================================
16
-
17
- const TAIDE_API_KEY = process.env.TAIDE_API_KEY;
18
- const TAIDE_BASE_URL = process.env.TAIDE_BASE_URL || 'https://portal.genai.nchc.org.tw/api/v1';
19
- const WHISPER_MODEL = 'Whisper-Large-V3';
20
- const MAX_PARALLEL = 100;
21
- const CHUNK_DURATION_SECONDS = 60;
22
- const WORKING_DIR = process.env.WORKING_DIR || process.cwd();
23
-
24
- // ============================================================================
25
- // 日誌工具
26
- // ============================================================================
27
-
28
- function log(...args) {
29
- console.error('[Audio-Transcribe]', ...args);
30
- }
31
-
32
- // ============================================================================
33
- // 路徑驗證
34
- // ============================================================================
35
-
36
- function validateAndResolvePath(filePath) {
37
- try {
38
- const absolutePath = isAbsolute(filePath)
39
- ? filePath
40
- : resolve(WORKING_DIR, filePath);
41
-
42
- const relativePath = relative(WORKING_DIR, absolutePath);
43
- if (relativePath.startsWith('..')) {
44
- return { valid: false, error: `路徑遍歷偵測: ${filePath}` };
45
- }
46
-
47
- if (!existsSync(absolutePath)) {
48
- return { valid: false, error: `檔案不存在: ${absolutePath}` };
49
- }
50
-
51
- return { valid: true, resolvedPath: absolutePath };
52
- } catch (error) {
53
- return { valid: false, error: `無效路徑: ${error}` };
54
- }
55
- }
56
-
57
- // ============================================================================
58
- // FFmpeg 音訊處理
59
- // ============================================================================
60
-
61
- async function getAudioDuration(filePath) {
62
- try {
63
- const { stdout } = await execAsync(
64
- `ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${filePath}"`
65
- );
66
- return parseFloat(stdout.trim());
67
- } catch (error) {
68
- throw new Error(`取得音訊時長失敗: ${error}`);
69
- }
70
- }
71
-
72
- async function splitAudioFile(filePath, outputDir) {
73
- try {
74
- if (!existsSync(outputDir)) {
75
- mkdirSync(outputDir, { recursive: true });
76
- }
77
-
78
- const totalDuration = await getAudioDuration(filePath);
79
- log(`音訊時長: ${totalDuration.toFixed(2)}s`);
80
-
81
- const numChunks = Math.ceil(totalDuration / CHUNK_DURATION_SECONDS);
82
- log(`切割為 ${numChunks} 段(每段 ${CHUNK_DURATION_SECONDS}s)`);
83
-
84
- const ext = extname(filePath);
85
- const baseFileName = basename(filePath, ext);
86
- const outputPattern = join(outputDir, `${baseFileName}_chunk_%03d${ext}`);
87
-
88
- const ffmpegCmd = [
89
- 'ffmpeg', '-y',
90
- '-i', `"${filePath}"`,
91
- '-f', 'segment',
92
- '-segment_time', CHUNK_DURATION_SECONDS.toString(),
93
- '-c', 'copy',
94
- '-reset_timestamps', '1',
95
- `"${outputPattern}"`
96
- ].join(' ');
97
-
98
- await execAsync(ffmpegCmd);
99
-
100
- const files = readdirSync(outputDir)
101
- .filter(f => f.startsWith(`${baseFileName}_chunk_`) && f.endsWith(ext))
102
- .sort();
103
-
104
- const chunkPaths = files.map(f => join(outputDir, f));
105
- log(`切割完成: ${chunkPaths.length} 個檔案`);
106
-
107
- return { chunkPaths, totalDuration };
108
- } catch (error) {
109
- throw new Error(`切割音訊失敗: ${error}`);
110
- }
111
- }
112
-
113
- // ============================================================================
114
- // NCHC Whisper 轉錄
115
- // ============================================================================
116
-
117
- async function transcribeAudioFile(filePath) {
118
- if (!TAIDE_API_KEY) {
119
- throw new Error('TAIDE_API_KEY 未設定');
120
- }
121
-
122
- try {
123
- log(`轉錄中: ${basename(filePath)}`);
124
-
125
- const fileBuffer = readFileSync(filePath);
126
- const formData = new FormData();
127
- const blob = new Blob([fileBuffer]);
128
- formData.append('file', blob, basename(filePath));
129
- formData.append('model', WHISPER_MODEL);
130
-
131
- const response = await fetch(`${TAIDE_BASE_URL}/audio/transcriptions`, {
132
- method: 'POST',
133
- headers: {
134
- 'Authorization': `Bearer ${TAIDE_API_KEY}`,
135
- },
136
- body: formData,
137
- });
138
-
139
- if (!response.ok) {
140
- const errorText = await response.text();
141
- throw new Error(`API 錯誤 (${response.status}): ${errorText}`);
142
- }
143
-
144
- const result = await response.json();
145
- return result.text || '';
146
- } catch (error) {
147
- log(`轉錄失敗 ${basename(filePath)}:`, error);
148
- throw error;
149
- }
150
- }
151
-
152
- async function transcribeChunksInParallel(chunkPaths, maxParallel = MAX_PARALLEL) {
153
- const results = new Array(chunkPaths.length);
154
- const queue = chunkPaths.map((path, index) => ({ path, index }));
155
- let completed = 0;
156
- let failed = 0;
157
-
158
- log(`開始平行轉錄(最多 ${maxParallel} 並發)`);
159
-
160
- async function worker() {
161
- while (queue.length > 0) {
162
- const item = queue.shift();
163
- if (!item) break;
164
-
165
- const { path, index } = item;
166
- try {
167
- const text = await transcribeAudioFile(path);
168
- results[index] = text;
169
- completed++;
170
- log(`進度: ${completed}/${chunkPaths.length}`);
171
- } catch (error) {
172
- failed++;
173
- results[index] = `[轉錄失敗: ${basename(path)}]`;
174
- }
175
- }
176
- }
177
-
178
- const workers = Array.from(
179
- { length: Math.min(maxParallel, chunkPaths.length) },
180
- () => worker()
181
- );
182
-
183
- await Promise.all(workers);
184
- log(`轉錄完成: ${completed} 成功, ${failed} 失敗`);
185
- return results;
186
- }
187
-
188
- // ============================================================================
189
- // 清理臨時檔案
190
- // ============================================================================
191
-
192
- function cleanupChunks(chunkPaths, tempDir) {
193
- for (const path of chunkPaths) {
194
- try {
195
- if (existsSync(path)) {
196
- unlinkSync(path);
197
- }
198
- } catch {
199
- // ignore
200
- }
201
- }
202
-
203
- if (tempDir && existsSync(tempDir)) {
204
- try {
205
- rmdirSync(tempDir);
206
- } catch {
207
- // ignore
208
- }
209
- }
210
- }
211
-
212
- // ============================================================================
213
- // Main
214
- // ============================================================================
215
-
216
- async function main() {
217
- const args = process.argv.slice(2);
218
-
219
- if (args.length === 0) {
220
- console.error('❌ 請提供音訊檔案路徑');
221
- console.error('');
222
- console.error('Usage: node transcribe.mjs "audio-file.mp3"');
223
- console.error('');
224
- console.error('環境變數:');
225
- console.error(' TAIDE_API_KEY - 國網中心 API 金鑰(必須)');
226
- console.error(' WORKING_DIR - 工作目錄(預設: process.cwd())');
227
- process.exit(1);
228
- }
229
-
230
- const filePath = args[0];
231
-
232
- // 檢查 API Key
233
- if (!TAIDE_API_KEY) {
234
- console.error('❌ TAIDE_API_KEY 環境變數未設定');
235
- process.exit(1);
236
- }
237
-
238
- // 驗證路徑
239
- const validation = validateAndResolvePath(filePath);
240
- if (!validation.valid) {
241
- console.error(`❌ ${validation.error}`);
242
- process.exit(1);
243
- }
244
-
245
- const resolvedPath = validation.resolvedPath;
246
-
247
- // 建立臨時目錄
248
- const fileName = basename(resolvedPath, extname(resolvedPath));
249
- const uniqueId = `${fileName}_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
250
- const tempDir = join('/tmp', `.audio-chunks-${uniqueId}`);
251
-
252
- try {
253
- // 切割音訊
254
- const { chunkPaths, totalDuration } = await splitAudioFile(resolvedPath, tempDir);
255
-
256
- // 平行轉錄
257
- const transcripts = await transcribeChunksInParallel(chunkPaths);
258
-
259
- // 清理
260
- cleanupChunks(chunkPaths, tempDir);
261
-
262
- // 組合結果
263
- const finalText = transcripts
264
- .map((text, index) => {
265
- const startTime = index * CHUNK_DURATION_SECONDS;
266
- const minutes = Math.floor(startTime / 60);
267
- const seconds = startTime % 60;
268
- const timestamp = `[${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}]`;
269
- return `${timestamp} ${text}`;
270
- })
271
- .join('\n\n');
272
-
273
- // 輸出結果
274
- console.log(`## 轉錄結果\n`);
275
- console.log(`**統計資訊:**`);
276
- console.log(`- 總時長: ${(totalDuration / 60).toFixed(2)} 分鐘`);
277
- console.log(`- 切割段數: ${chunkPaths.length}`);
278
- console.log(`- 總字數: ${finalText.length} 字元\n`);
279
- console.log(`**轉錄內容:**\n`);
280
- console.log(finalText);
281
-
282
- } catch (error) {
283
- // 清理(即使失敗也要清理)
284
- if (existsSync(tempDir)) {
285
- const chunks = readdirSync(tempDir).map(f => join(tempDir, f));
286
- cleanupChunks(chunks, tempDir);
287
- }
288
-
289
- console.error(`\n❌ 轉錄失敗:${error.message}`);
290
- process.exit(1);
291
- }
292
- }
293
-
294
- main();
@@ -1,338 +0,0 @@
1
- ---
2
- name: 零幻覺證明技能
3
- description: 當使用者說「零幻覺」時啟動
4
- ---
5
-
6
- 嚴格驗證所有引證來源的真實性,包含網址引證、檔案引證、原文引證、頁碼引證等。當使用者輸入本技能的完整名稱(「零幻覺證明技能」),即代表要求 AI 載入並啟動本技能。假定所有內容「有幻覺」,透過上網查證、檔案驗證、交叉比對等方式進行「零幻覺證明」,確保資訊的可驗證性和真實性。當使用者說「零幻覺證明」、「驗證引證」、「查證」、「驗算」、「檢核真實性」或需要驗證引用來源時使用。⚠️ 輸出必須包含完整 URL、完整段落內容,禁止省略任何欄位。(v5.1117.1632)
7
-
8
- # 🔍 零幻覺證明技能
9
-
10
- **圖示**:🔍
11
-
12
- ## 功能說明
13
- 提供嚴格的引證驗證和真實性查核功能:
14
- 1. **網址引證驗證**:檢驗 URL 有效性、抓取實際內容、比對引證文字
15
- 2. **檔案引證驗證**:檢驗檔名存在性、原文引證、頁碼引證的準確性
16
- 3. **交叉驗證**:多來源比對、時間戳記驗證、版本一致性檢核
17
- 4. **零幻覺證明**:假定所有內容有幻覺,逐項嚴格驗證後出具證明報告
18
-
19
- ## 核心原則
20
- **假定一切皆幻覺,證明才是真實**
21
- - ❌ 不信任任何未驗證的引證
22
- - ✅ 所有引證必須逐一驗證
23
- - ✅ 驗證失敗 = 標記為「無法證明」
24
- - ✅ 提供完整驗證路徑和證據
25
-
26
- ## 觸發條件
27
- - 使用者明確要求「零幻覺證明」、「驗證引證」
28
- - 使用者說「查證」、「驗算」、「檢核真實性」
29
- - 使用者提供了需要驗證的引證內容(網址、檔案、頁碼等)
30
- - 對話內容包含大量引用,需要確保準確性
31
-
32
- ## 執行流程
33
-
34
- ### 階段一:拆解引證項目
35
- 分析使用者提供的內容,識別所有需要驗證的項目:
36
- 1. **網址引證**:提取所有 URL
37
- 2. **檔案引證**:提取檔名、路徑
38
- 3. **原文引證**:提取聲稱的引用文字
39
- 4. **頁碼引證**:提取頁碼資訊
40
- 5. **其他引證**:日期、版本號、作者等
41
-
42
- ### 階段二:逐項驗證
43
-
44
- #### 2.1 網址引證驗證
45
- 對於每個 URL:
46
- 1. **可達性測試**:使用 WebFetch 確認 URL 可訪問
47
- 2. **內容抓取**:獲取網頁實際內容
48
- 3. **引文比對**:在實際內容中搜尋聲稱的引證文字
49
- 4. **結果判定**:
50
- - ✅ **通過**:找到完全匹配的引證文字
51
- - ⚠️ **部分匹配**:找到相似但不完全相同的內容
52
- - ❌ **失敗**:未找到引證文字 或 URL 無法訪問
53
-
54
- **驗證報告格式**(所有欄位皆為必填,不可省略):
55
- ```
56
- 🌐 網址引證驗證 #1
57
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
58
- 📌 來源 URL(必填)
59
- https://example.com/article
60
-
61
- 💬 聲稱引證(必填)
62
- "AI 將在 2025 年達到新突破"
63
-
64
- ✅ 驗證結果
65
- 通過
66
-
67
- 📄 實際內容段落(必填 - 完整段落,不可摘要)
68
- "根據業界專家分析,AI 將在 2025 年達到新突破,專家預測
69
- 這將改變整個產業格局。多位學者指出,機器學習技術的進步
70
- 將帶來革命性的應用。"
71
-
72
- 📍 匹配位置(必填)
73
- 第 3 段第 2 行
74
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
- ```
76
-
77
- **⚠️ 嚴格要求**:
78
- - ❌ 禁止省略任何欄位
79
- - ❌ 禁止用「...」省略段落內容
80
- - ✅ 必須提供完整可點擊的 URL
81
- - ✅ 必須提供完整的實際內容段落(至少包含引證文字前後各 1-2 句)
82
-
83
- #### 2.2 檔案引證驗證
84
- 對於每個檔案引證:
85
- 1. **檔案存在性**:使用 tree-view 或 secure-rg 確認檔案存在
86
- 2. **原文驗證**:使用 secure-read 讀取檔案內容
87
- 3. **頁碼驗證**:
88
- - PDF:使用 pdf-split 的頁碼對應關係
89
- - 其他:使用行號或段落標記
90
- 4. **引文比對**:在實際檔案中搜尋引證文字
91
- 5. **結果判定**:同網址驗證標準
92
-
93
- **驗證報告格式**(所有欄位皆為必填,不可省略):
94
- ```
95
- 📄 檔案引證驗證 #1
96
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
97
- 📁 檔名(必填)
98
- /uploads/report.pdf
99
-
100
- 📖 聲稱頁碼(必填)
101
- 第 23 頁
102
-
103
- 💬 聲稱引證(必填)
104
- "市場佔有率達到 45%"
105
-
106
- ✅ 驗證結果
107
- 通過
108
-
109
- 📄 實際內容段落(必填 - 完整段落,不可摘要)
110
- "根據 2024 Q3 財務報告分析,本公司市場佔有率達到 45%,
111
- 較去年同期成長 8 個百分點。這項成長主要來自於新產品線
112
- 的成功推出以及海外市場的拓展。"
113
-
114
- 📍 實際位置(必填)
115
- 第 23 頁(物理頁碼:page_023.pdf)
116
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
117
- ```
118
-
119
- **⚠️ 嚴格要求**:
120
- - ❌ 禁止省略任何欄位
121
- - ❌ 禁止用「...」省略段落內容
122
- - ✅ 必須提供完整的實際內容段落(至少包含引證文字前後各 1-2 句)
123
- - ✅ 必須標註實際位置(頁碼、行號等)
124
-
125
- #### 2.3 交叉驗證
126
- 當有多個引證來源時:
127
- 1. **一致性檢查**:比對不同來源的相同資訊
128
- 2. **時間序列驗證**:檢查時間戳記的合理性
129
- 3. **版本一致性**:確認引用的版本號正確
130
- 4. **邏輯驗證**:檢查數據、推論的邏輯一致性
131
-
132
- ### 階段三:出具零幻覺證明報告
133
-
134
- **報告結構**(所有欄位必填,包含完整 URL 和段落內容):
135
- ```
136
- 🔍 零幻覺證明報告
137
- 生成時間: 2025-11-17 15:50:00
138
- 驗證項目總數: 3
139
-
140
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
141
- ✅ 驗證通過: 1 項
142
- ⚠️ 部分匹配: 1 項
143
- ❌ 驗證失敗: 1 項
144
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
145
-
146
- 【詳細驗證結果】
147
-
148
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
149
- 1. ✅ 網址引證驗證 - 通過
150
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
151
- 📌 來源 URL
152
- https://example.com/news/ai-market-2025
153
-
154
- 💬 聲稱引證
155
- "AI 市場規模達 500 億美元"
156
-
157
- 📄 實際內容段落(完整段落)
158
- "根據市場研究機構最新報告,2025 年全球 AI 市場規模達 500 億美元,
159
- 較 2024 年成長 35%。分析師指出,生成式 AI 的快速普及是主要成長
160
- 動力,預期未來三年將持續保持高速成長態勢。"
161
-
162
- 📍 匹配位置
163
- 第 2 段第 1 行
164
-
165
- ✅ 驗證結果:完全匹配
166
-
167
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
168
- 2. ⚠️ 網址引證驗證 - 部分匹配
169
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
170
- 📌 來源 URL
171
- https://example.com/stats/user-growth
172
-
173
- 💬 聲稱引證
174
- "使用者數量破千萬"
175
-
176
- 📄 實際內容段落(完整段落)
177
- "根據官方數據統計,截至 2025 年第三季,平台活躍使用者數量
178
- 接近千萬大關,達到 980 萬人。公司預計年底前可望突破千萬人
179
- 的里程碑,成為業界重要指標。"
180
-
181
- 📍 匹配位置
182
- 第 1 段第 2 行
183
-
184
- ⚠️ 驗證結果:部分匹配
185
- 原文:「接近千萬」
186
- 聲稱:「破千萬」
187
- 建議:修正為「接近千萬」或「即將破千萬」
188
-
189
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
190
- 3. ❌ 檔案引證驗證 - 失敗
191
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
192
- 📁 檔名
193
- data.xlsx
194
-
195
- 💬 聲稱引證
196
- "營收 1000 萬"
197
-
198
- 📖 聲稱位置
199
- 第 5 行
200
-
201
- ❌ 驗證結果:失敗
202
- 問題:檔案不存在或無法訪問
203
- 建議:提供正確的檔案路徑或上傳檔案
204
-
205
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
206
- 📊 可信度評分: 33% (1/3 通過)
207
- 建議: 修正或移除 2 項未通過驗證的引證
208
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
209
- ```
210
-
211
- **⚠️ 報告嚴格要求**:
212
- - ✅ 每項驗證必須包含完整 URL(可點擊)
213
- - ✅ 每項驗證必須包含完整實際內容段落(不可省略或摘要)
214
- - ✅ 必須標註匹配位置(段落、行號等)
215
- - ❌ 禁止使用「在原文找到」這類模糊描述
216
- - ❌ 禁止省略任何必填欄位
217
-
218
- ## 使用的 MCP Tools
219
-
220
- ### 網址驗證工具
221
- - WebFetch - 抓取網頁內容進行比對
222
-
223
- ### 檔案驗證工具
224
- - `mcp__tree-view__list_files` - 確認檔案存在性
225
- - `mcp__secure-rg__secure_rg_search` - 搜尋檔案中的引證文字
226
- - `mcp__secure-read__secure_read` - 讀取檔案內容驗證
227
- - `mcp__pdf-split__split_pdf` - PDF 頁碼對應驗證
228
-
229
- ### 搜尋驗證工具
230
- - `mcp__web-search__web_search` - 輔助查證資訊來源
231
-
232
- ## 驗證標準
233
-
234
- ### ✅ 通過標準
235
- - 引證文字在來源中**完全匹配**(允許標點符號差異)
236
- - 頁碼、位置資訊**精準對應**
237
- - URL 可正常訪問且內容與聲稱一致
238
-
239
- ### ⚠️ 部分匹配標準
240
- - 引證文字在來源中找到**高度相似**的內容(90% 以上相似度)
241
- - 語義相同但用詞略有差異
242
- - 位置資訊差異在可接受範圍內(±1 頁)
243
-
244
- ### ❌ 失敗標準
245
- - 引證文字在來源中**完全找不到**
246
- - URL 無法訪問或返回 404
247
- - 檔案不存在
248
- - 頁碼、位置資訊明顯錯誤
249
- - 內容與聲稱完全不符
250
-
251
- ## 最佳實踐
252
-
253
- ### 使用者應提供
254
- 1. **明確的引證內容**:完整的引用文字(加引號)
255
- 2. **完整的來源資訊**:
256
- - 網址:完整 URL
257
- - 檔案:檔名 + 路徑
258
- - 位置:頁碼、段落、行號等
259
- 3. **上下文資訊**:幫助定位引證內容
260
-
261
- ### 技能執行原則
262
- 1. **逐項驗證**:不跳過任何引證項目
263
- 2. **平行處理**:同時驗證多個獨立項目(提高效率)
264
- 3. **詳細記錄**:保留所有驗證路徑和證據
265
- 4. **客觀判定**:嚴格按照標準,不寬鬆處理
266
- 5. **建設性建議**:對失敗項目提供改善方向
267
-
268
- ## 注意事項
269
-
270
- ### ⚠️ 輸出格式強制要求(絕對不可違反)
271
- 1. **完整 URL 必填**
272
- - ✅ 必須:`https://example.com/article`
273
- - ❌ 禁止:省略 URL 或用「來源網址」代替
274
-
275
- 2. **完整段落內容必填**
276
- - ✅ 必須:提供完整段落(引證文字前後各 1-2 句)
277
- - ❌ 禁止:「在原文第 2 段找到」
278
- - ❌ 禁止:用「...」省略內容
279
- - ❌ 禁止:只寫摘要
280
-
281
- 3. **匹配位置必填**
282
- - ✅ 必須:「第 3 段第 2 行」或「page_023.pdf」
283
- - ❌ 禁止:省略位置資訊
284
-
285
- 4. **所有欄位嚴格遵守**
286
- - 📌 來源 URL(必填)
287
- - 💬 聲稱引證(必填)
288
- - 📄 實際內容段落(必填)
289
- - 📍 匹配位置(必填)
290
- - ✅ 驗證結果(必填)
291
-
292
- ### 一般執行原則
293
- - ✅ 假定一切皆幻覺,逐項嚴格驗證
294
- - ✅ 對於無法驗證的項目,明確標記為「無法證明」
295
- - ✅ 提供完整的驗證證據和匹配位置
296
- - ✅ 使用平行驗證提高效率(一次性呼叫多個工具)
297
- - ❌ 不要因為部分通過就放鬆標準
298
- - ❌ 不要省略驗證步驟
299
- - ❌ 不要在報告中隱藏失敗項目
300
-
301
- ## 範例使用
302
-
303
- ### 使用者請求
304
- ```
305
- 請用零幻覺證明技能驗證以下引證:
306
-
307
- 1. 根據 https://example.com/report 所述,"AI 市場在 2024 年達到 500 億美元"
308
- 2. report.pdf 第 23 頁提到 "年成長率為 25%"
309
- 3. 根據 data.csv 第 100 行,"用戶滿意度 4.5 分"
310
- ```
311
-
312
- ### 技能回應
313
- ```
314
- 🔍 開始執行零幻覺證明驗證...
315
-
316
- 【階段一】拆解引證項目
317
- 識別到 3 項需要驗證的引證:
318
- 1. 網址引證 (https://example.com/report)
319
- 2. 檔案引證 (report.pdf, 第 23 頁)
320
- 3. 檔案引證 (data.csv, 第 100 行)
321
-
322
- 【階段二】逐項驗證中...
323
- [平行驗證網址和檔案]
324
-
325
- 【階段三】零幻覺證明報告
326
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
327
- ✅ 驗證通過: 2 項
328
- ❌ 驗證失敗: 1 項
329
- 可信度評分: 67% (2/3)
330
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
-
332
- 詳細結果:
333
- 1. ✅ [網址引證] 證明通過
334
- 2. ✅ [檔案引證] 證明通過
335
- 3. ❌ [檔案引證] data.csv 第 100 行不存在(檔案僅有 50 行)
336
-
337
- 建議:移除或修正第 3 項引證
338
- ```