@x12i/memorix-client-api 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HANDOVER.md +13 -2
- package/dist/agent-directory.d.ts +25 -0
- package/dist/agent-directory.d.ts.map +1 -0
- package/dist/agent-directory.js +75 -0
- package/dist/agent-directory.js.map +1 -0
- package/dist/app.d.ts +31 -6
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +220 -33
- package/dist/app.js.map +1 -1
- package/dist/authix.d.ts +28 -2
- package/dist/authix.d.ts.map +1 -1
- package/dist/authix.js +55 -4
- package/dist/authix.js.map +1 -1
- package/dist/catalog.d.ts +33 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +83 -4
- package/dist/catalog.js.map +1 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +31 -0
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +16 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +16 -2
- package/dist/errors.js.map +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +27 -3
- package/dist/fetch.js.map +1 -1
- package/dist/peers.d.ts +2 -2
- package/dist/peers.d.ts.map +1 -1
- package/dist/peers.js +4 -4
- package/dist/peers.js.map +1 -1
- package/dist/refs.d.ts +7 -1
- package/dist/refs.d.ts.map +1 -1
- package/dist/refs.js +36 -26
- package/dist/refs.js.map +1 -1
- package/dist/scope.d.ts +25 -2
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +71 -4
- package/dist/scope.js.map +1 -1
- package/dist/scoper-embedded.d.ts +29 -0
- package/dist/scoper-embedded.d.ts.map +1 -0
- package/dist/scoper-embedded.js +239 -0
- package/dist/scoper-embedded.js.map +1 -0
- package/dist/scoper.d.ts +19 -27
- package/dist/scoper.d.ts.map +1 -1
- package/dist/scoper.js +51 -254
- package/dist/scoper.js.map +1 -1
- package/dist/upstream.d.ts +6 -1
- package/dist/upstream.d.ts.map +1 -1
- package/dist/upstream.js +22 -4
- package/dist/upstream.js.map +1 -1
- package/dist/v1/census.d.ts +59 -0
- package/dist/v1/census.d.ts.map +1 -0
- package/dist/v1/census.js +146 -0
- package/dist/v1/census.js.map +1 -0
- package/dist/v1/content.d.ts +48 -0
- package/dist/v1/content.d.ts.map +1 -0
- package/dist/v1/content.js +292 -0
- package/dist/v1/content.js.map +1 -0
- package/dist/v1/context.d.ts +50 -0
- package/dist/v1/context.d.ts.map +1 -0
- package/dist/v1/context.js +4 -0
- package/dist/v1/context.js.map +1 -0
- package/dist/v1/discovery.d.ts +24 -0
- package/dist/v1/discovery.d.ts.map +1 -0
- package/dist/v1/discovery.js +163 -0
- package/dist/v1/discovery.js.map +1 -0
- package/dist/v1/gaps.d.ts +18 -0
- package/dist/v1/gaps.d.ts.map +1 -0
- package/dist/v1/gaps.js +2 -0
- package/dist/v1/gaps.js.map +1 -0
- package/dist/v1/http.d.ts +18 -0
- package/dist/v1/http.d.ts.map +1 -0
- package/dist/v1/http.js +105 -0
- package/dist/v1/http.js.map +1 -0
- package/dist/v1/mapping.d.ts +155 -0
- package/dist/v1/mapping.d.ts.map +1 -0
- package/dist/v1/mapping.js +380 -0
- package/dist/v1/mapping.js.map +1 -0
- package/dist/v1/planning-store.d.ts +74 -0
- package/dist/v1/planning-store.d.ts.map +1 -0
- package/dist/v1/planning-store.js +192 -0
- package/dist/v1/planning-store.js.map +1 -0
- package/dist/v1/planning.d.ts +5 -0
- package/dist/v1/planning.d.ts.map +1 -0
- package/dist/v1/planning.js +297 -0
- package/dist/v1/planning.js.map +1 -0
- package/dist/v1/records.d.ts +18 -0
- package/dist/v1/records.d.ts.map +1 -0
- package/dist/v1/records.js +42 -0
- package/dist/v1/records.js.map +1 -0
- package/dist/v1/relationships.d.ts +72 -0
- package/dist/v1/relationships.d.ts.map +1 -0
- package/dist/v1/relationships.js +436 -0
- package/dist/v1/relationships.js.map +1 -0
- package/dist/v1/routes.d.ts +5 -0
- package/dist/v1/routes.d.ts.map +1 -0
- package/dist/v1/routes.js +16 -0
- package/dist/v1/routes.js.map +1 -0
- package/dist/v1/sources.d.ts +62 -0
- package/dist/v1/sources.d.ts.map +1 -0
- package/dist/v1/sources.js +218 -0
- package/dist/v1/sources.js.map +1 -0
- package/openapi/openapi.json +3587 -480
- package/package.json +74 -74
package/dist/refs.js
CHANGED
|
@@ -156,30 +156,32 @@ function cloneResolved(hit) {
|
|
|
156
156
|
return { ...hit };
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
function substitute(value, objectType,
|
|
159
|
+
function substitute(value, objectType, replace) {
|
|
160
160
|
if (typeof value === "string") {
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
if (!value.trim())
|
|
162
|
+
return value;
|
|
163
|
+
const next = replace(value, objectType);
|
|
164
|
+
return next === undefined ? value : next;
|
|
163
165
|
}
|
|
164
166
|
if (!Array.isArray(value))
|
|
165
167
|
return value;
|
|
166
168
|
let changed = false;
|
|
167
169
|
const next = value.map((item) => {
|
|
168
|
-
if (typeof item !== "string")
|
|
170
|
+
if (typeof item !== "string" || !item.trim())
|
|
169
171
|
return item;
|
|
170
|
-
const
|
|
171
|
-
if (
|
|
172
|
+
const updated = replace(item, objectType);
|
|
173
|
+
if (updated === undefined)
|
|
172
174
|
return item;
|
|
173
175
|
changed = true;
|
|
174
|
-
return
|
|
176
|
+
return updated;
|
|
175
177
|
});
|
|
176
178
|
return changed ? next : value;
|
|
177
179
|
}
|
|
178
|
-
function expandDeepKey(value, key, objectType,
|
|
180
|
+
function expandDeepKey(value, key, objectType, replace) {
|
|
179
181
|
if (Array.isArray(value)) {
|
|
180
182
|
let changed = false;
|
|
181
183
|
const next = value.map((item) => {
|
|
182
|
-
const updated = expandDeepKey(item, key, objectType,
|
|
184
|
+
const updated = expandDeepKey(item, key, objectType, replace);
|
|
183
185
|
if (updated !== item)
|
|
184
186
|
changed = true;
|
|
185
187
|
return updated;
|
|
@@ -191,22 +193,20 @@ function expandDeepKey(value, key, objectType, resolved) {
|
|
|
191
193
|
let changed = false;
|
|
192
194
|
const next = {};
|
|
193
195
|
for (const [childKey, child] of Object.entries(value)) {
|
|
194
|
-
const updated = childKey === key
|
|
195
|
-
? substitute(child, objectType, resolved)
|
|
196
|
-
: expandDeepKey(child, key, objectType, resolved);
|
|
196
|
+
const updated = childKey === key ? substitute(child, objectType, replace) : expandDeepKey(child, key, objectType, replace);
|
|
197
197
|
if (updated !== child)
|
|
198
198
|
changed = true;
|
|
199
199
|
next[childKey] = updated;
|
|
200
200
|
}
|
|
201
201
|
return changed ? next : value;
|
|
202
202
|
}
|
|
203
|
-
function expandAt(value, segments, objectType,
|
|
203
|
+
function expandAt(value, segments, objectType, replace) {
|
|
204
204
|
if (segments.length === 0)
|
|
205
|
-
return substitute(value, objectType,
|
|
205
|
+
return substitute(value, objectType, replace);
|
|
206
206
|
if (Array.isArray(value)) {
|
|
207
207
|
let changed = false;
|
|
208
208
|
const next = value.map((item) => {
|
|
209
|
-
const updated = expandAt(item, segments, objectType,
|
|
209
|
+
const updated = expandAt(item, segments, objectType, replace);
|
|
210
210
|
if (updated !== item)
|
|
211
211
|
changed = true;
|
|
212
212
|
return updated;
|
|
@@ -216,28 +216,34 @@ function expandAt(value, segments, objectType, resolved) {
|
|
|
216
216
|
if (!isPlain(value) || !Object.prototype.hasOwnProperty.call(value, segments[0]))
|
|
217
217
|
return value;
|
|
218
218
|
const key = segments[0];
|
|
219
|
-
const updated = expandAt(value[key], segments.slice(1), objectType,
|
|
219
|
+
const updated = expandAt(value[key], segments.slice(1), objectType, replace);
|
|
220
220
|
if (updated === value[key])
|
|
221
221
|
return value;
|
|
222
222
|
return { ...value, [key]: updated };
|
|
223
223
|
}
|
|
224
|
-
/**
|
|
225
|
-
export function
|
|
226
|
-
const refs = referenceFields(fields);
|
|
227
|
-
if (refs.length === 0 || resolved.size === 0)
|
|
228
|
-
return data;
|
|
224
|
+
/** Rewrite every reference id named by `refersTo` fields with `replace`. */
|
|
225
|
+
export function rewriteReferenceData(data, fields, replace) {
|
|
229
226
|
let current = data;
|
|
230
|
-
for (const field of
|
|
227
|
+
for (const field of referenceFields(fields)) {
|
|
231
228
|
const segments = dataSegments(field.path);
|
|
232
229
|
if (!segments)
|
|
233
230
|
continue;
|
|
234
231
|
current =
|
|
235
232
|
segments.length === 1
|
|
236
|
-
? expandDeepKey(current, segments[0], field.refersTo.objectType,
|
|
237
|
-
: expandAt(current, segments, field.refersTo.objectType,
|
|
233
|
+
? expandDeepKey(current, segments[0], field.refersTo.objectType, replace)
|
|
234
|
+
: expandAt(current, segments, field.refersTo.objectType, replace);
|
|
238
235
|
}
|
|
239
236
|
return current;
|
|
240
237
|
}
|
|
238
|
+
/** Replace record ids with the records already loaded for those ids. */
|
|
239
|
+
export function expandReferenceData(data, fields, resolved = NO_RESOLVED) {
|
|
240
|
+
if (referenceFields(fields).length === 0 || resolved.size === 0)
|
|
241
|
+
return data;
|
|
242
|
+
return rewriteReferenceData(data, fields, (id, objectType) => {
|
|
243
|
+
const hit = resolved.get(referenceKey(objectType, id));
|
|
244
|
+
return hit ? cloneResolved(hit) : undefined;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
241
247
|
function contentTypesToSearch(view) {
|
|
242
248
|
const ids = view.contentTypes.map((ct) => ct.id).filter((id) => id !== "relationships");
|
|
243
249
|
const leading = view.leadingContentType;
|
|
@@ -324,15 +330,19 @@ async function matchByField(upstream, scope, objectType, contentType, field, pen
|
|
|
324
330
|
* Match `recordId` first, then identifier fields declared on the leading content type.
|
|
325
331
|
* A failed lookup leaves that id unresolved.
|
|
326
332
|
*/
|
|
327
|
-
export async function loadResolvedReferences(upstream, scope, catalog, targets
|
|
333
|
+
export async function loadResolvedReferences(upstream, scope, catalog, targets,
|
|
334
|
+
/** Filled with every id that was looked up, found or not. */
|
|
335
|
+
attempted) {
|
|
328
336
|
const resolved = new Map();
|
|
329
337
|
for (const [objectType, rawIds] of targets) {
|
|
330
338
|
const view = findObjectType(catalog, objectType);
|
|
331
|
-
if (!view)
|
|
339
|
+
if (!view || view.resolution === "conflict")
|
|
332
340
|
continue;
|
|
333
341
|
const pending = new Set([...rawIds].filter((id) => id.trim()).slice(0, REF_ID_LIMIT));
|
|
334
342
|
if (pending.size === 0)
|
|
335
343
|
continue;
|
|
344
|
+
for (const id of pending)
|
|
345
|
+
attempted?.add(referenceKey(objectType, id));
|
|
336
346
|
const contentTypes = contentTypesToSearch(view);
|
|
337
347
|
for (const contentType of contentTypes) {
|
|
338
348
|
if (pending.size === 0)
|
package/dist/refs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,GAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAUxD,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,WAAW,GAAwC,IAAI,GAAG,EAAE,CAAC;AAEnE,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,QAAgB;IAC/D,OAAO,GAAG,UAAU,SAAS,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,CACL,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QACpC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,MAAM,IAAI,KAAK,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAA6D,EAAE,CACnE,OAAO,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,QAAQ;QAC9C,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACpC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/E,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;IACzC,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;IACpC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,KAA2B;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,UAAkB,EAAE,IAA8B;IAChF,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,GAAW,EAAE,UAAkB,EAAE,IAA8B;IACrG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,QAAQ,KAAK,GAAG;YAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;;YACjD,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,KAAc,EACd,QAAkB,EAClB,UAAkB,EAClB,IAA8B;IAE9B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAC5B,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,KAAqC;IAC7E,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAA8B,EAC9B,KAA+C;IAE/C,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,uBAAuB,CACrC,QAAwC,EACxC,YAAsC,EACtC,KAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;;oBAC1F,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAmB;IACxC,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,UAAkB,EAAE,QAA6C;IACnG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,GAAW,EACX,UAAkB,EAClB,QAA6C;IAE7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,OAAO,GACX,QAAQ,KAAK,GAAG;YACd,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CACf,KAAc,EACd,QAAkB,EAClB,UAAkB,EAClB,QAA6C;IAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9E,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CACjC,IAAa,EACb,MAAmB,EACnB,WAAgD,WAAW;IAE3D,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,OAAO;YACL,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACnB,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;gBAC3E,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAoB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACxC,MAAM,OAAO,GACX,OAAO,IAAI,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClG,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,MAAM,CAAI,KAAU,EAAE,IAAY;IACzC,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACpG,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB,EAAE,WAAmB,EAAE,KAAa,EAAE,GAAa,EAAE,MAAe;IACzG,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,IAAY;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAAkB,EAClB,KAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,KAAa,EACb,OAAoB,EACpB,QAAqC;IAErC,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,IAAI,MAA0B,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,aAAa;oBAAE,OAAO;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,OAAO,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAChD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC9C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAChC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;oBAChB,QAAQ,EAAE,QAAQ,IAAI,OAAO;oBAC7B,UAAU;oBACV,WAAW;oBACX,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;YAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM;YAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAkB,EAClB,KAAkB,EAClB,OAAyB,EACzB,OAAiD;IAEjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACtF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QACjC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM;YAC9B,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM;YAC9B,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
|
package/dist/scope.d.ts
CHANGED
|
@@ -1,13 +1,36 @@
|
|
|
1
|
+
import type { AgentDirectory } from "./agent-directory.js";
|
|
1
2
|
export type ClientScope = {
|
|
2
3
|
orgId: string;
|
|
4
|
+
/** Effective agents sent to Memorix. `*` is expanded to the org's deployed agents. */
|
|
3
5
|
agentIds: string[];
|
|
4
6
|
caller: string;
|
|
7
|
+
/** What the caller sent in `x-memorix-agent-ids`. */
|
|
8
|
+
requestedAgentIds?: string[];
|
|
9
|
+
agentSelection?: "explicit" | "wildcard" | "implicit";
|
|
10
|
+
/** The org's deployed set. Absent when Memorix keeps no org agent record. */
|
|
11
|
+
deployedAgentIds?: string[];
|
|
12
|
+
/** Selected agents whose pack does not resolve. */
|
|
13
|
+
unresolvedAgentIds?: string[];
|
|
5
14
|
};
|
|
15
|
+
/** How a route uses `x-memorix-agent-ids`. */
|
|
16
|
+
export type AgentRequirement = "required" | "optional" | "none";
|
|
6
17
|
/** Org carried by a verified Authix token. A request org must be one of these. */
|
|
7
18
|
export declare function orgFromToken(organizationIds: string[], requestedOrgId: string): string;
|
|
8
|
-
export declare function scopeFromHeaders(headers: Record<string, string | string[] | undefined>, orgId?: string): ClientScope;
|
|
9
|
-
|
|
19
|
+
export declare function scopeFromHeaders(headers: Record<string, string | string[] | undefined>, orgId?: string, agents?: AgentRequirement): ClientScope;
|
|
20
|
+
/**
|
|
21
|
+
* Check the requested agents against the org's deployed set.
|
|
22
|
+
* `*` (or no header where the route allows it) selects every deployed agent.
|
|
23
|
+
* An installed agent the org has not deployed is `403 AGENT_NOT_DEPLOYED`; an id that is not installed is `400 AGENT_UNKNOWN`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveAgentSelection(scope: ClientScope, directory: AgentDirectory, agents: AgentRequirement): Promise<ClientScope>;
|
|
26
|
+
export type ScopeEcho = {
|
|
10
27
|
orgId: string;
|
|
11
28
|
agentIds: string[];
|
|
29
|
+
caller?: string;
|
|
30
|
+
requestedAgentIds?: string[];
|
|
31
|
+
agentSelection?: ClientScope["agentSelection"];
|
|
32
|
+
deployedAgentIds?: string[];
|
|
33
|
+
unresolvedAgentIds?: string[];
|
|
12
34
|
};
|
|
35
|
+
export declare function scopeBody(scope: ClientScope): ScopeEcho;
|
|
13
36
|
//# sourceMappingURL=scope.d.ts.map
|
package/dist/scope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACtD,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAehE,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAiBtF;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,KAAK,SAAsC,EAC3C,MAAM,GAAE,gBAA6B,GACpC,WAAW,CAab;AAMD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,WAAW,CAAC,CAqDtB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAUvD"}
|
package/dist/scope.js
CHANGED
|
@@ -26,21 +26,88 @@ export function orgFromToken(organizationIds, requestedOrgId) {
|
|
|
26
26
|
}
|
|
27
27
|
return requestedOrgId;
|
|
28
28
|
}
|
|
29
|
-
export function scopeFromHeaders(headers, orgId = header(headers, "x-memorix-org-id")) {
|
|
29
|
+
export function scopeFromHeaders(headers, orgId = header(headers, "x-memorix-org-id"), agents = "required") {
|
|
30
30
|
const agentIds = agentIdsOf(headers);
|
|
31
31
|
const caller = header(headers, "x-memorix-caller");
|
|
32
32
|
if (!orgId) {
|
|
33
33
|
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-org-id is required");
|
|
34
34
|
}
|
|
35
|
-
if (agentIds.length === 0) {
|
|
35
|
+
if (agentIds.length === 0 && agents === "required") {
|
|
36
36
|
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-agent-ids is required");
|
|
37
37
|
}
|
|
38
38
|
if (!caller) {
|
|
39
39
|
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-caller is required");
|
|
40
40
|
}
|
|
41
|
-
return { orgId, agentIds, caller };
|
|
41
|
+
return { orgId, agentIds: agents === "none" ? [] : agentIds, caller };
|
|
42
|
+
}
|
|
43
|
+
function sortedUnique(ids) {
|
|
44
|
+
return [...new Set(ids)].sort((a, b) => a.localeCompare(b));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check the requested agents against the org's deployed set.
|
|
48
|
+
* `*` (or no header where the route allows it) selects every deployed agent.
|
|
49
|
+
* An installed agent the org has not deployed is `403 AGENT_NOT_DEPLOYED`; an id that is not installed is `400 AGENT_UNKNOWN`.
|
|
50
|
+
*/
|
|
51
|
+
export async function resolveAgentSelection(scope, directory, agents) {
|
|
52
|
+
if (agents === "none")
|
|
53
|
+
return scope;
|
|
54
|
+
const requested = scope.agentIds;
|
|
55
|
+
const wildcard = requested.includes("*");
|
|
56
|
+
const implicit = requested.length === 0;
|
|
57
|
+
const selection = implicit ? "implicit" : wildcard ? "wildcard" : "explicit";
|
|
58
|
+
const deployed = await directory.deployed(scope.orgId, scope.caller);
|
|
59
|
+
if (deployed === null) {
|
|
60
|
+
return {
|
|
61
|
+
...scope,
|
|
62
|
+
requestedAgentIds: requested,
|
|
63
|
+
agentSelection: selection,
|
|
64
|
+
unresolvedAgentIds: [],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const deployedIds = deployed.map((agent) => agent.id);
|
|
68
|
+
const unresolved = new Set(deployed.filter((agent) => !agent.ok).map((agent) => agent.id));
|
|
69
|
+
let agentIds;
|
|
70
|
+
if (wildcard || implicit) {
|
|
71
|
+
if (deployedIds.length === 0 && !implicit) {
|
|
72
|
+
throw new ApiError(403, "AGENT_NOT_DEPLOYED", `no agents are recorded for org ${scope.orgId}`);
|
|
73
|
+
}
|
|
74
|
+
agentIds = deployedIds;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const missing = requested.filter((id) => !deployedIds.includes(id));
|
|
78
|
+
if (missing.length > 0) {
|
|
79
|
+
const installed = new Set((await directory.installed(scope.orgId, scope.caller)).map((agent) => agent.id));
|
|
80
|
+
const unknown = missing.filter((id) => !installed.has(id));
|
|
81
|
+
if (unknown.length > 0) {
|
|
82
|
+
throw new ApiError(400, "AGENT_UNKNOWN", `agent ${unknown.join(", ")} is not installed`, {
|
|
83
|
+
details: { agentIds: unknown },
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
throw new ApiError(403, "AGENT_NOT_DEPLOYED", deployedIds.length === 0
|
|
87
|
+
? `no agents are recorded for org ${scope.orgId}`
|
|
88
|
+
: `agent ${missing.join(", ")} is not deployed for org ${scope.orgId}`, { details: { agentIds: missing, deployedAgentIds: deployedIds } });
|
|
89
|
+
}
|
|
90
|
+
agentIds = requested;
|
|
91
|
+
}
|
|
92
|
+
agentIds = sortedUnique(agentIds);
|
|
93
|
+
return {
|
|
94
|
+
...scope,
|
|
95
|
+
agentIds,
|
|
96
|
+
requestedAgentIds: requested,
|
|
97
|
+
agentSelection: selection,
|
|
98
|
+
deployedAgentIds: deployedIds,
|
|
99
|
+
unresolvedAgentIds: agentIds.filter((id) => unresolved.has(id)),
|
|
100
|
+
};
|
|
42
101
|
}
|
|
43
102
|
export function scopeBody(scope) {
|
|
44
|
-
return {
|
|
103
|
+
return {
|
|
104
|
+
orgId: scope.orgId,
|
|
105
|
+
agentIds: scope.agentIds,
|
|
106
|
+
caller: scope.caller,
|
|
107
|
+
...(scope.requestedAgentIds ? { requestedAgentIds: scope.requestedAgentIds } : {}),
|
|
108
|
+
...(scope.agentSelection ? { agentSelection: scope.agentSelection } : {}),
|
|
109
|
+
...(scope.deployedAgentIds ? { deployedAgentIds: scope.deployedAgentIds } : {}),
|
|
110
|
+
...(scope.unresolvedAgentIds ? { unresolvedAgentIds: scope.unresolvedAgentIds } : {}),
|
|
111
|
+
};
|
|
45
112
|
}
|
|
46
113
|
//# sourceMappingURL=scope.js.map
|
package/dist/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Scoper } from "@x12i/memorix-scoper";
|
|
2
|
+
import { type MemorixTransport } from "@x12i/memorix-scoper-sdk";
|
|
3
|
+
import { type MemorixClient } from "@x12i/memorix-client";
|
|
4
|
+
import type { ScoperReasonerKind } from "./config.js";
|
|
5
|
+
import type { PeerChoice } from "./peers.js";
|
|
6
|
+
import { type ScoperHost } from "./scoper.js";
|
|
7
|
+
/**
|
|
8
|
+
* Scoper built in this process. The only module that imports the Scoper packages.
|
|
9
|
+
* `app.ts` loads it on demand, so a process that proxies a Scoper peer never loads them.
|
|
10
|
+
*/
|
|
11
|
+
export type CreateScoperHostOptions = {
|
|
12
|
+
memorixUrl: string;
|
|
13
|
+
reasoner?: ScoperReasonerKind;
|
|
14
|
+
functionsDir?: string;
|
|
15
|
+
functionsPackage?: string;
|
|
16
|
+
/** Ask the coder to write a function on a miss. Default false. */
|
|
17
|
+
learnFunctions?: boolean;
|
|
18
|
+
env?: NodeJS.ProcessEnv;
|
|
19
|
+
scoper?: Scoper;
|
|
20
|
+
/** Where this host sits. Default embedded, with no peer URL. */
|
|
21
|
+
peer?: PeerChoice;
|
|
22
|
+
};
|
|
23
|
+
export declare function createScoperHost(options: CreateScoperHostOptions): Promise<ScoperHost>;
|
|
24
|
+
/**
|
|
25
|
+
* Scoper data access goes through `@x12i/memorix-client`.
|
|
26
|
+
* The SDK calls this instead of its own fetch.
|
|
27
|
+
*/
|
|
28
|
+
export declare function memorixScoperTransport(client: Pick<MemorixClient, "explore" | "listObjectTypeKinds">): MemorixTransport;
|
|
29
|
+
//# sourceMappingURL=scoper-embedded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoper-embedded.d.ts","sourceRoot":"","sources":["../src/scoper-embedded.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EAEZ,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAML,KAAK,UAAU,EAEhB,MAAM,aAAa,CAAC;AAGrB;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8E5F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,qBAAqB,CAAC,GAC7D,gBAAgB,CAqFlB"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { createScoper, createScoperMcpServer, dispatcherOptionsFromEnv, } from "@x12i/memorix-scoper";
|
|
2
|
+
import { isScoperError, ScopeRequestSchema, ScoperError, SubjectDataRequestSchema, } from "@x12i/memorix-scoper-contracts";
|
|
3
|
+
import { parseObjectTypeCatalog, readSubjectData } from "@x12i/memorix-scoper-sdk";
|
|
4
|
+
import { createMemorixClient, MemorixClientError, } from "@x12i/memorix-client";
|
|
5
|
+
import { SCOPER_RELEASE, scoperErrorStatus, stripUntrusted, stripUntrustedRecord, } from "./scoper.js";
|
|
6
|
+
import { ApiError } from "./errors.js";
|
|
7
|
+
export async function createScoperHost(options) {
|
|
8
|
+
const reasoner = options.reasoner ?? "scripted";
|
|
9
|
+
const functionsDir = options.functionsDir?.trim() || undefined;
|
|
10
|
+
const functions = functionsDir
|
|
11
|
+
? await loadFunctions(functionsDir, options.functionsPackage, options.learnFunctions === true)
|
|
12
|
+
: undefined;
|
|
13
|
+
const env = options.env ?? process.env;
|
|
14
|
+
const scoper = options.scoper ??
|
|
15
|
+
createScoper({
|
|
16
|
+
sdkConfig: {
|
|
17
|
+
memorixBaseUrls: [options.memorixUrl.replace(/\/+$/, "")],
|
|
18
|
+
createMemorixClient: ({ baseUrl, context, headers }) => memorixScoperTransport(createMemorixClient({
|
|
19
|
+
baseUrl,
|
|
20
|
+
orgId: context.orgId,
|
|
21
|
+
agentIds: [...context.agentIds],
|
|
22
|
+
caller: context.caller,
|
|
23
|
+
...deploymentOf(headers),
|
|
24
|
+
})),
|
|
25
|
+
},
|
|
26
|
+
reasonerKind: reasoner,
|
|
27
|
+
...(reasoner === "ai-dispatcher"
|
|
28
|
+
? {
|
|
29
|
+
aiDispatcher: {
|
|
30
|
+
dispatcherOptions: dispatcherOptionsFromEnv(env),
|
|
31
|
+
model: env.SCOPER_AI_MODEL?.trim() || "openai/gpt-6-luna",
|
|
32
|
+
...providerOf(env.SCOPER_AI_PROVIDER),
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
: {}),
|
|
36
|
+
...(functions ? { functions } : {}),
|
|
37
|
+
});
|
|
38
|
+
const info = {
|
|
39
|
+
package: SCOPER_RELEASE.package,
|
|
40
|
+
version: SCOPER_RELEASE.version,
|
|
41
|
+
sdk: SCOPER_RELEASE.sdk,
|
|
42
|
+
functionsPackage: SCOPER_RELEASE.functionsPackage,
|
|
43
|
+
pagx: SCOPER_RELEASE.pagx,
|
|
44
|
+
reasoner,
|
|
45
|
+
functions: Boolean(functions),
|
|
46
|
+
aligned: {
|
|
47
|
+
memorixService: SCOPER_RELEASE.service,
|
|
48
|
+
memorixSkills: SCOPER_RELEASE.skills,
|
|
49
|
+
memorixClient: SCOPER_RELEASE.client,
|
|
50
|
+
aiDispatcher: SCOPER_RELEASE.aiDispatcher,
|
|
51
|
+
},
|
|
52
|
+
mode: "embedded",
|
|
53
|
+
source: options.peer?.source ?? "@x12i/memorix-scoper",
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
info,
|
|
57
|
+
scope(scope, body, call) {
|
|
58
|
+
return mapped(() => {
|
|
59
|
+
const request = ScopeRequestSchema.parse(stripUntrusted(body));
|
|
60
|
+
return scoper.scope(request, contextOf(scope, call));
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
subjectData(scope, body, call) {
|
|
64
|
+
return mapped(() => {
|
|
65
|
+
const request = SubjectDataRequestSchema.parse(stripUntrusted(body));
|
|
66
|
+
return readSubjectData(scoper.deps.sdk.forContext(contextOf(scope, call)), request);
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
tools(scope, call) {
|
|
70
|
+
return mapped(async () => {
|
|
71
|
+
const server = mcpServer(scoper, scope, call);
|
|
72
|
+
return server.listTools ? await server.listTools() : server.tools;
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
callTool(scope, call, name, args) {
|
|
76
|
+
return mapped(async () => mcpServer(scoper, scope, call).callTool(name, stripUntrustedRecord(args)));
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Scoper data access goes through `@x12i/memorix-client`.
|
|
82
|
+
* The SDK calls this instead of its own fetch.
|
|
83
|
+
*/
|
|
84
|
+
export function memorixScoperTransport(client) {
|
|
85
|
+
return {
|
|
86
|
+
async listObjectTypes() {
|
|
87
|
+
try {
|
|
88
|
+
return parseObjectTypeCatalog(await client.listObjectTypeKinds());
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
throw transportError(err, "listObjectTypes");
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
async getContent({ objectType, contentType, id, include }) {
|
|
95
|
+
try {
|
|
96
|
+
const body = asRecord(await client.explore.getContent({
|
|
97
|
+
objectType,
|
|
98
|
+
contentType,
|
|
99
|
+
recordId: id,
|
|
100
|
+
...(include?.markdown === true ? { include: { markdown: true } } : {}),
|
|
101
|
+
}));
|
|
102
|
+
return { record: asRecord(body?.record) };
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
throw transportError(err, "getContent");
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
async listContent({ objectType, contentType, limit, cursor, include }) {
|
|
109
|
+
try {
|
|
110
|
+
const body = asRecord(await client.explore.listContent({
|
|
111
|
+
objectType,
|
|
112
|
+
contentType,
|
|
113
|
+
...(limit != null ? { limit } : {}),
|
|
114
|
+
...(cursor ? { cursor } : {}),
|
|
115
|
+
...(include?.markdown === true ? { include: { markdown: true } } : {}),
|
|
116
|
+
}));
|
|
117
|
+
const records = Array.isArray(body?.records)
|
|
118
|
+
? body.records.filter((row) => isRecord(row))
|
|
119
|
+
: [];
|
|
120
|
+
const page = asRecord(body?.pageInfo);
|
|
121
|
+
const nextCursor = typeof page?.nextCursor === "string" ? page.nextCursor : null;
|
|
122
|
+
return { records, nextCursor };
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
throw transportError(err, "listContent");
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
async composeContent({ recordId, contentTypes }) {
|
|
129
|
+
try {
|
|
130
|
+
const body = await client.explore.composeData({
|
|
131
|
+
recordId,
|
|
132
|
+
explicit: true,
|
|
133
|
+
...(contentTypes?.length ? { contentTypes } : {}),
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
found: true,
|
|
137
|
+
objectType: body.objectType ?? null,
|
|
138
|
+
contents: body.contents ?? {},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
if (isNotFound(err)) {
|
|
143
|
+
return {
|
|
144
|
+
found: false,
|
|
145
|
+
code: "READ_NOT_FOUND",
|
|
146
|
+
message: err instanceof Error ? err.message : "subject not found",
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
throw transportError(err, "composeContent");
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
async patchMarkdown({ objectType, contentType, id, revision, markdown }) {
|
|
153
|
+
try {
|
|
154
|
+
await client.explore.writeContent({
|
|
155
|
+
objectType,
|
|
156
|
+
contentType,
|
|
157
|
+
op: "patch",
|
|
158
|
+
precondition: { kind: "revision", revision },
|
|
159
|
+
expectedRevision: revision,
|
|
160
|
+
record: { recordId: id },
|
|
161
|
+
patch: [{ op: "set", path: "_markdown", value: markdown }],
|
|
162
|
+
});
|
|
163
|
+
return { written: true };
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
throw transportError(err, "patchMarkdown");
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
async function mapped(call) {
|
|
172
|
+
try {
|
|
173
|
+
return await call();
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
if (isScoperError(err))
|
|
177
|
+
throw new ApiError(scoperErrorStatus(err.code), err.code, err.message);
|
|
178
|
+
throw err;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
async function loadFunctions(dir, packageName, learn) {
|
|
182
|
+
const mod = await import("@x12i/memorix-scoper-functions");
|
|
183
|
+
return mod.createScopeFunctions({
|
|
184
|
+
dir,
|
|
185
|
+
learn,
|
|
186
|
+
...(packageName?.trim() ? { packageName: packageName.trim() } : {}),
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
function providerOf(raw) {
|
|
190
|
+
const provider = raw?.trim();
|
|
191
|
+
if (provider === "openrouter" || provider === "bedrock" || provider === "openai")
|
|
192
|
+
return { provider };
|
|
193
|
+
return {};
|
|
194
|
+
}
|
|
195
|
+
function mcpServer(scoper, scope, call) {
|
|
196
|
+
return createScoperMcpServer({
|
|
197
|
+
scoper,
|
|
198
|
+
context: contextOf(scope, call),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function contextOf(scope, call) {
|
|
202
|
+
return {
|
|
203
|
+
orgId: scope.orgId,
|
|
204
|
+
agentIds: scope.agentIds,
|
|
205
|
+
caller: scope.caller,
|
|
206
|
+
traceId: call.traceId,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function deploymentOf(headers) {
|
|
210
|
+
const fromHeader = headers["x-memorix-deployment-identity"]?.trim();
|
|
211
|
+
const fromEnv = process.env.MEMORIX_DEPLOYMENT_IDENTITY?.trim();
|
|
212
|
+
const deploymentIdentity = fromHeader || fromEnv;
|
|
213
|
+
return deploymentIdentity ? { deploymentIdentity } : {};
|
|
214
|
+
}
|
|
215
|
+
function isRecord(value) {
|
|
216
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
217
|
+
}
|
|
218
|
+
function asRecord(value) {
|
|
219
|
+
return isRecord(value) ? value : null;
|
|
220
|
+
}
|
|
221
|
+
function isNotFound(err) {
|
|
222
|
+
if (err instanceof MemorixClientError && err.statusCode === 404)
|
|
223
|
+
return true;
|
|
224
|
+
if (!err || typeof err !== "object")
|
|
225
|
+
return false;
|
|
226
|
+
const code = "code" in err ? String(err.code) : "";
|
|
227
|
+
const status = "statusCode" in err ? Number(err.statusCode) : 0;
|
|
228
|
+
return status === 404 || code === "READ_NOT_FOUND" || code === "NOT_FOUND";
|
|
229
|
+
}
|
|
230
|
+
function transportError(err, op) {
|
|
231
|
+
if (err instanceof ScoperError)
|
|
232
|
+
return err;
|
|
233
|
+
if (isNotFound(err)) {
|
|
234
|
+
return new ScoperError("READ_NOT_FOUND", `${op}: subject not found`);
|
|
235
|
+
}
|
|
236
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
237
|
+
return new ScoperError("UPSTREAM_UNAVAILABLE", `${op}: ${message}`, { retryable: true });
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=scoper-embedded.js.map
|