@x12i/memorix-service 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) 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 +68 -0
  25. package/dist/connector-catalog.d.ts.map +1 -0
  26. package/dist/connector-catalog.js +258 -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 +41 -0
  41. package/dist/generic-connectors.d.ts.map +1 -0
  42. package/dist/generic-connectors.js +158 -0
  43. package/dist/generic-connectors.js.map +1 -0
  44. package/dist/jobs-scope.d.ts +21 -0
  45. package/dist/jobs-scope.d.ts.map +1 -0
  46. package/dist/jobs-scope.js +83 -0
  47. package/dist/jobs-scope.js.map +1 -0
  48. package/dist/live.d.ts +11 -0
  49. package/dist/live.d.ts.map +1 -1
  50. package/dist/live.js +700 -73
  51. package/dist/live.js.map +1 -1
  52. package/dist/openapi/openapi.json +3445 -791
  53. package/dist/pipeline-compile.d.ts +35 -1
  54. package/dist/pipeline-compile.d.ts.map +1 -1
  55. package/dist/pipeline-compile.js +408 -87
  56. package/dist/pipeline-compile.js.map +1 -1
  57. package/dist/pipeline-invoke.d.ts +63 -0
  58. package/dist/pipeline-invoke.d.ts.map +1 -0
  59. package/dist/pipeline-invoke.js +114 -0
  60. package/dist/pipeline-invoke.js.map +1 -0
  61. package/dist/pipeline-ports.d.ts +13 -0
  62. package/dist/pipeline-ports.d.ts.map +1 -0
  63. package/dist/pipeline-ports.js +104 -0
  64. package/dist/pipeline-ports.js.map +1 -0
  65. package/dist/platform.d.ts +30 -1
  66. package/dist/platform.d.ts.map +1 -1
  67. package/dist/platform.js +228 -6
  68. package/dist/platform.js.map +1 -1
  69. package/dist/routes/connector-invocations.d.ts.map +1 -1
  70. package/dist/routes/connector-invocations.js +18 -21
  71. package/dist/routes/connector-invocations.js.map +1 -1
  72. package/dist/routes/jobs.d.ts +4 -0
  73. package/dist/routes/jobs.d.ts.map +1 -0
  74. package/dist/routes/jobs.js +888 -0
  75. package/dist/routes/jobs.js.map +1 -0
  76. package/dist/routes/memory.d.ts.map +1 -1
  77. package/dist/routes/memory.js +143 -79
  78. package/dist/routes/memory.js.map +1 -1
  79. package/dist/routes/pipelines.d.ts.map +1 -1
  80. package/dist/routes/pipelines.js +98 -22
  81. package/dist/routes/pipelines.js.map +1 -1
  82. package/dist/routes/relationships.d.ts.map +1 -1
  83. package/dist/routes/relationships.js +80 -2
  84. package/dist/routes/relationships.js.map +1 -1
  85. package/dist/runx/client.d.ts +18 -0
  86. package/dist/runx/client.d.ts.map +1 -0
  87. package/dist/runx/client.js +59 -0
  88. package/dist/runx/client.js.map +1 -0
  89. package/openapi/openapi.json +3445 -791
  90. package/package.json +10 -8
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Unified connector catalog — registry + builtins + MGC (generic connectors).
3
+ * Used by GET /api/connectors and Jobs listExecutionTargets.
4
+ * Role helpers live in connector-role.ts (no import cycle).
5
+ */
6
+ import type { ConnectorRegistry } from "@x12i/memorix-memory";
7
+ import { type ConnectorRole } from "./connector-role.js";
8
+ import { type GenericConnectorsConfig } from "./generic-connectors.js";
9
+ export type ConnectorCatalogOrigin = "registry" | "builtin" | "generic-connectors";
10
+ export type UnifiedConnectorRow = {
11
+ id: string;
12
+ version: string;
13
+ displayName: string;
14
+ protocol: string;
15
+ enabled: boolean;
16
+ /** Capability flags as record (for /api/connectors) or derived keys. */
17
+ capabilities: Record<string, boolean>;
18
+ capabilityKeys: string[];
19
+ origin: ConnectorCatalogOrigin;
20
+ hostBaseUrl?: string;
21
+ remoteHosting: boolean;
22
+ framework: boolean;
23
+ isSource: boolean;
24
+ isTarget: boolean;
25
+ connectorRole: ConnectorRole | null;
26
+ /** Host missing for generic remote entries. */
27
+ unavailableReason?: string;
28
+ definitionHash?: string;
29
+ };
30
+ export type ListUnifiedConnectorsInput = {
31
+ connectorRegistry: ConnectorRegistry | {
32
+ list: () => Array<{
33
+ connectorId: string;
34
+ version?: string;
35
+ enabled?: boolean;
36
+ protocol?: string;
37
+ workflowHash?: string;
38
+ manifest?: Record<string, unknown>;
39
+ }>;
40
+ };
41
+ genericConnectors: GenericConnectorsConfig;
42
+ fetchImpl?: typeof fetch;
43
+ };
44
+ /**
45
+ * List all connector packages operators may pick (AI-style catalog root).
46
+ * Registry wins over builtins and MGC for the same id.
47
+ * Live MGC catalog supplies role-tagged packages; env id lists are offline stubs only.
48
+ */
49
+ export declare function listUnifiedConnectors(input: ListUnifiedConnectorsInput): Promise<UnifiedConnectorRow[]>;
50
+ /** Shape for GET /api/connectors response rows. */
51
+ export declare function toApiConnectorRow(row: UnifiedConnectorRow): {
52
+ definitionHash?: string | undefined;
53
+ unavailableReason?: string | undefined;
54
+ remoteHosting?: boolean | undefined;
55
+ hostBaseUrl?: string | undefined;
56
+ id: string;
57
+ version: string;
58
+ protocol: string;
59
+ enabled: boolean;
60
+ framework: boolean;
61
+ displayName: string;
62
+ capabilities: Record<string, boolean>;
63
+ connectorRole: ConnectorRole | null;
64
+ isSource: boolean;
65
+ isTarget: boolean;
66
+ origin: ConnectorCatalogOrigin;
67
+ };
68
+ //# sourceMappingURL=connector-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-catalog.d.ts","sourceRoot":"","sources":["../src/connector-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,SAAS,GACT,oBAAoB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA6EF,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,EAAE,iBAAiB,GAAG;QACrC,IAAI,EAAE,MAAM,KAAK,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ,CAAC;IACF,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,CAAC;AAwCF;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA2KhC;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;;;;;;EAoBzD"}
@@ -0,0 +1,258 @@
1
+ import { classifyConnectorRole, } from "./connector-role.js";
2
+ import { fetchGenericConnectorCatalog, } from "./generic-connectors.js";
3
+ const BUILTIN_CONNECTORS = [
4
+ {
5
+ id: "opx-rest",
6
+ displayName: "OpX REST",
7
+ capabilities: { pull: true, cursor: true, simulation: true },
8
+ },
9
+ {
10
+ id: "knowx-rest",
11
+ displayName: "KnowX REST",
12
+ capabilities: { pull: true, cursor: true, simulation: true },
13
+ },
14
+ {
15
+ id: "knowx-folder",
16
+ displayName: "KnowX folder",
17
+ capabilities: { pull: true, simulation: true },
18
+ },
19
+ {
20
+ id: "knowx-managed",
21
+ displayName: "KnowX managed",
22
+ capabilities: {
23
+ pull: true,
24
+ largeContent: true,
25
+ remoteHosting: true,
26
+ validation: true,
27
+ health: true,
28
+ simulation: true,
29
+ },
30
+ },
31
+ ];
32
+ function capsToRecord(caps, fallback = { pull: true }) {
33
+ if (!caps)
34
+ return { ...fallback };
35
+ if (Array.isArray(caps)) {
36
+ const out = {};
37
+ for (const k of caps) {
38
+ if (typeof k === "string" && k.trim())
39
+ out[k.trim()] = true;
40
+ }
41
+ return Object.keys(out).length ? out : { ...fallback };
42
+ }
43
+ const out = {};
44
+ for (const [k, v] of Object.entries(caps)) {
45
+ if (v === true)
46
+ out[k] = true;
47
+ }
48
+ return Object.keys(out).length ? out : { ...fallback };
49
+ }
50
+ function finalizeRow(partial) {
51
+ const { explicitRole, ...rest } = partial;
52
+ const { isSource, isTarget, role } = classifyConnectorRole(rest.capabilities, explicitRole);
53
+ return {
54
+ ...rest,
55
+ capabilityKeys: Object.keys(rest.capabilities).filter((k) => rest.capabilities[k] === true),
56
+ isSource,
57
+ isTarget,
58
+ connectorRole: role,
59
+ };
60
+ }
61
+ function addStub(byId, id, opts) {
62
+ if (byId.has(id))
63
+ return;
64
+ const capabilities = opts.role === "source"
65
+ ? { pull: true, remoteHosting: true }
66
+ : {
67
+ push: true,
68
+ export: true,
69
+ destination: true,
70
+ remoteHosting: true,
71
+ };
72
+ byId.set(id, finalizeRow({
73
+ id,
74
+ version: "0.0.0",
75
+ displayName: id,
76
+ protocol: "memorix-connector/1",
77
+ enabled: true,
78
+ capabilities,
79
+ origin: "generic-connectors",
80
+ hostBaseUrl: opts.hostBaseUrl,
81
+ remoteHosting: true,
82
+ framework: true,
83
+ unavailableReason: opts.unavailableReason,
84
+ explicitRole: opts.role,
85
+ }));
86
+ }
87
+ /**
88
+ * List all connector packages operators may pick (AI-style catalog root).
89
+ * Registry wins over builtins and MGC for the same id.
90
+ * Live MGC catalog supplies role-tagged packages; env id lists are offline stubs only.
91
+ */
92
+ export async function listUnifiedConnectors(input) {
93
+ const byId = new Map();
94
+ const fetchImpl = input.fetchImpl ?? fetch;
95
+ const mgc = input.genericConnectors;
96
+ for (const doc of input.connectorRegistry.list()) {
97
+ const manifest = (doc.manifest ?? {});
98
+ const caps = capsToRecord(manifest.capabilities);
99
+ byId.set(doc.connectorId, finalizeRow({
100
+ id: doc.connectorId,
101
+ version: doc.version ?? "0.0.0",
102
+ displayName: typeof manifest.displayName === "string"
103
+ ? manifest.displayName
104
+ : doc.connectorId,
105
+ protocol: doc.protocol ?? "memorix-connector/1",
106
+ enabled: doc.enabled !== false,
107
+ capabilities: caps,
108
+ origin: "registry",
109
+ remoteHosting: caps.remoteHosting === true,
110
+ framework: true,
111
+ hostBaseUrl: typeof manifest.hostBaseUrl === "string"
112
+ ? manifest.hostBaseUrl
113
+ : undefined,
114
+ explicitRole: manifest.role,
115
+ }));
116
+ }
117
+ for (const b of BUILTIN_CONNECTORS) {
118
+ if (byId.has(b.id))
119
+ continue;
120
+ byId.set(b.id, finalizeRow({
121
+ id: b.id,
122
+ version: "1.0.0",
123
+ displayName: b.displayName,
124
+ protocol: "memorix-connector/1",
125
+ enabled: true,
126
+ capabilities: { ...b.capabilities },
127
+ origin: "builtin",
128
+ remoteHosting: b.capabilities.remoteHosting === true,
129
+ framework: true,
130
+ }));
131
+ }
132
+ // MGC source connectors (live catalog)
133
+ if (mgc.sourceServiceUrl) {
134
+ const rows = await fetchGenericConnectorCatalog(mgc.sourceServiceUrl, fetchImpl, { defaultRole: "source" });
135
+ for (const row of rows) {
136
+ if (byId.has(row.id))
137
+ continue;
138
+ const fallback = row.role === "target"
139
+ ? { push: true, remoteHosting: true }
140
+ : { pull: true, remoteHosting: true };
141
+ const caps = capsToRecord(row.capabilities, fallback);
142
+ caps.remoteHosting = true;
143
+ byId.set(row.id, finalizeRow({
144
+ id: row.id,
145
+ version: row.version,
146
+ displayName: row.displayName ?? row.id,
147
+ protocol: row.protocol ?? "memorix-connector/1",
148
+ enabled: true,
149
+ capabilities: caps,
150
+ origin: "generic-connectors",
151
+ hostBaseUrl: mgc.sourceServiceUrl,
152
+ remoteHosting: true,
153
+ framework: true,
154
+ explicitRole: row.role,
155
+ definitionHash: row.definitionHash,
156
+ }));
157
+ }
158
+ // Offline stubs only when explicitly configured and catalog missed the id
159
+ for (const id of mgc.remoteSourceConnectorIds) {
160
+ addStub(byId, id, {
161
+ hostBaseUrl: mgc.sourceServiceUrl,
162
+ role: "source",
163
+ });
164
+ }
165
+ }
166
+ else {
167
+ for (const id of mgc.remoteSourceConnectorIds) {
168
+ addStub(byId, id, {
169
+ role: "source",
170
+ unavailableReason: "Set MGC_SOURCE_SERVICE_URL to enable",
171
+ });
172
+ }
173
+ }
174
+ // MGC target connectors (live catalog)
175
+ if (mgc.targetServiceUrl) {
176
+ const rows = await fetchGenericConnectorCatalog(mgc.targetServiceUrl, fetchImpl, { defaultRole: "target" });
177
+ for (const row of rows) {
178
+ if (byId.has(row.id)) {
179
+ const existing = byId.get(row.id);
180
+ if (!existing.isTarget) {
181
+ existing.capabilities = {
182
+ ...existing.capabilities,
183
+ push: true,
184
+ export: true,
185
+ destination: true,
186
+ };
187
+ const roles = classifyConnectorRole(existing.capabilities, row.role ?? "target");
188
+ existing.isSource = roles.isSource;
189
+ existing.isTarget = roles.isTarget;
190
+ existing.connectorRole = roles.role;
191
+ existing.capabilityKeys = Object.keys(existing.capabilities);
192
+ }
193
+ if (!existing.hostBaseUrl)
194
+ existing.hostBaseUrl = mgc.targetServiceUrl;
195
+ continue;
196
+ }
197
+ const caps = capsToRecord(row.capabilities, {
198
+ push: true,
199
+ export: true,
200
+ destination: true,
201
+ remoteHosting: true,
202
+ });
203
+ caps.remoteHosting = true;
204
+ byId.set(row.id, finalizeRow({
205
+ id: row.id,
206
+ version: row.version,
207
+ displayName: row.displayName ?? row.id,
208
+ protocol: row.protocol ?? "memorix-connector/1",
209
+ enabled: true,
210
+ capabilities: caps,
211
+ origin: "generic-connectors",
212
+ hostBaseUrl: mgc.targetServiceUrl,
213
+ remoteHosting: true,
214
+ framework: true,
215
+ explicitRole: row.role ?? "target",
216
+ definitionHash: row.definitionHash,
217
+ }));
218
+ }
219
+ for (const id of mgc.remoteTargetConnectorIds) {
220
+ addStub(byId, id, {
221
+ hostBaseUrl: mgc.targetServiceUrl,
222
+ role: "target",
223
+ });
224
+ }
225
+ }
226
+ else {
227
+ for (const id of mgc.remoteTargetConnectorIds) {
228
+ addStub(byId, id, {
229
+ role: "target",
230
+ unavailableReason: "Set MGC_TARGET_SERVICE_URL to enable",
231
+ });
232
+ }
233
+ }
234
+ return [...byId.values()].sort((a, b) => a.id.localeCompare(b.id));
235
+ }
236
+ /** Shape for GET /api/connectors response rows. */
237
+ export function toApiConnectorRow(row) {
238
+ return {
239
+ id: row.id,
240
+ version: row.version,
241
+ protocol: row.protocol,
242
+ enabled: row.enabled,
243
+ framework: row.framework,
244
+ displayName: row.displayName,
245
+ capabilities: row.capabilities,
246
+ connectorRole: row.connectorRole,
247
+ isSource: row.isSource,
248
+ isTarget: row.isTarget,
249
+ origin: row.origin,
250
+ ...(row.hostBaseUrl ? { hostBaseUrl: row.hostBaseUrl } : {}),
251
+ ...(row.remoteHosting ? { remoteHosting: true } : {}),
252
+ ...(row.unavailableReason
253
+ ? { unavailableReason: row.unavailableReason }
254
+ : {}),
255
+ ...(row.definitionHash ? { definitionHash: row.definitionHash } : {}),
256
+ };
257
+ }
258
+ //# sourceMappingURL=connector-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-catalog.js","sourceRoot":"","sources":["../src/connector-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Leaf helpers for source vs target connector role.
3
+ * Keep free of execution-target / catalog imports to avoid cycles.
4
+ */
5
+ export type ConnectorRole = "source" | "target" | "both";
6
+ /** Normalize capability maps / string lists for source vs target classification. */
7
+ export declare function normalizeCapabilityKeys(capabilities: string[] | Record<string, unknown> | undefined | null): Set<string>;
8
+ /**
9
+ * Parse explicit MGC / catalog `role` (`source` | `target` | `both`).
10
+ * Preferred over capability inference when present (MGC 0.1.2+).
11
+ */
12
+ export declare function parseExplicitConnectorRole(role: unknown): ConnectorRole | null;
13
+ /**
14
+ * Classify connector direction.
15
+ * Prefer explicit `role` (catalog item / well-known); fall back to capabilities.
16
+ */
17
+ export declare function classifyConnectorRole(capabilities: string[] | Record<string, unknown> | undefined | null, explicitRole?: unknown): {
18
+ isSource: boolean;
19
+ isTarget: boolean;
20
+ role: ConnectorRole | null;
21
+ };
22
+ //# sourceMappingURL=connector-role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-role.d.ts","sourceRoot":"","sources":["../src/connector-role.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD,oFAAoF;AACpF,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAClE,GAAG,CAAC,MAAM,CAAC,CAeb;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,OAAO,GACZ,aAAa,GAAG,IAAI,CAMtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,EACnE,YAAY,CAAC,EAAE,OAAO,GACrB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CA0BtE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Leaf helpers for source vs target connector role.
3
+ * Keep free of execution-target / catalog imports to avoid cycles.
4
+ */
5
+ const TARGET_CAPABILITY_KEYS = new Set(["push", "export", "destination"]);
6
+ /** Normalize capability maps / string lists for source vs target classification. */
7
+ export function normalizeCapabilityKeys(capabilities) {
8
+ const out = new Set();
9
+ if (!capabilities)
10
+ return out;
11
+ if (Array.isArray(capabilities)) {
12
+ for (const c of capabilities) {
13
+ if (typeof c === "string" && c.trim())
14
+ out.add(c.trim());
15
+ }
16
+ return out;
17
+ }
18
+ if (typeof capabilities === "object") {
19
+ for (const [k, v] of Object.entries(capabilities)) {
20
+ if (v === true)
21
+ out.add(k);
22
+ }
23
+ }
24
+ return out;
25
+ }
26
+ /**
27
+ * Parse explicit MGC / catalog `role` (`source` | `target` | `both`).
28
+ * Preferred over capability inference when present (MGC 0.1.2+).
29
+ */
30
+ export function parseExplicitConnectorRole(role) {
31
+ if (role === "source" || role === "target" || role === "both")
32
+ return role;
33
+ if (typeof role !== "string")
34
+ return null;
35
+ const t = role.trim().toLowerCase();
36
+ if (t === "source" || t === "target" || t === "both")
37
+ return t;
38
+ return null;
39
+ }
40
+ /**
41
+ * Classify connector direction.
42
+ * Prefer explicit `role` (catalog item / well-known); fall back to capabilities.
43
+ */
44
+ export function classifyConnectorRole(capabilities, explicitRole) {
45
+ const fromRole = parseExplicitConnectorRole(explicitRole);
46
+ if (fromRole === "source") {
47
+ return { isSource: true, isTarget: false, role: "source" };
48
+ }
49
+ if (fromRole === "target") {
50
+ return { isSource: false, isTarget: true, role: "target" };
51
+ }
52
+ if (fromRole === "both") {
53
+ return { isSource: true, isTarget: true, role: "both" };
54
+ }
55
+ const keys = normalizeCapabilityKeys(capabilities);
56
+ const hasPull = keys.has("pull");
57
+ const hasTarget = [...TARGET_CAPABILITY_KEYS].some((k) => keys.has(k));
58
+ // Legacy / incomplete manifests: treat as source when not outbound-only.
59
+ const isSource = hasPull || !hasTarget;
60
+ const isTarget = hasTarget;
61
+ if (!isSource && !isTarget) {
62
+ return { isSource: false, isTarget: false, role: null };
63
+ }
64
+ if (isSource && isTarget) {
65
+ return { isSource: true, isTarget: true, role: "both" };
66
+ }
67
+ if (isSource)
68
+ return { isSource: true, isTarget: false, role: "source" };
69
+ return { isSource: false, isTarget: true, role: "target" };
70
+ }
71
+ //# sourceMappingURL=connector-role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-role.js","sourceRoot":"","sources":["../src/connector-role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Module-level deliverer for pipeline destination invoke (memorix-destination/1).
3
+ * Set at platform boot — avoids importing Mongo/platform into live.ts cycle.
4
+ */
5
+ import type { MemoryDeliverer, MemoryDeliverRequest } from "@x12i/memorix-memory";
6
+ export declare function setPlatformDeliverer(d: MemoryDeliverer | null): void;
7
+ export declare function deliverViaPlatform(request: MemoryDeliverRequest): Promise<Awaited<ReturnType<MemoryDeliverer["deliver"]>>>;
8
+ //# sourceMappingURL=destination-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination-runtime.d.ts","sourceRoot":"","sources":["../src/destination-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIlF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAEpE;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CACR,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAChD,CAKA"}
@@ -0,0 +1,11 @@
1
+ let deliverer = null;
2
+ export function setPlatformDeliverer(d) {
3
+ deliverer = d;
4
+ }
5
+ export async function deliverViaPlatform(request) {
6
+ if (!deliverer) {
7
+ throw new Error("MEMORY_DELIVERER_UNAVAILABLE: platform deliverer not configured");
8
+ }
9
+ return deliverer.deliver(request);
10
+ }
11
+ //# sourceMappingURL=destination-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination-runtime.js","sourceRoot":"","sources":["../src/destination-runtime.ts"],"names":[],"mappings":"AAMA,IAAI,SAAS,GAA2B,IAAI,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAAC,CAAyB;IAC5D,SAAS,GAAG,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA6B;IAI7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Jobs Manager execution targets — pipelines, connectors, services, AI items.
3
+ * Direct (non-pipeline) targets compile into stable synthetic one-step plans.
4
+ */
5
+ import type { PipelineDefinition } from "@x12i/memorix-pipeline/v2";
6
+ import { type ServiceDefSlice } from "./pipeline-compile.js";
7
+ export type ExecutionTargetRef = {
8
+ kind: "pipeline";
9
+ pipelineId: string;
10
+ } | {
11
+ kind: "connector";
12
+ connectorId: string;
13
+ sourceId: string;
14
+ } | {
15
+ kind: "destination";
16
+ connectorId: string;
17
+ destinationId: string;
18
+ } | {
19
+ kind: "service";
20
+ serviceId: string;
21
+ } | {
22
+ kind: "ai-service";
23
+ aiServiceType: string;
24
+ itemId: string;
25
+ } | {
26
+ kind: "runx";
27
+ capabilityId: string;
28
+ };
29
+ export { classifyConnectorRole, normalizeCapabilityKeys, type ConnectorRole, } from "./connector-role.js";
30
+ export type ExecutionTargetCatalogEntry = {
31
+ kind: ExecutionTargetRef["kind"];
32
+ id: string;
33
+ name: string;
34
+ description?: string;
35
+ available: boolean;
36
+ unavailableReason?: string;
37
+ capabilities?: string[];
38
+ /** Concrete target ref to submit on queue/Work APIs. */
39
+ target: ExecutionTargetRef;
40
+ /** Nested options (e.g. sources under a connector, AI items under a type). */
41
+ children?: ExecutionTargetCatalogEntry[];
42
+ meta?: Record<string, unknown>;
43
+ };
44
+ export type ResolveExecutionTargetResult = {
45
+ target: ExecutionTargetRef;
46
+ pipelineId: string;
47
+ compiled: PipelineDefinition;
48
+ label: string;
49
+ };
50
+ export declare function isSyntheticPipelineId(pipelineId: string): boolean;
51
+ export declare function syntheticPipelineId(target: ExecutionTargetRef): string;
52
+ export declare function parseSyntheticPipelineId(pipelineId: string): ExecutionTargetRef | null;
53
+ /** Parse body.executionTarget or legacy body.pipelineId. */
54
+ export declare function parseExecutionTarget(body: unknown): ExecutionTargetRef;
55
+ export declare function buildSyntheticAuthoringDefinition(target: ExecutionTargetRef, opts?: {
56
+ serviceDefs?: ServiceDefSlice[];
57
+ sourceName?: string;
58
+ serviceName?: string;
59
+ itemTitle?: string;
60
+ }): Record<string, unknown>;
61
+ export type ExecutionTargetPlatform = {
62
+ metadata: {
63
+ resolveEffective: (agentIds: string[]) => {
64
+ effective?: Array<{
65
+ kind: string;
66
+ id: string;
67
+ definition: Record<string, unknown>;
68
+ provenance?: unknown;
69
+ }>;
70
+ };
71
+ getDefinition: (agentIds: string[], kind: string, id: string) => {
72
+ definition: unknown;
73
+ } | null | undefined;
74
+ };
75
+ connectorRegistry: {
76
+ list: () => Array<{
77
+ connectorId: string;
78
+ version?: string;
79
+ enabled?: boolean;
80
+ protocol?: string;
81
+ manifest?: Record<string, unknown>;
82
+ }>;
83
+ };
84
+ orgRuntimeSourcesFor: (orgId: string) => {
85
+ list: (opts?: {
86
+ agentIds?: string[];
87
+ origin?: string;
88
+ }) => Promise<Array<{
89
+ sourceId: string;
90
+ definition: Record<string, unknown>;
91
+ agentIds: string[];
92
+ origin?: string;
93
+ }>>;
94
+ };
95
+ /** Optional — destination deliver ET + catalog children. */
96
+ destinationStore?: {
97
+ list: (orgId: string) => Promise<Array<{
98
+ definition: {
99
+ id: string;
100
+ name: string;
101
+ connectorRef: string;
102
+ hostBaseUrl?: string;
103
+ };
104
+ }>>;
105
+ get: (orgId: string, destinationId: string) => Promise<{
106
+ definition: {
107
+ id: string;
108
+ name: string;
109
+ connectorRef: string;
110
+ hostBaseUrl?: string;
111
+ };
112
+ } | null>;
113
+ };
114
+ /** Optional — MGC env for unified catalog. */
115
+ genericConnectors?: import("./generic-connectors.js").GenericConnectorsConfig;
116
+ };
117
+ export declare function resolveExecutionTarget(platform: ExecutionTargetPlatform, opts: {
118
+ agentIds: string[];
119
+ orgId?: string | null;
120
+ target: ExecutionTargetRef;
121
+ }): Promise<ResolveExecutionTargetResult>;
122
+ /** Resolve by pipelineId — installed or synthetic. */
123
+ export declare function resolvePipelineIdAsTarget(platform: ExecutionTargetPlatform, opts: {
124
+ agentIds: string[];
125
+ orgId?: string | null;
126
+ pipelineId: string;
127
+ }): Promise<ResolveExecutionTargetResult>;
128
+ export declare function listExecutionTargets(platform: ExecutionTargetPlatform, opts: {
129
+ agentIds: string[];
130
+ orgId?: string | null;
131
+ }): Promise<{
132
+ pipelines: ExecutionTargetCatalogEntry[];
133
+ /** Alias of sourceConnectors (compat). */
134
+ connectors: ExecutionTargetCatalogEntry[];
135
+ sourceConnectors: ExecutionTargetCatalogEntry[];
136
+ targetConnectors: ExecutionTargetCatalogEntry[];
137
+ services: ExecutionTargetCatalogEntry[];
138
+ aiServices: ExecutionTargetCatalogEntry[];
139
+ runx: ExecutionTargetCatalogEntry[];
140
+ }>;
141
+ //# sourceMappingURL=execution-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-target.d.ts","sourceRoot":"","sources":["../src/execution-target.ts"],"names":[],"mappings":"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"}