@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.
- package/README.md +600 -0
- package/dist/analysis/analyze-skill-request.d.ts +12 -0
- package/dist/analysis/analyze-skill-request.d.ts.map +1 -0
- package/dist/analysis/analyze-skill-request.js +201 -0
- package/dist/analysis/analyze-skill-request.js.map +1 -0
- package/dist/analysis/build-skill-request-analysis-packet.d.ts +14 -0
- package/dist/analysis/build-skill-request-analysis-packet.d.ts.map +1 -0
- package/dist/analysis/build-skill-request-analysis-packet.js +106 -0
- package/dist/analysis/build-skill-request-analysis-packet.js.map +1 -0
- package/dist/analysis/collect-deterministic-findings.d.ts +14 -0
- package/dist/analysis/collect-deterministic-findings.d.ts.map +1 -0
- package/dist/analysis/collect-deterministic-findings.js +221 -0
- package/dist/analysis/collect-deterministic-findings.js.map +1 -0
- package/dist/analysis/constants.d.ts +5 -0
- package/dist/analysis/constants.d.ts.map +1 -0
- package/dist/analysis/constants.js +5 -0
- package/dist/analysis/constants.js.map +1 -0
- package/dist/analysis/format-skill-request-analysis-markdown.d.ts +8 -0
- package/dist/analysis/format-skill-request-analysis-markdown.d.ts.map +1 -0
- package/dist/analysis/format-skill-request-analysis-markdown.js +121 -0
- package/dist/analysis/format-skill-request-analysis-markdown.js.map +1 -0
- package/dist/analysis/path-utils.d.ts +11 -0
- package/dist/analysis/path-utils.d.ts.map +1 -0
- package/dist/analysis/path-utils.js +69 -0
- package/dist/analysis/path-utils.js.map +1 -0
- package/dist/analysis/sanitize-for-packet.d.ts +28 -0
- package/dist/analysis/sanitize-for-packet.d.ts.map +1 -0
- package/dist/analysis/sanitize-for-packet.js +107 -0
- package/dist/analysis/sanitize-for-packet.js.map +1 -0
- package/dist/analysis/types.d.ts +139 -0
- package/dist/analysis/types.d.ts.map +1 -0
- package/dist/analysis/types.js +2 -0
- package/dist/analysis/types.js.map +1 -0
- package/dist/catalog/canonical-skill-key.d.ts +5 -0
- package/dist/catalog/canonical-skill-key.d.ts.map +1 -0
- package/dist/catalog/canonical-skill-key.js +16 -0
- package/dist/catalog/canonical-skill-key.js.map +1 -0
- package/dist/catalog/constants.d.ts +7 -0
- package/dist/catalog/constants.d.ts.map +1 -0
- package/dist/catalog/constants.js +7 -0
- package/dist/catalog/constants.js.map +1 -0
- package/dist/catalog/env.d.ts +4 -0
- package/dist/catalog/env.d.ts.map +1 -0
- package/dist/catalog/env.js +15 -0
- package/dist/catalog/env.js.map +1 -0
- package/dist/catalog/gateway-template.d.ts +6 -0
- package/dist/catalog/gateway-template.d.ts.map +1 -0
- package/dist/catalog/gateway-template.js +15 -0
- package/dist/catalog/gateway-template.js.map +1 -0
- package/dist/catalog/index.d.ts +3 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +3 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/seed.d.ts +12 -0
- package/dist/catalog/seed.d.ts.map +1 -0
- package/dist/catalog/seed.js +45 -0
- package/dist/catalog/seed.js.map +1 -0
- package/dist/catalog/skill-catalog.d.ts +28 -0
- package/dist/catalog/skill-catalog.d.ts.map +1 -0
- package/dist/catalog/skill-catalog.js +139 -0
- package/dist/catalog/skill-catalog.js.map +1 -0
- package/dist/catalog/store-factory.d.ts +18 -0
- package/dist/catalog/store-factory.d.ts.map +1 -0
- package/dist/catalog/store-factory.js +36 -0
- package/dist/catalog/store-factory.js.map +1 -0
- package/dist/catalog/types.d.ts +61 -0
- package/dist/catalog/types.d.ts.map +1 -0
- package/dist/catalog/types.js +22 -0
- package/dist/catalog/types.js.map +1 -0
- package/dist/catalox/ai-engines-catalog.d.ts +24 -0
- package/dist/catalox/ai-engines-catalog.d.ts.map +1 -0
- package/dist/catalox/ai-engines-catalog.js +89 -0
- package/dist/catalox/ai-engines-catalog.js.map +1 -0
- package/dist/catalox/ai-skills-catalog.d.ts +32 -0
- package/dist/catalox/ai-skills-catalog.d.ts.map +1 -0
- package/dist/catalox/ai-skills-catalog.js +202 -0
- package/dist/catalox/ai-skills-catalog.js.map +1 -0
- package/dist/catalox/catalox-skill-errors.d.ts +15 -0
- package/dist/catalox/catalox-skill-errors.d.ts.map +1 -0
- package/dist/catalox/catalox-skill-errors.js +29 -0
- package/dist/catalox/catalox-skill-errors.js.map +1 -0
- package/dist/catalox/index.d.ts +10 -0
- package/dist/catalox/index.d.ts.map +1 -0
- package/dist/catalox/index.js +10 -0
- package/dist/catalox/index.js.map +1 -0
- package/dist/catalox/init-firebase-and-catalox.d.ts +8 -0
- package/dist/catalox/init-firebase-and-catalox.d.ts.map +1 -0
- package/dist/catalox/init-firebase-and-catalox.js +48 -0
- package/dist/catalox/init-firebase-and-catalox.js.map +1 -0
- package/dist/catalox/list-ai-skills-catalog.d.ts +24 -0
- package/dist/catalox/list-ai-skills-catalog.d.ts.map +1 -0
- package/dist/catalox/list-ai-skills-catalog.js +38 -0
- package/dist/catalox/list-ai-skills-catalog.js.map +1 -0
- package/dist/catalox/skill-gateway-template-utils.d.ts +11 -0
- package/dist/catalox/skill-gateway-template-utils.d.ts.map +1 -0
- package/dist/catalox/skill-gateway-template-utils.js +31 -0
- package/dist/catalox/skill-gateway-template-utils.js.map +1 -0
- package/dist/catalox/skill-template-catalog-mutations.d.ts +143 -0
- package/dist/catalox/skill-template-catalog-mutations.d.ts.map +1 -0
- package/dist/catalox/skill-template-catalog-mutations.js +470 -0
- package/dist/catalox/skill-template-catalog-mutations.js.map +1 -0
- package/dist/catalox/skill-template-markdown.d.ts +34 -0
- package/dist/catalox/skill-template-markdown.d.ts.map +1 -0
- package/dist/catalox/skill-template-markdown.js +106 -0
- package/dist/catalox/skill-template-markdown.js.map +1 -0
- package/dist/catalox/skill-templates.d.ts +72 -0
- package/dist/catalox/skill-templates.d.ts.map +1 -0
- package/dist/catalox/skill-templates.js +80 -0
- package/dist/catalox/skill-templates.js.map +1 -0
- package/dist/client/audit-manager.d.ts +27 -0
- package/dist/client/audit-manager.d.ts.map +1 -0
- package/dist/client/audit-manager.js +260 -0
- package/dist/client/audit-manager.js.map +1 -0
- package/dist/client/base-client.d.ts +19 -0
- package/dist/client/base-client.d.ts.map +1 -0
- package/dist/client/base-client.js +20 -0
- package/dist/client/base-client.js.map +1 -0
- package/dist/client/build-gateway-invoke-request.d.ts +32 -0
- package/dist/client/build-gateway-invoke-request.d.ts.map +1 -0
- package/dist/client/build-gateway-invoke-request.js +135 -0
- package/dist/client/build-gateway-invoke-request.js.map +1 -0
- package/dist/client/invoke-skill-via-funcx.d.ts +11 -0
- package/dist/client/invoke-skill-via-funcx.d.ts.map +1 -0
- package/dist/client/invoke-skill-via-funcx.js +51 -0
- package/dist/client/invoke-skill-via-funcx.js.map +1 -0
- package/dist/client/registry-manager.d.ts +94 -0
- package/dist/client/registry-manager.d.ts.map +1 -0
- package/dist/client/registry-manager.js +287 -0
- package/dist/client/registry-manager.js.map +1 -0
- package/dist/client/skill-executor.d.ts +35 -0
- package/dist/client/skill-executor.d.ts.map +1 -0
- package/dist/client/skill-executor.js +316 -0
- package/dist/client/skill-executor.js.map +1 -0
- package/dist/client/task-executor.d.ts +21 -0
- package/dist/client/task-executor.d.ts.map +1 -0
- package/dist/client/task-executor.js +50 -0
- package/dist/client/task-executor.js.map +1 -0
- package/dist/client.d.ts +116 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +406 -0
- package/dist/client.js.map +1 -0
- package/dist/diagnostics/gateway-usage.d.ts +3 -0
- package/dist/diagnostics/gateway-usage.d.ts.map +1 -0
- package/dist/diagnostics/gateway-usage.js +26 -0
- package/dist/diagnostics/gateway-usage.js.map +1 -0
- package/dist/diagnostics/map-gateway-trace.d.ts +43 -0
- package/dist/diagnostics/map-gateway-trace.d.ts.map +1 -0
- package/dist/diagnostics/map-gateway-trace.js +243 -0
- package/dist/diagnostics/map-gateway-trace.js.map +1 -0
- package/dist/diagnostics/trace-mode.d.ts +9 -0
- package/dist/diagnostics/trace-mode.d.ts.map +1 -0
- package/dist/diagnostics/trace-mode.js +8 -0
- package/dist/diagnostics/trace-mode.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata.d.ts +7 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +65 -0
- package/dist/metadata.js.map +1 -0
- package/dist/parsers/context-parser.d.ts +2 -0
- package/dist/parsers/context-parser.d.ts.map +1 -0
- package/dist/parsers/context-parser.js +5 -0
- package/dist/parsers/context-parser.js.map +1 -0
- package/dist/parsers/input-parser.d.ts +2 -0
- package/dist/parsers/input-parser.d.ts.map +1 -0
- package/dist/parsers/input-parser.js +5 -0
- package/dist/parsers/input-parser.js.map +1 -0
- package/dist/runtime-objects.d.ts +11 -0
- package/dist/runtime-objects.d.ts.map +1 -0
- package/dist/runtime-objects.js +21 -0
- package/dist/runtime-objects.js.map +1 -0
- package/dist/skill-execution-trace-error.d.ts +20 -0
- package/dist/skill-execution-trace-error.d.ts.map +1 -0
- package/dist/skill-execution-trace-error.js +21 -0
- package/dist/skill-execution-trace-error.js.map +1 -0
- package/dist/types.d.ts +534 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/build-activix-billing-patch.d.ts +24 -0
- package/dist/utils/build-activix-billing-patch.d.ts.map +1 -0
- package/dist/utils/build-activix-billing-patch.js +70 -0
- package/dist/utils/build-activix-billing-patch.js.map +1 -0
- package/dist/utils/enrich-activix-identity.d.ts +30 -0
- package/dist/utils/enrich-activix-identity.d.ts.map +1 -0
- package/dist/utils/enrich-activix-identity.js +34 -0
- package/dist/utils/enrich-activix-identity.js.map +1 -0
- package/dist/utils/exellix-skills-logxer-defaults.d.ts +16 -0
- package/dist/utils/exellix-skills-logxer-defaults.d.ts.map +1 -0
- package/dist/utils/exellix-skills-logxer-defaults.js +37 -0
- package/dist/utils/exellix-skills-logxer-defaults.js.map +1 -0
- package/dist/utils/flex-md-parser.d.ts +23 -0
- package/dist/utils/flex-md-parser.d.ts.map +1 -0
- package/dist/utils/flex-md-parser.js +98 -0
- package/dist/utils/flex-md-parser.js.map +1 -0
- package/dist/utils/gateway-execution-summary.d.ts +18 -0
- package/dist/utils/gateway-execution-summary.d.ts.map +1 -0
- package/dist/utils/gateway-execution-summary.js +42 -0
- package/dist/utils/gateway-execution-summary.js.map +1 -0
- package/dist/utils/gateway-invoke-rejection.d.ts +9 -0
- package/dist/utils/gateway-invoke-rejection.d.ts.map +1 -0
- package/dist/utils/gateway-invoke-rejection.js +28 -0
- package/dist/utils/gateway-invoke-rejection.js.map +1 -0
- package/dist/utils/normalize-billing-metadata.d.ts +17 -0
- package/dist/utils/normalize-billing-metadata.d.ts.map +1 -0
- package/dist/utils/normalize-billing-metadata.js +75 -0
- package/dist/utils/normalize-billing-metadata.js.map +1 -0
- package/dist/utils/normalize-output-parsed.d.ts +25 -0
- package/dist/utils/normalize-output-parsed.d.ts.map +1 -0
- package/dist/utils/normalize-output-parsed.js +128 -0
- package/dist/utils/normalize-output-parsed.js.map +1 -0
- package/dist/utils/patch-activix-activity-after-skill.d.ts +19 -0
- package/dist/utils/patch-activix-activity-after-skill.d.ts.map +1 -0
- package/dist/utils/patch-activix-activity-after-skill.js +81 -0
- package/dist/utils/patch-activix-activity-after-skill.js.map +1 -0
- package/dist/utils/rendrix-render-skill-templates.d.ts +14 -0
- package/dist/utils/rendrix-render-skill-templates.d.ts.map +1 -0
- package/dist/utils/rendrix-render-skill-templates.js +25 -0
- package/dist/utils/rendrix-render-skill-templates.js.map +1 -0
- package/dist/utils/resolve-activity-id.d.ts +9 -0
- package/dist/utils/resolve-activity-id.d.ts.map +1 -0
- package/dist/utils/resolve-activity-id.js +27 -0
- package/dist/utils/resolve-activity-id.js.map +1 -0
- package/dist/utils/resolve-gateway-job-task-ids.d.ts +19 -0
- package/dist/utils/resolve-gateway-job-task-ids.d.ts.map +1 -0
- package/dist/utils/resolve-gateway-job-task-ids.js +21 -0
- package/dist/utils/resolve-gateway-job-task-ids.js.map +1 -0
- package/dist/utils/resolve-identity.d.ts +12 -0
- package/dist/utils/resolve-identity.d.ts.map +1 -0
- package/dist/utils/resolve-identity.js +36 -0
- package/dist/utils/resolve-identity.js.map +1 -0
- package/dist/utils/resolve-run-skill-ai-engine.d.ts +8 -0
- package/dist/utils/resolve-run-skill-ai-engine.d.ts.map +1 -0
- package/dist/utils/resolve-run-skill-ai-engine.js +20 -0
- package/dist/utils/resolve-run-skill-ai-engine.js.map +1 -0
- package/dist/utils/run-skill-request.d.ts +11 -0
- package/dist/utils/run-skill-request.d.ts.map +1 -0
- package/dist/utils/run-skill-request.js +44 -0
- package/dist/utils/run-skill-request.js.map +1 -0
- package/dist/utils/validate-mandatory-activix-invoke-fields.d.ts +7 -0
- package/dist/utils/validate-mandatory-activix-invoke-fields.d.ts.map +1 -0
- package/dist/utils/validate-mandatory-activix-invoke-fields.js +16 -0
- package/dist/utils/validate-mandatory-activix-invoke-fields.js.map +1 -0
- package/dist/utils/validate-session-id.d.ts +6 -0
- package/dist/utils/validate-session-id.d.ts.map +1 -0
- package/dist/utils/validate-session-id.js +18 -0
- package/dist/utils/validate-session-id.js.map +1 -0
- package/erc-manifest.json +11 -0
- package/package.json +76 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
function isPlainObject(v) {
|
|
2
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
3
|
+
}
|
|
4
|
+
/** Resolves contract field names from common graph-engine shapes. */
|
|
5
|
+
export function resolveOutputContractFields(contract) {
|
|
6
|
+
if (contract === undefined)
|
|
7
|
+
return [];
|
|
8
|
+
if (Array.isArray(contract)) {
|
|
9
|
+
return contract.filter((k) => typeof k === "string" && k.trim().length > 0).map((k) => k.trim());
|
|
10
|
+
}
|
|
11
|
+
if (isPlainObject(contract)) {
|
|
12
|
+
const fromFields = contract.fields;
|
|
13
|
+
if (Array.isArray(fromFields)) {
|
|
14
|
+
return fromFields.filter((k) => typeof k === "string" && k.trim().length > 0).map((k) => k.trim());
|
|
15
|
+
}
|
|
16
|
+
const fromKeys = contract.keys;
|
|
17
|
+
if (Array.isArray(fromKeys)) {
|
|
18
|
+
return fromKeys.filter((k) => typeof k === "string" && k.trim().length > 0).map((k) => k.trim());
|
|
19
|
+
}
|
|
20
|
+
const fromRequired = contract.required;
|
|
21
|
+
if (Array.isArray(fromRequired)) {
|
|
22
|
+
return fromRequired.filter((k) => typeof k === "string" && k.trim().length > 0).map((k) => k.trim());
|
|
23
|
+
}
|
|
24
|
+
return Object.keys(contract).filter((k) => !["fields", "keys", "required"].includes(k));
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
/** `### Short Answer` → `shortAnswer`. */
|
|
29
|
+
export function markdownHeadingToFieldKey(heading) {
|
|
30
|
+
const words = heading
|
|
31
|
+
.trim()
|
|
32
|
+
.replace(/^#+\s*/, "")
|
|
33
|
+
.split(/\s+/)
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
if (words.length === 0)
|
|
36
|
+
return "";
|
|
37
|
+
return words
|
|
38
|
+
.map((w, i) => {
|
|
39
|
+
const lower = w.toLowerCase();
|
|
40
|
+
if (i === 0)
|
|
41
|
+
return lower;
|
|
42
|
+
return lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
43
|
+
})
|
|
44
|
+
.join("");
|
|
45
|
+
}
|
|
46
|
+
const SECTION_HEADER = /^#{2,3}\s+(.+?)\s*$/gm;
|
|
47
|
+
function isEmptyParsedValue(v) {
|
|
48
|
+
if (v === undefined || v === null)
|
|
49
|
+
return true;
|
|
50
|
+
if (typeof v === "string")
|
|
51
|
+
return v.trim().length === 0;
|
|
52
|
+
if (Array.isArray(v))
|
|
53
|
+
return v.length === 0;
|
|
54
|
+
if (isPlainObject(v) && Object.keys(v).length === 0)
|
|
55
|
+
return true;
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
/** Parses `### Section` blocks from markdown into camelCase field keys. */
|
|
59
|
+
export function parseMarkdownSectionsToFields(text) {
|
|
60
|
+
const out = {};
|
|
61
|
+
if (!text || typeof text !== "string")
|
|
62
|
+
return out;
|
|
63
|
+
const matches = [...text.matchAll(SECTION_HEADER)];
|
|
64
|
+
for (let i = 0; i < matches.length; i++) {
|
|
65
|
+
const match = matches[i];
|
|
66
|
+
const title = match[1]?.trim() ?? "";
|
|
67
|
+
const key = markdownHeadingToFieldKey(title);
|
|
68
|
+
if (!key)
|
|
69
|
+
continue;
|
|
70
|
+
const start = (match.index ?? 0) + match[0].length;
|
|
71
|
+
const end = i + 1 < matches.length ? (matches[i + 1].index ?? text.length) : text.length;
|
|
72
|
+
const body = text.slice(start, end).trim();
|
|
73
|
+
if (body.length > 0) {
|
|
74
|
+
out[key] = body;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
function coalescePayloadValue(value) {
|
|
80
|
+
if (value === undefined || value === null)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (typeof value === "string")
|
|
83
|
+
return value.trim().length > 0 ? value : undefined;
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fills `parsed` keys requested by `outputContract` from FlexMD payloads and markdown sections.
|
|
88
|
+
* Does not remove existing parsed keys; only adds missing satisfiable values.
|
|
89
|
+
*/
|
|
90
|
+
export function enrichParsedForOutputContract(args) {
|
|
91
|
+
const fields = resolveOutputContractFields(args.outputContract);
|
|
92
|
+
const parsed = { ...args.parsed };
|
|
93
|
+
if (fields.length === 0)
|
|
94
|
+
return parsed;
|
|
95
|
+
const fromMarkdown = parseMarkdownSectionsToFields(args.rawText ?? "");
|
|
96
|
+
const payloads = args.flexMdPayloads ?? {};
|
|
97
|
+
for (const field of fields) {
|
|
98
|
+
if (!isEmptyParsedValue(parsed[field]))
|
|
99
|
+
continue;
|
|
100
|
+
const fromPayload = coalescePayloadValue(payloads[field]);
|
|
101
|
+
if (fromPayload !== undefined) {
|
|
102
|
+
parsed[field] = fromPayload;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const fromMd = fromMarkdown[field];
|
|
106
|
+
if (fromMd !== undefined && fromMd.trim().length > 0) {
|
|
107
|
+
parsed[field] = fromMd;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const rawParsed = parsed[field];
|
|
111
|
+
if (isPlainObject(rawParsed) && typeof rawParsed.rawText === "string") {
|
|
112
|
+
const nested = parseMarkdownSectionsToFields(rawParsed.rawText);
|
|
113
|
+
if (nested[field]) {
|
|
114
|
+
parsed[field] = nested[field];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (typeof parsed.rawText === "string" && fields.length > 0) {
|
|
119
|
+
const expanded = parseMarkdownSectionsToFields(parsed.rawText);
|
|
120
|
+
for (const [key, value] of Object.entries(expanded)) {
|
|
121
|
+
if (isEmptyParsedValue(parsed[key])) {
|
|
122
|
+
parsed[key] = value;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return parsed;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=normalize-output-parsed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-output-parsed.js","sourceRoot":"","sources":["../../src/utils/normalize-output-parsed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AIGateway } from "@x12i/ai-gateway";
|
|
2
|
+
import type { Logxer } from "@x12i/logxer";
|
|
3
|
+
import type { NormalizedSkillBilling } from "./normalize-billing-metadata.js";
|
|
4
|
+
import { type ActivixBillingPatchContext } from "./build-activix-billing-patch.js";
|
|
5
|
+
export type PatchActivixActivityAfterSkillArgs = {
|
|
6
|
+
gateway: AIGateway;
|
|
7
|
+
logger: Logxer;
|
|
8
|
+
activityId: string;
|
|
9
|
+
billing: NormalizedSkillBilling;
|
|
10
|
+
parsed: Record<string, unknown>;
|
|
11
|
+
/** Routing / model slice for `outer.metadata` (mirrors gateway completion metadata). */
|
|
12
|
+
activixContext?: ActivixBillingPatchContext;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Best-effort patch of the persisted Activix row after gateway `logSuccess`, so studio Run Analysis
|
|
16
|
+
* sees enriched `cost` / `costStatus`, `outer.metadata` billing, Activix `outer.cost`, and `outer.output.parsed`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function patchActivixActivityAfterSkill(args: PatchActivixActivityAfterSkillArgs): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=patch-activix-activity-after-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-activix-activity-after-skill.d.ts","sourceRoot":"","sources":["../../src/utils/patch-activix-activity-after-skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,kCAAkC,CAAC;AAsC1C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,wFAAwF;IACxF,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C,CAAC;AAEF;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD5G"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { buildActivixBillingPatch, } from "./build-activix-billing-patch.js";
|
|
2
|
+
function isPlainObject(v) {
|
|
3
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
4
|
+
}
|
|
5
|
+
function mergeParsedIntoOutputContainer(container, parsed) {
|
|
6
|
+
if (!isPlainObject(container))
|
|
7
|
+
return undefined;
|
|
8
|
+
const existingParsed = isPlainObject(container.parsed) ? container.parsed : {};
|
|
9
|
+
return {
|
|
10
|
+
...container,
|
|
11
|
+
parsed: { ...existingParsed, ...parsed },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function mergeMetadata(existing, incoming) {
|
|
15
|
+
const base = isPlainObject(existing) ? existing : {};
|
|
16
|
+
return { ...base, ...incoming };
|
|
17
|
+
}
|
|
18
|
+
function mergeOuterCost(existing, incoming) {
|
|
19
|
+
if (!isPlainObject(existing))
|
|
20
|
+
return incoming;
|
|
21
|
+
const prev = existing;
|
|
22
|
+
const prevTokens = isPlainObject(prev.tokens) ? prev.tokens : {};
|
|
23
|
+
const nextTokens = isPlainObject(incoming.tokens) ? incoming.tokens : {};
|
|
24
|
+
return {
|
|
25
|
+
...prev,
|
|
26
|
+
...incoming,
|
|
27
|
+
tokens: { ...prevTokens, ...nextTokens },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Best-effort patch of the persisted Activix row after gateway `logSuccess`, so studio Run Analysis
|
|
32
|
+
* sees enriched `cost` / `costStatus`, `outer.metadata` billing, Activix `outer.cost`, and `outer.output.parsed`.
|
|
33
|
+
*/
|
|
34
|
+
export async function patchActivixActivityAfterSkill(args) {
|
|
35
|
+
const activityManager = args.gateway
|
|
36
|
+
.getActivityManager?.();
|
|
37
|
+
const tracker = activityManager?.getTracker?.();
|
|
38
|
+
if (!tracker || !args.activityId)
|
|
39
|
+
return;
|
|
40
|
+
try {
|
|
41
|
+
const existing = await tracker.getRecord(args.activityId);
|
|
42
|
+
if (!existing)
|
|
43
|
+
return;
|
|
44
|
+
const billingPatch = buildActivixBillingPatch(args.billing, args.activixContext);
|
|
45
|
+
const patch = { ...billingPatch.topLevel };
|
|
46
|
+
const outer = isPlainObject(existing.outer) ? existing.outer : undefined;
|
|
47
|
+
const outerOutput = outer ? mergeParsedIntoOutputContainer(outer.output, args.parsed) : undefined;
|
|
48
|
+
const responseOutput = mergeParsedIntoOutputContainer(existing.response, args.parsed);
|
|
49
|
+
const outerPatched = outer
|
|
50
|
+
? {
|
|
51
|
+
...outer,
|
|
52
|
+
metadata: mergeMetadata(outer.metadata, billingPatch.outerMetadata),
|
|
53
|
+
...(outerOutput !== undefined ? { output: outerOutput } : {}),
|
|
54
|
+
...(billingPatch.outerCost !== undefined
|
|
55
|
+
? { cost: mergeOuterCost(outer.cost, billingPatch.outerCost) }
|
|
56
|
+
: {}),
|
|
57
|
+
}
|
|
58
|
+
: undefined;
|
|
59
|
+
if (outerPatched !== undefined) {
|
|
60
|
+
patch.outer = outerPatched;
|
|
61
|
+
}
|
|
62
|
+
const existingResponse = isPlainObject(existing.response) ? existing.response : {};
|
|
63
|
+
if (responseOutput !== undefined || Object.keys(billingPatch.responseMetadata).length > 0) {
|
|
64
|
+
patch.response = {
|
|
65
|
+
...existingResponse,
|
|
66
|
+
...(responseOutput !== undefined ? responseOutput : {}),
|
|
67
|
+
metadata: mergeMetadata(existingResponse.metadata, billingPatch.responseMetadata),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (Object.keys(patch).length === 0)
|
|
71
|
+
return;
|
|
72
|
+
await tracker.patchRecord(args.activityId, patch);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
args.logger.warn("[AI-SKILLS] Activix activity enrichment patch failed (non-blocking)", {
|
|
76
|
+
activityId: args.activityId,
|
|
77
|
+
error: err instanceof Error ? err.message : String(err),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=patch-activix-activity-after-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-activix-activity-after-skill.js","sourceRoot":"","sources":["../../src/utils/patch-activix-activity-after-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RunSkillRequest } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders Catalox instruction/prompt template bodies with **`@x12i/rendrix`** using the same merged
|
|
4
|
+
* working-memory shape as {@link buildWorkingMemory} plus optional {@link RunSkillRequest.templateTokens}
|
|
5
|
+
* (short-term) and the same template-option merge order as the gateway
|
|
6
|
+
* ({@link mergeGatewayAndRequestTemplateRenderOptions} with no gateway default here).
|
|
7
|
+
*
|
|
8
|
+
* Exposed for tests and callers that need the same **`{{…}}`** resolution as the gateway without invoking it.
|
|
9
|
+
*/
|
|
10
|
+
export declare function renderSkillTemplatesWithRendrix(skillRequest: RunSkillRequest, instructionsPayload: string, promptPayload: string): {
|
|
11
|
+
instructionsRendered: string;
|
|
12
|
+
promptRendered: string;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=rendrix-render-skill-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendrix-render-skill-templates.d.ts","sourceRoot":"","sources":["../../src/utils/rendrix-render-skill-templates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,eAAe,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,aAAa,EAAE,MAAM,GACtB;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAgC1D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { mergeGatewayAndRequestTemplateRenderOptions } from "@x12i/ai-gateway";
|
|
2
|
+
import { render } from "@x12i/rendrix";
|
|
3
|
+
import { buildWorkingMemory } from "../client/build-gateway-invoke-request.js";
|
|
4
|
+
/**
|
|
5
|
+
* Renders Catalox instruction/prompt template bodies with **`@x12i/rendrix`** using the same merged
|
|
6
|
+
* working-memory shape as {@link buildWorkingMemory} plus optional {@link RunSkillRequest.templateTokens}
|
|
7
|
+
* (short-term) and the same template-option merge order as the gateway
|
|
8
|
+
* ({@link mergeGatewayAndRequestTemplateRenderOptions} with no gateway default here).
|
|
9
|
+
*
|
|
10
|
+
* Exposed for tests and callers that need the same **`{{…}}`** resolution as the gateway without invoking it.
|
|
11
|
+
*/
|
|
12
|
+
export function renderSkillTemplatesWithRendrix(skillRequest, instructionsPayload, promptPayload) {
|
|
13
|
+
const working = buildWorkingMemory(skillRequest);
|
|
14
|
+
const shortTerm = { ...(skillRequest.templateTokens ?? {}) };
|
|
15
|
+
const renderOptions = mergeGatewayAndRequestTemplateRenderOptions(undefined, {
|
|
16
|
+
smartInput: skillRequest.smartInput,
|
|
17
|
+
smartInputRenderOptions: skillRequest.smartInputRenderOptions,
|
|
18
|
+
templateRenderOptions: skillRequest.templateRenderOptions,
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
instructionsRendered: render(instructionsPayload, working, shortTerm, undefined, undefined, undefined, undefined, undefined, renderOptions),
|
|
22
|
+
promptRendered: render(promptPayload, working, shortTerm, undefined, undefined, undefined, undefined, undefined, renderOptions),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=rendrix-render-skill-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendrix-render-skill-templates.js","sourceRoot":"","sources":["../../src/utils/rendrix-render-skill-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2CAA2C,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC3C,YAA6B,EAC7B,mBAA2B,EAC3B,aAAqB;IAErB,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAkB,CAAC;IAClE,MAAM,SAAS,GAA4B,EAAE,GAAG,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;IACtF,MAAM,aAAa,GAAG,2CAA2C,CAAC,SAAS,EAAE;QACzE,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;QAC7D,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;KAC5D,CAAC,CAAC;IACH,OAAO;QACH,oBAAoB,EAAE,MAAM,CACxB,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,CAChB;QACD,cAAc,EAAE,MAAM,CAClB,aAAa,EACb,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,CAChB;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway `invoke()` may omit top-level `metadata.activityId` even when activity tracking runs
|
|
3
|
+
* downstream. Map known metadata shapes so `runSkill` / audit callers still get a correlation id.
|
|
4
|
+
*/
|
|
5
|
+
export declare function resolveActivityIdFromGatewayMetadata(metadata: Record<string, unknown> | undefined | null, options?: {
|
|
6
|
+
jobId?: string;
|
|
7
|
+
fallbackSuffix?: string;
|
|
8
|
+
}): string | undefined;
|
|
9
|
+
//# sourceMappingURL=resolve-activity-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-activity-id.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-activity-id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,EACpD,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,MAAM,GAAG,SAAS,CAqBpB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway `invoke()` may omit top-level `metadata.activityId` even when activity tracking runs
|
|
3
|
+
* downstream. Map known metadata shapes so `runSkill` / audit callers still get a correlation id.
|
|
4
|
+
*/
|
|
5
|
+
export function resolveActivityIdFromGatewayMetadata(metadata, options) {
|
|
6
|
+
if (!metadata)
|
|
7
|
+
return undefined;
|
|
8
|
+
const m = metadata;
|
|
9
|
+
const top = m.activityId;
|
|
10
|
+
if (typeof top === "string" && top.length > 0)
|
|
11
|
+
return top;
|
|
12
|
+
const air = m["ai-activities-response"];
|
|
13
|
+
if (air && typeof air === "object") {
|
|
14
|
+
const o = air;
|
|
15
|
+
if (typeof o.activityId === "string" && o.activityId.length > 0)
|
|
16
|
+
return o.activityId;
|
|
17
|
+
if (typeof o.requestId === "string" && o.requestId.length > 0)
|
|
18
|
+
return o.requestId;
|
|
19
|
+
}
|
|
20
|
+
const jobId = options?.jobId;
|
|
21
|
+
if (typeof jobId === "string" && jobId.length > 0) {
|
|
22
|
+
const suf = options?.fallbackSuffix;
|
|
23
|
+
return suf ? `${jobId}-${suf}` : jobId;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=resolve-activity-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-activity-id.js","sourceRoot":"","sources":["../../src/utils/resolve-activity-id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,oCAAoC,CAClD,QAAoD,EACpD,OAAqD;IAErD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,CAAC,GAAG,QAAmC,CAAC;IAE9C,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAE1D,MAAM,GAAG,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACxC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,UAAU,CAAC;QACrF,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,OAAO,EAAE,cAAc,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves `jobId` / `taskId` for `AIGateway.invoke()` (Activix activity grouping).
|
|
3
|
+
* Prefer top-level request fields; if empty, read from upstream `identity`.
|
|
4
|
+
*
|
|
5
|
+
* **Gateway v9+:** `identity` on the invoke payload must include these strings; the gateway does not
|
|
6
|
+
* copy top-level `jobId` / `taskId` into `identity` — callers must merge them (see skill-executor / audit-manager).
|
|
7
|
+
*/
|
|
8
|
+
export type GatewayJobTaskResolution = {
|
|
9
|
+
jobId: string;
|
|
10
|
+
taskId: string;
|
|
11
|
+
missingJobId: boolean;
|
|
12
|
+
missingTaskId: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function resolveGatewayJobAndTaskIds(params: {
|
|
15
|
+
jobId?: string | null;
|
|
16
|
+
taskId?: string | null;
|
|
17
|
+
identity?: Record<string, unknown> | null | undefined;
|
|
18
|
+
}): GatewayJobTaskResolution;
|
|
19
|
+
//# sourceMappingURL=resolve-gateway-job-task-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gateway-job-task-ids.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-gateway-job-task-ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAQF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACvD,GAAG,wBAAwB,CAe3B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function trimmedString(v) {
|
|
2
|
+
if (v === undefined || v === null)
|
|
3
|
+
return "";
|
|
4
|
+
if (typeof v !== "string")
|
|
5
|
+
return String(v).trim();
|
|
6
|
+
return v.trim();
|
|
7
|
+
}
|
|
8
|
+
export function resolveGatewayJobAndTaskIds(params) {
|
|
9
|
+
const id = params.identity && typeof params.identity === "object" && !Array.isArray(params.identity)
|
|
10
|
+
? params.identity
|
|
11
|
+
: undefined;
|
|
12
|
+
const jobId = trimmedString(params.jobId) || trimmedString(id?.jobId);
|
|
13
|
+
const taskId = trimmedString(params.taskId) || trimmedString(id?.taskId);
|
|
14
|
+
return {
|
|
15
|
+
jobId,
|
|
16
|
+
taskId,
|
|
17
|
+
missingJobId: jobId.length === 0,
|
|
18
|
+
missingTaskId: taskId.length === 0,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=resolve-gateway-job-task-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-gateway-job-task-ids.js","sourceRoot":"","sources":["../../src/utils/resolve-gateway-job-task-ids.ts"],"names":[],"mappings":"AAcA,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAI3C;IACC,MAAM,EAAE,GACN,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvF,CAAC,CAAE,MAAM,CAAC,QAAoC;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEzE,OAAO;QACL,KAAK;QACL,MAAM;QACN,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a downstream-provided **runtime** correlation envelope from gateway responses
|
|
3
|
+
* (same semantic as `ActivityIdentity` / Activix **`runContext`** in persistence—not client configuration).
|
|
4
|
+
*
|
|
5
|
+
* Tries `identity` on the response and common metadata paths first (canonical API shape), then
|
|
6
|
+
* **`metadata.runContext`** in case a path echoes the Activix BSON field name.
|
|
7
|
+
*
|
|
8
|
+
* Activix-oriented callers should treat the result as the enriched envelope to forward
|
|
9
|
+
* to the next hop (full object, not re-derived). Only plain objects qualify; else undefined.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveIdentityFromGatewayResponse(response: unknown): Record<string, any> | undefined;
|
|
12
|
+
//# sourceMappingURL=resolve-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-identity.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CA0BjC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a downstream-provided **runtime** correlation envelope from gateway responses
|
|
3
|
+
* (same semantic as `ActivityIdentity` / Activix **`runContext`** in persistence—not client configuration).
|
|
4
|
+
*
|
|
5
|
+
* Tries `identity` on the response and common metadata paths first (canonical API shape), then
|
|
6
|
+
* **`metadata.runContext`** in case a path echoes the Activix BSON field name.
|
|
7
|
+
*
|
|
8
|
+
* Activix-oriented callers should treat the result as the enriched envelope to forward
|
|
9
|
+
* to the next hop (full object, not re-derived). Only plain objects qualify; else undefined.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveIdentityFromGatewayResponse(response) {
|
|
12
|
+
const isPlainObject = (v) => {
|
|
13
|
+
if (!v || typeof v !== "object")
|
|
14
|
+
return false;
|
|
15
|
+
const proto = Object.getPrototypeOf(v);
|
|
16
|
+
return proto === Object.prototype || proto === null;
|
|
17
|
+
};
|
|
18
|
+
const r = response;
|
|
19
|
+
const candidates = [
|
|
20
|
+
r?.identity,
|
|
21
|
+
r?.metadata?.identity,
|
|
22
|
+
r?.metadata?.["ai-activities-response"]?.identity,
|
|
23
|
+
r?.metadata?.["ai-activities"]?.identity,
|
|
24
|
+
r?.metadata?.activity?.identity,
|
|
25
|
+
r?.metadata?.activityRecord?.identity,
|
|
26
|
+
r?.metadata?.runContext,
|
|
27
|
+
r?.metadata?.activity?.runContext,
|
|
28
|
+
r?.metadata?.activityRecord?.runContext,
|
|
29
|
+
];
|
|
30
|
+
for (const c of candidates) {
|
|
31
|
+
if (isPlainObject(c))
|
|
32
|
+
return c;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=resolve-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-identity.js","sourceRoot":"","sources":["../../src/utils/resolve-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAiB;IAEjB,MAAM,aAAa,GAAG,CAAC,CAAU,EAA4B,EAAE;QAC7D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;IACtD,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,QAAe,CAAC;IAE1B,MAAM,UAAU,GAAc;QAC5B,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ,EAAE,QAAQ;QACrB,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,QAAQ;QACjD,CAAC,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ;QACxC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;QAC/B,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;QACrC,CAAC,EAAE,QAAQ,EAAE,UAAU;QACvB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;QACjC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU;KACxC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AiEngineCatalogItemId } from "../catalox/ai-engines-catalog.js";
|
|
2
|
+
import type { RunSkillRequest } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves optional {@link RunSkillRequest.aiEngineId} against the single supported engine (**`ai-gateway`**).
|
|
5
|
+
* Omitted / blank → {@link DEFAULT_AI_ENGINE_CATALOG_ITEM_ID}.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveAiEngineIdForRunSkill(skillRequest: RunSkillRequest): AiEngineCatalogItemId;
|
|
8
|
+
//# sourceMappingURL=resolve-run-skill-ai-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-run-skill-ai-engine.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-run-skill-ai-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,qBAAqB,EAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,eAAe,GAAG,qBAAqB,CAejG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AI_ENGINE_CATALOG_ITEM_IDS, DEFAULT_AI_ENGINE_CATALOG_ITEM_ID, } from "../catalox/ai-engines-catalog.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves optional {@link RunSkillRequest.aiEngineId} against the single supported engine (**`ai-gateway`**).
|
|
4
|
+
* Omitted / blank → {@link DEFAULT_AI_ENGINE_CATALOG_ITEM_ID}.
|
|
5
|
+
*/
|
|
6
|
+
export function resolveAiEngineIdForRunSkill(skillRequest) {
|
|
7
|
+
const raw = skillRequest.aiEngineId;
|
|
8
|
+
if (raw === undefined || raw === null) {
|
|
9
|
+
return DEFAULT_AI_ENGINE_CATALOG_ITEM_ID;
|
|
10
|
+
}
|
|
11
|
+
const id = String(raw).trim();
|
|
12
|
+
if (id === "") {
|
|
13
|
+
return DEFAULT_AI_ENGINE_CATALOG_ITEM_ID;
|
|
14
|
+
}
|
|
15
|
+
if (!AI_ENGINE_CATALOG_ITEM_IDS.includes(id)) {
|
|
16
|
+
throw new Error(`[AI-SKILLS] Unknown aiEngineId "${id}". Allowlisted Catalox ai-engines catalog ids: ${AI_ENGINE_CATALOG_ITEM_IDS.join(", ")}.`);
|
|
17
|
+
}
|
|
18
|
+
return id;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=resolve-run-skill-ai-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-run-skill-ai-engine.js","sourceRoot":"","sources":["../../src/utils/resolve-run-skill-ai-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,iCAAiC,GAEpC,MAAM,kCAAkC,CAAC;AAG1C;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,YAA6B;IACtE,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC;IACpC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACZ,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAA2B,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACX,mCAAmC,EAAE,kDAAkD,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClI,CAAC;IACN,CAAC;IACD,OAAO,EAA2B,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RunSkillRequest } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Required fields for {@link RunSkillRequest} plus optional copies of every other key.
|
|
4
|
+
* Does not accept arbitrary index signatures — avoids silently forwarding unknown props (e.g. obsolete `taskConfig`).
|
|
5
|
+
*/
|
|
6
|
+
export type RunSkillRequestFlat = Pick<RunSkillRequest, "skillKey" | "jobId" | "taskId" | "input" | "agentId" | "jobTypeId" | "taskTypeId"> & Partial<Omit<RunSkillRequest, "skillKey" | "jobId" | "taskId" | "input" | "agentId" | "jobTypeId" | "taskTypeId">>;
|
|
7
|
+
/**
|
|
8
|
+
* Normalizes a single flat object into {@link RunSkillRequest} for `runSkill()`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function runSkillRequestFromFlat(flat: RunSkillRequestFlat): RunSkillRequest;
|
|
11
|
+
//# sourceMappingURL=run-skill-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-skill-request.d.ts","sourceRoot":"","sources":["../../src/utils/run-skill-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,eAAe,EACf,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CACrF,GACG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;AAEvH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CA4ElF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a single flat object into {@link RunSkillRequest} for `runSkill()`.
|
|
3
|
+
*/
|
|
4
|
+
export function runSkillRequestFromFlat(flat) {
|
|
5
|
+
const { skillKey, jobId, taskId, input, identity, sessionId, variables, executionMemory, context, knowledge, jobMemory, taskMemory, agentId, skillId, masterSkillId, masterSkillActivityId, graphId, nodeId, coreSkillId, prevNodeId, previousNodeId, timeoutMs, modelConfig, templateRenderOptions, smartInput, smartInputRenderOptions, templateTokens, executionMode, diagnostics, jobTypeId, taskTypeId, agentType, gatewayDiagnostics, aiEngineId, outputContract, } = flat;
|
|
6
|
+
return {
|
|
7
|
+
skillKey,
|
|
8
|
+
jobId,
|
|
9
|
+
taskId,
|
|
10
|
+
input,
|
|
11
|
+
agentId,
|
|
12
|
+
jobTypeId,
|
|
13
|
+
taskTypeId,
|
|
14
|
+
...(identity !== undefined ? { identity } : {}),
|
|
15
|
+
...(sessionId !== undefined ? { sessionId } : {}),
|
|
16
|
+
...(variables !== undefined ? { variables } : {}),
|
|
17
|
+
...(executionMemory !== undefined ? { executionMemory } : {}),
|
|
18
|
+
...(context !== undefined ? { context } : {}),
|
|
19
|
+
...(knowledge !== undefined ? { knowledge } : {}),
|
|
20
|
+
...(jobMemory !== undefined ? { jobMemory } : {}),
|
|
21
|
+
...(taskMemory !== undefined ? { taskMemory } : {}),
|
|
22
|
+
...(skillId !== undefined ? { skillId } : {}),
|
|
23
|
+
...(masterSkillId !== undefined ? { masterSkillId } : {}),
|
|
24
|
+
...(masterSkillActivityId !== undefined ? { masterSkillActivityId } : {}),
|
|
25
|
+
...(graphId !== undefined ? { graphId } : {}),
|
|
26
|
+
...(nodeId !== undefined ? { nodeId } : {}),
|
|
27
|
+
...(coreSkillId !== undefined ? { coreSkillId } : {}),
|
|
28
|
+
...(prevNodeId !== undefined ? { prevNodeId } : {}),
|
|
29
|
+
...(previousNodeId !== undefined ? { previousNodeId } : {}),
|
|
30
|
+
...(timeoutMs !== undefined ? { timeoutMs } : {}),
|
|
31
|
+
...(modelConfig !== undefined ? { modelConfig } : {}),
|
|
32
|
+
...(templateRenderOptions !== undefined ? { templateRenderOptions } : {}),
|
|
33
|
+
...(smartInput !== undefined ? { smartInput } : {}),
|
|
34
|
+
...(smartInputRenderOptions !== undefined ? { smartInputRenderOptions } : {}),
|
|
35
|
+
...(templateTokens !== undefined ? { templateTokens } : {}),
|
|
36
|
+
...(executionMode !== undefined ? { executionMode } : {}),
|
|
37
|
+
...(diagnostics !== undefined ? { diagnostics } : {}),
|
|
38
|
+
...(agentType !== undefined ? { agentType } : {}),
|
|
39
|
+
...(gatewayDiagnostics !== undefined ? { gatewayDiagnostics } : {}),
|
|
40
|
+
...(aiEngineId !== undefined ? { aiEngineId } : {}),
|
|
41
|
+
...(outputContract !== undefined ? { outputContract } : {}),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=run-skill-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-skill-request.js","sourceRoot":"","sources":["../../src/utils/run-skill-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RunSkillRequest } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Ensures Activix-oriented linkage fields are present on every skill invoke.
|
|
4
|
+
* Call before building the gateway payload.
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateMandatoryActivixInvokeFields(skillRequest: RunSkillRequest): void;
|
|
7
|
+
//# sourceMappingURL=validate-mandatory-activix-invoke-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-mandatory-activix-invoke-fields.d.ts","sourceRoot":"","sources":["../../src/utils/validate-mandatory-activix-invoke-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnD;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,eAAe,GAAG,IAAI,CAIxF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function assertNonEmptyTrimmed(field, value) {
|
|
2
|
+
const trimmed = value.trim();
|
|
3
|
+
if (!trimmed) {
|
|
4
|
+
throw new Error(`[AI-SKILLS] RunSkillRequest.${String(field)} is mandatory for gateway.invoke / Activix: upstream must supply a non-empty string (no package defaults).`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Ensures Activix-oriented linkage fields are present on every skill invoke.
|
|
9
|
+
* Call before building the gateway payload.
|
|
10
|
+
*/
|
|
11
|
+
export function validateMandatoryActivixInvokeFields(skillRequest) {
|
|
12
|
+
assertNonEmptyTrimmed("agentId", skillRequest.agentId);
|
|
13
|
+
assertNonEmptyTrimmed("jobTypeId", skillRequest.jobTypeId);
|
|
14
|
+
assertNonEmptyTrimmed("taskTypeId", skillRequest.taskTypeId);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=validate-mandatory-activix-invoke-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-mandatory-activix-invoke-fields.js","sourceRoot":"","sources":["../../src/utils/validate-mandatory-activix-invoke-fields.ts"],"names":[],"mappings":"AAEA,SAAS,qBAAqB,CAAC,KAA0E,EAAE,KAAa;IACpH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACX,+BAA+B,MAAM,CAAC,KAAK,CAAC,4GAA4G,CAC3J,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oCAAoC,CAAC,YAA6B;IAC9E,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3D,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activix / gateway contract: if both top-level `sessionId` and `identity.sessionId`
|
|
3
|
+
* are present, they must be equal. This package never generates `sessionId`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateSessionIdAgreement(topLevel: string | undefined | null, identitySessionId: unknown): void;
|
|
6
|
+
//# sourceMappingURL=validate-session-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-session-id.d.ts","sourceRoot":"","sources":["../../src/utils/validate-session-id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,iBAAiB,EAAE,OAAO,GACzB,IAAI,CAkBN"}
|