@x12i/memorix-pipeline-orchestrator 1.0.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.
Files changed (166) hide show
  1. package/README.md +99 -0
  2. package/dist/browser.d.ts +9 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +9 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/catalog.d.ts +11 -0
  7. package/dist/catalog.d.ts.map +1 -0
  8. package/dist/catalog.js +11 -0
  9. package/dist/catalog.js.map +1 -0
  10. package/dist/cli.d.ts +3 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +67 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/collections.d.ts +25 -0
  15. package/dist/collections.d.ts.map +1 -0
  16. package/dist/collections.js +50 -0
  17. package/dist/collections.js.map +1 -0
  18. package/dist/examples/fetch-interfaces.d.ts +12 -0
  19. package/dist/examples/fetch-interfaces.d.ts.map +1 -0
  20. package/dist/examples/fetch-interfaces.js +206 -0
  21. package/dist/examples/fetch-interfaces.js.map +1 -0
  22. package/dist/graph.d.ts +16 -0
  23. package/dist/graph.d.ts.map +1 -0
  24. package/dist/graph.js +78 -0
  25. package/dist/graph.js.map +1 -0
  26. package/dist/handlers/ops.d.ts +8 -0
  27. package/dist/handlers/ops.d.ts.map +1 -0
  28. package/dist/handlers/ops.js +112 -0
  29. package/dist/handlers/ops.js.map +1 -0
  30. package/dist/handlers/pipelines.d.ts +9 -0
  31. package/dist/handlers/pipelines.d.ts.map +1 -0
  32. package/dist/handlers/pipelines.js +170 -0
  33. package/dist/handlers/pipelines.js.map +1 -0
  34. package/dist/handlers/runs.d.ts +13 -0
  35. package/dist/handlers/runs.d.ts.map +1 -0
  36. package/dist/handlers/runs.js +157 -0
  37. package/dist/handlers/runs.js.map +1 -0
  38. package/dist/handlers/schedules.d.ts +8 -0
  39. package/dist/handlers/schedules.d.ts.map +1 -0
  40. package/dist/handlers/schedules.js +123 -0
  41. package/dist/handlers/schedules.js.map +1 -0
  42. package/dist/handlers/shared.d.ts +11 -0
  43. package/dist/handlers/shared.d.ts.map +1 -0
  44. package/dist/handlers/shared.js +47 -0
  45. package/dist/handlers/shared.js.map +1 -0
  46. package/dist/handlers/steps.d.ts +8 -0
  47. package/dist/handlers/steps.d.ts.map +1 -0
  48. package/dist/handlers/steps.js +49 -0
  49. package/dist/handlers/steps.js.map +1 -0
  50. package/dist/handlers/templates.d.ts +8 -0
  51. package/dist/handlers/templates.d.ts.map +1 -0
  52. package/dist/handlers/templates.js +98 -0
  53. package/dist/handlers/templates.js.map +1 -0
  54. package/dist/http/server.d.ts +22 -0
  55. package/dist/http/server.d.ts.map +1 -0
  56. package/dist/http/server.js +106 -0
  57. package/dist/http/server.js.map +1 -0
  58. package/dist/index.d.ts +25 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +24 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/pipeline-handlers.d.ts +12 -0
  63. package/dist/pipeline-handlers.d.ts.map +1 -0
  64. package/dist/pipeline-handlers.js +238 -0
  65. package/dist/pipeline-handlers.js.map +1 -0
  66. package/dist/runtime/build-invoke-envelope.d.ts +31 -0
  67. package/dist/runtime/build-invoke-envelope.d.ts.map +1 -0
  68. package/dist/runtime/build-invoke-envelope.js +258 -0
  69. package/dist/runtime/build-invoke-envelope.js.map +1 -0
  70. package/dist/runtime/checkpoints.d.ts +49 -0
  71. package/dist/runtime/checkpoints.d.ts.map +1 -0
  72. package/dist/runtime/checkpoints.js +45 -0
  73. package/dist/runtime/checkpoints.js.map +1 -0
  74. package/dist/runtime/durable-schedule-ticker.d.ts +23 -0
  75. package/dist/runtime/durable-schedule-ticker.d.ts.map +1 -0
  76. package/dist/runtime/durable-schedule-ticker.js +107 -0
  77. package/dist/runtime/durable-schedule-ticker.js.map +1 -0
  78. package/dist/runtime/execute-run.d.ts +30 -0
  79. package/dist/runtime/execute-run.d.ts.map +1 -0
  80. package/dist/runtime/execute-run.js +639 -0
  81. package/dist/runtime/execute-run.js.map +1 -0
  82. package/dist/runtime/execute-step.d.ts +22 -0
  83. package/dist/runtime/execute-step.d.ts.map +1 -0
  84. package/dist/runtime/execute-step.js +406 -0
  85. package/dist/runtime/execute-step.js.map +1 -0
  86. package/dist/runtime/leases.d.ts +45 -0
  87. package/dist/runtime/leases.d.ts.map +1 -0
  88. package/dist/runtime/leases.js +84 -0
  89. package/dist/runtime/leases.js.map +1 -0
  90. package/dist/runtime/memory-ports.d.ts +21 -0
  91. package/dist/runtime/memory-ports.d.ts.map +1 -0
  92. package/dist/runtime/memory-ports.js +99 -0
  93. package/dist/runtime/memory-ports.js.map +1 -0
  94. package/dist/runtime/object-content-resolver.d.ts +23 -0
  95. package/dist/runtime/object-content-resolver.d.ts.map +1 -0
  96. package/dist/runtime/object-content-resolver.js +117 -0
  97. package/dist/runtime/object-content-resolver.js.map +1 -0
  98. package/dist/runtime/pipeline-services-invoker.d.ts +10 -0
  99. package/dist/runtime/pipeline-services-invoker.d.ts.map +1 -0
  100. package/dist/runtime/pipeline-services-invoker.js +69 -0
  101. package/dist/runtime/pipeline-services-invoker.js.map +1 -0
  102. package/dist/runtime/ports.d.ts +74 -0
  103. package/dist/runtime/ports.d.ts.map +1 -0
  104. package/dist/runtime/ports.js +2 -0
  105. package/dist/runtime/ports.js.map +1 -0
  106. package/dist/runtime/preflight.d.ts +39 -0
  107. package/dist/runtime/preflight.d.ts.map +1 -0
  108. package/dist/runtime/preflight.js +234 -0
  109. package/dist/runtime/preflight.js.map +1 -0
  110. package/dist/runtime/run-context.d.ts +10 -0
  111. package/dist/runtime/run-context.d.ts.map +1 -0
  112. package/dist/runtime/run-context.js +72 -0
  113. package/dist/runtime/run-context.js.map +1 -0
  114. package/dist/runtime/sandbox-ports.d.ts +9 -0
  115. package/dist/runtime/sandbox-ports.d.ts.map +1 -0
  116. package/dist/runtime/sandbox-ports.js +216 -0
  117. package/dist/runtime/sandbox-ports.js.map +1 -0
  118. package/dist/runtime/schedule-ticker.d.ts +24 -0
  119. package/dist/runtime/schedule-ticker.d.ts.map +1 -0
  120. package/dist/runtime/schedule-ticker.js +155 -0
  121. package/dist/runtime/schedule-ticker.js.map +1 -0
  122. package/dist/runtime/schedule-utils.d.ts +11 -0
  123. package/dist/runtime/schedule-utils.d.ts.map +1 -0
  124. package/dist/runtime/schedule-utils.js +54 -0
  125. package/dist/runtime/schedule-utils.js.map +1 -0
  126. package/dist/seeds/cortex-xdr.d.ts +11 -0
  127. package/dist/seeds/cortex-xdr.d.ts.map +1 -0
  128. package/dist/seeds/cortex-xdr.js +1759 -0
  129. package/dist/seeds/cortex-xdr.js.map +1 -0
  130. package/dist/seeds/firewall-topology.d.ts +11 -0
  131. package/dist/seeds/firewall-topology.d.ts.map +1 -0
  132. package/dist/seeds/firewall-topology.js +1310 -0
  133. package/dist/seeds/firewall-topology.js.map +1 -0
  134. package/dist/seeds/platform-smoke.d.ts +22 -0
  135. package/dist/seeds/platform-smoke.d.ts.map +1 -0
  136. package/dist/seeds/platform-smoke.js +314 -0
  137. package/dist/seeds/platform-smoke.js.map +1 -0
  138. package/dist/seeds/tenable-nessus.d.ts +12 -0
  139. package/dist/seeds/tenable-nessus.d.ts.map +1 -0
  140. package/dist/seeds/tenable-nessus.js +880 -0
  141. package/dist/seeds/tenable-nessus.js.map +1 -0
  142. package/dist/store/catalox.d.ts +15 -0
  143. package/dist/store/catalox.d.ts.map +1 -0
  144. package/dist/store/catalox.js +581 -0
  145. package/dist/store/catalox.js.map +1 -0
  146. package/dist/store/memory.d.ts +3 -0
  147. package/dist/store/memory.d.ts.map +1 -0
  148. package/dist/store/memory.js +352 -0
  149. package/dist/store/memory.js.map +1 -0
  150. package/dist/store/stack.d.ts +13 -0
  151. package/dist/store/stack.d.ts.map +1 -0
  152. package/dist/store/stack.js +72 -0
  153. package/dist/store/stack.js.map +1 -0
  154. package/dist/store/types.d.ts +50 -0
  155. package/dist/store/types.d.ts.map +1 -0
  156. package/dist/store/types.js +45 -0
  157. package/dist/store/types.js.map +1 -0
  158. package/dist/types.d.ts +324 -0
  159. package/dist/types.d.ts.map +1 -0
  160. package/dist/types.js +12 -0
  161. package/dist/types.js.map +1 -0
  162. package/dist/validate.d.ts +14 -0
  163. package/dist/validate.d.ts.map +1 -0
  164. package/dist/validate.js +263 -0
  165. package/dist/validate.js.map +1 -0
  166. package/package.json +72 -0
@@ -0,0 +1,238 @@
1
+ import { getPipelineOrchestratorStack } from "./store/stack.js";
2
+ import { handleCreateStep, handleDeleteStep, handleGetStep, handleListSteps, handleUpdateStep, } from "./handlers/steps.js";
3
+ import { handleCreatePipeline, handleDeletePipeline, handleGetPipeline, handleListPipelines, handleUpdatePipeline, handleValidatePipeline, } from "./handlers/pipelines.js";
4
+ import { handleCreateTemplate, handleDeleteTemplate, handleGetTemplate, handleListTemplates, handleUpdateTemplate, } from "./handlers/templates.js";
5
+ import { handleCreateSchedule, handleDeleteSchedule, handleGetSchedule, handleListSchedules, handleUpdateSchedule, } from "./handlers/schedules.js";
6
+ import { handleCancelRun, handleGetRun, handleGetRunLease, handleListRuns, handlePreflightRun, handleReconcileRun, handleResumeRun, handleRetryRun, handleStartRun, } from "./handlers/runs.js";
7
+ import { handleListArtifacts, handleListCheckpoints, handleListDlq, handleListReceipts, handleDlqReplay, } from "./handlers/ops.js";
8
+ import { jsonError } from "./handlers/shared.js";
9
+ import { createMemoryRuntimePorts } from "./runtime/memory-ports.js";
10
+ import { createPipelineServicesInvoker } from "./runtime/pipeline-services-invoker.js";
11
+ import { createMemoryOperationalStores } from "@x12i/memorix-pipeline-runtime";
12
+ let portsOverride = null;
13
+ export function setOrchestratorRuntimePortsForTests(ports) {
14
+ portsOverride = ports;
15
+ }
16
+ export function defaultOrchestratorRuntimePorts() {
17
+ return createMemoryRuntimePorts({
18
+ invoker: createPipelineServicesInvoker(),
19
+ operational: createMemoryOperationalStores(),
20
+ });
21
+ }
22
+ function splitPath(pathname) {
23
+ return pathname
24
+ .replace(/\/+$/, "")
25
+ .split("/")
26
+ .filter(Boolean);
27
+ }
28
+ export async function handlePipelineOrchestratorApiRequest(req) {
29
+ const method = req.method.toUpperCase();
30
+ const parts = splitPath(req.pathname);
31
+ if (parts.length === 0 || (parts.length === 1 && parts[0] === "health")) {
32
+ if (method === "GET" || method === "HEAD") {
33
+ return { status: 200, body: { ok: true, service: "memorix-pipeline-orchestrator" } };
34
+ }
35
+ }
36
+ const { store } = await getPipelineOrchestratorStack();
37
+ const ports = portsOverride ?? defaultOrchestratorRuntimePorts();
38
+ // /steps
39
+ if (parts[0] === "steps") {
40
+ if (parts.length === 1) {
41
+ if (method === "GET" || method === "HEAD")
42
+ return handleListSteps(store, req.searchParams);
43
+ if (method === "POST")
44
+ return handleCreateStep(store, req.body);
45
+ return jsonError(405, "method not allowed");
46
+ }
47
+ if (parts.length === 2) {
48
+ const stepId = parts[1];
49
+ if (method === "GET" || method === "HEAD")
50
+ return handleGetStep(store, stepId);
51
+ if (method === "PUT")
52
+ return handleUpdateStep(store, stepId, req.body);
53
+ if (method === "DELETE")
54
+ return handleDeleteStep(store, stepId);
55
+ return jsonError(405, "method not allowed");
56
+ }
57
+ return jsonError(404, "not found");
58
+ }
59
+ // /templates
60
+ if (parts[0] === "templates") {
61
+ if (parts.length === 1) {
62
+ if (method === "GET" || method === "HEAD")
63
+ return handleListTemplates(store);
64
+ if (method === "POST")
65
+ return handleCreateTemplate(store, req.body);
66
+ return jsonError(405, "method not allowed");
67
+ }
68
+ if (parts.length === 2) {
69
+ const templateId = parts[1];
70
+ if (method === "GET" || method === "HEAD")
71
+ return handleGetTemplate(store, templateId);
72
+ if (method === "PUT")
73
+ return handleUpdateTemplate(store, templateId, req.body);
74
+ if (method === "DELETE")
75
+ return handleDeleteTemplate(store, templateId);
76
+ return jsonError(405, "method not allowed");
77
+ }
78
+ return jsonError(404, "not found");
79
+ }
80
+ // /pipelines
81
+ if (parts[0] === "pipelines") {
82
+ if (parts.length === 1) {
83
+ if (method === "GET" || method === "HEAD")
84
+ return handleListPipelines(store);
85
+ if (method === "POST")
86
+ return handleCreatePipeline(store, req.body);
87
+ return jsonError(405, "method not allowed");
88
+ }
89
+ if (parts.length === 2) {
90
+ const pipelineId = parts[1];
91
+ if (method === "GET" || method === "HEAD")
92
+ return handleGetPipeline(store, pipelineId);
93
+ if (method === "PUT")
94
+ return handleUpdatePipeline(store, pipelineId, req.body);
95
+ if (method === "DELETE")
96
+ return handleDeletePipeline(store, pipelineId);
97
+ return jsonError(405, "method not allowed");
98
+ }
99
+ if (parts.length === 3 && parts[2] === "validate") {
100
+ if (method === "POST")
101
+ return handleValidatePipeline(store, parts[1]);
102
+ return jsonError(405, "method not allowed");
103
+ }
104
+ return jsonError(404, "not found");
105
+ }
106
+ // /schedules
107
+ if (parts[0] === "schedules") {
108
+ if (parts.length === 1) {
109
+ if (method === "GET" || method === "HEAD") {
110
+ return handleListSchedules(store, req.searchParams);
111
+ }
112
+ if (method === "POST")
113
+ return handleCreateSchedule(store, req.body);
114
+ return jsonError(405, "method not allowed");
115
+ }
116
+ if (parts.length === 2) {
117
+ const scheduleId = parts[1];
118
+ if (method === "GET" || method === "HEAD")
119
+ return handleGetSchedule(store, scheduleId);
120
+ if (method === "PUT")
121
+ return handleUpdateSchedule(store, scheduleId, req.body);
122
+ if (method === "DELETE")
123
+ return handleDeleteSchedule(store, scheduleId);
124
+ return jsonError(405, "method not allowed");
125
+ }
126
+ return jsonError(404, "not found");
127
+ }
128
+ // /runs
129
+ if (parts[0] === "runs") {
130
+ if (parts.length === 1) {
131
+ if (method === "GET" || method === "HEAD")
132
+ return handleListRuns(store, req.searchParams);
133
+ if (method === "POST")
134
+ return handleStartRun(store, ports, req.body, req.searchParams);
135
+ return jsonError(405, "method not allowed");
136
+ }
137
+ if (parts.length === 2 && parts[1] === "preflight") {
138
+ if (method === "POST")
139
+ return handlePreflightRun(store, req.body);
140
+ return jsonError(405, "method not allowed");
141
+ }
142
+ if (parts.length === 2) {
143
+ if (method === "GET" || method === "HEAD")
144
+ return handleGetRun(store, parts[1]);
145
+ return jsonError(405, "method not allowed");
146
+ }
147
+ if (parts.length === 3 && parts[2] === "cancel") {
148
+ if (method === "POST")
149
+ return handleCancelRun(store, parts[1]);
150
+ return jsonError(405, "method not allowed");
151
+ }
152
+ if (parts.length === 3 && parts[2] === "retry") {
153
+ if (method === "POST") {
154
+ return handleRetryRun(store, ports, parts[1], req.body, req.searchParams);
155
+ }
156
+ return jsonError(405, "method not allowed");
157
+ }
158
+ if (parts.length === 3 && parts[2] === "resume") {
159
+ if (method === "POST")
160
+ return handleResumeRun(store, ports, parts[1], req.searchParams);
161
+ return jsonError(405, "method not allowed");
162
+ }
163
+ if (parts.length === 3 && parts[2] === "reconcile") {
164
+ if (method === "POST")
165
+ return handleReconcileRun(store, ports, parts[1]);
166
+ return jsonError(405, "method not allowed");
167
+ }
168
+ if (parts.length === 3 && parts[2] === "lease") {
169
+ if (method === "GET" || method === "HEAD")
170
+ return handleGetRunLease(store, ports, parts[1]);
171
+ return jsonError(405, "method not allowed");
172
+ }
173
+ return jsonError(404, "not found");
174
+ }
175
+ // /ops/* — canonical operational query prefix (artifacts, receipts, dlq, checkpoints)
176
+ if (parts[0] === "ops") {
177
+ const sub = parts[1];
178
+ if (sub === "artifacts" && parts.length === 2) {
179
+ if (method === "GET" || method === "HEAD") {
180
+ return handleListArtifacts(ports.operational, req.searchParams);
181
+ }
182
+ return jsonError(405, "method not allowed");
183
+ }
184
+ if (sub === "receipts" && parts.length === 2) {
185
+ if (method === "GET" || method === "HEAD") {
186
+ return handleListReceipts(ports.operational, req.searchParams);
187
+ }
188
+ return jsonError(405, "method not allowed");
189
+ }
190
+ if (sub === "dlq") {
191
+ if (parts.length === 2 && (method === "GET" || method === "HEAD")) {
192
+ return handleListDlq(ports.operational, req.searchParams);
193
+ }
194
+ // POST /ops/dlq/:issueId/replay
195
+ if (parts.length === 4 && parts[3] === "replay" && method === "POST") {
196
+ return handleDlqReplay(ports.operational, parts[2], req.body);
197
+ }
198
+ return jsonError(405, "method not allowed");
199
+ }
200
+ if (sub === "checkpoints" && parts.length === 2) {
201
+ if (method === "GET" || method === "HEAD") {
202
+ return handleListCheckpoints(ports.operational, req.searchParams);
203
+ }
204
+ return jsonError(405, "method not allowed");
205
+ }
206
+ return jsonError(404, "not found");
207
+ }
208
+ // Legacy top-level operational routes (kept for backward compatibility)
209
+ if (parts[0] === "artifacts") {
210
+ if (parts.length === 1 && (method === "GET" || method === "HEAD")) {
211
+ return handleListArtifacts(ports.operational, req.searchParams);
212
+ }
213
+ return jsonError(405, "method not allowed");
214
+ }
215
+ if (parts[0] === "receipts") {
216
+ if (parts.length === 1 && (method === "GET" || method === "HEAD")) {
217
+ return handleListReceipts(ports.operational, req.searchParams);
218
+ }
219
+ return jsonError(405, "method not allowed");
220
+ }
221
+ if (parts[0] === "dlq") {
222
+ if (parts.length === 1 && (method === "GET" || method === "HEAD")) {
223
+ return handleListDlq(ports.operational, req.searchParams);
224
+ }
225
+ if (parts.length === 3 && parts[2] === "replay" && method === "POST") {
226
+ return handleDlqReplay(ports.operational, parts[1], req.body);
227
+ }
228
+ return jsonError(405, "method not allowed");
229
+ }
230
+ if (parts[0] === "checkpoints") {
231
+ if (parts.length === 1 && (method === "GET" || method === "HEAD")) {
232
+ return handleListCheckpoints(ports.operational, req.searchParams);
233
+ }
234
+ return jsonError(405, "method not allowed");
235
+ }
236
+ return jsonError(404, "not found");
237
+ }
238
+ //# sourceMappingURL=pipeline-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-handlers.js","sourceRoot":"","sources":["../src/pipeline-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { DataRef, PipelineServiceRequestInput } from "@x12i/memorix-pipeline-services";
2
+ import type { PipelineRun, PipelineStep } from "../types.js";
3
+ import { dedupeDataRefs, mergeDeclaredAndExplicitRefs, resolveSelectorsToRefs } from "./object-content-resolver.js";
4
+ /** Collect DataRef-shaped values from resolved step inputs / prior outputs. */
5
+ export declare function collectInputRefs(inputs: Record<string, unknown>): DataRef[];
6
+ /** Resolve `{{run.*}}` / `{{dependencies.outputs}}` placeholders in templates. */
7
+ export declare function resolveTemplateValue(value: unknown, ctx: {
8
+ run: PipelineRun;
9
+ inputs: Record<string, unknown>;
10
+ dependencyOutputs: Record<string, unknown>;
11
+ declaredInputRefs: DataRef[];
12
+ }): unknown;
13
+ export type BuildInvokeEnvelopeOptions = {
14
+ step: PipelineStep;
15
+ run: PipelineRun;
16
+ serviceType: string;
17
+ serviceId: string;
18
+ agentId?: string;
19
+ inputs: Record<string, unknown>;
20
+ resultBody: unknown;
21
+ attempt: number;
22
+ /** Pre-resolved declared input refs from objectTypes.inputs. */
23
+ declaredInputRefs?: DataRef[];
24
+ /** Pre-resolved declared output refs from objectTypes.outputs. */
25
+ declaredOutputRefs?: DataRef[];
26
+ dependencyOutputs?: Record<string, unknown>;
27
+ };
28
+ /** Build a sparse PipelineServiceRequestInput for pipeline-services invoke. */
29
+ export declare function buildInvokeEnvelope(options: BuildInvokeEnvelopeOptions): PipelineServiceRequestInput;
30
+ export { resolveSelectorsToRefs, mergeDeclaredAndExplicitRefs, dedupeDataRefs };
31
+ //# sourceMappingURL=build-invoke-envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-invoke-envelope.d.ts","sourceRoot":"","sources":["../../src/runtime/build-invoke-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAE5B,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAA+B,MAAM,aAAa,CAAC;AAE1F,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAWtC,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAkC3E;AA6DD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE;IACH,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,iBAAiB,EAAE,OAAO,EAAE,CAAC;CAC9B,GACA,OAAO,CAwBT;AA2ED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,2BAA2B,CAgG7B;AAED,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,258 @@
1
+ import { isPipelineServiceType, normalizeAuthRefsOnly, PIPELINE_SERVICE_CONTRACT_VERSION, } from "@x12i/memorix-pipeline-services";
2
+ import { getContextPath } from "./run-context.js";
3
+ import { dedupeDataRefs, mergeDeclaredAndExplicitRefs, resolveSelectorsToRefs, } from "./object-content-resolver.js";
4
+ function isDataRef(value) {
5
+ return (typeof value === "object" &&
6
+ value !== null &&
7
+ !Array.isArray(value) &&
8
+ typeof value.collection === "string");
9
+ }
10
+ /** Collect DataRef-shaped values from resolved step inputs / prior outputs. */
11
+ export function collectInputRefs(inputs) {
12
+ const refs = [];
13
+ for (const value of Object.values(inputs)) {
14
+ if (isDataRef(value)) {
15
+ refs.push(value);
16
+ continue;
17
+ }
18
+ if (Array.isArray(value)) {
19
+ for (const item of value) {
20
+ if (isDataRef(item))
21
+ refs.push(item);
22
+ }
23
+ continue;
24
+ }
25
+ if (typeof value === "object" && value !== null && "refs" in value) {
26
+ const nested = value.refs;
27
+ if (Array.isArray(nested)) {
28
+ for (const item of nested) {
29
+ if (isDataRef(item))
30
+ refs.push(item);
31
+ }
32
+ }
33
+ }
34
+ // Named *Ref fields on prior step outputs (analysisRef, narrativeRef, …)
35
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
36
+ for (const [k, v] of Object.entries(value)) {
37
+ if (k.endsWith("Ref") && isDataRef(v))
38
+ refs.push(v);
39
+ if (k === "result" && typeof v === "object" && v !== null) {
40
+ for (const [rk, rv] of Object.entries(v)) {
41
+ if ((rk.endsWith("Ref") || rk === "ref") && isDataRef(rv))
42
+ refs.push(rv);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ return dedupeDataRefs(refs);
49
+ }
50
+ function deepMerge(base, overlay) {
51
+ const out = { ...base };
52
+ for (const [key, value] of Object.entries(overlay)) {
53
+ if (value === undefined)
54
+ continue;
55
+ const existing = out[key];
56
+ if (value != null &&
57
+ typeof value === "object" &&
58
+ !Array.isArray(value) &&
59
+ existing != null &&
60
+ typeof existing === "object" &&
61
+ !Array.isArray(existing)) {
62
+ out[key] = deepMerge(existing, value);
63
+ }
64
+ else {
65
+ out[key] = value;
66
+ }
67
+ }
68
+ return out;
69
+ }
70
+ const PLACEHOLDER_RE = /\{\{([^}]+)\}\}/g;
71
+ function resolvePlaceholderPath(path, ctx) {
72
+ const trimmed = path.trim();
73
+ if (trimmed === "dependencies.outputs") {
74
+ return ctx.declaredInputRefs.length
75
+ ? ctx.declaredInputRefs
76
+ : Object.values(ctx.dependencyOutputs);
77
+ }
78
+ if (trimmed.startsWith("run.")) {
79
+ const runPath = trimmed.slice("run.".length);
80
+ if (runPath === "runId")
81
+ return ctx.run.runId;
82
+ if (runPath === "pipelineId")
83
+ return ctx.run.pipelineId;
84
+ return getContextPath(ctx.run.context ?? {}, runPath);
85
+ }
86
+ if (trimmed.startsWith("inputs.")) {
87
+ return getContextPath(ctx.inputs, trimmed.slice("inputs.".length));
88
+ }
89
+ if (trimmed.startsWith("dependencies.")) {
90
+ return getContextPath(ctx.dependencyOutputs, trimmed.slice("dependencies.".length));
91
+ }
92
+ return getContextPath(ctx.run.context ?? {}, trimmed);
93
+ }
94
+ /** Resolve `{{run.*}}` / `{{dependencies.outputs}}` placeholders in templates. */
95
+ export function resolveTemplateValue(value, ctx) {
96
+ if (typeof value === "string") {
97
+ const full = value.match(/^\{\{([^}]+)\}\}$/);
98
+ if (full) {
99
+ return resolvePlaceholderPath(full[1], ctx);
100
+ }
101
+ if (!PLACEHOLDER_RE.test(value))
102
+ return value;
103
+ PLACEHOLDER_RE.lastIndex = 0;
104
+ return value.replace(PLACEHOLDER_RE, (_m, path) => {
105
+ const resolved = resolvePlaceholderPath(path, ctx);
106
+ return resolved == null ? "" : String(resolved);
107
+ });
108
+ }
109
+ if (Array.isArray(value)) {
110
+ return value.map((item) => resolveTemplateValue(item, ctx));
111
+ }
112
+ if (value != null && typeof value === "object") {
113
+ const out = {};
114
+ for (const [k, v] of Object.entries(value)) {
115
+ out[k] = resolveTemplateValue(v, ctx);
116
+ }
117
+ return out;
118
+ }
119
+ return value;
120
+ }
121
+ function buildPayload(inputs, resultBody, requestPayload, inputRefs, serviceType) {
122
+ let payload = {};
123
+ if (requestPayload != null && typeof requestPayload === "object" && !Array.isArray(requestPayload)) {
124
+ payload = { ...requestPayload };
125
+ }
126
+ if ("payload" in inputs && inputs.payload !== undefined) {
127
+ if (typeof inputs.payload === "object" && inputs.payload !== null && !Array.isArray(inputs.payload)) {
128
+ payload = deepMerge(payload, inputs.payload);
129
+ }
130
+ }
131
+ const rest = { ...inputs };
132
+ delete rest.payload;
133
+ for (const [k, v] of Object.entries(rest)) {
134
+ if (v === undefined || k in payload)
135
+ continue;
136
+ // Do not dump DataRef / ref bags into payload — they already live in inputs.refs
137
+ // and AI payload.inputRefs.
138
+ if (isDataRef(v))
139
+ continue;
140
+ if (Array.isArray(v) && v.every(isDataRef))
141
+ continue;
142
+ payload[k] = v;
143
+ }
144
+ if (resultBody != null &&
145
+ typeof resultBody === "object" &&
146
+ !Array.isArray(resultBody) &&
147
+ Object.keys(payload).length === 0) {
148
+ payload = { ...resultBody };
149
+ }
150
+ else if (resultBody !== undefined &&
151
+ resultBody !== null &&
152
+ !("apiResult" in payload) &&
153
+ Object.keys(rest).length === 0 &&
154
+ Object.keys(payload).length === 0) {
155
+ payload = { apiResult: resultBody };
156
+ }
157
+ // Mirror resolved refs into AI / multi-ref payloads.
158
+ const aiTypes = new Set([
159
+ "discovery",
160
+ "analysis",
161
+ "decision",
162
+ "narrative-builder",
163
+ "step-narrative-builder",
164
+ "content",
165
+ "suggested-plan-builder",
166
+ "suggested-action-builder",
167
+ ]);
168
+ if (aiTypes.has(serviceType) && inputRefs.length > 0) {
169
+ const existing = payload.inputRefs;
170
+ if (!Array.isArray(existing) || existing.length === 0) {
171
+ payload.inputRefs = inputRefs;
172
+ }
173
+ else {
174
+ payload.inputRefs = dedupeDataRefs([
175
+ ...existing.filter(isDataRef),
176
+ ...inputRefs,
177
+ ]);
178
+ }
179
+ }
180
+ return Object.keys(payload).length ? payload : undefined;
181
+ }
182
+ /** Build a sparse PipelineServiceRequestInput for pipeline-services invoke. */
183
+ export function buildInvokeEnvelope(options) {
184
+ const { step, run, serviceType, serviceId, agentId, inputs, resultBody, attempt, dependencyOutputs = {}, } = options;
185
+ const declaredFromSelectors = options.declaredInputRefs ??
186
+ (step.objectTypes?.inputs?.length
187
+ ? resolveSelectorsToRefs(step.objectTypes.inputs)
188
+ : []);
189
+ const explicitRefs = collectInputRefs(inputs);
190
+ const refs = mergeDeclaredAndExplicitRefs(declaredFromSelectors, explicitRefs);
191
+ const templateCtx = {
192
+ run,
193
+ inputs,
194
+ dependencyOutputs,
195
+ declaredInputRefs: refs,
196
+ };
197
+ const resolvedRequest = step.request
198
+ ? resolveTemplateValue(step.request, templateCtx)
199
+ : undefined;
200
+ const payload = buildPayload(inputs, resultBody, resolvedRequest?.payload, refs, serviceType);
201
+ const typedServiceType = isPipelineServiceType(serviceType)
202
+ ? serviceType
203
+ : undefined;
204
+ const declaredOutputRefs = options.declaredOutputRefs ??
205
+ (step.objectTypes?.outputs?.length
206
+ ? resolveSelectorsToRefs(step.objectTypes.outputs)
207
+ : []);
208
+ const envelope = {
209
+ contractVersion: PIPELINE_SERVICE_CONTRACT_VERSION,
210
+ run: {
211
+ pipelineRunId: run.runId,
212
+ stepId: step.id,
213
+ attempt,
214
+ requestedAt: new Date().toISOString(),
215
+ },
216
+ service: {
217
+ ...(typedServiceType ? { serviceType: typedServiceType } : {}),
218
+ serviceId,
219
+ agentId,
220
+ vendor: step.vendor,
221
+ objectType: step.objectType,
222
+ },
223
+ inputs: refs.length ? { refs } : undefined,
224
+ payload,
225
+ };
226
+ if (resolvedRequest?.scope)
227
+ envelope.scope = resolvedRequest.scope;
228
+ if (resolvedRequest?.auth) {
229
+ const normalizedAuth = normalizeAuthRefsOnly(resolvedRequest.auth);
230
+ if (normalizedAuth)
231
+ envelope.auth = normalizedAuth;
232
+ }
233
+ if (resolvedRequest?.schemas)
234
+ envelope.schemas = resolvedRequest.schemas;
235
+ if (resolvedRequest?.sync)
236
+ envelope.sync = resolvedRequest.sync;
237
+ if (resolvedRequest?.execution)
238
+ envelope.execution = resolvedRequest.execution;
239
+ if (resolvedRequest?.lineage)
240
+ envelope.lineage = resolvedRequest.lineage;
241
+ // Preserve resolved request.inputs.refs when template provided them.
242
+ if (resolvedRequest?.inputs && typeof resolvedRequest.inputs === "object") {
243
+ const tmplInputs = resolvedRequest.inputs;
244
+ if (Array.isArray(tmplInputs.refs)) {
245
+ const tmplRefs = tmplInputs.refs.filter(isDataRef);
246
+ envelope.inputs = {
247
+ refs: dedupeDataRefs([...(envelope.inputs?.refs ?? []), ...tmplRefs]),
248
+ };
249
+ }
250
+ }
251
+ if (declaredOutputRefs.length) {
252
+ envelope.outputTargets =
253
+ { refs: declaredOutputRefs };
254
+ }
255
+ return envelope;
256
+ }
257
+ export { resolveSelectorsToRefs, mergeDeclaredAndExplicitRefs, dedupeDataRefs };
258
+ //# sourceMappingURL=build-invoke-envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-invoke-envelope.js","sourceRoot":"","sources":["../../src/runtime/build-invoke-envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { OperationalStores } from "@x12i/memorix-pipeline-runtime";
2
+ export type SavePendingCursorInput = {
3
+ operational: OperationalStores;
4
+ orgId: string;
5
+ runId: string;
6
+ syncGroup: string;
7
+ pendingCursor: unknown;
8
+ pageState?: Record<string, unknown>;
9
+ hasMore?: boolean;
10
+ tombstonePolicy?: string;
11
+ };
12
+ export declare function savePendingCursor(input: SavePendingCursorInput): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord>;
13
+ /** Commit pending → committed after sink receipts succeed. */
14
+ export declare function commitCheckpoint(options: {
15
+ operational: OperationalStores;
16
+ orgId: string;
17
+ runId: string;
18
+ syncGroup: string;
19
+ }): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord | null>;
20
+ export declare function listCheckpoints(options: {
21
+ operational: OperationalStores;
22
+ orgId: string;
23
+ runId: string;
24
+ }): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord[]>;
25
+ export declare function getCheckpoint(options: {
26
+ operational: OperationalStores;
27
+ orgId: string;
28
+ runId: string;
29
+ syncGroup: string;
30
+ }): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord | null>;
31
+ export type CheckpointContext = {
32
+ operational: OperationalStores;
33
+ orgId: string;
34
+ runId: string;
35
+ syncGroup: string;
36
+ };
37
+ /**
38
+ * After crash resume, keep pending cursor/page state until sink commit succeeds.
39
+ * Returns the existing checkpoint (if any) without clearing pending fields.
40
+ */
41
+ export declare function preservePendingAcrossResume(options: CheckpointContext): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord | null>;
42
+ /**
43
+ * Apply tombstone policy metadata on a sync-group checkpoint (full resync / delete window).
44
+ */
45
+ export declare function tombstoneCheckpoint(options: CheckpointContext & {
46
+ tombstonePolicy: string;
47
+ pendingCursor?: unknown;
48
+ }): Promise<import("@x12i/memorix-pipeline-runtime").CheckpointRecord>;
49
+ //# sourceMappingURL=checkpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../src/runtime/checkpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,sEAUpE;AAED,8DAA8D;AAC9D,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,6EAMA;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,wEAEA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,6EAMA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,6EAM3E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,GAAG;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,sEAiBlF"}