@x12i/memorix-service 3.1.0 → 3.2.1

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 (113) hide show
  1. package/dist/ai-services/associate-prep.d.ts +37 -0
  2. package/dist/ai-services/associate-prep.d.ts.map +1 -0
  3. package/dist/ai-services/associate-prep.js +208 -0
  4. package/dist/ai-services/associate-prep.js.map +1 -0
  5. package/dist/ai-services/chunk-markdown.d.ts +22 -0
  6. package/dist/ai-services/chunk-markdown.d.ts.map +1 -0
  7. package/dist/ai-services/chunk-markdown.js +159 -0
  8. package/dist/ai-services/chunk-markdown.js.map +1 -0
  9. package/dist/ai-services/client.d.ts +1 -1
  10. package/dist/ai-services/client.d.ts.map +1 -1
  11. package/dist/ai-services/client.js +2 -2
  12. package/dist/ai-services/client.js.map +1 -1
  13. package/dist/ai-services/normalize-output.d.ts +7 -1
  14. package/dist/ai-services/normalize-output.d.ts.map +1 -1
  15. package/dist/ai-services/normalize-output.js +340 -60
  16. package/dist/ai-services/normalize-output.js.map +1 -1
  17. package/dist/ai-services/skill-execution.d.ts +3 -2
  18. package/dist/ai-services/skill-execution.d.ts.map +1 -1
  19. package/dist/ai-services/skill-execution.js +24 -4
  20. package/dist/ai-services/skill-execution.js.map +1 -1
  21. package/dist/app.d.ts.map +1 -1
  22. package/dist/app.js +4 -0
  23. package/dist/app.js.map +1 -1
  24. package/dist/connector-catalog.d.ts +79 -0
  25. package/dist/connector-catalog.d.ts.map +1 -0
  26. package/dist/connector-catalog.js +286 -0
  27. package/dist/connector-catalog.js.map +1 -0
  28. package/dist/connector-role.d.ts +22 -0
  29. package/dist/connector-role.d.ts.map +1 -0
  30. package/dist/connector-role.js +71 -0
  31. package/dist/connector-role.js.map +1 -0
  32. package/dist/destination-runtime.d.ts +8 -0
  33. package/dist/destination-runtime.d.ts.map +1 -0
  34. package/dist/destination-runtime.js +11 -0
  35. package/dist/destination-runtime.js.map +1 -0
  36. package/dist/execution-target.d.ts +141 -0
  37. package/dist/execution-target.d.ts.map +1 -0
  38. package/dist/execution-target.js +853 -0
  39. package/dist/execution-target.js.map +1 -0
  40. package/dist/generic-connectors.d.ts +43 -0
  41. package/dist/generic-connectors.d.ts.map +1 -0
  42. package/dist/generic-connectors.js +198 -0
  43. package/dist/generic-connectors.js.map +1 -0
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/jobs-scope.d.ts +21 -0
  49. package/dist/jobs-scope.d.ts.map +1 -0
  50. package/dist/jobs-scope.js +83 -0
  51. package/dist/jobs-scope.js.map +1 -0
  52. package/dist/live.d.ts +11 -0
  53. package/dist/live.d.ts.map +1 -1
  54. package/dist/live.js +700 -73
  55. package/dist/live.js.map +1 -1
  56. package/dist/magit/magit-pack-service.d.ts +80 -0
  57. package/dist/magit/magit-pack-service.d.ts.map +1 -1
  58. package/dist/magit/magit-pack-service.js +233 -11
  59. package/dist/magit/magit-pack-service.js.map +1 -1
  60. package/dist/magit/pack-to-patchset.d.ts +16 -0
  61. package/dist/magit/pack-to-patchset.d.ts.map +1 -1
  62. package/dist/magit/pack-to-patchset.js +46 -0
  63. package/dist/magit/pack-to-patchset.js.map +1 -1
  64. package/dist/magit/package-catalog-bridge.d.ts +5 -5
  65. package/dist/magit/package-catalog-bridge.d.ts.map +1 -1
  66. package/dist/magit/package-catalog-bridge.js +3 -3
  67. package/dist/magit/package-catalog-bridge.js.map +1 -1
  68. package/dist/mgc-packages.d.ts +11 -0
  69. package/dist/mgc-packages.d.ts.map +1 -0
  70. package/dist/mgc-packages.js +11 -0
  71. package/dist/mgc-packages.js.map +1 -0
  72. package/dist/openapi/openapi.json +3445 -791
  73. package/dist/pipeline-compile.d.ts +46 -3
  74. package/dist/pipeline-compile.d.ts.map +1 -1
  75. package/dist/pipeline-compile.js +455 -89
  76. package/dist/pipeline-compile.js.map +1 -1
  77. package/dist/pipeline-invoke.d.ts +63 -0
  78. package/dist/pipeline-invoke.d.ts.map +1 -0
  79. package/dist/pipeline-invoke.js +114 -0
  80. package/dist/pipeline-invoke.js.map +1 -0
  81. package/dist/pipeline-ports.d.ts +13 -0
  82. package/dist/pipeline-ports.d.ts.map +1 -0
  83. package/dist/pipeline-ports.js +104 -0
  84. package/dist/pipeline-ports.js.map +1 -0
  85. package/dist/platform.d.ts +30 -1
  86. package/dist/platform.d.ts.map +1 -1
  87. package/dist/platform.js +239 -8
  88. package/dist/platform.js.map +1 -1
  89. package/dist/routes/connector-invocations.d.ts.map +1 -1
  90. package/dist/routes/connector-invocations.js +18 -21
  91. package/dist/routes/connector-invocations.js.map +1 -1
  92. package/dist/routes/jobs.d.ts +4 -0
  93. package/dist/routes/jobs.d.ts.map +1 -0
  94. package/dist/routes/jobs.js +888 -0
  95. package/dist/routes/jobs.js.map +1 -0
  96. package/dist/routes/memory.d.ts.map +1 -1
  97. package/dist/routes/memory.js +148 -79
  98. package/dist/routes/memory.js.map +1 -1
  99. package/dist/routes/metadata.d.ts.map +1 -1
  100. package/dist/routes/metadata.js +171 -40
  101. package/dist/routes/metadata.js.map +1 -1
  102. package/dist/routes/pipelines.d.ts.map +1 -1
  103. package/dist/routes/pipelines.js +98 -22
  104. package/dist/routes/pipelines.js.map +1 -1
  105. package/dist/routes/relationships.d.ts.map +1 -1
  106. package/dist/routes/relationships.js +80 -2
  107. package/dist/routes/relationships.js.map +1 -1
  108. package/dist/runx/client.d.ts +18 -0
  109. package/dist/runx/client.d.ts.map +1 -0
  110. package/dist/runx/client.js +59 -0
  111. package/dist/runx/client.js.map +1 -0
  112. package/openapi/openapi.json +3445 -791
  113. package/package.json +16 -9
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Unwrap AI-services/v1 invoke envelopes into KnowX / pipeline step bags.
3
- * Skills return RunSkillResponse under body.output; prefer parsed, then FlexMD payloads.
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
- /** Pull a JSON object from prose / markdown fences when the model wraps the payload. */
19
- function extractJsonObject(text) {
20
- const direct = tryParseJson(text);
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 fence = /```(?:json)?\s*([\s\S]*?)```/i.exec(text);
24
- if (fence?.[1]) {
25
- const fromFence = tryParseJson(fence[1].trim());
26
- if (fromFence !== null)
27
- return fromFence;
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
- const start = text.indexOf("{");
30
- const end = text.lastIndexOf("}");
31
- if (start >= 0 && end > start) {
32
- return tryParseJson(text.slice(start, end + 1));
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
- return null;
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
- // RunSkillResponse: { parsed, flexMd, rawText, }
157
+ // 1) output.parsed whole bag or per-section contract keys
49
158
  const parsed = asRecord(out.parsed);
50
- if (parsed) {
51
- if ("knowxDrafts" in parsed ||
52
- "drafts" in parsed ||
53
- "classification" in parsed ||
54
- "relationshipPlans" in parsed ||
55
- "docHash" in parsed) {
56
- return parsed;
57
- }
58
- // parsed.rawText is a common passthrough when FlexMD parse misses
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 ["knowx", "result", "json", "output"]) {
69
- const raw = payloads[key];
70
- if (typeof raw === "string") {
71
- const p = asRecord(extractJsonObject(raw));
72
- if (p)
73
- return p;
74
- }
75
- else {
76
- const p = asRecord(raw);
77
- if (p)
78
- return p;
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 && typeof values[0] === "string") {
83
- const p = asRecord(extractJsonObject(values[0]));
84
- if (p)
85
- return p;
190
+ if (values.length === 1) {
191
+ const only = domainFromPayload(values[0]);
192
+ if (only && hasUsableKnowxValues(only))
193
+ return only;
86
194
  }
87
195
  }
88
- if (typeof out.rawText === "string") {
89
- const p = asRecord(extractJsonObject(out.rawText));
90
- if (p)
91
- return p;
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
- // Already a domain bag (function-style or pre-normalized)
94
- if ("knowxDrafts" in out ||
95
- "drafts" in out ||
96
- "classification" in out ||
97
- "relationshipPlans" in out) {
98
- return out;
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: "knowx.extract output missing knowxDrafts array",
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-skills requires a concrete wire model on modelConfig (or modelId). Override with
6
- * KNOWX_AI_SKILL_MODEL (OpenRouter-style id).
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;;;;;;GAMG;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;AAgCF,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,CAsBrC"}
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-skills requires a concrete wire model on modelConfig (or modelId). Override with
6
- * KNOWX_AI_SKILL_MODEL (OpenRouter-style id).
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
- "deepseek/deepseek-v4-flash");
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 modelConfig = { model: resolveKnowxSkillModel() };
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;;;;;;GAMG;AAYH,SAAS,sBAAsB;IAC7B,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;QAC3C,4BAA4B,CAC7B,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,WAAW,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC;IACxD,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"}
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;AAqBvB,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,CAoF5E;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"}
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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"}