@x12i/memorix-client-api 0.0.0-stage → 0.16.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 +97 -0
- package/dist/app.d.ts +64 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +412 -0
- package/dist/app.js.map +1 -0
- package/dist/authix.d.ts +9 -0
- package/dist/authix.d.ts.map +1 -0
- package/dist/authix.js +26 -0
- package/dist/authix.js.map +1 -0
- package/dist/catalog.d.ts +160 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +371 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +102 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +109 -0
- package/dist/config.js.map +1 -0
- package/dist/derived.d.ts +2 -0
- package/dist/derived.d.ts.map +1 -0
- package/dist/derived.js +35 -0
- package/dist/derived.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch.d.ts +17 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +741 -0
- package/dist/fetch.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/live-ops-nav.d.ts +2 -0
- package/dist/live-ops-nav.d.ts.map +1 -0
- package/dist/live-ops-nav.js +42 -0
- package/dist/live-ops-nav.js.map +1 -0
- package/dist/live.d.ts +20 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +8 -0
- package/dist/live.js.map +1 -0
- package/dist/markdown.d.ts +19 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +102 -0
- package/dist/markdown.js.map +1 -0
- package/dist/peers.d.ts +51 -0
- package/dist/peers.d.ts.map +1 -0
- package/dist/peers.js +127 -0
- package/dist/peers.js.map +1 -0
- package/dist/processed.d.ts +22 -0
- package/dist/processed.d.ts.map +1 -0
- package/dist/processed.js +397 -0
- package/dist/processed.js.map +1 -0
- package/dist/project.d.ts +25 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +76 -0
- package/dist/project.js.map +1 -0
- package/dist/reads-live-routes.d.ts +4 -0
- package/dist/reads-live-routes.d.ts.map +1 -0
- package/dist/reads-live-routes.js +56 -0
- package/dist/reads-live-routes.js.map +1 -0
- package/dist/reads-live-ui.d.ts +3 -0
- package/dist/reads-live-ui.d.ts.map +1 -0
- package/dist/reads-live-ui.js +204 -0
- package/dist/reads-live-ui.js.map +1 -0
- package/dist/reads-ring.d.ts +29 -0
- package/dist/reads-ring.d.ts.map +1 -0
- package/dist/reads-ring.js +44 -0
- package/dist/reads-ring.js.map +1 -0
- package/dist/refs.d.ts +24 -0
- package/dist/refs.d.ts.map +1 -0
- package/dist/refs.js +354 -0
- package/dist/refs.js.map +1 -0
- package/dist/request-countex.d.ts +53 -0
- package/dist/request-countex.d.ts.map +1 -0
- package/dist/request-countex.js +171 -0
- package/dist/request-countex.js.map +1 -0
- package/dist/scope.d.ts +13 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +46 -0
- package/dist/scope.js.map +1 -0
- package/dist/scoper.d.ts +75 -0
- package/dist/scoper.d.ts.map +1 -0
- package/dist/scoper.js +475 -0
- package/dist/scoper.js.map +1 -0
- package/dist/shaped-refs.d.ts +23 -0
- package/dist/shaped-refs.d.ts.map +1 -0
- package/dist/shaped-refs.js +395 -0
- package/dist/shaped-refs.js.map +1 -0
- package/dist/skills.d.ts +102 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +609 -0
- package/dist/skills.js.map +1 -0
- package/dist/story.d.ts +43 -0
- package/dist/story.d.ts.map +1 -0
- package/dist/story.js +121 -0
- package/dist/story.js.map +1 -0
- package/dist/upstream.d.ts +13 -0
- package/dist/upstream.d.ts.map +1 -0
- package/dist/upstream.js +58 -0
- package/dist/upstream.js.map +1 -0
- package/openapi/openapi.json +480 -0
- package/package.json +60 -6
- package/README.md +0 -3
package/dist/refs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process caller and route aggregates for GET /_live/api/request-stats.
|
|
3
|
+
* Memory only. /health and /_live are not counted.
|
|
4
|
+
*/
|
|
5
|
+
import type { FastifyInstance } from "fastify";
|
|
6
|
+
export declare const HTTP_REQUESTS_COUNTER_ID = "http_requests";
|
|
7
|
+
export type RequestStatsRow = {
|
|
8
|
+
caller: string;
|
|
9
|
+
method?: string;
|
|
10
|
+
route?: string;
|
|
11
|
+
statusClass?: string;
|
|
12
|
+
count: number;
|
|
13
|
+
latencyAvgMs?: number;
|
|
14
|
+
latencySumMs?: number;
|
|
15
|
+
lastAt?: string;
|
|
16
|
+
lastCaller?: string;
|
|
17
|
+
lastStatusCode?: number;
|
|
18
|
+
lastLatencyMs?: number;
|
|
19
|
+
};
|
|
20
|
+
export type LastCallRow = {
|
|
21
|
+
caller: string;
|
|
22
|
+
method: string;
|
|
23
|
+
route: string;
|
|
24
|
+
statusCode: number;
|
|
25
|
+
statusClass: string;
|
|
26
|
+
latencyMs: number;
|
|
27
|
+
at: string;
|
|
28
|
+
};
|
|
29
|
+
export type RequestStatsPayload = {
|
|
30
|
+
ok: true;
|
|
31
|
+
enabled: true;
|
|
32
|
+
storage: "memory";
|
|
33
|
+
counterId: string;
|
|
34
|
+
callers: RequestStatsRow[];
|
|
35
|
+
apis: RequestStatsRow[];
|
|
36
|
+
byCaller: RequestStatsRow[];
|
|
37
|
+
byCallerRoute: RequestStatsRow[];
|
|
38
|
+
byCallerMinute: RequestStatsRow[];
|
|
39
|
+
byCallerHour: RequestStatsRow[];
|
|
40
|
+
lastCalls: LastCallRow[];
|
|
41
|
+
windows: {
|
|
42
|
+
all: true;
|
|
43
|
+
hour: string;
|
|
44
|
+
minute: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export declare function attachRequestCountex(app: FastifyInstance): {
|
|
48
|
+
queryStats: () => RequestStatsPayload;
|
|
49
|
+
};
|
|
50
|
+
export declare function registerRequestStatsRoute(app: FastifyInstance, handle: {
|
|
51
|
+
queryStats: () => RequestStatsPayload;
|
|
52
|
+
}): void;
|
|
53
|
+
//# sourceMappingURL=request-countex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-countex.d.ts","sourceRoot":"","sources":["../src/request-countex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAE7E,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAyBxD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,CAAC;AAgFF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG;IAC1D,UAAU,EAAE,MAAM,mBAAmB,CAAC;CACvC,CAkGA;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;CAAE,GAChD,IAAI,CAEN"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
export const HTTP_REQUESTS_COUNTER_ID = "http_requests";
|
|
2
|
+
function pad2(n) {
|
|
3
|
+
return String(n).padStart(2, "0");
|
|
4
|
+
}
|
|
5
|
+
function minuteKey(d) {
|
|
6
|
+
return `${d.getUTCFullYear()}-${pad2(d.getUTCMonth() + 1)}-${pad2(d.getUTCDate())}T${pad2(d.getUTCHours())}:${pad2(d.getUTCMinutes())}`;
|
|
7
|
+
}
|
|
8
|
+
function hourKey(d) {
|
|
9
|
+
return `${d.getUTCFullYear()}-${pad2(d.getUTCMonth() + 1)}-${pad2(d.getUTCDate())}T${pad2(d.getUTCHours())}`;
|
|
10
|
+
}
|
|
11
|
+
function statusClass(code) {
|
|
12
|
+
if (code >= 500)
|
|
13
|
+
return "5xx";
|
|
14
|
+
if (code >= 400)
|
|
15
|
+
return "4xx";
|
|
16
|
+
if (code >= 300)
|
|
17
|
+
return "3xx";
|
|
18
|
+
if (code >= 200)
|
|
19
|
+
return "2xx";
|
|
20
|
+
return "1xx";
|
|
21
|
+
}
|
|
22
|
+
function routeOf(req) {
|
|
23
|
+
const pattern = req.routeOptions?.url;
|
|
24
|
+
if (pattern && pattern !== "/*")
|
|
25
|
+
return pattern;
|
|
26
|
+
const path = (req.url?.split("?")[0] ?? req.url ?? "").trim() || "/";
|
|
27
|
+
return path.length > 200 ? `${path.slice(0, 200)}…` : path;
|
|
28
|
+
}
|
|
29
|
+
function countsAsApi(path) {
|
|
30
|
+
return path === "/api/v1" || path.startsWith("/api/v1/");
|
|
31
|
+
}
|
|
32
|
+
function headerValue(raw) {
|
|
33
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
34
|
+
return typeof value === "string" ? value.trim() : "";
|
|
35
|
+
}
|
|
36
|
+
function bump(map, key, hit, seed) {
|
|
37
|
+
const row = map.get(key) ?? {
|
|
38
|
+
caller: hit.caller,
|
|
39
|
+
count: 0,
|
|
40
|
+
latencySumMs: 0,
|
|
41
|
+
lastAt: hit.at,
|
|
42
|
+
lastCaller: hit.caller,
|
|
43
|
+
lastStatusCode: hit.statusCode,
|
|
44
|
+
lastLatencyMs: hit.latencyMs,
|
|
45
|
+
...seed,
|
|
46
|
+
};
|
|
47
|
+
row.count += 1;
|
|
48
|
+
row.latencySumMs += hit.latencyMs;
|
|
49
|
+
if (hit.at >= row.lastAt) {
|
|
50
|
+
row.lastAt = hit.at;
|
|
51
|
+
row.lastCaller = hit.caller;
|
|
52
|
+
row.lastStatusCode = hit.statusCode;
|
|
53
|
+
row.lastLatencyMs = hit.latencyMs;
|
|
54
|
+
}
|
|
55
|
+
map.set(key, row);
|
|
56
|
+
}
|
|
57
|
+
function toRows(map) {
|
|
58
|
+
return [...map.values()]
|
|
59
|
+
.map((row) => ({
|
|
60
|
+
caller: row.caller,
|
|
61
|
+
...(row.method ? { method: row.method } : {}),
|
|
62
|
+
...(row.route ? { route: row.route } : {}),
|
|
63
|
+
...(row.statusClass ? { statusClass: row.statusClass } : {}),
|
|
64
|
+
count: row.count,
|
|
65
|
+
latencyAvgMs: row.count > 0 ? Math.round((row.latencySumMs / row.count) * 100) / 100 : 0,
|
|
66
|
+
latencySumMs: row.latencySumMs,
|
|
67
|
+
lastAt: row.lastAt,
|
|
68
|
+
lastCaller: row.lastCaller,
|
|
69
|
+
lastStatusCode: row.lastStatusCode,
|
|
70
|
+
lastLatencyMs: row.lastLatencyMs,
|
|
71
|
+
}))
|
|
72
|
+
.sort((a, b) => b.count - a.count || a.caller.localeCompare(b.caller));
|
|
73
|
+
}
|
|
74
|
+
export function attachRequestCountex(app) {
|
|
75
|
+
const callers = new Map();
|
|
76
|
+
const apis = new Map();
|
|
77
|
+
const byCaller = new Map();
|
|
78
|
+
const byCallerRoute = new Map();
|
|
79
|
+
const byMinute = new Map();
|
|
80
|
+
const byHour = new Map();
|
|
81
|
+
const lastByApi = new Map();
|
|
82
|
+
app.addHook("onRequest", async (req) => {
|
|
83
|
+
req._requestCountexStartedAt = Date.now();
|
|
84
|
+
});
|
|
85
|
+
app.addHook("onResponse", async (req, reply) => {
|
|
86
|
+
record(req, reply);
|
|
87
|
+
});
|
|
88
|
+
function record(req, reply) {
|
|
89
|
+
if (req.method === "OPTIONS")
|
|
90
|
+
return;
|
|
91
|
+
const path = (req.url?.split("?")[0] ?? "").trim() || "/";
|
|
92
|
+
if (!countsAsApi(path))
|
|
93
|
+
return;
|
|
94
|
+
const caller = headerValue(req.headers["x-memorix-caller"]) || "unknown";
|
|
95
|
+
const started = req._requestCountexStartedAt ?? Date.now();
|
|
96
|
+
const hit = {
|
|
97
|
+
caller,
|
|
98
|
+
method: req.method,
|
|
99
|
+
route: routeOf(req),
|
|
100
|
+
statusClass: statusClass(reply.statusCode),
|
|
101
|
+
statusCode: reply.statusCode,
|
|
102
|
+
latencyMs: Math.max(0, Date.now() - started),
|
|
103
|
+
at: new Date().toISOString(),
|
|
104
|
+
};
|
|
105
|
+
bump(callers, caller, hit, { caller });
|
|
106
|
+
bump(apis, `${hit.method}\0${hit.route}`, hit, {
|
|
107
|
+
method: hit.method,
|
|
108
|
+
route: hit.route,
|
|
109
|
+
});
|
|
110
|
+
bump(byCaller, `${caller}\0${hit.statusClass}`, hit, { statusClass: hit.statusClass });
|
|
111
|
+
bump(byCallerRoute, `${caller}\0${hit.method}\0${hit.route}\0${hit.statusClass}`, hit, { method: hit.method, route: hit.route, statusClass: hit.statusClass });
|
|
112
|
+
const now = new Date();
|
|
113
|
+
const minute = minuteKey(now);
|
|
114
|
+
const hour = hourKey(now);
|
|
115
|
+
for (const key of [...byMinute.keys()]) {
|
|
116
|
+
if (key !== minute)
|
|
117
|
+
byMinute.delete(key);
|
|
118
|
+
}
|
|
119
|
+
for (const key of [...byHour.keys()]) {
|
|
120
|
+
if (key !== hour)
|
|
121
|
+
byHour.delete(key);
|
|
122
|
+
}
|
|
123
|
+
const minuteMap = byMinute.get(minute) ?? new Map();
|
|
124
|
+
byMinute.set(minute, minuteMap);
|
|
125
|
+
bump(minuteMap, `${caller}\0${hit.method}\0${hit.route}`, hit, {
|
|
126
|
+
method: hit.method,
|
|
127
|
+
route: hit.route,
|
|
128
|
+
});
|
|
129
|
+
const hourMap = byHour.get(hour) ?? new Map();
|
|
130
|
+
byHour.set(hour, hourMap);
|
|
131
|
+
bump(hourMap, `${caller}\0${hit.method}\0${hit.route}`, hit, {
|
|
132
|
+
method: hit.method,
|
|
133
|
+
route: hit.route,
|
|
134
|
+
});
|
|
135
|
+
lastByApi.set(`${hit.method}\0${hit.route}`, {
|
|
136
|
+
caller: hit.caller,
|
|
137
|
+
method: hit.method,
|
|
138
|
+
route: hit.route,
|
|
139
|
+
statusCode: hit.statusCode,
|
|
140
|
+
statusClass: hit.statusClass,
|
|
141
|
+
latencyMs: hit.latencyMs,
|
|
142
|
+
at: hit.at,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
queryStats: () => {
|
|
147
|
+
const now = new Date();
|
|
148
|
+
const minute = minuteKey(now);
|
|
149
|
+
const hour = hourKey(now);
|
|
150
|
+
const lastCalls = [...lastByApi.values()].sort((a, b) => (a.at < b.at ? 1 : a.at > b.at ? -1 : 0));
|
|
151
|
+
return {
|
|
152
|
+
ok: true,
|
|
153
|
+
enabled: true,
|
|
154
|
+
storage: "memory",
|
|
155
|
+
counterId: HTTP_REQUESTS_COUNTER_ID,
|
|
156
|
+
callers: toRows(callers),
|
|
157
|
+
apis: toRows(apis),
|
|
158
|
+
byCaller: toRows(byCaller),
|
|
159
|
+
byCallerRoute: toRows(byCallerRoute),
|
|
160
|
+
byCallerMinute: toRows(byMinute.get(minute) ?? new Map()),
|
|
161
|
+
byCallerHour: toRows(byHour.get(hour) ?? new Map()),
|
|
162
|
+
lastCalls,
|
|
163
|
+
windows: { all: true, hour, minute },
|
|
164
|
+
};
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export function registerRequestStatsRoute(app, handle) {
|
|
169
|
+
app.get("/_live/api/request-stats", async () => handle.queryStats());
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=request-countex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-countex.js","sourceRoot":"","sources":["../src/request-countex.ts"],"names":[],"mappings":"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"}
|
package/dist/scope.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ClientScope = {
|
|
2
|
+
orgId: string;
|
|
3
|
+
agentIds: string[];
|
|
4
|
+
caller: string;
|
|
5
|
+
};
|
|
6
|
+
/** Org carried by a verified Authix token. A request org must be one of these. */
|
|
7
|
+
export declare function orgFromToken(organizationIds: string[], requestedOrgId: string): string;
|
|
8
|
+
export declare function scopeFromHeaders(headers: Record<string, string | string[] | undefined>, orgId?: string): ClientScope;
|
|
9
|
+
export declare function scopeBody(scope: ClientScope): {
|
|
10
|
+
orgId: string;
|
|
11
|
+
agentIds: string[];
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAeF,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,GAC1C,WAAW,CAab;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAEnF"}
|
package/dist/scope.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ApiError } from "./errors.js";
|
|
2
|
+
function header(headers, name) {
|
|
3
|
+
const raw = headers[name] ?? headers[name.toLowerCase()];
|
|
4
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
5
|
+
return typeof value === "string" ? value.trim() : "";
|
|
6
|
+
}
|
|
7
|
+
function agentIdsOf(headers) {
|
|
8
|
+
return header(headers, "x-memorix-agent-ids")
|
|
9
|
+
.split(",")
|
|
10
|
+
.map((id) => id.trim())
|
|
11
|
+
.filter(Boolean);
|
|
12
|
+
}
|
|
13
|
+
/** Org carried by a verified Authix token. A request org must be one of these. */
|
|
14
|
+
export function orgFromToken(organizationIds, requestedOrgId) {
|
|
15
|
+
const orgs = organizationIds.map((id) => id.trim()).filter(Boolean);
|
|
16
|
+
if (orgs.length === 0) {
|
|
17
|
+
throw new ApiError(403, "SCOPE_FORBIDDEN", "token has no organization");
|
|
18
|
+
}
|
|
19
|
+
if (!requestedOrgId) {
|
|
20
|
+
if (orgs.length === 1)
|
|
21
|
+
return orgs[0];
|
|
22
|
+
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-org-id is required when the token lists more than one organization");
|
|
23
|
+
}
|
|
24
|
+
if (!orgs.includes(requestedOrgId)) {
|
|
25
|
+
throw new ApiError(403, "SCOPE_FORBIDDEN", "token does not include this organization");
|
|
26
|
+
}
|
|
27
|
+
return requestedOrgId;
|
|
28
|
+
}
|
|
29
|
+
export function scopeFromHeaders(headers, orgId = header(headers, "x-memorix-org-id")) {
|
|
30
|
+
const agentIds = agentIdsOf(headers);
|
|
31
|
+
const caller = header(headers, "x-memorix-caller");
|
|
32
|
+
if (!orgId) {
|
|
33
|
+
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-org-id is required");
|
|
34
|
+
}
|
|
35
|
+
if (agentIds.length === 0) {
|
|
36
|
+
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-agent-ids is required");
|
|
37
|
+
}
|
|
38
|
+
if (!caller) {
|
|
39
|
+
throw new ApiError(400, "SCOPE_INVALID", "x-memorix-caller is required");
|
|
40
|
+
}
|
|
41
|
+
return { orgId, agentIds, caller };
|
|
42
|
+
}
|
|
43
|
+
export function scopeBody(scope) {
|
|
44
|
+
return { orgId: scope.orgId, agentIds: scope.agentIds };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQvC,SAAS,MAAM,CAAC,OAAsD,EAAE,IAAY;IAClF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,OAAsD;IACxE,OAAO,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC;SAC1C,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,eAAyB,EAAE,cAAsB;IAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAE,CAAC;QACvC,MAAM,IAAI,QAAQ,CAChB,GAAG,EACH,eAAe,EACf,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAsD,EACtD,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAE3C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
|
package/dist/scoper.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { FastifyInstance, FastifyRequest } from "fastify";
|
|
2
|
+
import { SCOPER_MCP_TOOL_NAMES, type Scoper } from "@x12i/memorix-scoper";
|
|
3
|
+
import { type MemorixTransport } from "@x12i/memorix-scoper-sdk";
|
|
4
|
+
import { type MemorixClient } from "@x12i/memorix-client";
|
|
5
|
+
import type { PeerChoice } from "./peers.js";
|
|
6
|
+
import type { ClientScope } from "./scope.js";
|
|
7
|
+
import type { ScoperReasonerKind } from "./config.js";
|
|
8
|
+
/** Published packages this process hosts. Skills 0.6.0 uses the same Scoper. */
|
|
9
|
+
export declare const SCOPER_RELEASE: {
|
|
10
|
+
readonly package: "@x12i/memorix-scoper";
|
|
11
|
+
readonly version: "2.3.0";
|
|
12
|
+
readonly sdk: "2.1.2";
|
|
13
|
+
readonly functionsPackage: "0.2.0";
|
|
14
|
+
readonly pagx: "1.1.0";
|
|
15
|
+
readonly skills: "0.6.0";
|
|
16
|
+
readonly service: "3.17.0";
|
|
17
|
+
readonly client: "3.16.3";
|
|
18
|
+
readonly aiDispatcher: "2.4.1";
|
|
19
|
+
};
|
|
20
|
+
export { SCOPER_MCP_TOOL_NAMES };
|
|
21
|
+
export type { ScoperReasonerKind };
|
|
22
|
+
export type ScoperHostInfo = {
|
|
23
|
+
package: typeof SCOPER_RELEASE.package;
|
|
24
|
+
version: string;
|
|
25
|
+
sdk: string;
|
|
26
|
+
functionsPackage: string;
|
|
27
|
+
pagx: string;
|
|
28
|
+
reasoner: ScoperReasonerKind;
|
|
29
|
+
/** True when `createScoper({ functions })` received saved query and scope functions. */
|
|
30
|
+
functions: boolean;
|
|
31
|
+
aligned: {
|
|
32
|
+
memorixService: typeof SCOPER_RELEASE.service;
|
|
33
|
+
memorixSkills: typeof SCOPER_RELEASE.skills;
|
|
34
|
+
memorixClient: typeof SCOPER_RELEASE.client;
|
|
35
|
+
aiDispatcher: typeof SCOPER_RELEASE.aiDispatcher;
|
|
36
|
+
};
|
|
37
|
+
/** `embedded` hosts Scoper here. `external` proxies a compatible peer. */
|
|
38
|
+
mode?: "embedded" | "external";
|
|
39
|
+
source?: string;
|
|
40
|
+
/** Set when `mode` is `external`. */
|
|
41
|
+
baseUrl?: string;
|
|
42
|
+
};
|
|
43
|
+
export type ScoperHost = {
|
|
44
|
+
info: ScoperHostInfo;
|
|
45
|
+
scope(scope: ClientScope, body: unknown, traceId: string): Promise<unknown>;
|
|
46
|
+
subjectData(scope: ClientScope, body: unknown, traceId: string): Promise<unknown>;
|
|
47
|
+
tools(scope: ClientScope, traceId: string): Promise<unknown>;
|
|
48
|
+
callTool(scope: ClientScope, traceId: string, name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
49
|
+
};
|
|
50
|
+
export type CreateScoperHostOptions = {
|
|
51
|
+
memorixUrl: string;
|
|
52
|
+
reasoner?: ScoperReasonerKind;
|
|
53
|
+
functionsDir?: string;
|
|
54
|
+
functionsPackage?: string;
|
|
55
|
+
/** Ask the coder to write a function on a miss. Default false. */
|
|
56
|
+
learnFunctions?: boolean;
|
|
57
|
+
env?: NodeJS.ProcessEnv;
|
|
58
|
+
scoper?: Scoper;
|
|
59
|
+
/** Where this host sits. Default embedded, with no peer URL. */
|
|
60
|
+
peer?: PeerChoice;
|
|
61
|
+
};
|
|
62
|
+
export declare function createScoperHost(options: CreateScoperHostOptions): Promise<ScoperHost>;
|
|
63
|
+
/**
|
|
64
|
+
* Scoper data access goes through `@x12i/memorix-client`.
|
|
65
|
+
* The SDK calls this instead of its own fetch.
|
|
66
|
+
*/
|
|
67
|
+
export declare function memorixScoperTransport(client: Pick<MemorixClient, "explore">): MemorixTransport;
|
|
68
|
+
/** Proxy scope, subject data, and MCP tool calls. This process does not build a Scoper. */
|
|
69
|
+
export declare function createExternalScoperHost(peer: PeerChoice, fetchImpl?: typeof fetch): ScoperHost;
|
|
70
|
+
export type ScoperRouteOptions = {
|
|
71
|
+
host: ScoperHost;
|
|
72
|
+
scopeFor: (req: FastifyRequest) => Promise<ClientScope>;
|
|
73
|
+
};
|
|
74
|
+
export declare function registerScoperRoutes(app: FastifyInstance, options: ScoperRouteOptions): void;
|
|
75
|
+
//# sourceMappingURL=scoper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoper.d.ts","sourceRoot":"","sources":["../src/scoper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAIL,qBAAqB,EACrB,KAAK,MAAM,EAEZ,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,gFAAgF;AAChF,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAKjC,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,OAAO,cAAc,CAAC,OAAO,CAAC;QAC9C,aAAa,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;QAC5C,aAAa,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;QAC5C,YAAY,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC;KAClD,CAAC;IACF,0EAA0E;IAC1E,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,QAAQ,CACN,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEF,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,CA0E5F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,gBAAgB,CA8E/F;AAED,2FAA2F;AAC3F,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,OAAO,KAAa,GAC9B,UAAU,CAmEZ;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAiC5F"}
|