@vicoa/cli 1.3.11-linux-x64 → 1.3.11-win32-x64

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 (304) hide show
  1. package/bin/_internal/81d243bd2c585b0f4821__mypyc.cp312-win_amd64.pyd +0 -0
  2. package/bin/_internal/VCRUNTIME140.dll +0 -0
  3. package/bin/_internal/VCRUNTIME140_1.dll +0 -0
  4. package/bin/_internal/_asyncio.pyd +0 -0
  5. package/bin/_internal/_bz2.pyd +0 -0
  6. package/bin/_internal/_cffi_backend.cp312-win_amd64.pyd +0 -0
  7. package/bin/_internal/_ctypes.pyd +0 -0
  8. package/bin/_internal/_decimal.pyd +0 -0
  9. package/bin/_internal/_hashlib.pyd +0 -0
  10. package/bin/_internal/_lzma.pyd +0 -0
  11. package/bin/_internal/_multiprocessing.pyd +0 -0
  12. package/bin/_internal/_overlapped.pyd +0 -0
  13. package/bin/_internal/_queue.pyd +0 -0
  14. package/bin/_internal/_socket.pyd +0 -0
  15. package/bin/_internal/_ssl.pyd +0 -0
  16. package/bin/_internal/_uuid.pyd +0 -0
  17. package/bin/_internal/_wmi.pyd +0 -0
  18. package/bin/_internal/_zoneinfo.pyd +0 -0
  19. package/bin/_internal/aiohttp/_http_parser.cp312-win_amd64.pyd +0 -0
  20. package/bin/_internal/aiohttp/_http_writer.cp312-win_amd64.pyd +0 -0
  21. package/bin/_internal/aiohttp/_websocket/mask.cp312-win_amd64.pyd +0 -0
  22. package/bin/_internal/aiohttp/_websocket/reader_c.cp312-win_amd64.pyd +0 -0
  23. package/bin/_internal/api-ms-win-core-console-l1-1-0.dll +0 -0
  24. package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  25. package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
  26. package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  27. package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  28. package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
  29. package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
  30. package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
  31. package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
  32. package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
  33. package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
  34. package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  35. package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
  36. package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  37. package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
  38. package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
  39. package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  40. package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  41. package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  42. package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  43. package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
  44. package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  45. package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
  46. package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
  47. package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
  48. package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  49. package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
  50. package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  51. package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
  52. package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  53. package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  54. package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  55. package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  56. package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  57. package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  58. package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
  59. package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
  60. package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  61. package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  62. package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
  63. package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
  64. package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  65. package/bin/_internal/base_library.zip +0 -0
  66. package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
  67. package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
  68. package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
  69. package/bin/_internal/cryptography-46.0.7.dist-info/RECORD +2 -2
  70. package/bin/_internal/cryptography-46.0.7.dist-info/WHEEL +1 -2
  71. package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +1 -1
  72. package/bin/_internal/frozenlist/_frozenlist.cp312-win_amd64.pyd +0 -0
  73. package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +32 -32
  74. package/bin/_internal/integrations/github/claude-code-action/CLAUDE.md +136 -136
  75. package/bin/_internal/integrations/github/claude-code-action/CODE_OF_CONDUCT.md +128 -128
  76. package/bin/_internal/integrations/github/claude-code-action/CONTRIBUTING.md +116 -116
  77. package/bin/_internal/integrations/github/claude-code-action/LICENSE +20 -20
  78. package/bin/_internal/integrations/github/claude-code-action/README.md +52 -52
  79. package/bin/_internal/integrations/github/claude-code-action/ROADMAP.md +20 -20
  80. package/bin/_internal/integrations/github/claude-code-action/SECURITY.md +15 -15
  81. package/bin/_internal/integrations/github/claude-code-action/action.yml +294 -294
  82. package/bin/_internal/integrations/github/claude-code-action/base-action/CLAUDE.md +60 -60
  83. package/bin/_internal/integrations/github/claude-code-action/base-action/CODE_OF_CONDUCT.md +128 -128
  84. package/bin/_internal/integrations/github/claude-code-action/base-action/CONTRIBUTING.md +136 -136
  85. package/bin/_internal/integrations/github/claude-code-action/base-action/LICENSE +21 -21
  86. package/bin/_internal/integrations/github/claude-code-action/base-action/MIRROR_DISCLAIMER.md +11 -11
  87. package/bin/_internal/integrations/github/claude-code-action/base-action/README.md +521 -521
  88. package/bin/_internal/integrations/github/claude-code-action/base-action/action.yml +149 -149
  89. package/bin/_internal/integrations/github/claude-code-action/base-action/bun.lock +54 -54
  90. package/bin/_internal/integrations/github/claude-code-action/base-action/examples/issue-triage.yml +108 -108
  91. package/bin/_internal/integrations/github/claude-code-action/base-action/package.json +23 -23
  92. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/install-hooks.sh +12 -12
  93. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/pre-push +45 -45
  94. package/bin/_internal/integrations/github/claude-code-action/base-action/src/index.ts +82 -82
  95. package/bin/_internal/integrations/github/claude-code-action/base-action/src/prepare-prompt.ts +82 -82
  96. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-claude.ts +257 -257
  97. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-vicoa.ts +300 -300
  98. package/bin/_internal/integrations/github/claude-code-action/base-action/src/setup-claude-code-settings.ts +68 -68
  99. package/bin/_internal/integrations/github/claude-code-action/base-action/src/validate-env.ts +54 -54
  100. package/bin/_internal/integrations/github/claude-code-action/base-action/test-local.sh +11 -11
  101. package/bin/_internal/integrations/github/claude-code-action/base-action/test-mcp-local.sh +17 -17
  102. package/bin/_internal/integrations/github/claude-code-action/base-action/tsconfig.json +30 -30
  103. package/bin/_internal/integrations/github/claude-code-action/bun.lock +384 -384
  104. package/bin/_internal/integrations/github/claude-code-action/docs/capabilities-and-limitations.md +33 -33
  105. package/bin/_internal/integrations/github/claude-code-action/docs/cloud-providers.md +99 -99
  106. package/bin/_internal/integrations/github/claude-code-action/docs/configuration.md +345 -345
  107. package/bin/_internal/integrations/github/claude-code-action/docs/custom-automations.md +113 -113
  108. package/bin/_internal/integrations/github/claude-code-action/docs/experimental.md +128 -128
  109. package/bin/_internal/integrations/github/claude-code-action/docs/faq.md +205 -205
  110. package/bin/_internal/integrations/github/claude-code-action/docs/migration-guide.md +261 -261
  111. package/bin/_internal/integrations/github/claude-code-action/docs/security.md +38 -38
  112. package/bin/_internal/integrations/github/claude-code-action/docs/setup.md +146 -146
  113. package/bin/_internal/integrations/github/claude-code-action/docs/usage.md +213 -213
  114. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/auto-fix-ci.yml +97 -97
  115. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/commands/fix-ci.md +127 -127
  116. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/auto-fix-ci-signed.yml +97 -97
  117. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/commands/fix-ci-signed.md +148 -148
  118. package/bin/_internal/integrations/github/claude-code-action/examples/issue-deduplication.yml +63 -63
  119. package/bin/_internal/integrations/github/claude-code-action/examples/issue-triage.yml +75 -75
  120. package/bin/_internal/integrations/github/claude-code-action/examples/vicoa.yml +74 -74
  121. package/bin/_internal/integrations/github/claude-code-action/package.json +31 -31
  122. package/bin/_internal/integrations/github/claude-code-action/scripts/install-hooks.sh +12 -12
  123. package/bin/_internal/integrations/github/claude-code-action/scripts/pre-commit +45 -45
  124. package/bin/_internal/integrations/github/claude-code-action/scripts/setup-network-restrictions.sh +122 -122
  125. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/index.ts +799 -799
  126. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/types.ts +102 -102
  127. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/collect-inputs.ts +58 -58
  128. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/format-turns.ts +465 -465
  129. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/prepare.ts +98 -98
  130. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/update-comment-link.ts +245 -245
  131. package/bin/_internal/integrations/github/claude-code-action/src/github/api/client.ts +23 -23
  132. package/bin/_internal/integrations/github/claude-code-action/src/github/api/config.ts +4 -4
  133. package/bin/_internal/integrations/github/claude-code-action/src/github/api/queries/github.ts +117 -117
  134. package/bin/_internal/integrations/github/claude-code-action/src/github/context.ts +277 -277
  135. package/bin/_internal/integrations/github/claude-code-action/src/github/data/fetcher.ts +233 -233
  136. package/bin/_internal/integrations/github/claude-code-action/src/github/data/formatter.ts +144 -144
  137. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch-cleanup.ts +132 -132
  138. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch.ts +163 -163
  139. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comment-logic.ts +203 -203
  140. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/common.ts +33 -33
  141. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/create-initial.ts +111 -111
  142. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-claude-comment.ts +70 -70
  143. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-with-branch.ts +57 -57
  144. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/git-config.ts +62 -62
  145. package/bin/_internal/integrations/github/claude-code-action/src/github/token.ts +108 -108
  146. package/bin/_internal/integrations/github/claude-code-action/src/github/types.ts +98 -98
  147. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/image-downloader.ts +246 -246
  148. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/sanitizer.ts +100 -100
  149. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/actor.ts +64 -64
  150. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/permissions.ts +47 -47
  151. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/trigger.ts +148 -148
  152. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-actions-server.ts +279 -279
  153. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-comment-server.ts +101 -101
  154. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-file-ops-server.ts +677 -677
  155. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-inline-comment-server.ts +184 -184
  156. package/bin/_internal/integrations/github/claude-code-action/src/mcp/install-mcp-server.ts +201 -201
  157. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/index.ts +152 -152
  158. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/parse-tools.ts +22 -22
  159. package/bin/_internal/integrations/github/claude-code-action/src/modes/detector.ts +66 -66
  160. package/bin/_internal/integrations/github/claude-code-action/src/modes/registry.ts +54 -54
  161. package/bin/_internal/integrations/github/claude-code-action/src/modes/tag/index.ts +187 -187
  162. package/bin/_internal/integrations/github/claude-code-action/src/modes/types.ts +100 -100
  163. package/bin/_internal/integrations/github/claude-code-action/src/prepare/index.ts +20 -20
  164. package/bin/_internal/integrations/github/claude-code-action/src/prepare/types.ts +20 -20
  165. package/bin/_internal/integrations/github/claude-code-action/src/utils/retry.ts +40 -40
  166. package/bin/_internal/integrations/github/claude-code-action/tsconfig.json +30 -30
  167. package/bin/_internal/integrations/n8n/LICENSE +20 -20
  168. package/bin/_internal/integrations/n8n/README.md +297 -297
  169. package/bin/_internal/integrations/n8n/package-lock.json +2989 -2989
  170. package/bin/_internal/integrations/n8n/package.json +68 -68
  171. package/bin/_internal/integrations/n8n/src/credentials/OmnaraApi.credentials.ts +52 -52
  172. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.json +34 -34
  173. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.ts +304 -304
  174. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/index.ts +37 -37
  175. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/send.operation.ts +151 -151
  176. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/sendAndWait.operation.ts +252 -252
  177. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/end.operation.ts +56 -56
  178. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/index.ts +29 -29
  179. package/bin/_internal/integrations/n8n/src/utils/GenericFunctions.ts +92 -92
  180. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/configureWaitTillDate.ts +42 -42
  181. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/descriptions.ts +20 -20
  182. package/bin/_internal/integrations/n8n/src/utils/sendAndWaitWebhook.ts +72 -72
  183. package/bin/_internal/integrations/n8n/tsconfig.json +19 -19
  184. package/bin/_internal/jiter/jiter.cp312-win_amd64.pyd +0 -0
  185. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +1 -1
  186. package/bin/_internal/libcrypto-3.dll +0 -0
  187. package/bin/_internal/libffi-8.dll +0 -0
  188. package/bin/_internal/libssl-3.dll +0 -0
  189. package/bin/_internal/mcp-1.27.0.dist-info/RECORD +1 -1
  190. package/bin/_internal/multidict/_multidict.cp312-win_amd64.pyd +0 -0
  191. package/bin/_internal/propcache/_helpers_c.cp312-win_amd64.pyd +0 -0
  192. package/bin/_internal/pydantic_core/_pydantic_core.cp312-win_amd64.pyd +0 -0
  193. package/bin/_internal/pyexpat.pyd +0 -0
  194. package/bin/_internal/python3.dll +0 -0
  195. package/bin/_internal/python312.dll +0 -0
  196. package/bin/_internal/pywin32_system32/pythoncom312.dll +0 -0
  197. package/bin/_internal/pywin32_system32/pywintypes312.dll +0 -0
  198. package/bin/_internal/rpds/rpds.cp312-win_amd64.pyd +0 -0
  199. package/bin/_internal/select.pyd +0 -0
  200. package/bin/_internal/ucrtbase.dll +0 -0
  201. package/bin/_internal/{python3.12/lib-dynload/unicodedata.cpython-312-x86_64-linux-gnu.so → unicodedata.pyd} +0 -0
  202. package/bin/_internal/vicoa/_bin/README.md +28 -28
  203. package/bin/_internal/vicoa-1.3.10.dist-info/METADATA +311 -311
  204. package/bin/_internal/vicoa-1.3.10.dist-info/RECORD +6 -6
  205. package/bin/_internal/vicoa-1.3.10.dist-info/WHEEL +1 -1
  206. package/bin/_internal/vicoa-1.3.10.dist-info/direct_url.json +1 -1
  207. package/bin/_internal/vicoa-1.3.10.dist-info/licenses/LICENSE +201 -201
  208. package/bin/_internal/watchfiles/_rust_notify.cp312-win_amd64.pyd +0 -0
  209. package/bin/_internal/websockets/speedups.cp312-win_amd64.pyd +0 -0
  210. package/bin/_internal/websockets-16.0.dist-info/METADATA +179 -179
  211. package/bin/_internal/websockets-16.0.dist-info/RECORD +53 -53
  212. package/bin/_internal/websockets-16.0.dist-info/WHEEL +1 -3
  213. package/bin/_internal/websockets-16.0.dist-info/licenses/LICENSE +24 -24
  214. package/bin/_internal/win32/_win32sysloader.pyd +0 -0
  215. package/bin/_internal/win32/win32api.pyd +0 -0
  216. package/bin/_internal/win32/win32evtlog.pyd +0 -0
  217. package/bin/_internal/win32/win32job.pyd +0 -0
  218. package/bin/_internal/yaml/_yaml.cp312-win_amd64.pyd +0 -0
  219. package/bin/_internal/yarl/_quoting_c.cp312-win_amd64.pyd +0 -0
  220. package/bin/{vicoa → vicoa.exe} +0 -0
  221. package/package.json +3 -3
  222. package/bin/_internal/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so +0 -0
  223. package/bin/_internal/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -0
  224. package/bin/_internal/aiohttp/_http_parser.cpython-312-x86_64-linux-gnu.so +0 -0
  225. package/bin/_internal/aiohttp/_http_writer.cpython-312-x86_64-linux-gnu.so +0 -0
  226. package/bin/_internal/aiohttp/_websocket/mask.cpython-312-x86_64-linux-gnu.so +0 -0
  227. package/bin/_internal/aiohttp/_websocket/reader_c.cpython-312-x86_64-linux-gnu.so +0 -0
  228. package/bin/_internal/caio/linux_aio.cpython-312-x86_64-linux-gnu.so +0 -0
  229. package/bin/_internal/caio/thread_aio.cpython-312-x86_64-linux-gnu.so +0 -0
  230. package/bin/_internal/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so +0 -0
  231. package/bin/_internal/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +0 -0
  232. package/bin/_internal/cryptography/hazmat/bindings/_rust.abi3.so +0 -0
  233. package/bin/_internal/frozenlist/_frozenlist.cpython-312-x86_64-linux-gnu.so +0 -0
  234. package/bin/_internal/jiter/jiter.cpython-312-x86_64-linux-gnu.so +0 -0
  235. package/bin/_internal/libbz2.so.1.0 +0 -0
  236. package/bin/_internal/libcrypto.so.3 +0 -0
  237. package/bin/_internal/libffi.so.8 +0 -0
  238. package/bin/_internal/libgcc_s.so.1 +0 -0
  239. package/bin/_internal/liblzma.so.5 +0 -0
  240. package/bin/_internal/libpython3.12.so.1.0 +0 -0
  241. package/bin/_internal/libreadline.so.8 +0 -0
  242. package/bin/_internal/libssl.so.3 +0 -0
  243. package/bin/_internal/libstdc++.so.6 +0 -0
  244. package/bin/_internal/libtinfo.so.6 +0 -0
  245. package/bin/_internal/libuuid.so.1 +0 -0
  246. package/bin/_internal/libz.so.1 +0 -0
  247. package/bin/_internal/multidict/_multidict.cpython-312-x86_64-linux-gnu.so +0 -0
  248. package/bin/_internal/propcache/_helpers_c.cpython-312-x86_64-linux-gnu.so +0 -0
  249. package/bin/_internal/pydantic_core/_pydantic_core.cpython-312-x86_64-linux-gnu.so +0 -0
  250. package/bin/_internal/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so +0 -0
  251. package/bin/_internal/python3.12/lib-dynload/_bisect.cpython-312-x86_64-linux-gnu.so +0 -0
  252. package/bin/_internal/python3.12/lib-dynload/_blake2.cpython-312-x86_64-linux-gnu.so +0 -0
  253. package/bin/_internal/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so +0 -0
  254. package/bin/_internal/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so +0 -0
  255. package/bin/_internal/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so +0 -0
  256. package/bin/_internal/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so +0 -0
  257. package/bin/_internal/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so +0 -0
  258. package/bin/_internal/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so +0 -0
  259. package/bin/_internal/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so +0 -0
  260. package/bin/_internal/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so +0 -0
  261. package/bin/_internal/python3.12/lib-dynload/_csv.cpython-312-x86_64-linux-gnu.so +0 -0
  262. package/bin/_internal/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so +0 -0
  263. package/bin/_internal/python3.12/lib-dynload/_datetime.cpython-312-x86_64-linux-gnu.so +0 -0
  264. package/bin/_internal/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so +0 -0
  265. package/bin/_internal/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so +0 -0
  266. package/bin/_internal/python3.12/lib-dynload/_heapq.cpython-312-x86_64-linux-gnu.so +0 -0
  267. package/bin/_internal/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so +0 -0
  268. package/bin/_internal/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so +0 -0
  269. package/bin/_internal/python3.12/lib-dynload/_md5.cpython-312-x86_64-linux-gnu.so +0 -0
  270. package/bin/_internal/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so +0 -0
  271. package/bin/_internal/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so +0 -0
  272. package/bin/_internal/python3.12/lib-dynload/_opcode.cpython-312-x86_64-linux-gnu.so +0 -0
  273. package/bin/_internal/python3.12/lib-dynload/_pickle.cpython-312-x86_64-linux-gnu.so +0 -0
  274. package/bin/_internal/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so +0 -0
  275. package/bin/_internal/python3.12/lib-dynload/_posixsubprocess.cpython-312-x86_64-linux-gnu.so +0 -0
  276. package/bin/_internal/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so +0 -0
  277. package/bin/_internal/python3.12/lib-dynload/_random.cpython-312-x86_64-linux-gnu.so +0 -0
  278. package/bin/_internal/python3.12/lib-dynload/_sha1.cpython-312-x86_64-linux-gnu.so +0 -0
  279. package/bin/_internal/python3.12/lib-dynload/_sha2.cpython-312-x86_64-linux-gnu.so +0 -0
  280. package/bin/_internal/python3.12/lib-dynload/_sha3.cpython-312-x86_64-linux-gnu.so +0 -0
  281. package/bin/_internal/python3.12/lib-dynload/_socket.cpython-312-x86_64-linux-gnu.so +0 -0
  282. package/bin/_internal/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so +0 -0
  283. package/bin/_internal/python3.12/lib-dynload/_statistics.cpython-312-x86_64-linux-gnu.so +0 -0
  284. package/bin/_internal/python3.12/lib-dynload/_struct.cpython-312-x86_64-linux-gnu.so +0 -0
  285. package/bin/_internal/python3.12/lib-dynload/_uuid.cpython-312-x86_64-linux-gnu.so +0 -0
  286. package/bin/_internal/python3.12/lib-dynload/_zoneinfo.cpython-312-x86_64-linux-gnu.so +0 -0
  287. package/bin/_internal/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so +0 -0
  288. package/bin/_internal/python3.12/lib-dynload/binascii.cpython-312-x86_64-linux-gnu.so +0 -0
  289. package/bin/_internal/python3.12/lib-dynload/fcntl.cpython-312-x86_64-linux-gnu.so +0 -0
  290. package/bin/_internal/python3.12/lib-dynload/grp.cpython-312-x86_64-linux-gnu.so +0 -0
  291. package/bin/_internal/python3.12/lib-dynload/math.cpython-312-x86_64-linux-gnu.so +0 -0
  292. package/bin/_internal/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so +0 -0
  293. package/bin/_internal/python3.12/lib-dynload/pyexpat.cpython-312-x86_64-linux-gnu.so +0 -0
  294. package/bin/_internal/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so +0 -0
  295. package/bin/_internal/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so +0 -0
  296. package/bin/_internal/python3.12/lib-dynload/select.cpython-312-x86_64-linux-gnu.so +0 -0
  297. package/bin/_internal/python3.12/lib-dynload/syslog.cpython-312-x86_64-linux-gnu.so +0 -0
  298. package/bin/_internal/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so +0 -0
  299. package/bin/_internal/python3.12/lib-dynload/zlib.cpython-312-x86_64-linux-gnu.so +0 -0
  300. package/bin/_internal/rpds/rpds.cpython-312-x86_64-linux-gnu.so +0 -0
  301. package/bin/_internal/watchfiles/_rust_notify.cpython-312-x86_64-linux-gnu.so +0 -0
  302. package/bin/_internal/websockets/speedups.cpython-312-x86_64-linux-gnu.so +0 -0
  303. package/bin/_internal/yaml/_yaml.cpython-312-x86_64-linux-gnu.so +0 -0
  304. package/bin/_internal/yarl/_quoting_c.cpython-312-x86_64-linux-gnu.so +0 -0
@@ -1,301 +1,301 @@
1
- import * as core from "@actions/core";
2
- import { spawn } from "child_process";
3
- import { unlink, writeFile, stat, readFile } from "fs/promises";
4
- import { promisify } from "util";
5
-
6
- const EXECUTION_FILE = `${process.env.RUNNER_TEMP}/vicoa-execution-output.json`;
7
-
8
- export type VicoaOptions = {
9
- allowedTools?: string;
10
- disallowedTools?: string;
11
- maxTurns?: string;
12
- mcpConfig?: string;
13
- systemPrompt?: string;
14
- appendSystemPrompt?: string;
15
- claudeEnv?: string;
16
- fallbackModel?: string;
17
- timeoutMinutes?: string;
18
- model?: string;
19
- };
20
-
21
- type PreparedConfig = {
22
- vicoaArgs: string[];
23
- promptPath: string;
24
- env: Record<string, string>;
25
- };
26
-
27
- function parseCustomEnvVars(claudeEnv?: string): Record<string, string> {
28
- if (!claudeEnv || claudeEnv.trim() === "") {
29
- return {};
30
- }
31
-
32
- const customEnv: Record<string, string> = {};
33
-
34
- // Split by lines and parse each line as KEY: VALUE
35
- const lines = claudeEnv.split("\n");
36
-
37
- for (const line of lines) {
38
- const trimmedLine = line.trim();
39
- if (trimmedLine === "" || trimmedLine.startsWith("#")) {
40
- continue; // Skip empty lines and comments
41
- }
42
-
43
- const colonIndex = trimmedLine.indexOf(":");
44
- if (colonIndex === -1) {
45
- continue; // Skip lines without colons
46
- }
47
-
48
- const key = trimmedLine.substring(0, colonIndex).trim();
49
- const value = trimmedLine.substring(colonIndex + 1).trim();
50
-
51
- if (key) {
52
- customEnv[key] = value;
53
- }
54
- }
55
-
56
- return customEnv;
57
- }
58
-
59
- export async function prepareRunConfig(
60
- promptPath: string,
61
- options: VicoaOptions,
62
- ): Promise<PreparedConfig> {
63
- // Build vicoa headless arguments
64
- const vicoaArgs = ["headless"];
65
-
66
- // Read prompt content from file to pass as --prompt argument
67
- let promptContent = '';
68
- try {
69
- promptContent = await readFile(promptPath, 'utf8');
70
- console.log(`Read prompt from file: ${promptPath} (${promptContent.length} characters)`);
71
- } catch (e) {
72
- console.error(`Error reading prompt file: ${e}`);
73
- }
74
-
75
- // Add required vicoa arguments
76
- if (promptContent) {
77
- vicoaArgs.push("--prompt", promptContent);
78
- }
79
-
80
- // Session ID from environment or generate
81
- const sessionId = process.env.VICOA_AGENT_INSTANCE_ID || `gh-action-${Date.now()}`;
82
- vicoaArgs.push("--session-id", sessionId);
83
-
84
- // Agent name/type from environment
85
- const agentType = process.env.VICOA_AGENT_TYPE || "GitHub Action";
86
- vicoaArgs.push("--name", agentType);
87
-
88
- // Tool configurations
89
- if (options.allowedTools) {
90
- vicoaArgs.push("--allowed-tools", options.allowedTools);
91
- }
92
- if (options.disallowedTools) {
93
- vicoaArgs.push("--disallowed-tools", options.disallowedTools);
94
- }
95
-
96
- // Pass max turns as extra arg for Claude SDK within vicoa
97
- if (options.maxTurns) {
98
- const maxTurnsNum = parseInt(options.maxTurns, 10);
99
- if (isNaN(maxTurnsNum) || maxTurnsNum <= 0) {
100
- throw new Error(
101
- `maxTurns must be a positive number, got: ${options.maxTurns}`,
102
- );
103
- }
104
- // Pass as extra args for Claude SDK
105
- vicoaArgs.push("--max-turns", options.maxTurns);
106
- }
107
-
108
- // Validate timeout
109
- if (options.timeoutMinutes) {
110
- const timeoutMinutesNum = parseInt(options.timeoutMinutes, 10);
111
- if (isNaN(timeoutMinutesNum) || timeoutMinutesNum <= 0) {
112
- throw new Error(
113
- `timeoutMinutes must be a positive number, got: ${options.timeoutMinutes}`,
114
- );
115
- }
116
- }
117
-
118
- // Parse custom environment variables
119
- const customEnv = parseCustomEnvVars(options.claudeEnv);
120
-
121
- if (process.env.INPUT_ACTION_INPUTS_PRESENT) {
122
- customEnv.GITHUB_ACTION_INPUTS = process.env.INPUT_ACTION_INPUTS_PRESENT;
123
- }
124
-
125
- return {
126
- vicoaArgs,
127
- promptPath,
128
- env: customEnv,
129
- };
130
- }
131
-
132
- export async function runVicoa(promptPath: string, options: VicoaOptions) {
133
- const config = await prepareRunConfig(promptPath, options);
134
-
135
- // Log configuration for debugging
136
- console.log("==================================================");
137
- console.log("Vicoa Configuration:");
138
- console.log(`Session ID: ${process.env.VICOA_AGENT_INSTANCE_ID || 'auto-generated'}`);
139
- console.log(`Agent Type: ${process.env.VICOA_AGENT_TYPE || 'GitHub Action'}`);
140
- console.log(`API Key: ${process.env.VICOA_API_KEY ? 'Present' : 'Missing'}`);
141
- console.log("==================================================");
142
-
143
- // Get prompt size
144
- let promptSize = "unknown";
145
- try {
146
- const stats = await stat(config.promptPath);
147
- promptSize = stats.size.toString();
148
- } catch (e) {
149
- // Ignore error
150
- }
151
-
152
- console.log(`Prompt file size: ${promptSize} bytes`);
153
-
154
- // Log custom environment variables if any
155
- const customEnvKeys = Object.keys(config.env).filter(
156
- (key) => key !== "GITHUB_ACTION_INPUTS",
157
- );
158
- if (customEnvKeys.length > 0) {
159
- console.log(`Custom environment variables: ${customEnvKeys.join(", ")}`);
160
- }
161
-
162
- // Output to console
163
- console.log(`Running Vicoa with command: vicoa ${config.vicoaArgs.join(' ')}`);
164
-
165
- // Vicoa headless uses Claude Code under the hood, so we need to ensure
166
- // Claude authentication is available in the environment
167
- const vicoaEnv = {
168
- ...process.env,
169
- ...config.env,
170
- // Ensure Vicoa variables are set
171
- VICOA_API_KEY: process.env.VICOA_API_KEY,
172
- VICOA_AGENT_INSTANCE_ID: process.env.VICOA_AGENT_INSTANCE_ID,
173
- VICOA_AGENT_TYPE: process.env.VICOA_AGENT_TYPE,
174
- // Pass through Claude authentication (vicoa will use these internally)
175
- ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
176
- CLAUDE_CODE_OAUTH_TOKEN: process.env.CLAUDE_CODE_OAUTH_TOKEN,
177
- // Pass through cloud provider credentials if using Bedrock/Vertex
178
- CLAUDE_CODE_USE_BEDROCK: process.env.CLAUDE_CODE_USE_BEDROCK,
179
- CLAUDE_CODE_USE_VERTEX: process.env.CLAUDE_CODE_USE_VERTEX,
180
- AWS_REGION: process.env.AWS_REGION,
181
- AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
182
- AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
183
- AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN,
184
- ANTHROPIC_BEDROCK_BASE_URL: process.env.ANTHROPIC_BEDROCK_BASE_URL,
185
- ANTHROPIC_VERTEX_PROJECT_ID: process.env.ANTHROPIC_VERTEX_PROJECT_ID,
186
- CLOUD_ML_REGION: process.env.CLOUD_ML_REGION,
187
- GOOGLE_APPLICATION_CREDENTIALS: process.env.GOOGLE_APPLICATION_CREDENTIALS,
188
- ANTHROPIC_VERTEX_BASE_URL: process.env.ANTHROPIC_VERTEX_BASE_URL,
189
- };
190
-
191
- const vicoaProcess = spawn("vicoa", config.vicoaArgs, {
192
- stdio: ["inherit", "pipe", "inherit"],
193
- env: vicoaEnv,
194
- });
195
-
196
- // Handle Vicoa process errors
197
- vicoaProcess.on("error", (error) => {
198
- console.error("Error spawning Vicoa process:", error);
199
- console.error("Make sure vicoa is installed: pip install vicoa");
200
- });
201
-
202
- // Capture output for parsing execution metrics
203
- let output = "";
204
- vicoaProcess.stdout.on("data", (data) => {
205
- const text = data.toString();
206
-
207
- // Try to parse as JSON and pretty print if it's on a single line
208
- const lines = text.split("\n");
209
- lines.forEach((line: string, index: number) => {
210
- if (line.trim() === "") return;
211
-
212
- try {
213
- // Check if this line is a JSON object
214
- const parsed = JSON.parse(line);
215
- const prettyJson = JSON.stringify(parsed, null, 2);
216
- process.stdout.write(prettyJson);
217
- if (index < lines.length - 1 || text.endsWith("\n")) {
218
- process.stdout.write("\n");
219
- }
220
- } catch (e) {
221
- // Not a JSON object, print as is
222
- process.stdout.write(line);
223
- if (index < lines.length - 1 || text.endsWith("\n")) {
224
- process.stdout.write("\n");
225
- }
226
- }
227
- });
228
-
229
- output += text;
230
- });
231
-
232
- // Handle stdout errors
233
- vicoaProcess.stdout.on("error", (error) => {
234
- console.error("Error reading Vicoa stdout:", error);
235
- });
236
-
237
- // Wait for Vicoa to finish with timeout
238
- let timeoutMs = 1440 * 60 * 1000; // Default 24 hours
239
- if (options.timeoutMinutes) {
240
- timeoutMs = parseInt(options.timeoutMinutes, 10) * 60 * 1000;
241
- } else if (process.env.INPUT_TIMEOUT_MINUTES) {
242
- const envTimeout = parseInt(process.env.INPUT_TIMEOUT_MINUTES, 10);
243
- if (isNaN(envTimeout) || envTimeout <= 0) {
244
- throw new Error(
245
- `INPUT_TIMEOUT_MINUTES must be a positive number, got: ${process.env.INPUT_TIMEOUT_MINUTES}`,
246
- );
247
- }
248
- timeoutMs = envTimeout * 60 * 1000;
249
- }
250
-
251
- await new Promise<void>((resolve, reject) => {
252
- const timeout = setTimeout(() => {
253
- vicoaProcess.kill("SIGTERM");
254
- reject(
255
- new Error(
256
- `Command timed out after ${timeoutMs / 1000 / 60} minutes`,
257
- ),
258
- );
259
- }, timeoutMs);
260
-
261
- vicoaProcess.on("exit", (code) => {
262
- clearTimeout(timeout);
263
- if (code === 0) {
264
- resolve();
265
- } else {
266
- reject(new Error(`Vicoa exited with code ${code}`));
267
- }
268
- });
269
- });
270
-
271
- // Save output to execution file
272
- await writeFile(EXECUTION_FILE, output);
273
-
274
- // Try to extract execution metrics from output
275
- let executionMetrics = {
276
- conclusion: "success",
277
- };
278
-
279
- try {
280
- // Try to parse the output as JSON lines
281
- const lines = output.split("\n");
282
- for (const line of lines) {
283
- if (line.trim()) {
284
- try {
285
- const parsed = JSON.parse(line);
286
- if (parsed.metrics) {
287
- executionMetrics = parsed.metrics;
288
- }
289
- } catch (e) {
290
- // Not JSON, skip
291
- }
292
- }
293
- }
294
- } catch (error) {
295
- console.error("Error parsing execution metrics:", error);
296
- }
297
-
298
- // Set outputs for GitHub Actions
299
- core.setOutput("execution_file", EXECUTION_FILE);
300
- core.setOutput("conclusion", executionMetrics.conclusion);
1
+ import * as core from "@actions/core";
2
+ import { spawn } from "child_process";
3
+ import { unlink, writeFile, stat, readFile } from "fs/promises";
4
+ import { promisify } from "util";
5
+
6
+ const EXECUTION_FILE = `${process.env.RUNNER_TEMP}/vicoa-execution-output.json`;
7
+
8
+ export type VicoaOptions = {
9
+ allowedTools?: string;
10
+ disallowedTools?: string;
11
+ maxTurns?: string;
12
+ mcpConfig?: string;
13
+ systemPrompt?: string;
14
+ appendSystemPrompt?: string;
15
+ claudeEnv?: string;
16
+ fallbackModel?: string;
17
+ timeoutMinutes?: string;
18
+ model?: string;
19
+ };
20
+
21
+ type PreparedConfig = {
22
+ vicoaArgs: string[];
23
+ promptPath: string;
24
+ env: Record<string, string>;
25
+ };
26
+
27
+ function parseCustomEnvVars(claudeEnv?: string): Record<string, string> {
28
+ if (!claudeEnv || claudeEnv.trim() === "") {
29
+ return {};
30
+ }
31
+
32
+ const customEnv: Record<string, string> = {};
33
+
34
+ // Split by lines and parse each line as KEY: VALUE
35
+ const lines = claudeEnv.split("\n");
36
+
37
+ for (const line of lines) {
38
+ const trimmedLine = line.trim();
39
+ if (trimmedLine === "" || trimmedLine.startsWith("#")) {
40
+ continue; // Skip empty lines and comments
41
+ }
42
+
43
+ const colonIndex = trimmedLine.indexOf(":");
44
+ if (colonIndex === -1) {
45
+ continue; // Skip lines without colons
46
+ }
47
+
48
+ const key = trimmedLine.substring(0, colonIndex).trim();
49
+ const value = trimmedLine.substring(colonIndex + 1).trim();
50
+
51
+ if (key) {
52
+ customEnv[key] = value;
53
+ }
54
+ }
55
+
56
+ return customEnv;
57
+ }
58
+
59
+ export async function prepareRunConfig(
60
+ promptPath: string,
61
+ options: VicoaOptions,
62
+ ): Promise<PreparedConfig> {
63
+ // Build vicoa headless arguments
64
+ const vicoaArgs = ["headless"];
65
+
66
+ // Read prompt content from file to pass as --prompt argument
67
+ let promptContent = '';
68
+ try {
69
+ promptContent = await readFile(promptPath, 'utf8');
70
+ console.log(`Read prompt from file: ${promptPath} (${promptContent.length} characters)`);
71
+ } catch (e) {
72
+ console.error(`Error reading prompt file: ${e}`);
73
+ }
74
+
75
+ // Add required vicoa arguments
76
+ if (promptContent) {
77
+ vicoaArgs.push("--prompt", promptContent);
78
+ }
79
+
80
+ // Session ID from environment or generate
81
+ const sessionId = process.env.VICOA_AGENT_INSTANCE_ID || `gh-action-${Date.now()}`;
82
+ vicoaArgs.push("--session-id", sessionId);
83
+
84
+ // Agent name/type from environment
85
+ const agentType = process.env.VICOA_AGENT_TYPE || "GitHub Action";
86
+ vicoaArgs.push("--name", agentType);
87
+
88
+ // Tool configurations
89
+ if (options.allowedTools) {
90
+ vicoaArgs.push("--allowed-tools", options.allowedTools);
91
+ }
92
+ if (options.disallowedTools) {
93
+ vicoaArgs.push("--disallowed-tools", options.disallowedTools);
94
+ }
95
+
96
+ // Pass max turns as extra arg for Claude SDK within vicoa
97
+ if (options.maxTurns) {
98
+ const maxTurnsNum = parseInt(options.maxTurns, 10);
99
+ if (isNaN(maxTurnsNum) || maxTurnsNum <= 0) {
100
+ throw new Error(
101
+ `maxTurns must be a positive number, got: ${options.maxTurns}`,
102
+ );
103
+ }
104
+ // Pass as extra args for Claude SDK
105
+ vicoaArgs.push("--max-turns", options.maxTurns);
106
+ }
107
+
108
+ // Validate timeout
109
+ if (options.timeoutMinutes) {
110
+ const timeoutMinutesNum = parseInt(options.timeoutMinutes, 10);
111
+ if (isNaN(timeoutMinutesNum) || timeoutMinutesNum <= 0) {
112
+ throw new Error(
113
+ `timeoutMinutes must be a positive number, got: ${options.timeoutMinutes}`,
114
+ );
115
+ }
116
+ }
117
+
118
+ // Parse custom environment variables
119
+ const customEnv = parseCustomEnvVars(options.claudeEnv);
120
+
121
+ if (process.env.INPUT_ACTION_INPUTS_PRESENT) {
122
+ customEnv.GITHUB_ACTION_INPUTS = process.env.INPUT_ACTION_INPUTS_PRESENT;
123
+ }
124
+
125
+ return {
126
+ vicoaArgs,
127
+ promptPath,
128
+ env: customEnv,
129
+ };
130
+ }
131
+
132
+ export async function runVicoa(promptPath: string, options: VicoaOptions) {
133
+ const config = await prepareRunConfig(promptPath, options);
134
+
135
+ // Log configuration for debugging
136
+ console.log("==================================================");
137
+ console.log("Vicoa Configuration:");
138
+ console.log(`Session ID: ${process.env.VICOA_AGENT_INSTANCE_ID || 'auto-generated'}`);
139
+ console.log(`Agent Type: ${process.env.VICOA_AGENT_TYPE || 'GitHub Action'}`);
140
+ console.log(`API Key: ${process.env.VICOA_API_KEY ? 'Present' : 'Missing'}`);
141
+ console.log("==================================================");
142
+
143
+ // Get prompt size
144
+ let promptSize = "unknown";
145
+ try {
146
+ const stats = await stat(config.promptPath);
147
+ promptSize = stats.size.toString();
148
+ } catch (e) {
149
+ // Ignore error
150
+ }
151
+
152
+ console.log(`Prompt file size: ${promptSize} bytes`);
153
+
154
+ // Log custom environment variables if any
155
+ const customEnvKeys = Object.keys(config.env).filter(
156
+ (key) => key !== "GITHUB_ACTION_INPUTS",
157
+ );
158
+ if (customEnvKeys.length > 0) {
159
+ console.log(`Custom environment variables: ${customEnvKeys.join(", ")}`);
160
+ }
161
+
162
+ // Output to console
163
+ console.log(`Running Vicoa with command: vicoa ${config.vicoaArgs.join(' ')}`);
164
+
165
+ // Vicoa headless uses Claude Code under the hood, so we need to ensure
166
+ // Claude authentication is available in the environment
167
+ const vicoaEnv = {
168
+ ...process.env,
169
+ ...config.env,
170
+ // Ensure Vicoa variables are set
171
+ VICOA_API_KEY: process.env.VICOA_API_KEY,
172
+ VICOA_AGENT_INSTANCE_ID: process.env.VICOA_AGENT_INSTANCE_ID,
173
+ VICOA_AGENT_TYPE: process.env.VICOA_AGENT_TYPE,
174
+ // Pass through Claude authentication (vicoa will use these internally)
175
+ ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
176
+ CLAUDE_CODE_OAUTH_TOKEN: process.env.CLAUDE_CODE_OAUTH_TOKEN,
177
+ // Pass through cloud provider credentials if using Bedrock/Vertex
178
+ CLAUDE_CODE_USE_BEDROCK: process.env.CLAUDE_CODE_USE_BEDROCK,
179
+ CLAUDE_CODE_USE_VERTEX: process.env.CLAUDE_CODE_USE_VERTEX,
180
+ AWS_REGION: process.env.AWS_REGION,
181
+ AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
182
+ AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
183
+ AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN,
184
+ ANTHROPIC_BEDROCK_BASE_URL: process.env.ANTHROPIC_BEDROCK_BASE_URL,
185
+ ANTHROPIC_VERTEX_PROJECT_ID: process.env.ANTHROPIC_VERTEX_PROJECT_ID,
186
+ CLOUD_ML_REGION: process.env.CLOUD_ML_REGION,
187
+ GOOGLE_APPLICATION_CREDENTIALS: process.env.GOOGLE_APPLICATION_CREDENTIALS,
188
+ ANTHROPIC_VERTEX_BASE_URL: process.env.ANTHROPIC_VERTEX_BASE_URL,
189
+ };
190
+
191
+ const vicoaProcess = spawn("vicoa", config.vicoaArgs, {
192
+ stdio: ["inherit", "pipe", "inherit"],
193
+ env: vicoaEnv,
194
+ });
195
+
196
+ // Handle Vicoa process errors
197
+ vicoaProcess.on("error", (error) => {
198
+ console.error("Error spawning Vicoa process:", error);
199
+ console.error("Make sure vicoa is installed: pip install vicoa");
200
+ });
201
+
202
+ // Capture output for parsing execution metrics
203
+ let output = "";
204
+ vicoaProcess.stdout.on("data", (data) => {
205
+ const text = data.toString();
206
+
207
+ // Try to parse as JSON and pretty print if it's on a single line
208
+ const lines = text.split("\n");
209
+ lines.forEach((line: string, index: number) => {
210
+ if (line.trim() === "") return;
211
+
212
+ try {
213
+ // Check if this line is a JSON object
214
+ const parsed = JSON.parse(line);
215
+ const prettyJson = JSON.stringify(parsed, null, 2);
216
+ process.stdout.write(prettyJson);
217
+ if (index < lines.length - 1 || text.endsWith("\n")) {
218
+ process.stdout.write("\n");
219
+ }
220
+ } catch (e) {
221
+ // Not a JSON object, print as is
222
+ process.stdout.write(line);
223
+ if (index < lines.length - 1 || text.endsWith("\n")) {
224
+ process.stdout.write("\n");
225
+ }
226
+ }
227
+ });
228
+
229
+ output += text;
230
+ });
231
+
232
+ // Handle stdout errors
233
+ vicoaProcess.stdout.on("error", (error) => {
234
+ console.error("Error reading Vicoa stdout:", error);
235
+ });
236
+
237
+ // Wait for Vicoa to finish with timeout
238
+ let timeoutMs = 1440 * 60 * 1000; // Default 24 hours
239
+ if (options.timeoutMinutes) {
240
+ timeoutMs = parseInt(options.timeoutMinutes, 10) * 60 * 1000;
241
+ } else if (process.env.INPUT_TIMEOUT_MINUTES) {
242
+ const envTimeout = parseInt(process.env.INPUT_TIMEOUT_MINUTES, 10);
243
+ if (isNaN(envTimeout) || envTimeout <= 0) {
244
+ throw new Error(
245
+ `INPUT_TIMEOUT_MINUTES must be a positive number, got: ${process.env.INPUT_TIMEOUT_MINUTES}`,
246
+ );
247
+ }
248
+ timeoutMs = envTimeout * 60 * 1000;
249
+ }
250
+
251
+ await new Promise<void>((resolve, reject) => {
252
+ const timeout = setTimeout(() => {
253
+ vicoaProcess.kill("SIGTERM");
254
+ reject(
255
+ new Error(
256
+ `Command timed out after ${timeoutMs / 1000 / 60} minutes`,
257
+ ),
258
+ );
259
+ }, timeoutMs);
260
+
261
+ vicoaProcess.on("exit", (code) => {
262
+ clearTimeout(timeout);
263
+ if (code === 0) {
264
+ resolve();
265
+ } else {
266
+ reject(new Error(`Vicoa exited with code ${code}`));
267
+ }
268
+ });
269
+ });
270
+
271
+ // Save output to execution file
272
+ await writeFile(EXECUTION_FILE, output);
273
+
274
+ // Try to extract execution metrics from output
275
+ let executionMetrics = {
276
+ conclusion: "success",
277
+ };
278
+
279
+ try {
280
+ // Try to parse the output as JSON lines
281
+ const lines = output.split("\n");
282
+ for (const line of lines) {
283
+ if (line.trim()) {
284
+ try {
285
+ const parsed = JSON.parse(line);
286
+ if (parsed.metrics) {
287
+ executionMetrics = parsed.metrics;
288
+ }
289
+ } catch (e) {
290
+ // Not JSON, skip
291
+ }
292
+ }
293
+ }
294
+ } catch (error) {
295
+ console.error("Error parsing execution metrics:", error);
296
+ }
297
+
298
+ // Set outputs for GitHub Actions
299
+ core.setOutput("execution_file", EXECUTION_FILE);
300
+ core.setOutput("conclusion", executionMetrics.conclusion);
301
301
  }