@vicoa/cli 1.4.2-win32-x64 → 1.4.2

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 (318) hide show
  1. package/README.md +82 -0
  2. package/bin/vicoa.js +38 -0
  3. package/package.json +29 -10
  4. package/bin/_internal/81d243bd2c585b0f4821__mypyc.cp312-win_amd64.pyd +0 -0
  5. package/bin/_internal/VCRUNTIME140.dll +0 -0
  6. package/bin/_internal/VCRUNTIME140_1.dll +0 -0
  7. package/bin/_internal/_asyncio.pyd +0 -0
  8. package/bin/_internal/_bz2.pyd +0 -0
  9. package/bin/_internal/_cffi_backend.cp312-win_amd64.pyd +0 -0
  10. package/bin/_internal/_ctypes.pyd +0 -0
  11. package/bin/_internal/_decimal.pyd +0 -0
  12. package/bin/_internal/_hashlib.pyd +0 -0
  13. package/bin/_internal/_lzma.pyd +0 -0
  14. package/bin/_internal/_multiprocessing.pyd +0 -0
  15. package/bin/_internal/_overlapped.pyd +0 -0
  16. package/bin/_internal/_queue.pyd +0 -0
  17. package/bin/_internal/_socket.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.11.1.dist-info/INSTALLER +0 -1
  23. package/bin/_internal/aiofile-3.11.1.dist-info/METADATA +0 -511
  24. package/bin/_internal/aiofile-3.11.1.dist-info/RECORD +0 -15
  25. package/bin/_internal/aiofile-3.11.1.dist-info/WHEEL +0 -4
  26. package/bin/_internal/aiofile-3.11.1.dist-info/licenses/LICENCE +0 -195
  27. package/bin/_internal/aiofile-3.11.1.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/api-ms-win-core-console-l1-1-0.dll +0 -0
  33. package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  34. package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
  35. package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  36. package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  37. package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
  38. package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
  39. package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
  40. package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
  41. package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
  42. package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
  43. package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  44. package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
  45. package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  46. package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
  47. package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
  48. package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  49. package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  50. package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  51. package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  52. package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
  53. package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  54. package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
  55. package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
  56. package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
  57. package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  58. package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
  59. package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  60. package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
  61. package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  62. package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  63. package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  64. package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  65. package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  66. package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  67. package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
  68. package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
  69. package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  70. package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  71. package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
  72. package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
  73. package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  74. package/bin/_internal/attrs-26.1.0.dist-info/INSTALLER +0 -1
  75. package/bin/_internal/attrs-26.1.0.dist-info/METADATA +0 -199
  76. package/bin/_internal/attrs-26.1.0.dist-info/RECORD +0 -55
  77. package/bin/_internal/attrs-26.1.0.dist-info/WHEEL +0 -4
  78. package/bin/_internal/attrs-26.1.0.dist-info/licenses/LICENSE +0 -21
  79. package/bin/_internal/base_library.zip +0 -0
  80. package/bin/_internal/certifi/cacert.pem +0 -3933
  81. package/bin/_internal/certifi/py.typed +0 -0
  82. package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
  83. package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
  84. package/bin/_internal/click-8.3.3.dist-info/INSTALLER +0 -1
  85. package/bin/_internal/click-8.3.3.dist-info/METADATA +0 -84
  86. package/bin/_internal/click-8.3.3.dist-info/RECORD +0 -40
  87. package/bin/_internal/click-8.3.3.dist-info/WHEEL +0 -4
  88. package/bin/_internal/click-8.3.3.dist-info/licenses/LICENSE.txt +0 -28
  89. package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
  90. package/bin/_internal/cryptography-48.0.0.dist-info/INSTALLER +0 -1
  91. package/bin/_internal/cryptography-48.0.0.dist-info/METADATA +0 -110
  92. package/bin/_internal/cryptography-48.0.0.dist-info/RECORD +0 -195
  93. package/bin/_internal/cryptography-48.0.0.dist-info/WHEEL +0 -4
  94. package/bin/_internal/cryptography-48.0.0.dist-info/licenses/LICENSE +0 -3
  95. package/bin/_internal/cryptography-48.0.0.dist-info/licenses/LICENSE.APACHE +0 -202
  96. package/bin/_internal/cryptography-48.0.0.dist-info/licenses/LICENSE.BSD +0 -27
  97. package/bin/_internal/cryptography-48.0.0.dist-info/sboms/cryptography-rust.cyclonedx.json +0 -1362
  98. package/bin/_internal/cryptography-48.0.0.dist-info/sboms/sbom.json +0 -43
  99. package/bin/_internal/email_validator-2.3.0.dist-info/INSTALLER +0 -1
  100. package/bin/_internal/email_validator-2.3.0.dist-info/METADATA +0 -466
  101. package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +0 -27
  102. package/bin/_internal/email_validator-2.3.0.dist-info/WHEEL +0 -5
  103. package/bin/_internal/email_validator-2.3.0.dist-info/entry_points.txt +0 -2
  104. package/bin/_internal/email_validator-2.3.0.dist-info/licenses/LICENSE +0 -27
  105. package/bin/_internal/email_validator-2.3.0.dist-info/top_level.txt +0 -1
  106. package/bin/_internal/fastmcp-3.3.1.dist-info/INSTALLER +0 -1
  107. package/bin/_internal/fastmcp-3.3.1.dist-info/METADATA +0 -157
  108. package/bin/_internal/fastmcp-3.3.1.dist-info/RECORD +0 -5
  109. package/bin/_internal/fastmcp-3.3.1.dist-info/WHEEL +0 -4
  110. package/bin/_internal/fastmcp-3.3.1.dist-info/licenses/LICENSE +0 -201
  111. package/bin/_internal/frozenlist/_frozenlist.cp312-win_amd64.pyd +0 -0
  112. package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +0 -33
  113. package/bin/_internal/integrations/github/claude-code-action/CLAUDE.md +0 -136
  114. package/bin/_internal/integrations/github/claude-code-action/CODE_OF_CONDUCT.md +0 -128
  115. package/bin/_internal/integrations/github/claude-code-action/CONTRIBUTING.md +0 -116
  116. package/bin/_internal/integrations/github/claude-code-action/LICENSE +0 -21
  117. package/bin/_internal/integrations/github/claude-code-action/README.md +0 -53
  118. package/bin/_internal/integrations/github/claude-code-action/ROADMAP.md +0 -20
  119. package/bin/_internal/integrations/github/claude-code-action/SECURITY.md +0 -15
  120. package/bin/_internal/integrations/github/claude-code-action/action.yml +0 -294
  121. package/bin/_internal/integrations/github/claude-code-action/base-action/CLAUDE.md +0 -60
  122. package/bin/_internal/integrations/github/claude-code-action/base-action/CODE_OF_CONDUCT.md +0 -128
  123. package/bin/_internal/integrations/github/claude-code-action/base-action/CONTRIBUTING.md +0 -136
  124. package/bin/_internal/integrations/github/claude-code-action/base-action/LICENSE +0 -21
  125. package/bin/_internal/integrations/github/claude-code-action/base-action/MIRROR_DISCLAIMER.md +0 -11
  126. package/bin/_internal/integrations/github/claude-code-action/base-action/README.md +0 -521
  127. package/bin/_internal/integrations/github/claude-code-action/base-action/action.yml +0 -149
  128. package/bin/_internal/integrations/github/claude-code-action/base-action/bun.lock +0 -54
  129. package/bin/_internal/integrations/github/claude-code-action/base-action/examples/issue-triage.yml +0 -108
  130. package/bin/_internal/integrations/github/claude-code-action/base-action/package.json +0 -23
  131. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/install-hooks.sh +0 -13
  132. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/pre-push +0 -46
  133. package/bin/_internal/integrations/github/claude-code-action/base-action/src/index.ts +0 -82
  134. package/bin/_internal/integrations/github/claude-code-action/base-action/src/prepare-prompt.ts +0 -82
  135. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-claude.ts +0 -257
  136. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-vicoa.ts +0 -301
  137. package/bin/_internal/integrations/github/claude-code-action/base-action/src/setup-claude-code-settings.ts +0 -68
  138. package/bin/_internal/integrations/github/claude-code-action/base-action/src/validate-env.ts +0 -54
  139. package/bin/_internal/integrations/github/claude-code-action/base-action/test-local.sh +0 -12
  140. package/bin/_internal/integrations/github/claude-code-action/base-action/test-mcp-local.sh +0 -18
  141. package/bin/_internal/integrations/github/claude-code-action/base-action/tsconfig.json +0 -30
  142. package/bin/_internal/integrations/github/claude-code-action/bun.lock +0 -384
  143. package/bin/_internal/integrations/github/claude-code-action/docs/capabilities-and-limitations.md +0 -33
  144. package/bin/_internal/integrations/github/claude-code-action/docs/cloud-providers.md +0 -99
  145. package/bin/_internal/integrations/github/claude-code-action/docs/configuration.md +0 -345
  146. package/bin/_internal/integrations/github/claude-code-action/docs/custom-automations.md +0 -113
  147. package/bin/_internal/integrations/github/claude-code-action/docs/experimental.md +0 -128
  148. package/bin/_internal/integrations/github/claude-code-action/docs/faq.md +0 -205
  149. package/bin/_internal/integrations/github/claude-code-action/docs/migration-guide.md +0 -261
  150. package/bin/_internal/integrations/github/claude-code-action/docs/security.md +0 -38
  151. package/bin/_internal/integrations/github/claude-code-action/docs/setup.md +0 -146
  152. package/bin/_internal/integrations/github/claude-code-action/docs/usage.md +0 -213
  153. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/auto-fix-ci.yml +0 -97
  154. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/commands/fix-ci.md +0 -127
  155. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/auto-fix-ci-signed.yml +0 -97
  156. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/commands/fix-ci-signed.md +0 -148
  157. package/bin/_internal/integrations/github/claude-code-action/examples/issue-deduplication.yml +0 -63
  158. package/bin/_internal/integrations/github/claude-code-action/examples/issue-triage.yml +0 -75
  159. package/bin/_internal/integrations/github/claude-code-action/examples/vicoa.yml +0 -75
  160. package/bin/_internal/integrations/github/claude-code-action/package.json +0 -31
  161. package/bin/_internal/integrations/github/claude-code-action/scripts/install-hooks.sh +0 -13
  162. package/bin/_internal/integrations/github/claude-code-action/scripts/pre-commit +0 -46
  163. package/bin/_internal/integrations/github/claude-code-action/scripts/setup-network-restrictions.sh +0 -123
  164. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/index.ts +0 -799
  165. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/types.ts +0 -102
  166. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/collect-inputs.ts +0 -58
  167. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/format-turns.ts +0 -465
  168. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/prepare.ts +0 -98
  169. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/update-comment-link.ts +0 -245
  170. package/bin/_internal/integrations/github/claude-code-action/src/github/api/client.ts +0 -23
  171. package/bin/_internal/integrations/github/claude-code-action/src/github/api/config.ts +0 -4
  172. package/bin/_internal/integrations/github/claude-code-action/src/github/api/queries/github.ts +0 -117
  173. package/bin/_internal/integrations/github/claude-code-action/src/github/context.ts +0 -277
  174. package/bin/_internal/integrations/github/claude-code-action/src/github/data/fetcher.ts +0 -233
  175. package/bin/_internal/integrations/github/claude-code-action/src/github/data/formatter.ts +0 -144
  176. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch-cleanup.ts +0 -132
  177. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch.ts +0 -163
  178. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comment-logic.ts +0 -203
  179. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/common.ts +0 -33
  180. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/create-initial.ts +0 -111
  181. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-claude-comment.ts +0 -70
  182. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-with-branch.ts +0 -57
  183. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/git-config.ts +0 -62
  184. package/bin/_internal/integrations/github/claude-code-action/src/github/token.ts +0 -108
  185. package/bin/_internal/integrations/github/claude-code-action/src/github/types.ts +0 -98
  186. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/image-downloader.ts +0 -246
  187. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/sanitizer.ts +0 -100
  188. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/actor.ts +0 -64
  189. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/permissions.ts +0 -47
  190. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/trigger.ts +0 -148
  191. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-actions-server.ts +0 -279
  192. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-comment-server.ts +0 -101
  193. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-file-ops-server.ts +0 -677
  194. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-inline-comment-server.ts +0 -184
  195. package/bin/_internal/integrations/github/claude-code-action/src/mcp/install-mcp-server.ts +0 -201
  196. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/index.ts +0 -152
  197. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/parse-tools.ts +0 -22
  198. package/bin/_internal/integrations/github/claude-code-action/src/modes/detector.ts +0 -66
  199. package/bin/_internal/integrations/github/claude-code-action/src/modes/registry.ts +0 -54
  200. package/bin/_internal/integrations/github/claude-code-action/src/modes/tag/index.ts +0 -187
  201. package/bin/_internal/integrations/github/claude-code-action/src/modes/types.ts +0 -100
  202. package/bin/_internal/integrations/github/claude-code-action/src/prepare/index.ts +0 -20
  203. package/bin/_internal/integrations/github/claude-code-action/src/prepare/types.ts +0 -20
  204. package/bin/_internal/integrations/github/claude-code-action/src/utils/retry.ts +0 -40
  205. package/bin/_internal/integrations/github/claude-code-action/tsconfig.json +0 -30
  206. package/bin/_internal/integrations/headless/tests/README.md +0 -58
  207. package/bin/_internal/integrations/n8n/LICENSE +0 -21
  208. package/bin/_internal/integrations/n8n/README.md +0 -298
  209. package/bin/_internal/integrations/n8n/package-lock.json +0 -2989
  210. package/bin/_internal/integrations/n8n/package.json +0 -68
  211. package/bin/_internal/integrations/n8n/src/credentials/OmnaraApi.credentials.ts +0 -52
  212. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.json +0 -35
  213. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.ts +0 -304
  214. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/index.ts +0 -37
  215. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/send.operation.ts +0 -151
  216. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/sendAndWait.operation.ts +0 -252
  217. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/end.operation.ts +0 -56
  218. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/index.ts +0 -29
  219. package/bin/_internal/integrations/n8n/src/nodes/Omnara/vicoa.png +0 -0
  220. package/bin/_internal/integrations/n8n/src/utils/GenericFunctions.ts +0 -93
  221. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/configureWaitTillDate.ts +0 -42
  222. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/descriptions.ts +0 -20
  223. package/bin/_internal/integrations/n8n/src/utils/sendAndWaitWebhook.ts +0 -72
  224. package/bin/_internal/integrations/n8n/tsconfig.json +0 -20
  225. package/bin/_internal/jiter/jiter.cp312-win_amd64.pyd +0 -0
  226. package/bin/_internal/jsonschema/benchmarks/issue232/issue.json +0 -2653
  227. package/bin/_internal/jsonschema-4.26.0.dist-info/INSTALLER +0 -1
  228. package/bin/_internal/jsonschema-4.26.0.dist-info/METADATA +0 -170
  229. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +0 -82
  230. package/bin/_internal/jsonschema-4.26.0.dist-info/WHEEL +0 -4
  231. package/bin/_internal/jsonschema-4.26.0.dist-info/entry_points.txt +0 -2
  232. package/bin/_internal/jsonschema-4.26.0.dist-info/licenses/COPYING +0 -19
  233. package/bin/_internal/jsonschema_specifications/schemas/draft201909/metaschema.json +0 -42
  234. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +0 -56
  235. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/content +0 -17
  236. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/core +0 -57
  237. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/format +0 -14
  238. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +0 -37
  239. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/validation +0 -98
  240. package/bin/_internal/jsonschema_specifications/schemas/draft202012/metaschema.json +0 -58
  241. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +0 -48
  242. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/content +0 -17
  243. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/core +0 -51
  244. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +0 -14
  245. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +0 -14
  246. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +0 -37
  247. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +0 -15
  248. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/validation +0 -98
  249. package/bin/_internal/jsonschema_specifications/schemas/draft3/metaschema.json +0 -172
  250. package/bin/_internal/jsonschema_specifications/schemas/draft4/metaschema.json +0 -149
  251. package/bin/_internal/jsonschema_specifications/schemas/draft6/metaschema.json +0 -153
  252. package/bin/_internal/jsonschema_specifications/schemas/draft7/metaschema.json +0 -166
  253. package/bin/_internal/libcrypto-3.dll +0 -0
  254. package/bin/_internal/libffi-8.dll +0 -0
  255. package/bin/_internal/libssl-3.dll +0 -0
  256. package/bin/_internal/mcp-1.27.1.dist-info/INSTALLER +0 -1
  257. package/bin/_internal/mcp-1.27.1.dist-info/METADATA +0 -230
  258. package/bin/_internal/mcp-1.27.1.dist-info/RECORD +0 -226
  259. package/bin/_internal/mcp-1.27.1.dist-info/WHEEL +0 -4
  260. package/bin/_internal/mcp-1.27.1.dist-info/entry_points.txt +0 -2
  261. package/bin/_internal/mcp-1.27.1.dist-info/licenses/LICENSE +0 -21
  262. package/bin/_internal/multidict/_multidict.cp312-win_amd64.pyd +0 -0
  263. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/INSTALLER +0 -1
  264. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/METADATA +0 -43
  265. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/RECORD +0 -81
  266. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/WHEEL +0 -4
  267. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/entry_points.txt +0 -15
  268. package/bin/_internal/opentelemetry_api-1.42.0.dist-info/licenses/LICENSE +0 -201
  269. package/bin/_internal/propcache/_helpers_c.cp312-win_amd64.pyd +0 -0
  270. package/bin/_internal/pydantic-2.13.4.dist-info/INSTALLER +0 -1
  271. package/bin/_internal/pydantic-2.13.4.dist-info/METADATA +0 -1294
  272. package/bin/_internal/pydantic-2.13.4.dist-info/RECORD +0 -217
  273. package/bin/_internal/pydantic-2.13.4.dist-info/WHEEL +0 -4
  274. package/bin/_internal/pydantic-2.13.4.dist-info/licenses/LICENSE +0 -21
  275. package/bin/_internal/pydantic_core/_pydantic_core.cp312-win_amd64.pyd +0 -0
  276. package/bin/_internal/pyexpat.pyd +0 -0
  277. package/bin/_internal/python3.dll +0 -0
  278. package/bin/_internal/python312.dll +0 -0
  279. package/bin/_internal/pywin32_system32/pythoncom312.dll +0 -0
  280. package/bin/_internal/pywin32_system32/pywintypes312.dll +0 -0
  281. package/bin/_internal/rpds/rpds.cp312-win_amd64.pyd +0 -0
  282. package/bin/_internal/select.pyd +0 -0
  283. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER +0 -1
  284. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA +0 -133
  285. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD +0 -21
  286. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/REQUESTED +0 -0
  287. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL +0 -5
  288. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE +0 -73
  289. package/bin/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt +0 -1
  290. package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +0 -2
  291. package/bin/_internal/ucrtbase.dll +0 -0
  292. package/bin/_internal/unicodedata.pyd +0 -0
  293. package/bin/_internal/vicoa/_bin/README.md +0 -28
  294. package/bin/_internal/vicoa-1.4.2.dist-info/INSTALLER +0 -1
  295. package/bin/_internal/vicoa-1.4.2.dist-info/METADATA +0 -312
  296. package/bin/_internal/vicoa-1.4.2.dist-info/RECORD +0 -11
  297. package/bin/_internal/vicoa-1.4.2.dist-info/REQUESTED +0 -0
  298. package/bin/_internal/vicoa-1.4.2.dist-info/WHEEL +0 -5
  299. package/bin/_internal/vicoa-1.4.2.dist-info/direct_url.json +0 -1
  300. package/bin/_internal/vicoa-1.4.2.dist-info/entry_points.txt +0 -2
  301. package/bin/_internal/vicoa-1.4.2.dist-info/licenses/LICENSE +0 -201
  302. package/bin/_internal/vicoa-1.4.2.dist-info/top_level.txt +0 -3
  303. package/bin/_internal/watchfiles/_rust_notify.cp312-win_amd64.pyd +0 -0
  304. package/bin/_internal/websockets/speedups.cp312-win_amd64.pyd +0 -0
  305. package/bin/_internal/websockets-16.0.dist-info/INSTALLER +0 -1
  306. package/bin/_internal/websockets-16.0.dist-info/METADATA +0 -179
  307. package/bin/_internal/websockets-16.0.dist-info/RECORD +0 -108
  308. package/bin/_internal/websockets-16.0.dist-info/WHEEL +0 -5
  309. package/bin/_internal/websockets-16.0.dist-info/entry_points.txt +0 -2
  310. package/bin/_internal/websockets-16.0.dist-info/licenses/LICENSE +0 -24
  311. package/bin/_internal/websockets-16.0.dist-info/top_level.txt +0 -1
  312. package/bin/_internal/win32/_win32sysloader.pyd +0 -0
  313. package/bin/_internal/win32/win32api.pyd +0 -0
  314. package/bin/_internal/win32/win32evtlog.pyd +0 -0
  315. package/bin/_internal/win32/win32job.pyd +0 -0
  316. package/bin/_internal/yaml/_yaml.cp312-win_amd64.pyd +0 -0
  317. package/bin/_internal/yarl/_quoting_c.cp312-win_amd64.pyd +0 -0
  318. 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
- }