codika 3.0.0

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 (403) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/cli/commands/completion.d.ts +15 -0
  4. package/dist/cli/commands/completion.d.ts.map +1 -0
  5. package/dist/cli/commands/completion.js +810 -0
  6. package/dist/cli/commands/completion.js.map +1 -0
  7. package/dist/cli/commands/config/clear.d.ts +12 -0
  8. package/dist/cli/commands/config/clear.d.ts.map +1 -0
  9. package/dist/cli/commands/config/clear.js +35 -0
  10. package/dist/cli/commands/config/clear.js.map +1 -0
  11. package/dist/cli/commands/config/index.d.ts +15 -0
  12. package/dist/cli/commands/config/index.d.ts.map +1 -0
  13. package/dist/cli/commands/config/index.js +21 -0
  14. package/dist/cli/commands/config/index.js.map +1 -0
  15. package/dist/cli/commands/config/set.d.ts +41 -0
  16. package/dist/cli/commands/config/set.d.ts.map +1 -0
  17. package/dist/cli/commands/config/set.js +185 -0
  18. package/dist/cli/commands/config/set.js.map +1 -0
  19. package/dist/cli/commands/config/show.d.ts +12 -0
  20. package/dist/cli/commands/config/show.d.ts.map +1 -0
  21. package/dist/cli/commands/config/show.js +45 -0
  22. package/dist/cli/commands/config/show.js.map +1 -0
  23. package/dist/cli/commands/deploy/documents.d.ts +12 -0
  24. package/dist/cli/commands/deploy/documents.d.ts.map +1 -0
  25. package/dist/cli/commands/deploy/documents.js +217 -0
  26. package/dist/cli/commands/deploy/documents.js.map +1 -0
  27. package/dist/cli/commands/deploy/index.d.ts +14 -0
  28. package/dist/cli/commands/deploy/index.d.ts.map +1 -0
  29. package/dist/cli/commands/deploy/index.js +21 -0
  30. package/dist/cli/commands/deploy/index.js.map +1 -0
  31. package/dist/cli/commands/deploy/process-data-ingestion.d.ts +13 -0
  32. package/dist/cli/commands/deploy/process-data-ingestion.d.ts.map +1 -0
  33. package/dist/cli/commands/deploy/process-data-ingestion.js +226 -0
  34. package/dist/cli/commands/deploy/process-data-ingestion.js.map +1 -0
  35. package/dist/cli/commands/deploy/use-case.d.ts +9 -0
  36. package/dist/cli/commands/deploy/use-case.d.ts.map +1 -0
  37. package/dist/cli/commands/deploy/use-case.js +212 -0
  38. package/dist/cli/commands/deploy/use-case.js.map +1 -0
  39. package/dist/cli/commands/get/execution.d.ts +9 -0
  40. package/dist/cli/commands/get/execution.d.ts.map +1 -0
  41. package/dist/cli/commands/get/execution.js +159 -0
  42. package/dist/cli/commands/get/execution.js.map +1 -0
  43. package/dist/cli/commands/get/index.d.ts +13 -0
  44. package/dist/cli/commands/get/index.d.ts.map +1 -0
  45. package/dist/cli/commands/get/index.js +20 -0
  46. package/dist/cli/commands/get/index.js.map +1 -0
  47. package/dist/cli/commands/get/skills.d.ts +15 -0
  48. package/dist/cli/commands/get/skills.d.ts.map +1 -0
  49. package/dist/cli/commands/get/skills.js +135 -0
  50. package/dist/cli/commands/get/skills.js.map +1 -0
  51. package/dist/cli/commands/get/use-case.d.ts +9 -0
  52. package/dist/cli/commands/get/use-case.d.ts.map +1 -0
  53. package/dist/cli/commands/get/use-case.js +186 -0
  54. package/dist/cli/commands/get/use-case.js.map +1 -0
  55. package/dist/cli/commands/init.d.ts +14 -0
  56. package/dist/cli/commands/init.d.ts.map +1 -0
  57. package/dist/cli/commands/init.js +347 -0
  58. package/dist/cli/commands/init.js.map +1 -0
  59. package/dist/cli/commands/integration/delete.d.ts +13 -0
  60. package/dist/cli/commands/integration/delete.d.ts.map +1 -0
  61. package/dist/cli/commands/integration/delete.js +140 -0
  62. package/dist/cli/commands/integration/delete.js.map +1 -0
  63. package/dist/cli/commands/integration/index.d.ts +13 -0
  64. package/dist/cli/commands/integration/index.d.ts.map +1 -0
  65. package/dist/cli/commands/integration/index.js +20 -0
  66. package/dist/cli/commands/integration/index.js.map +1 -0
  67. package/dist/cli/commands/integration/list.d.ts +13 -0
  68. package/dist/cli/commands/integration/list.d.ts.map +1 -0
  69. package/dist/cli/commands/integration/list.js +129 -0
  70. package/dist/cli/commands/integration/list.js.map +1 -0
  71. package/dist/cli/commands/integration/set.d.ts +13 -0
  72. package/dist/cli/commands/integration/set.d.ts.map +1 -0
  73. package/dist/cli/commands/integration/set.js +253 -0
  74. package/dist/cli/commands/integration/set.js.map +1 -0
  75. package/dist/cli/commands/list/executions.d.ts +12 -0
  76. package/dist/cli/commands/list/executions.d.ts.map +1 -0
  77. package/dist/cli/commands/list/executions.js +168 -0
  78. package/dist/cli/commands/list/executions.js.map +1 -0
  79. package/dist/cli/commands/list/index.d.ts +11 -0
  80. package/dist/cli/commands/list/index.d.ts.map +1 -0
  81. package/dist/cli/commands/list/index.js +14 -0
  82. package/dist/cli/commands/list/index.js.map +1 -0
  83. package/dist/cli/commands/logout.d.ts +12 -0
  84. package/dist/cli/commands/logout.d.ts.map +1 -0
  85. package/dist/cli/commands/logout.js +58 -0
  86. package/dist/cli/commands/logout.js.map +1 -0
  87. package/dist/cli/commands/project/create.d.ts +8 -0
  88. package/dist/cli/commands/project/create.d.ts.map +1 -0
  89. package/dist/cli/commands/project/create.js +109 -0
  90. package/dist/cli/commands/project/create.js.map +1 -0
  91. package/dist/cli/commands/project/index.d.ts +12 -0
  92. package/dist/cli/commands/project/index.d.ts.map +1 -0
  93. package/dist/cli/commands/project/index.js +15 -0
  94. package/dist/cli/commands/project/index.js.map +1 -0
  95. package/dist/cli/commands/publish.d.ts +12 -0
  96. package/dist/cli/commands/publish.d.ts.map +1 -0
  97. package/dist/cli/commands/publish.js +152 -0
  98. package/dist/cli/commands/publish.js.map +1 -0
  99. package/dist/cli/commands/redeploy.d.ts +11 -0
  100. package/dist/cli/commands/redeploy.d.ts.map +1 -0
  101. package/dist/cli/commands/redeploy.js +166 -0
  102. package/dist/cli/commands/redeploy.js.map +1 -0
  103. package/dist/cli/commands/status.d.ts +63 -0
  104. package/dist/cli/commands/status.d.ts.map +1 -0
  105. package/dist/cli/commands/status.js +290 -0
  106. package/dist/cli/commands/status.js.map +1 -0
  107. package/dist/cli/commands/trigger.d.ts +8 -0
  108. package/dist/cli/commands/trigger.d.ts.map +1 -0
  109. package/dist/cli/commands/trigger.js +247 -0
  110. package/dist/cli/commands/trigger.js.map +1 -0
  111. package/dist/cli/commands/use.d.ts +13 -0
  112. package/dist/cli/commands/use.d.ts.map +1 -0
  113. package/dist/cli/commands/use.js +92 -0
  114. package/dist/cli/commands/use.js.map +1 -0
  115. package/dist/cli/commands/verify/index.d.ts +13 -0
  116. package/dist/cli/commands/verify/index.d.ts.map +1 -0
  117. package/dist/cli/commands/verify/index.js +18 -0
  118. package/dist/cli/commands/verify/index.js.map +1 -0
  119. package/dist/cli/commands/verify/use-case.d.ts +23 -0
  120. package/dist/cli/commands/verify/use-case.d.ts.map +1 -0
  121. package/dist/cli/commands/verify/use-case.js +94 -0
  122. package/dist/cli/commands/verify/use-case.js.map +1 -0
  123. package/dist/cli/commands/verify/workflow.d.ts +22 -0
  124. package/dist/cli/commands/verify/workflow.d.ts.map +1 -0
  125. package/dist/cli/commands/verify/workflow.js +82 -0
  126. package/dist/cli/commands/verify/workflow.js.map +1 -0
  127. package/dist/cli/commands/whoami.d.ts +13 -0
  128. package/dist/cli/commands/whoami.d.ts.map +1 -0
  129. package/dist/cli/commands/whoami.js +126 -0
  130. package/dist/cli/commands/whoami.js.map +1 -0
  131. package/dist/cli/index.d.ts +24 -0
  132. package/dist/cli/index.d.ts.map +1 -0
  133. package/dist/cli/index.js +90 -0
  134. package/dist/cli/index.js.map +1 -0
  135. package/dist/cli/templates/claude-md-template.d.ts +12 -0
  136. package/dist/cli/templates/claude-md-template.d.ts.map +1 -0
  137. package/dist/cli/templates/claude-md-template.js +162 -0
  138. package/dist/cli/templates/claude-md-template.js.map +1 -0
  139. package/dist/cli/templates/config-template.d.ts +18 -0
  140. package/dist/cli/templates/config-template.d.ts.map +1 -0
  141. package/dist/cli/templates/config-template.js +350 -0
  142. package/dist/cli/templates/config-template.js.map +1 -0
  143. package/dist/cli/templates/skill-templates.d.ts +24 -0
  144. package/dist/cli/templates/skill-templates.d.ts.map +1 -0
  145. package/dist/cli/templates/skill-templates.js +117 -0
  146. package/dist/cli/templates/skill-templates.js.map +1 -0
  147. package/dist/cli/templates/slug.d.ts +9 -0
  148. package/dist/cli/templates/slug.d.ts.map +1 -0
  149. package/dist/cli/templates/slug.js +17 -0
  150. package/dist/cli/templates/slug.js.map +1 -0
  151. package/dist/cli/templates/workflow-templates.d.ts +693 -0
  152. package/dist/cli/templates/workflow-templates.d.ts.map +1 -0
  153. package/dist/cli/templates/workflow-templates.js +516 -0
  154. package/dist/cli/templates/workflow-templates.js.map +1 -0
  155. package/dist/cli/utils/output.d.ts +65 -0
  156. package/dist/cli/utils/output.d.ts.map +1 -0
  157. package/dist/cli/utils/output.js +188 -0
  158. package/dist/cli/utils/output.js.map +1 -0
  159. package/dist/cli/utils/validation-output.d.ts +21 -0
  160. package/dist/cli/utils/validation-output.d.ts.map +1 -0
  161. package/dist/cli/utils/validation-output.js +204 -0
  162. package/dist/cli/utils/validation-output.js.map +1 -0
  163. package/dist/data/integration-fields.d.ts +27 -0
  164. package/dist/data/integration-fields.d.ts.map +1 -0
  165. package/dist/data/integration-fields.js +361 -0
  166. package/dist/data/integration-fields.js.map +1 -0
  167. package/dist/index.d.ts +25 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +39 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/types/process-types.d.ts +740 -0
  172. package/dist/types/process-types.d.ts.map +1 -0
  173. package/dist/types/process-types.js +22 -0
  174. package/dist/types/process-types.js.map +1 -0
  175. package/dist/utils/config.d.ts +127 -0
  176. package/dist/utils/config.d.ts.map +1 -0
  177. package/dist/utils/config.js +315 -0
  178. package/dist/utils/config.js.map +1 -0
  179. package/dist/utils/data-ingestion-deploy-client.d.ts +53 -0
  180. package/dist/utils/data-ingestion-deploy-client.d.ts.map +1 -0
  181. package/dist/utils/data-ingestion-deploy-client.js +63 -0
  182. package/dist/utils/data-ingestion-deploy-client.js.map +1 -0
  183. package/dist/utils/data-ingestion-deployer.d.ts +78 -0
  184. package/dist/utils/data-ingestion-deployer.d.ts.map +1 -0
  185. package/dist/utils/data-ingestion-deployer.js +119 -0
  186. package/dist/utils/data-ingestion-deployer.js.map +1 -0
  187. package/dist/utils/deploy-client.d.ts +55 -0
  188. package/dist/utils/deploy-client.d.ts.map +1 -0
  189. package/dist/utils/deploy-client.js +73 -0
  190. package/dist/utils/deploy-client.js.map +1 -0
  191. package/dist/utils/deployment-archiver.d.ts +110 -0
  192. package/dist/utils/deployment-archiver.d.ts.map +1 -0
  193. package/dist/utils/deployment-archiver.js +158 -0
  194. package/dist/utils/deployment-archiver.js.map +1 -0
  195. package/dist/utils/document-deploy-client.d.ts +41 -0
  196. package/dist/utils/document-deploy-client.d.ts.map +1 -0
  197. package/dist/utils/document-deploy-client.js +46 -0
  198. package/dist/utils/document-deploy-client.js.map +1 -0
  199. package/dist/utils/encryption.d.ts +85 -0
  200. package/dist/utils/encryption.d.ts.map +1 -0
  201. package/dist/utils/encryption.js +162 -0
  202. package/dist/utils/encryption.js.map +1 -0
  203. package/dist/utils/execution-client.d.ts +71 -0
  204. package/dist/utils/execution-client.d.ts.map +1 -0
  205. package/dist/utils/execution-client.js +56 -0
  206. package/dist/utils/execution-client.js.map +1 -0
  207. package/dist/utils/integration-client.d.ts +134 -0
  208. package/dist/utils/integration-client.d.ts.map +1 -0
  209. package/dist/utils/integration-client.js +109 -0
  210. package/dist/utils/integration-client.js.map +1 -0
  211. package/dist/utils/list-executions-client.d.ts +47 -0
  212. package/dist/utils/list-executions-client.d.ts.map +1 -0
  213. package/dist/utils/list-executions-client.js +50 -0
  214. package/dist/utils/list-executions-client.js.map +1 -0
  215. package/dist/utils/metadata-client.d.ts +90 -0
  216. package/dist/utils/metadata-client.d.ts.map +1 -0
  217. package/dist/utils/metadata-client.js +66 -0
  218. package/dist/utils/metadata-client.js.map +1 -0
  219. package/dist/utils/project-client.d.ts +70 -0
  220. package/dist/utils/project-client.d.ts.map +1 -0
  221. package/dist/utils/project-client.js +63 -0
  222. package/dist/utils/project-client.js.map +1 -0
  223. package/dist/utils/project-json.d.ts +71 -0
  224. package/dist/utils/project-json.d.ts.map +1 -0
  225. package/dist/utils/project-json.js +129 -0
  226. package/dist/utils/project-json.js.map +1 -0
  227. package/dist/utils/publish-client.d.ts +53 -0
  228. package/dist/utils/publish-client.d.ts.map +1 -0
  229. package/dist/utils/publish-client.js +64 -0
  230. package/dist/utils/publish-client.js.map +1 -0
  231. package/dist/utils/redeploy-client.d.ts +39 -0
  232. package/dist/utils/redeploy-client.d.ts.map +1 -0
  233. package/dist/utils/redeploy-client.js +51 -0
  234. package/dist/utils/redeploy-client.js.map +1 -0
  235. package/dist/utils/skill-parser.d.ts +52 -0
  236. package/dist/utils/skill-parser.d.ts.map +1 -0
  237. package/dist/utils/skill-parser.js +127 -0
  238. package/dist/utils/skill-parser.js.map +1 -0
  239. package/dist/utils/skills-client.d.ts +39 -0
  240. package/dist/utils/skills-client.d.ts.map +1 -0
  241. package/dist/utils/skills-client.js +32 -0
  242. package/dist/utils/skills-client.js.map +1 -0
  243. package/dist/utils/trigger-client.d.ts +78 -0
  244. package/dist/utils/trigger-client.d.ts.map +1 -0
  245. package/dist/utils/trigger-client.js +81 -0
  246. package/dist/utils/trigger-client.js.map +1 -0
  247. package/dist/utils/use-case-deployer.d.ts +93 -0
  248. package/dist/utils/use-case-deployer.d.ts.map +1 -0
  249. package/dist/utils/use-case-deployer.js +270 -0
  250. package/dist/utils/use-case-deployer.js.map +1 -0
  251. package/dist/utils/version-manager.d.ts +63 -0
  252. package/dist/utils/version-manager.d.ts.map +1 -0
  253. package/dist/utils/version-manager.js +91 -0
  254. package/dist/utils/version-manager.js.map +1 -0
  255. package/dist/utils/workflow-encoding.d.ts +26 -0
  256. package/dist/utils/workflow-encoding.d.ts.map +1 -0
  257. package/dist/utils/workflow-encoding.js +41 -0
  258. package/dist/utils/workflow-encoding.js.map +1 -0
  259. package/dist/validation/fixer.d.ts +56 -0
  260. package/dist/validation/fixer.d.ts.map +1 -0
  261. package/dist/validation/fixer.js +168 -0
  262. package/dist/validation/fixer.js.map +1 -0
  263. package/dist/validation/rules/codika-init-required.d.ts +18 -0
  264. package/dist/validation/rules/codika-init-required.d.ts.map +1 -0
  265. package/dist/validation/rules/codika-init-required.js +70 -0
  266. package/dist/validation/rules/codika-init-required.js.map +1 -0
  267. package/dist/validation/rules/codika-submit-result.d.ts +22 -0
  268. package/dist/validation/rules/codika-submit-result.d.ts.map +1 -0
  269. package/dist/validation/rules/codika-submit-result.js +144 -0
  270. package/dist/validation/rules/codika-submit-result.js.map +1 -0
  271. package/dist/validation/rules/error-branch-required.d.ts +24 -0
  272. package/dist/validation/rules/error-branch-required.d.ts.map +1 -0
  273. package/dist/validation/rules/error-branch-required.js +103 -0
  274. package/dist/validation/rules/error-branch-required.js.map +1 -0
  275. package/dist/validation/rules/index.d.ts +18 -0
  276. package/dist/validation/rules/index.d.ts.map +1 -0
  277. package/dist/validation/rules/index.js +28 -0
  278. package/dist/validation/rules/index.js.map +1 -0
  279. package/dist/validation/rules/schedule-webhook-convergence.d.ts +24 -0
  280. package/dist/validation/rules/schedule-webhook-convergence.d.ts.map +1 -0
  281. package/dist/validation/rules/schedule-webhook-convergence.js +129 -0
  282. package/dist/validation/rules/schedule-webhook-convergence.js.map +1 -0
  283. package/dist/validation/rules/subworkflow-min-params.d.ts +21 -0
  284. package/dist/validation/rules/subworkflow-min-params.d.ts.map +1 -0
  285. package/dist/validation/rules/subworkflow-min-params.js +84 -0
  286. package/dist/validation/rules/subworkflow-min-params.js.map +1 -0
  287. package/dist/validation/runner.d.ts +43 -0
  288. package/dist/validation/runner.d.ts.map +1 -0
  289. package/dist/validation/runner.js +335 -0
  290. package/dist/validation/runner.js.map +1 -0
  291. package/dist/validation/types.d.ts +155 -0
  292. package/dist/validation/types.d.ts.map +1 -0
  293. package/dist/validation/types.js +8 -0
  294. package/dist/validation/types.js.map +1 -0
  295. package/dist/validation/use-case-scripts/calledby-consistency.d.ts +23 -0
  296. package/dist/validation/use-case-scripts/calledby-consistency.d.ts.map +1 -0
  297. package/dist/validation/use-case-scripts/calledby-consistency.js +236 -0
  298. package/dist/validation/use-case-scripts/calledby-consistency.js.map +1 -0
  299. package/dist/validation/use-case-scripts/config-exports.d.ts +17 -0
  300. package/dist/validation/use-case-scripts/config-exports.d.ts.map +1 -0
  301. package/dist/validation/use-case-scripts/config-exports.js +93 -0
  302. package/dist/validation/use-case-scripts/config-exports.js.map +1 -0
  303. package/dist/validation/use-case-scripts/custom-integration-schema.d.ts +21 -0
  304. package/dist/validation/use-case-scripts/custom-integration-schema.d.ts.map +1 -0
  305. package/dist/validation/use-case-scripts/custom-integration-schema.js +378 -0
  306. package/dist/validation/use-case-scripts/custom-integration-schema.js.map +1 -0
  307. package/dist/validation/use-case-scripts/index.d.ts +27 -0
  308. package/dist/validation/use-case-scripts/index.d.ts.map +1 -0
  309. package/dist/validation/use-case-scripts/index.js +52 -0
  310. package/dist/validation/use-case-scripts/index.js.map +1 -0
  311. package/dist/validation/use-case-scripts/integration-inheritance.d.ts +35 -0
  312. package/dist/validation/use-case-scripts/integration-inheritance.d.ts.map +1 -0
  313. package/dist/validation/use-case-scripts/integration-inheritance.js +348 -0
  314. package/dist/validation/use-case-scripts/integration-inheritance.js.map +1 -0
  315. package/dist/validation/use-case-scripts/schema-types.d.ts +21 -0
  316. package/dist/validation/use-case-scripts/schema-types.d.ts.map +1 -0
  317. package/dist/validation/use-case-scripts/schema-types.js +134 -0
  318. package/dist/validation/use-case-scripts/schema-types.js.map +1 -0
  319. package/dist/validation/use-case-scripts/skill-consistency.d.ts +21 -0
  320. package/dist/validation/use-case-scripts/skill-consistency.d.ts.map +1 -0
  321. package/dist/validation/use-case-scripts/skill-consistency.js +180 -0
  322. package/dist/validation/use-case-scripts/skill-consistency.js.map +1 -0
  323. package/dist/validation/use-case-scripts/subworkflow-references.d.ts +22 -0
  324. package/dist/validation/use-case-scripts/subworkflow-references.d.ts.map +1 -0
  325. package/dist/validation/use-case-scripts/subworkflow-references.js +139 -0
  326. package/dist/validation/use-case-scripts/subworkflow-references.js.map +1 -0
  327. package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts +25 -0
  328. package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts.map +1 -0
  329. package/dist/validation/use-case-scripts/trigger-type-consistency.js +265 -0
  330. package/dist/validation/use-case-scripts/trigger-type-consistency.js.map +1 -0
  331. package/dist/validation/use-case-scripts/trigger-types.d.ts +20 -0
  332. package/dist/validation/use-case-scripts/trigger-types.d.ts.map +1 -0
  333. package/dist/validation/use-case-scripts/trigger-types.js +177 -0
  334. package/dist/validation/use-case-scripts/trigger-types.js.map +1 -0
  335. package/dist/validation/use-case-scripts/triggers-required.d.ts +23 -0
  336. package/dist/validation/use-case-scripts/triggers-required.d.ts.map +1 -0
  337. package/dist/validation/use-case-scripts/triggers-required.js +111 -0
  338. package/dist/validation/use-case-scripts/triggers-required.js.map +1 -0
  339. package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts +28 -0
  340. package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts.map +1 -0
  341. package/dist/validation/use-case-scripts/webhook-path-consistency.js +288 -0
  342. package/dist/validation/use-case-scripts/webhook-path-consistency.js.map +1 -0
  343. package/dist/validation/use-case-scripts/workflow-imports.d.ts +16 -0
  344. package/dist/validation/use-case-scripts/workflow-imports.d.ts.map +1 -0
  345. package/dist/validation/use-case-scripts/workflow-imports.js +206 -0
  346. package/dist/validation/use-case-scripts/workflow-imports.js.map +1 -0
  347. package/dist/validation/workflow-scripts/credential-placeholders.d.ts +21 -0
  348. package/dist/validation/workflow-scripts/credential-placeholders.d.ts.map +1 -0
  349. package/dist/validation/workflow-scripts/credential-placeholders.js +278 -0
  350. package/dist/validation/workflow-scripts/credential-placeholders.js.map +1 -0
  351. package/dist/validation/workflow-scripts/db-always-output.d.ts +16 -0
  352. package/dist/validation/workflow-scripts/db-always-output.d.ts.map +1 -0
  353. package/dist/validation/workflow-scripts/db-always-output.js +95 -0
  354. package/dist/validation/workflow-scripts/db-always-output.js.map +1 -0
  355. package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts +15 -0
  356. package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts.map +1 -0
  357. package/dist/validation/workflow-scripts/exec-workflow-wait.js +85 -0
  358. package/dist/validation/workflow-scripts/exec-workflow-wait.js.map +1 -0
  359. package/dist/validation/workflow-scripts/index.d.ts +31 -0
  360. package/dist/validation/workflow-scripts/index.d.ts.map +1 -0
  361. package/dist/validation/workflow-scripts/index.js +58 -0
  362. package/dist/validation/workflow-scripts/index.js.map +1 -0
  363. package/dist/validation/workflow-scripts/instparm-quoting.d.ts +21 -0
  364. package/dist/validation/workflow-scripts/instparm-quoting.d.ts.map +1 -0
  365. package/dist/validation/workflow-scripts/instparm-quoting.js +59 -0
  366. package/dist/validation/workflow-scripts/instparm-quoting.js.map +1 -0
  367. package/dist/validation/workflow-scripts/llm-model-id.d.ts +17 -0
  368. package/dist/validation/workflow-scripts/llm-model-id.d.ts.map +1 -0
  369. package/dist/validation/workflow-scripts/llm-model-id.js +171 -0
  370. package/dist/validation/workflow-scripts/llm-model-id.js.map +1 -0
  371. package/dist/validation/workflow-scripts/llm-output-access.d.ts +23 -0
  372. package/dist/validation/workflow-scripts/llm-output-access.d.ts.map +1 -0
  373. package/dist/validation/workflow-scripts/llm-output-access.js +274 -0
  374. package/dist/validation/workflow-scripts/llm-output-access.js.map +1 -0
  375. package/dist/validation/workflow-scripts/merge-before-terminal.d.ts +20 -0
  376. package/dist/validation/workflow-scripts/merge-before-terminal.d.ts.map +1 -0
  377. package/dist/validation/workflow-scripts/merge-before-terminal.js +87 -0
  378. package/dist/validation/workflow-scripts/merge-before-terminal.js.map +1 -0
  379. package/dist/validation/workflow-scripts/placeholder-syntax.d.ts +29 -0
  380. package/dist/validation/workflow-scripts/placeholder-syntax.d.ts.map +1 -0
  381. package/dist/validation/workflow-scripts/placeholder-syntax.js +154 -0
  382. package/dist/validation/workflow-scripts/placeholder-syntax.js.map +1 -0
  383. package/dist/validation/workflow-scripts/retry-backoff.d.ts +16 -0
  384. package/dist/validation/workflow-scripts/retry-backoff.d.ts.map +1 -0
  385. package/dist/validation/workflow-scripts/retry-backoff.js +197 -0
  386. package/dist/validation/workflow-scripts/retry-backoff.js.map +1 -0
  387. package/dist/validation/workflow-scripts/webhook-id.d.ts +17 -0
  388. package/dist/validation/workflow-scripts/webhook-id.d.ts.map +1 -0
  389. package/dist/validation/workflow-scripts/webhook-id.js +79 -0
  390. package/dist/validation/workflow-scripts/webhook-id.js.map +1 -0
  391. package/dist/validation/workflow-scripts/workflow-format.d.ts +16 -0
  392. package/dist/validation/workflow-scripts/workflow-format.d.ts.map +1 -0
  393. package/dist/validation/workflow-scripts/workflow-format.js +51 -0
  394. package/dist/validation/workflow-scripts/workflow-format.js.map +1 -0
  395. package/dist/validation/workflow-scripts/workflow-sanitization.d.ts +21 -0
  396. package/dist/validation/workflow-scripts/workflow-sanitization.d.ts.map +1 -0
  397. package/dist/validation/workflow-scripts/workflow-sanitization.js +78 -0
  398. package/dist/validation/workflow-scripts/workflow-sanitization.js.map +1 -0
  399. package/dist/validation/workflow-scripts/workflow-settings.d.ts +19 -0
  400. package/dist/validation/workflow-scripts/workflow-settings.d.ts.map +1 -0
  401. package/dist/validation/workflow-scripts/workflow-settings.js +131 -0
  402. package/dist/validation/workflow-scripts/workflow-settings.js.map +1 -0
  403. package/package.json +64 -0
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Validation Runner
3
+ *
4
+ * Central orchestrator that runs all validation:
5
+ * - Flowlint core rules (static analysis)
6
+ * - Custom Codika rules (graph-based)
7
+ * - Workflow scripts (content-based checks)
8
+ * - Use-case scripts (folder-based checks)
9
+ */
10
+ import type { ValidationResult, WorkflowValidationOptions, UseCaseValidationOptions } from './types.js';
11
+ /**
12
+ * Default rules to exclude from validation.
13
+ * These are Flowlint rules that produce false positives for Codika workflows.
14
+ *
15
+ * R3 - Idempotency guard: False positive for LangChain parser/transform nodes
16
+ * that don't perform mutations (e.g., outputParserStructured)
17
+ *
18
+ * Add more rules here as needed:
19
+ * R5 - No outgoing connections: Expected for terminal nodes (Submit/Error)
20
+ * R8 - Data never reaches consumer: False positive for LangChain sub-nodes
21
+ */
22
+ /**
23
+ * Override severity for specific rules.
24
+ * Flowlint-core rules have hardcoded severity we can't change at source.
25
+ */
26
+ export declare const SEVERITY_OVERRIDES: Record<string, 'must' | 'should' | 'nit'>;
27
+ export declare const DEFAULT_EXCLUDED_RULES: string[];
28
+ /**
29
+ * Validate a single workflow JSON file
30
+ */
31
+ export declare function validateWorkflow(options: WorkflowValidationOptions): Promise<ValidationResult>;
32
+ /**
33
+ * Validate an entire use-case folder
34
+ */
35
+ export declare function validateUseCase(options: UseCaseValidationOptions): Promise<ValidationResult>;
36
+ /**
37
+ * Get list of all available rules (for --rules flag help)
38
+ */
39
+ export declare function getAvailableRules(): {
40
+ id: string;
41
+ description: string;
42
+ }[];
43
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/validation/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAEV,gBAAgB,EAEhB,yBAAyB,EACzB,wBAAwB,EAEzB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;GAUG;AACH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAExE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAW1C,CAAC;AA4CF;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAgJ3B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAyH3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,CAQzE"}
@@ -0,0 +1,335 @@
1
+ /**
2
+ * Validation Runner
3
+ *
4
+ * Central orchestrator that runs all validation:
5
+ * - Flowlint core rules (static analysis)
6
+ * - Custom Codika rules (graph-based)
7
+ * - Workflow scripts (content-based checks)
8
+ * - Use-case scripts (folder-based checks)
9
+ */
10
+ import { readFileSync, existsSync, readdirSync } from 'fs';
11
+ import { join, resolve, basename } from 'path';
12
+ import { parseN8n, runAllRules as runFlowlintRules, defaultConfig, } from '@replikanti/flowlint-core';
13
+ import { customRules } from './rules/index.js';
14
+ import { workflowScripts } from './workflow-scripts/index.js';
15
+ import { useCaseScripts } from './use-case-scripts/index.js';
16
+ import { applyFixes, groupFindingsByFile } from './fixer.js';
17
+ /**
18
+ * Default rules to exclude from validation.
19
+ * These are Flowlint rules that produce false positives for Codika workflows.
20
+ *
21
+ * R3 - Idempotency guard: False positive for LangChain parser/transform nodes
22
+ * that don't perform mutations (e.g., outputParserStructured)
23
+ *
24
+ * Add more rules here as needed:
25
+ * R5 - No outgoing connections: Expected for terminal nodes (Submit/Error)
26
+ * R8 - Data never reaches consumer: False positive for LangChain sub-nodes
27
+ */
28
+ /**
29
+ * Override severity for specific rules.
30
+ * Flowlint-core rules have hardcoded severity we can't change at source.
31
+ */
32
+ export const SEVERITY_OVERRIDES = {
33
+ // Add severity overrides here as needed
34
+ };
35
+ export const DEFAULT_EXCLUDED_RULES = [
36
+ 'R1', // Retry/backoff - replaced by custom RETRY-BACKOFF script with auto-fix
37
+ 'R2', // continueOnFail - legitimate pattern for non-critical nodes (logging, analytics)
38
+ 'R3', // Idempotency guard - false positive for parser nodes
39
+ 'R4', // Hardcoded secrets - false positives on param names; CRED-PLACEHOLDER handles this properly
40
+ 'R5', // No outgoing connections - false positive for Codika Submit/Report Error terminal nodes
41
+ 'R7', // Error path audit - global errorWorkflow handles this
42
+ 'R9', // Env-specific literals - false positives on JS comments, workflow names; CRED-PLACEHOLDER + PLACEHOLDER-SYNTAX cover real cases
43
+ 'R8', // Data never reaches consumer - false positive for Codika Init/Submit/Report data sinks
44
+ 'R11', // Deprecated node type - false positive for executeWorkflow v1.3 which is current
45
+ 'R12', // Unhandled error path - Codika workflows use a global errorWorkflow for error handling
46
+ ];
47
+ /**
48
+ * Calculate summary from findings
49
+ */
50
+ function calculateSummary(findings) {
51
+ return {
52
+ must: findings.filter(f => f.severity === 'must').length,
53
+ should: findings.filter(f => f.severity === 'should').length,
54
+ nit: findings.filter(f => f.severity === 'nit').length,
55
+ fixable: findings.filter(f => f.fixable).length,
56
+ };
57
+ }
58
+ /**
59
+ * Filter findings by rule IDs if specified (include list)
60
+ */
61
+ function filterByRules(findings, rules) {
62
+ if (!rules || rules.length === 0) {
63
+ return findings;
64
+ }
65
+ const ruleSet = new Set(rules.map(r => r.toUpperCase()));
66
+ return findings.filter(f => ruleSet.has(f.rule.toUpperCase()));
67
+ }
68
+ /**
69
+ * Filter out findings by rule IDs (exclude list)
70
+ * Combines user-provided excludeRules with DEFAULT_EXCLUDED_RULES
71
+ */
72
+ function excludeByRules(findings, excludeRules) {
73
+ // Combine default excluded rules with user-provided ones
74
+ const allExcluded = [
75
+ ...DEFAULT_EXCLUDED_RULES,
76
+ ...(excludeRules || []),
77
+ ];
78
+ if (allExcluded.length === 0) {
79
+ return findings;
80
+ }
81
+ const excludeSet = new Set(allExcluded.map(r => r.toUpperCase()));
82
+ return findings.filter(f => !excludeSet.has(f.rule.toUpperCase()));
83
+ }
84
+ /**
85
+ * Validate a single workflow JSON file
86
+ */
87
+ export async function validateWorkflow(options) {
88
+ const absolutePath = resolve(options.path);
89
+ const findings = [];
90
+ const filesValidated = [absolutePath];
91
+ // Check file exists
92
+ if (!existsSync(absolutePath)) {
93
+ findings.push({
94
+ rule: 'FILE-001',
95
+ severity: 'must',
96
+ path: absolutePath,
97
+ message: `Workflow file does not exist: ${absolutePath}`,
98
+ raw_details: 'Check the file path is correct.',
99
+ });
100
+ return {
101
+ valid: false,
102
+ findings,
103
+ summary: calculateSummary(findings),
104
+ filesValidated,
105
+ };
106
+ }
107
+ // Read file content
108
+ let content;
109
+ try {
110
+ content = readFileSync(absolutePath, 'utf-8');
111
+ }
112
+ catch (error) {
113
+ findings.push({
114
+ rule: 'FILE-002',
115
+ severity: 'must',
116
+ path: absolutePath,
117
+ message: `Failed to read workflow file: ${error.message}`,
118
+ raw_details: 'Check file permissions and encoding.',
119
+ });
120
+ return {
121
+ valid: false,
122
+ findings,
123
+ summary: calculateSummary(findings),
124
+ filesValidated,
125
+ };
126
+ }
127
+ // Parse and validate JSON
128
+ let graph;
129
+ try {
130
+ graph = parseN8n(content);
131
+ }
132
+ catch (error) {
133
+ findings.push({
134
+ rule: 'JSON-001',
135
+ severity: 'must',
136
+ path: absolutePath,
137
+ message: `Invalid workflow JSON: ${error.message}`,
138
+ raw_details: 'Ensure the file contains valid JSON with proper n8n workflow structure.',
139
+ });
140
+ return {
141
+ valid: false,
142
+ findings,
143
+ summary: calculateSummary(findings),
144
+ filesValidated,
145
+ };
146
+ }
147
+ // Run Flowlint core rules
148
+ const coreFindings = runFlowlintRules(graph, { cfg: defaultConfig, path: absolutePath });
149
+ findings.push(...coreFindings);
150
+ // Run custom Codika rules
151
+ for (const rule of customRules) {
152
+ try {
153
+ const ruleFindings = rule(graph, { cfg: defaultConfig, path: absolutePath });
154
+ findings.push(...ruleFindings);
155
+ }
156
+ catch (error) {
157
+ findings.push({
158
+ rule: 'RULE-ERR',
159
+ severity: 'nit',
160
+ path: absolutePath,
161
+ message: `Custom rule error: ${error.message}`,
162
+ });
163
+ }
164
+ }
165
+ // Run workflow scripts (content-based checks)
166
+ for (const script of workflowScripts) {
167
+ try {
168
+ const scriptFindings = script(content, absolutePath);
169
+ findings.push(...scriptFindings);
170
+ }
171
+ catch (error) {
172
+ findings.push({
173
+ rule: 'SCRIPT-ERR',
174
+ severity: 'nit',
175
+ path: absolutePath,
176
+ message: `Workflow script error: ${error.message}`,
177
+ });
178
+ }
179
+ }
180
+ // Filter by rules if specified (include list)
181
+ let filteredFindings = filterByRules(findings, options.rules);
182
+ // Exclude rules if specified (exclude list)
183
+ filteredFindings = excludeByRules(filteredFindings, options.excludeRules);
184
+ // Apply severity overrides (before strict mode so --strict can re-promote)
185
+ filteredFindings = filteredFindings.map(f => {
186
+ const override = SEVERITY_OVERRIDES[f.rule.toUpperCase()];
187
+ return override ? { ...f, severity: override } : f;
188
+ });
189
+ // Apply strict mode
190
+ if (options.strict) {
191
+ filteredFindings = filteredFindings.map(f => f.severity === 'should' ? { ...f, severity: 'must' } : f);
192
+ }
193
+ // Handle auto-fix
194
+ if (options.fix || options.dryRun) {
195
+ const fixResult = applyFixes(absolutePath, filteredFindings, {
196
+ dryRun: options.dryRun,
197
+ });
198
+ if (fixResult.applied > 0 && !options.dryRun) {
199
+ // Remove fixed findings from the list
200
+ const fixedRules = new Set(filteredFindings.filter(f => f.fixable && f.fix).map(f => f.rule));
201
+ filteredFindings = filteredFindings.filter(f => !f.fixable || !fixedRules.has(f.rule));
202
+ }
203
+ }
204
+ const summary = calculateSummary(filteredFindings);
205
+ const valid = summary.must === 0;
206
+ return {
207
+ valid,
208
+ findings: filteredFindings,
209
+ summary,
210
+ filesValidated,
211
+ };
212
+ }
213
+ /**
214
+ * Validate an entire use-case folder
215
+ */
216
+ export async function validateUseCase(options) {
217
+ const absolutePath = resolve(options.path);
218
+ const findings = [];
219
+ const filesValidated = [];
220
+ // Check folder exists
221
+ if (!existsSync(absolutePath)) {
222
+ findings.push({
223
+ rule: 'FOLDER-001',
224
+ severity: 'must',
225
+ path: absolutePath,
226
+ message: `Use-case folder does not exist: ${absolutePath}`,
227
+ raw_details: 'Check the folder path is correct.',
228
+ });
229
+ return {
230
+ valid: false,
231
+ findings,
232
+ summary: calculateSummary(findings),
233
+ filesValidated,
234
+ };
235
+ }
236
+ // Run use-case scripts
237
+ for (const script of useCaseScripts) {
238
+ try {
239
+ const scriptFindings = await script(absolutePath);
240
+ findings.push(...scriptFindings);
241
+ }
242
+ catch (error) {
243
+ findings.push({
244
+ rule: 'SCRIPT-ERR',
245
+ severity: 'nit',
246
+ path: absolutePath,
247
+ message: `Use-case script error: ${error.message}`,
248
+ });
249
+ }
250
+ }
251
+ // Apply fixes to use-case-level findings (e.g., INTEGRATION-INHERITANCE modifies config.ts)
252
+ if (options.fix) {
253
+ const useCaseFixable = findings.filter(f => f.fixable && f.fix);
254
+ if (useCaseFixable.length > 0) {
255
+ const grouped = groupFindingsByFile(useCaseFixable);
256
+ for (const [filePath, fileFindings] of grouped) {
257
+ const fixResult = applyFixes(filePath, fileFindings, {
258
+ dryRun: options.dryRun,
259
+ });
260
+ if (fixResult.applied > 0) {
261
+ // Remove fixed findings from the list
262
+ const fixedRules = new Set(fileFindings.filter(f => f.fixable).map(f => `${f.rule}:${f.path}:${f.message}`));
263
+ const before = findings.length;
264
+ for (let i = findings.length - 1; i >= 0; i--) {
265
+ const key = `${findings[i].rule}:${findings[i].path}:${findings[i].message}`;
266
+ if (fixedRules.has(key)) {
267
+ findings.splice(i, 1);
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ // Validate individual workflows unless skipped
275
+ if (!options.skipWorkflows) {
276
+ const workflowsPath = join(absolutePath, 'workflows');
277
+ if (existsSync(workflowsPath)) {
278
+ const workflowFiles = readdirSync(workflowsPath)
279
+ .filter(f => f.endsWith('.json'));
280
+ for (const workflowFile of workflowFiles) {
281
+ const workflowPath = join(workflowsPath, workflowFile);
282
+ filesValidated.push(workflowPath);
283
+ const workflowResult = await validateWorkflow({
284
+ path: workflowPath,
285
+ strict: options.strict,
286
+ fix: options.fix,
287
+ dryRun: options.dryRun,
288
+ rules: options.rules,
289
+ excludeRules: options.excludeRules,
290
+ });
291
+ // Add workflow findings with context
292
+ for (const finding of workflowResult.findings) {
293
+ findings.push({
294
+ ...finding,
295
+ message: `[${basename(workflowFile)}] ${finding.message}`,
296
+ });
297
+ }
298
+ }
299
+ }
300
+ }
301
+ // Filter by rules if specified (include list)
302
+ let filteredFindings = filterByRules(findings, options.rules);
303
+ // Exclude rules if specified (exclude list)
304
+ filteredFindings = excludeByRules(filteredFindings, options.excludeRules);
305
+ // Apply severity overrides (before strict mode so --strict can re-promote)
306
+ filteredFindings = filteredFindings.map(f => {
307
+ const override = SEVERITY_OVERRIDES[f.rule.toUpperCase()];
308
+ return override ? { ...f, severity: override } : f;
309
+ });
310
+ // Apply strict mode
311
+ if (options.strict) {
312
+ filteredFindings = filteredFindings.map(f => f.severity === 'should' ? { ...f, severity: 'must' } : f);
313
+ }
314
+ const summary = calculateSummary(filteredFindings);
315
+ const valid = summary.must === 0;
316
+ return {
317
+ valid,
318
+ findings: filteredFindings,
319
+ summary,
320
+ filesValidated: [absolutePath, ...filesValidated],
321
+ };
322
+ }
323
+ /**
324
+ * Get list of all available rules (for --rules flag help)
325
+ */
326
+ export function getAvailableRules() {
327
+ // This could be expanded to include metadata from all rules
328
+ return [
329
+ { id: 'CODIKA-INIT', description: 'Parent workflows must have Codika Init node' },
330
+ { id: 'CODIKA-SUBMIT', description: 'Workflows must end with Submit Result or Report Error' },
331
+ { id: 'RETRY-BACKOFF', description: 'API/HTTP nodes should have retry configuration (fixable)' },
332
+ // Add more as rules are implemented
333
+ ];
334
+ }
335
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/validation/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Validation Types
3
+ *
4
+ * Unified types for all validation rules, scripts, and results.
5
+ * Extends the Flowlint Finding type with auto-fix support.
6
+ */
7
+ export type { Graph, RuleRunner, RuleContext, NodeRef, Edge, FlowLintConfig, } from '@replikanti/flowlint-core';
8
+ /**
9
+ * Extended Finding type with auto-fix support
10
+ *
11
+ * Compatible with flowlint-core Finding, but adds optional fix capabilities.
12
+ */
13
+ export interface Finding {
14
+ /** Rule ID (e.g., "CODIKA-INIT", "CRED-001", "R1") */
15
+ rule: string;
16
+ /** Severity level - determines exit code behavior */
17
+ severity: 'must' | 'should' | 'nit';
18
+ /** File path where the issue was found */
19
+ path: string;
20
+ /** Human-readable description of the issue */
21
+ message: string;
22
+ /** Detailed instructions on how to fix the issue manually */
23
+ raw_details?: string;
24
+ /** Node ID for workflow node-specific issues */
25
+ nodeId?: string;
26
+ /** Line number in the file where the issue was found */
27
+ line?: number;
28
+ /** URL to documentation about this rule */
29
+ documentationUrl?: string;
30
+ /** Reference to the guide section explaining this rule */
31
+ guideRef?: {
32
+ /** Path relative to .guides/ folder (e.g., 'specific/codika-nodes.md') */
33
+ path: string;
34
+ /** Section title within the guide (e.g., 'Critical Workflow Rules') */
35
+ section?: string;
36
+ };
37
+ /** Quick check if an auto-fix is available */
38
+ fixable?: boolean;
39
+ /** Auto-fix function (ESLint-style) */
40
+ fix?: {
41
+ /** Description of what the fix does */
42
+ description: string;
43
+ /** Transform function that applies the fix to file content */
44
+ apply: (content: string) => string;
45
+ };
46
+ }
47
+ /**
48
+ * Result of applying auto-fixes to a file
49
+ */
50
+ export interface FixResult {
51
+ /** Path to the file that was fixed */
52
+ filePath: string;
53
+ /** Number of fixes successfully applied */
54
+ applied: number;
55
+ /** New file content after fixes (empty if dry-run) */
56
+ content: string;
57
+ /** Findings that would be fixed (populated in dry-run mode) */
58
+ wouldFix?: Finding[];
59
+ }
60
+ /**
61
+ * Summary of validation findings by severity
62
+ */
63
+ export interface FindingSummary {
64
+ /** Number of 'must' severity violations (cause exit code 1) */
65
+ must: number;
66
+ /** Number of 'should' severity warnings */
67
+ should: number;
68
+ /** Number of 'nit' severity suggestions */
69
+ nit: number;
70
+ /** Number of issues that can be auto-fixed */
71
+ fixable: number;
72
+ }
73
+ /**
74
+ * Complete validation result
75
+ */
76
+ export interface ValidationResult {
77
+ /** True if no 'must' severity violations (validation passed) */
78
+ valid: boolean;
79
+ /** All findings from all validators */
80
+ findings: Finding[];
81
+ /** Summary counts by severity */
82
+ summary: FindingSummary;
83
+ /** Files that were validated */
84
+ filesValidated: string[];
85
+ }
86
+ /**
87
+ * Options for workflow validation
88
+ */
89
+ export interface WorkflowValidationOptions {
90
+ /** Path to the workflow JSON file */
91
+ path: string;
92
+ /** Treat 'should' severity as 'must' (stricter validation) */
93
+ strict?: boolean;
94
+ /** Apply available auto-fixes */
95
+ fix?: boolean;
96
+ /** Show what would be fixed without applying changes */
97
+ dryRun?: boolean;
98
+ /** Only run specific rules (by rule ID) */
99
+ rules?: string[];
100
+ /** Exclude specific rules (by rule ID) */
101
+ excludeRules?: string[];
102
+ }
103
+ /**
104
+ * Options for use-case validation
105
+ */
106
+ export interface UseCaseValidationOptions {
107
+ /** Path to the use-case folder */
108
+ path: string;
109
+ /** Treat 'should' severity as 'must' (stricter validation) */
110
+ strict?: boolean;
111
+ /** Skip validation of individual workflow files */
112
+ skipWorkflows?: boolean;
113
+ /** Apply available auto-fixes */
114
+ fix?: boolean;
115
+ /** Show what would be fixed without applying changes */
116
+ dryRun?: boolean;
117
+ /** Only run specific rules (by rule ID) */
118
+ rules?: string[];
119
+ /** Exclude specific rules (by rule ID) */
120
+ excludeRules?: string[];
121
+ }
122
+ /**
123
+ * Type for a workflow validation script (non-Flowlint check)
124
+ *
125
+ * Scripts receive the raw file content and path, and return findings.
126
+ * This is different from Flowlint rules which receive a parsed Graph.
127
+ */
128
+ export type WorkflowScript = (content: string, path: string) => Finding[];
129
+ /**
130
+ * Type for a use-case validation script
131
+ *
132
+ * Scripts receive the use-case folder path and return findings.
133
+ * They can access config.ts, workflows/, and other files as needed.
134
+ */
135
+ export type UseCaseScript = (useCasePath: string) => Finding[] | Promise<Finding[]>;
136
+ /**
137
+ * Rule/script metadata for documentation and filtering
138
+ */
139
+ export interface RuleMetadata {
140
+ /** Unique rule ID (e.g., "CODIKA-INIT") */
141
+ id: string;
142
+ /** Human-readable rule name (e.g., "codika_init_required") */
143
+ name: string;
144
+ /** Default severity */
145
+ severity: 'must' | 'should' | 'nit';
146
+ /** Short description of what the rule checks */
147
+ description: string;
148
+ /** Detailed explanation and fix instructions */
149
+ details: string;
150
+ /** Whether this rule can auto-fix issues */
151
+ fixable?: boolean;
152
+ /** Category for grouping (e.g., "codika", "security", "style") */
153
+ category?: string;
154
+ }
155
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validation Types
3
+ *
4
+ * Unified types for all validation rules, scripts, and results.
5
+ * Extends the Flowlint Finding type with auto-fix support.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CALLEDBY-CONSISTENCY Validation Script
3
+ *
4
+ * Validates that subworkflows have their callers correctly listed in calledBy.
5
+ * When workflow A calls subworkflow B via SUBWKFL placeholder,
6
+ * B's trigger config must include A in its calledBy array.
7
+ *
8
+ * @see .guides/specific/sub-workflows.md - "calledBy Array"
9
+ */
10
+ import type { Finding, RuleMetadata } from '../types.js';
11
+ export declare const RULE_ID = "CALLEDBY-CONSISTENCY";
12
+ export declare const metadata: RuleMetadata & {
13
+ guideRef: {
14
+ path: string;
15
+ section: string;
16
+ };
17
+ };
18
+ /**
19
+ * Validates that all workflow callers are listed in subworkflow calledBy arrays
20
+ */
21
+ export declare function checkCalledByConsistency(useCasePath: string): Promise<Finding[]>;
22
+ export default checkCalledByConsistency;
23
+ //# sourceMappingURL=calledby-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calledby-consistency.d.ts","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/calledby-consistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,OAAO,yBAAyB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YAAY,GAAG;IAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAYlF,CAAC;AAoJF;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAuGtF;AAED,eAAe,wBAAwB,CAAC"}