@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,107 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize-for-packet.js","sourceRoot":"","sources":["../../src/analysis/sanitize-for-packet.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
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" | "runtime";
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
- /** Skip Catalox fetch (caller supplies template bodies). */
66
- templateOverride?: {
67
- instructions: string;
68
- prompt: string;
69
- };
70
- /** Max chars per template field in the analysis packet; default 12000. */
71
- maxTemplateCharsInPacket?: number;
72
- /** Throw when SDK deterministic findings include `severity: "error"`. */
73
- strictDeterministic?: boolean;
74
- cataloxAppId?: string;
75
- }
76
- export interface AnalyzeSkillRequestResult {
77
- functionId: string;
78
- skillKey: string;
79
- verdict: SkillRequestAnalysisVerdict;
80
- confidence?: number;
81
- report: SkillRequestAnalysisReport;
82
- markdownReport: string;
83
- deterministicFindings: SkillRequestAnalysisFinding[];
84
- gatewayPayload?: SkillGatewayInvokePayload;
85
- }
86
- /** Sanitized invoke/analysis packet (gateway payload + template slice + findings). */
87
- export interface AnalyzeGatewayInvokeRequestPacket {
88
- functionId: string;
89
- aiRequestId?: string;
90
- jobId?: string;
91
- taskId?: string;
92
- agentId?: string;
93
- jobTypeId?: string;
94
- taskTypeId?: string;
95
- gatewayPayload: Record<string, unknown>;
96
- runSkillRequest?: Record<string, unknown>;
97
- templates?: {
98
- raw?: {
99
- instructions?: string;
100
- prompt?: string;
101
- };
102
- rendered?: {
103
- instructions?: string;
104
- prompt?: string;
105
- };
106
- catalogStatus?: string;
107
- };
108
- outputContract?: OutputContract;
109
- resolvedOutputFields?: string[];
110
- deterministicFindings?: SkillRequestAnalysisFinding[];
111
- flexMdFrameHint?: string;
112
- templateTokenInventory?: string[];
113
- }
114
- export interface BuildSkillRequestAnalysisPacketResult {
115
- packet: AnalyzeGatewayInvokeRequestPacket;
116
- deterministicFindings: SkillRequestAnalysisFinding[];
117
- gatewayPayload: SkillGatewayInvokePayload;
118
- instructionsRaw: string;
119
- promptRaw: string;
120
- instructionsRendered: string;
121
- promptRendered: string;
122
- catalogStatus?: string;
123
- }
124
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analysis/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analysis/types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,16 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,4 +0,0 @@
1
- export declare function getXillixMetaDbName(): string;
2
- export declare function getXillixTestMetaDbName(): string;
3
- export declare function isXillixHardDeleteAllowed(): boolean;
4
- //# sourceMappingURL=env.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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 function ensureGatewayTreatsAsTemplateText(text) {
6
- if (typeof text !== "string")
7
- return text;
8
- const t = text.trim();
9
- if (t.length === 0)
10
- return text;
11
- if (/\s/.test(t))
12
- return text;
13
- return `${text}\n`;
14
- }
15
- //# sourceMappingURL=gateway-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway-template.js","sourceRoot":"","sources":["../../src/catalog/gateway-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAAC,IAAY;IAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,GAAG,IAAI,IAAI,CAAC;AACvB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { canonicalSkillKey } from "./canonical-skill-key.js";
2
- export { ensureGatewayTreatsAsTemplateText } from "./gateway-template.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { canonicalSkillKey } from "./canonical-skill-key.js";
2
- export { ensureGatewayTreatsAsTemplateText } from "./gateway-template.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { SkillCatalog } from "./skill-catalog.js";
2
- /** Canonical Mongo / xillix keys for skills that ship template seeds (subset of the Catalox catalog). */
3
- export declare const SEED_CANONICAL_SKILL_KEYS: `skills/${string}`[];
4
- export interface SeedXillixCatalogOptions {
5
- /** Root folder containing `<id>.instructions.md` and `<id>.prompt.md` (default: `.metadata/skills`). */
6
- templatesRoot?: string;
7
- }
8
- /**
9
- * Idempotent upsert of built-in skills; loads template bodies from disk when present.
10
- */
11
- export declare function seedXillixCatalog(catalog: SkillCatalog, options?: SeedXillixCatalogOptions): Promise<void>;
12
- //# sourceMappingURL=seed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/catalog/seed.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,yGAAyG;AACzG,eAAO,MAAM,yBAAyB,sBAA+D,CAAC;AAEtG,MAAM,WAAW,wBAAwB;IACrC,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BpH"}
@@ -1,45 +0,0 @@
1
- import * as fs from "fs";
2
- import * as path from "path";
3
- import { AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_MONGO_SEED_KEYS } from "../catalox/ai-skills-catalog.js";
4
- /** Canonical Mongo / xillix keys for skills that ship template seeds (subset of the Catalox catalog). */
5
- export const SEED_CANONICAL_SKILL_KEYS = AI_SKILLS_MONGO_SEED_KEYS.map((k) => `skills/${k}`);
6
- function readOptionalUtf8(filePath) {
7
- try {
8
- return fs.readFileSync(filePath, "utf8");
9
- }
10
- catch {
11
- return undefined;
12
- }
13
- }
14
- /**
15
- * Idempotent upsert of built-in skills; loads template bodies from disk when present.
16
- */
17
- export async function seedXillixCatalog(catalog, options = {}) {
18
- const root = options.templatesRoot ?? path.join(process.cwd(), ".metadata", "skills");
19
- for (const spec of AI_SKILLS_CATALOG_ITEMS) {
20
- if (!spec.xillixSeed)
21
- continue;
22
- const skillKey = `skills/${spec.skillKey}`;
23
- const xs = spec.xillixSeed;
24
- const id = spec.skillKey;
25
- const instructionsText = readOptionalUtf8(path.join(root, `${id}.instructions.md`));
26
- const promptText = readOptionalUtf8(path.join(root, `${id}.prompt.md`));
27
- await catalog.upsert({
28
- skillKey,
29
- displayName: spec.title,
30
- description: spec.description,
31
- lifecycle: "active",
32
- tags: ["xeonox", "seed"],
33
- deletedAt: null,
34
- outputFrame: xs.outputFrame,
35
- requiredVariables: xs.requiredVariables,
36
- optionalVariables: xs.optionalVariables,
37
- outputSchema: xs.outputSchema,
38
- inputHints: { variables: { required: xs.requiredVariables, optional: xs.optionalVariables } },
39
- outputHints: { frame: xs.outputFrame },
40
- ...(instructionsText !== undefined ? { instructionsText } : {}),
41
- ...(promptText !== undefined ? { promptText } : {}),
42
- });
43
- }
44
- }
45
- //# sourceMappingURL=seed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/catalog/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGrG,yGAAyG;AACzG,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAW,CAAC,CAAC;AAOtG,SAAS,gBAAgB,CAAC,QAAgB;IACtC,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAqB,EAAE,UAAoC,EAAE;IACjG,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEtF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC/B,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QACxE,MAAM,OAAO,CAAC,MAAM,CAAC;YACjB,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE;YAC7F,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;YACtC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
@@ -1,28 +0,0 @@
1
- import type { XronoxStore } from "@xronoces/xronox-store";
2
- import type { AiSkillCatalogDocument, SkillCatalogListOptions, SkillCatalogPatchOptions } from "./types.js";
3
- export declare class SkillCatalog {
4
- private readonly store;
5
- constructor(store: XronoxStore);
6
- private col;
7
- create(doc: Omit<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt" | "deletedAt"> & {
8
- deletedAt?: null;
9
- }): Promise<void>;
10
- get(skillKey: string, opts?: {
11
- includeHidden?: boolean;
12
- }): Promise<AiSkillCatalogDocument | null>;
13
- patch(skillKey: string, fields: Partial<AiSkillCatalogDocument>, opts?: SkillCatalogPatchOptions): Promise<void>;
14
- /** Soft-delete: sets `deletedAt` and optional lifecycle. */
15
- archive(skillKey: string, opts?: SkillCatalogPatchOptions & {
16
- lifecycle?: "deprecated";
17
- }): Promise<void>;
18
- /**
19
- * Hard-remove catalog row. Only when not production and `XILLIX_ALLOW_HARD_DELETE=true`.
20
- */
21
- hardDelete(skillKey: string): Promise<void>;
22
- list(options?: SkillCatalogListOptions): Promise<AiSkillCatalogDocument[]>;
23
- /**
24
- * Insert or full replace by `skillKey` (upsert). Used by seeds and migrations.
25
- */
26
- upsert(doc: Omit<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt"> & Partial<Pick<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt">>): Promise<void>;
27
- }
28
- //# sourceMappingURL=skill-catalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/skill-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAsB5G,qBAAa,YAAY;IACT,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAE/C,OAAO,CAAC,GAAG;IAIL,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3I,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IASjG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtH,4DAA4D;IACtD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9G;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,IAAI,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiCpF;;OAEG;IACG,MAAM,CACR,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACxF,OAAO,CAAC,IAAI,CAAC;CAmBnB"}
@@ -1,139 +0,0 @@
1
- import { AI_SKILL_CATALOG_COLLECTION } from "./constants.js";
2
- import { isXillixHardDeleteAllowed } from "./env.js";
3
- import { SkillCatalogDuplicateKeyError, SkillCatalogNotFoundError, SkillCatalogVersionConflictError, } from "./types.js";
4
- function isDuplicateKeyError(err) {
5
- const msg = err instanceof Error ? err.message : String(err);
6
- if (msg.includes("E11000") || msg.includes("11000"))
7
- return true;
8
- const code = err?.code;
9
- return code === 11000;
10
- }
11
- function stripUndefined(o) {
12
- const out = { ...o };
13
- for (const k of Object.keys(out)) {
14
- if (out[k] === undefined)
15
- delete out[k];
16
- }
17
- return out;
18
- }
19
- export class SkillCatalog {
20
- store;
21
- constructor(store) {
22
- this.store = store;
23
- }
24
- col() {
25
- return this.store.collection(AI_SKILL_CATALOG_COLLECTION);
26
- }
27
- async create(doc) {
28
- const now = new Date().toISOString();
29
- const row = {
30
- ...doc,
31
- catalogVersion: 1,
32
- createdAt: now,
33
- updatedAt: now,
34
- deletedAt: doc.deletedAt ?? null,
35
- };
36
- try {
37
- await this.col().insert(stripUndefined(row));
38
- }
39
- catch (err) {
40
- if (isDuplicateKeyError(err)) {
41
- throw new SkillCatalogDuplicateKeyError(doc.skillKey);
42
- }
43
- throw err;
44
- }
45
- }
46
- async get(skillKey, opts) {
47
- if (opts?.includeHidden) {
48
- const r = await this.col().readMany({ skillKey }, { includeHidden: true, limit: 1 });
49
- return r[0] ?? null;
50
- }
51
- const row = await this.col().getByKey(skillKey);
52
- return row;
53
- }
54
- async patch(skillKey, fields, opts) {
55
- const cur = await this.get(skillKey, { includeHidden: true });
56
- if (!cur)
57
- throw new SkillCatalogNotFoundError(skillKey);
58
- if (opts?.expectedVersion !== undefined && cur.catalogVersion !== opts.expectedVersion) {
59
- throw new SkillCatalogVersionConflictError(skillKey);
60
- }
61
- const nextVersion = (cur.catalogVersion ?? 0) + 1;
62
- const { skillKey: _sk, catalogVersion: _cv, createdAt: _ca, ...rest } = fields;
63
- const patch = stripUndefined({
64
- ...rest,
65
- catalogVersion: nextVersion,
66
- updatedAt: new Date().toISOString(),
67
- });
68
- await this.col().patchByKey(skillKey, patch);
69
- }
70
- /** Soft-delete: sets `deletedAt` and optional lifecycle. */
71
- async archive(skillKey, opts) {
72
- await this.patch(skillKey, {
73
- deletedAt: new Date().toISOString(),
74
- lifecycle: opts?.lifecycle ?? "deprecated",
75
- }, opts);
76
- }
77
- /**
78
- * Hard-remove catalog row. Only when not production and `XILLIX_ALLOW_HARD_DELETE=true`.
79
- */
80
- async hardDelete(skillKey) {
81
- if (!isXillixHardDeleteAllowed()) {
82
- throw new Error("[AI-SKILLS] hardDelete is only allowed when NODE_ENV !== 'production' and XILLIX_ALLOW_HARD_DELETE=true");
83
- }
84
- const n = await this.col().deleteMany({ skillKey }, { includeHidden: true, clearCache: "all" });
85
- if (n < 1)
86
- throw new SkillCatalogNotFoundError(skillKey);
87
- }
88
- async list(options = {}) {
89
- const scanLimit = options.scanLimit ?? 10_000;
90
- const rows = await this.col().readMany({}, { includeHidden: options.includeHidden === true, limit: scanLimit, sort: { skillKey: 1 } });
91
- let out = rows;
92
- if (options.activeOnly) {
93
- out = out.filter((r) => r.lifecycle === "active" && (r.deletedAt === null || r.deletedAt === undefined));
94
- }
95
- if (options.tag) {
96
- out = out.filter((r) => Array.isArray(r.tags) && r.tags.includes(options.tag));
97
- }
98
- if (options.skillKeyPrefix) {
99
- const p = options.skillKeyPrefix;
100
- out = out.filter((r) => typeof r.skillKey === "string" && r.skillKey.startsWith(p));
101
- }
102
- if (options.updatedAfter) {
103
- const after = new Date(options.updatedAfter).getTime();
104
- out = out.filter((r) => {
105
- const t = Date.parse(r.updatedAt);
106
- return !Number.isNaN(t) && t > after;
107
- });
108
- }
109
- const offset = options.offset ?? 0;
110
- const limit = options.limit;
111
- if (offset > 0 || limit !== undefined) {
112
- const end = limit === undefined ? undefined : offset + limit;
113
- out = out.slice(offset, end);
114
- }
115
- return out;
116
- }
117
- /**
118
- * Insert or full replace by `skillKey` (upsert). Used by seeds and migrations.
119
- */
120
- async upsert(doc) {
121
- const existing = await this.get(doc.skillKey, { includeHidden: true });
122
- const now = new Date().toISOString();
123
- if (!existing) {
124
- const { catalogVersion: _cv, createdAt: _c, updatedAt: _u, ...forCreate } = doc;
125
- await this.create(forCreate);
126
- return;
127
- }
128
- const nextVersion = doc.catalogVersion !== undefined ? doc.catalogVersion : (existing.catalogVersion ?? 0) + 1;
129
- const merged = {
130
- ...existing,
131
- ...doc,
132
- catalogVersion: nextVersion,
133
- updatedAt: doc.updatedAt ?? now,
134
- createdAt: existing.createdAt,
135
- };
136
- await this.col().update(doc.skillKey, stripUndefined(merged));
137
- }
138
- }
139
- //# sourceMappingURL=skill-catalog.js.map