@vicoa/cli 1.3.11-linux-x64 → 1.3.11

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 (301) hide show
  1. package/README.md +82 -0
  2. package/bin/vicoa.js +38 -0
  3. package/package.json +29 -10
  4. package/bin/_internal/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so +0 -0
  5. package/bin/_internal/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -0
  6. package/bin/_internal/aiofile-3.9.0.dist-info/INSTALLER +0 -1
  7. package/bin/_internal/aiofile-3.9.0.dist-info/LICENCE +0 -195
  8. package/bin/_internal/aiofile-3.9.0.dist-info/LICENCE.md +0 -195
  9. package/bin/_internal/aiofile-3.9.0.dist-info/METADATA +0 -492
  10. package/bin/_internal/aiofile-3.9.0.dist-info/RECORD +0 -15
  11. package/bin/_internal/aiofile-3.9.0.dist-info/WHEEL +0 -4
  12. package/bin/_internal/aiohttp/_http_parser.cpython-312-x86_64-linux-gnu.so +0 -0
  13. package/bin/_internal/aiohttp/_http_writer.cpython-312-x86_64-linux-gnu.so +0 -0
  14. package/bin/_internal/aiohttp/_websocket/mask.cpython-312-x86_64-linux-gnu.so +0 -0
  15. package/bin/_internal/aiohttp/_websocket/reader_c.cpython-312-x86_64-linux-gnu.so +0 -0
  16. package/bin/_internal/attrs-26.1.0.dist-info/INSTALLER +0 -1
  17. package/bin/_internal/attrs-26.1.0.dist-info/METADATA +0 -199
  18. package/bin/_internal/attrs-26.1.0.dist-info/RECORD +0 -55
  19. package/bin/_internal/attrs-26.1.0.dist-info/WHEEL +0 -4
  20. package/bin/_internal/attrs-26.1.0.dist-info/licenses/LICENSE +0 -21
  21. package/bin/_internal/base_library.zip +0 -0
  22. package/bin/_internal/caio/linux_aio.cpython-312-x86_64-linux-gnu.so +0 -0
  23. package/bin/_internal/caio/thread_aio.cpython-312-x86_64-linux-gnu.so +0 -0
  24. package/bin/_internal/certifi/cacert.pem +0 -4494
  25. package/bin/_internal/certifi/py.typed +0 -0
  26. package/bin/_internal/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so +0 -0
  27. package/bin/_internal/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +0 -0
  28. package/bin/_internal/click-8.3.2.dist-info/INSTALLER +0 -1
  29. package/bin/_internal/click-8.3.2.dist-info/METADATA +0 -84
  30. package/bin/_internal/click-8.3.2.dist-info/RECORD +0 -40
  31. package/bin/_internal/click-8.3.2.dist-info/WHEEL +0 -4
  32. package/bin/_internal/click-8.3.2.dist-info/licenses/LICENSE.txt +0 -28
  33. package/bin/_internal/cryptography/hazmat/bindings/_rust.abi3.so +0 -0
  34. package/bin/_internal/cryptography-46.0.7.dist-info/INSTALLER +0 -1
  35. package/bin/_internal/cryptography-46.0.7.dist-info/METADATA +0 -139
  36. package/bin/_internal/cryptography-46.0.7.dist-info/RECORD +0 -180
  37. package/bin/_internal/cryptography-46.0.7.dist-info/WHEEL +0 -5
  38. package/bin/_internal/cryptography-46.0.7.dist-info/licenses/LICENSE +0 -3
  39. package/bin/_internal/cryptography-46.0.7.dist-info/licenses/LICENSE.APACHE +0 -202
  40. package/bin/_internal/cryptography-46.0.7.dist-info/licenses/LICENSE.BSD +0 -27
  41. package/bin/_internal/email_validator-2.3.0.dist-info/INSTALLER +0 -1
  42. package/bin/_internal/email_validator-2.3.0.dist-info/METADATA +0 -466
  43. package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +0 -27
  44. package/bin/_internal/email_validator-2.3.0.dist-info/WHEEL +0 -5
  45. package/bin/_internal/email_validator-2.3.0.dist-info/entry_points.txt +0 -2
  46. package/bin/_internal/email_validator-2.3.0.dist-info/licenses/LICENSE +0 -27
  47. package/bin/_internal/email_validator-2.3.0.dist-info/top_level.txt +0 -1
  48. package/bin/_internal/frozenlist/_frozenlist.cpython-312-x86_64-linux-gnu.so +0 -0
  49. package/bin/_internal/importlib_metadata-8.7.1.dist-info/INSTALLER +0 -1
  50. package/bin/_internal/importlib_metadata-8.7.1.dist-info/METADATA +0 -133
  51. package/bin/_internal/importlib_metadata-8.7.1.dist-info/RECORD +0 -33
  52. package/bin/_internal/importlib_metadata-8.7.1.dist-info/WHEEL +0 -5
  53. package/bin/_internal/importlib_metadata-8.7.1.dist-info/licenses/LICENSE +0 -73
  54. package/bin/_internal/importlib_metadata-8.7.1.dist-info/top_level.txt +0 -1
  55. package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +0 -33
  56. package/bin/_internal/integrations/github/claude-code-action/CLAUDE.md +0 -136
  57. package/bin/_internal/integrations/github/claude-code-action/CODE_OF_CONDUCT.md +0 -128
  58. package/bin/_internal/integrations/github/claude-code-action/CONTRIBUTING.md +0 -116
  59. package/bin/_internal/integrations/github/claude-code-action/LICENSE +0 -21
  60. package/bin/_internal/integrations/github/claude-code-action/README.md +0 -53
  61. package/bin/_internal/integrations/github/claude-code-action/ROADMAP.md +0 -20
  62. package/bin/_internal/integrations/github/claude-code-action/SECURITY.md +0 -15
  63. package/bin/_internal/integrations/github/claude-code-action/action.yml +0 -294
  64. package/bin/_internal/integrations/github/claude-code-action/base-action/CLAUDE.md +0 -60
  65. package/bin/_internal/integrations/github/claude-code-action/base-action/CODE_OF_CONDUCT.md +0 -128
  66. package/bin/_internal/integrations/github/claude-code-action/base-action/CONTRIBUTING.md +0 -136
  67. package/bin/_internal/integrations/github/claude-code-action/base-action/LICENSE +0 -21
  68. package/bin/_internal/integrations/github/claude-code-action/base-action/MIRROR_DISCLAIMER.md +0 -11
  69. package/bin/_internal/integrations/github/claude-code-action/base-action/README.md +0 -521
  70. package/bin/_internal/integrations/github/claude-code-action/base-action/action.yml +0 -149
  71. package/bin/_internal/integrations/github/claude-code-action/base-action/bun.lock +0 -54
  72. package/bin/_internal/integrations/github/claude-code-action/base-action/examples/issue-triage.yml +0 -108
  73. package/bin/_internal/integrations/github/claude-code-action/base-action/package.json +0 -23
  74. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/install-hooks.sh +0 -13
  75. package/bin/_internal/integrations/github/claude-code-action/base-action/scripts/pre-push +0 -46
  76. package/bin/_internal/integrations/github/claude-code-action/base-action/src/index.ts +0 -82
  77. package/bin/_internal/integrations/github/claude-code-action/base-action/src/prepare-prompt.ts +0 -82
  78. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-claude.ts +0 -257
  79. package/bin/_internal/integrations/github/claude-code-action/base-action/src/run-vicoa.ts +0 -301
  80. package/bin/_internal/integrations/github/claude-code-action/base-action/src/setup-claude-code-settings.ts +0 -68
  81. package/bin/_internal/integrations/github/claude-code-action/base-action/src/validate-env.ts +0 -54
  82. package/bin/_internal/integrations/github/claude-code-action/base-action/test-local.sh +0 -12
  83. package/bin/_internal/integrations/github/claude-code-action/base-action/test-mcp-local.sh +0 -18
  84. package/bin/_internal/integrations/github/claude-code-action/base-action/tsconfig.json +0 -30
  85. package/bin/_internal/integrations/github/claude-code-action/bun.lock +0 -384
  86. package/bin/_internal/integrations/github/claude-code-action/docs/capabilities-and-limitations.md +0 -33
  87. package/bin/_internal/integrations/github/claude-code-action/docs/cloud-providers.md +0 -99
  88. package/bin/_internal/integrations/github/claude-code-action/docs/configuration.md +0 -345
  89. package/bin/_internal/integrations/github/claude-code-action/docs/custom-automations.md +0 -113
  90. package/bin/_internal/integrations/github/claude-code-action/docs/experimental.md +0 -128
  91. package/bin/_internal/integrations/github/claude-code-action/docs/faq.md +0 -205
  92. package/bin/_internal/integrations/github/claude-code-action/docs/migration-guide.md +0 -261
  93. package/bin/_internal/integrations/github/claude-code-action/docs/security.md +0 -38
  94. package/bin/_internal/integrations/github/claude-code-action/docs/setup.md +0 -146
  95. package/bin/_internal/integrations/github/claude-code-action/docs/usage.md +0 -213
  96. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/auto-fix-ci.yml +0 -97
  97. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci/commands/fix-ci.md +0 -127
  98. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/auto-fix-ci-signed.yml +0 -97
  99. package/bin/_internal/integrations/github/claude-code-action/examples/auto-fix-ci-signed/commands/fix-ci-signed.md +0 -148
  100. package/bin/_internal/integrations/github/claude-code-action/examples/issue-deduplication.yml +0 -63
  101. package/bin/_internal/integrations/github/claude-code-action/examples/issue-triage.yml +0 -75
  102. package/bin/_internal/integrations/github/claude-code-action/examples/vicoa.yml +0 -75
  103. package/bin/_internal/integrations/github/claude-code-action/package.json +0 -31
  104. package/bin/_internal/integrations/github/claude-code-action/scripts/install-hooks.sh +0 -13
  105. package/bin/_internal/integrations/github/claude-code-action/scripts/pre-commit +0 -46
  106. package/bin/_internal/integrations/github/claude-code-action/scripts/setup-network-restrictions.sh +0 -123
  107. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/index.ts +0 -799
  108. package/bin/_internal/integrations/github/claude-code-action/src/create-prompt/types.ts +0 -102
  109. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/collect-inputs.ts +0 -58
  110. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/format-turns.ts +0 -465
  111. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/prepare.ts +0 -98
  112. package/bin/_internal/integrations/github/claude-code-action/src/entrypoints/update-comment-link.ts +0 -245
  113. package/bin/_internal/integrations/github/claude-code-action/src/github/api/client.ts +0 -23
  114. package/bin/_internal/integrations/github/claude-code-action/src/github/api/config.ts +0 -4
  115. package/bin/_internal/integrations/github/claude-code-action/src/github/api/queries/github.ts +0 -117
  116. package/bin/_internal/integrations/github/claude-code-action/src/github/context.ts +0 -277
  117. package/bin/_internal/integrations/github/claude-code-action/src/github/data/fetcher.ts +0 -233
  118. package/bin/_internal/integrations/github/claude-code-action/src/github/data/formatter.ts +0 -144
  119. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch-cleanup.ts +0 -132
  120. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/branch.ts +0 -163
  121. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comment-logic.ts +0 -203
  122. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/common.ts +0 -33
  123. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/create-initial.ts +0 -111
  124. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-claude-comment.ts +0 -70
  125. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/comments/update-with-branch.ts +0 -57
  126. package/bin/_internal/integrations/github/claude-code-action/src/github/operations/git-config.ts +0 -62
  127. package/bin/_internal/integrations/github/claude-code-action/src/github/token.ts +0 -108
  128. package/bin/_internal/integrations/github/claude-code-action/src/github/types.ts +0 -98
  129. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/image-downloader.ts +0 -246
  130. package/bin/_internal/integrations/github/claude-code-action/src/github/utils/sanitizer.ts +0 -100
  131. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/actor.ts +0 -64
  132. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/permissions.ts +0 -47
  133. package/bin/_internal/integrations/github/claude-code-action/src/github/validation/trigger.ts +0 -148
  134. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-actions-server.ts +0 -279
  135. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-comment-server.ts +0 -101
  136. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-file-ops-server.ts +0 -677
  137. package/bin/_internal/integrations/github/claude-code-action/src/mcp/github-inline-comment-server.ts +0 -184
  138. package/bin/_internal/integrations/github/claude-code-action/src/mcp/install-mcp-server.ts +0 -201
  139. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/index.ts +0 -152
  140. package/bin/_internal/integrations/github/claude-code-action/src/modes/agent/parse-tools.ts +0 -22
  141. package/bin/_internal/integrations/github/claude-code-action/src/modes/detector.ts +0 -66
  142. package/bin/_internal/integrations/github/claude-code-action/src/modes/registry.ts +0 -54
  143. package/bin/_internal/integrations/github/claude-code-action/src/modes/tag/index.ts +0 -187
  144. package/bin/_internal/integrations/github/claude-code-action/src/modes/types.ts +0 -100
  145. package/bin/_internal/integrations/github/claude-code-action/src/prepare/index.ts +0 -20
  146. package/bin/_internal/integrations/github/claude-code-action/src/prepare/types.ts +0 -20
  147. package/bin/_internal/integrations/github/claude-code-action/src/utils/retry.ts +0 -40
  148. package/bin/_internal/integrations/github/claude-code-action/tsconfig.json +0 -30
  149. package/bin/_internal/integrations/n8n/LICENSE +0 -21
  150. package/bin/_internal/integrations/n8n/README.md +0 -298
  151. package/bin/_internal/integrations/n8n/package-lock.json +0 -2989
  152. package/bin/_internal/integrations/n8n/package.json +0 -68
  153. package/bin/_internal/integrations/n8n/src/credentials/OmnaraApi.credentials.ts +0 -52
  154. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.json +0 -35
  155. package/bin/_internal/integrations/n8n/src/nodes/Omnara/Omnara.node.ts +0 -304
  156. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/index.ts +0 -37
  157. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/send.operation.ts +0 -151
  158. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/message/sendAndWait.operation.ts +0 -252
  159. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/end.operation.ts +0 -56
  160. package/bin/_internal/integrations/n8n/src/nodes/Omnara/actions/session/index.ts +0 -29
  161. package/bin/_internal/integrations/n8n/src/nodes/Omnara/vicoa.png +0 -0
  162. package/bin/_internal/integrations/n8n/src/utils/GenericFunctions.ts +0 -93
  163. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/configureWaitTillDate.ts +0 -42
  164. package/bin/_internal/integrations/n8n/src/utils/sendAndWait/descriptions.ts +0 -20
  165. package/bin/_internal/integrations/n8n/src/utils/sendAndWaitWebhook.ts +0 -72
  166. package/bin/_internal/integrations/n8n/tsconfig.json +0 -20
  167. package/bin/_internal/jiter/jiter.cpython-312-x86_64-linux-gnu.so +0 -0
  168. package/bin/_internal/jsonschema/benchmarks/issue232/issue.json +0 -2653
  169. package/bin/_internal/jsonschema-4.26.0.dist-info/INSTALLER +0 -1
  170. package/bin/_internal/jsonschema-4.26.0.dist-info/METADATA +0 -170
  171. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +0 -82
  172. package/bin/_internal/jsonschema-4.26.0.dist-info/WHEEL +0 -4
  173. package/bin/_internal/jsonschema-4.26.0.dist-info/entry_points.txt +0 -2
  174. package/bin/_internal/jsonschema-4.26.0.dist-info/licenses/COPYING +0 -19
  175. package/bin/_internal/jsonschema_specifications/schemas/draft201909/metaschema.json +0 -42
  176. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +0 -56
  177. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/content +0 -17
  178. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/core +0 -57
  179. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/format +0 -14
  180. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +0 -37
  181. package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/validation +0 -98
  182. package/bin/_internal/jsonschema_specifications/schemas/draft202012/metaschema.json +0 -58
  183. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +0 -48
  184. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/content +0 -17
  185. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/core +0 -51
  186. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +0 -14
  187. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +0 -14
  188. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +0 -37
  189. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +0 -15
  190. package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/validation +0 -98
  191. package/bin/_internal/jsonschema_specifications/schemas/draft3/metaschema.json +0 -172
  192. package/bin/_internal/jsonschema_specifications/schemas/draft4/metaschema.json +0 -149
  193. package/bin/_internal/jsonschema_specifications/schemas/draft6/metaschema.json +0 -153
  194. package/bin/_internal/jsonschema_specifications/schemas/draft7/metaschema.json +0 -166
  195. package/bin/_internal/libbz2.so.1.0 +0 -0
  196. package/bin/_internal/libcrypto.so.3 +0 -0
  197. package/bin/_internal/libffi.so.8 +0 -0
  198. package/bin/_internal/libgcc_s.so.1 +0 -0
  199. package/bin/_internal/liblzma.so.5 +0 -0
  200. package/bin/_internal/libpython3.12.so.1.0 +0 -0
  201. package/bin/_internal/libreadline.so.8 +0 -0
  202. package/bin/_internal/libssl.so.3 +0 -0
  203. package/bin/_internal/libstdc++.so.6 +0 -0
  204. package/bin/_internal/libtinfo.so.6 +0 -0
  205. package/bin/_internal/libuuid.so.1 +0 -0
  206. package/bin/_internal/libz.so.1 +0 -0
  207. package/bin/_internal/mcp-1.27.0.dist-info/INSTALLER +0 -1
  208. package/bin/_internal/mcp-1.27.0.dist-info/METADATA +0 -230
  209. package/bin/_internal/mcp-1.27.0.dist-info/RECORD +0 -226
  210. package/bin/_internal/mcp-1.27.0.dist-info/WHEEL +0 -4
  211. package/bin/_internal/mcp-1.27.0.dist-info/entry_points.txt +0 -2
  212. package/bin/_internal/mcp-1.27.0.dist-info/licenses/LICENSE +0 -21
  213. package/bin/_internal/multidict/_multidict.cpython-312-x86_64-linux-gnu.so +0 -0
  214. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/INSTALLER +0 -1
  215. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/METADATA +0 -45
  216. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/RECORD +0 -81
  217. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/WHEEL +0 -4
  218. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/entry_points.txt +0 -15
  219. package/bin/_internal/opentelemetry_api-1.41.0.dist-info/licenses/LICENSE +0 -201
  220. package/bin/_internal/propcache/_helpers_c.cpython-312-x86_64-linux-gnu.so +0 -0
  221. package/bin/_internal/pydantic-2.13.2.dist-info/INSTALLER +0 -1
  222. package/bin/_internal/pydantic-2.13.2.dist-info/METADATA +0 -1269
  223. package/bin/_internal/pydantic-2.13.2.dist-info/RECORD +0 -217
  224. package/bin/_internal/pydantic-2.13.2.dist-info/WHEEL +0 -4
  225. package/bin/_internal/pydantic-2.13.2.dist-info/licenses/LICENSE +0 -21
  226. package/bin/_internal/pydantic_core/_pydantic_core.cpython-312-x86_64-linux-gnu.so +0 -0
  227. package/bin/_internal/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so +0 -0
  228. package/bin/_internal/python3.12/lib-dynload/_bisect.cpython-312-x86_64-linux-gnu.so +0 -0
  229. package/bin/_internal/python3.12/lib-dynload/_blake2.cpython-312-x86_64-linux-gnu.so +0 -0
  230. package/bin/_internal/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so +0 -0
  231. package/bin/_internal/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so +0 -0
  232. package/bin/_internal/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so +0 -0
  233. package/bin/_internal/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so +0 -0
  234. package/bin/_internal/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so +0 -0
  235. package/bin/_internal/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so +0 -0
  236. package/bin/_internal/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so +0 -0
  237. package/bin/_internal/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so +0 -0
  238. package/bin/_internal/python3.12/lib-dynload/_csv.cpython-312-x86_64-linux-gnu.so +0 -0
  239. package/bin/_internal/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so +0 -0
  240. package/bin/_internal/python3.12/lib-dynload/_datetime.cpython-312-x86_64-linux-gnu.so +0 -0
  241. package/bin/_internal/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so +0 -0
  242. package/bin/_internal/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so +0 -0
  243. package/bin/_internal/python3.12/lib-dynload/_heapq.cpython-312-x86_64-linux-gnu.so +0 -0
  244. package/bin/_internal/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so +0 -0
  245. package/bin/_internal/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so +0 -0
  246. package/bin/_internal/python3.12/lib-dynload/_md5.cpython-312-x86_64-linux-gnu.so +0 -0
  247. package/bin/_internal/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so +0 -0
  248. package/bin/_internal/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so +0 -0
  249. package/bin/_internal/python3.12/lib-dynload/_opcode.cpython-312-x86_64-linux-gnu.so +0 -0
  250. package/bin/_internal/python3.12/lib-dynload/_pickle.cpython-312-x86_64-linux-gnu.so +0 -0
  251. package/bin/_internal/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so +0 -0
  252. package/bin/_internal/python3.12/lib-dynload/_posixsubprocess.cpython-312-x86_64-linux-gnu.so +0 -0
  253. package/bin/_internal/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so +0 -0
  254. package/bin/_internal/python3.12/lib-dynload/_random.cpython-312-x86_64-linux-gnu.so +0 -0
  255. package/bin/_internal/python3.12/lib-dynload/_sha1.cpython-312-x86_64-linux-gnu.so +0 -0
  256. package/bin/_internal/python3.12/lib-dynload/_sha2.cpython-312-x86_64-linux-gnu.so +0 -0
  257. package/bin/_internal/python3.12/lib-dynload/_sha3.cpython-312-x86_64-linux-gnu.so +0 -0
  258. package/bin/_internal/python3.12/lib-dynload/_socket.cpython-312-x86_64-linux-gnu.so +0 -0
  259. package/bin/_internal/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so +0 -0
  260. package/bin/_internal/python3.12/lib-dynload/_statistics.cpython-312-x86_64-linux-gnu.so +0 -0
  261. package/bin/_internal/python3.12/lib-dynload/_struct.cpython-312-x86_64-linux-gnu.so +0 -0
  262. package/bin/_internal/python3.12/lib-dynload/_uuid.cpython-312-x86_64-linux-gnu.so +0 -0
  263. package/bin/_internal/python3.12/lib-dynload/_zoneinfo.cpython-312-x86_64-linux-gnu.so +0 -0
  264. package/bin/_internal/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so +0 -0
  265. package/bin/_internal/python3.12/lib-dynload/binascii.cpython-312-x86_64-linux-gnu.so +0 -0
  266. package/bin/_internal/python3.12/lib-dynload/fcntl.cpython-312-x86_64-linux-gnu.so +0 -0
  267. package/bin/_internal/python3.12/lib-dynload/grp.cpython-312-x86_64-linux-gnu.so +0 -0
  268. package/bin/_internal/python3.12/lib-dynload/math.cpython-312-x86_64-linux-gnu.so +0 -0
  269. package/bin/_internal/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so +0 -0
  270. package/bin/_internal/python3.12/lib-dynload/pyexpat.cpython-312-x86_64-linux-gnu.so +0 -0
  271. package/bin/_internal/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so +0 -0
  272. package/bin/_internal/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so +0 -0
  273. package/bin/_internal/python3.12/lib-dynload/select.cpython-312-x86_64-linux-gnu.so +0 -0
  274. package/bin/_internal/python3.12/lib-dynload/syslog.cpython-312-x86_64-linux-gnu.so +0 -0
  275. package/bin/_internal/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so +0 -0
  276. package/bin/_internal/python3.12/lib-dynload/unicodedata.cpython-312-x86_64-linux-gnu.so +0 -0
  277. package/bin/_internal/python3.12/lib-dynload/zlib.cpython-312-x86_64-linux-gnu.so +0 -0
  278. package/bin/_internal/rpds/rpds.cpython-312-x86_64-linux-gnu.so +0 -0
  279. package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +0 -2
  280. package/bin/_internal/vicoa/_bin/README.md +0 -28
  281. package/bin/_internal/vicoa-1.3.10.dist-info/INSTALLER +0 -1
  282. package/bin/_internal/vicoa-1.3.10.dist-info/METADATA +0 -311
  283. package/bin/_internal/vicoa-1.3.10.dist-info/RECORD +0 -11
  284. package/bin/_internal/vicoa-1.3.10.dist-info/REQUESTED +0 -0
  285. package/bin/_internal/vicoa-1.3.10.dist-info/WHEEL +0 -5
  286. package/bin/_internal/vicoa-1.3.10.dist-info/direct_url.json +0 -1
  287. package/bin/_internal/vicoa-1.3.10.dist-info/entry_points.txt +0 -2
  288. package/bin/_internal/vicoa-1.3.10.dist-info/licenses/LICENSE +0 -201
  289. package/bin/_internal/vicoa-1.3.10.dist-info/top_level.txt +0 -3
  290. package/bin/_internal/watchfiles/_rust_notify.cpython-312-x86_64-linux-gnu.so +0 -0
  291. package/bin/_internal/websockets/speedups.cpython-312-x86_64-linux-gnu.so +0 -0
  292. package/bin/_internal/websockets-16.0.dist-info/INSTALLER +0 -1
  293. package/bin/_internal/websockets-16.0.dist-info/METADATA +0 -179
  294. package/bin/_internal/websockets-16.0.dist-info/RECORD +0 -108
  295. package/bin/_internal/websockets-16.0.dist-info/WHEEL +0 -7
  296. package/bin/_internal/websockets-16.0.dist-info/entry_points.txt +0 -2
  297. package/bin/_internal/websockets-16.0.dist-info/licenses/LICENSE +0 -24
  298. package/bin/_internal/websockets-16.0.dist-info/top_level.txt +0 -1
  299. package/bin/_internal/yaml/_yaml.cpython-312-x86_64-linux-gnu.so +0 -0
  300. package/bin/_internal/yarl/_quoting_c.cpython-312-x86_64-linux-gnu.so +0 -0
  301. package/bin/vicoa +0 -0
@@ -1,68 +0,0 @@
1
- {
2
- "name": "n8n-nodes-vicoa",
3
- "version": "0.1.6",
4
- "description": "n8n node for Vicoa - communicate with AI agents",
5
- "keywords": [
6
- "n8n",
7
- "n8n-node",
8
- "n8n-community-node-package",
9
- "vicoa",
10
- "ai",
11
- "agents",
12
- "workflow"
13
- ],
14
- "license": "MIT",
15
- "homepage": "https://github.com/vicoa-ai/vicoa/tree/main/src/integrations/n8n",
16
- "author": {
17
- "name": "Vicoa",
18
- "email": "hi@vicoa.ai"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/vicoa-ai/vicoa.git",
23
- "directory": "src/integrations/n8n"
24
- },
25
- "main": "dist/index.js",
26
- "scripts": {
27
- "build": "tsc && npm run copy-assets",
28
- "copy-assets": "cp src/nodes/Vicoa/vicoa.png dist/nodes/Vicoa/ && cp src/nodes/Vicoa/Vicoa.node.json dist/nodes/Vicoa/",
29
- "dev": "tsc --watch",
30
- "format": "prettier --write .",
31
- "lint": "eslint . --ext .ts",
32
- "lint:fix": "eslint . --ext .ts --fix",
33
- "prepublishOnly": "npm run build"
34
- },
35
- "files": [
36
- "dist",
37
- "LICENSE"
38
- ],
39
- "n8n": {
40
- "n8nNodesApiVersion": 1,
41
- "credentials": [
42
- "dist/credentials/VicoaApi.credentials.js"
43
- ],
44
- "nodes": [
45
- "dist/nodes/Vicoa/Vicoa.node.js"
46
- ]
47
- },
48
- "devDependencies": {
49
- "@types/node": "^20.10.0",
50
- "@types/uuid": "^9.0.0",
51
- "@typescript-eslint/eslint-plugin": "^6.13.0",
52
- "@typescript-eslint/parser": "^6.13.0",
53
- "eslint": "^8.54.0",
54
- "eslint-config-prettier": "^9.0.0",
55
- "eslint-plugin-prettier": "^5.0.1",
56
- "prettier": "^3.1.0",
57
- "typescript": "^5.3.2"
58
- },
59
- "dependencies": {
60
- "uuid": "^9.0.1"
61
- },
62
- "peerDependencies": {
63
- "n8n-workflow": "*"
64
- },
65
- "engines": {
66
- "node": ">=20.15.0"
67
- }
68
- }
@@ -1,52 +0,0 @@
1
- import {
2
- IAuthenticateGeneric,
3
- ICredentialTestRequest,
4
- ICredentialType,
5
- INodeProperties,
6
- } from 'n8n-workflow';
7
-
8
- export class VicoaApi implements ICredentialType {
9
- name = 'vicoaApi';
10
- displayName = 'Vicoa API';
11
- documentationUrl = 'https://github.com/vicoa-ai/vicoa';
12
- properties: INodeProperties[] = [
13
- {
14
- displayName: 'API Key',
15
- name: 'apiKey',
16
- type: 'string',
17
- typeOptions: {
18
- password: true,
19
- },
20
- default: '',
21
- required: true,
22
- description: 'Your Vicoa API key. Get it from your Vicoa dashboard.',
23
- },
24
- {
25
- displayName: 'API URL',
26
- name: 'serverUrl',
27
- type: 'string',
28
- default: 'https://api.vicoa.ai:8443',
29
- required: true,
30
- description:
31
- 'The Vicoa API URL (without /api/v1). Use the default unless you have a custom deployment.',
32
- placeholder: 'https://api.vicoa.ai:8443',
33
- },
34
- ];
35
-
36
- authenticate: IAuthenticateGeneric = {
37
- type: 'generic',
38
- properties: {
39
- headers: {
40
- Authorization: '=Bearer {{$credentials.apiKey}}',
41
- },
42
- },
43
- };
44
-
45
- test: ICredentialTestRequest = {
46
- request: {
47
- baseURL: '={{$credentials.serverUrl}}',
48
- url: '/api/v1/auth/verify',
49
- method: 'GET',
50
- },
51
- };
52
- }
@@ -1,35 +0,0 @@
1
- {
2
- "node": "n8n-nodes-vicoa.vicoa",
3
- "nodeVersion": "1.0",
4
- "codexVersion": "1.0",
5
- "categories": [
6
- "Communication",
7
- "Development"
8
- ],
9
- "resources": {
10
- "credentialDocumentation": [
11
- {
12
- "url": "https://github.com/vicoa-ai/vicoa"
13
- }
14
- ],
15
- "primaryDocumentation": [
16
- {
17
- "url": "https://github.com/vicoa-ai/vicoa"
18
- }
19
- ]
20
- },
21
- "subcategories": {
22
- "Communication": [
23
- "Chat"
24
- ],
25
- "Development": [
26
- "AI"
27
- ]
28
- },
29
- "alias": [
30
- "AI",
31
- "Agent",
32
- "Claude",
33
- "Assistant"
34
- ]
35
- }
@@ -1,304 +0,0 @@
1
- import {
2
- IExecuteFunctions,
3
- INodeExecutionData,
4
- INodeType,
5
- INodeTypeDescription,
6
- NodeConnectionTypes,
7
- NodeOperationError,
8
- SEND_AND_WAIT_OPERATION
9
- } from 'n8n-workflow';
10
-
11
- import * as message from './actions/message';
12
- import * as session from './actions/session';
13
- import { vicoaSendAndWaitWebhook } from '../../utils/sendAndWaitWebhook';
14
- import { sendAndWaitWebhooksDescription } from '../../utils/sendAndWait/descriptions';
15
- import { configureWaitTillDate } from '../../utils/sendAndWait/configureWaitTillDate';
16
- import { vicoaApiRequest, generateAgentInstanceId, getAgentType } from '../../utils/GenericFunctions';
17
-
18
-
19
- export class Vicoa implements INodeType {
20
- webhook = vicoaSendAndWaitWebhook;
21
-
22
- description: INodeTypeDescription = {
23
- displayName: 'Vicoa',
24
- name: 'vicoa',
25
- icon: 'file:vicoa.png',
26
- group: ['transform'],
27
- version: 1,
28
- subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
29
- description:
30
- 'Send messages to users via Vicoa - a web and mobile platform for human-AI communication',
31
- defaults: {
32
- name: 'Vicoa',
33
- },
34
- inputs: [NodeConnectionTypes.Main],
35
- outputs: [NodeConnectionTypes.Main],
36
- webhooks: sendAndWaitWebhooksDescription,
37
- credentials: [
38
- {
39
- name: 'vicoaApi',
40
- required: true,
41
- },
42
- ],
43
- properties: [
44
- {
45
- displayName: 'Resource',
46
- name: 'resource',
47
- type: 'options',
48
- noDataExpression: true,
49
- options: [
50
- {
51
- name: 'Message',
52
- value: 'message',
53
- description: 'Send messages to Vicoa agents',
54
- },
55
- {
56
- name: 'Session',
57
- value: 'session',
58
- description: 'Manage agent sessions',
59
- },
60
- ],
61
- default: 'message',
62
- },
63
- ...message.descriptions,
64
- ...session.descriptions,
65
- ],
66
- usableAsTool: true,
67
- };
68
-
69
- async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
70
- const items = this.getInputData();
71
- const returnData: INodeExecutionData[] = [];
72
- const resource = this.getNodeParameter('resource', 0) as string;
73
- const operation = this.getNodeParameter('operation', 0) as string;
74
- for (let i = 0; i < items.length; i++) {
75
- try {
76
- let responseData: INodeExecutionData[] = [];
77
- if (resource === 'message') {
78
- if (operation === 'send') {
79
- responseData = await message.send.execute.call(this, i);
80
- } else if (operation === SEND_AND_WAIT_OPERATION || operation === 'sendAndWait') {
81
- // FOLLOWING SLACK PATTERN EXACTLY
82
- const agentType = getAgentType.call(this, 0);
83
- const agentInstanceId = generateAgentInstanceId.call(this, 0, agentType);
84
- const messageContent = this.getNodeParameter('message', 0) as string;
85
- const options = this.getNodeParameter('options', 0, {}) as any;
86
-
87
- // Check if sync mode is enabled (for AI Agent compatibility)
88
- const syncMode = options.syncMode === true;
89
-
90
- if (syncMode) {
91
- // Sync mode: Poll for responses instead of using putExecutionToWait
92
- // This is necessary for AI Agents which don't support async/await properly
93
- const syncTimeout = options.syncTimeout || 7200; // Default 2 hours
94
- const pollInterval = options.pollInterval || 5; // Default 5 seconds
95
-
96
- // Send the message first
97
- const body: any = {
98
- agent_instance_id: agentInstanceId,
99
- agent_type: agentType,
100
- content: messageContent,
101
- requires_user_input: true,
102
- // Don't send webhook URL in sync mode
103
- message_metadata: {
104
- sync_mode: true,
105
- node_id: this.getNode().id,
106
- },
107
- };
108
-
109
- if (options.sendEmail !== undefined) {
110
- body.send_email = options.sendEmail;
111
- }
112
- if (options.sendSms !== undefined) {
113
- body.send_sms = options.sendSms;
114
- }
115
- if (options.sendPush !== undefined) {
116
- body.send_push = options.sendPush;
117
- }
118
-
119
- const sendResponse = await vicoaApiRequest.call(
120
- this,
121
- 'POST',
122
- '/messages/agent',
123
- body,
124
- );
125
-
126
- const messageId = sendResponse.message_id;
127
-
128
- // Now poll for responses
129
- const startTime = Date.now();
130
- const timeoutMs = syncTimeout * 1000;
131
- const lastReadMessageId = messageId;
132
-
133
- while (Date.now() - startTime < timeoutMs) {
134
- // Wait for poll interval using Date.now()
135
- // Community nodes must avoid restricted globals
136
- const pollStart = Date.now();
137
- const pollMs = pollInterval * 1000;
138
- while (Date.now() - pollStart < pollMs) {
139
- // Small delay to avoid blocking
140
- await new Promise((resolve) => resolve(undefined));
141
- }
142
-
143
- // Check for pending messages
144
- try {
145
- const pendingResponse = await vicoaApiRequest.call(
146
- this,
147
- 'GET',
148
- '/messages/pending',
149
- {},
150
- {
151
- agent_instance_id: agentInstanceId,
152
- last_read_message_id: lastReadMessageId,
153
- },
154
- );
155
-
156
- // Check if we got any user messages
157
- if (pendingResponse.messages && pendingResponse.messages.length > 0) {
158
- // Return the last user message as the result
159
- const lastMessage =
160
- pendingResponse.messages[pendingResponse.messages.length - 1];
161
-
162
- // Return the response in a format compatible with the workflow
163
- return [
164
- [
165
- {
166
- json: {
167
- success: true,
168
- agent_instance_id: agentInstanceId,
169
- user_response: lastMessage.content,
170
- message_id: lastMessage.id,
171
- response_time: lastMessage.created_at,
172
- all_responses: pendingResponse.messages.map((m: any) => ({
173
- content: m.content,
174
- id: m.id,
175
- created_at: m.created_at,
176
- })),
177
- },
178
- pairedItem: i,
179
- },
180
- ],
181
- ];
182
- }
183
-
184
- // If status is 'stale', continue polling
185
- if (pendingResponse.status === 'stale') {
186
- // We might need to re-fetch to get the current state
187
- // For now, continue polling
188
- }
189
- } catch (pollError) {
190
- // Continue polling on error
191
- }
192
- }
193
-
194
- // Timeout reached without response
195
- return [
196
- [
197
- {
198
- json: {
199
- success: false,
200
- agent_instance_id: agentInstanceId,
201
- error: 'Timeout waiting for user response',
202
- timeout_seconds: syncTimeout,
203
- },
204
- pairedItem: i,
205
- },
206
- ],
207
- ];
208
- } else {
209
- // Original async mode with putExecutionToWait
210
- // Get the webhook URL from n8n's execution context
211
- // This automatically provides the correct URL for any n8n instance
212
- const resumeUrl = this.evaluateExpression('{{ $execution?.resumeUrl }}', 0) as string;
213
- const nodeId = this.evaluateExpression('{{ $nodeId }}', 0) as string;
214
- const executionId = this.getExecutionId();
215
-
216
- // Construct the full webhook URL with node ID appended
217
- const webhookUrl = `${resumeUrl}/${nodeId}`;
218
-
219
- const body: any = {
220
- agent_instance_id: agentInstanceId,
221
- agent_type: agentType,
222
- content: messageContent,
223
- requires_user_input: true,
224
- // Send webhook URL in metadata so Vicoa knows where to send the response
225
- message_metadata: {
226
- webhook_url: webhookUrl, // Full URL with execution ID and node ID
227
- execution_id: executionId,
228
- node_id: nodeId,
229
- webhook_type: 'n8n_send_and_wait',
230
- },
231
- };
232
-
233
- if (options.sendEmail !== undefined) {
234
- body.send_email = options.sendEmail;
235
- }
236
- if (options.sendSms !== undefined) {
237
- body.send_sms = options.sendSms;
238
- }
239
- if (options.sendPush !== undefined) {
240
- body.send_push = options.sendPush;
241
- }
242
-
243
- // Send message to Vicoa (like Slack sends to chat.postMessage)
244
- await vicoaApiRequest.call(this, 'POST', '/messages/agent', body);
245
-
246
- // Configure wait time
247
- const waitTill = configureWaitTillDate(this, 0);
248
-
249
- // Put execution to wait
250
- if (waitTill === 'WAIT_INDEFINITELY') {
251
- await this.putExecutionToWait(new Date(Date.now() + 365 * 24 * 60 * 60 * 1000));
252
- } else {
253
- await this.putExecutionToWait(waitTill as Date);
254
- }
255
-
256
- // Return input data
257
- return [this.getInputData()];
258
- }
259
- } else {
260
- throw new NodeOperationError(
261
- this.getNode(),
262
- `The operation "${operation}" is not supported for resource "${resource}"`,
263
- { itemIndex: i },
264
- );
265
- }
266
- } else if (resource === 'session') {
267
- if (operation === 'end') {
268
- responseData = await session.end.execute.call(this, i);
269
- } else {
270
- throw new NodeOperationError(
271
- this.getNode(),
272
- `The operation "${operation}" is not supported for resource "${resource}"`,
273
- { itemIndex: i },
274
- );
275
- }
276
- } else {
277
- throw new NodeOperationError(
278
- this.getNode(),
279
- `The resource "${resource}" is not supported`,
280
- { itemIndex: i },
281
- );
282
- }
283
-
284
- returnData.push(...responseData);
285
- } catch (error) {
286
- if (this.continueOnFail()) {
287
- returnData.push({
288
- json: {
289
- error: error instanceof Error ? error.message : String(error),
290
- resource,
291
- operation,
292
- itemIndex: i,
293
- },
294
- pairedItem: i,
295
- });
296
- continue;
297
- }
298
- throw error;
299
- }
300
- }
301
-
302
- return [returnData];
303
- }
304
- }
@@ -1,37 +0,0 @@
1
- import * as send from './send.operation';
2
- import * as sendAndWait from './sendAndWait.operation';
3
-
4
- import { INodeProperties } from 'n8n-workflow';
5
-
6
- export { send, sendAndWait };
7
-
8
- export const descriptions: INodeProperties[] = [
9
- {
10
- displayName: 'Operation',
11
- name: 'operation',
12
- type: 'options',
13
- noDataExpression: true,
14
- displayOptions: {
15
- show: {
16
- resource: ['message'],
17
- },
18
- },
19
- options: [
20
- {
21
- name: 'Send',
22
- value: 'send',
23
- description: 'Send a non-blocking message to the user (for status updates, progress reports, or sharing your thought process). Use this when you want to inform the user but do not need their response to continue',
24
- action: 'Send message',
25
- },
26
- {
27
- name: 'Send and Wait',
28
- value: 'sendAndWait',
29
- description: 'Send a message and wait for the user\'s response (for questions, approvals, or conversations). Use this when you need the user\'s input to proceed with your task',
30
- action: 'Send message and wait for response',
31
- },
32
- ],
33
- default: 'send',
34
- },
35
- ...send.sendMessageDescription,
36
- ...sendAndWait.sendAndWaitDescription,
37
- ];
@@ -1,151 +0,0 @@
1
- import {
2
- IExecuteFunctions,
3
- INodeExecutionData,
4
- INodeProperties,
5
- NodeOperationError,
6
- } from 'n8n-workflow';
7
-
8
- import { vicoaApiRequest, formatMessageResponse, generateAgentInstanceId, getAgentType } from '../../../../utils/GenericFunctions';
9
-
10
- export const sendMessageDescription: INodeProperties[] = [
11
- {
12
- displayName: 'Agent Instance ID',
13
- name: 'agentInstanceId',
14
- type: 'string',
15
- default: '',
16
- required: false,
17
- displayOptions: {
18
- show: {
19
- resource: ['message'],
20
- operation: ['send'],
21
- },
22
- },
23
- placeholder: 'e.g. 550e8400-e29b-41d4-a716-446655440000',
24
- description:
25
- 'A unique UUID for this workflow run. Must be the same across all Vicoa nodes in this workflow. Use webhook data or generate with {{ $uuid() }}. If left empty, a default value will be generated.',
26
- },
27
- {
28
- displayName: 'Agent Type',
29
- name: 'agentType',
30
- type: 'string',
31
- default: '',
32
- required: false,
33
- displayOptions: {
34
- show: {
35
- resource: ['message'],
36
- operation: ['send'],
37
- },
38
- },
39
- placeholder: 'e.g. Customer Support',
40
- description:
41
- 'The name of your agent on Vicoa dashboard. Must be the same across all Vicoa nodes. If left empty, the workflow name will be used as the default.',
42
- },
43
- {
44
- displayName: 'Message',
45
- name: 'message',
46
- type: 'string',
47
- default: '',
48
- required: true,
49
- typeOptions: {
50
- rows: 4,
51
- },
52
- displayOptions: {
53
- show: {
54
- resource: ['message'],
55
- operation: ['send'],
56
- },
57
- },
58
- placeholder: 'e.g. Build completed successfully',
59
- description:
60
- 'Status update or informational message to send to the user. This will appear in their Vicoa web/mobile app. The workflow will continue immediately without waiting for a response.',
61
- },
62
- {
63
- displayName: 'Additional Options',
64
- name: 'additionalOptions',
65
- type: 'collection',
66
- placeholder: 'Add Option',
67
- default: {},
68
- displayOptions: {
69
- show: {
70
- resource: ['message'],
71
- operation: ['send'],
72
- },
73
- },
74
- options: [
75
- {
76
- displayName: 'Send Email Notification',
77
- name: 'sendEmail',
78
- type: 'boolean',
79
- default: false,
80
- description: 'Whether to send an email notification',
81
- },
82
- {
83
- displayName: 'Send SMS Notification',
84
- name: 'sendSms',
85
- type: 'boolean',
86
- default: false,
87
- description: 'Whether to send an SMS notification',
88
- },
89
- {
90
- displayName: 'Send Push Notification',
91
- name: 'sendPush',
92
- type: 'boolean',
93
- default: false,
94
- description: 'Whether to send a push notification',
95
- },
96
- ],
97
- },
98
- ];
99
-
100
- export async function execute(
101
- this: IExecuteFunctions,
102
- index: number,
103
- ): Promise<INodeExecutionData[]> {
104
-
105
- const agentType = getAgentType.call(this, 0);
106
- const agentInstanceId = generateAgentInstanceId.call(this, 0, agentType);
107
-
108
- const message = this.getNodeParameter('message', index) as string;
109
- const additionalOptions = this.getNodeParameter('additionalOptions', index, {}) as any;
110
-
111
- if (!message) {
112
- throw new NodeOperationError(this.getNode(), 'Message is required', { itemIndex: index });
113
- }
114
-
115
- const body: any = {
116
- agent_instance_id: agentInstanceId,
117
- agent_type: agentType,
118
- content: message,
119
- requires_user_input: false,
120
- };
121
- if (additionalOptions.sendEmail !== undefined) {
122
- body.send_email = additionalOptions.sendEmail;
123
- }
124
- if (additionalOptions.sendSms !== undefined) {
125
- body.send_sms = additionalOptions.sendSms;
126
- }
127
- if (additionalOptions.sendPush !== undefined) {
128
- body.send_push = additionalOptions.sendPush;
129
- }
130
-
131
- try {
132
- const response = await vicoaApiRequest.call(this, 'POST', '/messages/agent', body);
133
-
134
- const result = {
135
- success: response.success,
136
- agentInstanceId: response.agent_instance_id,
137
- messageId: response.message_id,
138
- queuedUserMessages: response.queued_user_messages
139
- ? response.queued_user_messages.map(formatMessageResponse)
140
- : [],
141
- };
142
-
143
- return [{ json: result }];
144
- } catch (error) {
145
- throw new NodeOperationError(
146
- this.getNode(),
147
- `Failed to send message: ${error instanceof Error ? error.message : String(error)}`,
148
- { itemIndex: index },
149
- );
150
- }
151
- }