@exellix/ai-skills 6.2.1 → 6.2.2

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 (117) hide show
  1. package/dist/client/skill-executor.d.ts.map +1 -1
  2. package/dist/client/skill-executor.js +9 -2
  3. package/dist/client/skill-executor.js.map +1 -1
  4. package/dist/errors/skill-model-resolution-error.d.ts +28 -0
  5. package/dist/errors/skill-model-resolution-error.d.ts.map +1 -0
  6. package/dist/errors/skill-model-resolution-error.js +45 -0
  7. package/dist/errors/skill-model-resolution-error.js.map +1 -0
  8. package/dist/index.d.ts +6 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/invocation/optimixerModelProfileFromResolved.d.ts +5 -0
  13. package/dist/invocation/optimixerModelProfileFromResolved.d.ts.map +1 -0
  14. package/dist/invocation/optimixerModelProfileFromResolved.js +76 -0
  15. package/dist/invocation/optimixerModelProfileFromResolved.js.map +1 -0
  16. package/dist/invocation/resolveModelConfigForSkillInvoke.d.ts +11 -1
  17. package/dist/invocation/resolveModelConfigForSkillInvoke.d.ts.map +1 -1
  18. package/dist/invocation/resolveModelConfigForSkillInvoke.js +33 -13
  19. package/dist/invocation/resolveModelConfigForSkillInvoke.js.map +1 -1
  20. package/dist/invocation/resolveSkillModelReference.d.ts +18 -0
  21. package/dist/invocation/resolveSkillModelReference.d.ts.map +1 -0
  22. package/dist/invocation/resolveSkillModelReference.js +93 -0
  23. package/dist/invocation/resolveSkillModelReference.js.map +1 -0
  24. package/dist/invocation/resolveSkillProfileToWireModel.d.ts +2 -2
  25. package/dist/invocation/resolveSkillProfileToWireModel.d.ts.map +1 -1
  26. package/dist/invocation/resolveSkillProfileToWireModel.js +3 -67
  27. package/dist/invocation/resolveSkillProfileToWireModel.js.map +1 -1
  28. package/dist/optimixer/skills-optimixer.d.ts +3 -0
  29. package/dist/optimixer/skills-optimixer.d.ts.map +1 -1
  30. package/dist/optimixer/skills-optimixer.js +11 -9
  31. package/dist/optimixer/skills-optimixer.js.map +1 -1
  32. package/erc-manifest.json +10 -10
  33. package/package.json +1 -1
  34. package/dist/analysis/analyze-skill-request.d.ts +0 -13
  35. package/dist/analysis/analyze-skill-request.d.ts.map +0 -1
  36. package/dist/analysis/analyze-skill-request.js +0 -103
  37. package/dist/analysis/analyze-skill-request.js.map +0 -1
  38. package/dist/analysis/build-skill-request-analysis-packet.d.ts +0 -14
  39. package/dist/analysis/build-skill-request-analysis-packet.d.ts.map +0 -1
  40. package/dist/analysis/build-skill-request-analysis-packet.js +0 -106
  41. package/dist/analysis/build-skill-request-analysis-packet.js.map +0 -1
  42. package/dist/analysis/collect-deterministic-findings.d.ts +0 -14
  43. package/dist/analysis/collect-deterministic-findings.d.ts.map +0 -1
  44. package/dist/analysis/collect-deterministic-findings.js +0 -245
  45. package/dist/analysis/collect-deterministic-findings.js.map +0 -1
  46. package/dist/analysis/constants.d.ts +0 -5
  47. package/dist/analysis/constants.d.ts.map +0 -1
  48. package/dist/analysis/constants.js +0 -5
  49. package/dist/analysis/constants.js.map +0 -1
  50. package/dist/analysis/format-skill-request-analysis-markdown.d.ts +0 -8
  51. package/dist/analysis/format-skill-request-analysis-markdown.d.ts.map +0 -1
  52. package/dist/analysis/format-skill-request-analysis-markdown.js +0 -121
  53. package/dist/analysis/format-skill-request-analysis-markdown.js.map +0 -1
  54. package/dist/analysis/path-utils.d.ts +0 -11
  55. package/dist/analysis/path-utils.d.ts.map +0 -1
  56. package/dist/analysis/path-utils.js +0 -69
  57. package/dist/analysis/path-utils.js.map +0 -1
  58. package/dist/analysis/sanitize-for-packet.d.ts +0 -28
  59. package/dist/analysis/sanitize-for-packet.d.ts.map +0 -1
  60. package/dist/analysis/sanitize-for-packet.js +0 -107
  61. package/dist/analysis/sanitize-for-packet.js.map +0 -1
  62. package/dist/analysis/types.d.ts +0 -124
  63. package/dist/analysis/types.d.ts.map +0 -1
  64. package/dist/analysis/types.js +0 -2
  65. package/dist/analysis/types.js.map +0 -1
  66. package/dist/catalog/canonical-skill-key.d.ts +0 -5
  67. package/dist/catalog/canonical-skill-key.d.ts.map +0 -1
  68. package/dist/catalog/canonical-skill-key.js +0 -16
  69. package/dist/catalog/canonical-skill-key.js.map +0 -1
  70. package/dist/catalog/constants.d.ts +0 -7
  71. package/dist/catalog/constants.d.ts.map +0 -1
  72. package/dist/catalog/constants.js +0 -7
  73. package/dist/catalog/constants.js.map +0 -1
  74. package/dist/catalog/env.d.ts +0 -4
  75. package/dist/catalog/env.d.ts.map +0 -1
  76. package/dist/catalog/env.js +0 -15
  77. package/dist/catalog/env.js.map +0 -1
  78. package/dist/catalog/gateway-template.d.ts +0 -6
  79. package/dist/catalog/gateway-template.d.ts.map +0 -1
  80. package/dist/catalog/gateway-template.js +0 -15
  81. package/dist/catalog/gateway-template.js.map +0 -1
  82. package/dist/catalog/index.d.ts +0 -3
  83. package/dist/catalog/index.d.ts.map +0 -1
  84. package/dist/catalog/index.js +0 -3
  85. package/dist/catalog/index.js.map +0 -1
  86. package/dist/catalog/seed.d.ts +0 -12
  87. package/dist/catalog/seed.d.ts.map +0 -1
  88. package/dist/catalog/seed.js +0 -45
  89. package/dist/catalog/seed.js.map +0 -1
  90. package/dist/catalog/skill-catalog.d.ts +0 -28
  91. package/dist/catalog/skill-catalog.d.ts.map +0 -1
  92. package/dist/catalog/skill-catalog.js +0 -139
  93. package/dist/catalog/skill-catalog.js.map +0 -1
  94. package/dist/catalog/store-factory.d.ts +0 -18
  95. package/dist/catalog/store-factory.d.ts.map +0 -1
  96. package/dist/catalog/store-factory.js +0 -36
  97. package/dist/catalog/store-factory.js.map +0 -1
  98. package/dist/catalog/types.d.ts +0 -61
  99. package/dist/catalog/types.d.ts.map +0 -1
  100. package/dist/catalog/types.js +0 -22
  101. package/dist/catalog/types.js.map +0 -1
  102. package/dist/client/audit-manager.d.ts +0 -27
  103. package/dist/client/audit-manager.d.ts.map +0 -1
  104. package/dist/client/audit-manager.js +0 -260
  105. package/dist/client/audit-manager.js.map +0 -1
  106. package/dist/client/invoke-skill-via-funcx.d.ts +0 -11
  107. package/dist/client/invoke-skill-via-funcx.d.ts.map +0 -1
  108. package/dist/client/invoke-skill-via-funcx.js +0 -51
  109. package/dist/client/invoke-skill-via-funcx.js.map +0 -1
  110. package/dist/client/task-executor.d.ts +0 -21
  111. package/dist/client/task-executor.d.ts.map +0 -1
  112. package/dist/client/task-executor.js +0 -50
  113. package/dist/client/task-executor.js.map +0 -1
  114. package/dist/metadata.d.ts +0 -7
  115. package/dist/metadata.d.ts.map +0 -1
  116. package/dist/metadata.js +0 -65
  117. package/dist/metadata.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../src/analysis/path-utils.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { RunSkillRequest } from "../types.js";
2
- import type { SkillGatewayInvokePayload } from "../client/build-gateway-invoke-request.js";
3
- export declare function sanitizeGatewayPayloadForPacket(payload: SkillGatewayInvokePayload, maxTemplateChars: number): Record<string, unknown>;
4
- export declare function sanitizeRunSkillRequestForPacket(skillRequest: RunSkillRequest): Record<string, unknown>;
5
- export declare function sanitizeTemplatesForPacket(raw: {
6
- instructions: string;
7
- prompt: string;
8
- }, rendered: {
9
- instructions: string;
10
- prompt: string;
11
- }, maxChars: number): AnalyzeGatewayInvokeTemplatesPacket;
12
- type AnalyzeGatewayInvokeTemplatesPacket = {
13
- raw?: {
14
- instructions?: string;
15
- prompt?: string;
16
- instructionsTruncated?: boolean;
17
- promptTruncated?: boolean;
18
- };
19
- rendered?: {
20
- instructions?: string;
21
- prompt?: string;
22
- instructionsTruncated?: boolean;
23
- promptTruncated?: boolean;
24
- };
25
- catalogStatus?: string;
26
- };
27
- export {};
28
- //# sourceMappingURL=sanitize-for-packet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize-for-packet.d.ts","sourceRoot":"","sources":["../../src/analysis/sanitize-for-packet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AA4B3F,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,yBAAyB,EAClC,gBAAgB,EAAE,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBzB;AAED,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BvG;AAED,wBAAgB,0BAA0B,CACtC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7C,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAClD,QAAQ,EAAE,MAAM,GACjB,mCAAmC,CAoBrC;AAED,KAAK,mCAAmC,GAAG;IACvC,GAAG,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7G,QAAQ,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAClH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}