@exellix/ai-tasks 7.8.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 (524) hide show
  1. package/.env.example +3 -0
  2. package/.metadata/instructions-builders/create-expected-output-instructions.md +195 -0
  3. package/.metadata/readme.md +48 -0
  4. package/.metadata/shared/audit.md +29 -0
  5. package/.metadata/skills/professional-answer +32 -0
  6. package/.metadata/skills/professional-answer.compressed.md +11 -0
  7. package/.metadata/skills/professional-answer.instructions +33 -0
  8. package/.metadata/skills/professional-answer.instructions.md +33 -0
  9. package/.metadata/skills/professional-answer.l2.md +28 -0
  10. package/.metadata/skills/professional-answer.md +32 -0
  11. package/.metadata/skills/professional-answer.prompt +1 -0
  12. package/.metadata/skills/professional-answer.prompt.md +1 -0
  13. package/.metadata/skills/professional-decision.md +26 -0
  14. package/BREAKING-CHANGES.md +43 -0
  15. package/CHANGELOG.md +147 -0
  16. package/README.md +2497 -0
  17. package/RUNTASK_REQUEST.md +369 -0
  18. package/dist/activix/activixClient.d.ts +6 -0
  19. package/dist/activix/activixClient.d.ts.map +1 -0
  20. package/dist/activix/activixClient.js +131 -0
  21. package/dist/activix/activixClient.js.map +1 -0
  22. package/dist/activix/getTaskActivities.d.ts +10 -0
  23. package/dist/activix/getTaskActivities.d.ts.map +1 -0
  24. package/dist/activix/getTaskActivities.js +17 -0
  25. package/dist/activix/getTaskActivities.js.map +1 -0
  26. package/dist/activix/phaseTracking.d.ts +17 -0
  27. package/dist/activix/phaseTracking.d.ts.map +1 -0
  28. package/dist/activix/phaseTracking.js +85 -0
  29. package/dist/activix/phaseTracking.js.map +1 -0
  30. package/dist/aiScoping/index.d.ts +6 -0
  31. package/dist/aiScoping/index.d.ts.map +1 -0
  32. package/dist/aiScoping/index.js +4 -0
  33. package/dist/aiScoping/index.js.map +1 -0
  34. package/dist/aiScoping/runAiScoping.d.ts +36 -0
  35. package/dist/aiScoping/runAiScoping.d.ts.map +1 -0
  36. package/dist/aiScoping/runAiScoping.js +100 -0
  37. package/dist/aiScoping/runAiScoping.js.map +1 -0
  38. package/dist/aiScoping/runScopingCall.d.ts +23 -0
  39. package/dist/aiScoping/runScopingCall.d.ts.map +1 -0
  40. package/dist/aiScoping/runScopingCall.js +50 -0
  41. package/dist/aiScoping/runScopingCall.js.map +1 -0
  42. package/dist/aiScoping/validateAiScoping.d.ts +7 -0
  43. package/dist/aiScoping/validateAiScoping.d.ts.map +1 -0
  44. package/dist/aiScoping/validateAiScoping.js +33 -0
  45. package/dist/aiScoping/validateAiScoping.js.map +1 -0
  46. package/dist/aiSkillsUpstreamExports.d.ts +13 -0
  47. package/dist/aiSkillsUpstreamExports.d.ts.map +1 -0
  48. package/dist/aiSkillsUpstreamExports.js +12 -0
  49. package/dist/aiSkillsUpstreamExports.js.map +1 -0
  50. package/dist/analysis/analyzeRunTaskRequest.d.ts +29 -0
  51. package/dist/analysis/analyzeRunTaskRequest.d.ts.map +1 -0
  52. package/dist/analysis/analyzeRunTaskRequest.js +85 -0
  53. package/dist/analysis/analyzeRunTaskRequest.js.map +1 -0
  54. package/dist/analysis/index.d.ts +3 -0
  55. package/dist/analysis/index.d.ts.map +1 -0
  56. package/dist/analysis/index.js +2 -0
  57. package/dist/analysis/index.js.map +1 -0
  58. package/dist/builders/task-request-builder.d.ts +310 -0
  59. package/dist/builders/task-request-builder.d.ts.map +1 -0
  60. package/dist/builders/task-request-builder.js +581 -0
  61. package/dist/builders/task-request-builder.js.map +1 -0
  62. package/dist/compile/compileTaskConfiguration.d.ts +15 -0
  63. package/dist/compile/compileTaskConfiguration.d.ts.map +1 -0
  64. package/dist/compile/compileTaskConfiguration.js +184 -0
  65. package/dist/compile/compileTaskConfiguration.js.map +1 -0
  66. package/dist/compile/index.d.ts +2 -0
  67. package/dist/compile/index.d.ts.map +1 -0
  68. package/dist/compile/index.js +2 -0
  69. package/dist/compile/index.js.map +1 -0
  70. package/dist/core/task-sdk.d.ts +36 -0
  71. package/dist/core/task-sdk.d.ts.map +1 -0
  72. package/dist/core/task-sdk.js +2432 -0
  73. package/dist/core/task-sdk.js.map +1 -0
  74. package/dist/errors/smartInputValidationError.d.ts +39 -0
  75. package/dist/errors/smartInputValidationError.d.ts.map +1 -0
  76. package/dist/errors/smartInputValidationError.js +97 -0
  77. package/dist/errors/smartInputValidationError.js.map +1 -0
  78. package/dist/errors/taskConfigurationCompileError.d.ts +16 -0
  79. package/dist/errors/taskConfigurationCompileError.d.ts.map +1 -0
  80. package/dist/errors/taskConfigurationCompileError.js +20 -0
  81. package/dist/errors/taskConfigurationCompileError.js.map +1 -0
  82. package/dist/execution-strategies/applyExecutionStrategyOutputs.d.ts +17 -0
  83. package/dist/execution-strategies/applyExecutionStrategyOutputs.d.ts.map +1 -0
  84. package/dist/execution-strategies/applyExecutionStrategyOutputs.js +63 -0
  85. package/dist/execution-strategies/applyExecutionStrategyOutputs.js.map +1 -0
  86. package/dist/execution-strategies/constants.d.ts +14 -0
  87. package/dist/execution-strategies/constants.d.ts.map +1 -0
  88. package/dist/execution-strategies/constants.js +13 -0
  89. package/dist/execution-strategies/constants.js.map +1 -0
  90. package/dist/execution-strategies/executionStrategyCatalogMetadata.d.ts +9 -0
  91. package/dist/execution-strategies/executionStrategyCatalogMetadata.d.ts.map +1 -0
  92. package/dist/execution-strategies/executionStrategyCatalogMetadata.js +37 -0
  93. package/dist/execution-strategies/executionStrategyCatalogMetadata.js.map +1 -0
  94. package/dist/execution-strategies/genericExecutionFuncxEnvelope.d.ts +94 -0
  95. package/dist/execution-strategies/genericExecutionFuncxEnvelope.d.ts.map +1 -0
  96. package/dist/execution-strategies/genericExecutionFuncxEnvelope.js +306 -0
  97. package/dist/execution-strategies/genericExecutionFuncxEnvelope.js.map +1 -0
  98. package/dist/execution-strategies/resolveExecutionStrategies.d.ts +14 -0
  99. package/dist/execution-strategies/resolveExecutionStrategies.d.ts.map +1 -0
  100. package/dist/execution-strategies/resolveExecutionStrategies.js +108 -0
  101. package/dist/execution-strategies/resolveExecutionStrategies.js.map +1 -0
  102. package/dist/execution-strategies/runFuncxExecutionStrategy.d.ts +37 -0
  103. package/dist/execution-strategies/runFuncxExecutionStrategy.d.ts.map +1 -0
  104. package/dist/execution-strategies/runFuncxExecutionStrategy.js +72 -0
  105. package/dist/execution-strategies/runFuncxExecutionStrategy.js.map +1 -0
  106. package/dist/index.d.ts +99 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +106 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/internal/resolveLlmCallForXynthesis.d.ts +52 -0
  111. package/dist/internal/resolveLlmCallForXynthesis.d.ts.map +1 -0
  112. package/dist/internal/resolveLlmCallForXynthesis.js +81 -0
  113. package/dist/internal/resolveLlmCallForXynthesis.js.map +1 -0
  114. package/dist/internal/resolveRunTaskRuntimeKnobs.d.ts +19 -0
  115. package/dist/internal/resolveRunTaskRuntimeKnobs.d.ts.map +1 -0
  116. package/dist/internal/resolveRunTaskRuntimeKnobs.js +52 -0
  117. package/dist/internal/resolveRunTaskRuntimeKnobs.js.map +1 -0
  118. package/dist/internal/runPostStepLlmCall.d.ts +52 -0
  119. package/dist/internal/runPostStepLlmCall.d.ts.map +1 -0
  120. package/dist/internal/runPostStepLlmCall.js +170 -0
  121. package/dist/internal/runPostStepLlmCall.js.map +1 -0
  122. package/dist/localTasks/collectEvidence.d.ts +3 -0
  123. package/dist/localTasks/collectEvidence.d.ts.map +1 -0
  124. package/dist/localTasks/collectEvidence.js +364 -0
  125. package/dist/localTasks/collectEvidence.js.map +1 -0
  126. package/dist/localTasks/decideWebScope.d.ts +3 -0
  127. package/dist/localTasks/decideWebScope.d.ts.map +1 -0
  128. package/dist/localTasks/decideWebScope.js +56 -0
  129. package/dist/localTasks/decideWebScope.js.map +1 -0
  130. package/dist/localTasks/index.d.ts +5 -0
  131. package/dist/localTasks/index.d.ts.map +1 -0
  132. package/dist/localTasks/index.js +19 -0
  133. package/dist/localTasks/index.js.map +1 -0
  134. package/dist/localTasks/narrixAssetPlayground.d.ts +13 -0
  135. package/dist/localTasks/narrixAssetPlayground.d.ts.map +1 -0
  136. package/dist/localTasks/narrixAssetPlayground.js +161 -0
  137. package/dist/localTasks/narrixAssetPlayground.js.map +1 -0
  138. package/dist/localTasks/narrixSubnetPlayground.d.ts +14 -0
  139. package/dist/localTasks/narrixSubnetPlayground.d.ts.map +1 -0
  140. package/dist/localTasks/narrixSubnetPlayground.js +168 -0
  141. package/dist/localTasks/narrixSubnetPlayground.js.map +1 -0
  142. package/dist/localTasks/narrixVulnGroupPlayground.d.ts +13 -0
  143. package/dist/localTasks/narrixVulnGroupPlayground.d.ts.map +1 -0
  144. package/dist/localTasks/narrixVulnGroupPlayground.js +161 -0
  145. package/dist/localTasks/narrixVulnGroupPlayground.js.map +1 -0
  146. package/dist/localTasks/narrixVulnInstancePlayground.d.ts +13 -0
  147. package/dist/localTasks/narrixVulnInstancePlayground.d.ts.map +1 -0
  148. package/dist/localTasks/narrixVulnInstancePlayground.js +165 -0
  149. package/dist/localTasks/narrixVulnInstancePlayground.js.map +1 -0
  150. package/dist/localTasks/nodeCallExport.d.ts +6 -0
  151. package/dist/localTasks/nodeCallExport.d.ts.map +1 -0
  152. package/dist/localTasks/nodeCallExport.js +99 -0
  153. package/dist/localTasks/nodeCallExport.js.map +1 -0
  154. package/dist/localTasks/nodeCallExportBatch.d.ts +3 -0
  155. package/dist/localTasks/nodeCallExportBatch.d.ts.map +1 -0
  156. package/dist/localTasks/nodeCallExportBatch.js +52 -0
  157. package/dist/localTasks/nodeCallExportBatch.js.map +1 -0
  158. package/dist/localTasks/normalizeNarrixResult.d.ts +3 -0
  159. package/dist/localTasks/normalizeNarrixResult.d.ts.map +1 -0
  160. package/dist/localTasks/normalizeNarrixResult.js +106 -0
  161. package/dist/localTasks/normalizeNarrixResult.js.map +1 -0
  162. package/dist/localTasks/registry.d.ts +4 -0
  163. package/dist/localTasks/registry.d.ts.map +1 -0
  164. package/dist/localTasks/registry.js +8 -0
  165. package/dist/localTasks/registry.js.map +1 -0
  166. package/dist/localTasks/types.d.ts +28 -0
  167. package/dist/localTasks/types.d.ts.map +1 -0
  168. package/dist/localTasks/types.js +2 -0
  169. package/dist/localTasks/types.js.map +1 -0
  170. package/dist/localTasks/validateInput.d.ts +3 -0
  171. package/dist/localTasks/validateInput.d.ts.map +1 -0
  172. package/dist/localTasks/validateInput.js +66 -0
  173. package/dist/localTasks/validateInput.js.map +1 -0
  174. package/dist/methods/convenience-methods.d.ts +45 -0
  175. package/dist/methods/convenience-methods.d.ts.map +1 -0
  176. package/dist/methods/convenience-methods.js +39 -0
  177. package/dist/methods/convenience-methods.js.map +1 -0
  178. package/dist/narrix/applyNarrixScope.d.ts +10 -0
  179. package/dist/narrix/applyNarrixScope.d.ts.map +1 -0
  180. package/dist/narrix/applyNarrixScope.js +69 -0
  181. package/dist/narrix/applyNarrixScope.js.map +1 -0
  182. package/dist/narrix/buildNarrixAttachment.d.ts +9 -0
  183. package/dist/narrix/buildNarrixAttachment.d.ts.map +1 -0
  184. package/dist/narrix/buildNarrixAttachment.js +29 -0
  185. package/dist/narrix/buildNarrixAttachment.js.map +1 -0
  186. package/dist/narrix/buildWebScopeScopeInput.d.ts +39 -0
  187. package/dist/narrix/buildWebScopeScopeInput.d.ts.map +1 -0
  188. package/dist/narrix/buildWebScopeScopeInput.js +193 -0
  189. package/dist/narrix/buildWebScopeScopeInput.js.map +1 -0
  190. package/dist/narrix/flags.d.ts +4 -0
  191. package/dist/narrix/flags.d.ts.map +1 -0
  192. package/dist/narrix/flags.js +4 -0
  193. package/dist/narrix/flags.js.map +1 -0
  194. package/dist/narrix/index.d.ts +11 -0
  195. package/dist/narrix/index.d.ts.map +1 -0
  196. package/dist/narrix/index.js +14 -0
  197. package/dist/narrix/index.js.map +1 -0
  198. package/dist/narrix/narrixClient.d.ts +9 -0
  199. package/dist/narrix/narrixClient.d.ts.map +1 -0
  200. package/dist/narrix/narrixClient.js +46 -0
  201. package/dist/narrix/narrixClient.js.map +1 -0
  202. package/dist/narrix/narrixContextMarkdown.d.ts +15 -0
  203. package/dist/narrix/narrixContextMarkdown.d.ts.map +1 -0
  204. package/dist/narrix/narrixContextMarkdown.js +98 -0
  205. package/dist/narrix/narrixContextMarkdown.js.map +1 -0
  206. package/dist/narrix/narrixRunnerModule.d.ts +11 -0
  207. package/dist/narrix/narrixRunnerModule.d.ts.map +1 -0
  208. package/dist/narrix/narrixRunnerModule.js +17 -0
  209. package/dist/narrix/narrixRunnerModule.js.map +1 -0
  210. package/dist/narrix/runNarrixForChat.d.ts +3 -0
  211. package/dist/narrix/runNarrixForChat.d.ts.map +1 -0
  212. package/dist/narrix/runNarrixForChat.js +51 -0
  213. package/dist/narrix/runNarrixForChat.js.map +1 -0
  214. package/dist/narrix/runNarrixForDocs.d.ts +3 -0
  215. package/dist/narrix/runNarrixForDocs.d.ts.map +1 -0
  216. package/dist/narrix/runNarrixForDocs.js +50 -0
  217. package/dist/narrix/runNarrixForDocs.js.map +1 -0
  218. package/dist/narrix/runNarrixForRecord.d.ts +3 -0
  219. package/dist/narrix/runNarrixForRecord.d.ts.map +1 -0
  220. package/dist/narrix/runNarrixForRecord.js +47 -0
  221. package/dist/narrix/runNarrixForRecord.js.map +1 -0
  222. package/dist/narrix/runNarrixForText.d.ts +3 -0
  223. package/dist/narrix/runNarrixForText.d.ts.map +1 -0
  224. package/dist/narrix/runNarrixForText.js +49 -0
  225. package/dist/narrix/runNarrixForText.js.map +1 -0
  226. package/dist/narrix/runnerDispatch.d.ts +12 -0
  227. package/dist/narrix/runnerDispatch.d.ts.map +1 -0
  228. package/dist/narrix/runnerDispatch.js +19 -0
  229. package/dist/narrix/runnerDispatch.js.map +1 -0
  230. package/dist/narrix/seedBundleRouting.d.ts +15 -0
  231. package/dist/narrix/seedBundleRouting.d.ts.map +1 -0
  232. package/dist/narrix/seedBundleRouting.js +46 -0
  233. package/dist/narrix/seedBundleRouting.js.map +1 -0
  234. package/dist/narrix/task.d.ts +4 -0
  235. package/dist/narrix/task.d.ts.map +1 -0
  236. package/dist/narrix/task.js +143 -0
  237. package/dist/narrix/task.js.map +1 -0
  238. package/dist/narrix/types.d.ts +104 -0
  239. package/dist/narrix/types.d.ts.map +1 -0
  240. package/dist/narrix/types.js +3 -0
  241. package/dist/narrix/types.js.map +1 -0
  242. package/dist/narrix/webContextMarkdown.d.ts +54 -0
  243. package/dist/narrix/webContextMarkdown.d.ts.map +1 -0
  244. package/dist/narrix/webContextMarkdown.js +206 -0
  245. package/dist/narrix/webContextMarkdown.js.map +1 -0
  246. package/dist/narrix/webScoper.d.ts +43 -0
  247. package/dist/narrix/webScoper.d.ts.map +1 -0
  248. package/dist/narrix/webScoper.js +144 -0
  249. package/dist/narrix/webScoper.js.map +1 -0
  250. package/dist/observability/debugTrace.d.ts +31 -0
  251. package/dist/observability/debugTrace.d.ts.map +1 -0
  252. package/dist/observability/debugTrace.js +117 -0
  253. package/dist/observability/debugTrace.js.map +1 -0
  254. package/dist/observability/extractAiTasksObservability.d.ts +7 -0
  255. package/dist/observability/extractAiTasksObservability.d.ts.map +1 -0
  256. package/dist/observability/extractAiTasksObservability.js +98 -0
  257. package/dist/observability/extractAiTasksObservability.js.map +1 -0
  258. package/dist/observability/graphExecutionRunLogContract.d.ts +19 -0
  259. package/dist/observability/graphExecutionRunLogContract.d.ts.map +1 -0
  260. package/dist/observability/graphExecutionRunLogContract.js +11 -0
  261. package/dist/observability/graphExecutionRunLogContract.js.map +1 -0
  262. package/dist/packaged-tasks-client.d.ts +66 -0
  263. package/dist/packaged-tasks-client.d.ts.map +1 -0
  264. package/dist/packaged-tasks-client.js +100 -0
  265. package/dist/packaged-tasks-client.js.map +1 -0
  266. package/dist/planWebScopeQuestions/index.d.ts +78 -0
  267. package/dist/planWebScopeQuestions/index.d.ts.map +1 -0
  268. package/dist/planWebScopeQuestions/index.js +282 -0
  269. package/dist/planWebScopeQuestions/index.js.map +1 -0
  270. package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.d.ts +18 -0
  271. package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.d.ts.map +1 -0
  272. package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.js +42 -0
  273. package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.js.map +1 -0
  274. package/dist/post-steps/audit/loadAuditTemplates.d.ts +72 -0
  275. package/dist/post-steps/audit/loadAuditTemplates.d.ts.map +1 -0
  276. package/dist/post-steps/audit/loadAuditTemplates.js +62 -0
  277. package/dist/post-steps/audit/loadAuditTemplates.js.map +1 -0
  278. package/dist/post-steps/audit/parseAuditOutput.d.ts +11 -0
  279. package/dist/post-steps/audit/parseAuditOutput.d.ts.map +1 -0
  280. package/dist/post-steps/audit/parseAuditOutput.js +50 -0
  281. package/dist/post-steps/audit/parseAuditOutput.js.map +1 -0
  282. package/dist/post-steps/audit/runAudit.d.ts +22 -0
  283. package/dist/post-steps/audit/runAudit.d.ts.map +1 -0
  284. package/dist/post-steps/audit/runAudit.js +406 -0
  285. package/dist/post-steps/audit/runAudit.js.map +1 -0
  286. package/dist/post-steps/audit/runAuditCall.d.ts +23 -0
  287. package/dist/post-steps/audit/runAuditCall.d.ts.map +1 -0
  288. package/dist/post-steps/audit/runAuditCall.js +32 -0
  289. package/dist/post-steps/audit/runAuditCall.js.map +1 -0
  290. package/dist/post-steps/polish/loadPolishTemplates.d.ts +35 -0
  291. package/dist/post-steps/polish/loadPolishTemplates.d.ts.map +1 -0
  292. package/dist/post-steps/polish/loadPolishTemplates.js +38 -0
  293. package/dist/post-steps/polish/loadPolishTemplates.js.map +1 -0
  294. package/dist/post-steps/polish/parsePolishOutput.d.ts +6 -0
  295. package/dist/post-steps/polish/parsePolishOutput.d.ts.map +1 -0
  296. package/dist/post-steps/polish/parsePolishOutput.js +47 -0
  297. package/dist/post-steps/polish/parsePolishOutput.js.map +1 -0
  298. package/dist/post-steps/polish/runPolish.d.ts +24 -0
  299. package/dist/post-steps/polish/runPolish.d.ts.map +1 -0
  300. package/dist/post-steps/polish/runPolish.js +147 -0
  301. package/dist/post-steps/polish/runPolish.js.map +1 -0
  302. package/dist/post-steps/polish/runPolishCall.d.ts +22 -0
  303. package/dist/post-steps/polish/runPolishCall.d.ts.map +1 -0
  304. package/dist/post-steps/polish/runPolishCall.js +32 -0
  305. package/dist/post-steps/polish/runPolishCall.js.map +1 -0
  306. package/dist/post-steps/resolvePostStepConfig.d.ts +58 -0
  307. package/dist/post-steps/resolvePostStepConfig.d.ts.map +1 -0
  308. package/dist/post-steps/resolvePostStepConfig.js +105 -0
  309. package/dist/post-steps/resolvePostStepConfig.js.map +1 -0
  310. package/dist/rendrixUpstreamExports.d.ts +7 -0
  311. package/dist/rendrixUpstreamExports.d.ts.map +1 -0
  312. package/dist/rendrixUpstreamExports.js +6 -0
  313. package/dist/rendrixUpstreamExports.js.map +1 -0
  314. package/dist/skillCatalogExports.d.ts +8 -0
  315. package/dist/skillCatalogExports.d.ts.map +1 -0
  316. package/dist/skillCatalogExports.js +8 -0
  317. package/dist/skillCatalogExports.js.map +1 -0
  318. package/dist/strategies/direct-execution-strategy.d.ts +31 -0
  319. package/dist/strategies/direct-execution-strategy.d.ts.map +1 -0
  320. package/dist/strategies/direct-execution-strategy.js +107 -0
  321. package/dist/strategies/direct-execution-strategy.js.map +1 -0
  322. package/dist/strategies/execution-strategy.interface.d.ts +31 -0
  323. package/dist/strategies/execution-strategy.interface.d.ts.map +1 -0
  324. package/dist/strategies/execution-strategy.interface.js +2 -0
  325. package/dist/strategies/execution-strategy.interface.js.map +1 -0
  326. package/dist/strategies/index.d.ts +9 -0
  327. package/dist/strategies/index.d.ts.map +1 -0
  328. package/dist/strategies/index.js +8 -0
  329. package/dist/strategies/index.js.map +1 -0
  330. package/dist/strategies/strategy-factory.d.ts +45 -0
  331. package/dist/strategies/strategy-factory.d.ts.map +1 -0
  332. package/dist/strategies/strategy-factory.js +59 -0
  333. package/dist/strategies/strategy-factory.js.map +1 -0
  334. package/dist/synthesis/index.d.ts +9 -0
  335. package/dist/synthesis/index.d.ts.map +1 -0
  336. package/dist/synthesis/index.js +8 -0
  337. package/dist/synthesis/index.js.map +1 -0
  338. package/dist/synthesis/resolveSourceMaterial.d.ts +35 -0
  339. package/dist/synthesis/resolveSourceMaterial.d.ts.map +1 -0
  340. package/dist/synthesis/resolveSourceMaterial.js +152 -0
  341. package/dist/synthesis/resolveSourceMaterial.js.map +1 -0
  342. package/dist/synthesis/runStructuredSynthesisRobust.d.ts +42 -0
  343. package/dist/synthesis/runStructuredSynthesisRobust.d.ts.map +1 -0
  344. package/dist/synthesis/runStructuredSynthesisRobust.js +303 -0
  345. package/dist/synthesis/runStructuredSynthesisRobust.js.map +1 -0
  346. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts +19 -0
  347. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts.map +1 -0
  348. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js +242 -0
  349. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js.map +1 -0
  350. package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts +171 -0
  351. package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts.map +1 -0
  352. package/dist/task-strategies/canonicalInputExecutionStrategies.js +117 -0
  353. package/dist/task-strategies/canonicalInputExecutionStrategies.js.map +1 -0
  354. package/dist/task-strategies/canonicalNarrixModes.d.ts +31 -0
  355. package/dist/task-strategies/canonicalNarrixModes.d.ts.map +1 -0
  356. package/dist/task-strategies/canonicalNarrixModes.js +35 -0
  357. package/dist/task-strategies/canonicalNarrixModes.js.map +1 -0
  358. package/dist/task-strategies/canonicalTaskStrategies.d.ts +104 -0
  359. package/dist/task-strategies/canonicalTaskStrategies.d.ts.map +1 -0
  360. package/dist/task-strategies/canonicalTaskStrategies.js +77 -0
  361. package/dist/task-strategies/canonicalTaskStrategies.js.map +1 -0
  362. package/dist/task-strategies/cataloxCatalogViews.d.ts +55 -0
  363. package/dist/task-strategies/cataloxCatalogViews.d.ts.map +1 -0
  364. package/dist/task-strategies/cataloxCatalogViews.js +65 -0
  365. package/dist/task-strategies/cataloxCatalogViews.js.map +1 -0
  366. package/dist/task-strategies/constants.d.ts +49 -0
  367. package/dist/task-strategies/constants.d.ts.map +1 -0
  368. package/dist/task-strategies/constants.js +49 -0
  369. package/dist/task-strategies/constants.js.map +1 -0
  370. package/dist/task-strategies/index.d.ts +22 -0
  371. package/dist/task-strategies/index.d.ts.map +1 -0
  372. package/dist/task-strategies/index.js +13 -0
  373. package/dist/task-strategies/index.js.map +1 -0
  374. package/dist/task-strategies/listAiTaskStrategies.d.ts +43 -0
  375. package/dist/task-strategies/listAiTaskStrategies.d.ts.map +1 -0
  376. package/dist/task-strategies/listAiTaskStrategies.js +74 -0
  377. package/dist/task-strategies/listAiTaskStrategies.js.map +1 -0
  378. package/dist/task-strategies/normalize.d.ts +7 -0
  379. package/dist/task-strategies/normalize.d.ts.map +1 -0
  380. package/dist/task-strategies/normalize.js +44 -0
  381. package/dist/task-strategies/normalize.js.map +1 -0
  382. package/dist/task-strategies/types.d.ts +37 -0
  383. package/dist/task-strategies/types.d.ts.map +1 -0
  384. package/dist/task-strategies/types.js +2 -0
  385. package/dist/task-strategies/types.js.map +1 -0
  386. package/dist/types/decision-contracts.d.ts +31 -0
  387. package/dist/types/decision-contracts.d.ts.map +1 -0
  388. package/dist/types/decision-contracts.js +23 -0
  389. package/dist/types/decision-contracts.js.map +1 -0
  390. package/dist/types/evidence-types.d.ts +108 -0
  391. package/dist/types/evidence-types.d.ts.map +1 -0
  392. package/dist/types/evidence-types.js +9 -0
  393. package/dist/types/evidence-types.js.map +1 -0
  394. package/dist/types/executionType.d.ts +9 -0
  395. package/dist/types/executionType.d.ts.map +1 -0
  396. package/dist/types/executionType.js +8 -0
  397. package/dist/types/executionType.js.map +1 -0
  398. package/dist/types/index.d.ts +28 -0
  399. package/dist/types/index.d.ts.map +1 -0
  400. package/dist/types/index.js +12 -0
  401. package/dist/types/index.js.map +1 -0
  402. package/dist/types/llmCall.d.ts +121 -0
  403. package/dist/types/llmCall.d.ts.map +1 -0
  404. package/dist/types/llmCall.js +39 -0
  405. package/dist/types/llmCall.js.map +1 -0
  406. package/dist/types/task-configuration.d.ts +60 -0
  407. package/dist/types/task-configuration.d.ts.map +1 -0
  408. package/dist/types/task-configuration.js +3 -0
  409. package/dist/types/task-configuration.js.map +1 -0
  410. package/dist/types/task-types.d.ts +887 -0
  411. package/dist/types/task-types.d.ts.map +1 -0
  412. package/dist/types/task-types.js +21 -0
  413. package/dist/types/task-types.js.map +1 -0
  414. package/dist/utilities/runUtility.d.ts +3 -0
  415. package/dist/utilities/runUtility.d.ts.map +1 -0
  416. package/dist/utilities/runUtility.js +204 -0
  417. package/dist/utilities/runUtility.js.map +1 -0
  418. package/dist/utils/assertRequiredRunSkillCorrelation.d.ts +7 -0
  419. package/dist/utils/assertRequiredRunSkillCorrelation.d.ts.map +1 -0
  420. package/dist/utils/assertRequiredRunSkillCorrelation.js +17 -0
  421. package/dist/utils/assertRequiredRunSkillCorrelation.js.map +1 -0
  422. package/dist/utils/assertValidSmartInputConfig.d.ts +5 -0
  423. package/dist/utils/assertValidSmartInputConfig.d.ts.map +1 -0
  424. package/dist/utils/assertValidSmartInputConfig.js +71 -0
  425. package/dist/utils/assertValidSmartInputConfig.js.map +1 -0
  426. package/dist/utils/bridgeRunSkillGatewayMemory.d.ts +13 -0
  427. package/dist/utils/bridgeRunSkillGatewayMemory.d.ts.map +1 -0
  428. package/dist/utils/bridgeRunSkillGatewayMemory.js +65 -0
  429. package/dist/utils/bridgeRunSkillGatewayMemory.js.map +1 -0
  430. package/dist/utils/extractSmartInputRenderResult.d.ts +7 -0
  431. package/dist/utils/extractSmartInputRenderResult.d.ts.map +1 -0
  432. package/dist/utils/extractSmartInputRenderResult.js +30 -0
  433. package/dist/utils/extractSmartInputRenderResult.js.map +1 -0
  434. package/dist/utils/jsonPaths.d.ts +6 -0
  435. package/dist/utils/jsonPaths.d.ts.map +1 -0
  436. package/dist/utils/jsonPaths.js +32 -0
  437. package/dist/utils/jsonPaths.js.map +1 -0
  438. package/dist/utils/normalizeSmartInputConfig.d.ts +5 -0
  439. package/dist/utils/normalizeSmartInputConfig.d.ts.map +1 -0
  440. package/dist/utils/normalizeSmartInputConfig.js +30 -0
  441. package/dist/utils/normalizeSmartInputConfig.js.map +1 -0
  442. package/dist/utils/outputValidation.d.ts +19 -0
  443. package/dist/utils/outputValidation.d.ts.map +1 -0
  444. package/dist/utils/outputValidation.js +75 -0
  445. package/dist/utils/outputValidation.js.map +1 -0
  446. package/dist/utils/runTaskRequestShape.d.ts +16 -0
  447. package/dist/utils/runTaskRequestShape.d.ts.map +1 -0
  448. package/dist/utils/runTaskRequestShape.js +80 -0
  449. package/dist/utils/runTaskRequestShape.js.map +1 -0
  450. package/dist/utils/skillTemplateVariables.d.ts +20 -0
  451. package/dist/utils/skillTemplateVariables.d.ts.map +1 -0
  452. package/dist/utils/skillTemplateVariables.js +63 -0
  453. package/dist/utils/skillTemplateVariables.js.map +1 -0
  454. package/dist/utils/xynthesizedSmartInputPaths.d.ts +16 -0
  455. package/dist/utils/xynthesizedSmartInputPaths.d.ts.map +1 -0
  456. package/dist/utils/xynthesizedSmartInputPaths.js +56 -0
  457. package/dist/utils/xynthesizedSmartInputPaths.js.map +1 -0
  458. package/dist/utils/xynthesizedWrite.d.ts +10 -0
  459. package/dist/utils/xynthesizedWrite.d.ts.map +1 -0
  460. package/dist/utils/xynthesizedWrite.js +61 -0
  461. package/dist/utils/xynthesizedWrite.js.map +1 -0
  462. package/dist/validation/analyzeExpectedRunTaskInput.d.ts +41 -0
  463. package/dist/validation/analyzeExpectedRunTaskInput.d.ts.map +1 -0
  464. package/dist/validation/analyzeExpectedRunTaskInput.js +133 -0
  465. package/dist/validation/analyzeExpectedRunTaskInput.js.map +1 -0
  466. package/dist/validation/collectSmartInputValidationIssues.d.ts +6 -0
  467. package/dist/validation/collectSmartInputValidationIssues.d.ts.map +1 -0
  468. package/dist/validation/collectSmartInputValidationIssues.js +38 -0
  469. package/dist/validation/collectSmartInputValidationIssues.js.map +1 -0
  470. package/dist/validation/helpers.d.ts +15 -0
  471. package/dist/validation/helpers.d.ts.map +1 -0
  472. package/dist/validation/helpers.js +184 -0
  473. package/dist/validation/helpers.js.map +1 -0
  474. package/dist/validation/index.d.ts +9 -0
  475. package/dist/validation/index.d.ts.map +1 -0
  476. package/dist/validation/index.js +6 -0
  477. package/dist/validation/index.js.map +1 -0
  478. package/dist/validation/types.d.ts +51 -0
  479. package/dist/validation/types.d.ts.map +1 -0
  480. package/dist/validation/types.js +5 -0
  481. package/dist/validation/types.js.map +1 -0
  482. package/dist/validation/validateRunTaskConfig.d.ts +8 -0
  483. package/dist/validation/validateRunTaskConfig.d.ts.map +1 -0
  484. package/dist/validation/validateRunTaskConfig.js +158 -0
  485. package/dist/validation/validateRunTaskConfig.js.map +1 -0
  486. package/dist/validation/validateRunTaskInvoke.d.ts +30 -0
  487. package/dist/validation/validateRunTaskInvoke.d.ts.map +1 -0
  488. package/dist/validation/validateRunTaskInvoke.js +108 -0
  489. package/dist/validation/validateRunTaskInvoke.js.map +1 -0
  490. package/documenations/activix-feature-request-identity.md +123 -0
  491. package/documenations/activix.md +175 -0
  492. package/documenations/bug-report-xynthesis-and-synthesis-call.md +217 -0
  493. package/documenations/core-runtime-tokens-and-strategies.md +123 -0
  494. package/documenations/downstream-environment.md +48 -0
  495. package/documenations/downstream-test-runtime-teardown-cleanup.md +73 -0
  496. package/documenations/examples/xynthesis-run-task-request.example.json +170 -0
  497. package/documenations/feature-request-ai-skills-raw-template-access.md +82 -0
  498. package/documenations/feature-request-athenix-core-directive.md +145 -0
  499. package/documenations/feature-request-athenix-token-extraction.md +124 -0
  500. package/documenations/funcx-catalog-hosting-checklist.md +107 -0
  501. package/documenations/funcx-scoping-integration-gaps.md +120 -0
  502. package/documenations/funcx-upstream-github-issues-draft.md +153 -0
  503. package/documenations/identity-metadata-contract.md +165 -0
  504. package/documenations/intermediate-steps.md +33 -0
  505. package/documenations/record-and-template-variables.md +32 -0
  506. package/documenations/run-task-execution-flow.md +153 -0
  507. package/documenations/run-task-single-run-checklist.md +109 -0
  508. package/documenations/schemas/README.md +40 -0
  509. package/documenations/schemas/openapi-3.1-components.yaml +24 -0
  510. package/documenations/schemas/v1/output-schema.json +55 -0
  511. package/documenations/schemas/v1/output-validation-result.json +41 -0
  512. package/documenations/schemas/v1/run-task-request.json +219 -0
  513. package/documenations/schemas/v1/synthesized-artifacts.json +133 -0
  514. package/documenations/synthesis-invocation-notes.md +26 -0
  515. package/documenations/synthesized-context-guide.md +84 -0
  516. package/documenations/task-core-and-core-aware-synthesis.md +58 -0
  517. package/documenations/upstream-feature-requests/ai-skills-llm-observability.md +129 -0
  518. package/documenations/upstream-feature-requests/xynthesis-llm-observability.md +125 -0
  519. package/documenations/upstream-feedback-request-shape-clarification.md +101 -0
  520. package/documenations/web-context-precedence.md +33 -0
  521. package/documenations/web-scoping-in-ai-tasks.md +503 -0
  522. package/documenations/xynthesis-activix-telemetry.md +28 -0
  523. package/documenations/xynthesis-upstream-fixes-checklist.md +71 -0
  524. package/package.json +92 -0
@@ -0,0 +1,158 @@
1
+ import { SYNTHESIZED_CONTEXT } from "../types/task-types.js";
2
+ import { compileTaskConfigurationOnRunTaskRequest } from "../compile/compileTaskConfiguration.js";
3
+ import { isTaskConfigurationCompileError } from "../errors/taskConfigurationCompileError.js";
4
+ import { collectExecutionPipelineWarnings } from "../utils/runTaskRequestShape.js";
5
+ import { resolveRunTaskRuntimeKnobs } from "../internal/resolveRunTaskRuntimeKnobs.js";
6
+ import { collectSmartInputValidationIssues } from "./collectSmartInputValidationIssues.js";
7
+ import { finalizeValidationResult, isNonEmptyString, pushIssue, validateLlmCallFields, validateModelConfigFields, } from "./helpers.js";
8
+ function validateExecutionPipeline(pipeline, issues) {
9
+ if (!pipeline?.length)
10
+ return;
11
+ const mainSteps = pipeline.filter((s) => s.phase === "main");
12
+ if (mainSteps.length !== 1) {
13
+ pushIssue(issues, {
14
+ code: "PIPELINE_MAIN_COUNT",
15
+ path: "executionPipeline",
16
+ message: `executionPipeline must contain exactly one step with phase "main"; got ${mainSteps.length}.`,
17
+ });
18
+ }
19
+ for (const w of collectExecutionPipelineWarnings(pipeline)) {
20
+ pushIssue(issues, {
21
+ code: "PIPELINE_UNSUPPORTED_STEP",
22
+ severity: "warning",
23
+ path: "executionPipeline",
24
+ message: w,
25
+ });
26
+ }
27
+ for (let i = 0; i < pipeline.length; i++) {
28
+ const step = pipeline[i];
29
+ if (step.phase === "pre" && step.type === SYNTHESIZED_CONTEXT) {
30
+ const cfg = (step.config ?? {});
31
+ validateModelConfigFields(cfg.modelConfig, `executionPipeline[${i}].config.modelConfig`, issues);
32
+ validateLlmCallFields(cfg.llmCall, `executionPipeline[${i}].config.llmCall`, issues);
33
+ }
34
+ if (step.phase === "post" && (step.type === "audit" || step.type === "polish")) {
35
+ const cfg = step.config;
36
+ if (cfg && typeof cfg === "object") {
37
+ validateModelConfigFields(cfg.modelConfig, `executionPipeline[${i}].config.modelConfig`, issues);
38
+ validateLlmCallFields(cfg.llmCall, `executionPipeline[${i}].config.llmCall`, issues);
39
+ const llm = cfg.llmCall;
40
+ if (llm && typeof llm === "object" && !Array.isArray(llm)) {
41
+ const nested = llm;
42
+ if (nested.audit) {
43
+ validateLlmCallFields(nested.audit, `executionPipeline[${i}].config.llmCall.audit`, issues);
44
+ }
45
+ if (nested.synthesis) {
46
+ validateLlmCallFields(nested.synthesis, `executionPipeline[${i}].config.llmCall.synthesis`, issues);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ function validateSynthesisPreRequirements(request, issues) {
54
+ const pipeline = request.executionPipeline;
55
+ if (!pipeline?.some((s) => s.phase === "pre" && s.type === SYNTHESIZED_CONTEXT))
56
+ return;
57
+ const hasContext = request.includeContextInPrompt === true ||
58
+ pipeline.some((s) => s.phase === "pre" &&
59
+ s.type === SYNTHESIZED_CONTEXT &&
60
+ s.config?.autoEnableContext === true);
61
+ if (!hasContext) {
62
+ pushIssue(issues, {
63
+ code: "SYNTHESIS_PRE_REQUIRES_CONTEXT",
64
+ path: "includeContextInPrompt",
65
+ message: 'PRE "synthesized-context" requires includeContextInPrompt: true or synthesisConfig.autoEnableContext: true on the PRE step.',
66
+ });
67
+ }
68
+ }
69
+ /**
70
+ * Validate **static** `RunTaskRequest` configuration (model, pipeline, correlation ids, smartInput shape).
71
+ * Does **not** check whether memory paths resolve — use {@link validateRunTaskInvoke} for that.
72
+ */
73
+ export function validateRunTaskConfig(request) {
74
+ const issues = [];
75
+ let resolved = request;
76
+ try {
77
+ resolved = compileTaskConfigurationOnRunTaskRequest(request).request;
78
+ }
79
+ catch (e) {
80
+ if (isTaskConfigurationCompileError(e)) {
81
+ pushIssue(issues, {
82
+ code: e.code,
83
+ path: "taskConfiguration",
84
+ message: e.message,
85
+ });
86
+ }
87
+ else {
88
+ throw e;
89
+ }
90
+ }
91
+ const skillKey = String(resolved.skillKey ?? "");
92
+ if (!isNonEmptyString(resolved.skillKey)) {
93
+ pushIssue(issues, {
94
+ code: "MISSING_SKILL_KEY",
95
+ path: "skillKey",
96
+ message: "runTask requires a non-empty skillKey.",
97
+ });
98
+ }
99
+ if (!isNonEmptyString(resolved.agentId)) {
100
+ pushIssue(issues, {
101
+ code: "MISSING_AGENT_ID",
102
+ path: "agentId",
103
+ message: `runTask requires non-empty agentId (@exellix/ai-skills correlation). skillKey: ${skillKey}`,
104
+ });
105
+ }
106
+ if (!isNonEmptyString(resolved.jobTypeId)) {
107
+ pushIssue(issues, {
108
+ code: "MISSING_JOB_TYPE_ID",
109
+ path: "jobTypeId",
110
+ message: `runTask requires non-empty jobTypeId. skillKey: ${skillKey}`,
111
+ });
112
+ }
113
+ if (!isNonEmptyString(resolved.taskTypeId)) {
114
+ pushIssue(issues, {
115
+ code: "MISSING_TASK_TYPE_ID",
116
+ path: "taskTypeId",
117
+ message: `runTask requires non-empty taskTypeId. skillKey: ${skillKey}`,
118
+ });
119
+ }
120
+ if (!Array.isArray(resolved.executionStrategies)) {
121
+ pushIssue(issues, {
122
+ code: "MISSING_EXECUTION_STRATEGIES",
123
+ path: "executionStrategies",
124
+ message: "runTask requires executionStrategies array (use [] for plain MAIN). skillKey: " + skillKey,
125
+ });
126
+ }
127
+ else {
128
+ try {
129
+ resolveRunTaskRuntimeKnobs(resolved);
130
+ }
131
+ catch (e) {
132
+ pushIssue(issues, {
133
+ code: "RUNTIME_KNOBS_INVALID",
134
+ path: "executionStrategies",
135
+ message: e instanceof Error ? e.message : String(e),
136
+ });
137
+ }
138
+ }
139
+ issues.push(...collectSmartInputValidationIssues(resolved.smartInput, skillKey));
140
+ validateModelConfigFields(resolved.modelConfig, "modelConfig", issues);
141
+ validateLlmCallFields(resolved.llmCall, "llmCall", issues);
142
+ if (resolved.timeoutMs !== undefined) {
143
+ if (typeof resolved.timeoutMs !== "number" || !Number.isFinite(resolved.timeoutMs) || resolved.timeoutMs < 1) {
144
+ pushIssue(issues, {
145
+ code: "TIMEOUT_MS_INVALID",
146
+ path: "timeoutMs",
147
+ message: "timeoutMs must be a finite number >= 1 when set.",
148
+ });
149
+ }
150
+ }
151
+ validateExecutionPipeline(resolved.executionPipeline, issues);
152
+ validateSynthesisPreRequirements(resolved, issues);
153
+ if (resolved.aiScopingOptions?.llmCall) {
154
+ validateLlmCallFields(resolved.aiScopingOptions.llmCall, "aiScopingOptions.llmCall", issues);
155
+ }
156
+ return finalizeValidationResult(issues);
157
+ }
158
+ //# sourceMappingURL=validateRunTaskConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRunTaskConfig.js","sourceRoot":"","sources":["../../src/validation/validateRunTaskConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { RunTaskRequest } from "../types/task-types.js";
2
+ import { type RunTaskTemplateResolver } from "./analyzeExpectedRunTaskInput.js";
3
+ import type { RunTaskInvokeValidationResult } from "./types.js";
4
+ export type ValidateRunTaskInvokeParams = {
5
+ request: RunTaskRequest;
6
+ /**
7
+ * When true (default), resolve skill templates and check expected paths against the request payload.
8
+ * Set false for a fast config-only pass (same as {@link validateRunTaskConfig}).
9
+ */
10
+ analyzeTemplates?: boolean;
11
+ templateResolver?: RunTaskTemplateResolver;
12
+ instructions?: string;
13
+ prompt?: string;
14
+ /**
15
+ * When true, add errors for Rendrix `analyzeTemplateResolution` unparsed tokens
16
+ * (requires `instructions` / `prompt` text or resolver).
17
+ */
18
+ checkTemplateResolution?: boolean;
19
+ /**
20
+ * When true (default), run Rendrix `renderSmartInput` against the request context
21
+ * to catch required smart-input paths that are missing (after shape validation passes).
22
+ */
23
+ checkSmartInputRender?: boolean;
24
+ };
25
+ /**
26
+ * Validate **config + payload**: static request shape/model config, then whether expected
27
+ * smart-input / template paths resolve against `input`, memories, and `xynthesized`.
28
+ */
29
+ export declare function validateRunTaskInvoke(params: ValidateRunTaskInvokeParams): Promise<RunTaskInvokeValidationResult>;
30
+ //# sourceMappingURL=validateRunTaskInvoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRunTaskInvoke.d.ts","sourceRoot":"","sources":["../../src/validation/validateRunTaskInvoke.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,6BAA6B,EAA0B,MAAM,YAAY,CAAC;AAExF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,CA0GxC"}
@@ -0,0 +1,108 @@
1
+ import { renderSmartInput, SmartInputRequiredPathMissingError } from "@x12i/rendrix";
2
+ import { normalizeSmartInputConfig } from "../utils/normalizeSmartInputConfig.js";
3
+ import { analyzeExpectedRunTaskInput, checkExpectedInputAgainstRequest, } from "./analyzeExpectedRunTaskInput.js";
4
+ import { collectSmartInputValidationIssues } from "./collectSmartInputValidationIssues.js";
5
+ import { validateRunTaskConfig } from "./validateRunTaskConfig.js";
6
+ import { buildRunTaskValidationContext, finalizeValidationResult, pushIssue } from "./helpers.js";
7
+ /**
8
+ * Validate **config + payload**: static request shape/model config, then whether expected
9
+ * smart-input / template paths resolve against `input`, memories, and `xynthesized`.
10
+ */
11
+ export async function validateRunTaskInvoke(params) {
12
+ const { request } = params;
13
+ const configResult = validateRunTaskConfig(request);
14
+ const issues = [...configResult.issues];
15
+ const smartInputShapeOk = request.smartInput === undefined ||
16
+ request.smartInput === null ||
17
+ collectSmartInputValidationIssues(request.smartInput, request.skillKey).length === 0;
18
+ if (smartInputShapeOk && request.smartInput && params.checkSmartInputRender !== false) {
19
+ try {
20
+ const normalized = normalizeSmartInputConfig(request.smartInput);
21
+ renderSmartInput({
22
+ smartInput: normalized,
23
+ context: buildRunTaskValidationContext(request),
24
+ });
25
+ }
26
+ catch (e) {
27
+ if (e instanceof SmartInputRequiredPathMissingError) {
28
+ pushIssue(issues, {
29
+ code: e.code,
30
+ path: `smartInput.paths (${e.path})`,
31
+ message: `${e.message} skillKey: ${request.skillKey}`,
32
+ });
33
+ }
34
+ }
35
+ }
36
+ const analyzeTemplates = params.analyzeTemplates !== false;
37
+ let expected = {
38
+ paths: [],
39
+ templateTokens: { instructions: [], prompt: [] },
40
+ };
41
+ let missingInputPaths = [];
42
+ let resolvedInputPaths = [];
43
+ if (analyzeTemplates) {
44
+ expected = await analyzeExpectedRunTaskInput({
45
+ skillKey: request.skillKey,
46
+ smartInput: request.smartInput,
47
+ instructions: params.instructions,
48
+ prompt: params.prompt,
49
+ templateResolver: params.templateResolver,
50
+ });
51
+ let instructionsText = params.instructions ?? "";
52
+ let promptText = params.prompt ?? "";
53
+ if (params.templateResolver) {
54
+ if (!instructionsText) {
55
+ instructionsText =
56
+ (await params.templateResolver.resolveRawTemplate(request.skillKey, "instructions")) ?? "";
57
+ }
58
+ if (!promptText) {
59
+ promptText = (await params.templateResolver.resolveRawTemplate(request.skillKey, "prompt")) ?? "";
60
+ }
61
+ }
62
+ const check = checkExpectedInputAgainstRequest({
63
+ request,
64
+ expected,
65
+ templateTexts: params.checkTemplateResolution === true
66
+ ? { instructions: instructionsText, prompt: promptText }
67
+ : undefined,
68
+ });
69
+ missingInputPaths = check.missingInputPaths;
70
+ resolvedInputPaths = check.resolvedInputPaths;
71
+ for (const entry of check.missingInputPaths) {
72
+ pushIssue(issues, {
73
+ code: "REQUIRED_INPUT_PATH_MISSING",
74
+ path: entry.path,
75
+ message: `Required input path "${entry.path}" (${entry.source}) is missing or empty on the request. skillKey: ${request.skillKey}`,
76
+ });
77
+ }
78
+ for (const entry of expected.paths) {
79
+ if (entry.required === true)
80
+ continue;
81
+ const row = check.resolvedInputPaths.find((r) => r.path === entry.path);
82
+ if (row && !row.resolved && entry.source.startsWith("template-")) {
83
+ pushIssue(issues, {
84
+ code: "TEMPLATE_INPUT_PATH_MISSING",
85
+ severity: "warning",
86
+ path: entry.path,
87
+ message: `Template references path "${entry.path}" but it is undefined in the request payload (may be optional in template). skillKey: ${request.skillKey}`,
88
+ });
89
+ }
90
+ }
91
+ for (const unparsed of check.templateUnresolvedPaths) {
92
+ pushIssue(issues, {
93
+ code: "TEMPLATE_TOKEN_UNRESOLVED",
94
+ severity: "warning",
95
+ path: unparsed,
96
+ message: `Template token path not resolved in request context: ${unparsed}. skillKey: ${request.skillKey}`,
97
+ });
98
+ }
99
+ }
100
+ const finalized = finalizeValidationResult(issues);
101
+ return {
102
+ ...finalized,
103
+ expectedInput: expected,
104
+ missingInputPaths,
105
+ resolvedInputPaths,
106
+ };
107
+ }
108
+ //# sourceMappingURL=validateRunTaskInvoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRunTaskInvoke.js","sourceRoot":"","sources":["../../src/validation/validateRunTaskInvoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ # Feature request: Activix first-class `identity` object
2
+
3
+ ## Summary
4
+
5
+ Extend `@xronoces/activix` to support a **first-class `identity` object** on activity records, so downstream systems can attach a stable identity envelope to every activity and query/group activities consistently.
6
+
7
+ This request is driven by the task methodology used in `@exellix/ai-tasks` (and the wider stack via `ai-skills`/`ai-gateway`).
8
+
9
+ ---
10
+
11
+ ## Problem
12
+
13
+ Today, many systems treat identity as “just more metadata” and bury it inside arbitrary blobs. That makes identity:
14
+
15
+ - inconsistent across producers,
16
+ - hard to query/index,
17
+ - easy to accidentally rename/flatten,
18
+ - easy to drop during updates,
19
+ - hard to standardize across a multi-package pipeline.
20
+
21
+ We want identity to be a **first-class citizen** in Activix, not an ad-hoc field hidden in random meta objects.
22
+
23
+ ---
24
+
25
+ ## Proposed behavior (contract)
26
+
27
+ ### 1) Record schema supports `identity`
28
+
29
+ Every Activix record should support a top-level field:
30
+
31
+ - `identity?: Record<string, unknown>`
32
+
33
+ Constraints:
34
+
35
+ - Must be persisted on `startRecord(...)` creation.
36
+ - Must remain intact across lifecycle operations (`completeRecord`, `failRecord`, `patchRecord`) unless explicitly changed.
37
+ - Must be returned by read/query APIs (`getRecord`, `findRecords`, etc).
38
+
39
+ ### 2) Identity is preserved (no mutation by default)
40
+
41
+ Activix must not:
42
+
43
+ - rename keys inside `identity`,
44
+ - flatten `identity` into other fields,
45
+ - drop `identity` during updates.
46
+
47
+ ### 3) Query by identity fields must be supported
48
+
49
+ Because `identity` is an object, querying by identity must be supported by the storage adapter. Minimum requirement:
50
+
51
+ - `findRecords({ "identity.taskId": "<id>" })` works (Mongo-style dotted-path query)
52
+
53
+ If Activix abstracts storage backends, the contract should specify which query patterns are supported (at least dotted-path equality for Mongo backend).
54
+
55
+ ### 4) Indexing support (recommended)
56
+
57
+ To make querying scalable, Activix should support indexes over identity subfields (backend permitting). Recommended index patterns:
58
+
59
+ - `identity.taskId`
60
+ - optionally `identity.skillId`
61
+
62
+ This can be implemented as:
63
+
64
+ - a first-class `indexes` declaration (preferred), or
65
+ - documented guidance for consumers who configure collection indexes.
66
+
67
+ ---
68
+
69
+ ## Required API / typing changes
70
+
71
+ ### `startRecord`
72
+
73
+ Accept `identity` as a top-level field on the record meta payload:
74
+
75
+ - `ax.startRecord({ ..., identity })`
76
+
77
+ ### `completeRecord` / `failRecord` / `patchRecord`
78
+
79
+ Ensure identity is not lost:
80
+
81
+ - If updates omit `identity`, the stored record keeps the previously set `identity`.
82
+ - If updates include `identity`, treat it as a full replace (or document merge semantics explicitly; default to replace to avoid surprising partial merges).
83
+
84
+ ### Type exports
85
+
86
+ Expose a stable type for records that includes:
87
+
88
+ - `identity?: Record<string, unknown>`
89
+
90
+ ---
91
+
92
+ ## Interaction with `@exellix/ai-tasks`
93
+
94
+ `@exellix/ai-tasks` generates a unique per-run `taskId` and uses it to:
95
+
96
+ - attach `identity.taskId` to all activity records for that run, and
97
+ - retrieve “activities for the task” by that `taskId`.
98
+
99
+ Recommended alignment for the task methodology:
100
+
101
+ - `correlationId` remains the primary “group a run” field, but we will also carry `identity.taskId`.
102
+ - Optionally, stacks may choose to set `correlationId === identity.taskId` for convenience, but this should not be required by Activix.
103
+
104
+ See also: `documenations/identity-metadata-contract.md`
105
+
106
+ ---
107
+
108
+ ## Backward compatibility
109
+
110
+ - Records without `identity` remain valid.
111
+ - Existing producers may continue to omit identity.
112
+ - Query APIs should not require identity.
113
+
114
+ ---
115
+
116
+ ## Acceptance criteria
117
+
118
+ - `identity` can be written on `startRecord`.
119
+ - `identity` remains present after `completeRecord` / `failRecord` unless explicitly overwritten.
120
+ - `identity` is returned by `getRecord` and `findRecords`.
121
+ - Dotted-path queries against identity subfields work for Mongo backend (`"identity.taskId"` equality).
122
+ - Index configuration supports `identity.taskId` (either natively or via documented index config).
123
+
@@ -0,0 +1,175 @@
1
+ # Activix Integration
2
+
3
+ This packaged doc summarizes task-activity tracking via `@xronoces/activix`.
4
+
5
+ ## Activix Integration Best Practices Checklist
6
+
7
+ Use this as the operational checklist for integrating `@xronoces/activix` correctly and consistently.
8
+
9
+ ### 1) Ownership and boundaries
10
+
11
+ - Treat **Activix** as the activity-domain layer:
12
+ - lifecycle semantics (`start` / `in_progress` / `complete` / `fail`)
13
+ - activity contract validation
14
+ - run-context correlation persistence
15
+ - Treat **xronox-store** as the data tier:
16
+ - cache, write mode, retry policy, Mongo persistence behavior
17
+ - collection/index management
18
+ - generic primary-key storage mechanics
19
+
20
+ ### 2) Construct once, reuse instance
21
+
22
+ - Prefer one `Activix` instance per service process (or one shared `XronoxStore` with `skipStoreInit: true`).
23
+ - Do not create a new `Activix` per tiny unit of work unless architecture requires it.
24
+ - If multi-instance is expected, pass `diagnostics` metadata so logs are self-identifying.
25
+
26
+ ```ts
27
+ const ax = new Activix({
28
+ storageMode: 'automatic', // or 'database'
29
+ mongoUri: process.env.MONGO_URI!,
30
+ collection: 'task-activities',
31
+ diagnostics: {
32
+ owner: '@your-org/your-service',
33
+ component: 'graph-executor',
34
+ instanceLabel: 'worker-main',
35
+ workerId: process.pid.toString(),
36
+ },
37
+ });
38
+ await ax.init();
39
+ ```
40
+
41
+ ### 3) Define collection contract explicitly
42
+
43
+ - Set collection names in code (`collection` or `collections`).
44
+ - Keep `primaryKey` and `primaryKeyPrefix` intentional.
45
+ - If you index `activityId` uniquely, Activix must always persist a non-null `activityId` (current behavior).
46
+ - Ensure store-side visibility matches `purgeAtField` if using soft purge.
47
+
48
+ ### 4) Always pass run context at write time
49
+
50
+ - `runContext` is runtime context, not constructor config.
51
+ - Always pass a real `sessionId` from true upstream when available.
52
+ - Forward run context through layers; do not replace inherited correlation IDs.
53
+
54
+ ```ts
55
+ const { activityId } = await ax.startRecord({
56
+ runContext: {
57
+ sessionId: request.sessionId,
58
+ jobId: request.jobId,
59
+ taskId: request.taskId,
60
+ },
61
+ outer: {
62
+ input: payload,
63
+ output: null,
64
+ metadata: { type: 'task' },
65
+ },
66
+ });
67
+ ```
68
+
69
+ ### 5) Use lifecycle APIs as intended
70
+
71
+ - `startRecord()` first; keep returned `activityId`.
72
+ - Use the same `activityId` for all follow-ups:
73
+ - `markInProgress(activityId, ...)`
74
+ - `completeRecord(activityId, ...)`
75
+ - `failRecord(activityId, ...)`
76
+ - `patchRecord(activityId, ...)`
77
+ - `getRecord(activityId)`
78
+ - Never pass empty IDs; treat missing ID as integration bug and fail fast.
79
+
80
+ ### 6) Respect payload ownership rules
81
+
82
+ - Integrators should provide domain payload (`outer`/`inner`/`runContext`).
83
+ - Do not provide lifecycle-owned fields manually:
84
+ - `activityId` / configured primary key
85
+ - `status`, `startTime`, `endTime`, `duration`
86
+ - `createdAt`, `updatedAt`
87
+ - `error` (except via `failRecord`)
88
+
89
+ ### 7) Validate shape and observability expectations
90
+
91
+ - `outer` is required and must contain:
92
+ - `input`
93
+ - `output` (or omitted initially and normalized)
94
+ - `metadata` object
95
+ - Optional `inner` must follow request/response/metadata shape.
96
+ - Enable logs during rollout:
97
+ - `ACTIVIX_LOGS_LEVEL=debug`
98
+ - `XRONOX_STORE_LOG=1`
99
+
100
+ ### 8) Multi-instance init diagnostics
101
+
102
+ If `storageMode: 'automatic'`, each Activix instance performs:
103
+
104
+ 1. one Mongo probe
105
+ 2. one store init
106
+
107
+ Use these fields to distinguish healthy multi-instance behavior from bugs:
108
+
109
+ - `activixInstanceId`
110
+ - `alreadyInitialized`
111
+ - `usingInitPromise`
112
+ - `initCallCount`
113
+
114
+ Expected pattern: one probe + one store init per `activixInstanceId`.
115
+
116
+ ### 9) Reliability and retry expectations
117
+
118
+ - Retry/classification policy belongs to xronox-store.
119
+ - For deterministic Mongo failures (e.g. duplicate key), rely on current store behavior/version policy.
120
+ - Keep `@xronoces/xronox-store` up to date and pin known-good versions in CI.
121
+
122
+ ### 10) Minimum production readiness checklist
123
+
124
+ - [ ] Single shared Activix instance (or intentional multi-instance with diagnostics metadata)
125
+ - [ ] Stable collection configuration committed in code
126
+ - [ ] `runContext.sessionId` passed from upstream for correlated runs
127
+ - [ ] `startRecord` return value (`activityId`) propagated through full lifecycle
128
+ - [ ] Logging flags documented for operations team
129
+ - [ ] Integration test path covers start -> progress -> complete/fail
130
+ - [ ] Dependency version policy defined for `@xronoces/xronox-store`
131
+
132
+ ---
133
+
134
+ For deeper reference, see:
135
+
136
+ - `README.md`
137
+ - `.docs/run-context-object.md`
138
+ - `.docs/session-id-usage.md`
139
+ - `.docs/activity-structure.md`
140
+ - `.docs/logging-stack.md`
141
+
142
+ ## What it tracks
143
+
144
+ A single `runTask()` call can emit phase records such as:
145
+
146
+ - `local`
147
+ - `narrix`
148
+ - `pipeline_pre`
149
+ - `direct`
150
+ - `audit`
151
+ - `polish`
152
+ - `narrix_then_direct`
153
+
154
+ All records for a run share a correlation id for grouping.
155
+
156
+ ## Enablement
157
+
158
+ - Controlled by `ACTIVIX_ENABLED` (default off in README guidance).
159
+ - Activix failures are treated as non-fatal to task execution.
160
+
161
+ ## Typical metadata
162
+
163
+ - `skillKey`, `executionStrategiesSummary`, `narrixMode`, `jobId`, `agentId`
164
+ - graph/node identity fields
165
+ - start/end/duration, status transitions
166
+ - success metadata and error details
167
+
168
+ ## Stale cleanup
169
+
170
+ Use stale-marking (for example periodic `markStaleRecords`) to convert stuck `started` records to `timeout`.
171
+
172
+ ## Related
173
+
174
+ - `README.md` (Activix section)
175
+ - `documenations/run-task-execution-flow.md`