@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,5 +1,6 @@
1
1
  /**
2
2
  * Authoring pack pipeline → runtime v2 shape (pipelineId / stepId / stepKind / portConfig).
3
+ * Supports unified step `target` (service | ai-service | connector | pipeline | runx).
3
4
  */
4
5
  import { validatePipelineDefinition, STEP_KINDS, } from "@x12i/memorix-pipeline/v2";
5
6
  import { defaultEndpointEnvForType, resolveAiServiceOriginUrl, } from "./ai-services/config.js";
@@ -22,6 +23,10 @@ const STEP_ALIASES = {
22
23
  validate: "validate",
23
24
  "map-normalize": "map-normalize",
24
25
  "identity-dedupe": "identity-dedupe",
26
+ "run-pipeline": "run-pipeline",
27
+ pipeline: "run-pipeline",
28
+ "call-pipeline": "run-pipeline",
29
+ runx: "runx",
25
30
  };
26
31
  const MUTATING = new Set([
27
32
  "persist-raw",
@@ -29,6 +34,13 @@ const MUTATING = new Set([
29
34
  "relationship-write",
30
35
  "workflow",
31
36
  "narrative",
37
+ "run-pipeline",
38
+ ]);
39
+ const BEHAVIORAL = new Set([
40
+ "enrich",
41
+ "analyze",
42
+ "decide",
43
+ "narrative",
32
44
  ]);
33
45
  export function resolveKnowxWorkerBaseUrl() {
34
46
  return (process.env.KNOWX_WORKER_URL?.trim() ||
@@ -58,10 +70,25 @@ export function resolveKnowxExtractWorkerUrl() {
58
70
  process.env.MEMORIX_KNOWX_EXTRACT_WORKER_URL?.trim();
59
71
  return (fromEnv || KNOWX_AI_SIM_DEFAULT_URL).replace(/\/+$/, "");
60
72
  }
73
+ /**
74
+ * Graphifier capability worker base URL (zone memorix-graphier · default :7500).
75
+ * Never falls through to the KnowX control-plane worker.
76
+ *
77
+ * Worker analyze: MEMORIX_GRAPHIFIER_URL / GRAPHIFIER_URL (not GRAPHIFIER_API_URL).
78
+ * Explore REST for createGraphifierClient uses GRAPHIFIER_API_URL (separate process).
79
+ */
80
+ export function resolveGraphifierWorkerUrl() {
81
+ return (process.env.MEMORIX_GRAPHIFIER_URL?.trim() ||
82
+ process.env.GRAPHIFIER_URL?.trim() ||
83
+ `http://127.0.0.1:${process.env.MEMORIX_WORKER_PORT?.trim() ||
84
+ process.env.GRAPHIFIER_PORT?.trim() ||
85
+ "7500"}`).replace(/\/+$/, "");
86
+ }
61
87
  /**
62
88
  * Resolve analyze-step worker endpoint.
63
- * knowx-extract → APS AI sim only when KNOWX_AI_SIM=1 (test-only); otherwise
64
- * all services use the KnowX control-plane worker.
89
+ * knowx-extract → APS AI sim only when KNOWX_AI_SIM=1 (test-only);
90
+ * memorix-graphifier → MEMORIX_GRAPHIFIER_URL / :7500 (never KnowX);
91
+ * otherwise KnowX control-plane worker (or per-service endpointEnv).
65
92
  */
66
93
  export function resolveKnowxServiceEndpoint(serviceId, opts) {
67
94
  const workerDefault = (opts?.workerBaseUrl ?? resolveKnowxWorkerBaseUrl()).replace(/\/+$/, "");
@@ -71,6 +98,14 @@ export function resolveKnowxServiceEndpoint(serviceId, opts) {
71
98
  return extract;
72
99
  return workerDefault;
73
100
  }
101
+ if (serviceId === "memorix-graphifier") {
102
+ if (opts?.endpointEnv && opts.endpointEnv !== "KNOWX_EXTRACT_WORKER_URL") {
103
+ const named = process.env[opts.endpointEnv]?.trim();
104
+ if (named)
105
+ return named.replace(/\/+$/, "");
106
+ }
107
+ return resolveGraphifierWorkerUrl();
108
+ }
74
109
  // Non-extract services: optional per-service URL env (not the AI-sim toggle).
75
110
  if (opts?.endpointEnv && opts.endpointEnv !== "KNOWX_EXTRACT_WORKER_URL") {
76
111
  const named = process.env[opts.endpointEnv]?.trim();
@@ -79,6 +114,248 @@ export function resolveKnowxServiceEndpoint(serviceId, opts) {
79
114
  }
80
115
  return workerDefault;
81
116
  }
117
+ function asRecord(value) {
118
+ return value && typeof value === "object" && !Array.isArray(value)
119
+ ? value
120
+ : null;
121
+ }
122
+ /** Prefer behavioral step kind from service capabilities. */
123
+ export function preferredStepKindFromCapabilities(caps) {
124
+ if (!caps?.length)
125
+ return "analyze";
126
+ if (caps.includes("enrich"))
127
+ return "enrich";
128
+ if (caps.includes("decide"))
129
+ return "decide";
130
+ if (caps.includes("narrative"))
131
+ return "narrative";
132
+ if (caps.includes("analyze"))
133
+ return "analyze";
134
+ return "analyze";
135
+ }
136
+ function parseStepTarget(step, rawKind) {
137
+ const target = asRecord(step.target);
138
+ if (target) {
139
+ const kind = String(target.kind ?? "").trim();
140
+ if (kind === "service") {
141
+ const serviceId = String(target.serviceId ?? "").trim();
142
+ if (serviceId)
143
+ return { kind: "service", serviceId };
144
+ }
145
+ if (kind === "ai-service" || kind === "ai") {
146
+ const aiServiceType = String(target.aiServiceType ?? "").trim();
147
+ const itemId = String(target.itemId ?? "").trim();
148
+ if (aiServiceType && itemId) {
149
+ return { kind: "ai-service", aiServiceType, itemId };
150
+ }
151
+ }
152
+ if (kind === "connector") {
153
+ const connectorId = String(target.connectorId ?? "").trim();
154
+ const sourceId = String(target.sourceId ?? "").trim();
155
+ if (connectorId && sourceId) {
156
+ return { kind: "connector", connectorId, sourceId };
157
+ }
158
+ }
159
+ if (kind === "pipeline") {
160
+ const pipelineId = String(target.pipelineId ?? "").trim();
161
+ if (pipelineId)
162
+ return { kind: "pipeline", pipelineId };
163
+ }
164
+ if (kind === "runx") {
165
+ const capabilityId = String(target.capabilityId ?? "").trim();
166
+ if (capabilityId)
167
+ return { kind: "runx", capabilityId };
168
+ }
169
+ }
170
+ // Shorthand fields on the step.
171
+ const pipelineId = String(step.pipelineId ?? "").trim();
172
+ if (pipelineId &&
173
+ (rawKind === "run-pipeline" ||
174
+ rawKind === "pipeline" ||
175
+ rawKind === "call-pipeline" ||
176
+ rawKind === "")) {
177
+ return { kind: "pipeline", pipelineId };
178
+ }
179
+ const capabilityId = String(step.capabilityId ??
180
+ asRecord(step.portConfig)?.capabilityId ??
181
+ "").trim();
182
+ if (capabilityId && (rawKind === "runx" || rawKind === "")) {
183
+ return { kind: "runx", capabilityId };
184
+ }
185
+ const sourceId = String(step.sourceId ?? "").trim();
186
+ const connectorId = String(step.connectorId ??
187
+ asRecord(step.portConfig)?.connectorId ??
188
+ "").trim();
189
+ if (sourceId && connectorId) {
190
+ return { kind: "connector", connectorId, sourceId };
191
+ }
192
+ if (sourceId && (rawKind === "memory-pull" || rawKind === "pull" || rawKind === "collect")) {
193
+ return {
194
+ kind: "connector",
195
+ connectorId: connectorId || "default",
196
+ sourceId,
197
+ };
198
+ }
199
+ const stepAi = asRecord(step.aiService);
200
+ if (stepAi) {
201
+ const aiServiceType = String(stepAi.aiServiceType ?? "").trim();
202
+ const itemId = String(stepAi.itemId ?? "").trim();
203
+ if (aiServiceType && itemId) {
204
+ return { kind: "ai-service", aiServiceType, itemId };
205
+ }
206
+ }
207
+ const serviceId = String(step.serviceId ?? "").trim();
208
+ if (serviceId) {
209
+ return { kind: "service", serviceId };
210
+ }
211
+ return null;
212
+ }
213
+ function stampAiPortConfig(step, opts) {
214
+ const endpoint = resolveAiServiceOriginUrl(opts.aiServiceType, {
215
+ endpoint: opts.endpoint || undefined,
216
+ endpointEnv: opts.endpointEnv,
217
+ }) ?? "";
218
+ if (!endpoint)
219
+ return false;
220
+ const existingPc = step.portConfig ?? {};
221
+ const existingExec = existingPc.execution && typeof existingPc.execution === "object"
222
+ ? existingPc.execution
223
+ : {};
224
+ const skillExec = opts.aiServiceType === "skill"
225
+ ? defaultSkillExecutionForItem(opts.itemId, {
226
+ stepId: String(step.stepId ?? step.id ?? ""),
227
+ })
228
+ : undefined;
229
+ step.portConfig = {
230
+ ...existingPc,
231
+ serviceId: opts.serviceId,
232
+ operation: opts.operation,
233
+ ...(opts.memorixAccess ? { memorixAccess: opts.memorixAccess } : {}),
234
+ endpoint,
235
+ aiServiceType: opts.aiServiceType,
236
+ itemId: opts.itemId,
237
+ invokeProtocol: "ai-services/1",
238
+ ...(skillExec || Object.keys(existingExec).length
239
+ ? {
240
+ execution: {
241
+ ...skillExec,
242
+ ...existingExec,
243
+ },
244
+ }
245
+ : {}),
246
+ };
247
+ return true;
248
+ }
249
+ function stampServicePortConfig(step, svc, serviceId, opts) {
250
+ const operation = (typeof svc?.invocation?.operation === "string"
251
+ ? svc.invocation.operation
252
+ : undefined) ?? serviceId;
253
+ const memorixAccess = Array.isArray(svc?.memorixAccess)
254
+ ? svc.memorixAccess
255
+ : undefined;
256
+ const stepAi = step.aiService && typeof step.aiService === "object"
257
+ ? step.aiService
258
+ : null;
259
+ const aiServiceType = String(stepAi?.aiServiceType ??
260
+ svc?.aiService?.aiServiceType ??
261
+ svc?.invocation?.aiServiceType ??
262
+ "").trim();
263
+ const itemId = String(stepAi?.itemId ?? svc?.aiService?.itemId ?? svc?.invocation?.itemId ?? "").trim();
264
+ if (aiServiceType && itemId) {
265
+ // Test-only AI-sim: prefer APS simulator over skill companion for knowx-extract.
266
+ if (!(serviceId === "knowx-extract" && isKnowxAiSimEnabled())) {
267
+ const endpointEnv = String(stepAi?.endpointEnv ??
268
+ svc?.aiService?.endpointEnv ??
269
+ svc?.invocation?.endpointEnv ??
270
+ defaultEndpointEnvForType(aiServiceType) ??
271
+ "").trim() || undefined;
272
+ const explicitEndpoint = String(stepAi?.endpoint ?? svc?.aiService?.endpoint ?? "").trim();
273
+ if (stampAiPortConfig(step, {
274
+ serviceId,
275
+ operation,
276
+ memorixAccess,
277
+ aiServiceType,
278
+ itemId,
279
+ endpointEnv,
280
+ endpoint: explicitEndpoint || undefined,
281
+ })) {
282
+ return;
283
+ }
284
+ // No companion URL — fall through to worker invocation (offline / CI).
285
+ }
286
+ }
287
+ const endpointEnv = typeof svc?.invocation?.endpointEnv === "string"
288
+ ? svc.invocation.endpointEnv.trim()
289
+ : serviceId === "knowx-extract"
290
+ ? "KNOWX_EXTRACT_WORKER_URL"
291
+ : undefined;
292
+ const endpoint = resolveKnowxServiceEndpoint(serviceId, {
293
+ workerBaseUrl: opts?.workerBaseUrl,
294
+ endpointEnv,
295
+ });
296
+ step.portConfig = {
297
+ ...(step.portConfig ?? {}),
298
+ serviceId,
299
+ operation,
300
+ ...(memorixAccess ? { memorixAccess } : {}),
301
+ endpoint,
302
+ };
303
+ }
304
+ /**
305
+ * Build a directed call graph of pipelines that invoke other pipelines via
306
+ * `target.pipeline` / `run-pipeline` steps. Detects cycles when ids are known.
307
+ */
308
+ export function detectPipelineCallCycles(pipelines) {
309
+ const graph = new Map();
310
+ for (const p of pipelines) {
311
+ const id = String(p.pipelineId ?? p.id ?? "").trim();
312
+ if (!id)
313
+ continue;
314
+ if (!graph.has(id))
315
+ graph.set(id, new Set());
316
+ for (const step of p.steps ?? []) {
317
+ const rawKind = String(step.stepKind ?? step.kind ?? step.type ?? "");
318
+ const target = parseStepTarget(step, rawKind);
319
+ if (target?.kind === "pipeline") {
320
+ graph.get(id).add(target.pipelineId);
321
+ }
322
+ if (rawKind === "run-pipeline" ||
323
+ rawKind === "pipeline" ||
324
+ rawKind === "call-pipeline") {
325
+ const child = String(step.pipelineId ??
326
+ asRecord(step.portConfig)?.pipelineId ??
327
+ "").trim();
328
+ if (child)
329
+ graph.get(id).add(child);
330
+ }
331
+ }
332
+ }
333
+ const issues = [];
334
+ const visiting = new Set();
335
+ const visited = new Set();
336
+ const path = [];
337
+ function dfs(node) {
338
+ if (visiting.has(node)) {
339
+ const cycleStart = path.indexOf(node);
340
+ const cycle = [...path.slice(cycleStart), node].join(" → ");
341
+ issues.push(`pipeline call cycle: ${cycle}`);
342
+ return;
343
+ }
344
+ if (visited.has(node))
345
+ return;
346
+ visiting.add(node);
347
+ path.push(node);
348
+ for (const next of graph.get(node) ?? []) {
349
+ dfs(next);
350
+ }
351
+ path.pop();
352
+ visiting.delete(node);
353
+ visited.add(node);
354
+ }
355
+ for (const id of graph.keys())
356
+ dfs(id);
357
+ return issues;
358
+ }
82
359
  export function compileAuthoringPipeline(input, opts) {
83
360
  const raw = structuredClone(input);
84
361
  if (typeof raw.pipelineId !== "string" || !raw.pipelineId.trim()) {
@@ -96,107 +373,196 @@ export function compileAuthoringPipeline(input, opts) {
96
373
  }
97
374
  const issues = [];
98
375
  for (const step of raw.steps ?? []) {
99
- const rawKind = String(step.stepKind ?? step.kind ?? step.type ?? "");
376
+ const stepLabel = String(step.stepId ?? step.id ?? "step");
377
+ if (typeof step.stepId !== "string" && typeof step.id === "string") {
378
+ step.stepId = step.id;
379
+ }
380
+ let rawKind = String(step.stepKind ?? step.kind ?? step.type ?? "").trim();
381
+ const target = parseStepTarget(step, rawKind);
382
+ // invoke-service alias: only when target/service can be resolved.
100
383
  if (rawKind === "invoke-service") {
101
- issues.push(`step ${String(step.stepId ?? step.id)} uses unsupported invoke-service`);
102
- continue;
384
+ if (!target) {
385
+ issues.push(`step ${stepLabel} uses unsupported invoke-service without target/serviceId`);
386
+ continue;
387
+ }
388
+ rawKind = "";
103
389
  }
104
- const canonical = STEP_ALIASES[rawKind] ??
105
- (STEP_KINDS.includes(rawKind) ? rawKind : null);
106
- if (!canonical) {
107
- issues.push(`step ${String(step.stepId ?? step.id)} has unknown stepKind "${rawKind}"`);
108
- continue;
390
+ // Target-driven kind selection.
391
+ if (target?.kind === "pipeline") {
392
+ step.stepKind = "run-pipeline";
393
+ step.portConfig = {
394
+ ...(step.portConfig ?? {}),
395
+ pipelineId: target.pipelineId,
396
+ wait: true,
397
+ };
398
+ if (opts?.knownPipelineIds && !opts.knownPipelineIds.has(target.pipelineId)) {
399
+ issues.push(`step ${stepLabel} references unknown pipeline "${target.pipelineId}"`);
400
+ }
109
401
  }
110
- step.stepKind = canonical;
111
- if (typeof step.stepId !== "string" && typeof step.id === "string") {
112
- step.stepId = step.id;
402
+ else if (target?.kind === "runx") {
403
+ step.stepKind = "runx";
404
+ step.portConfig = {
405
+ ...(step.portConfig ?? {}),
406
+ capabilityId: target.capabilityId,
407
+ invokeProtocol: "runx/1",
408
+ };
113
409
  }
114
- if (MUTATING.has(canonical) && typeof step.idempotencyKeyExpr !== "string") {
115
- step.idempotencyKeyExpr = `{{runId}}:${String(step.stepId ?? "step")}`;
410
+ else if (target?.kind === "connector") {
411
+ step.stepKind = "memory-pull";
412
+ if (typeof step.sourceId !== "string")
413
+ step.sourceId = target.sourceId;
414
+ step.portConfig = {
415
+ ...(step.portConfig ?? {}),
416
+ sourceId: target.sourceId,
417
+ connectorId: target.connectorId,
418
+ mode: asRecord(step.portConfig)?.mode ?? "knowledge",
419
+ trigger: asRecord(step.portConfig)?.trigger ??
420
+ "on-demand",
421
+ };
116
422
  }
117
- const serviceId = typeof step.serviceId === "string" ? step.serviceId.trim() : "";
118
- if (serviceId) {
119
- const svc = serviceById.get(serviceId);
120
- const operation = (typeof svc?.invocation?.operation === "string"
121
- ? svc.invocation.operation
122
- : undefined) ?? serviceId;
123
- const memorixAccess = Array.isArray(svc?.memorixAccess)
124
- ? svc.memorixAccess
125
- : undefined;
126
- const stepAi = step.aiService && typeof step.aiService === "object"
127
- ? step.aiService
128
- : null;
129
- const aiServiceType = String(stepAi?.aiServiceType ??
130
- svc?.aiService?.aiServiceType ??
131
- svc?.invocation?.aiServiceType ??
132
- "").trim();
133
- const itemId = String(stepAi?.itemId ?? svc?.aiService?.itemId ?? svc?.invocation?.itemId ?? "").trim();
134
- if (aiServiceType && itemId) {
135
- const endpointEnv = String(stepAi?.endpointEnv ??
136
- svc?.aiService?.endpointEnv ??
137
- svc?.invocation?.endpointEnv ??
138
- defaultEndpointEnvForType(aiServiceType) ??
139
- "").trim() || undefined;
140
- const explicitEndpoint = String(stepAi?.endpoint ?? svc?.aiService?.endpoint ?? "").trim();
141
- const endpoint = resolveAiServiceOriginUrl(aiServiceType, {
142
- endpoint: explicitEndpoint || undefined,
143
- endpointEnv,
144
- }) ?? "";
145
- if (endpoint) {
146
- const existingPc = step.portConfig ?? {};
147
- const existingExec = existingPc.execution && typeof existingPc.execution === "object"
148
- ? existingPc.execution
149
- : {};
150
- const skillExec = aiServiceType === "skill"
151
- ? defaultSkillExecutionForItem(itemId, {
152
- stepId: String(step.stepId ?? step.id ?? ""),
153
- })
154
- : undefined;
423
+ else if (target?.kind === "ai-service") {
424
+ step.stepKind = "analyze";
425
+ const serviceId = String(step.serviceId ?? "").trim() ||
426
+ `ai:${target.aiServiceType}:${target.itemId}`;
427
+ step.serviceId = serviceId;
428
+ const stamped = stampAiPortConfig(step, {
429
+ serviceId,
430
+ operation: serviceId,
431
+ aiServiceType: target.aiServiceType,
432
+ itemId: target.itemId,
433
+ endpointEnv: defaultEndpointEnvForType(target.aiServiceType),
434
+ });
435
+ if (!stamped) {
436
+ step.portConfig = {
437
+ ...(step.portConfig ?? {}),
438
+ serviceId,
439
+ aiServiceType: target.aiServiceType,
440
+ itemId: target.itemId,
441
+ invokeProtocol: "ai-services/1",
442
+ };
443
+ }
444
+ }
445
+ else if (target?.kind === "service") {
446
+ const svc = serviceById.get(target.serviceId);
447
+ const preferred = preferredStepKindFromCapabilities(svc?.capabilities);
448
+ let canonical = null;
449
+ if (rawKind && STEP_ALIASES[rawKind]) {
450
+ canonical = STEP_ALIASES[rawKind];
451
+ }
452
+ else if (rawKind && STEP_KINDS.includes(rawKind)) {
453
+ canonical = rawKind;
454
+ }
455
+ else if (!rawKind || rawKind === "invoke-service") {
456
+ canonical = preferred;
457
+ }
458
+ else {
459
+ // Unknown kind with serviceId → prefer capabilities.
460
+ canonical = preferred;
461
+ }
462
+ // If author picked a non-behavioral kind with a service, keep it only
463
+ // when it's an existing non-target kind; otherwise use preferred.
464
+ if (canonical && !BEHAVIORAL.has(canonical) && rawKind && STEP_ALIASES[rawKind]) {
465
+ // e.g. write-record + serviceId is invalid remote; still allow pass-through kinds.
466
+ }
467
+ else if (!canonical || (rawKind === "" && preferred)) {
468
+ canonical = preferred;
469
+ }
470
+ if (!BEHAVIORAL.has(canonical) && target.kind === "service" && (!rawKind || rawKind === "invoke-service")) {
471
+ canonical = preferred;
472
+ }
473
+ step.stepKind = canonical ?? preferred;
474
+ step.serviceId = target.serviceId;
475
+ stampServicePortConfig(step, svc, target.serviceId, {
476
+ workerBaseUrl: opts?.workerBaseUrl,
477
+ });
478
+ }
479
+ else {
480
+ // Legacy: stepKind only
481
+ const canonical = STEP_ALIASES[rawKind] ??
482
+ (STEP_KINDS.includes(rawKind) ? rawKind : null);
483
+ if (!canonical) {
484
+ issues.push(`step ${stepLabel} has unknown stepKind "${rawKind}"`);
485
+ continue;
486
+ }
487
+ step.stepKind = canonical;
488
+ // memory-pull with sourceId only
489
+ const sourceId = String(step.sourceId ?? "").trim();
490
+ if (canonical === "memory-pull" && sourceId) {
491
+ step.portConfig = {
492
+ ...(step.portConfig ?? {}),
493
+ sourceId,
494
+ mode: asRecord(step.portConfig)?.mode ?? "knowledge",
495
+ trigger: asRecord(step.portConfig)?.trigger ??
496
+ "on-demand",
497
+ };
498
+ }
499
+ // run-pipeline with pipelineId on step
500
+ if (canonical === "run-pipeline") {
501
+ const childId = String(step.pipelineId ??
502
+ asRecord(step.portConfig)?.pipelineId ??
503
+ "").trim();
504
+ if (childId) {
155
505
  step.portConfig = {
156
- ...existingPc,
157
- serviceId,
158
- operation,
159
- ...(memorixAccess ? { memorixAccess } : {}),
160
- endpoint,
161
- aiServiceType,
162
- itemId,
163
- invokeProtocol: "ai-services/1",
164
- ...(skillExec || Object.keys(existingExec).length
165
- ? {
166
- execution: {
167
- ...skillExec,
168
- ...existingExec,
169
- },
170
- }
171
- : {}),
506
+ ...(step.portConfig ?? {}),
507
+ pipelineId: childId,
508
+ wait: true,
172
509
  };
173
- continue;
174
510
  }
175
- // No companion URL — fall through to worker invocation (offline / CI).
176
- }
177
- const endpointEnv = typeof svc?.invocation?.endpointEnv === "string"
178
- ? svc.invocation.endpointEnv.trim()
179
- : serviceId === "knowx-extract"
180
- ? "KNOWX_EXTRACT_WORKER_URL"
181
- : undefined;
182
- const endpoint = resolveKnowxServiceEndpoint(serviceId, {
183
- workerBaseUrl: opts?.workerBaseUrl,
184
- endpointEnv,
185
- });
186
- step.portConfig = {
187
- ...(step.portConfig ?? {}),
188
- serviceId,
189
- operation,
190
- ...(memorixAccess ? { memorixAccess } : {}),
191
- endpoint,
192
- };
511
+ }
512
+ // runx with capabilityId on step
513
+ if (canonical === "runx") {
514
+ const capId = String(step.capabilityId ??
515
+ asRecord(step.portConfig)?.capabilityId ??
516
+ "").trim();
517
+ if (capId) {
518
+ step.portConfig = {
519
+ ...(step.portConfig ?? {}),
520
+ capabilityId: capId,
521
+ invokeProtocol: "runx/1",
522
+ };
523
+ }
524
+ }
525
+ const serviceId = typeof step.serviceId === "string" ? step.serviceId.trim() : "";
526
+ if (serviceId) {
527
+ stampServicePortConfig(step, serviceById.get(serviceId), serviceId, { workerBaseUrl: opts?.workerBaseUrl });
528
+ }
529
+ }
530
+ const finalKind = step.stepKind;
531
+ if (MUTATING.has(finalKind) && typeof step.idempotencyKeyExpr !== "string") {
532
+ step.idempotencyKeyExpr = `{{runId}}:${String(step.stepId ?? "step")}`;
533
+ }
534
+ // Authoring packs often put contentType/objectType/mode at step root.
535
+ // Live write-record only sees step.portConfig — fold those fields in.
536
+ if (finalKind === "write-record") {
537
+ const existing = step.portConfig ?? {};
538
+ const contentType = existing.contentType ??
539
+ (typeof step.contentType === "string" ? step.contentType : undefined);
540
+ const objectType = existing.objectType ??
541
+ (typeof step.objectType === "string" ? step.objectType : undefined);
542
+ const mode = existing.mode ??
543
+ (typeof step.mode === "string" ? step.mode : undefined);
544
+ if (contentType || objectType || mode) {
545
+ step.portConfig = {
546
+ ...existing,
547
+ ...(contentType ? { contentType } : {}),
548
+ ...(objectType ? { objectType } : {}),
549
+ ...(mode ? { mode } : {}),
550
+ };
551
+ }
193
552
  }
194
553
  }
195
554
  if (issues.length) {
196
555
  throw new Error(`compilePipeline failed: ${issues.join("; ")}`);
197
556
  }
557
+ // Allow synthetic AI ids and runx through service validation.
558
+ const known = new Set(opts?.knownServiceIds ?? []);
559
+ for (const step of raw.steps ?? []) {
560
+ const sid = String(step.serviceId ?? "").trim();
561
+ if (sid)
562
+ known.add(sid);
563
+ }
198
564
  validatePipelineDefinition(raw, {
199
- knownServiceIds: opts?.knownServiceIds,
565
+ knownServiceIds: known,
200
566
  });
201
567
  return raw;
202
568
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-compile.js","sourceRoot":"","sources":["../src/pipeline-compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-compile.js","sourceRoot":"","sources":["../src/pipeline-compile.ts"],"names":[],"mappings":"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"}