@exellix/ai-skills 7.0.10 → 7.0.12

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 (205) hide show
  1. package/dist/client/skill-executor.d.ts.map +1 -1
  2. package/dist/client/skill-executor.js +3 -7
  3. package/dist/client/skill-executor.js.map +1 -1
  4. package/dist/index.d.ts +0 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +0 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/invocation/aiProfileModelFormat.d.ts +2 -0
  9. package/dist/invocation/aiProfileModelFormat.d.ts.map +1 -1
  10. package/dist/invocation/aiProfileModelFormat.js +7 -18
  11. package/dist/invocation/aiProfileModelFormat.js.map +1 -1
  12. package/dist/invocation/resolveModelConfigForSkillInvoke.d.ts.map +1 -1
  13. package/dist/invocation/resolveModelConfigForSkillInvoke.js +1 -2
  14. package/dist/invocation/resolveModelConfigForSkillInvoke.js.map +1 -1
  15. package/dist/invocation/resolveSkillProfileToWireModel.d.ts.map +1 -1
  16. package/dist/invocation/resolveSkillProfileToWireModel.js +2 -6
  17. package/dist/invocation/resolveSkillProfileToWireModel.js.map +1 -1
  18. package/dist/optimixer/build-optimixer-model-profile.d.ts.map +1 -1
  19. package/dist/optimixer/build-optimixer-model-profile.js +1 -8
  20. package/dist/optimixer/build-optimixer-model-profile.js.map +1 -1
  21. package/package.json +3 -3
  22. package/dist/analysis/analyze-skill-request.d.ts +0 -13
  23. package/dist/analysis/analyze-skill-request.d.ts.map +0 -1
  24. package/dist/analysis/analyze-skill-request.js +0 -103
  25. package/dist/analysis/analyze-skill-request.js.map +0 -1
  26. package/dist/analysis/build-skill-request-analysis-packet.d.ts +0 -14
  27. package/dist/analysis/build-skill-request-analysis-packet.d.ts.map +0 -1
  28. package/dist/analysis/build-skill-request-analysis-packet.js +0 -106
  29. package/dist/analysis/build-skill-request-analysis-packet.js.map +0 -1
  30. package/dist/analysis/collect-deterministic-findings.d.ts +0 -14
  31. package/dist/analysis/collect-deterministic-findings.d.ts.map +0 -1
  32. package/dist/analysis/collect-deterministic-findings.js +0 -245
  33. package/dist/analysis/collect-deterministic-findings.js.map +0 -1
  34. package/dist/analysis/constants.d.ts +0 -5
  35. package/dist/analysis/constants.d.ts.map +0 -1
  36. package/dist/analysis/constants.js +0 -5
  37. package/dist/analysis/constants.js.map +0 -1
  38. package/dist/analysis/format-skill-request-analysis-markdown.d.ts +0 -8
  39. package/dist/analysis/format-skill-request-analysis-markdown.d.ts.map +0 -1
  40. package/dist/analysis/format-skill-request-analysis-markdown.js +0 -121
  41. package/dist/analysis/format-skill-request-analysis-markdown.js.map +0 -1
  42. package/dist/analysis/path-utils.d.ts +0 -11
  43. package/dist/analysis/path-utils.d.ts.map +0 -1
  44. package/dist/analysis/path-utils.js +0 -69
  45. package/dist/analysis/path-utils.js.map +0 -1
  46. package/dist/analysis/sanitize-for-packet.d.ts +0 -28
  47. package/dist/analysis/sanitize-for-packet.d.ts.map +0 -1
  48. package/dist/analysis/sanitize-for-packet.js +0 -107
  49. package/dist/analysis/sanitize-for-packet.js.map +0 -1
  50. package/dist/analysis/types.d.ts +0 -124
  51. package/dist/analysis/types.d.ts.map +0 -1
  52. package/dist/analysis/types.js +0 -2
  53. package/dist/analysis/types.js.map +0 -1
  54. package/dist/catalog/canonical-skill-key.d.ts +0 -5
  55. package/dist/catalog/canonical-skill-key.d.ts.map +0 -1
  56. package/dist/catalog/canonical-skill-key.js +0 -16
  57. package/dist/catalog/canonical-skill-key.js.map +0 -1
  58. package/dist/catalog/constants.d.ts +0 -7
  59. package/dist/catalog/constants.d.ts.map +0 -1
  60. package/dist/catalog/constants.js +0 -7
  61. package/dist/catalog/constants.js.map +0 -1
  62. package/dist/catalog/env.d.ts +0 -4
  63. package/dist/catalog/env.d.ts.map +0 -1
  64. package/dist/catalog/env.js +0 -15
  65. package/dist/catalog/env.js.map +0 -1
  66. package/dist/catalog/gateway-template.d.ts +0 -6
  67. package/dist/catalog/gateway-template.d.ts.map +0 -1
  68. package/dist/catalog/gateway-template.js +0 -15
  69. package/dist/catalog/gateway-template.js.map +0 -1
  70. package/dist/catalog/index.d.ts +0 -3
  71. package/dist/catalog/index.d.ts.map +0 -1
  72. package/dist/catalog/index.js +0 -3
  73. package/dist/catalog/index.js.map +0 -1
  74. package/dist/catalog/seed.d.ts +0 -12
  75. package/dist/catalog/seed.d.ts.map +0 -1
  76. package/dist/catalog/seed.js +0 -45
  77. package/dist/catalog/seed.js.map +0 -1
  78. package/dist/catalog/skill-catalog.d.ts +0 -28
  79. package/dist/catalog/skill-catalog.d.ts.map +0 -1
  80. package/dist/catalog/skill-catalog.js +0 -139
  81. package/dist/catalog/skill-catalog.js.map +0 -1
  82. package/dist/catalog/store-factory.d.ts +0 -18
  83. package/dist/catalog/store-factory.d.ts.map +0 -1
  84. package/dist/catalog/store-factory.js +0 -36
  85. package/dist/catalog/store-factory.js.map +0 -1
  86. package/dist/catalog/types.d.ts +0 -61
  87. package/dist/catalog/types.d.ts.map +0 -1
  88. package/dist/catalog/types.js +0 -22
  89. package/dist/catalog/types.js.map +0 -1
  90. package/dist/catalog-manager/createAiSkillsCatalogApi.d.ts +0 -8
  91. package/dist/catalog-manager/createAiSkillsCatalogApi.d.ts.map +0 -1
  92. package/dist/catalog-manager/createAiSkillsCatalogApi.js +0 -162
  93. package/dist/catalog-manager/createAiSkillsCatalogApi.js.map +0 -1
  94. package/dist/catalog-manager/index.d.ts +0 -3
  95. package/dist/catalog-manager/index.d.ts.map +0 -1
  96. package/dist/catalog-manager/index.js +0 -2
  97. package/dist/catalog-manager/index.js.map +0 -1
  98. package/dist/catalog-manager/types.d.ts +0 -84
  99. package/dist/catalog-manager/types.d.ts.map +0 -1
  100. package/dist/catalog-manager/types.js +0 -2
  101. package/dist/catalog-manager/types.js.map +0 -1
  102. package/dist/catalox/ai-skills-catalog.d.ts +0 -45
  103. package/dist/catalox/ai-skills-catalog.d.ts.map +0 -1
  104. package/dist/catalox/ai-skills-catalog.js +0 -193
  105. package/dist/catalox/ai-skills-catalog.js.map +0 -1
  106. package/dist/catalox/ai-sub-skills-catalog.d.ts +0 -7
  107. package/dist/catalox/ai-sub-skills-catalog.d.ts.map +0 -1
  108. package/dist/catalox/ai-sub-skills-catalog.js +0 -72
  109. package/dist/catalox/ai-sub-skills-catalog.js.map +0 -1
  110. package/dist/catalox/catalog-guards.d.ts +0 -14
  111. package/dist/catalox/catalog-guards.d.ts.map +0 -1
  112. package/dist/catalox/catalog-guards.js +0 -86
  113. package/dist/catalox/catalog-guards.js.map +0 -1
  114. package/dist/catalox/catalog-native-store.d.ts +0 -18
  115. package/dist/catalox/catalog-native-store.d.ts.map +0 -1
  116. package/dist/catalox/catalog-native-store.js +0 -28
  117. package/dist/catalox/catalog-native-store.js.map +0 -1
  118. package/dist/catalox/catalog-normalization.d.ts +0 -82
  119. package/dist/catalox/catalog-normalization.d.ts.map +0 -1
  120. package/dist/catalox/catalog-normalization.js +0 -329
  121. package/dist/catalox/catalog-normalization.js.map +0 -1
  122. package/dist/catalox/catalox-native-io.d.ts +0 -13
  123. package/dist/catalox/catalox-native-io.d.ts.map +0 -1
  124. package/dist/catalox/catalox-native-io.js +0 -16
  125. package/dist/catalox/catalox-native-io.js.map +0 -1
  126. package/dist/catalox/catalox-provision-access.d.ts +0 -12
  127. package/dist/catalox/catalox-provision-access.d.ts.map +0 -1
  128. package/dist/catalox/catalox-provision-access.js +0 -28
  129. package/dist/catalox/catalox-provision-access.js.map +0 -1
  130. package/dist/catalox/catalox-skill-errors.d.ts +0 -15
  131. package/dist/catalox/catalox-skill-errors.d.ts.map +0 -1
  132. package/dist/catalox/catalox-skill-errors.js +0 -29
  133. package/dist/catalox/catalox-skill-errors.js.map +0 -1
  134. package/dist/catalox/init-firebase-and-catalox.d.ts +0 -8
  135. package/dist/catalox/init-firebase-and-catalox.d.ts.map +0 -1
  136. package/dist/catalox/init-firebase-and-catalox.js +0 -48
  137. package/dist/catalox/init-firebase-and-catalox.js.map +0 -1
  138. package/dist/catalox/list-ai-skills-catalog.d.ts +0 -30
  139. package/dist/catalox/list-ai-skills-catalog.d.ts.map +0 -1
  140. package/dist/catalox/list-ai-skills-catalog.js +0 -135
  141. package/dist/catalox/list-ai-skills-catalog.js.map +0 -1
  142. package/dist/catalox/skill-gateway-template-utils.d.ts +0 -11
  143. package/dist/catalox/skill-gateway-template-utils.d.ts.map +0 -1
  144. package/dist/catalox/skill-gateway-template-utils.js +0 -31
  145. package/dist/catalox/skill-gateway-template-utils.js.map +0 -1
  146. package/dist/catalox/skill-optimixer-catalog.d.ts +0 -33
  147. package/dist/catalox/skill-optimixer-catalog.d.ts.map +0 -1
  148. package/dist/catalox/skill-optimixer-catalog.js +0 -106
  149. package/dist/catalox/skill-optimixer-catalog.js.map +0 -1
  150. package/dist/catalox/skill-runtime-catalog.d.ts +0 -8
  151. package/dist/catalox/skill-runtime-catalog.d.ts.map +0 -1
  152. package/dist/catalox/skill-runtime-catalog.js +0 -39
  153. package/dist/catalox/skill-runtime-catalog.js.map +0 -1
  154. package/dist/catalox/skill-search-context.d.ts +0 -25
  155. package/dist/catalox/skill-search-context.d.ts.map +0 -1
  156. package/dist/catalox/skill-search-context.js +0 -72
  157. package/dist/catalox/skill-search-context.js.map +0 -1
  158. package/dist/catalox/skill-support-templates.d.ts +0 -50
  159. package/dist/catalox/skill-support-templates.d.ts.map +0 -1
  160. package/dist/catalox/skill-support-templates.js +0 -170
  161. package/dist/catalox/skill-support-templates.js.map +0 -1
  162. package/dist/catalox/skill-synthesis-template-integrity.d.ts +0 -26
  163. package/dist/catalox/skill-synthesis-template-integrity.d.ts.map +0 -1
  164. package/dist/catalox/skill-synthesis-template-integrity.js +0 -186
  165. package/dist/catalox/skill-synthesis-template-integrity.js.map +0 -1
  166. package/dist/catalox/skill-template-catalog-mutations.d.ts +0 -127
  167. package/dist/catalox/skill-template-catalog-mutations.d.ts.map +0 -1
  168. package/dist/catalox/skill-template-catalog-mutations.js +0 -582
  169. package/dist/catalox/skill-template-catalog-mutations.js.map +0 -1
  170. package/dist/catalox/skill-template-markdown.d.ts +0 -34
  171. package/dist/catalox/skill-template-markdown.d.ts.map +0 -1
  172. package/dist/catalox/skill-template-markdown.js +0 -106
  173. package/dist/catalox/skill-template-markdown.js.map +0 -1
  174. package/dist/catalox/skill-template-seeds.d.ts +0 -19
  175. package/dist/catalox/skill-template-seeds.d.ts.map +0 -1
  176. package/dist/catalox/skill-template-seeds.js +0 -100
  177. package/dist/catalox/skill-template-seeds.js.map +0 -1
  178. package/dist/catalox/skill-template-variables.d.ts +0 -98
  179. package/dist/catalox/skill-template-variables.d.ts.map +0 -1
  180. package/dist/catalox/skill-template-variables.js +0 -440
  181. package/dist/catalox/skill-template-variables.js.map +0 -1
  182. package/dist/catalox/skill-templates.d.ts +0 -72
  183. package/dist/catalox/skill-templates.d.ts.map +0 -1
  184. package/dist/catalox/skill-templates.js +0 -110
  185. package/dist/catalox/skill-templates.js.map +0 -1
  186. package/dist/client/audit-manager.d.ts +0 -27
  187. package/dist/client/audit-manager.d.ts.map +0 -1
  188. package/dist/client/audit-manager.js +0 -260
  189. package/dist/client/audit-manager.js.map +0 -1
  190. package/dist/client/invoke-skill-via-funcx.d.ts +0 -11
  191. package/dist/client/invoke-skill-via-funcx.d.ts.map +0 -1
  192. package/dist/client/invoke-skill-via-funcx.js +0 -51
  193. package/dist/client/invoke-skill-via-funcx.js.map +0 -1
  194. package/dist/client/task-executor.d.ts +0 -21
  195. package/dist/client/task-executor.d.ts.map +0 -1
  196. package/dist/client/task-executor.js +0 -50
  197. package/dist/client/task-executor.js.map +0 -1
  198. package/dist/invocation/normalizeModelConfigForGatewayInvoke.d.ts +0 -9
  199. package/dist/invocation/normalizeModelConfigForGatewayInvoke.d.ts.map +0 -1
  200. package/dist/invocation/normalizeModelConfigForGatewayInvoke.js +0 -77
  201. package/dist/invocation/normalizeModelConfigForGatewayInvoke.js.map +0 -1
  202. package/dist/metadata.d.ts +0 -7
  203. package/dist/metadata.d.ts.map +0 -1
  204. package/dist/metadata.js +0 -65
  205. package/dist/metadata.js.map +0 -1
@@ -1,106 +0,0 @@
1
- import { buildSkillGatewayInvokePayload } from "../client/build-gateway-invoke-request.js";
2
- import { renderSkillTemplatesWithRendrix } from "../utils/rendrix-render-skill-templates.js";
3
- import { defaultAiSkillsCataloxContext, fetchSkillTemplatesFromCatalox, } from "../catalox/skill-templates.js";
4
- import { resolveGatewayJobAndTaskIds } from "../utils/resolve-gateway-job-task-ids.js";
5
- import { resolveOutputContractFields } from "../utils/normalize-output-parsed.js";
6
- import { collectDeterministicFindings } from "./collect-deterministic-findings.js";
7
- import { sanitizeGatewayPayloadForPacket, sanitizeRunSkillRequestForPacket, sanitizeTemplatesForPacket, } from "./sanitize-for-packet.js";
8
- import { extractFlexMdFrameHint, extractTemplateTokenInventory } from "./path-utils.js";
9
- /**
10
- * Builds the real sanitized gateway invoke packet and SDK {@link deterministicFindings}
11
- * without calling ai-gateway or executing the target skill.
12
- */
13
- export async function buildSkillRequestAnalysisPacket(params) {
14
- const { catalox, skillRequest, options } = params;
15
- const maxTemplateChars = options?.maxTemplateCharsInPacket ?? 12_000;
16
- const functionId = skillRequest.skillKey;
17
- let instructionsRaw;
18
- let promptRaw;
19
- let catalogStatus;
20
- if (options?.templateOverride) {
21
- instructionsRaw = options.templateOverride.instructions;
22
- promptRaw = options.templateOverride.prompt;
23
- }
24
- else {
25
- const cxCtx = defaultAiSkillsCataloxContext({ appId: options?.cataloxAppId });
26
- const fetched = await fetchSkillTemplatesFromCatalox(catalox, cxCtx, skillRequest.skillKey, {
27
- audit: false,
28
- });
29
- instructionsRaw = fetched.instructionsPayload;
30
- promptRaw = fetched.promptPayload;
31
- catalogStatus = fetched.status;
32
- }
33
- const { jobId, taskId } = resolveGatewayJobAndTaskIds({
34
- jobId: skillRequest.jobId,
35
- taskId: skillRequest.taskId,
36
- identity: skillRequest.identity,
37
- });
38
- const gatewayPayload = buildSkillGatewayInvokePayload({
39
- skillRequest,
40
- jobId,
41
- taskId,
42
- instructionsPayload: instructionsRaw,
43
- promptPayload: promptRaw,
44
- });
45
- let instructionsRendered = instructionsRaw;
46
- let promptRendered = promptRaw;
47
- const renderFindings = [];
48
- try {
49
- const rendered = renderSkillTemplatesWithRendrix(skillRequest, instructionsRaw, promptRaw);
50
- instructionsRendered = rendered.instructionsRendered;
51
- promptRendered = rendered.promptRendered;
52
- }
53
- catch (e) {
54
- renderFindings.push({
55
- id: "TEMPLATE_RENDER_FAILED",
56
- severity: "error",
57
- category: "template",
58
- message: e instanceof Error ? e.message : String(e),
59
- suggestion: "Fix smartInput paths, workingMemory, or template tokens before invoke.",
60
- });
61
- }
62
- const workingMemory = (gatewayPayload.workingMemory ?? {});
63
- const deterministicFindings = [
64
- ...renderFindings,
65
- ...collectDeterministicFindings({
66
- skillRequest,
67
- workingMemory,
68
- instructionsRaw,
69
- promptRaw,
70
- instructionsRendered,
71
- promptRendered,
72
- }),
73
- ];
74
- const templatesSanitized = sanitizeTemplatesForPacket({ instructions: instructionsRaw, prompt: promptRaw }, { instructions: instructionsRendered, prompt: promptRendered }, maxTemplateChars);
75
- if (catalogStatus) {
76
- templatesSanitized.catalogStatus = catalogStatus;
77
- }
78
- const packet = {
79
- functionId,
80
- aiRequestId: gatewayPayload.aiRequestId,
81
- jobId: jobId || undefined,
82
- taskId: taskId || undefined,
83
- agentId: skillRequest.agentId,
84
- jobTypeId: skillRequest.jobTypeId,
85
- taskTypeId: skillRequest.taskTypeId,
86
- gatewayPayload: sanitizeGatewayPayloadForPacket(gatewayPayload, maxTemplateChars),
87
- runSkillRequest: sanitizeRunSkillRequestForPacket(skillRequest),
88
- templates: templatesSanitized,
89
- ...(skillRequest.outputContract !== undefined ? { outputContract: skillRequest.outputContract } : {}),
90
- resolvedOutputFields: resolveOutputContractFields(skillRequest.outputContract),
91
- deterministicFindings,
92
- flexMdFrameHint: extractFlexMdFrameHint(instructionsRaw, promptRaw, instructionsRendered),
93
- templateTokenInventory: extractTemplateTokenInventory(instructionsRaw, promptRaw),
94
- };
95
- return {
96
- packet,
97
- deterministicFindings,
98
- gatewayPayload,
99
- instructionsRaw,
100
- promptRaw,
101
- instructionsRendered,
102
- promptRendered,
103
- catalogStatus,
104
- };
105
- }
106
- //# sourceMappingURL=build-skill-request-analysis-packet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-skill-request-analysis-packet.js","sourceRoot":"","sources":["../../src/analysis/build-skill-request-analysis-packet.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { RunSkillRequest } from "../types.js";
2
- import type { SkillRequestAnalysisFinding } from "./types.js";
3
- export type CollectDeterministicFindingsParams = {
4
- skillRequest: RunSkillRequest;
5
- workingMemory: Record<string, unknown>;
6
- instructionsRaw: string;
7
- promptRaw: string;
8
- instructionsRendered: string;
9
- promptRendered: string;
10
- templateSizeThreshold?: number;
11
- };
12
- export declare function collectDeterministicFindings(params: CollectDeterministicFindingsParams): SkillRequestAnalysisFinding[];
13
- export declare function verdictFromFindings(findings: SkillRequestAnalysisFinding[]): "ok" | "warnings" | "errors";
14
- //# sourceMappingURL=collect-deterministic-findings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collect-deterministic-findings.d.ts","sourceRoot":"","sources":["../../src/analysis/collect-deterministic-findings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAUnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AA8B9D,MAAM,MAAM,kCAAkC,GAAG;IAC7C,YAAY,EAAE,eAAe,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,kCAAkC,GAAG,2BAA2B,EAAE,CAoQtH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,2BAA2B,EAAE,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAIzG"}
@@ -1,245 +0,0 @@
1
- import { validateMandatoryActivixInvokeFields } from "../utils/validate-mandatory-activix-invoke-fields.js";
2
- import { validateSessionIdAgreement } from "../utils/validate-session-id.js";
3
- import { resolveGatewayJobAndTaskIds } from "../utils/resolve-gateway-job-task-ids.js";
4
- import { resolveAiEngineIdForRunSkill } from "../utils/resolve-run-skill-ai-engine.js";
5
- import { assessModelConfigForInvoke } from "../utils/validate-model-config-for-invoke.js";
6
- import { resolveOutputContractFields, markdownHeadingToFieldKey, } from "../utils/normalize-output-parsed.js";
7
- import { extractFlexMdFrameHint, extractTemplateTokenInventory, findUnresolvedMustacheTokens, isEmptyResolvedValue, resolveDotPath, } from "./path-utils.js";
8
- const SECTION_HEADER = /^#{2,3}\s+(.+?)\s*$/gm;
9
- function finding(partial) {
10
- return partial;
11
- }
12
- function templateSectionKeys(...texts) {
13
- const keys = new Set();
14
- for (const text of texts) {
15
- if (!text)
16
- continue;
17
- for (const match of text.matchAll(SECTION_HEADER)) {
18
- const key = markdownHeadingToFieldKey(match[1] ?? "");
19
- if (key)
20
- keys.add(key);
21
- }
22
- }
23
- return keys;
24
- }
25
- export function collectDeterministicFindings(params) {
26
- const findings = [];
27
- const { skillRequest, workingMemory } = params;
28
- const hasSmartInput = skillRequest.smartInput !== undefined;
29
- try {
30
- validateMandatoryActivixInvokeFields(skillRequest);
31
- }
32
- catch (e) {
33
- findings.push(finding({
34
- id: "ACTIVIX_MANDATORY_FIELDS_MISSING",
35
- severity: "error",
36
- category: "activix",
37
- message: e instanceof Error ? e.message : String(e),
38
- suggestion: "Set non-empty agentId, jobTypeId, and taskTypeId on RunSkillRequest.",
39
- }));
40
- }
41
- const { jobId, taskId, missingJobId, missingTaskId } = resolveGatewayJobAndTaskIds({
42
- jobId: skillRequest.jobId,
43
- taskId: skillRequest.taskId,
44
- identity: skillRequest.identity,
45
- });
46
- if (missingJobId) {
47
- findings.push(finding({
48
- id: "JOB_ID_MISSING",
49
- severity: "warning",
50
- category: "activix",
51
- path: "jobId",
52
- message: "jobId is missing or empty on the request and identity.",
53
- suggestion: "Supply a non-empty jobId before invoke.",
54
- }));
55
- }
56
- if (missingTaskId) {
57
- findings.push(finding({
58
- id: "TASK_ID_MISSING",
59
- severity: "warning",
60
- category: "activix",
61
- path: "taskId",
62
- message: "taskId is missing or empty on the request and identity.",
63
- suggestion: "Supply a non-empty taskId before invoke.",
64
- }));
65
- }
66
- try {
67
- const identitySession = skillRequest.identity &&
68
- typeof skillRequest.identity === "object" &&
69
- !Array.isArray(skillRequest.identity)
70
- ? skillRequest.identity.sessionId
71
- : undefined;
72
- validateSessionIdAgreement(skillRequest.sessionId, identitySession);
73
- }
74
- catch (e) {
75
- findings.push(finding({
76
- id: "SESSION_ID_MISMATCH",
77
- severity: "error",
78
- category: "session",
79
- path: "sessionId",
80
- message: e instanceof Error ? e.message : String(e),
81
- suggestion: "Align sessionId and identity.sessionId or omit one.",
82
- }));
83
- }
84
- const modelIssue = assessModelConfigForInvoke(skillRequest.modelConfig);
85
- if (modelIssue?.code === "MODEL_MISSING") {
86
- findings.push(finding({
87
- id: "MODEL_CONFIG_MISSING",
88
- severity: "error",
89
- category: "modelConfig",
90
- path: "modelConfig.model",
91
- message: modelIssue.message,
92
- suggestion: "Set modelConfig.model (or modelId) to the concrete provider wire id from resolveInvocationPlan in @exellix/ai-tasks.",
93
- }));
94
- }
95
- const mc = skillRequest.modelConfig;
96
- if (mc &&
97
- (mc.maxTokens !== undefined || mc.max_completion_tokens !== undefined || mc.max_output_tokens !== undefined)) {
98
- findings.push(finding({
99
- id: "CALLER_MAX_TOKENS_IGNORED",
100
- severity: "warning",
101
- category: "modelConfig",
102
- path: "modelConfig.maxTokens",
103
- message: "Caller-supplied maxTokens is ignored — @x12i/optimixer sets the completion budget before gateway.invoke() (gateway v10 requires maxTokens; runSkill merges Optimixer output).",
104
- suggestion: "Remove maxTokens from modelConfig; tune Catalox optimixer catalog fields instead.",
105
- }));
106
- }
107
- try {
108
- resolveAiEngineIdForRunSkill(skillRequest);
109
- }
110
- catch (e) {
111
- findings.push(finding({
112
- id: "AI_ENGINE_ID_UNKNOWN",
113
- severity: "error",
114
- category: "catalog",
115
- path: "aiEngineId",
116
- message: e instanceof Error ? e.message : String(e),
117
- }));
118
- }
119
- const inputEmpty = skillRequest.input === undefined ||
120
- skillRequest.input === null ||
121
- (typeof skillRequest.input === "string" && skillRequest.input.trim() === "") ||
122
- (typeof skillRequest.input === "object" &&
123
- !Array.isArray(skillRequest.input) &&
124
- Object.keys(skillRequest.input).length === 0);
125
- if (inputEmpty) {
126
- findings.push(finding({
127
- id: "INPUT_EMPTY",
128
- severity: "warning",
129
- category: "workingMemory",
130
- path: "input",
131
- message: "RunSkillRequest.input is empty; workingMemory.input may not carry user content.",
132
- }));
133
- }
134
- const smartInput = skillRequest.smartInput;
135
- const paths = smartInput?.paths ?? [];
136
- if (paths.length > 0) {
137
- for (const entry of paths) {
138
- const path = typeof entry.path === "string" ? entry.path.trim() : "";
139
- if (!path) {
140
- findings.push(finding({
141
- id: "SMART_INPUT_PATH_EMPTY",
142
- severity: "warning",
143
- category: "smartInput",
144
- message: "smartInput.paths contains an entry with an empty path.",
145
- }));
146
- continue;
147
- }
148
- const resolved = resolveDotPath(workingMemory, path);
149
- const required = entry.required === true;
150
- if (!resolved.found || isEmptyResolvedValue(resolved.value)) {
151
- findings.push(finding({
152
- id: required ? "SMART_INPUT_PATH_MISSING" : "SMART_INPUT_PATH_EMPTY_VALUE",
153
- severity: required ? "error" : "warning",
154
- category: "smartInput",
155
- path,
156
- message: required
157
- ? `Required smartInput path "${path}" does not resolve in workingMemory.`
158
- : `smartInput path "${path}" is missing or empty in workingMemory.`,
159
- suggestion: `Ensure variables, executionMemory, or input populate "${path}".`,
160
- }));
161
- }
162
- }
163
- }
164
- const unresolvedInstr = findUnresolvedMustacheTokens(params.instructionsRendered, hasSmartInput);
165
- const unresolvedPrompt = findUnresolvedMustacheTokens(params.promptRendered, hasSmartInput);
166
- for (const token of [...unresolvedInstr, ...unresolvedPrompt]) {
167
- findings.push(finding({
168
- id: "TEMPLATE_TOKEN_UNRESOLVED",
169
- severity: "warning",
170
- category: "template",
171
- message: `Rendered template still contains unresolved token ${token}.`,
172
- evidence: token,
173
- }));
174
- }
175
- const contractFields = resolveOutputContractFields(skillRequest.outputContract);
176
- if (contractFields.length > 0) {
177
- const sectionKeys = templateSectionKeys(params.instructionsRaw, params.promptRaw);
178
- const flexHint = extractFlexMdFrameHint(params.instructionsRaw, params.promptRaw);
179
- for (const field of contractFields) {
180
- if (!sectionKeys.has(field) && flexHint === undefined) {
181
- findings.push(finding({
182
- id: "OUTPUT_CONTRACT_FIELD_NOT_IN_TEMPLATE",
183
- severity: "warning",
184
- category: "outputContract",
185
- path: field,
186
- message: `outputContract expects "${field}" but no matching ### heading was found in templates.`,
187
- suggestion: "Add a markdown section or FlexMD @payload for this field.",
188
- }));
189
- }
190
- }
191
- }
192
- const inventory = extractTemplateTokenInventory(params.instructionsRaw, params.promptRaw);
193
- for (const tokenPath of inventory) {
194
- const root = tokenPath.split(".")[0];
195
- if (root === "smartInput")
196
- continue;
197
- const resolved = resolveDotPath(workingMemory, tokenPath);
198
- if (!resolved.found && root !== "input" && root !== "variables") {
199
- const altRoot = resolveDotPath(workingMemory, root);
200
- if (!altRoot.found) {
201
- findings.push(finding({
202
- id: "TEMPLATE_TOKEN_LIKELY_MISSING",
203
- severity: "info",
204
- category: "template",
205
- path: tokenPath,
206
- message: `Template references "{{${tokenPath}}}" but "${root}" is not present at workingMemory root.`,
207
- }));
208
- }
209
- }
210
- }
211
- const totalChars = params.instructionsRaw.length +
212
- params.promptRaw.length +
213
- params.instructionsRendered.length +
214
- params.promptRendered.length;
215
- const threshold = params.templateSizeThreshold ?? 80_000;
216
- if (totalChars > threshold) {
217
- findings.push(finding({
218
- id: "TEMPLATE_PAYLOAD_LARGE",
219
- severity: "warning",
220
- category: "template",
221
- message: `Combined template text is ~${totalChars} characters (threshold ${threshold}).`,
222
- suggestion: "Consider shortening templates or raising context limits.",
223
- }));
224
- }
225
- if (!skillRequest.skillKey?.trim()) {
226
- findings.push(finding({
227
- id: "SKILL_KEY_MISSING",
228
- severity: "error",
229
- category: "catalog",
230
- path: "skillKey",
231
- message: "skillKey is required for Catalox template load and gateway actionRef.",
232
- }));
233
- }
234
- void jobId;
235
- void taskId;
236
- return findings;
237
- }
238
- export function verdictFromFindings(findings) {
239
- if (findings.some((f) => f.severity === "error"))
240
- return "errors";
241
- if (findings.some((f) => f.severity === "warning"))
242
- return "warnings";
243
- return "ok";
244
- }
245
- //# sourceMappingURL=collect-deterministic-findings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collect-deterministic-findings.js","sourceRoot":"","sources":["../../src/analysis/collect-deterministic-findings.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /** FuncX catalog id (slash alias accepted by `run()`). Requires `@x12i/funcx` ≥ 4.3.3. */
2
- export declare const FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID = "ai-skills/analyze-gateway-invoke-request";
3
- /** Minimum `@x12i/funcx` version that ships the gateway invoke analyzer (ai-profiles mode presets ≥4.3.3). */
4
- export declare const FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY = "4.3.3";
5
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/analysis/constants.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,eAAO,MAAM,uCAAuC,6CAA6C,CAAC;AAElG,8GAA8G;AAC9G,eAAO,MAAM,qCAAqC,UAAU,CAAC"}
@@ -1,5 +0,0 @@
1
- /** FuncX catalog id (slash alias accepted by `run()`). Requires `@x12i/funcx` ≥ 4.3.3. */
2
- export const FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID = "ai-skills/analyze-gateway-invoke-request";
3
- /** Minimum `@x12i/funcx` version that ships the gateway invoke analyzer (ai-profiles mode presets ≥4.3.3). */
4
- export const FUNCX_MIN_VERSION_FOR_ANALYZE_GATEWAY = "4.3.3";
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/analysis/constants.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uCAAuC,GAAG,0CAA0C,CAAC;AAElG,8GAA8G;AAC9G,MAAM,CAAC,MAAM,qCAAqC,GAAG,OAAO,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { SkillRequestAnalysisFinding, SkillRequestAnalysisReport } from "./types.js";
2
- export declare function formatSkillRequestAnalysisMarkdown(args: {
3
- functionId: string;
4
- skillKey: string;
5
- report: SkillRequestAnalysisReport;
6
- deterministicFindings?: SkillRequestAnalysisFinding[];
7
- }): string;
8
- //# sourceMappingURL=format-skill-request-analysis-markdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-skill-request-analysis-markdown.d.ts","sourceRoot":"","sources":["../../src/analysis/format-skill-request-analysis-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAQ1F,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,qBAAqB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACzD,GAAG,MAAM,CA2GT"}
@@ -1,121 +0,0 @@
1
- function severityEmoji(severity) {
2
- if (severity === "error")
3
- return "Error";
4
- if (severity === "warning")
5
- return "Warning";
6
- return "Info";
7
- }
8
- export function formatSkillRequestAnalysisMarkdown(args) {
9
- const { functionId, skillKey, report, deterministicFindings = [] } = args;
10
- const lines = [];
11
- lines.push("# Skill request analysis");
12
- lines.push("");
13
- lines.push("## Summary");
14
- lines.push(`- **Verdict:** ${report.verdict}`);
15
- lines.push(`- **Confidence:** ${typeof report.confidence === "number" ? report.confidence.toFixed(2) : "n/a"}`);
16
- lines.push(`- **Function:** \`${functionId}\` (skillKey: \`${skillKey}\`)`);
17
- lines.push(`- **Recommendation:** ${recommendationForVerdict(report.verdict)}`);
18
- lines.push("");
19
- lines.push("## Request overview");
20
- lines.push(report.inputAssessment.summary || "_No summary._");
21
- lines.push("");
22
- lines.push("## Input & working memory");
23
- lines.push(`- Plausible: **${report.inputAssessment.plausible ? "yes" : "no"}**`);
24
- if (report.inputAssessment.issues.length > 0) {
25
- for (const issue of report.inputAssessment.issues) {
26
- lines.push(`- (${severityEmoji(issue.severity)}) ${issue.message}`);
27
- }
28
- }
29
- else {
30
- lines.push("- No input issues reported.");
31
- }
32
- lines.push("");
33
- lines.push("## Smart Input");
34
- lines.push(`- Configured: **${report.smartInputAssessment.configured ? "yes" : "no"}**`);
35
- lines.push(`- Paths OK: **${report.smartInputAssessment.pathsOk ? "yes" : "no"}**`);
36
- if (report.smartInputAssessment.renderedPreview) {
37
- lines.push("");
38
- lines.push("```");
39
- lines.push(report.smartInputAssessment.renderedPreview.slice(0, 2000));
40
- lines.push("```");
41
- }
42
- lines.push("");
43
- lines.push("## Templates");
44
- if (report.templateAssessment.unresolvedTokens?.length) {
45
- lines.push(`- Unresolved tokens: ${report.templateAssessment.unresolvedTokens.join(", ")}`);
46
- }
47
- if (report.templateAssessment.renderAnomalies?.length) {
48
- for (const a of report.templateAssessment.renderAnomalies) {
49
- lines.push(`- ${a}`);
50
- }
51
- }
52
- if (!report.templateAssessment.unresolvedTokens?.length &&
53
- !report.templateAssessment.renderAnomalies?.length) {
54
- lines.push("- No template anomalies listed.");
55
- }
56
- lines.push("");
57
- lines.push("## Config");
58
- if (report.configAssessment.modelConfigNotes) {
59
- lines.push(`- Model: ${report.configAssessment.modelConfigNotes}`);
60
- }
61
- if (report.configAssessment.timeoutNotes) {
62
- lines.push(`- Timeout: ${report.configAssessment.timeoutNotes}`);
63
- }
64
- lines.push("");
65
- lines.push("## Expected response");
66
- if (report.expectedResponse.flexMdFrame) {
67
- lines.push(`- FlexMD frame: \`${report.expectedResponse.flexMdFrame}\``);
68
- }
69
- const parsedKeys = Object.keys(report.expectedResponse.parsedShape ?? {});
70
- if (parsedKeys.length > 0) {
71
- lines.push("- **parsed** keys:");
72
- for (const key of parsedKeys) {
73
- const entry = report.expectedResponse.parsedShape[key];
74
- lines.push(` - \`${key}\` (${entry.type}, required=${entry.required}, source=${entry.source})`);
75
- }
76
- }
77
- if (report.expectedResponse.metadataExpectations?.length) {
78
- lines.push("- **metadata** expectations:");
79
- for (const m of report.expectedResponse.metadataExpectations) {
80
- lines.push(` - \`${m.field}\` (required=${m.required})${m.notes ? `: ${m.notes}` : ""}`);
81
- }
82
- }
83
- lines.push("");
84
- const allFindings = mergeFindingsForTable(deterministicFindings, report.findings);
85
- lines.push("## Findings");
86
- lines.push("| Severity | Category | Message |");
87
- lines.push("|----------|----------|---------|");
88
- for (const f of allFindings) {
89
- const msg = f.message.replace(/\|/g, "\\|");
90
- lines.push(`| ${f.severity} | ${f.category} | ${msg} |`);
91
- }
92
- lines.push("");
93
- lines.push("## Next steps");
94
- const blockers = allFindings.filter((f) => f.severity === "error");
95
- if (blockers.length === 0) {
96
- lines.push(report.verdict === "ok" ? "1. Proceed with `runSkill` when ready." : "1. Review warnings before invoke.");
97
- }
98
- else {
99
- blockers.forEach((f, i) => {
100
- lines.push(`${i + 1}. Fix **${f.id}**: ${f.suggestion ?? f.message}`);
101
- });
102
- }
103
- lines.push("");
104
- return lines.join("\n");
105
- }
106
- function recommendationForVerdict(verdict) {
107
- if (verdict === "ok")
108
- return "Proceed with runSkill when ready.";
109
- if (verdict === "warnings")
110
- return "Review warnings; invoke may still succeed.";
111
- return "Fix errors before invoking ai-gateway.";
112
- }
113
- function mergeFindingsForTable(a, b) {
114
- const byId = new Map();
115
- for (const f of [...a, ...b]) {
116
- byId.set(f.id + (f.path ?? ""), f);
117
- }
118
- const order = { error: 0, warning: 1, info: 2 };
119
- return [...byId.values()].sort((x, y) => order[x.severity] - order[y.severity]);
120
- }
121
- //# sourceMappingURL=format-skill-request-analysis-markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-skill-request-analysis-markdown.js","sourceRoot":"","sources":["../../src/analysis/format-skill-request-analysis-markdown.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /** Resolves a dot-path against a nested object (e.g. `executionMemory.jobVariables.tone`). */
2
- export declare function resolveDotPath(root: unknown, path: string): {
3
- found: boolean;
4
- value: unknown;
5
- };
6
- export declare function isEmptyResolvedValue(value: unknown): boolean;
7
- /** Extracts `{{token}}` paths from template text (excludes smartInput shorthand). */
8
- export declare function extractTemplateTokenInventory(...texts: string[]): string[];
9
- export declare function extractFlexMdFrameHint(...texts: string[]): string | undefined;
10
- export declare function findUnresolvedMustacheTokens(rendered: string, allowSmartInput?: boolean): string[];
11
- //# sourceMappingURL=path-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../src/analysis/path-utils.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAgB9F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM5D;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa1E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAM7E;AAID,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,MAAM,EAAE,CAShG"}
@@ -1,69 +0,0 @@
1
- /** Resolves a dot-path against a nested object (e.g. `executionMemory.jobVariables.tone`). */
2
- export function resolveDotPath(root, path) {
3
- const segments = path
4
- .split(".")
5
- .map((s) => s.trim())
6
- .filter(Boolean);
7
- if (segments.length === 0) {
8
- return { found: false, value: undefined };
9
- }
10
- let cur = root;
11
- for (const seg of segments) {
12
- if (cur === null || cur === undefined || typeof cur !== "object" || Array.isArray(cur)) {
13
- return { found: false, value: undefined };
14
- }
15
- cur = cur[seg];
16
- }
17
- return { found: true, value: cur };
18
- }
19
- export function isEmptyResolvedValue(value) {
20
- if (value === undefined || value === null)
21
- return true;
22
- if (typeof value === "string")
23
- return value.trim().length === 0;
24
- if (Array.isArray(value))
25
- return value.length === 0;
26
- if (typeof value === "object")
27
- return Object.keys(value).length === 0;
28
- return false;
29
- }
30
- /** Extracts `{{token}}` paths from template text (excludes smartInput shorthand). */
31
- export function extractTemplateTokenInventory(...texts) {
32
- const tokens = new Set();
33
- const re = /\{\{\s*([^}|#][^}]*?)\s*\}\}/g;
34
- for (const text of texts) {
35
- if (!text)
36
- continue;
37
- for (const match of text.matchAll(re)) {
38
- const inner = (match[1] ?? "").trim();
39
- if (!inner || inner === "smartInput")
40
- continue;
41
- const root = inner.split(/[|#]/)[0]?.trim().split(".")[0]?.trim();
42
- if (root)
43
- tokens.add(inner.split(/[|#]/)[0]?.trim() ?? inner);
44
- }
45
- }
46
- return [...tokens].sort();
47
- }
48
- export function extractFlexMdFrameHint(...texts) {
49
- for (const text of texts) {
50
- const m = text?.match(/\[\[frame:\s*([^\]]+)\]\]/);
51
- if (m?.[1])
52
- return m[1].trim();
53
- }
54
- return undefined;
55
- }
56
- const UNRESOLVED_MUSTACHE = /\{\{\s*[^}]+\s*\}\}/g;
57
- export function findUnresolvedMustacheTokens(rendered, allowSmartInput = false) {
58
- if (!rendered)
59
- return [];
60
- const hits = new Set();
61
- for (const match of rendered.matchAll(UNRESOLVED_MUSTACHE)) {
62
- const token = match[0];
63
- if (allowSmartInput && /\{\{\s*smartInput\s*\}\}/.test(token))
64
- continue;
65
- hits.add(token);
66
- }
67
- return [...hits];
68
- }
69
- //# sourceMappingURL=path-utils.js.map