@exellix/ai-skills 5.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 (251) hide show
  1. package/README.md +600 -0
  2. package/dist/analysis/analyze-skill-request.d.ts +12 -0
  3. package/dist/analysis/analyze-skill-request.d.ts.map +1 -0
  4. package/dist/analysis/analyze-skill-request.js +201 -0
  5. package/dist/analysis/analyze-skill-request.js.map +1 -0
  6. package/dist/analysis/build-skill-request-analysis-packet.d.ts +14 -0
  7. package/dist/analysis/build-skill-request-analysis-packet.d.ts.map +1 -0
  8. package/dist/analysis/build-skill-request-analysis-packet.js +106 -0
  9. package/dist/analysis/build-skill-request-analysis-packet.js.map +1 -0
  10. package/dist/analysis/collect-deterministic-findings.d.ts +14 -0
  11. package/dist/analysis/collect-deterministic-findings.d.ts.map +1 -0
  12. package/dist/analysis/collect-deterministic-findings.js +221 -0
  13. package/dist/analysis/collect-deterministic-findings.js.map +1 -0
  14. package/dist/analysis/constants.d.ts +5 -0
  15. package/dist/analysis/constants.d.ts.map +1 -0
  16. package/dist/analysis/constants.js +5 -0
  17. package/dist/analysis/constants.js.map +1 -0
  18. package/dist/analysis/format-skill-request-analysis-markdown.d.ts +8 -0
  19. package/dist/analysis/format-skill-request-analysis-markdown.d.ts.map +1 -0
  20. package/dist/analysis/format-skill-request-analysis-markdown.js +121 -0
  21. package/dist/analysis/format-skill-request-analysis-markdown.js.map +1 -0
  22. package/dist/analysis/path-utils.d.ts +11 -0
  23. package/dist/analysis/path-utils.d.ts.map +1 -0
  24. package/dist/analysis/path-utils.js +69 -0
  25. package/dist/analysis/path-utils.js.map +1 -0
  26. package/dist/analysis/sanitize-for-packet.d.ts +28 -0
  27. package/dist/analysis/sanitize-for-packet.d.ts.map +1 -0
  28. package/dist/analysis/sanitize-for-packet.js +107 -0
  29. package/dist/analysis/sanitize-for-packet.js.map +1 -0
  30. package/dist/analysis/types.d.ts +139 -0
  31. package/dist/analysis/types.d.ts.map +1 -0
  32. package/dist/analysis/types.js +2 -0
  33. package/dist/analysis/types.js.map +1 -0
  34. package/dist/catalog/canonical-skill-key.d.ts +5 -0
  35. package/dist/catalog/canonical-skill-key.d.ts.map +1 -0
  36. package/dist/catalog/canonical-skill-key.js +16 -0
  37. package/dist/catalog/canonical-skill-key.js.map +1 -0
  38. package/dist/catalog/constants.d.ts +7 -0
  39. package/dist/catalog/constants.d.ts.map +1 -0
  40. package/dist/catalog/constants.js +7 -0
  41. package/dist/catalog/constants.js.map +1 -0
  42. package/dist/catalog/env.d.ts +4 -0
  43. package/dist/catalog/env.d.ts.map +1 -0
  44. package/dist/catalog/env.js +15 -0
  45. package/dist/catalog/env.js.map +1 -0
  46. package/dist/catalog/gateway-template.d.ts +6 -0
  47. package/dist/catalog/gateway-template.d.ts.map +1 -0
  48. package/dist/catalog/gateway-template.js +15 -0
  49. package/dist/catalog/gateway-template.js.map +1 -0
  50. package/dist/catalog/index.d.ts +3 -0
  51. package/dist/catalog/index.d.ts.map +1 -0
  52. package/dist/catalog/index.js +3 -0
  53. package/dist/catalog/index.js.map +1 -0
  54. package/dist/catalog/seed.d.ts +12 -0
  55. package/dist/catalog/seed.d.ts.map +1 -0
  56. package/dist/catalog/seed.js +45 -0
  57. package/dist/catalog/seed.js.map +1 -0
  58. package/dist/catalog/skill-catalog.d.ts +28 -0
  59. package/dist/catalog/skill-catalog.d.ts.map +1 -0
  60. package/dist/catalog/skill-catalog.js +139 -0
  61. package/dist/catalog/skill-catalog.js.map +1 -0
  62. package/dist/catalog/store-factory.d.ts +18 -0
  63. package/dist/catalog/store-factory.d.ts.map +1 -0
  64. package/dist/catalog/store-factory.js +36 -0
  65. package/dist/catalog/store-factory.js.map +1 -0
  66. package/dist/catalog/types.d.ts +61 -0
  67. package/dist/catalog/types.d.ts.map +1 -0
  68. package/dist/catalog/types.js +22 -0
  69. package/dist/catalog/types.js.map +1 -0
  70. package/dist/catalox/ai-engines-catalog.d.ts +24 -0
  71. package/dist/catalox/ai-engines-catalog.d.ts.map +1 -0
  72. package/dist/catalox/ai-engines-catalog.js +89 -0
  73. package/dist/catalox/ai-engines-catalog.js.map +1 -0
  74. package/dist/catalox/ai-skills-catalog.d.ts +32 -0
  75. package/dist/catalox/ai-skills-catalog.d.ts.map +1 -0
  76. package/dist/catalox/ai-skills-catalog.js +202 -0
  77. package/dist/catalox/ai-skills-catalog.js.map +1 -0
  78. package/dist/catalox/catalox-skill-errors.d.ts +15 -0
  79. package/dist/catalox/catalox-skill-errors.d.ts.map +1 -0
  80. package/dist/catalox/catalox-skill-errors.js +29 -0
  81. package/dist/catalox/catalox-skill-errors.js.map +1 -0
  82. package/dist/catalox/index.d.ts +10 -0
  83. package/dist/catalox/index.d.ts.map +1 -0
  84. package/dist/catalox/index.js +10 -0
  85. package/dist/catalox/index.js.map +1 -0
  86. package/dist/catalox/init-firebase-and-catalox.d.ts +8 -0
  87. package/dist/catalox/init-firebase-and-catalox.d.ts.map +1 -0
  88. package/dist/catalox/init-firebase-and-catalox.js +48 -0
  89. package/dist/catalox/init-firebase-and-catalox.js.map +1 -0
  90. package/dist/catalox/list-ai-skills-catalog.d.ts +24 -0
  91. package/dist/catalox/list-ai-skills-catalog.d.ts.map +1 -0
  92. package/dist/catalox/list-ai-skills-catalog.js +38 -0
  93. package/dist/catalox/list-ai-skills-catalog.js.map +1 -0
  94. package/dist/catalox/skill-gateway-template-utils.d.ts +11 -0
  95. package/dist/catalox/skill-gateway-template-utils.d.ts.map +1 -0
  96. package/dist/catalox/skill-gateway-template-utils.js +31 -0
  97. package/dist/catalox/skill-gateway-template-utils.js.map +1 -0
  98. package/dist/catalox/skill-template-catalog-mutations.d.ts +143 -0
  99. package/dist/catalox/skill-template-catalog-mutations.d.ts.map +1 -0
  100. package/dist/catalox/skill-template-catalog-mutations.js +470 -0
  101. package/dist/catalox/skill-template-catalog-mutations.js.map +1 -0
  102. package/dist/catalox/skill-template-markdown.d.ts +34 -0
  103. package/dist/catalox/skill-template-markdown.d.ts.map +1 -0
  104. package/dist/catalox/skill-template-markdown.js +106 -0
  105. package/dist/catalox/skill-template-markdown.js.map +1 -0
  106. package/dist/catalox/skill-templates.d.ts +72 -0
  107. package/dist/catalox/skill-templates.d.ts.map +1 -0
  108. package/dist/catalox/skill-templates.js +80 -0
  109. package/dist/catalox/skill-templates.js.map +1 -0
  110. package/dist/client/audit-manager.d.ts +27 -0
  111. package/dist/client/audit-manager.d.ts.map +1 -0
  112. package/dist/client/audit-manager.js +260 -0
  113. package/dist/client/audit-manager.js.map +1 -0
  114. package/dist/client/base-client.d.ts +19 -0
  115. package/dist/client/base-client.d.ts.map +1 -0
  116. package/dist/client/base-client.js +20 -0
  117. package/dist/client/base-client.js.map +1 -0
  118. package/dist/client/build-gateway-invoke-request.d.ts +32 -0
  119. package/dist/client/build-gateway-invoke-request.d.ts.map +1 -0
  120. package/dist/client/build-gateway-invoke-request.js +135 -0
  121. package/dist/client/build-gateway-invoke-request.js.map +1 -0
  122. package/dist/client/invoke-skill-via-funcx.d.ts +11 -0
  123. package/dist/client/invoke-skill-via-funcx.d.ts.map +1 -0
  124. package/dist/client/invoke-skill-via-funcx.js +51 -0
  125. package/dist/client/invoke-skill-via-funcx.js.map +1 -0
  126. package/dist/client/registry-manager.d.ts +94 -0
  127. package/dist/client/registry-manager.d.ts.map +1 -0
  128. package/dist/client/registry-manager.js +287 -0
  129. package/dist/client/registry-manager.js.map +1 -0
  130. package/dist/client/skill-executor.d.ts +35 -0
  131. package/dist/client/skill-executor.d.ts.map +1 -0
  132. package/dist/client/skill-executor.js +316 -0
  133. package/dist/client/skill-executor.js.map +1 -0
  134. package/dist/client/task-executor.d.ts +21 -0
  135. package/dist/client/task-executor.d.ts.map +1 -0
  136. package/dist/client/task-executor.js +50 -0
  137. package/dist/client/task-executor.js.map +1 -0
  138. package/dist/client.d.ts +116 -0
  139. package/dist/client.d.ts.map +1 -0
  140. package/dist/client.js +406 -0
  141. package/dist/client.js.map +1 -0
  142. package/dist/diagnostics/gateway-usage.d.ts +3 -0
  143. package/dist/diagnostics/gateway-usage.d.ts.map +1 -0
  144. package/dist/diagnostics/gateway-usage.js +26 -0
  145. package/dist/diagnostics/gateway-usage.js.map +1 -0
  146. package/dist/diagnostics/map-gateway-trace.d.ts +43 -0
  147. package/dist/diagnostics/map-gateway-trace.d.ts.map +1 -0
  148. package/dist/diagnostics/map-gateway-trace.js +243 -0
  149. package/dist/diagnostics/map-gateway-trace.js.map +1 -0
  150. package/dist/diagnostics/trace-mode.d.ts +9 -0
  151. package/dist/diagnostics/trace-mode.d.ts.map +1 -0
  152. package/dist/diagnostics/trace-mode.js +8 -0
  153. package/dist/diagnostics/trace-mode.js.map +1 -0
  154. package/dist/index.d.ts +34 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +28 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/metadata.d.ts +7 -0
  159. package/dist/metadata.d.ts.map +1 -0
  160. package/dist/metadata.js +65 -0
  161. package/dist/metadata.js.map +1 -0
  162. package/dist/parsers/context-parser.d.ts +2 -0
  163. package/dist/parsers/context-parser.d.ts.map +1 -0
  164. package/dist/parsers/context-parser.js +5 -0
  165. package/dist/parsers/context-parser.js.map +1 -0
  166. package/dist/parsers/input-parser.d.ts +2 -0
  167. package/dist/parsers/input-parser.d.ts.map +1 -0
  168. package/dist/parsers/input-parser.js +5 -0
  169. package/dist/parsers/input-parser.js.map +1 -0
  170. package/dist/runtime-objects.d.ts +11 -0
  171. package/dist/runtime-objects.d.ts.map +1 -0
  172. package/dist/runtime-objects.js +21 -0
  173. package/dist/runtime-objects.js.map +1 -0
  174. package/dist/skill-execution-trace-error.d.ts +20 -0
  175. package/dist/skill-execution-trace-error.d.ts.map +1 -0
  176. package/dist/skill-execution-trace-error.js +21 -0
  177. package/dist/skill-execution-trace-error.js.map +1 -0
  178. package/dist/types.d.ts +534 -0
  179. package/dist/types.d.ts.map +1 -0
  180. package/dist/types.js +2 -0
  181. package/dist/types.js.map +1 -0
  182. package/dist/utils/build-activix-billing-patch.d.ts +24 -0
  183. package/dist/utils/build-activix-billing-patch.d.ts.map +1 -0
  184. package/dist/utils/build-activix-billing-patch.js +70 -0
  185. package/dist/utils/build-activix-billing-patch.js.map +1 -0
  186. package/dist/utils/enrich-activix-identity.d.ts +30 -0
  187. package/dist/utils/enrich-activix-identity.d.ts.map +1 -0
  188. package/dist/utils/enrich-activix-identity.js +34 -0
  189. package/dist/utils/enrich-activix-identity.js.map +1 -0
  190. package/dist/utils/exellix-skills-logxer-defaults.d.ts +16 -0
  191. package/dist/utils/exellix-skills-logxer-defaults.d.ts.map +1 -0
  192. package/dist/utils/exellix-skills-logxer-defaults.js +37 -0
  193. package/dist/utils/exellix-skills-logxer-defaults.js.map +1 -0
  194. package/dist/utils/flex-md-parser.d.ts +23 -0
  195. package/dist/utils/flex-md-parser.d.ts.map +1 -0
  196. package/dist/utils/flex-md-parser.js +98 -0
  197. package/dist/utils/flex-md-parser.js.map +1 -0
  198. package/dist/utils/gateway-execution-summary.d.ts +18 -0
  199. package/dist/utils/gateway-execution-summary.d.ts.map +1 -0
  200. package/dist/utils/gateway-execution-summary.js +42 -0
  201. package/dist/utils/gateway-execution-summary.js.map +1 -0
  202. package/dist/utils/gateway-invoke-rejection.d.ts +9 -0
  203. package/dist/utils/gateway-invoke-rejection.d.ts.map +1 -0
  204. package/dist/utils/gateway-invoke-rejection.js +28 -0
  205. package/dist/utils/gateway-invoke-rejection.js.map +1 -0
  206. package/dist/utils/normalize-billing-metadata.d.ts +17 -0
  207. package/dist/utils/normalize-billing-metadata.d.ts.map +1 -0
  208. package/dist/utils/normalize-billing-metadata.js +75 -0
  209. package/dist/utils/normalize-billing-metadata.js.map +1 -0
  210. package/dist/utils/normalize-output-parsed.d.ts +25 -0
  211. package/dist/utils/normalize-output-parsed.d.ts.map +1 -0
  212. package/dist/utils/normalize-output-parsed.js +128 -0
  213. package/dist/utils/normalize-output-parsed.js.map +1 -0
  214. package/dist/utils/patch-activix-activity-after-skill.d.ts +19 -0
  215. package/dist/utils/patch-activix-activity-after-skill.d.ts.map +1 -0
  216. package/dist/utils/patch-activix-activity-after-skill.js +81 -0
  217. package/dist/utils/patch-activix-activity-after-skill.js.map +1 -0
  218. package/dist/utils/rendrix-render-skill-templates.d.ts +14 -0
  219. package/dist/utils/rendrix-render-skill-templates.d.ts.map +1 -0
  220. package/dist/utils/rendrix-render-skill-templates.js +25 -0
  221. package/dist/utils/rendrix-render-skill-templates.js.map +1 -0
  222. package/dist/utils/resolve-activity-id.d.ts +9 -0
  223. package/dist/utils/resolve-activity-id.d.ts.map +1 -0
  224. package/dist/utils/resolve-activity-id.js +27 -0
  225. package/dist/utils/resolve-activity-id.js.map +1 -0
  226. package/dist/utils/resolve-gateway-job-task-ids.d.ts +19 -0
  227. package/dist/utils/resolve-gateway-job-task-ids.d.ts.map +1 -0
  228. package/dist/utils/resolve-gateway-job-task-ids.js +21 -0
  229. package/dist/utils/resolve-gateway-job-task-ids.js.map +1 -0
  230. package/dist/utils/resolve-identity.d.ts +12 -0
  231. package/dist/utils/resolve-identity.d.ts.map +1 -0
  232. package/dist/utils/resolve-identity.js +36 -0
  233. package/dist/utils/resolve-identity.js.map +1 -0
  234. package/dist/utils/resolve-run-skill-ai-engine.d.ts +8 -0
  235. package/dist/utils/resolve-run-skill-ai-engine.d.ts.map +1 -0
  236. package/dist/utils/resolve-run-skill-ai-engine.js +20 -0
  237. package/dist/utils/resolve-run-skill-ai-engine.js.map +1 -0
  238. package/dist/utils/run-skill-request.d.ts +11 -0
  239. package/dist/utils/run-skill-request.d.ts.map +1 -0
  240. package/dist/utils/run-skill-request.js +44 -0
  241. package/dist/utils/run-skill-request.js.map +1 -0
  242. package/dist/utils/validate-mandatory-activix-invoke-fields.d.ts +7 -0
  243. package/dist/utils/validate-mandatory-activix-invoke-fields.d.ts.map +1 -0
  244. package/dist/utils/validate-mandatory-activix-invoke-fields.js +16 -0
  245. package/dist/utils/validate-mandatory-activix-invoke-fields.js.map +1 -0
  246. package/dist/utils/validate-session-id.d.ts +6 -0
  247. package/dist/utils/validate-session-id.d.ts.map +1 -0
  248. package/dist/utils/validate-session-id.js +18 -0
  249. package/dist/utils/validate-session-id.js.map +1 -0
  250. package/erc-manifest.json +11 -0
  251. package/package.json +76 -0
@@ -0,0 +1,121 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,69 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../src/analysis/path-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,107 @@
1
+ function truncateString(s, maxChars) {
2
+ if (s.length <= maxChars)
3
+ return { text: s, truncated: false };
4
+ return { text: s.slice(0, maxChars), truncated: true };
5
+ }
6
+ function summarizeRecord(value, maxKeys = 24) {
7
+ if (!value || typeof value !== "object")
8
+ return undefined;
9
+ const keys = Object.keys(value);
10
+ if (keys.length === 0)
11
+ return {};
12
+ const out = { __keyCount: keys.length };
13
+ for (const k of keys.slice(0, maxKeys)) {
14
+ const v = value[k];
15
+ if (v === null || v === undefined)
16
+ out[k] = v;
17
+ else if (typeof v === "string")
18
+ out[k] = v.length > 200 ? `${v.slice(0, 200)}…` : v;
19
+ else if (typeof v === "object" && !Array.isArray(v)) {
20
+ out[k] = { __nestedKeys: Object.keys(v).length };
21
+ }
22
+ else if (Array.isArray(v))
23
+ out[k] = { __arrayLength: v.length };
24
+ else
25
+ out[k] = v;
26
+ }
27
+ if (keys.length > maxKeys)
28
+ out.__truncatedKeys = keys.length - maxKeys;
29
+ return out;
30
+ }
31
+ export function sanitizeGatewayPayloadForPacket(payload, maxTemplateChars) {
32
+ const copy = { ...payload };
33
+ if (typeof copy.instructions === "string") {
34
+ const t = truncateString(copy.instructions, maxTemplateChars);
35
+ copy.instructions = t.text;
36
+ if (t.truncated)
37
+ copy.instructionsTruncated = true;
38
+ }
39
+ if (typeof copy.prompt === "string") {
40
+ const t = truncateString(copy.prompt, maxTemplateChars);
41
+ copy.prompt = t.text;
42
+ if (t.truncated)
43
+ copy.promptTruncated = true;
44
+ }
45
+ if (copy.workingMemory && typeof copy.workingMemory === "object") {
46
+ copy.workingMemory = summarizeRecord(copy.workingMemory, 40);
47
+ }
48
+ if (typeof copy.context === "string" && copy.context.length > maxTemplateChars) {
49
+ const t = truncateString(copy.context, maxTemplateChars);
50
+ copy.context = t.text;
51
+ if (t.truncated)
52
+ copy.contextTruncated = true;
53
+ }
54
+ return copy;
55
+ }
56
+ export function sanitizeRunSkillRequestForPacket(skillRequest) {
57
+ const functionId = skillRequest.skillKey;
58
+ return {
59
+ functionId,
60
+ input: skillRequest.input,
61
+ agentId: skillRequest.agentId,
62
+ jobTypeId: skillRequest.jobTypeId,
63
+ taskTypeId: skillRequest.taskTypeId,
64
+ jobId: skillRequest.jobId,
65
+ taskId: skillRequest.taskId,
66
+ sessionId: skillRequest.sessionId,
67
+ variables: summarizeRecord(skillRequest.variables),
68
+ executionMemory: summarizeRecord(skillRequest.executionMemory),
69
+ context: typeof skillRequest.context === "string"
70
+ ? skillRequest.context.length > 2000
71
+ ? `${skillRequest.context.slice(0, 2000)}…`
72
+ : skillRequest.context
73
+ : summarizeRecord(skillRequest.context),
74
+ knowledge: summarizeRecord(skillRequest.knowledge),
75
+ jobMemory: skillRequest.jobMemory ? { __present: true, __type: typeof skillRequest.jobMemory } : undefined,
76
+ taskMemory: skillRequest.taskMemory ? { __present: true, __type: typeof skillRequest.taskMemory } : undefined,
77
+ modelConfig: skillRequest.modelConfig,
78
+ smartInput: skillRequest.smartInput,
79
+ smartInputRenderOptions: skillRequest.smartInputRenderOptions,
80
+ templateRenderOptions: skillRequest.templateRenderOptions,
81
+ outputContract: skillRequest.outputContract,
82
+ timeoutMs: skillRequest.timeoutMs,
83
+ aiEngineId: skillRequest.aiEngineId,
84
+ };
85
+ }
86
+ export function sanitizeTemplatesForPacket(raw, rendered, maxChars) {
87
+ const trunc = (s) => truncateString(s, maxChars);
88
+ const insR = trunc(raw.instructions);
89
+ const prR = trunc(raw.prompt);
90
+ const insD = trunc(rendered.instructions);
91
+ const prD = trunc(rendered.prompt);
92
+ return {
93
+ raw: {
94
+ instructions: insR.text,
95
+ ...(insR.truncated ? { instructionsTruncated: true } : {}),
96
+ prompt: prR.text,
97
+ ...(prR.truncated ? { promptTruncated: true } : {}),
98
+ },
99
+ rendered: {
100
+ instructions: insD.text,
101
+ ...(insD.truncated ? { instructionsTruncated: true } : {}),
102
+ prompt: prD.text,
103
+ ...(prD.truncated ? { promptTruncated: true } : {}),
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=sanitize-for-packet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-for-packet.js","sourceRoot":"","sources":["../../src/analysis/sanitize-for-packet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import type { SkillGatewayInvokePayload } from "../client/build-gateway-invoke-request.js";
2
+ import type { OutputContract } from "../utils/normalize-output-parsed.js";
3
+ export type SkillRequestAnalysisSeverity = "error" | "warning" | "info";
4
+ export type SkillRequestAnalysisCategory = "activix" | "session" | "workingMemory" | "smartInput" | "template" | "outputContract" | "modelConfig" | "executionMemory" | "catalog" | "prediction";
5
+ export interface SkillRequestAnalysisFinding {
6
+ id: string;
7
+ severity: SkillRequestAnalysisSeverity;
8
+ category: SkillRequestAnalysisCategory;
9
+ path?: string;
10
+ message: string;
11
+ suggestion?: string;
12
+ evidence?: string;
13
+ }
14
+ export type SkillRequestAnalysisVerdict = "ok" | "warnings" | "errors";
15
+ export interface SkillRequestAnalysisParsedShapeEntry {
16
+ type: "string" | "object" | "array" | "unknown";
17
+ required: boolean;
18
+ source: "outputContract" | "template" | "flexMd" | "inferred";
19
+ description?: string;
20
+ }
21
+ export interface SkillRequestAnalysisReport {
22
+ verdict: SkillRequestAnalysisVerdict;
23
+ confidence: number;
24
+ inputAssessment: {
25
+ plausible: boolean;
26
+ summary: string;
27
+ issues: SkillRequestAnalysisFinding[];
28
+ };
29
+ smartInputAssessment: {
30
+ configured: boolean;
31
+ pathsOk: boolean;
32
+ issues: SkillRequestAnalysisFinding[];
33
+ renderedPreview?: string;
34
+ };
35
+ templateAssessment: {
36
+ issues: SkillRequestAnalysisFinding[];
37
+ unresolvedTokens?: string[];
38
+ renderAnomalies?: string[];
39
+ };
40
+ configAssessment: {
41
+ issues: SkillRequestAnalysisFinding[];
42
+ modelConfigNotes?: string;
43
+ timeoutNotes?: string;
44
+ };
45
+ expectedResponse: {
46
+ flexMdFrame?: string;
47
+ flexMdPayloads?: Array<{
48
+ name: string;
49
+ required: boolean;
50
+ description?: string;
51
+ }>;
52
+ parsedShape: Record<string, SkillRequestAnalysisParsedShapeEntry>;
53
+ metadataExpectations: Array<{
54
+ field: string;
55
+ required: boolean;
56
+ notes?: string;
57
+ }>;
58
+ runSkillResponseShape: {
59
+ fields: Array<"rawText" | "flexMd" | "parsed" | "metadata" | "identity" | "diagnostics">;
60
+ };
61
+ };
62
+ findings: SkillRequestAnalysisFinding[];
63
+ }
64
+ export interface AnalyzeSkillRequestOptions {
65
+ /** FuncX mode profile; default `strong`. */
66
+ funcxMode?: "weak" | "normal" | "strong" | "ultra";
67
+ /** Skip Catalox fetch (caller supplies template bodies). */
68
+ templateOverride?: {
69
+ instructions: string;
70
+ prompt: string;
71
+ };
72
+ /** Max chars per template field in the FuncX packet; default 12000. */
73
+ maxTemplateCharsInPacket?: number;
74
+ /** Throw when SDK deterministic findings include `severity: "error"`. */
75
+ strictDeterministic?: boolean;
76
+ /** Skip FuncX LLM; return report built from deterministic findings only. */
77
+ deterministicOnly?: boolean;
78
+ /** When false, FuncX returns parsed JSON without Ajv throw (default true). */
79
+ funcxValidateOutput?: boolean;
80
+ cataloxAppId?: string;
81
+ /**
82
+ * Test-only override for `@x12i/funcx/functions` `run()`.
83
+ * @internal
84
+ */
85
+ funcxRunOverride?: (functionId: string, packet: AnalyzeGatewayInvokeRequestPacket, options: {
86
+ mode?: string;
87
+ validateOutput?: boolean;
88
+ [key: string]: unknown;
89
+ }) => Promise<unknown>;
90
+ }
91
+ export interface AnalyzeSkillRequestResult {
92
+ functionId: string;
93
+ skillKey: string;
94
+ verdict: SkillRequestAnalysisVerdict;
95
+ confidence?: number;
96
+ report: SkillRequestAnalysisReport;
97
+ markdownReport: string;
98
+ deterministicFindings: SkillRequestAnalysisFinding[];
99
+ gatewayPayload?: SkillGatewayInvokePayload;
100
+ }
101
+ /** Packet sent to FuncX `ai-skills/analyze-gateway-invoke-request`. */
102
+ export interface AnalyzeGatewayInvokeRequestPacket {
103
+ functionId: string;
104
+ aiRequestId?: string;
105
+ jobId?: string;
106
+ taskId?: string;
107
+ agentId?: string;
108
+ jobTypeId?: string;
109
+ taskTypeId?: string;
110
+ gatewayPayload: Record<string, unknown>;
111
+ runSkillRequest?: Record<string, unknown>;
112
+ templates?: {
113
+ raw?: {
114
+ instructions?: string;
115
+ prompt?: string;
116
+ };
117
+ rendered?: {
118
+ instructions?: string;
119
+ prompt?: string;
120
+ };
121
+ catalogStatus?: string;
122
+ };
123
+ outputContract?: OutputContract;
124
+ resolvedOutputFields?: string[];
125
+ deterministicFindings?: SkillRequestAnalysisFinding[];
126
+ flexMdFrameHint?: string;
127
+ templateTokenInventory?: string[];
128
+ }
129
+ export interface BuildSkillRequestAnalysisPacketResult {
130
+ packet: AnalyzeGatewayInvokeRequestPacket;
131
+ deterministicFindings: SkillRequestAnalysisFinding[];
132
+ gatewayPayload: SkillGatewayInvokePayload;
133
+ instructionsRaw: string;
134
+ promptRaw: string;
135
+ instructionsRendered: string;
136
+ promptRendered: string;
137
+ catalogStatus?: string;
138
+ }
139
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analysis/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analysis/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Normalize caller `skillKey` to canonical DB form `skills/<id>` (no `.instructions` / `.prompt` suffix).
3
+ */
4
+ export declare function canonicalSkillKey(skillKey: string): string;
5
+ //# sourceMappingURL=canonical-skill-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-skill-key.d.ts","sourceRoot":"","sources":["../../src/catalog/canonical-skill-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS1D"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Normalize caller `skillKey` to canonical DB form `skills/<id>` (no `.instructions` / `.prompt` suffix).
3
+ */
4
+ export function canonicalSkillKey(skillKey) {
5
+ let s = skillKey.trim().replace(/\\/g, "/");
6
+ if (s.startsWith("./"))
7
+ s = s.slice(2);
8
+ if (s.startsWith("/"))
9
+ s = s.slice(1);
10
+ s = s.replace(/\.(instructions|prompt)(\.md)?$/i, "");
11
+ if (!s.startsWith("skills/")) {
12
+ s = `skills/${s}`;
13
+ }
14
+ return s;
15
+ }
16
+ //# sourceMappingURL=canonical-skill-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-skill-key.js","sourceRoot":"","sources":["../../src/catalog/canonical-skill-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAC9C,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Default Mongo database name for the AI skill meta catalog (override with `XILLIX_META_DB`). */
2
+ export declare const DEFAULT_XILLIX_META_DB = "xillix";
3
+ /** Default database for live catalog tests (override with `XILLIX_META_DB_TEST`). */
4
+ export declare const DEFAULT_XILLIX_META_DB_TEST = "xillix-tests";
5
+ /** Primary collection for skill catalog documents. */
6
+ export declare const AI_SKILL_CATALOG_COLLECTION = "ai_skill_catalog";
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/catalog/constants.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Default Mongo database name for the AI skill meta catalog (override with `XILLIX_META_DB`). */
2
+ export const DEFAULT_XILLIX_META_DB = "xillix";
3
+ /** Default database for live catalog tests (override with `XILLIX_META_DB_TEST`). */
4
+ export const DEFAULT_XILLIX_META_DB_TEST = "xillix-tests";
5
+ /** Primary collection for skill catalog documents. */
6
+ export const AI_SKILL_CATALOG_COLLECTION = "ai_skill_catalog";
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/catalog/constants.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAE/C,qFAAqF;AACrF,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAE1D,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getXillixMetaDbName(): string;
2
+ export declare function getXillixTestMetaDbName(): string;
3
+ export declare function isXillixHardDeleteAllowed(): boolean;
4
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/catalog/env.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAGhD;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAGnD"}
@@ -0,0 +1,15 @@
1
+ import { DEFAULT_XILLIX_META_DB, DEFAULT_XILLIX_META_DB_TEST } from "./constants.js";
2
+ export function getXillixMetaDbName() {
3
+ const v = process.env.XILLIX_META_DB?.trim();
4
+ return v && v.length > 0 ? v : DEFAULT_XILLIX_META_DB;
5
+ }
6
+ export function getXillixTestMetaDbName() {
7
+ const v = process.env.XILLIX_META_DB_TEST?.trim();
8
+ return v && v.length > 0 ? v : DEFAULT_XILLIX_META_DB_TEST;
9
+ }
10
+ export function isXillixHardDeleteAllowed() {
11
+ if (process.env.NODE_ENV === "production")
12
+ return false;
13
+ return process.env.XILLIX_ALLOW_HARD_DELETE === "true" || process.env.XILLIX_ALLOW_HARD_DELETE === "1";
14
+ }
15
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/catalog/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAErF,MAAM,UAAU,mBAAmB;IAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,yBAAyB;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC;AAC3G,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * nx-content / ai-gateway treat strings with **no whitespace** as registry keys.
3
+ * Ensure DB-sourced templates are always parsed as literal template text.
4
+ */
5
+ export declare function ensureGatewayTreatsAsTemplateText(text: string): string;
6
+ //# sourceMappingURL=gateway-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-template.d.ts","sourceRoot":"","sources":["../../src/catalog/gateway-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtE"}