@vicoa/cli 1.7.12-win32-x64 → 1.7.12

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 (330) hide show
  1. package/README.md +82 -0
  2. package/bin/vicoa.js +38 -0
  3. package/package.json +30 -10
  4. package/bin/_internal/VCRUNTIME140.dll +0 -0
  5. package/bin/_internal/VCRUNTIME140_1.dll +0 -0
  6. package/bin/_internal/_asyncio.pyd +0 -0
  7. package/bin/_internal/_bz2.pyd +0 -0
  8. package/bin/_internal/_cffi_backend.cp312-win_amd64.pyd +0 -0
  9. package/bin/_internal/_ctypes.pyd +0 -0
  10. package/bin/_internal/_decimal.pyd +0 -0
  11. package/bin/_internal/_hashlib.pyd +0 -0
  12. package/bin/_internal/_lzma.pyd +0 -0
  13. package/bin/_internal/_multiprocessing.pyd +0 -0
  14. package/bin/_internal/_overlapped.pyd +0 -0
  15. package/bin/_internal/_queue.pyd +0 -0
  16. package/bin/_internal/_socket.pyd +0 -0
  17. package/bin/_internal/_sqlite3.pyd +0 -0
  18. package/bin/_internal/_ssl.pyd +0 -0
  19. package/bin/_internal/_uuid.pyd +0 -0
  20. package/bin/_internal/_wmi.pyd +0 -0
  21. package/bin/_internal/_zoneinfo.pyd +0 -0
  22. package/bin/_internal/aiofile-3.12.3.dist-info/INSTALLER +0 -1
  23. package/bin/_internal/aiofile-3.12.3.dist-info/METADATA +0 -564
  24. package/bin/_internal/aiofile-3.12.3.dist-info/RECORD +0 -15
  25. package/bin/_internal/aiofile-3.12.3.dist-info/WHEEL +0 -4
  26. package/bin/_internal/aiofile-3.12.3.dist-info/licenses/LICENCE +0 -195
  27. package/bin/_internal/aiofile-3.12.3.dist-info/licenses/LICENCE.md +0 -195
  28. package/bin/_internal/aiohttp/_http_parser.cp312-win_amd64.pyd +0 -0
  29. package/bin/_internal/aiohttp/_http_writer.cp312-win_amd64.pyd +0 -0
  30. package/bin/_internal/aiohttp/_websocket/mask.cp312-win_amd64.pyd +0 -0
  31. package/bin/_internal/aiohttp/_websocket/reader_c.cp312-win_amd64.pyd +0 -0
  32. package/bin/_internal/aiohttp-3.14.3.dist-info/INSTALLER +0 -1
  33. package/bin/_internal/aiohttp-3.14.3.dist-info/METADATA +0 -257
  34. package/bin/_internal/aiohttp-3.14.3.dist-info/RECORD +0 -130
  35. package/bin/_internal/aiohttp-3.14.3.dist-info/WHEEL +0 -5
  36. package/bin/_internal/aiohttp-3.14.3.dist-info/licenses/LICENSE.txt +0 -201
  37. package/bin/_internal/aiohttp-3.14.3.dist-info/licenses/vendor/llhttp/LICENSE +0 -22
  38. package/bin/_internal/aiohttp-3.14.3.dist-info/top_level.txt +0 -1
  39. package/bin/_internal/api-ms-win-core-console-l1-1-0.dll +0 -0
  40. package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  41. package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
  42. package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  43. package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  44. package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
  45. package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
  46. package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
  47. package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
  48. package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
  49. package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
  50. package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  51. package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
  52. package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  53. package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
  54. package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
  55. package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  56. package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  57. package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  58. package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  59. package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
  60. package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  61. package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
  62. package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
  63. package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
  64. package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  65. package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
  66. package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  67. package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
  68. package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  69. package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  70. package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  71. package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  72. package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  73. package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  74. package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
  75. package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
  76. package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  77. package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  78. package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
  79. package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
  80. package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  81. package/bin/_internal/attrs-26.1.0.dist-info/INSTALLER +0 -1
  82. package/bin/_internal/attrs-26.1.0.dist-info/METADATA +0 -199
  83. package/bin/_internal/attrs-26.1.0.dist-info/RECORD +0 -55
  84. package/bin/_internal/attrs-26.1.0.dist-info/WHEEL +0 -4
  85. package/bin/_internal/attrs-26.1.0.dist-info/licenses/LICENSE +0 -21
  86. package/bin/_internal/base_library.zip +0 -0
  87. package/bin/_internal/certifi/cacert.pem +0 -3959
  88. package/bin/_internal/certifi/py.typed +0 -0
  89. package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
  90. package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
  91. package/bin/_internal/click-8.4.2.dist-info/INSTALLER +0 -1
  92. package/bin/_internal/click-8.4.2.dist-info/METADATA +0 -84
  93. package/bin/_internal/click-8.4.2.dist-info/RECORD +0 -40
  94. package/bin/_internal/click-8.4.2.dist-info/WHEEL +0 -4
  95. package/bin/_internal/click-8.4.2.dist-info/licenses/LICENSE.txt +0 -28
  96. package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
  97. package/bin/_internal/cryptography-50.0.0.dist-info/INSTALLER +0 -1
  98. package/bin/_internal/cryptography-50.0.0.dist-info/METADATA +0 -110
  99. package/bin/_internal/cryptography-50.0.0.dist-info/RECORD +0 -199
  100. package/bin/_internal/cryptography-50.0.0.dist-info/WHEEL +0 -4
  101. package/bin/_internal/cryptography-50.0.0.dist-info/licenses/LICENSE +0 -3
  102. package/bin/_internal/cryptography-50.0.0.dist-info/licenses/LICENSE.APACHE +0 -202
  103. package/bin/_internal/cryptography-50.0.0.dist-info/licenses/LICENSE.BSD +0 -27
  104. package/bin/_internal/cryptography-50.0.0.dist-info/sboms/cryptography-rust.cyclonedx.json +0 -1365
  105. package/bin/_internal/cryptography-50.0.0.dist-info/sboms/sbom.json +0 -43
  106. package/bin/_internal/email_validator-2.3.0.dist-info/INSTALLER +0 -1
  107. package/bin/_internal/email_validator-2.3.0.dist-info/METADATA +0 -466
  108. package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +0 -27
  109. package/bin/_internal/email_validator-2.3.0.dist-info/WHEEL +0 -5
  110. package/bin/_internal/email_validator-2.3.0.dist-info/entry_points.txt +0 -2
  111. package/bin/_internal/email_validator-2.3.0.dist-info/licenses/LICENSE +0 -27
  112. package/bin/_internal/email_validator-2.3.0.dist-info/top_level.txt +0 -1
  113. package/bin/_internal/fastmcp-3.4.7.dist-info/INSTALLER +0 -1
  114. package/bin/_internal/fastmcp-3.4.7.dist-info/METADATA +0 -160
  115. package/bin/_internal/fastmcp-3.4.7.dist-info/RECORD +0 -5
  116. package/bin/_internal/fastmcp-3.4.7.dist-info/WHEEL +0 -4
  117. package/bin/_internal/fastmcp-3.4.7.dist-info/licenses/LICENSE +0 -201
  118. package/bin/_internal/frozenlist/_frozenlist.cp312-win_amd64.pyd +0 -0
  119. package/bin/_internal/httpcore2-2.12.0.dist-info/INSTALLER +0 -1
  120. package/bin/_internal/httpcore2-2.12.0.dist-info/METADATA +0 -737
  121. package/bin/_internal/httpcore2-2.12.0.dist-info/RECORD +0 -68
  122. package/bin/_internal/httpcore2-2.12.0.dist-info/WHEEL +0 -4
  123. package/bin/_internal/httpcore2-2.12.0.dist-info/licenses/LICENSE.md +0 -28
  124. package/bin/_internal/httpx2-2.12.0.dist-info/INSTALLER +0 -1
  125. package/bin/_internal/httpx2-2.12.0.dist-info/METADATA +0 -230
  126. package/bin/_internal/httpx2-2.12.0.dist-info/RECORD +0 -68
  127. package/bin/_internal/httpx2-2.12.0.dist-info/WHEEL +0 -4
  128. package/bin/_internal/httpx2-2.12.0.dist-info/entry_points.txt +0 -2
  129. package/bin/_internal/httpx2-2.12.0.dist-info/licenses/LICENSE.md +0 -13
  130. package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +0 -33
  131. package/bin/_internal/integrations/github/claude-code-action/CLAUDE.md +0 -136
  132. package/bin/_internal/integrations/github/claude-code-action/CODE_OF_CONDUCT.md +0 -128
  133. package/bin/_internal/integrations/github/claude-code-action/CONTRIBUTING.md +0 -116
  134. package/bin/_internal/integrations/github/claude-code-action/LICENSE +0 -21
  135. package/bin/_internal/integrations/github/claude-code-action/README.md +0 -53
  136. package/bin/_internal/integrations/github/claude-code-action/ROADMAP.md +0 -20
  137. package/bin/_internal/integrations/github/claude-code-action/SECURITY.md +0 -15
  138. package/bin/_internal/integrations/github/claude-code-action/action.yml +0 -294
  139. package/bin/_internal/integrations/github/claude-code-action/base-action/CLAUDE.md +0 -60
  140. package/bin/_internal/integrations/github/claude-code-action/base-action/CODE_OF_CONDUCT.md +0 -128
  141. package/bin/_internal/integrations/github/claude-code-action/base-action/CONTRIBUTING.md +0 -136
  142. package/bin/_internal/integrations/github/claude-code-action/base-action/LICENSE +0 -21
  143. package/bin/_internal/integrations/github/claude-code-action/base-action/MIRROR_DISCLAIMER.md +0 -11
  144. package/bin/_internal/integrations/github/claude-code-action/base-action/README.md +0 -521
  145. package/bin/_internal/integrations/github/claude-code-action/base-action/action.yml +0 -149
  146. package/bin/_internal/integrations/github/claude-code-action/base-action/bun.lock +0 -54
  147. package/bin/_internal/integrations/github/claude-code-action/base-action/examples/issue-triage.yml +0 -108
  148. package/bin/_internal/integrations/github/claude-code-action/base-action/package.json +0 -23
  149. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/install-hooks.sh +0 -13
  150. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/pre-push +0 -46
  151. package/bin/_internal/integrations/github/claude-code-action/base-action/src/index.ts +0 -82
  152. package/bin/_internal/integrations/github/claude-code-action/base-action/src/prepare-prompt.ts +0 -82
  153. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-claude.ts +0 -257
  154. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-vicoa.ts +0 -301
  155. package/bin/_internal/integrations/github/claude-code-action/base-action/src/setup-claude-code-settings.ts +0 -68
  156. package/bin/_internal/integrations/github/claude-code-action/base-action/src/validate-env.ts +0 -54
  157. package/bin/_internal/integrations/github/claude-code-action/base-action/test-local.sh +0 -12
  158. package/bin/_internal/integrations/github/claude-code-action/base-action/test-mcp-local.sh +0 -18
  159. package/bin/_internal/integrations/github/claude-code-action/base-action/tsconfig.json +0 -30
  160. package/bin/_internal/integrations/github/claude-code-action/bun.lock +0 -384
  161. package/bin/_internal/integrations/github/claude-code-action/docs/capabilities-and-limitations.md +0 -33
  162. package/bin/_internal/integrations/github/claude-code-action/docs/cloud-providers.md +0 -99
  163. package/bin/_internal/integrations/github/claude-code-action/docs/configuration.md +0 -345
  164. package/bin/_internal/integrations/github/claude-code-action/docs/custom-automations.md +0 -113
  165. package/bin/_internal/integrations/github/claude-code-action/docs/experimental.md +0 -128
  166. package/bin/_internal/integrations/github/claude-code-action/docs/faq.md +0 -205
  167. package/bin/_internal/integrations/github/claude-code-action/docs/migration-guide.md +0 -261
  168. package/bin/_internal/integrations/github/claude-code-action/docs/security.md +0 -38
  169. package/bin/_internal/integrations/github/claude-code-action/docs/setup.md +0 -146
  170. package/bin/_internal/integrations/github/claude-code-action/docs/usage.md +0 -213
  171. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/auto-fix-ci.yml +0 -97
  172. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/commands/fix-ci.md +0 -127
  173. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/auto-fix-ci-signed.yml +0 -97
  174. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/commands/fix-ci-signed.md +0 -148
  175. package/bin/_internal/integrations/github/claude-code-action/examples/issue-deduplication.yml +0 -63
  176. package/bin/_internal/integrations/github/claude-code-action/examples/issue-triage.yml +0 -75
  177. package/bin/_internal/integrations/github/claude-code-action/examples/vicoa.yml +0 -75
  178. package/bin/_internal/integrations/github/claude-code-action/package.json +0 -31
  179. package/bin/_internal/integrations/github/claude-code-action/scripts/install-hooks.sh +0 -13
  180. package/bin/_internal/integrations/github/claude-code-action/scripts/pre-commit +0 -46
  181. package/bin/_internal/integrations/github/claude-code-action/scripts/setup-network-restrictions.sh +0 -123
  182. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/index.ts +0 -799
  183. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/types.ts +0 -102
  184. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/collect-inputs.ts +0 -58
  185. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/format-turns.ts +0 -465
  186. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/prepare.ts +0 -98
  187. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/update-comment-link.ts +0 -245
  188. package/bin/_internal/integrations/github/claude-code-action/src/github/api/client.ts +0 -23
  189. package/bin/_internal/integrations/github/claude-code-action/src/github/api/config.ts +0 -4
  190. package/bin/_internal/integrations/github/claude-code-action/src/github/api/queries/github.ts +0 -117
  191. package/bin/_internal/integrations/github/claude-code-action/src/github/context.ts +0 -277
  192. package/bin/_internal/integrations/github/claude-code-action/src/github/data/fetcher.ts +0 -233
  193. package/bin/_internal/integrations/github/claude-code-action/src/github/data/formatter.ts +0 -144
  194. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch-cleanup.ts +0 -132
  195. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch.ts +0 -163
  196. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comment-logic.ts +0 -203
  197. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/common.ts +0 -33
  198. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/create-initial.ts +0 -111
  199. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-claude-comment.ts +0 -70
  200. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-with-branch.ts +0 -57
  201. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/git-config.ts +0 -62
  202. package/bin/_internal/integrations/github/claude-code-action/src/github/token.ts +0 -108
  203. package/bin/_internal/integrations/github/claude-code-action/src/github/types.ts +0 -98
  204. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/image-downloader.ts +0 -246
  205. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/sanitizer.ts +0 -100
  206. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/actor.ts +0 -64
  207. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/permissions.ts +0 -47
  208. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/trigger.ts +0 -148
  209. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-actions-server.ts +0 -279
  210. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-comment-server.ts +0 -101
  211. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-file-ops-server.ts +0 -677
  212. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-inline-comment-server.ts +0 -184
  213. package/bin/_internal/integrations/github/claude-code-action/src/mcp/install-mcp-server.ts +0 -201
  214. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/index.ts +0 -152
  215. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/parse-tools.ts +0 -22
  216. package/bin/_internal/integrations/github/claude-code-action/src/modes/detector.ts +0 -66
  217. package/bin/_internal/integrations/github/claude-code-action/src/modes/registry.ts +0 -54
  218. package/bin/_internal/integrations/github/claude-code-action/src/modes/tag/index.ts +0 -187
  219. package/bin/_internal/integrations/github/claude-code-action/src/modes/types.ts +0 -100
  220. package/bin/_internal/integrations/github/claude-code-action/src/prepare/index.ts +0 -20
  221. package/bin/_internal/integrations/github/claude-code-action/src/prepare/types.ts +0 -20
  222. package/bin/_internal/integrations/github/claude-code-action/src/utils/retry.ts +0 -40
  223. package/bin/_internal/integrations/github/claude-code-action/tsconfig.json +0 -30
  224. package/bin/_internal/integrations/headless/tests/README.md +0 -58
  225. package/bin/_internal/integrations/n8n/LICENSE +0 -21
  226. package/bin/_internal/integrations/n8n/README.md +0 -298
  227. package/bin/_internal/integrations/n8n/package-lock.json +0 -2989
  228. package/bin/_internal/integrations/n8n/package.json +0 -68
  229. package/bin/_internal/integrations/n8n/src/credentials/OmnaraApi.credentials.ts +0 -52
  230. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.json +0 -35
  231. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.ts +0 -304
  232. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/index.ts +0 -37
  233. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/send.operation.ts +0 -151
  234. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/sendAndWait.operation.ts +0 -252
  235. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/end.operation.ts +0 -56
  236. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/index.ts +0 -29
  237. package/bin/_internal/integrations/n8n/src/nodes/Omnara/vicoa.png +0 -0
  238. package/bin/_internal/integrations/n8n/src/utils/GenericFunctions.ts +0 -93
  239. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/configureWaitTillDate.ts +0 -42
  240. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/descriptions.ts +0 -20
  241. package/bin/_internal/integrations/n8n/src/utils/sendAndWaitWebhook.ts +0 -72
  242. package/bin/_internal/integrations/n8n/tsconfig.json +0 -20
  243. package/bin/_internal/jiter/jiter.cp312-win_amd64.pyd +0 -0
  244. package/bin/_internal/jsonschema/benchmarks/issue232/issue.json +0 -2653
  245. package/bin/_internal/jsonschema-4.26.0.dist-info/INSTALLER +0 -1
  246. package/bin/_internal/jsonschema-4.26.0.dist-info/METADATA +0 -170
  247. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +0 -82
  248. package/bin/_internal/jsonschema-4.26.0.dist-info/WHEEL +0 -4
  249. package/bin/_internal/jsonschema-4.26.0.dist-info/entry_points.txt +0 -2
  250. package/bin/_internal/jsonschema-4.26.0.dist-info/licenses/COPYING +0 -19
  251. package/bin/_internal/jsonschema_specifications/schemas/draft201909/metaschema.json +0 -42
  252. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +0 -56
  253. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/content +0 -17
  254. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/core +0 -57
  255. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/format +0 -14
  256. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +0 -37
  257. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/validation +0 -98
  258. package/bin/_internal/jsonschema_specifications/schemas/draft202012/metaschema.json +0 -58
  259. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +0 -48
  260. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/content +0 -17
  261. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/core +0 -51
  262. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +0 -14
  263. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +0 -14
  264. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +0 -37
  265. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +0 -15
  266. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/validation +0 -98
  267. package/bin/_internal/jsonschema_specifications/schemas/draft3/metaschema.json +0 -172
  268. package/bin/_internal/jsonschema_specifications/schemas/draft4/metaschema.json +0 -149
  269. package/bin/_internal/jsonschema_specifications/schemas/draft6/metaschema.json +0 -153
  270. package/bin/_internal/jsonschema_specifications/schemas/draft7/metaschema.json +0 -166
  271. package/bin/_internal/libcrypto-3.dll +0 -0
  272. package/bin/_internal/libffi-8.dll +0 -0
  273. package/bin/_internal/libssl-3.dll +0 -0
  274. package/bin/_internal/mcp-1.29.0.dist-info/INSTALLER +0 -1
  275. package/bin/_internal/mcp-1.29.0.dist-info/METADATA +0 -239
  276. package/bin/_internal/mcp-1.29.0.dist-info/RECORD +0 -228
  277. package/bin/_internal/mcp-1.29.0.dist-info/WHEEL +0 -4
  278. package/bin/_internal/mcp-1.29.0.dist-info/entry_points.txt +0 -2
  279. package/bin/_internal/mcp-1.29.0.dist-info/licenses/LICENSE +0 -21
  280. package/bin/_internal/multidict/_multidict.cp312-win_amd64.pyd +0 -0
  281. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/INSTALLER +0 -1
  282. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/METADATA +0 -43
  283. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/RECORD +0 -78
  284. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/WHEEL +0 -4
  285. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/entry_points.txt +0 -15
  286. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/licenses/LICENSE +0 -201
  287. package/bin/_internal/propcache/_helpers_c.cp312-win_amd64.pyd +0 -0
  288. package/bin/_internal/pydantic-2.13.4.dist-info/INSTALLER +0 -1
  289. package/bin/_internal/pydantic-2.13.4.dist-info/METADATA +0 -1294
  290. package/bin/_internal/pydantic-2.13.4.dist-info/RECORD +0 -217
  291. package/bin/_internal/pydantic-2.13.4.dist-info/WHEEL +0 -4
  292. package/bin/_internal/pydantic-2.13.4.dist-info/licenses/LICENSE +0 -21
  293. package/bin/_internal/pydantic_core/_pydantic_core.cp312-win_amd64.pyd +0 -0
  294. package/bin/_internal/pyexpat.pyd +0 -0
  295. package/bin/_internal/python3.dll +0 -0
  296. package/bin/_internal/python312.dll +0 -0
  297. package/bin/_internal/pywin32_system32/pythoncom312.dll +0 -0
  298. package/bin/_internal/pywin32_system32/pywintypes312.dll +0 -0
  299. package/bin/_internal/rpds/rpds.cp312-win_amd64.pyd +0 -0
  300. package/bin/_internal/select.pyd +0 -0
  301. package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +0 -2
  302. package/bin/_internal/sqlite3.dll +0 -0
  303. package/bin/_internal/ucrtbase.dll +0 -0
  304. package/bin/_internal/unicodedata.pyd +0 -0
  305. package/bin/_internal/vicoa/_bin/README.md +0 -28
  306. package/bin/_internal/vicoa-1.7.12.dist-info/INSTALLER +0 -1
  307. package/bin/_internal/vicoa-1.7.12.dist-info/METADATA +0 -314
  308. package/bin/_internal/vicoa-1.7.12.dist-info/RECORD +0 -11
  309. package/bin/_internal/vicoa-1.7.12.dist-info/REQUESTED +0 -0
  310. package/bin/_internal/vicoa-1.7.12.dist-info/WHEEL +0 -5
  311. package/bin/_internal/vicoa-1.7.12.dist-info/direct_url.json +0 -1
  312. package/bin/_internal/vicoa-1.7.12.dist-info/entry_points.txt +0 -2
  313. package/bin/_internal/vicoa-1.7.12.dist-info/licenses/LICENSE +0 -201
  314. package/bin/_internal/vicoa-1.7.12.dist-info/top_level.txt +0 -4
  315. package/bin/_internal/watchfiles/_rust_notify.cp312-win_amd64.pyd +0 -0
  316. package/bin/_internal/websockets/speedups.cp312-win_amd64.pyd +0 -0
  317. package/bin/_internal/websockets-17.0.1.dist-info/INSTALLER +0 -1
  318. package/bin/_internal/websockets-17.0.1.dist-info/METADATA +0 -170
  319. package/bin/_internal/websockets-17.0.1.dist-info/RECORD +0 -116
  320. package/bin/_internal/websockets-17.0.1.dist-info/WHEEL +0 -5
  321. package/bin/_internal/websockets-17.0.1.dist-info/entry_points.txt +0 -2
  322. package/bin/_internal/websockets-17.0.1.dist-info/licenses/LICENSE +0 -24
  323. package/bin/_internal/websockets-17.0.1.dist-info/top_level.txt +0 -1
  324. package/bin/_internal/win32/_win32sysloader.pyd +0 -0
  325. package/bin/_internal/win32/win32api.pyd +0 -0
  326. package/bin/_internal/win32/win32evtlog.pyd +0 -0
  327. package/bin/_internal/win32/win32job.pyd +0 -0
  328. package/bin/_internal/yaml/_yaml.cp312-win_amd64.pyd +0 -0
  329. package/bin/_internal/yarl/_quoting_c.cp312-win_amd64.pyd +0 -0
  330. package/bin/vicoa.exe +0 -0
@@ -1,102 +0,0 @@
1
- export type CommonFields = {
2
- repository: string;
3
- claudeCommentId: string;
4
- triggerPhrase: string;
5
- triggerUsername?: string;
6
- prompt?: string;
7
- claudeBranch?: string;
8
- };
9
-
10
- type PullRequestReviewCommentEvent = {
11
- eventName: "pull_request_review_comment";
12
- isPR: true;
13
- prNumber: string;
14
- commentId?: string; // May be present for review comments
15
- commentBody: string;
16
- claudeBranch?: string;
17
- baseBranch?: string;
18
- };
19
-
20
- type PullRequestReviewEvent = {
21
- eventName: "pull_request_review";
22
- isPR: true;
23
- prNumber: string;
24
- commentBody: string;
25
- claudeBranch?: string;
26
- baseBranch?: string;
27
- };
28
-
29
- type IssueCommentEvent = {
30
- eventName: "issue_comment";
31
- commentId: string;
32
- issueNumber: string;
33
- isPR: false;
34
- baseBranch: string;
35
- claudeBranch: string;
36
- commentBody: string;
37
- };
38
-
39
- // Not actually a real github event, since issue comments and PR coments are both sent as issue_comment
40
- type PullRequestCommentEvent = {
41
- eventName: "issue_comment";
42
- commentId: string;
43
- prNumber: string;
44
- isPR: true;
45
- commentBody: string;
46
- claudeBranch?: string;
47
- baseBranch?: string;
48
- };
49
-
50
- type IssueOpenedEvent = {
51
- eventName: "issues";
52
- eventAction: "opened";
53
- isPR: false;
54
- issueNumber: string;
55
- baseBranch: string;
56
- claudeBranch: string;
57
- };
58
-
59
- type IssueAssignedEvent = {
60
- eventName: "issues";
61
- eventAction: "assigned";
62
- isPR: false;
63
- issueNumber: string;
64
- baseBranch: string;
65
- claudeBranch: string;
66
- assigneeTrigger?: string;
67
- };
68
-
69
- type IssueLabeledEvent = {
70
- eventName: "issues";
71
- eventAction: "labeled";
72
- isPR: false;
73
- issueNumber: string;
74
- baseBranch: string;
75
- claudeBranch: string;
76
- labelTrigger: string;
77
- };
78
-
79
- type PullRequestEvent = {
80
- eventName: "pull_request";
81
- eventAction?: string; // opened, synchronize, etc.
82
- isPR: true;
83
- prNumber: string;
84
- claudeBranch?: string;
85
- baseBranch?: string;
86
- };
87
-
88
- // Union type for all possible event types
89
- export type EventData =
90
- | PullRequestReviewCommentEvent
91
- | PullRequestReviewEvent
92
- | PullRequestCommentEvent
93
- | IssueCommentEvent
94
- | IssueOpenedEvent
95
- | IssueAssignedEvent
96
- | IssueLabeledEvent
97
- | PullRequestEvent;
98
-
99
- // Combined type with separate eventData field
100
- export type PreparedContext = CommonFields & {
101
- eventData: EventData;
102
- };
@@ -1,58 +0,0 @@
1
- import * as core from "@actions/core";
2
-
3
- export function collectActionInputsPresence(): void {
4
- const inputDefaults: Record<string, string> = {
5
- trigger_phrase: "@claude",
6
- assignee_trigger: "",
7
- label_trigger: "claude",
8
- base_branch: "",
9
- branch_prefix: "claude/",
10
- allowed_bots: "",
11
- mode: "tag",
12
- model: "",
13
- anthropic_model: "",
14
- fallback_model: "",
15
- allowed_tools: "",
16
- disallowed_tools: "",
17
- custom_instructions: "",
18
- direct_prompt: "",
19
- override_prompt: "",
20
- additional_permissions: "",
21
- claude_env: "",
22
- settings: "",
23
- anthropic_api_key: "",
24
- claude_code_oauth_token: "",
25
- github_token: "",
26
- max_turns: "",
27
- use_sticky_comment: "false",
28
- use_commit_signing: "false",
29
- experimental_allowed_domains: "",
30
- };
31
-
32
- const allInputsJson = process.env.ALL_INPUTS;
33
- if (!allInputsJson) {
34
- console.log("ALL_INPUTS environment variable not found");
35
- core.setOutput("action_inputs_present", JSON.stringify({}));
36
- return;
37
- }
38
-
39
- let allInputs: Record<string, string>;
40
- try {
41
- allInputs = JSON.parse(allInputsJson);
42
- } catch (e) {
43
- console.error("Failed to parse ALL_INPUTS JSON:", e);
44
- core.setOutput("action_inputs_present", JSON.stringify({}));
45
- return;
46
- }
47
-
48
- const presentInputs: Record<string, boolean> = {};
49
-
50
- for (const [name, defaultValue] of Object.entries(inputDefaults)) {
51
- const actualValue = allInputs[name] || "";
52
-
53
- const isSet = actualValue !== defaultValue;
54
- presentInputs[name] = isSet;
55
- }
56
-
57
- core.setOutput("action_inputs_present", JSON.stringify(presentInputs));
58
- }
@@ -1,465 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import { readFileSync, existsSync } from "fs";
4
- import { exit } from "process";
5
-
6
- export type ToolUse = {
7
- type: string;
8
- name?: string;
9
- input?: Record<string, any>;
10
- id?: string;
11
- };
12
-
13
- export type ToolResult = {
14
- type: string;
15
- tool_use_id?: string;
16
- content?: any;
17
- is_error?: boolean;
18
- };
19
-
20
- export type ContentItem = {
21
- type: string;
22
- text?: string;
23
- tool_use_id?: string;
24
- content?: any;
25
- is_error?: boolean;
26
- name?: string;
27
- input?: Record<string, any>;
28
- id?: string;
29
- };
30
-
31
- export type Message = {
32
- content: ContentItem[];
33
- usage?: {
34
- input_tokens?: number;
35
- output_tokens?: number;
36
- };
37
- };
38
-
39
- export type Turn = {
40
- type: string;
41
- subtype?: string;
42
- message?: Message;
43
- tools?: any[];
44
- cost_usd?: number;
45
- duration_ms?: number;
46
- result?: string;
47
- };
48
-
49
- export type GroupedContent = {
50
- type: string;
51
- tools_count?: number;
52
- data?: Turn;
53
- text_parts?: string[];
54
- tool_calls?: { tool_use: ToolUse; tool_result?: ToolResult }[];
55
- usage?: Record<string, number>;
56
- };
57
-
58
- export function detectContentType(content: any): string {
59
- const contentStr = String(content).trim();
60
-
61
- // Check for JSON
62
- if (contentStr.startsWith("{") && contentStr.endsWith("}")) {
63
- try {
64
- JSON.parse(contentStr);
65
- return "json";
66
- } catch {
67
- // Fall through
68
- }
69
- }
70
-
71
- if (contentStr.startsWith("[") && contentStr.endsWith("]")) {
72
- try {
73
- JSON.parse(contentStr);
74
- return "json";
75
- } catch {
76
- // Fall through
77
- }
78
- }
79
-
80
- // Check for code-like content
81
- const codeKeywords = [
82
- "def ",
83
- "class ",
84
- "import ",
85
- "from ",
86
- "function ",
87
- "const ",
88
- "let ",
89
- "var ",
90
- ];
91
- if (codeKeywords.some((keyword) => contentStr.includes(keyword))) {
92
- if (
93
- contentStr.includes("def ") ||
94
- contentStr.includes("import ") ||
95
- contentStr.includes("from ")
96
- ) {
97
- return "python";
98
- } else if (
99
- ["function ", "const ", "let ", "var ", "=>"].some((js) =>
100
- contentStr.includes(js),
101
- )
102
- ) {
103
- return "javascript";
104
- } else {
105
- return "python"; // default for code
106
- }
107
- }
108
-
109
- // Check for shell/bash output
110
- const shellIndicators = ["ls -", "cd ", "mkdir ", "rm ", "$ ", "# "];
111
- if (
112
- contentStr.startsWith("/") ||
113
- contentStr.includes("Error:") ||
114
- contentStr.startsWith("total ") ||
115
- shellIndicators.some((indicator) => contentStr.includes(indicator))
116
- ) {
117
- return "bash";
118
- }
119
-
120
- // Check for diff format
121
- if (
122
- contentStr.startsWith("@@") ||
123
- contentStr.includes("+++ ") ||
124
- contentStr.includes("--- ")
125
- ) {
126
- return "diff";
127
- }
128
-
129
- // Check for HTML/XML
130
- if (contentStr.startsWith("<") && contentStr.endsWith(">")) {
131
- return "html";
132
- }
133
-
134
- // Check for markdown
135
- const mdIndicators = ["# ", "## ", "### ", "- ", "* ", "```"];
136
- if (mdIndicators.some((indicator) => contentStr.includes(indicator))) {
137
- return "markdown";
138
- }
139
-
140
- // Default to plain text
141
- return "text";
142
- }
143
-
144
- export function formatResultContent(content: any): string {
145
- if (!content) {
146
- return "*(No output)*\n\n";
147
- }
148
-
149
- let contentStr: string;
150
-
151
- // Check if content is a list with "type": "text" structure
152
- try {
153
- let parsedContent: any;
154
- if (typeof content === "string") {
155
- parsedContent = JSON.parse(content);
156
- } else {
157
- parsedContent = content;
158
- }
159
-
160
- if (
161
- Array.isArray(parsedContent) &&
162
- parsedContent.length > 0 &&
163
- typeof parsedContent[0] === "object" &&
164
- parsedContent[0]?.type === "text"
165
- ) {
166
- // Extract the text field from the first item
167
- contentStr = parsedContent[0]?.text || "";
168
- } else {
169
- contentStr = String(content).trim();
170
- }
171
- } catch {
172
- contentStr = String(content).trim();
173
- }
174
-
175
- // Truncate very long results
176
- if (contentStr.length > 3000) {
177
- contentStr = contentStr.substring(0, 2997) + "...";
178
- }
179
-
180
- // Detect content type
181
- const contentType = detectContentType(contentStr);
182
-
183
- // Handle JSON content specially - pretty print it
184
- if (contentType === "json") {
185
- try {
186
- // Try to parse and pretty print JSON
187
- const parsed = JSON.parse(contentStr);
188
- contentStr = JSON.stringify(parsed, null, 2);
189
- } catch {
190
- // Keep original if parsing fails
191
- }
192
- }
193
-
194
- // Format with appropriate syntax highlighting
195
- if (
196
- contentType === "text" &&
197
- contentStr.length < 100 &&
198
- !contentStr.includes("\n")
199
- ) {
200
- // Short text results don't need code blocks
201
- return `**→** ${contentStr}\n\n`;
202
- } else {
203
- return `**Result:**\n\`\`\`${contentType}\n${contentStr}\n\`\`\`\n\n`;
204
- }
205
- }
206
-
207
- export function formatToolWithResult(
208
- toolUse: ToolUse,
209
- toolResult?: ToolResult,
210
- ): string {
211
- const toolName = toolUse.name || "unknown_tool";
212
- const toolInput = toolUse.input || {};
213
-
214
- let result = `### 🔧 \`${toolName}\`\n\n`;
215
-
216
- // Add parameters if they exist and are not empty
217
- if (Object.keys(toolInput).length > 0) {
218
- result += "**Parameters:**\n```json\n";
219
- result += JSON.stringify(toolInput, null, 2);
220
- result += "\n```\n\n";
221
- }
222
-
223
- // Add result if available
224
- if (toolResult) {
225
- const content = toolResult.content || "";
226
- const isError = toolResult.is_error || false;
227
-
228
- if (isError) {
229
- result += `❌ **Error:** \`${content}\`\n\n`;
230
- } else {
231
- result += formatResultContent(content);
232
- }
233
- }
234
-
235
- return result;
236
- }
237
-
238
- export function groupTurnsNaturally(data: Turn[]): GroupedContent[] {
239
- const groupedContent: GroupedContent[] = [];
240
- const toolResultsMap = new Map<string, ToolResult>();
241
-
242
- // First pass: collect all tool results by tool_use_id
243
- for (const turn of data) {
244
- if (turn.type === "user") {
245
- const content = turn.message?.content || [];
246
- for (const item of content) {
247
- if (item.type === "tool_result" && item.tool_use_id) {
248
- toolResultsMap.set(item.tool_use_id, {
249
- type: item.type,
250
- tool_use_id: item.tool_use_id,
251
- content: item.content,
252
- is_error: item.is_error,
253
- });
254
- }
255
- }
256
- }
257
- }
258
-
259
- // Second pass: process turns and group naturally
260
- for (const turn of data) {
261
- const turnType = turn.type || "unknown";
262
-
263
- if (turnType === "system") {
264
- const subtype = turn.subtype || "";
265
- if (subtype === "init") {
266
- const tools = turn.tools || [];
267
- groupedContent.push({
268
- type: "system_init",
269
- tools_count: tools.length,
270
- });
271
- } else {
272
- groupedContent.push({
273
- type: "system_other",
274
- data: turn,
275
- });
276
- }
277
- } else if (turnType === "assistant") {
278
- const message = turn.message || { content: [] };
279
- const content = message.content || [];
280
- const usage = message.usage || {};
281
-
282
- // Process content items
283
- const textParts: string[] = [];
284
- const toolCalls: { tool_use: ToolUse; tool_result?: ToolResult }[] = [];
285
-
286
- for (const item of content) {
287
- const itemType = item.type || "";
288
-
289
- if (itemType === "text") {
290
- textParts.push(item.text || "");
291
- } else if (itemType === "tool_use") {
292
- const toolUseId = item.id;
293
- const toolResult = toolUseId
294
- ? toolResultsMap.get(toolUseId)
295
- : undefined;
296
- toolCalls.push({
297
- tool_use: {
298
- type: item.type,
299
- name: item.name,
300
- input: item.input,
301
- id: item.id,
302
- },
303
- tool_result: toolResult,
304
- });
305
- }
306
- }
307
-
308
- if (textParts.length > 0 || toolCalls.length > 0) {
309
- groupedContent.push({
310
- type: "assistant_action",
311
- text_parts: textParts,
312
- tool_calls: toolCalls,
313
- usage: usage,
314
- });
315
- }
316
- } else if (turnType === "user") {
317
- // Handle user messages that aren't tool results
318
- const message = turn.message || { content: [] };
319
- const content = message.content || [];
320
- const textParts: string[] = [];
321
-
322
- for (const item of content) {
323
- if (item.type === "text") {
324
- textParts.push(item.text || "");
325
- }
326
- }
327
-
328
- if (textParts.length > 0) {
329
- groupedContent.push({
330
- type: "user_message",
331
- text_parts: textParts,
332
- });
333
- }
334
- } else if (turnType === "result") {
335
- groupedContent.push({
336
- type: "final_result",
337
- data: turn,
338
- });
339
- }
340
- }
341
-
342
- return groupedContent;
343
- }
344
-
345
- export function formatGroupedContent(groupedContent: GroupedContent[]): string {
346
- let markdown = "## Claude Code Report\n\n";
347
-
348
- for (const item of groupedContent) {
349
- const itemType = item.type;
350
-
351
- if (itemType === "system_init") {
352
- markdown += `## 🚀 System Initialization\n\n**Available Tools:** ${item.tools_count} tools loaded\n\n---\n\n`;
353
- } else if (itemType === "system_other") {
354
- markdown += `## ⚙️ System Message\n\n${JSON.stringify(item.data, null, 2)}\n\n---\n\n`;
355
- } else if (itemType === "assistant_action") {
356
- // Add text content first (if any) - no header needed
357
- for (const text of item.text_parts || []) {
358
- if (text.trim()) {
359
- markdown += `${text}\n\n`;
360
- }
361
- }
362
-
363
- // Add tool calls with their results
364
- for (const toolCall of item.tool_calls || []) {
365
- markdown += formatToolWithResult(
366
- toolCall.tool_use,
367
- toolCall.tool_result,
368
- );
369
- }
370
-
371
- // Add usage info if available
372
- const usage = item.usage || {};
373
- if (Object.keys(usage).length > 0) {
374
- const inputTokens = usage.input_tokens || 0;
375
- const cacheCreationTokens = usage.cache_creation_input_tokens || 0;
376
- const cacheReadTokens = usage.cache_read_input_tokens || 0;
377
- const totalInputTokens =
378
- inputTokens + cacheCreationTokens + cacheReadTokens;
379
- const outputTokens = usage.output_tokens || 0;
380
- markdown += `*Token usage: ${totalInputTokens} input, ${outputTokens} output*\n\n`;
381
- }
382
-
383
- // Only add separator if this section had content
384
- if (
385
- (item.text_parts && item.text_parts.length > 0) ||
386
- (item.tool_calls && item.tool_calls.length > 0)
387
- ) {
388
- markdown += "---\n\n";
389
- }
390
- } else if (itemType === "user_message") {
391
- markdown += "## 👤 User\n\n";
392
- for (const text of item.text_parts || []) {
393
- if (text.trim()) {
394
- markdown += `${text}\n\n`;
395
- }
396
- }
397
- markdown += "---\n\n";
398
- } else if (itemType === "final_result") {
399
- const data = item.data || {};
400
- const cost = (data as any).total_cost_usd || (data as any).cost_usd || 0;
401
- const duration = (data as any).duration_ms || 0;
402
- const resultText = (data as any).result || "";
403
-
404
- markdown += "## ✅ Final Result\n\n";
405
- if (resultText) {
406
- markdown += `${resultText}\n\n`;
407
- }
408
- markdown += `**Cost:** $${cost.toFixed(4)} | **Duration:** ${(duration / 1000).toFixed(1)}s\n\n`;
409
- }
410
- }
411
-
412
- return markdown;
413
- }
414
-
415
- export function formatTurnsFromData(data: Turn[]): string {
416
- // Group turns naturally
417
- const groupedContent = groupTurnsNaturally(data);
418
-
419
- // Generate markdown
420
- const markdown = formatGroupedContent(groupedContent);
421
-
422
- return markdown;
423
- }
424
-
425
- function main(): void {
426
- // Get the JSON file path from command line arguments
427
- const args = process.argv.slice(2);
428
- if (args.length === 0) {
429
- console.error("Usage: format-turns.ts <json-file>");
430
- exit(1);
431
- }
432
-
433
- const jsonFile = args[0];
434
- if (!jsonFile) {
435
- console.error("Error: No JSON file provided");
436
- exit(1);
437
- }
438
-
439
- if (!existsSync(jsonFile)) {
440
- console.error(`Error: ${jsonFile} not found`);
441
- exit(1);
442
- }
443
-
444
- try {
445
- // Read the JSON file
446
- const fileContent = readFileSync(jsonFile, "utf-8");
447
- const data: Turn[] = JSON.parse(fileContent);
448
-
449
- // Group turns naturally
450
- const groupedContent = groupTurnsNaturally(data);
451
-
452
- // Generate markdown
453
- const markdown = formatGroupedContent(groupedContent);
454
-
455
- // Print to stdout (so it can be captured by shell)
456
- console.log(markdown);
457
- } catch (error) {
458
- console.error(`Error processing file: ${error}`);
459
- exit(1);
460
- }
461
- }
462
-
463
- if (import.meta.main) {
464
- main();
465
- }