@x12i/memorix-service 3.1.0 → 3.2.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/dist/ai-services/associate-prep.d.ts +37 -0
- package/dist/ai-services/associate-prep.d.ts.map +1 -0
- package/dist/ai-services/associate-prep.js +208 -0
- package/dist/ai-services/associate-prep.js.map +1 -0
- package/dist/ai-services/chunk-markdown.d.ts +22 -0
- package/dist/ai-services/chunk-markdown.d.ts.map +1 -0
- package/dist/ai-services/chunk-markdown.js +159 -0
- package/dist/ai-services/chunk-markdown.js.map +1 -0
- package/dist/ai-services/client.d.ts +1 -1
- package/dist/ai-services/client.d.ts.map +1 -1
- package/dist/ai-services/client.js +2 -2
- package/dist/ai-services/client.js.map +1 -1
- package/dist/ai-services/normalize-output.d.ts +7 -1
- package/dist/ai-services/normalize-output.d.ts.map +1 -1
- package/dist/ai-services/normalize-output.js +340 -60
- package/dist/ai-services/normalize-output.js.map +1 -1
- package/dist/ai-services/skill-execution.d.ts +3 -2
- package/dist/ai-services/skill-execution.d.ts.map +1 -1
- package/dist/ai-services/skill-execution.js +24 -4
- package/dist/ai-services/skill-execution.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +4 -0
- package/dist/app.js.map +1 -1
- package/dist/connector-catalog.d.ts +68 -0
- package/dist/connector-catalog.d.ts.map +1 -0
- package/dist/connector-catalog.js +258 -0
- package/dist/connector-catalog.js.map +1 -0
- package/dist/connector-role.d.ts +22 -0
- package/dist/connector-role.d.ts.map +1 -0
- package/dist/connector-role.js +71 -0
- package/dist/connector-role.js.map +1 -0
- package/dist/destination-runtime.d.ts +8 -0
- package/dist/destination-runtime.d.ts.map +1 -0
- package/dist/destination-runtime.js +11 -0
- package/dist/destination-runtime.js.map +1 -0
- package/dist/execution-target.d.ts +141 -0
- package/dist/execution-target.d.ts.map +1 -0
- package/dist/execution-target.js +853 -0
- package/dist/execution-target.js.map +1 -0
- package/dist/generic-connectors.d.ts +41 -0
- package/dist/generic-connectors.d.ts.map +1 -0
- package/dist/generic-connectors.js +158 -0
- package/dist/generic-connectors.js.map +1 -0
- package/dist/jobs-scope.d.ts +21 -0
- package/dist/jobs-scope.d.ts.map +1 -0
- package/dist/jobs-scope.js +83 -0
- package/dist/jobs-scope.js.map +1 -0
- package/dist/live.d.ts +11 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +700 -73
- package/dist/live.js.map +1 -1
- package/dist/openapi/openapi.json +3445 -791
- package/dist/pipeline-compile.d.ts +35 -1
- package/dist/pipeline-compile.d.ts.map +1 -1
- package/dist/pipeline-compile.js +408 -87
- package/dist/pipeline-compile.js.map +1 -1
- package/dist/pipeline-invoke.d.ts +63 -0
- package/dist/pipeline-invoke.d.ts.map +1 -0
- package/dist/pipeline-invoke.js +114 -0
- package/dist/pipeline-invoke.js.map +1 -0
- package/dist/pipeline-ports.d.ts +13 -0
- package/dist/pipeline-ports.d.ts.map +1 -0
- package/dist/pipeline-ports.js +104 -0
- package/dist/pipeline-ports.js.map +1 -0
- package/dist/platform.d.ts +30 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +228 -6
- package/dist/platform.js.map +1 -1
- package/dist/routes/connector-invocations.d.ts.map +1 -1
- package/dist/routes/connector-invocations.js +18 -21
- package/dist/routes/connector-invocations.js.map +1 -1
- package/dist/routes/jobs.d.ts +4 -0
- package/dist/routes/jobs.d.ts.map +1 -0
- package/dist/routes/jobs.js +888 -0
- package/dist/routes/jobs.js.map +1 -0
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +143 -79
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/pipelines.d.ts.map +1 -1
- package/dist/routes/pipelines.js +98 -22
- package/dist/routes/pipelines.js.map +1 -1
- package/dist/routes/relationships.d.ts.map +1 -1
- package/dist/routes/relationships.js +80 -2
- package/dist/routes/relationships.js.map +1 -1
- package/dist/runx/client.d.ts +18 -0
- package/dist/runx/client.d.ts.map +1 -0
- package/dist/runx/client.js +59 -0
- package/dist/runx/client.js.map +1 -0
- package/openapi/openapi.json +3445 -791
- package/package.json +10 -8
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Unwrap AI-services/v1 invoke envelopes into KnowX / pipeline step bags.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* B2: HTTP envelope is JSON; LLM body is Markdown / FlexMD. Structured fields live on
|
|
5
|
+
* output.parsed / output.flexMd.payloads after MD extraction when outputContract is used.
|
|
6
|
+
* Do not treat a model-emitted root JSON blob in rawText as the primary contract.
|
|
7
|
+
*
|
|
8
|
+
* Live companions may lowercase heading keys (`knowxdrafts`) and leave `@payload:` wrappers
|
|
9
|
+
* as strings — coalesce those into camelCase domain bags.
|
|
4
10
|
*/
|
|
5
11
|
function asRecord(value) {
|
|
6
12
|
return value && typeof value === "object" && !Array.isArray(value)
|
|
@@ -15,23 +21,129 @@ function tryParseJson(text) {
|
|
|
15
21
|
return null;
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
const KNOWX_KEY_ALIASES = {
|
|
25
|
+
knowxdrafts: "knowxDrafts",
|
|
26
|
+
drafts: "knowxDrafts",
|
|
27
|
+
dochash: "docHash",
|
|
28
|
+
classification: "classification",
|
|
29
|
+
relationshipplans: "relationshipPlans",
|
|
30
|
+
};
|
|
31
|
+
function canonicalKnowxKey(key) {
|
|
32
|
+
return KNOWX_KEY_ALIASES[key.toLowerCase()] ?? null;
|
|
33
|
+
}
|
|
34
|
+
function hasKnowxKeys(rec) {
|
|
35
|
+
return Object.keys(rec).some((k) => canonicalKnowxKey(k) != null);
|
|
36
|
+
}
|
|
37
|
+
/** True when domain bag has a usable structured value (not empty shells). */
|
|
38
|
+
function hasUsableKnowxValues(rec) {
|
|
39
|
+
if (Array.isArray(rec.knowxDrafts))
|
|
40
|
+
return true;
|
|
41
|
+
if (asRecord(rec.classification))
|
|
42
|
+
return true;
|
|
43
|
+
if (Array.isArray(rec.relationshipPlans))
|
|
44
|
+
return true;
|
|
45
|
+
if (typeof rec.docHash === "string" && rec.docHash.trim())
|
|
46
|
+
return true;
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
/** Best-effort JSON value from a section body (fences, leading prose, @payload wrapper). */
|
|
50
|
+
function parseJsonish(text) {
|
|
51
|
+
let t = text.trim();
|
|
52
|
+
if (!t)
|
|
53
|
+
return null;
|
|
54
|
+
const fenced = t.match(/```(?:json)?\s*([\s\S]*?)```/i);
|
|
55
|
+
if (fenced)
|
|
56
|
+
t = fenced[1].trim();
|
|
57
|
+
const direct = tryParseJson(t);
|
|
21
58
|
if (direct !== null)
|
|
22
59
|
return direct;
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
60
|
+
const arrStart = t.indexOf("[");
|
|
61
|
+
const objStart = t.indexOf("{");
|
|
62
|
+
let start = -1;
|
|
63
|
+
if (arrStart >= 0 && (objStart < 0 || arrStart < objStart))
|
|
64
|
+
start = arrStart;
|
|
65
|
+
else if (objStart >= 0)
|
|
66
|
+
start = objStart;
|
|
67
|
+
if (start < 0)
|
|
68
|
+
return null;
|
|
69
|
+
const slice = t.slice(start);
|
|
70
|
+
const endArr = slice.lastIndexOf("]");
|
|
71
|
+
const endObj = slice.lastIndexOf("}");
|
|
72
|
+
const end = Math.max(endArr, endObj);
|
|
73
|
+
if (end < 0)
|
|
74
|
+
return null;
|
|
75
|
+
return tryParseJson(slice.slice(0, end + 1));
|
|
76
|
+
}
|
|
77
|
+
/** Strip optional `@payload:Name` wrapper then JSON-parse when needed. */
|
|
78
|
+
function unwrapPayloadValue(raw) {
|
|
79
|
+
if (raw == null)
|
|
80
|
+
return null;
|
|
81
|
+
if (typeof raw !== "string")
|
|
82
|
+
return raw;
|
|
83
|
+
let text = raw.trim();
|
|
84
|
+
const payloadHeader = text.match(/^@payload:([^\s\n]+)\s*\n?([\s\S]*)$/i);
|
|
85
|
+
if (payloadHeader) {
|
|
86
|
+
text = payloadHeader[2].trim();
|
|
87
|
+
}
|
|
88
|
+
if (!text)
|
|
89
|
+
return null;
|
|
90
|
+
const parsed = parseJsonish(text);
|
|
91
|
+
return parsed !== null ? parsed : text;
|
|
92
|
+
}
|
|
93
|
+
/** Hoist nested `{ knowxDrafts: [...] }` bags sometimes emitted inside a section payload. */
|
|
94
|
+
function hoistKnowxSection(canon, value) {
|
|
95
|
+
const rec = asRecord(value);
|
|
96
|
+
if (!rec)
|
|
97
|
+
return value;
|
|
98
|
+
if (canon === "knowxDrafts" && Array.isArray(rec.knowxDrafts))
|
|
99
|
+
return rec.knowxDrafts;
|
|
100
|
+
if (canon === "docHash" && typeof rec.docHash === "string")
|
|
101
|
+
return rec.docHash;
|
|
102
|
+
if (canon === "classification" && asRecord(rec.classification))
|
|
103
|
+
return rec.classification;
|
|
104
|
+
if (canon === "relationshipPlans" && Array.isArray(rec.relationshipPlans)) {
|
|
105
|
+
return rec.relationshipPlans;
|
|
28
106
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
107
|
+
return value;
|
|
108
|
+
}
|
|
109
|
+
/** Coerce FlexMD @payload string/object into a domain record when it carries KnowX keys. */
|
|
110
|
+
function domainFromPayload(raw) {
|
|
111
|
+
const unwrapped = unwrapPayloadValue(raw);
|
|
112
|
+
if (typeof unwrapped === "string") {
|
|
113
|
+
const p = asRecord(tryParseJson(unwrapped.trim()));
|
|
114
|
+
return p && hasKnowxKeys(p) ? canonicalizeDomain(p) : null;
|
|
33
115
|
}
|
|
34
|
-
|
|
116
|
+
const p = asRecord(unwrapped);
|
|
117
|
+
return p && hasKnowxKeys(p) ? canonicalizeDomain(p) : null;
|
|
118
|
+
}
|
|
119
|
+
function canonicalizeDomain(rec) {
|
|
120
|
+
const out = {};
|
|
121
|
+
for (const [k, v] of Object.entries(rec)) {
|
|
122
|
+
const canon = canonicalKnowxKey(k);
|
|
123
|
+
if (canon)
|
|
124
|
+
out[canon] = hoistKnowxSection(canon, unwrapPayloadValue(v));
|
|
125
|
+
else
|
|
126
|
+
out[k] = v;
|
|
127
|
+
}
|
|
128
|
+
return out;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Build a domain bag from per-section parsed/payload maps
|
|
132
|
+
* (e.g. { knowxdrafts: "@payload:…\n[…]", dochash: "…" }).
|
|
133
|
+
*/
|
|
134
|
+
function domainFromSectionMap(map) {
|
|
135
|
+
if (!map)
|
|
136
|
+
return null;
|
|
137
|
+
const out = {};
|
|
138
|
+
for (const [k, v] of Object.entries(map)) {
|
|
139
|
+
const canon = canonicalKnowxKey(k);
|
|
140
|
+
if (!canon)
|
|
141
|
+
continue;
|
|
142
|
+
const unwrapped = hoistKnowxSection(canon, unwrapPayloadValue(v));
|
|
143
|
+
if (unwrapped != null)
|
|
144
|
+
out[canon] = unwrapped;
|
|
145
|
+
}
|
|
146
|
+
return Object.keys(out).length > 0 ? out : null;
|
|
35
147
|
}
|
|
36
148
|
/** Extract structured domain object from a skill/function invoke response body. */
|
|
37
149
|
export function extractAiServiceDomainOutput(invokeBody) {
|
|
@@ -39,83 +151,245 @@ export function extractAiServiceDomainOutput(invokeBody) {
|
|
|
39
151
|
if (!body)
|
|
40
152
|
return null;
|
|
41
153
|
const output = body.output;
|
|
42
|
-
if (typeof output === "string") {
|
|
43
|
-
return asRecord(extractJsonObject(output));
|
|
44
|
-
}
|
|
45
154
|
const out = asRecord(output);
|
|
46
155
|
if (!out)
|
|
47
156
|
return null;
|
|
48
|
-
//
|
|
157
|
+
// 1) output.parsed — whole bag or per-section contract keys
|
|
49
158
|
const parsed = asRecord(out.parsed);
|
|
50
|
-
if (parsed) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
//
|
|
59
|
-
if (typeof parsed.rawText === "string") {
|
|
60
|
-
const fromParsedRaw = asRecord(extractJsonObject(parsed.rawText));
|
|
61
|
-
if (fromParsedRaw)
|
|
62
|
-
return fromParsedRaw;
|
|
63
|
-
}
|
|
159
|
+
if (parsed && hasKnowxKeys(parsed)) {
|
|
160
|
+
// Prefer coalescing sections (handles mixed casing + @payload strings)
|
|
161
|
+
const fromSections = domainFromSectionMap(parsed);
|
|
162
|
+
if (fromSections && hasUsableKnowxValues(fromSections))
|
|
163
|
+
return fromSections;
|
|
164
|
+
const canon = canonicalizeDomain(parsed);
|
|
165
|
+
if (hasUsableKnowxValues(canon))
|
|
166
|
+
return canon;
|
|
167
|
+
// Empty shells ("" after failed OFS extract) — fall through to flexMd / rawText.
|
|
64
168
|
}
|
|
169
|
+
// 2) FlexMD payloads (knowx / contract key names / result)
|
|
65
170
|
const flex = asRecord(out.flexMd);
|
|
66
171
|
const payloads = asRecord(flex?.payloads);
|
|
67
172
|
if (payloads) {
|
|
68
|
-
for (const key of [
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
173
|
+
for (const key of [
|
|
174
|
+
"knowx",
|
|
175
|
+
"knowxDrafts",
|
|
176
|
+
"classification",
|
|
177
|
+
"relationshipPlans",
|
|
178
|
+
"result",
|
|
179
|
+
"output",
|
|
180
|
+
]) {
|
|
181
|
+
const fromKey = domainFromPayload(payloads[key] ?? payloads[key.toLowerCase()]);
|
|
182
|
+
if (fromKey && hasUsableKnowxValues(fromKey))
|
|
183
|
+
return fromKey;
|
|
80
184
|
}
|
|
185
|
+
const fromSections = domainFromSectionMap(payloads);
|
|
186
|
+
if (fromSections && hasUsableKnowxValues(fromSections))
|
|
187
|
+
return fromSections;
|
|
188
|
+
// Single payload object that already is the domain bag
|
|
81
189
|
const values = Object.values(payloads);
|
|
82
|
-
if (values.length === 1
|
|
83
|
-
const
|
|
84
|
-
if (
|
|
85
|
-
return
|
|
190
|
+
if (values.length === 1) {
|
|
191
|
+
const only = domainFromPayload(values[0]);
|
|
192
|
+
if (only && hasUsableKnowxValues(only))
|
|
193
|
+
return only;
|
|
86
194
|
}
|
|
87
195
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
196
|
+
// 3) Already a domain bag on output (function-style or pre-normalized)
|
|
197
|
+
if (hasKnowxKeys(out)) {
|
|
198
|
+
const canon = canonicalizeDomain(out);
|
|
199
|
+
if (hasUsableKnowxValues(canon))
|
|
200
|
+
return canon;
|
|
92
201
|
}
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
202
|
+
// 4) Last resort: scrape contract headings / embedded JSON from rawText when
|
|
203
|
+
// gateway FlexMD extractFromMarkdown(spec) fails (companion often still has MD).
|
|
204
|
+
const rawText = typeof out.rawText === "string"
|
|
205
|
+
? out.rawText
|
|
206
|
+
: typeof body.rawText === "string"
|
|
207
|
+
? body.rawText
|
|
208
|
+
: "";
|
|
209
|
+
if (rawText.trim()) {
|
|
210
|
+
const fromRaw = domainFromMarkdownHeadings(rawText);
|
|
211
|
+
if (fromRaw && hasUsableKnowxValues(fromRaw))
|
|
212
|
+
return fromRaw;
|
|
213
|
+
const fromJson = domainFromEmbeddedJson(rawText);
|
|
214
|
+
if (fromJson && hasUsableKnowxValues(fromJson))
|
|
215
|
+
return fromJson;
|
|
99
216
|
}
|
|
100
217
|
return null;
|
|
101
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Parse `### classification` / `### relationshipPlans` (or @payload) blocks from MD.
|
|
221
|
+
* Also accepts headings that *start with* the contract name (e.g. "Classification analysis"
|
|
222
|
+
* is ignored; exact-or-alias "classification" / "relationshipPlans" required as the
|
|
223
|
+
* first token after #).
|
|
224
|
+
*/
|
|
225
|
+
function domainFromMarkdownHeadings(md) {
|
|
226
|
+
const out = {};
|
|
227
|
+
// First token after # must be a contract key (allow trailing junk: "classification {").
|
|
228
|
+
const headingRe = /^#{1,6}\s+(classification|relationshipPlans|knowxDrafts|docHash|knowx)\b[^\n]*$/gim;
|
|
229
|
+
const matches = [...md.matchAll(headingRe)];
|
|
230
|
+
for (let i = 0; i < matches.length; i++) {
|
|
231
|
+
const m = matches[i];
|
|
232
|
+
const name = m[1];
|
|
233
|
+
const start = (m.index ?? 0) + m[0].length;
|
|
234
|
+
const end = i + 1 < matches.length ? (matches[i + 1].index ?? md.length) : md.length;
|
|
235
|
+
const body = md.slice(start, end).trim();
|
|
236
|
+
const canon = canonicalKnowxKey(name) ?? (name.toLowerCase() === "knowx" ? "knowx" : null);
|
|
237
|
+
if (!canon)
|
|
238
|
+
continue;
|
|
239
|
+
const unwrapped = unwrapPayloadValue(body);
|
|
240
|
+
if (canon === "knowx") {
|
|
241
|
+
const rec = asRecord(unwrapped);
|
|
242
|
+
if (rec && hasKnowxKeys(rec)) {
|
|
243
|
+
Object.assign(out, canonicalizeDomain(rec));
|
|
244
|
+
}
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
if (unwrapped != null)
|
|
248
|
+
out[canon] = hoistKnowxSection(canon, unwrapped);
|
|
249
|
+
}
|
|
250
|
+
return Object.keys(out).length > 0 ? out : null;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Scan raw markdown for embedded classification object / relationshipPlans array
|
|
254
|
+
* when headings are missing or OFS left empty shells.
|
|
255
|
+
*/
|
|
256
|
+
function domainFromEmbeddedJson(md) {
|
|
257
|
+
const out = {};
|
|
258
|
+
// Walk every `{` and try to parse a balanced JSON object that looks like classification.
|
|
259
|
+
for (let i = 0; i < md.length; i++) {
|
|
260
|
+
if (md[i] !== "{")
|
|
261
|
+
continue;
|
|
262
|
+
if (!/"known"|"novel"|"contradicts"/.test(md.slice(i, i + 80)))
|
|
263
|
+
continue;
|
|
264
|
+
const slice = md.slice(i);
|
|
265
|
+
const endObj = findBalancedEnd(slice, "{", "}");
|
|
266
|
+
if (endObj < 0)
|
|
267
|
+
continue;
|
|
268
|
+
const candidate = tryParseJson(slice.slice(0, endObj + 1));
|
|
269
|
+
const rec = asRecord(candidate);
|
|
270
|
+
if (rec &&
|
|
271
|
+
(Array.isArray(rec.known) ||
|
|
272
|
+
Array.isArray(rec.novel) ||
|
|
273
|
+
Array.isArray(rec.contradicts))) {
|
|
274
|
+
out.classification = rec;
|
|
275
|
+
// keep scanning for a later (usually final) classification
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
for (let i = 0; i < md.length; i++) {
|
|
279
|
+
if (md[i] !== "[")
|
|
280
|
+
continue;
|
|
281
|
+
if (!/"definitionId"\s*:\s*"knowx-/.test(md.slice(i, i + 120)))
|
|
282
|
+
continue;
|
|
283
|
+
const slice = md.slice(i);
|
|
284
|
+
const endArr = findBalancedEnd(slice, "[", "]");
|
|
285
|
+
if (endArr < 0)
|
|
286
|
+
continue;
|
|
287
|
+
const candidate = tryParseJson(slice.slice(0, endArr + 1));
|
|
288
|
+
if (Array.isArray(candidate) &&
|
|
289
|
+
candidate.some((p) => asRecord(p) && typeof asRecord(p).definitionId === "string")) {
|
|
290
|
+
out.relationshipPlans = candidate;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
for (let i = 0; i < md.length; i++) {
|
|
294
|
+
if (md[i] !== "[")
|
|
295
|
+
continue;
|
|
296
|
+
if (!/"contentType"\s*:\s*"knowx"/.test(md.slice(i, i + 400)))
|
|
297
|
+
continue;
|
|
298
|
+
const slice = md.slice(i);
|
|
299
|
+
const endArr = findBalancedEnd(slice, "[", "]");
|
|
300
|
+
if (endArr < 0)
|
|
301
|
+
continue;
|
|
302
|
+
const candidate = tryParseJson(slice.slice(0, endArr + 1));
|
|
303
|
+
if (Array.isArray(candidate) &&
|
|
304
|
+
candidate.some((p) => asRecord(p)?.recordId != null)) {
|
|
305
|
+
out.knowxDrafts = candidate;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return hasUsableKnowxValues(out) ? out : null;
|
|
310
|
+
}
|
|
311
|
+
/** Index of matching closer for the opener at slice[0], or -1. */
|
|
312
|
+
function findBalancedEnd(slice, open, close) {
|
|
313
|
+
if (slice[0] !== open)
|
|
314
|
+
return -1;
|
|
315
|
+
let depth = 0;
|
|
316
|
+
let inStr = false;
|
|
317
|
+
let esc = false;
|
|
318
|
+
for (let i = 0; i < slice.length; i++) {
|
|
319
|
+
const ch = slice[i];
|
|
320
|
+
if (inStr) {
|
|
321
|
+
if (esc) {
|
|
322
|
+
esc = false;
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
if (ch === "\\") {
|
|
326
|
+
esc = true;
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
if (ch === '"')
|
|
330
|
+
inStr = false;
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
if (ch === '"') {
|
|
334
|
+
inStr = true;
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
if (ch === open)
|
|
338
|
+
depth++;
|
|
339
|
+
else if (ch === close) {
|
|
340
|
+
depth--;
|
|
341
|
+
if (depth === 0)
|
|
342
|
+
return i;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return -1;
|
|
346
|
+
}
|
|
102
347
|
/**
|
|
103
348
|
* Normalize invoke response into a step output bag for write-record / associate.
|
|
104
349
|
* Maps drafts → knowxDrafts when needed; preserves classification / relationshipPlans.
|
|
105
350
|
*/
|
|
106
351
|
export function normalizeAiServiceStepOutput(invokeBody, opts) {
|
|
352
|
+
const body = asRecord(invokeBody);
|
|
353
|
+
const output = asRecord(body?.output);
|
|
354
|
+
const rawText = (typeof output?.rawText === "string" && output.rawText) ||
|
|
355
|
+
(typeof asRecord(output?.parsed)?.rawText === "string" &&
|
|
356
|
+
asRecord(output?.parsed).rawText) ||
|
|
357
|
+
"";
|
|
107
358
|
const domain = extractAiServiceDomainOutput(invokeBody);
|
|
108
359
|
if (!domain) {
|
|
360
|
+
// Companion sometimes returns ok:true with empty rawText after burning the
|
|
361
|
+
// full completion budget on oversized associate prompts — mark distinctly.
|
|
362
|
+
const parsedRec = asRecord(output?.parsed);
|
|
363
|
+
const emptyShell = body?.ok === true &&
|
|
364
|
+
!rawText.trim() &&
|
|
365
|
+
(!parsedRec ||
|
|
366
|
+
(Object.keys(parsedRec).length === 0 ||
|
|
367
|
+
(Object.keys(parsedRec).length === 1 &&
|
|
368
|
+
typeof parsedRec.rawText === "string" &&
|
|
369
|
+
!String(parsedRec.rawText).trim())));
|
|
370
|
+
if (emptyShell) {
|
|
371
|
+
return {
|
|
372
|
+
ok: false,
|
|
373
|
+
code: "AI_OUTPUT_EMPTY",
|
|
374
|
+
message: `AI-service ${opts?.itemId ?? "item"} returned empty structured output (rawText empty)`,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
109
377
|
return {
|
|
110
378
|
ok: false,
|
|
111
379
|
code: "AI_OUTPUT_UNPARSEABLE",
|
|
112
|
-
message: `AI-service ${opts?.itemId ?? "item"} did not return structured KnowX output (expected parsed knowxDrafts / classification / relationshipPlans)`,
|
|
380
|
+
message: `AI-service ${opts?.itemId ?? "item"} did not return structured KnowX output (expected output.parsed / FlexMD payloads with knowxDrafts / classification / relationshipPlans)`,
|
|
113
381
|
};
|
|
114
382
|
}
|
|
115
383
|
const out = { ...domain };
|
|
116
384
|
if (!Array.isArray(out.knowxDrafts) && Array.isArray(out.drafts)) {
|
|
117
385
|
out.knowxDrafts = out.drafts;
|
|
118
386
|
}
|
|
387
|
+
// Single draft object mistaken for the array section
|
|
388
|
+
if (!Array.isArray(out.knowxDrafts) &&
|
|
389
|
+
asRecord(out.knowxDrafts) &&
|
|
390
|
+
typeof out.knowxDrafts.recordId === "string") {
|
|
391
|
+
out.knowxDrafts = [out.knowxDrafts];
|
|
392
|
+
}
|
|
119
393
|
const serviceId = opts?.serviceId ?? "";
|
|
120
394
|
const itemId = opts?.itemId ?? "";
|
|
121
395
|
const looksExtract = serviceId === "knowx-extract" ||
|
|
@@ -126,10 +400,16 @@ export function normalizeAiServiceStepOutput(invokeBody, opts) {
|
|
|
126
400
|
asRecord(out.classification) != null ||
|
|
127
401
|
Array.isArray(out.relationshipPlans);
|
|
128
402
|
if (looksExtract && !Array.isArray(out.knowxDrafts)) {
|
|
403
|
+
const got = out.knowxDrafts;
|
|
404
|
+
const hint = got === undefined
|
|
405
|
+
? "missing"
|
|
406
|
+
: Array.isArray(got)
|
|
407
|
+
? "array"
|
|
408
|
+
: `${typeof got}${asRecord(got) ? ` keys=${Object.keys(got).join(",")}` : ""}`;
|
|
129
409
|
return {
|
|
130
410
|
ok: false,
|
|
131
411
|
code: "AI_OUTPUT_MISSING_DRAFTS",
|
|
132
|
-
message:
|
|
412
|
+
message: `knowx.extract output missing knowxDrafts array (got ${hint}; domainKeys=${Object.keys(out).join(",")})`,
|
|
133
413
|
};
|
|
134
414
|
}
|
|
135
415
|
if (looksAssociate &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-output.js","sourceRoot":"","sources":["../../src/ai-services/normalize-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalize-output.js","sourceRoot":"","sources":["../../src/ai-services/normalize-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Default RunSkillRequest execution fields for KnowX AI-service pipeline steps.
|
|
3
3
|
* Merged into portConfig.execution at compile time; live invoke passes them under FR execution.
|
|
4
4
|
*
|
|
5
|
-
* ai-
|
|
6
|
-
* KNOWX_AI_SKILL_MODEL
|
|
5
|
+
* Model: ai-profiles `profile/choice` (e.g. cheap/default) or a concrete wire id via
|
|
6
|
+
* execution.modelConfig.model. Override with KNOWX_AI_SKILL_MODEL / AI_SKILLS_DEFAULT_MODEL.
|
|
7
|
+
* Do not invent a default provider wire model — missing model fails at the companion.
|
|
7
8
|
*/
|
|
8
9
|
export type SkillExecutionDefaults = {
|
|
9
10
|
agentId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-execution.d.ts","sourceRoot":"","sources":["../../src/ai-services/skill-execution.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill-execution.d.ts","sourceRoot":"","sources":["../../src/ai-services/skill-execution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AA0CF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAmCrC"}
|
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
* Default RunSkillRequest execution fields for KnowX AI-service pipeline steps.
|
|
3
3
|
* Merged into portConfig.execution at compile time; live invoke passes them under FR execution.
|
|
4
4
|
*
|
|
5
|
-
* ai-
|
|
6
|
-
* KNOWX_AI_SKILL_MODEL
|
|
5
|
+
* Model: ai-profiles `profile/choice` (e.g. cheap/default) or a concrete wire id via
|
|
6
|
+
* execution.modelConfig.model. Override with KNOWX_AI_SKILL_MODEL / AI_SKILLS_DEFAULT_MODEL.
|
|
7
|
+
* Do not invent a default provider wire model — missing model fails at the companion.
|
|
7
8
|
*/
|
|
8
9
|
function resolveKnowxSkillModel() {
|
|
9
10
|
return (process.env.KNOWX_AI_SKILL_MODEL?.trim() ||
|
|
10
11
|
process.env.AI_SKILLS_DEFAULT_MODEL?.trim() ||
|
|
11
|
-
"
|
|
12
|
+
"cheap/default");
|
|
13
|
+
}
|
|
14
|
+
/** Associate needs a non-reasoning chat model — flash often returns empty rawText. */
|
|
15
|
+
function resolveKnowxAssociateModel() {
|
|
16
|
+
return (process.env.KNOWX_AI_ASSOC_MODEL?.trim() ||
|
|
17
|
+
process.env.KNOWX_AI_SKILL_MODEL?.trim() ||
|
|
18
|
+
process.env.AI_SKILLS_DEFAULT_MODEL?.trim() ||
|
|
19
|
+
"openrouter/deepseek/deepseek-chat");
|
|
12
20
|
}
|
|
13
21
|
const KNOWX_SKILL_EXECUTION = {
|
|
14
22
|
"knowx.extract": {
|
|
@@ -29,7 +37,19 @@ const KNOWX_SKILL_EXECUTION = {
|
|
|
29
37
|
},
|
|
30
38
|
};
|
|
31
39
|
export function defaultSkillExecutionForItem(itemId, opts) {
|
|
32
|
-
const
|
|
40
|
+
const model = itemId === "knowx.associate-knowledge"
|
|
41
|
+
? resolveKnowxAssociateModel()
|
|
42
|
+
: resolveKnowxSkillModel();
|
|
43
|
+
const modelConfig = { model };
|
|
44
|
+
// Associate plans grow with catalog size — prefer a higher completion budget.
|
|
45
|
+
if (itemId === "knowx.associate-knowledge") {
|
|
46
|
+
const maxTok = Number(process.env.KNOWX_AI_ASSOC_MAX_TOKENS?.trim() || "8192");
|
|
47
|
+
if (Number.isFinite(maxTok) && maxTok > 0) {
|
|
48
|
+
const n = Math.floor(maxTok);
|
|
49
|
+
modelConfig.maxTokens = n;
|
|
50
|
+
modelConfig.max_tokens = n;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
33
53
|
const base = KNOWX_SKILL_EXECUTION[itemId];
|
|
34
54
|
if (!base) {
|
|
35
55
|
if (itemId.startsWith("knowx.")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-execution.js","sourceRoot":"","sources":["../../src/ai-services/skill-execution.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill-execution.js","sourceRoot":"","sources":["../../src/ai-services/skill-execution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,SAAS,sBAAsB;IAC7B,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;QAC3C,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,SAAS,0BAA0B;IACjC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;QAC3C,mCAAmC,CACpC,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAGvB;IACF,eAAe,EAAE;QACf,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,eAAe;QAC3B,cAAc,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;KAC3C;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,2BAA2B;QACnC,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,2BAA2B;QACvC,cAAc,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KACxD;CACF,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAC1C,MAAc,EACd,IAA0C;IAE1C,MAAM,KAAK,GACT,MAAM,KAAK,2BAA2B;QACpC,CAAC,CAAC,0BAA0B,EAAE;QAC9B,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC/B,MAAM,WAAW,GAA4B,EAAE,KAAK,EAAE,CAAC;IACvD,8EAA8E;IAC9E,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1B,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,gBAAgB;gBACtC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,MAAM;gBAC9B,SAAS,EAAE,cAAc;gBACzB,UAAU,EAAE,MAAM;gBAClB,WAAW;aACZ,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,WAAW;QACX,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;QAChC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;KACpC,CAAC;AACJ,CAAC"}
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAIxD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAIxD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAsBvB,MAAM,MAAM,8BAA8B,GAAG,YAAY,GAAG;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC;IAAE,GAAG,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAuF5E;AAED,MAAM,MAAM,0BAA0B,GAAG,8BAA8B,GAAG;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,0BAA0B;;;;;GAM7E"}
|
package/dist/app.js
CHANGED
|
@@ -14,6 +14,7 @@ import { registerRelationshipRoutes } from "./routes/relationships.js";
|
|
|
14
14
|
import { registerMemoryRoutes } from "./routes/memory.js";
|
|
15
15
|
import { registerConnectorInvocationRoutes } from "./routes/connector-invocations.js";
|
|
16
16
|
import { registerPipelineRoutes } from "./routes/pipelines.js";
|
|
17
|
+
import { registerJobsRoutes } from "./routes/jobs.js";
|
|
17
18
|
import { registerOperationsRoutes } from "./routes/operations.js";
|
|
18
19
|
import { registerWorkflowRoutes } from "./routes/workflow.js";
|
|
19
20
|
import { registerIntelligenceRoutes } from "./routes/intelligence.js";
|
|
@@ -92,6 +93,7 @@ export async function createMemorixServiceApp(opts) {
|
|
|
92
93
|
await registerMemoryRoutes(app, platform);
|
|
93
94
|
await registerConnectorInvocationRoutes(app, platform);
|
|
94
95
|
await registerPipelineRoutes(app, platform);
|
|
96
|
+
await registerJobsRoutes(app, platform);
|
|
95
97
|
await registerOperationsRoutes(app, platform);
|
|
96
98
|
await registerWorkflowRoutes(app, platform);
|
|
97
99
|
await registerIntelligenceRoutes(app, platform);
|
|
@@ -100,6 +102,8 @@ export async function createMemorixServiceApp(opts) {
|
|
|
100
102
|
await registerAiServicesRoutes(app, platform);
|
|
101
103
|
// Minute-resolution Memory pull schedule ticker (collector-only; not pipelines).
|
|
102
104
|
platform.startMemoryScheduleTicker({ intervalMs: 60_000 });
|
|
105
|
+
// Jobs continuous Work evaluation + held-run promotion.
|
|
106
|
+
platform.startJobsWorkTicker({ intervalMs: 15_000 });
|
|
103
107
|
return { app, platform, port: core.port };
|
|
104
108
|
}
|
|
105
109
|
export async function startMemorixServiceHttp(opts) {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|