@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,203 +1,203 @@
1
- import { GITHUB_SERVER_URL } from "../api/config";
2
-
3
- export type ExecutionDetails = {
4
- cost_usd?: number;
5
- duration_ms?: number;
6
- duration_api_ms?: number;
7
- };
8
-
9
- export type CommentUpdateInput = {
10
- currentBody: string;
11
- actionFailed: boolean;
12
- executionDetails: ExecutionDetails | null;
13
- jobUrl: string;
14
- branchLink?: string;
15
- prLink?: string;
16
- branchName?: string;
17
- triggerUsername?: string;
18
- errorDetails?: string;
19
- };
20
-
21
- export function ensureProperlyEncodedUrl(url: string): string | null {
22
- try {
23
- // First, try to parse the URL to see if it's already properly encoded
24
- new URL(url);
25
- if (url.includes(" ")) {
26
- const [baseUrl, queryString] = url.split("?");
27
- if (queryString) {
28
- // Parse query parameters and re-encode them properly
29
- const params = new URLSearchParams();
30
- const pairs = queryString.split("&");
31
- for (const pair of pairs) {
32
- const [key, value = ""] = pair.split("=");
33
- if (key) {
34
- // Decode first in case it's partially encoded, then encode properly
35
- params.set(key, decodeURIComponent(value));
36
- }
37
- }
38
- return `${baseUrl}?${params.toString()}`;
39
- }
40
- // If no query string, just encode spaces
41
- return url.replace(/ /g, "%20");
42
- }
43
- return url;
44
- } catch (e) {
45
- // If URL parsing fails, try basic fixes
46
- try {
47
- // Replace spaces with %20
48
- let fixedUrl = url.replace(/ /g, "%20");
49
-
50
- // Ensure colons in parameter values are encoded (but not in http:// or after domain)
51
- const urlParts = fixedUrl.split("?");
52
- if (urlParts.length > 1 && urlParts[1]) {
53
- const [baseUrl, queryString] = urlParts;
54
- // Encode colons in the query string that aren't already encoded
55
- const fixedQuery = queryString.replace(/([^%]|^):(?!%2F%2F)/g, "$1%3A");
56
- fixedUrl = `${baseUrl}?${fixedQuery}`;
57
- }
58
-
59
- // Try to validate the fixed URL
60
- new URL(fixedUrl);
61
- return fixedUrl;
62
- } catch {
63
- // If we still can't create a valid URL, return null
64
- return null;
65
- }
66
- }
67
- }
68
-
69
- export function updateCommentBody(input: CommentUpdateInput): string {
70
- const originalBody = input.currentBody;
71
- const {
72
- executionDetails,
73
- jobUrl,
74
- branchLink,
75
- prLink,
76
- actionFailed,
77
- branchName,
78
- triggerUsername,
79
- errorDetails,
80
- } = input;
81
-
82
- // Extract content from the original comment body
83
- // First, remove the "Claude Code is working…" or "Claude Code is working..." message
84
- const workingPattern = /Claude Code is working[…\.]{1,3}(?:\s*<img[^>]*>)?/i;
85
- let bodyContent = originalBody.replace(workingPattern, "").trim();
86
-
87
- // Check if there's a PR link in the content
88
- let prLinkFromContent = "";
89
-
90
- // Match the entire markdown link structure
91
- const prLinkPattern = /\[Create .* PR\]\((.*)\)$/m;
92
- const prLinkMatch = bodyContent.match(prLinkPattern);
93
-
94
- if (prLinkMatch && prLinkMatch[1]) {
95
- const encodedUrl = ensureProperlyEncodedUrl(prLinkMatch[1]);
96
- if (encodedUrl) {
97
- prLinkFromContent = encodedUrl;
98
- // Remove the PR link from the content
99
- bodyContent = bodyContent.replace(prLinkMatch[0], "").trim();
100
- }
101
- }
102
-
103
- // Calculate duration string if available
104
- let durationStr = "";
105
- if (executionDetails?.duration_ms !== undefined) {
106
- const totalSeconds = Math.round(executionDetails.duration_ms / 1000);
107
- const minutes = Math.floor(totalSeconds / 60);
108
- const seconds = totalSeconds % 60;
109
- durationStr = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
110
- }
111
-
112
- // Build the header
113
- let header = "";
114
-
115
- if (actionFailed) {
116
- header = "**Claude encountered an error";
117
- if (durationStr) {
118
- header += ` after ${durationStr}`;
119
- }
120
- header += "**";
121
- } else {
122
- // Get the username from triggerUsername or extract from content
123
- const usernameMatch = bodyContent.match(/@([a-zA-Z0-9-]+)/);
124
- const username =
125
- triggerUsername || (usernameMatch ? usernameMatch[1] : "user");
126
-
127
- header = `**Claude finished @${username}'s task`;
128
- if (durationStr) {
129
- header += ` in ${durationStr}`;
130
- }
131
- header += "**";
132
- }
133
-
134
- // Add links section
135
- let links = ` —— [View job](${jobUrl})`;
136
-
137
- // Add branch name with link
138
- if (branchName || branchLink) {
139
- let finalBranchName = branchName;
140
- let branchUrl = "";
141
-
142
- if (branchLink) {
143
- // Extract the branch URL from the link
144
- const urlMatch = branchLink.match(/\((https:\/\/.*)\)/);
145
- if (urlMatch && urlMatch[1]) {
146
- branchUrl = urlMatch[1];
147
- }
148
-
149
- // Extract branch name from link if not provided
150
- if (!finalBranchName) {
151
- const branchNameMatch = branchLink.match(/tree\/([^"'\)]+)/);
152
- if (branchNameMatch) {
153
- finalBranchName = branchNameMatch[1];
154
- }
155
- }
156
- }
157
-
158
- // If we don't have a URL yet but have a branch name, construct it
159
- if (!branchUrl && finalBranchName) {
160
- // Extract owner/repo from jobUrl
161
- const repoMatch = jobUrl.match(/github\.com\/([^\/]+)\/([^\/]+)\//);
162
- if (repoMatch) {
163
- branchUrl = `${GITHUB_SERVER_URL}/${repoMatch[1]}/${repoMatch[2]}/tree/${finalBranchName}`;
164
- }
165
- }
166
-
167
- if (finalBranchName && branchUrl) {
168
- links += ` • [\`${finalBranchName}\`](${branchUrl})`;
169
- } else if (finalBranchName) {
170
- links += ` • \`${finalBranchName}\``;
171
- }
172
- }
173
-
174
- // Add PR link (either from content or provided)
175
- const prUrl =
176
- prLinkFromContent || (prLink ? prLink.match(/\(([^)]+)\)/)?.[1] : "");
177
- if (prUrl) {
178
- links += ` • [Create PR ➔](${prUrl})`;
179
- }
180
-
181
- // Build the new body with blank line between header and separator
182
- let newBody = `${header}${links}`;
183
-
184
- // Add error details if available
185
- if (actionFailed && errorDetails) {
186
- newBody += `\n\n\`\`\`\n${errorDetails}\n\`\`\``;
187
- }
188
-
189
- newBody += `\n\n---\n`;
190
-
191
- // Clean up the body content
192
- // Remove any existing View job run, branch links from the bottom
193
- bodyContent = bodyContent.replace(/\n?\[View job run\]\([^\)]+\)/g, "");
194
- bodyContent = bodyContent.replace(/\n?\[View branch\]\([^\)]+\)/g, "");
195
-
196
- // Remove any existing duration info at the bottom
197
- bodyContent = bodyContent.replace(/\n*---\n*Duration: [0-9]+m? [0-9]+s/g, "");
198
-
199
- // Add the cleaned body content
200
- newBody += bodyContent;
201
-
202
- return newBody.trim();
203
- }
1
+ import { GITHUB_SERVER_URL } from "../api/config";
2
+
3
+ export type ExecutionDetails = {
4
+ cost_usd?: number;
5
+ duration_ms?: number;
6
+ duration_api_ms?: number;
7
+ };
8
+
9
+ export type CommentUpdateInput = {
10
+ currentBody: string;
11
+ actionFailed: boolean;
12
+ executionDetails: ExecutionDetails | null;
13
+ jobUrl: string;
14
+ branchLink?: string;
15
+ prLink?: string;
16
+ branchName?: string;
17
+ triggerUsername?: string;
18
+ errorDetails?: string;
19
+ };
20
+
21
+ export function ensureProperlyEncodedUrl(url: string): string | null {
22
+ try {
23
+ // First, try to parse the URL to see if it's already properly encoded
24
+ new URL(url);
25
+ if (url.includes(" ")) {
26
+ const [baseUrl, queryString] = url.split("?");
27
+ if (queryString) {
28
+ // Parse query parameters and re-encode them properly
29
+ const params = new URLSearchParams();
30
+ const pairs = queryString.split("&");
31
+ for (const pair of pairs) {
32
+ const [key, value = ""] = pair.split("=");
33
+ if (key) {
34
+ // Decode first in case it's partially encoded, then encode properly
35
+ params.set(key, decodeURIComponent(value));
36
+ }
37
+ }
38
+ return `${baseUrl}?${params.toString()}`;
39
+ }
40
+ // If no query string, just encode spaces
41
+ return url.replace(/ /g, "%20");
42
+ }
43
+ return url;
44
+ } catch (e) {
45
+ // If URL parsing fails, try basic fixes
46
+ try {
47
+ // Replace spaces with %20
48
+ let fixedUrl = url.replace(/ /g, "%20");
49
+
50
+ // Ensure colons in parameter values are encoded (but not in http:// or after domain)
51
+ const urlParts = fixedUrl.split("?");
52
+ if (urlParts.length > 1 && urlParts[1]) {
53
+ const [baseUrl, queryString] = urlParts;
54
+ // Encode colons in the query string that aren't already encoded
55
+ const fixedQuery = queryString.replace(/([^%]|^):(?!%2F%2F)/g, "$1%3A");
56
+ fixedUrl = `${baseUrl}?${fixedQuery}`;
57
+ }
58
+
59
+ // Try to validate the fixed URL
60
+ new URL(fixedUrl);
61
+ return fixedUrl;
62
+ } catch {
63
+ // If we still can't create a valid URL, return null
64
+ return null;
65
+ }
66
+ }
67
+ }
68
+
69
+ export function updateCommentBody(input: CommentUpdateInput): string {
70
+ const originalBody = input.currentBody;
71
+ const {
72
+ executionDetails,
73
+ jobUrl,
74
+ branchLink,
75
+ prLink,
76
+ actionFailed,
77
+ branchName,
78
+ triggerUsername,
79
+ errorDetails,
80
+ } = input;
81
+
82
+ // Extract content from the original comment body
83
+ // First, remove the "Claude Code is working…" or "Claude Code is working..." message
84
+ const workingPattern = /Claude Code is working[…\.]{1,3}(?:\s*<img[^>]*>)?/i;
85
+ let bodyContent = originalBody.replace(workingPattern, "").trim();
86
+
87
+ // Check if there's a PR link in the content
88
+ let prLinkFromContent = "";
89
+
90
+ // Match the entire markdown link structure
91
+ const prLinkPattern = /\[Create .* PR\]\((.*)\)$/m;
92
+ const prLinkMatch = bodyContent.match(prLinkPattern);
93
+
94
+ if (prLinkMatch && prLinkMatch[1]) {
95
+ const encodedUrl = ensureProperlyEncodedUrl(prLinkMatch[1]);
96
+ if (encodedUrl) {
97
+ prLinkFromContent = encodedUrl;
98
+ // Remove the PR link from the content
99
+ bodyContent = bodyContent.replace(prLinkMatch[0], "").trim();
100
+ }
101
+ }
102
+
103
+ // Calculate duration string if available
104
+ let durationStr = "";
105
+ if (executionDetails?.duration_ms !== undefined) {
106
+ const totalSeconds = Math.round(executionDetails.duration_ms / 1000);
107
+ const minutes = Math.floor(totalSeconds / 60);
108
+ const seconds = totalSeconds % 60;
109
+ durationStr = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
110
+ }
111
+
112
+ // Build the header
113
+ let header = "";
114
+
115
+ if (actionFailed) {
116
+ header = "**Claude encountered an error";
117
+ if (durationStr) {
118
+ header += ` after ${durationStr}`;
119
+ }
120
+ header += "**";
121
+ } else {
122
+ // Get the username from triggerUsername or extract from content
123
+ const usernameMatch = bodyContent.match(/@([a-zA-Z0-9-]+)/);
124
+ const username =
125
+ triggerUsername || (usernameMatch ? usernameMatch[1] : "user");
126
+
127
+ header = `**Claude finished @${username}'s task`;
128
+ if (durationStr) {
129
+ header += ` in ${durationStr}`;
130
+ }
131
+ header += "**";
132
+ }
133
+
134
+ // Add links section
135
+ let links = ` —— [View job](${jobUrl})`;
136
+
137
+ // Add branch name with link
138
+ if (branchName || branchLink) {
139
+ let finalBranchName = branchName;
140
+ let branchUrl = "";
141
+
142
+ if (branchLink) {
143
+ // Extract the branch URL from the link
144
+ const urlMatch = branchLink.match(/\((https:\/\/.*)\)/);
145
+ if (urlMatch && urlMatch[1]) {
146
+ branchUrl = urlMatch[1];
147
+ }
148
+
149
+ // Extract branch name from link if not provided
150
+ if (!finalBranchName) {
151
+ const branchNameMatch = branchLink.match(/tree\/([^"'\)]+)/);
152
+ if (branchNameMatch) {
153
+ finalBranchName = branchNameMatch[1];
154
+ }
155
+ }
156
+ }
157
+
158
+ // If we don't have a URL yet but have a branch name, construct it
159
+ if (!branchUrl && finalBranchName) {
160
+ // Extract owner/repo from jobUrl
161
+ const repoMatch = jobUrl.match(/github\.com\/([^\/]+)\/([^\/]+)\//);
162
+ if (repoMatch) {
163
+ branchUrl = `${GITHUB_SERVER_URL}/${repoMatch[1]}/${repoMatch[2]}/tree/${finalBranchName}`;
164
+ }
165
+ }
166
+
167
+ if (finalBranchName && branchUrl) {
168
+ links += ` • [\`${finalBranchName}\`](${branchUrl})`;
169
+ } else if (finalBranchName) {
170
+ links += ` • \`${finalBranchName}\``;
171
+ }
172
+ }
173
+
174
+ // Add PR link (either from content or provided)
175
+ const prUrl =
176
+ prLinkFromContent || (prLink ? prLink.match(/\(([^)]+)\)/)?.[1] : "");
177
+ if (prUrl) {
178
+ links += ` • [Create PR ➔](${prUrl})`;
179
+ }
180
+
181
+ // Build the new body with blank line between header and separator
182
+ let newBody = `${header}${links}`;
183
+
184
+ // Add error details if available
185
+ if (actionFailed && errorDetails) {
186
+ newBody += `\n\n\`\`\`\n${errorDetails}\n\`\`\``;
187
+ }
188
+
189
+ newBody += `\n\n---\n`;
190
+
191
+ // Clean up the body content
192
+ // Remove any existing View job run, branch links from the bottom
193
+ bodyContent = bodyContent.replace(/\n?\[View job run\]\([^\)]+\)/g, "");
194
+ bodyContent = bodyContent.replace(/\n?\[View branch\]\([^\)]+\)/g, "");
195
+
196
+ // Remove any existing duration info at the bottom
197
+ bodyContent = bodyContent.replace(/\n*---\n*Duration: [0-9]+m? [0-9]+s/g, "");
198
+
199
+ // Add the cleaned body content
200
+ newBody += bodyContent;
201
+
202
+ return newBody.trim();
203
+ }
@@ -1,33 +1,33 @@
1
- import { GITHUB_SERVER_URL } from "../../api/config";
2
-
3
- export const SPINNER_HTML =
4
- '<img src="https://github.com/user-attachments/assets/5ac382c7-e004-429b-8e35-7feb3e8f9c6f" width="14px" height="14px" style="vertical-align: middle; margin-left: 4px;" />';
5
-
6
- export function createJobRunLink(
7
- owner: string,
8
- repo: string,
9
- runId: string,
10
- ): string {
11
- const jobRunUrl = `${GITHUB_SERVER_URL}/${owner}/${repo}/actions/runs/${runId}`;
12
- return `[View job run](${jobRunUrl})`;
13
- }
14
-
15
- export function createBranchLink(
16
- owner: string,
17
- repo: string,
18
- branchName: string,
19
- ): string {
20
- const branchUrl = `${GITHUB_SERVER_URL}/${owner}/${repo}/tree/${branchName}`;
21
- return `\n[View branch](${branchUrl})`;
22
- }
23
-
24
- export function createCommentBody(
25
- jobRunLink: string,
26
- branchLink: string = "",
27
- ): string {
28
- return `Claude Code is working… ${SPINNER_HTML}
29
-
30
- I'll analyze this and get back to you.
31
-
32
- ${jobRunLink}${branchLink}`;
33
- }
1
+ import { GITHUB_SERVER_URL } from "../../api/config";
2
+
3
+ export const SPINNER_HTML =
4
+ '<img src="https://github.com/user-attachments/assets/5ac382c7-e004-429b-8e35-7feb3e8f9c6f" width="14px" height="14px" style="vertical-align: middle; margin-left: 4px;" />';
5
+
6
+ export function createJobRunLink(
7
+ owner: string,
8
+ repo: string,
9
+ runId: string,
10
+ ): string {
11
+ const jobRunUrl = `${GITHUB_SERVER_URL}/${owner}/${repo}/actions/runs/${runId}`;
12
+ return `[View job run](${jobRunUrl})`;
13
+ }
14
+
15
+ export function createBranchLink(
16
+ owner: string,
17
+ repo: string,
18
+ branchName: string,
19
+ ): string {
20
+ const branchUrl = `${GITHUB_SERVER_URL}/${owner}/${repo}/tree/${branchName}`;
21
+ return `\n[View branch](${branchUrl})`;
22
+ }
23
+
24
+ export function createCommentBody(
25
+ jobRunLink: string,
26
+ branchLink: string = "",
27
+ ): string {
28
+ return `Claude Code is working… ${SPINNER_HTML}
29
+
30
+ I'll analyze this and get back to you.
31
+
32
+ ${jobRunLink}${branchLink}`;
33
+ }