@vicoa/cli 1.7.2-win32-x64 → 1.7.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 (313) 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/ada92cb5d92a588d1b93__mypyc.cp312-win_amd64.pyd +0 -0
  23. package/bin/_internal/aiofile-3.11.1.dist-info/INSTALLER +0 -1
  24. package/bin/_internal/aiofile-3.11.1.dist-info/METADATA +0 -511
  25. package/bin/_internal/aiofile-3.11.1.dist-info/RECORD +0 -15
  26. package/bin/_internal/aiofile-3.11.1.dist-info/WHEEL +0 -4
  27. package/bin/_internal/aiofile-3.11.1.dist-info/licenses/LICENCE +0 -195
  28. package/bin/_internal/aiofile-3.11.1.dist-info/licenses/LICENCE.md +0 -195
  29. package/bin/_internal/aiohttp/_http_parser.cp312-win_amd64.pyd +0 -0
  30. package/bin/_internal/aiohttp/_http_writer.cp312-win_amd64.pyd +0 -0
  31. package/bin/_internal/aiohttp/_websocket/mask.cp312-win_amd64.pyd +0 -0
  32. package/bin/_internal/aiohttp/_websocket/reader_c.cp312-win_amd64.pyd +0 -0
  33. package/bin/_internal/api-ms-win-core-console-l1-1-0.dll +0 -0
  34. package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  35. package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
  36. package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  37. package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  38. package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
  39. package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
  40. package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
  41. package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
  42. package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
  43. package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
  44. package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  45. package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
  46. package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  47. package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
  48. package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
  49. package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  50. package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  51. package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  52. package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  53. package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
  54. package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  55. package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
  56. package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
  57. package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
  58. package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  59. package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
  60. package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  61. package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
  62. package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  63. package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  64. package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  65. package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  66. package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  67. package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  68. package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
  69. package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
  70. package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  71. package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  72. package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
  73. package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
  74. package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  75. package/bin/_internal/attrs-26.1.0.dist-info/INSTALLER +0 -1
  76. package/bin/_internal/attrs-26.1.0.dist-info/METADATA +0 -199
  77. package/bin/_internal/attrs-26.1.0.dist-info/RECORD +0 -55
  78. package/bin/_internal/attrs-26.1.0.dist-info/WHEEL +0 -4
  79. package/bin/_internal/attrs-26.1.0.dist-info/licenses/LICENSE +0 -21
  80. package/bin/_internal/base_library.zip +0 -0
  81. package/bin/_internal/certifi/cacert.pem +0 -3959
  82. package/bin/_internal/certifi/py.typed +0 -0
  83. package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
  84. package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
  85. package/bin/_internal/click-8.4.2.dist-info/INSTALLER +0 -1
  86. package/bin/_internal/click-8.4.2.dist-info/METADATA +0 -84
  87. package/bin/_internal/click-8.4.2.dist-info/RECORD +0 -40
  88. package/bin/_internal/click-8.4.2.dist-info/WHEEL +0 -4
  89. package/bin/_internal/click-8.4.2.dist-info/licenses/LICENSE.txt +0 -28
  90. package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
  91. package/bin/_internal/cryptography-49.0.0.dist-info/INSTALLER +0 -1
  92. package/bin/_internal/cryptography-49.0.0.dist-info/METADATA +0 -110
  93. package/bin/_internal/cryptography-49.0.0.dist-info/RECORD +0 -195
  94. package/bin/_internal/cryptography-49.0.0.dist-info/WHEEL +0 -4
  95. package/bin/_internal/cryptography-49.0.0.dist-info/licenses/LICENSE +0 -3
  96. package/bin/_internal/cryptography-49.0.0.dist-info/licenses/LICENSE.APACHE +0 -202
  97. package/bin/_internal/cryptography-49.0.0.dist-info/licenses/LICENSE.BSD +0 -27
  98. package/bin/_internal/cryptography-49.0.0.dist-info/sboms/cryptography-rust.cyclonedx.json +0 -1365
  99. package/bin/_internal/cryptography-49.0.0.dist-info/sboms/sbom.json +0 -43
  100. package/bin/_internal/email_validator-2.3.0.dist-info/INSTALLER +0 -1
  101. package/bin/_internal/email_validator-2.3.0.dist-info/METADATA +0 -466
  102. package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +0 -27
  103. package/bin/_internal/email_validator-2.3.0.dist-info/WHEEL +0 -5
  104. package/bin/_internal/email_validator-2.3.0.dist-info/entry_points.txt +0 -2
  105. package/bin/_internal/email_validator-2.3.0.dist-info/licenses/LICENSE +0 -27
  106. package/bin/_internal/email_validator-2.3.0.dist-info/top_level.txt +0 -1
  107. package/bin/_internal/fastmcp-3.4.5.dist-info/INSTALLER +0 -1
  108. package/bin/_internal/fastmcp-3.4.5.dist-info/METADATA +0 -160
  109. package/bin/_internal/fastmcp-3.4.5.dist-info/RECORD +0 -5
  110. package/bin/_internal/fastmcp-3.4.5.dist-info/WHEEL +0 -4
  111. package/bin/_internal/fastmcp-3.4.5.dist-info/licenses/LICENSE +0 -201
  112. package/bin/_internal/frozenlist/_frozenlist.cp312-win_amd64.pyd +0 -0
  113. package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +0 -33
  114. package/bin/_internal/integrations/github/claude-code-action/CLAUDE.md +0 -136
  115. package/bin/_internal/integrations/github/claude-code-action/CODE_OF_CONDUCT.md +0 -128
  116. package/bin/_internal/integrations/github/claude-code-action/CONTRIBUTING.md +0 -116
  117. package/bin/_internal/integrations/github/claude-code-action/LICENSE +0 -21
  118. package/bin/_internal/integrations/github/claude-code-action/README.md +0 -53
  119. package/bin/_internal/integrations/github/claude-code-action/ROADMAP.md +0 -20
  120. package/bin/_internal/integrations/github/claude-code-action/SECURITY.md +0 -15
  121. package/bin/_internal/integrations/github/claude-code-action/action.yml +0 -294
  122. package/bin/_internal/integrations/github/claude-code-action/base-action/CLAUDE.md +0 -60
  123. package/bin/_internal/integrations/github/claude-code-action/base-action/CODE_OF_CONDUCT.md +0 -128
  124. package/bin/_internal/integrations/github/claude-code-action/base-action/CONTRIBUTING.md +0 -136
  125. package/bin/_internal/integrations/github/claude-code-action/base-action/LICENSE +0 -21
  126. package/bin/_internal/integrations/github/claude-code-action/base-action/MIRROR_DISCLAIMER.md +0 -11
  127. package/bin/_internal/integrations/github/claude-code-action/base-action/README.md +0 -521
  128. package/bin/_internal/integrations/github/claude-code-action/base-action/action.yml +0 -149
  129. package/bin/_internal/integrations/github/claude-code-action/base-action/bun.lock +0 -54
  130. package/bin/_internal/integrations/github/claude-code-action/base-action/examples/issue-triage.yml +0 -108
  131. package/bin/_internal/integrations/github/claude-code-action/base-action/package.json +0 -23
  132. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/install-hooks.sh +0 -13
  133. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/pre-push +0 -46
  134. package/bin/_internal/integrations/github/claude-code-action/base-action/src/index.ts +0 -82
  135. package/bin/_internal/integrations/github/claude-code-action/base-action/src/prepare-prompt.ts +0 -82
  136. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-claude.ts +0 -257
  137. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-vicoa.ts +0 -301
  138. package/bin/_internal/integrations/github/claude-code-action/base-action/src/setup-claude-code-settings.ts +0 -68
  139. package/bin/_internal/integrations/github/claude-code-action/base-action/src/validate-env.ts +0 -54
  140. package/bin/_internal/integrations/github/claude-code-action/base-action/test-local.sh +0 -12
  141. package/bin/_internal/integrations/github/claude-code-action/base-action/test-mcp-local.sh +0 -18
  142. package/bin/_internal/integrations/github/claude-code-action/base-action/tsconfig.json +0 -30
  143. package/bin/_internal/integrations/github/claude-code-action/bun.lock +0 -384
  144. package/bin/_internal/integrations/github/claude-code-action/docs/capabilities-and-limitations.md +0 -33
  145. package/bin/_internal/integrations/github/claude-code-action/docs/cloud-providers.md +0 -99
  146. package/bin/_internal/integrations/github/claude-code-action/docs/configuration.md +0 -345
  147. package/bin/_internal/integrations/github/claude-code-action/docs/custom-automations.md +0 -113
  148. package/bin/_internal/integrations/github/claude-code-action/docs/experimental.md +0 -128
  149. package/bin/_internal/integrations/github/claude-code-action/docs/faq.md +0 -205
  150. package/bin/_internal/integrations/github/claude-code-action/docs/migration-guide.md +0 -261
  151. package/bin/_internal/integrations/github/claude-code-action/docs/security.md +0 -38
  152. package/bin/_internal/integrations/github/claude-code-action/docs/setup.md +0 -146
  153. package/bin/_internal/integrations/github/claude-code-action/docs/usage.md +0 -213
  154. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/auto-fix-ci.yml +0 -97
  155. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/commands/fix-ci.md +0 -127
  156. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/auto-fix-ci-signed.yml +0 -97
  157. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/commands/fix-ci-signed.md +0 -148
  158. package/bin/_internal/integrations/github/claude-code-action/examples/issue-deduplication.yml +0 -63
  159. package/bin/_internal/integrations/github/claude-code-action/examples/issue-triage.yml +0 -75
  160. package/bin/_internal/integrations/github/claude-code-action/examples/vicoa.yml +0 -75
  161. package/bin/_internal/integrations/github/claude-code-action/package.json +0 -31
  162. package/bin/_internal/integrations/github/claude-code-action/scripts/install-hooks.sh +0 -13
  163. package/bin/_internal/integrations/github/claude-code-action/scripts/pre-commit +0 -46
  164. package/bin/_internal/integrations/github/claude-code-action/scripts/setup-network-restrictions.sh +0 -123
  165. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/index.ts +0 -799
  166. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/types.ts +0 -102
  167. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/collect-inputs.ts +0 -58
  168. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/format-turns.ts +0 -465
  169. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/prepare.ts +0 -98
  170. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/update-comment-link.ts +0 -245
  171. package/bin/_internal/integrations/github/claude-code-action/src/github/api/client.ts +0 -23
  172. package/bin/_internal/integrations/github/claude-code-action/src/github/api/config.ts +0 -4
  173. package/bin/_internal/integrations/github/claude-code-action/src/github/api/queries/github.ts +0 -117
  174. package/bin/_internal/integrations/github/claude-code-action/src/github/context.ts +0 -277
  175. package/bin/_internal/integrations/github/claude-code-action/src/github/data/fetcher.ts +0 -233
  176. package/bin/_internal/integrations/github/claude-code-action/src/github/data/formatter.ts +0 -144
  177. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch-cleanup.ts +0 -132
  178. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch.ts +0 -163
  179. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comment-logic.ts +0 -203
  180. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/common.ts +0 -33
  181. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/create-initial.ts +0 -111
  182. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-claude-comment.ts +0 -70
  183. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-with-branch.ts +0 -57
  184. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/git-config.ts +0 -62
  185. package/bin/_internal/integrations/github/claude-code-action/src/github/token.ts +0 -108
  186. package/bin/_internal/integrations/github/claude-code-action/src/github/types.ts +0 -98
  187. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/image-downloader.ts +0 -246
  188. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/sanitizer.ts +0 -100
  189. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/actor.ts +0 -64
  190. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/permissions.ts +0 -47
  191. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/trigger.ts +0 -148
  192. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-actions-server.ts +0 -279
  193. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-comment-server.ts +0 -101
  194. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-file-ops-server.ts +0 -677
  195. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-inline-comment-server.ts +0 -184
  196. package/bin/_internal/integrations/github/claude-code-action/src/mcp/install-mcp-server.ts +0 -201
  197. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/index.ts +0 -152
  198. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/parse-tools.ts +0 -22
  199. package/bin/_internal/integrations/github/claude-code-action/src/modes/detector.ts +0 -66
  200. package/bin/_internal/integrations/github/claude-code-action/src/modes/registry.ts +0 -54
  201. package/bin/_internal/integrations/github/claude-code-action/src/modes/tag/index.ts +0 -187
  202. package/bin/_internal/integrations/github/claude-code-action/src/modes/types.ts +0 -100
  203. package/bin/_internal/integrations/github/claude-code-action/src/prepare/index.ts +0 -20
  204. package/bin/_internal/integrations/github/claude-code-action/src/prepare/types.ts +0 -20
  205. package/bin/_internal/integrations/github/claude-code-action/src/utils/retry.ts +0 -40
  206. package/bin/_internal/integrations/github/claude-code-action/tsconfig.json +0 -30
  207. package/bin/_internal/integrations/headless/tests/README.md +0 -58
  208. package/bin/_internal/integrations/n8n/LICENSE +0 -21
  209. package/bin/_internal/integrations/n8n/README.md +0 -298
  210. package/bin/_internal/integrations/n8n/package-lock.json +0 -2989
  211. package/bin/_internal/integrations/n8n/package.json +0 -68
  212. package/bin/_internal/integrations/n8n/src/credentials/OmnaraApi.credentials.ts +0 -52
  213. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.json +0 -35
  214. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.ts +0 -304
  215. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/index.ts +0 -37
  216. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/send.operation.ts +0 -151
  217. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/sendAndWait.operation.ts +0 -252
  218. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/end.operation.ts +0 -56
  219. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/index.ts +0 -29
  220. package/bin/_internal/integrations/n8n/src/nodes/Omnara/vicoa.png +0 -0
  221. package/bin/_internal/integrations/n8n/src/utils/GenericFunctions.ts +0 -93
  222. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/configureWaitTillDate.ts +0 -42
  223. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/descriptions.ts +0 -20
  224. package/bin/_internal/integrations/n8n/src/utils/sendAndWaitWebhook.ts +0 -72
  225. package/bin/_internal/integrations/n8n/tsconfig.json +0 -20
  226. package/bin/_internal/jiter/jiter.cp312-win_amd64.pyd +0 -0
  227. package/bin/_internal/jsonschema/benchmarks/issue232/issue.json +0 -2653
  228. package/bin/_internal/jsonschema-4.26.0.dist-info/INSTALLER +0 -1
  229. package/bin/_internal/jsonschema-4.26.0.dist-info/METADATA +0 -170
  230. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +0 -82
  231. package/bin/_internal/jsonschema-4.26.0.dist-info/WHEEL +0 -4
  232. package/bin/_internal/jsonschema-4.26.0.dist-info/entry_points.txt +0 -2
  233. package/bin/_internal/jsonschema-4.26.0.dist-info/licenses/COPYING +0 -19
  234. package/bin/_internal/jsonschema_specifications/schemas/draft201909/metaschema.json +0 -42
  235. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +0 -56
  236. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/content +0 -17
  237. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/core +0 -57
  238. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/format +0 -14
  239. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +0 -37
  240. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/validation +0 -98
  241. package/bin/_internal/jsonschema_specifications/schemas/draft202012/metaschema.json +0 -58
  242. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +0 -48
  243. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/content +0 -17
  244. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/core +0 -51
  245. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +0 -14
  246. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +0 -14
  247. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +0 -37
  248. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +0 -15
  249. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/validation +0 -98
  250. package/bin/_internal/jsonschema_specifications/schemas/draft3/metaschema.json +0 -172
  251. package/bin/_internal/jsonschema_specifications/schemas/draft4/metaschema.json +0 -149
  252. package/bin/_internal/jsonschema_specifications/schemas/draft6/metaschema.json +0 -153
  253. package/bin/_internal/jsonschema_specifications/schemas/draft7/metaschema.json +0 -166
  254. package/bin/_internal/libcrypto-3.dll +0 -0
  255. package/bin/_internal/libffi-8.dll +0 -0
  256. package/bin/_internal/libssl-3.dll +0 -0
  257. package/bin/_internal/mcp-1.29.0.dist-info/INSTALLER +0 -1
  258. package/bin/_internal/mcp-1.29.0.dist-info/METADATA +0 -239
  259. package/bin/_internal/mcp-1.29.0.dist-info/RECORD +0 -228
  260. package/bin/_internal/mcp-1.29.0.dist-info/WHEEL +0 -4
  261. package/bin/_internal/mcp-1.29.0.dist-info/entry_points.txt +0 -2
  262. package/bin/_internal/mcp-1.29.0.dist-info/licenses/LICENSE +0 -21
  263. package/bin/_internal/multidict/_multidict.cp312-win_amd64.pyd +0 -0
  264. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/INSTALLER +0 -1
  265. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/METADATA +0 -43
  266. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/RECORD +0 -78
  267. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/WHEEL +0 -4
  268. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/entry_points.txt +0 -15
  269. package/bin/_internal/opentelemetry_api-1.44.0.dist-info/licenses/LICENSE +0 -201
  270. package/bin/_internal/propcache/_helpers_c.cp312-win_amd64.pyd +0 -0
  271. package/bin/_internal/pydantic-2.13.4.dist-info/INSTALLER +0 -1
  272. package/bin/_internal/pydantic-2.13.4.dist-info/METADATA +0 -1294
  273. package/bin/_internal/pydantic-2.13.4.dist-info/RECORD +0 -217
  274. package/bin/_internal/pydantic-2.13.4.dist-info/WHEEL +0 -4
  275. package/bin/_internal/pydantic-2.13.4.dist-info/licenses/LICENSE +0 -21
  276. package/bin/_internal/pydantic_core/_pydantic_core.cp312-win_amd64.pyd +0 -0
  277. package/bin/_internal/pyexpat.pyd +0 -0
  278. package/bin/_internal/python3.dll +0 -0
  279. package/bin/_internal/python312.dll +0 -0
  280. package/bin/_internal/pywin32_system32/pythoncom312.dll +0 -0
  281. package/bin/_internal/pywin32_system32/pywintypes312.dll +0 -0
  282. package/bin/_internal/rpds/rpds.cp312-win_amd64.pyd +0 -0
  283. package/bin/_internal/select.pyd +0 -0
  284. package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +0 -2
  285. package/bin/_internal/sqlite3.dll +0 -0
  286. package/bin/_internal/ucrtbase.dll +0 -0
  287. package/bin/_internal/unicodedata.pyd +0 -0
  288. package/bin/_internal/vicoa/_bin/README.md +0 -28
  289. package/bin/_internal/vicoa-1.7.2.dist-info/INSTALLER +0 -1
  290. package/bin/_internal/vicoa-1.7.2.dist-info/METADATA +0 -313
  291. package/bin/_internal/vicoa-1.7.2.dist-info/RECORD +0 -11
  292. package/bin/_internal/vicoa-1.7.2.dist-info/REQUESTED +0 -0
  293. package/bin/_internal/vicoa-1.7.2.dist-info/WHEEL +0 -5
  294. package/bin/_internal/vicoa-1.7.2.dist-info/direct_url.json +0 -1
  295. package/bin/_internal/vicoa-1.7.2.dist-info/entry_points.txt +0 -2
  296. package/bin/_internal/vicoa-1.7.2.dist-info/licenses/LICENSE +0 -201
  297. package/bin/_internal/vicoa-1.7.2.dist-info/top_level.txt +0 -4
  298. package/bin/_internal/watchfiles/_rust_notify.cp312-win_amd64.pyd +0 -0
  299. package/bin/_internal/websockets/speedups.cp312-win_amd64.pyd +0 -0
  300. package/bin/_internal/websockets-16.1.1.dist-info/INSTALLER +0 -1
  301. package/bin/_internal/websockets-16.1.1.dist-info/METADATA +0 -179
  302. package/bin/_internal/websockets-16.1.1.dist-info/RECORD +0 -108
  303. package/bin/_internal/websockets-16.1.1.dist-info/WHEEL +0 -5
  304. package/bin/_internal/websockets-16.1.1.dist-info/entry_points.txt +0 -2
  305. package/bin/_internal/websockets-16.1.1.dist-info/licenses/LICENSE +0 -24
  306. package/bin/_internal/websockets-16.1.1.dist-info/top_level.txt +0 -1
  307. package/bin/_internal/win32/_win32sysloader.pyd +0 -0
  308. package/bin/_internal/win32/win32api.pyd +0 -0
  309. package/bin/_internal/win32/win32evtlog.pyd +0 -0
  310. package/bin/_internal/win32/win32job.pyd +0 -0
  311. package/bin/_internal/yaml/_yaml.cp312-win_amd64.pyd +0 -0
  312. package/bin/_internal/yarl/_quoting_c.cp312-win_amd64.pyd +0 -0
  313. package/bin/vicoa.exe +0 -0
@@ -1,54 +0,0 @@
1
- {
2
- "lockfileVersion": 1,
3
- "workspaces": {
4
- "": {
5
- "name": "@anthropic-ai/claude-code-base-action",
6
- "dependencies": {
7
- "@actions/core": "^1.10.1",
8
- "shell-quote": "^1.8.3",
9
- },
10
- "devDependencies": {
11
- "@types/bun": "^1.2.12",
12
- "@types/node": "^20.0.0",
13
- "@types/shell-quote": "^1.7.5",
14
- "prettier": "3.5.3",
15
- "typescript": "^5.8.3",
16
- },
17
- },
18
- },
19
- "packages": {
20
- "@actions/core": ["@actions/core@1.11.1", "", { "dependencies": { "@actions/exec": "^1.1.1", "@actions/http-client": "^2.0.1" } }, "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A=="],
21
-
22
- "@actions/exec": ["@actions/exec@1.1.1", "", { "dependencies": { "@actions/io": "^1.0.1" } }, "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w=="],
23
-
24
- "@actions/http-client": ["@actions/http-client@2.2.3", "", { "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA=="],
25
-
26
- "@actions/io": ["@actions/io@1.1.3", "", {}, "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="],
27
-
28
- "@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="],
29
-
30
- "@types/bun": ["@types/bun@1.2.19", "", { "dependencies": { "bun-types": "1.2.19" } }, "sha512-d9ZCmrH3CJ2uYKXQIUuZ/pUnTqIvLDS0SK7pFmbx8ma+ziH/FRMoAq5bYpRG7y+w1gl+HgyNZbtqgMq4W4e2Lg=="],
31
-
32
- "@types/node": ["@types/node@20.19.9", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw=="],
33
-
34
- "@types/react": ["@types/react@19.1.8", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g=="],
35
-
36
- "@types/shell-quote": ["@types/shell-quote@1.7.5", "", {}, "sha512-+UE8GAGRPbJVQDdxi16dgadcBfQ+KG2vgZhV1+3A1XmHbmwcdwhCUwIdy+d3pAGrbvgRoVSjeI9vOWyq376Yzw=="],
37
-
38
- "bun-types": ["bun-types@1.2.19", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-uAOTaZSPuYsWIXRpj7o56Let0g/wjihKCkeRqUBhlLVM/Bt+Fj9xTo+LhC1OV1XDaGkz4hNC80et5xgy+9KTHQ=="],
39
-
40
- "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
41
-
42
- "prettier": ["prettier@3.5.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="],
43
-
44
- "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="],
45
-
46
- "tunnel": ["tunnel@0.0.6", "", {}, "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="],
47
-
48
- "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
49
-
50
- "undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
51
-
52
- "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
53
- }
54
- }
@@ -1,108 +0,0 @@
1
- name: Claude Issue Triage Example
2
- description: Run Claude Code for issue triage in GitHub Actions
3
- on:
4
- issues:
5
- types: [opened]
6
-
7
- jobs:
8
- triage-issue:
9
- runs-on: ubuntu-latest
10
- timeout-minutes: 10
11
- permissions:
12
- contents: read
13
- issues: write
14
-
15
- steps:
16
- - name: Checkout repository
17
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
18
- with:
19
- fetch-depth: 0
20
-
21
- - name: Setup GitHub MCP Server
22
- run: |
23
- mkdir -p /tmp/mcp-config
24
- cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
25
- {
26
- "mcpServers": {
27
- "github": {
28
- "command": "docker",
29
- "args": [
30
- "run",
31
- "-i",
32
- "--rm",
33
- "-e",
34
- "GITHUB_PERSONAL_ACCESS_TOKEN",
35
- "ghcr.io/github/github-mcp-server:sha-7aced2b"
36
- ],
37
- "env": {
38
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
39
- }
40
- }
41
- }
42
- }
43
- EOF
44
-
45
- - name: Create triage prompt
46
- run: |
47
- mkdir -p /tmp/claude-prompts
48
- cat > /tmp/claude-prompts/triage-prompt.txt << 'EOF'
49
- You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list.
50
-
51
- IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels.
52
-
53
- Issue Information:
54
- - REPO: ${GITHUB_REPOSITORY}
55
- - ISSUE_NUMBER: ${{ github.event.issue.number }}
56
-
57
- TASK OVERVIEW:
58
-
59
- 1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else.
60
-
61
- 2. Next, use the GitHub tools to get context about the issue:
62
- - You have access to these tools:
63
- - mcp__github__get_issue: Use this to retrieve the current issue's details including title, description, and existing labels
64
- - mcp__github__get_issue_comments: Use this to read any discussion or additional context provided in the comments
65
- - mcp__github__update_issue: Use this to apply labels to the issue (do not use this for commenting)
66
- - mcp__github__search_issues: Use this to find similar issues that might provide context for proper categorization and to identify potential duplicate issues
67
- - mcp__github__list_issues: Use this to understand patterns in how other issues are labeled
68
- - Start by using mcp__github__get_issue to get the issue details
69
-
70
- 3. Analyze the issue content, considering:
71
- - The issue title and description
72
- - The type of issue (bug report, feature request, question, etc.)
73
- - Technical areas mentioned
74
- - Severity or priority indicators
75
- - User impact
76
- - Components affected
77
-
78
- 4. Select appropriate labels from the available labels list provided above:
79
- - Choose labels that accurately reflect the issue's nature
80
- - Be specific but comprehensive
81
- - Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
82
- - Consider platform labels (android, ios) if applicable
83
- - If you find similar issues using mcp__github__search_issues, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
84
-
85
- 5. Apply the selected labels:
86
- - Use mcp__github__update_issue to apply your selected labels
87
- - DO NOT post any comments explaining your decision
88
- - DO NOT communicate directly with users
89
- - If no labels are clearly applicable, do not apply any labels
90
-
91
- IMPORTANT GUIDELINES:
92
- - Be thorough in your analysis
93
- - Only select labels from the provided list above
94
- - DO NOT post any comments to the issue
95
- - Your ONLY action should be to apply labels using mcp__github__update_issue
96
- - It's okay to not add any labels if none are clearly applicable
97
- EOF
98
- env:
99
- GITHUB_REPOSITORY: ${{ github.repository }}
100
-
101
- - name: Run Claude Code for Issue Triage
102
- uses: anthropics/claude-code-base-action@beta
103
- with:
104
- prompt_file: /tmp/claude-prompts/triage-prompt.txt
105
- allowed_tools: "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__search_issues,mcp__github__list_issues"
106
- claude_args: |
107
- --mcp-config /tmp/mcp-config/mcp-servers.json
108
- anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -1,23 +0,0 @@
1
- {
2
- "name": "@anthropic-ai/claude-code-base-action",
3
- "version": "1.0.0",
4
- "private": true,
5
- "scripts": {
6
- "format": "prettier --write .",
7
- "format:check": "prettier --check .",
8
- "install-hooks": "bun run scripts/install-hooks.sh",
9
- "test": "bun test",
10
- "typecheck": "tsc --noEmit"
11
- },
12
- "dependencies": {
13
- "@actions/core": "^1.10.1",
14
- "shell-quote": "^1.8.3"
15
- },
16
- "devDependencies": {
17
- "@types/bun": "^1.2.12",
18
- "@types/node": "^20.0.0",
19
- "@types/shell-quote": "^1.7.5",
20
- "prettier": "3.5.3",
21
- "typescript": "^5.8.3"
22
- }
23
- }
@@ -1,13 +0,0 @@
1
- #!/bin/sh
2
-
3
- # Install git hooks
4
- echo "Installing git hooks..."
5
-
6
- # Make sure hooks directory exists
7
- mkdir -p .git/hooks
8
-
9
- # Install pre-push hook
10
- cp scripts/pre-push .git/hooks/pre-push
11
- chmod +x .git/hooks/pre-push
12
-
13
- echo "Git hooks installed successfully!"
@@ -1,46 +0,0 @@
1
- #!/bin/sh
2
-
3
- # Check if files need formatting before push
4
- echo "Checking code formatting..."
5
-
6
- # First check if any files need formatting
7
- if ! bun run format:check; then
8
- echo "Code formatting errors found. Running formatter..."
9
- bun run format
10
-
11
- # Check if there are any staged changes after formatting
12
- if git diff --name-only --exit-code; then
13
- echo "All files are now properly formatted."
14
- else
15
- echo ""
16
- echo "ERROR: Code has been formatted but changes need to be committed!"
17
- echo "Please commit the formatted files and try again."
18
- echo ""
19
- echo "The following files were modified:"
20
- git diff --name-only
21
- echo ""
22
- exit 1
23
- fi
24
- else
25
- echo "Code formatting is already correct."
26
- fi
27
-
28
- # Run type checking
29
- echo "Running type checking..."
30
- if ! bun run typecheck; then
31
- echo "Type checking failed. Please fix the type errors and try again."
32
- exit 1
33
- else
34
- echo "Type checking passed."
35
- fi
36
-
37
- # Run tests
38
- echo "Running tests..."
39
- if ! bun run test; then
40
- echo "Tests failed. Please fix the failing tests and try again."
41
- exit 1
42
- else
43
- echo "All tests passed."
44
- fi
45
-
46
- exit 0
@@ -1,82 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import * as core from "@actions/core";
4
- import { preparePrompt } from "./prepare-prompt";
5
- import { runClaude } from "./run-claude";
6
- import { runVicoa } from "./run-vicoa";
7
- import { setupClaudeCodeSettings } from "./setup-claude-code-settings";
8
- import { validateEnvironmentVariables } from "./validate-env";
9
-
10
- async function run() {
11
- try {
12
- validateEnvironmentVariables();
13
-
14
- await setupClaudeCodeSettings(
15
- process.env.INPUT_SETTINGS,
16
- undefined, // homeDir
17
- );
18
-
19
- const promptConfig = await preparePrompt({
20
- prompt: process.env.INPUT_PROMPT || "",
21
- promptFile: process.env.INPUT_PROMPT_FILE || "",
22
- });
23
-
24
- // Dynamically determine whether to use Vicoa based on:
25
- // 1. VICOA_API_KEY is present (from repository_dispatch or secrets)
26
- // 2. Trigger phrase contains "vicoa" (case-insensitive)
27
- // This allows both @claude (regular) and @vicoa (with tracking) in same repo
28
- const triggerPhrase = process.env.TRIGGER_PHRASE || "@claude";
29
- const isVicoaTrigger = triggerPhrase.toLowerCase().includes("vicoa");
30
- const hasVicoaKey = !!process.env.VICOA_API_KEY;
31
- const isRepositoryDispatch = process.env.GITHUB_EVENT_NAME === "repository_dispatch";
32
-
33
- // Check if @vicoa was used without API key - fall back to Claude with warning
34
- if (isVicoaTrigger && !hasVicoaKey) {
35
- console.warn("⚠️ WARNING: @vicoa was used but VICOA_API_KEY is not set in repository secrets.");
36
- console.warn("⚠️ Falling back to standard Claude Code without session tracking.");
37
- console.warn("⚠️ To enable Vicoa tracking, add VICOA_API_KEY to your repository secrets.");
38
- }
39
-
40
- if (hasVicoaKey && (isVicoaTrigger || isRepositoryDispatch)) {
41
- // Use Vicoa headless for session tracking
42
- console.log("✅ Using Vicoa headless for session tracking");
43
- await runVicoa(promptConfig.path, {
44
- allowedTools: process.env.INPUT_ALLOWED_TOOLS,
45
- disallowedTools: process.env.INPUT_DISALLOWED_TOOLS,
46
- maxTurns: process.env.INPUT_MAX_TURNS,
47
- mcpConfig: process.env.INPUT_MCP_CONFIG,
48
- systemPrompt: process.env.INPUT_SYSTEM_PROMPT,
49
- appendSystemPrompt: process.env.INPUT_APPEND_SYSTEM_PROMPT,
50
- claudeEnv: process.env.INPUT_CLAUDE_ENV,
51
- fallbackModel: process.env.INPUT_FALLBACK_MODEL,
52
- model: process.env.ANTHROPIC_MODEL,
53
- timeoutMinutes: process.env.INPUT_TIMEOUT_MINUTES,
54
- });
55
- } else {
56
- // Use standard Claude Code
57
- console.log("ℹ️ Using standard Claude Code (no Vicoa tracking)");
58
- await runClaude(promptConfig.path, {
59
- claudeArgs: process.env.INPUT_CLAUDE_ARGS,
60
- allowedTools: process.env.INPUT_ALLOWED_TOOLS,
61
- disallowedTools: process.env.INPUT_DISALLOWED_TOOLS,
62
- maxTurns: process.env.INPUT_MAX_TURNS,
63
- mcpConfig: process.env.INPUT_MCP_CONFIG,
64
- systemPrompt: process.env.INPUT_SYSTEM_PROMPT,
65
- appendSystemPrompt: process.env.INPUT_APPEND_SYSTEM_PROMPT,
66
- claudeEnv: process.env.INPUT_CLAUDE_ENV,
67
- fallbackModel: process.env.INPUT_FALLBACK_MODEL,
68
- model: process.env.ANTHROPIC_MODEL,
69
- pathToClaudeCodeExecutable:
70
- process.env.INPUT_PATH_TO_CLAUDE_CODE_EXECUTABLE,
71
- });
72
- }
73
- } catch (error) {
74
- core.setFailed(`Action failed with error: ${error}`);
75
- core.setOutput("conclusion", "failure");
76
- process.exit(1);
77
- }
78
- }
79
-
80
- if (import.meta.main) {
81
- run();
82
- }
@@ -1,82 +0,0 @@
1
- import { existsSync, statSync } from "fs";
2
- import { mkdir, writeFile } from "fs/promises";
3
-
4
- export type PreparePromptInput = {
5
- prompt: string;
6
- promptFile: string;
7
- };
8
-
9
- export type PreparePromptConfig = {
10
- type: "file" | "inline";
11
- path: string;
12
- };
13
-
14
- async function validateAndPreparePrompt(
15
- input: PreparePromptInput,
16
- ): Promise<PreparePromptConfig> {
17
- // Validate inputs
18
- if (!input.prompt && !input.promptFile) {
19
- throw new Error(
20
- "Neither 'prompt' nor 'prompt_file' was provided. At least one is required.",
21
- );
22
- }
23
-
24
- if (input.prompt && input.promptFile) {
25
- throw new Error(
26
- "Both 'prompt' and 'prompt_file' were provided. Please specify only one.",
27
- );
28
- }
29
-
30
- // Handle prompt file
31
- if (input.promptFile) {
32
- if (!existsSync(input.promptFile)) {
33
- throw new Error(`Prompt file '${input.promptFile}' does not exist.`);
34
- }
35
-
36
- // Validate that the file is not empty
37
- const stats = statSync(input.promptFile);
38
- if (stats.size === 0) {
39
- throw new Error(
40
- "Prompt file is empty. Please provide a non-empty prompt.",
41
- );
42
- }
43
-
44
- return {
45
- type: "file",
46
- path: input.promptFile,
47
- };
48
- }
49
-
50
- // Handle inline prompt
51
- if (!input.prompt || input.prompt.trim().length === 0) {
52
- throw new Error("Prompt is empty. Please provide a non-empty prompt.");
53
- }
54
-
55
- const inlinePath = "/tmp/claude-action/prompt.txt";
56
- return {
57
- type: "inline",
58
- path: inlinePath,
59
- };
60
- }
61
-
62
- async function createTemporaryPromptFile(
63
- prompt: string,
64
- promptPath: string,
65
- ): Promise<void> {
66
- // Create the directory path
67
- const dirPath = promptPath.substring(0, promptPath.lastIndexOf("/"));
68
- await mkdir(dirPath, { recursive: true });
69
- await writeFile(promptPath, prompt);
70
- }
71
-
72
- export async function preparePrompt(
73
- input: PreparePromptInput,
74
- ): Promise<PreparePromptConfig> {
75
- const config = await validateAndPreparePrompt(input);
76
-
77
- if (config.type === "inline") {
78
- await createTemporaryPromptFile(input.prompt, config.path);
79
- }
80
-
81
- return config;
82
- }
@@ -1,257 +0,0 @@
1
- import * as core from "@actions/core";
2
- import { exec } from "child_process";
3
- import { promisify } from "util";
4
- import { unlink, writeFile, stat } from "fs/promises";
5
- import { createWriteStream } from "fs";
6
- import { spawn } from "child_process";
7
- import { parse as parseShellArgs } from "shell-quote";
8
-
9
- const execAsync = promisify(exec);
10
-
11
- const PIPE_PATH = `${process.env.RUNNER_TEMP}/claude_prompt_pipe`;
12
- const EXECUTION_FILE = `${process.env.RUNNER_TEMP}/claude-execution-output.json`;
13
- const BASE_ARGS = ["--verbose", "--output-format", "stream-json"];
14
-
15
- export type ClaudeOptions = {
16
- claudeArgs?: string;
17
- model?: string;
18
- pathToClaudeCodeExecutable?: string;
19
- allowedTools?: string;
20
- disallowedTools?: string;
21
- maxTurns?: string;
22
- mcpConfig?: string;
23
- systemPrompt?: string;
24
- appendSystemPrompt?: string;
25
- claudeEnv?: string;
26
- fallbackModel?: string;
27
- };
28
-
29
- type PreparedConfig = {
30
- claudeArgs: string[];
31
- promptPath: string;
32
- env: Record<string, string>;
33
- };
34
-
35
- export function prepareRunConfig(
36
- promptPath: string,
37
- options: ClaudeOptions,
38
- ): PreparedConfig {
39
- // Build Claude CLI arguments:
40
- // 1. Prompt flag (always first)
41
- // 2. User's claudeArgs (full control)
42
- // 3. BASE_ARGS (always last, cannot be overridden)
43
-
44
- const claudeArgs = ["-p"];
45
-
46
- // Parse and add user's custom Claude arguments
47
- if (options.claudeArgs?.trim()) {
48
- const parsed = parseShellArgs(options.claudeArgs);
49
- const customArgs = parsed.filter(
50
- (arg): arg is string => typeof arg === "string",
51
- );
52
- claudeArgs.push(...customArgs);
53
- }
54
-
55
- // BASE_ARGS are always appended last (cannot be overridden)
56
- claudeArgs.push(...BASE_ARGS);
57
-
58
- const customEnv: Record<string, string> = {};
59
-
60
- if (process.env.INPUT_ACTION_INPUTS_PRESENT) {
61
- customEnv.GITHUB_ACTION_INPUTS = process.env.INPUT_ACTION_INPUTS_PRESENT;
62
- }
63
-
64
- return {
65
- claudeArgs,
66
- promptPath,
67
- env: customEnv,
68
- };
69
- }
70
-
71
- export async function runClaude(promptPath: string, options: ClaudeOptions) {
72
- const config = prepareRunConfig(promptPath, options);
73
-
74
- // Create a named pipe
75
- try {
76
- await unlink(PIPE_PATH);
77
- } catch (e) {
78
- // Ignore if file doesn't exist
79
- }
80
-
81
- // Create the named pipe
82
- await execAsync(`mkfifo "${PIPE_PATH}"`);
83
-
84
- // Log prompt file size
85
- let promptSize = "unknown";
86
- try {
87
- const stats = await stat(config.promptPath);
88
- promptSize = stats.size.toString();
89
- } catch (e) {
90
- // Ignore error
91
- }
92
-
93
- console.log(`Prompt file size: ${promptSize} bytes`);
94
-
95
- // Log custom environment variables if any
96
- const customEnvKeys = Object.keys(config.env).filter(
97
- (key) => key !== "CLAUDE_ACTION_INPUTS_PRESENT",
98
- );
99
- if (customEnvKeys.length > 0) {
100
- console.log(`Custom environment variables: ${customEnvKeys.join(", ")}`);
101
- }
102
-
103
- // Log custom arguments if any
104
- if (options.claudeArgs && options.claudeArgs.trim() !== "") {
105
- console.log(`Custom Claude arguments: ${options.claudeArgs}`);
106
- }
107
-
108
- // Output to console
109
- console.log(`Running Claude with prompt from file: ${config.promptPath}`);
110
- console.log(`Full command: claude ${config.claudeArgs.join(" ")}`);
111
-
112
- // Start sending prompt to pipe in background
113
- const catProcess = spawn("cat", [config.promptPath], {
114
- stdio: ["ignore", "pipe", "inherit"],
115
- });
116
- const pipeStream = createWriteStream(PIPE_PATH);
117
- catProcess.stdout.pipe(pipeStream);
118
-
119
- catProcess.on("error", (error) => {
120
- console.error("Error reading prompt file:", error);
121
- pipeStream.destroy();
122
- });
123
-
124
- // Use custom executable path if provided, otherwise default to "claude"
125
- const claudeExecutable = options.pathToClaudeCodeExecutable || "claude";
126
-
127
- const claudeProcess = spawn(claudeExecutable, config.claudeArgs, {
128
- stdio: ["pipe", "pipe", "inherit"],
129
- env: {
130
- ...process.env,
131
- ...config.env,
132
- },
133
- });
134
-
135
- // Handle Claude process errors
136
- claudeProcess.on("error", (error) => {
137
- console.error("Error spawning Claude process:", error);
138
- pipeStream.destroy();
139
- });
140
-
141
- // Capture output for parsing execution metrics
142
- let output = "";
143
- claudeProcess.stdout.on("data", (data) => {
144
- const text = data.toString();
145
-
146
- // Try to parse as JSON and pretty print if it's on a single line
147
- const lines = text.split("\n");
148
- lines.forEach((line: string, index: number) => {
149
- if (line.trim() === "") return;
150
-
151
- try {
152
- // Check if this line is a JSON object
153
- const parsed = JSON.parse(line);
154
- const prettyJson = JSON.stringify(parsed, null, 2);
155
- process.stdout.write(prettyJson);
156
- if (index < lines.length - 1 || text.endsWith("\n")) {
157
- process.stdout.write("\n");
158
- }
159
- } catch (e) {
160
- // Not a JSON object, print as is
161
- process.stdout.write(line);
162
- if (index < lines.length - 1 || text.endsWith("\n")) {
163
- process.stdout.write("\n");
164
- }
165
- }
166
- });
167
-
168
- output += text;
169
- });
170
-
171
- // Handle stdout errors
172
- claudeProcess.stdout.on("error", (error) => {
173
- console.error("Error reading Claude stdout:", error);
174
- });
175
-
176
- // Pipe from named pipe to Claude
177
- const pipeProcess = spawn("cat", [PIPE_PATH]);
178
- pipeProcess.stdout.pipe(claudeProcess.stdin);
179
-
180
- // Handle pipe process errors
181
- pipeProcess.on("error", (error) => {
182
- console.error("Error reading from named pipe:", error);
183
- claudeProcess.kill("SIGTERM");
184
- });
185
-
186
- // Wait for Claude to finish
187
- const exitCode = await new Promise<number>((resolve) => {
188
- claudeProcess.on("close", (code) => {
189
- resolve(code || 0);
190
- });
191
-
192
- claudeProcess.on("error", (error) => {
193
- console.error("Claude process error:", error);
194
- resolve(1);
195
- });
196
- });
197
-
198
- // Clean up processes
199
- try {
200
- catProcess.kill("SIGTERM");
201
- } catch (e) {
202
- // Process may already be dead
203
- }
204
- try {
205
- pipeProcess.kill("SIGTERM");
206
- } catch (e) {
207
- // Process may already be dead
208
- }
209
-
210
- // Clean up pipe file
211
- try {
212
- await unlink(PIPE_PATH);
213
- } catch (e) {
214
- // Ignore errors during cleanup
215
- }
216
-
217
- // Set conclusion based on exit code
218
- if (exitCode === 0) {
219
- // Try to process the output and save execution metrics
220
- try {
221
- await writeFile("output.txt", output);
222
-
223
- // Process output.txt into JSON and save to execution file
224
- // Increase maxBuffer from Node.js default of 1MB to 10MB to handle large Claude outputs
225
- const { stdout: jsonOutput } = await execAsync("jq -s '.' output.txt", {
226
- maxBuffer: 10 * 1024 * 1024,
227
- });
228
- await writeFile(EXECUTION_FILE, jsonOutput);
229
-
230
- console.log(`Log saved to ${EXECUTION_FILE}`);
231
- } catch (e) {
232
- core.warning(`Failed to process output for execution metrics: ${e}`);
233
- }
234
-
235
- core.setOutput("conclusion", "success");
236
- core.setOutput("execution_file", EXECUTION_FILE);
237
- } else {
238
- core.setOutput("conclusion", "failure");
239
-
240
- // Still try to save execution file if we have output
241
- if (output) {
242
- try {
243
- await writeFile("output.txt", output);
244
- // Increase maxBuffer from Node.js default of 1MB to 10MB to handle large Claude outputs
245
- const { stdout: jsonOutput } = await execAsync("jq -s '.' output.txt", {
246
- maxBuffer: 10 * 1024 * 1024,
247
- });
248
- await writeFile(EXECUTION_FILE, jsonOutput);
249
- core.setOutput("execution_file", EXECUTION_FILE);
250
- } catch (e) {
251
- // Ignore errors when processing output during failure
252
- }
253
- }
254
-
255
- process.exit(exitCode);
256
- }
257
- }