@remnic/core 9.25.7 → 9.26.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/dist/access-admin-ops-surface.d.ts +1 -1
- package/dist/access-admin-ops-surface.js +41 -41
- package/dist/access-audit.js +2 -2
- package/dist/access-authorization-probe.d.ts +1 -1
- package/dist/access-authorization-probe.js +42 -42
- package/dist/access-boundary.d.ts +1 -1
- package/dist/access-boundary.js +41 -41
- package/dist/access-cli.js +98 -97
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http-lcm-compaction.d.ts +130 -0
- package/dist/access-http-lcm-compaction.js +10 -0
- package/dist/access-http.d.ts +1 -1
- package/dist/access-http.js +53 -52
- package/dist/access-identity-continuity-surface.js +41 -41
- package/dist/access-lcm-surface.d.ts +1 -1
- package/dist/access-lcm-surface.js +41 -41
- package/dist/access-mcp.d.ts +1 -1
- package/dist/access-mcp.js +47 -47
- package/dist/access-namespace-preflight.js +41 -41
- package/dist/access-observe-write-surface.d.ts +1 -1
- package/dist/access-observe-write-surface.js +41 -41
- package/dist/access-operations-batch.js +43 -43
- package/dist/access-operations.d.ts +4 -4
- package/dist/access-operations.js +45 -45
- package/dist/access-recall-concurrency.d.ts +1 -1
- package/dist/access-recall-concurrency.js +41 -41
- package/dist/access-recall-response.d.ts +1 -1
- package/dist/access-recall-response.js +41 -41
- package/dist/access-recall-surface.d.ts +1 -1
- package/dist/access-recall-surface.js +41 -41
- package/dist/access-schema.d.ts +92 -77
- package/dist/access-schema.js +8 -8
- package/dist/{access-service-CIdWkP6J.d.ts → access-service-DL8FJnTj.d.ts} +1 -1
- package/dist/access-service.d.ts +1 -1
- package/dist/access-service.js +41 -41
- package/dist/access-surface-catalog.d.ts +1 -1
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/registry.js +3 -3
- package/dist/{auto-sync-5OE5QOZB.js → auto-sync-UPTUVE4X.js} +3 -3
- package/dist/briefing.js +5 -5
- package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
- package/dist/capsule-crypto-YO5QJ6L3.js.map +1 -0
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +11 -11
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-JBPKEARU.js → chunk-2QSZNTDO.js} +7 -7
- package/dist/{chunk-BL4JHZSO.js → chunk-2XP3PWL3.js} +40 -40
- package/dist/{chunk-AQ2ZQYDI.js → chunk-4KKV7W62.js} +6 -6
- package/dist/chunk-4Z4XNEWZ.js +86 -0
- package/dist/chunk-4Z4XNEWZ.js.map +1 -0
- package/dist/{chunk-32XTXKIA.js → chunk-67DSDRUB.js} +22 -14
- package/dist/chunk-67DSDRUB.js.map +1 -0
- package/dist/{chunk-2PHX3I5C.js → chunk-6NNNURLK.js} +8 -8
- package/dist/{chunk-BLAKS3CP.js → chunk-77CNV7DY.js} +4 -4
- package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
- package/dist/{chunk-227UFSEQ.js → chunk-7RZJWZ46.js} +5 -5
- package/dist/{chunk-WIGBTWXA.js → chunk-7XXCIO6X.js} +2 -2
- package/dist/{chunk-7CPOZH6Y.js → chunk-AJ7QCSIS.js} +2 -2
- package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
- package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
- package/dist/{chunk-UMFLAACL.js → chunk-E6EAB4J6.js} +9 -9
- package/dist/{chunk-WSEA52RI.js → chunk-EXM2Q555.js} +2 -2
- package/dist/{chunk-G6MGAE36.js → chunk-F6LSNPPB.js} +5 -5
- package/dist/{chunk-7KXQ44PA.js → chunk-FE5FKTCI.js} +5 -5
- package/dist/{chunk-5J7HJ7RT.js → chunk-H2PBM562.js} +2 -2
- package/dist/{chunk-OIE242WM.js → chunk-HBVOJNV4.js} +3 -3
- package/dist/{chunk-PS5OG75R.js → chunk-IHMXPG4P.js} +2 -2
- package/dist/{chunk-3UOSVTFR.js → chunk-JCVQV6QX.js} +11 -11
- package/dist/{chunk-P25IPRXP.js → chunk-KGTD2KZJ.js} +28 -8
- package/dist/chunk-KGTD2KZJ.js.map +1 -0
- package/dist/{chunk-NY6W6CJW.js → chunk-KPWLZBXZ.js} +2 -2
- package/dist/{chunk-W33DEUKR.js → chunk-LIIQPDFN.js} +2 -2
- package/dist/{chunk-D7MAWMMK.js → chunk-M2KGXXTL.js} +2 -2
- package/dist/{chunk-UOURUMBN.js → chunk-MIFF37NN.js} +2 -2
- package/dist/{chunk-37VPMR4E.js → chunk-NKDVXEFU.js} +6 -6
- package/dist/{chunk-ZPUFQGUF.js → chunk-PQPSZICJ.js} +5 -5
- package/dist/{chunk-ES36HTSC.js → chunk-PTN6UAUA.js} +4 -4
- package/dist/{chunk-KZVPTJNZ.js → chunk-PX7VDW7R.js} +75 -75
- package/dist/{chunk-S2BBISHU.js → chunk-RYHWZ52A.js} +4 -4
- package/dist/{chunk-ZN4UZWMT.js → chunk-SK3EYPKC.js} +2 -2
- package/dist/{chunk-TPYZ727G.js → chunk-SN3ZESWQ.js} +6 -6
- package/dist/{chunk-BUK2FXOL.js → chunk-TKBDJTXG.js} +4 -4
- package/dist/{chunk-4B77XSG5.js → chunk-UV72DEZD.js} +5 -5
- package/dist/{chunk-K4DP5KZA.js → chunk-UZK7VVPD.js} +14 -14
- package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
- package/dist/{chunk-SSYBI43M.js → chunk-VGEH3STZ.js} +6 -6
- package/dist/{chunk-NRV4Y3PM.js → chunk-W4FBGYGK.js} +1 -1
- package/dist/{chunk-IR4LGIH6.js → chunk-WMDRLTNA.js} +2 -2
- package/dist/{chunk-MU7ZHSZE.js → chunk-WZFAPHIK.js} +2 -2
- package/dist/{chunk-JA4HEXV7.js → chunk-XAAIUXJO.js} +2 -2
- package/dist/{chunk-VPSAVXHM.js → chunk-XNUBF6RF.js} +7 -7
- package/dist/{chunk-3CHQZVAL.js → chunk-Y6E37WRG.js} +5 -5
- package/dist/{chunk-E5A6C4A5.js → chunk-YN4AUGNF.js} +48 -48
- package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
- package/dist/{chunk-7IGWPXVC.js → chunk-ZHP4SUPB.js} +2 -2
- package/dist/{cli-Da5kesWC.d.ts → cli-BoouX6LX.d.ts} +1 -1
- package/dist/cli.d.ts +2 -2
- package/dist/cli.js +75 -74
- package/dist/compounding/engine.js +5 -5
- package/dist/connectors/codex-materialize-runner.js +5 -5
- package/dist/connectors/index.js +5 -5
- package/dist/conversation-index/backend.js +2 -2
- package/dist/corpus-watermark.js +16 -16
- package/dist/dashboard-runtime.js +2 -2
- package/dist/entity-retrieval.js +5 -5
- package/dist/extraction.js +3 -3
- package/dist/{first-start-migration-BKNGOFED.js → first-start-migration-LEXL3XYL.js} +4 -4
- package/dist/index.d.ts +391 -391
- package/dist/index.js +177 -176
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.js +9 -9
- package/dist/maintenance/memory-governance.js +6 -6
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
- package/dist/maintenance/rebuild-memory-projection.js +7 -7
- package/dist/mcp-memory-inspector-app.d.ts +1 -1
- package/dist/namespaces/migrate.js +15 -15
- package/dist/namespaces/search.js +9 -9
- package/dist/namespaces/storage.js +5 -5
- package/dist/operator-doctor-corpus.js +17 -17
- package/dist/operator-toolkit.js +28 -28
- package/dist/orchestration/maintenance.js +11 -11
- package/dist/orchestrator.js +98 -97
- package/dist/resume-bundles.js +1 -1
- package/dist/schemas.d.ts +76 -76
- package/dist/search/factory.js +8 -8
- package/dist/search/index.js +13 -13
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/orama-backend.js +2 -2
- package/dist/semantic-consolidation.js +7 -7
- package/dist/semantic-rule-promotion.js +5 -5
- package/dist/semantic-rule-verifier.js +6 -6
- package/dist/session-namespace-bindings.d.ts +27 -0
- package/dist/session-namespace-bindings.js +243 -0
- package/dist/session-namespace-bindings.js.map +1 -0
- package/dist/shared-context/manager.d.ts +8 -8
- package/dist/storage.js +4 -4
- package/dist/testing/lifecycle-matrix.d.ts +100 -0
- package/dist/testing/lifecycle-matrix.js +149 -0
- package/dist/testing/lifecycle-matrix.js.map +1 -0
- package/dist/transfer/backup.js +4 -4
- package/dist/transfer/capsule-export.js +4 -4
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/transfer/types.d.ts +66 -66
- package/dist/verified-recall.js +6 -6
- package/package.json +22 -2
- package/src/access-http-lcm-compaction.ts +116 -0
- package/src/access-http.test.ts +218 -0
- package/src/access-http.ts +8 -8
- package/src/access-schema-pi.test.ts +9 -0
- package/src/access-schema.ts +29 -4
- package/src/access-surface-catalog.test.ts +1 -0
- package/src/session-namespace-bindings.test.ts +358 -0
- package/src/session-namespace-bindings.ts +301 -0
- package/src/testing/lifecycle-matrix.ts +17 -7
- package/dist/chunk-32XTXKIA.js.map +0 -1
- package/dist/chunk-P25IPRXP.js.map +0 -1
- /package/dist/{capsule-crypto-7FJQINUR.js.map → access-http-lcm-compaction.js.map} +0 -0
- /package/dist/{auto-sync-5OE5QOZB.js.map → auto-sync-UPTUVE4X.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-2QSZNTDO.js.map} +0 -0
- /package/dist/{chunk-BL4JHZSO.js.map → chunk-2XP3PWL3.js.map} +0 -0
- /package/dist/{chunk-AQ2ZQYDI.js.map → chunk-4KKV7W62.js.map} +0 -0
- /package/dist/{chunk-2PHX3I5C.js.map → chunk-6NNNURLK.js.map} +0 -0
- /package/dist/{chunk-BLAKS3CP.js.map → chunk-77CNV7DY.js.map} +0 -0
- /package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
- /package/dist/{chunk-227UFSEQ.js.map → chunk-7RZJWZ46.js.map} +0 -0
- /package/dist/{chunk-WIGBTWXA.js.map → chunk-7XXCIO6X.js.map} +0 -0
- /package/dist/{chunk-7CPOZH6Y.js.map → chunk-AJ7QCSIS.js.map} +0 -0
- /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
- /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
- /package/dist/{chunk-UMFLAACL.js.map → chunk-E6EAB4J6.js.map} +0 -0
- /package/dist/{chunk-WSEA52RI.js.map → chunk-EXM2Q555.js.map} +0 -0
- /package/dist/{chunk-G6MGAE36.js.map → chunk-F6LSNPPB.js.map} +0 -0
- /package/dist/{chunk-7KXQ44PA.js.map → chunk-FE5FKTCI.js.map} +0 -0
- /package/dist/{chunk-5J7HJ7RT.js.map → chunk-H2PBM562.js.map} +0 -0
- /package/dist/{chunk-OIE242WM.js.map → chunk-HBVOJNV4.js.map} +0 -0
- /package/dist/{chunk-PS5OG75R.js.map → chunk-IHMXPG4P.js.map} +0 -0
- /package/dist/{chunk-3UOSVTFR.js.map → chunk-JCVQV6QX.js.map} +0 -0
- /package/dist/{chunk-NY6W6CJW.js.map → chunk-KPWLZBXZ.js.map} +0 -0
- /package/dist/{chunk-W33DEUKR.js.map → chunk-LIIQPDFN.js.map} +0 -0
- /package/dist/{chunk-D7MAWMMK.js.map → chunk-M2KGXXTL.js.map} +0 -0
- /package/dist/{chunk-UOURUMBN.js.map → chunk-MIFF37NN.js.map} +0 -0
- /package/dist/{chunk-37VPMR4E.js.map → chunk-NKDVXEFU.js.map} +0 -0
- /package/dist/{chunk-ZPUFQGUF.js.map → chunk-PQPSZICJ.js.map} +0 -0
- /package/dist/{chunk-ES36HTSC.js.map → chunk-PTN6UAUA.js.map} +0 -0
- /package/dist/{chunk-KZVPTJNZ.js.map → chunk-PX7VDW7R.js.map} +0 -0
- /package/dist/{chunk-S2BBISHU.js.map → chunk-RYHWZ52A.js.map} +0 -0
- /package/dist/{chunk-ZN4UZWMT.js.map → chunk-SK3EYPKC.js.map} +0 -0
- /package/dist/{chunk-TPYZ727G.js.map → chunk-SN3ZESWQ.js.map} +0 -0
- /package/dist/{chunk-BUK2FXOL.js.map → chunk-TKBDJTXG.js.map} +0 -0
- /package/dist/{chunk-4B77XSG5.js.map → chunk-UV72DEZD.js.map} +0 -0
- /package/dist/{chunk-K4DP5KZA.js.map → chunk-UZK7VVPD.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
- /package/dist/{chunk-SSYBI43M.js.map → chunk-VGEH3STZ.js.map} +0 -0
- /package/dist/{chunk-NRV4Y3PM.js.map → chunk-W4FBGYGK.js.map} +0 -0
- /package/dist/{chunk-IR4LGIH6.js.map → chunk-WMDRLTNA.js.map} +0 -0
- /package/dist/{chunk-MU7ZHSZE.js.map → chunk-WZFAPHIK.js.map} +0 -0
- /package/dist/{chunk-JA4HEXV7.js.map → chunk-XAAIUXJO.js.map} +0 -0
- /package/dist/{chunk-VPSAVXHM.js.map → chunk-XNUBF6RF.js.map} +0 -0
- /package/dist/{chunk-3CHQZVAL.js.map → chunk-Y6E37WRG.js.map} +0 -0
- /package/dist/{chunk-E5A6C4A5.js.map → chunk-YN4AUGNF.js.map} +0 -0
- /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
- /package/dist/{chunk-7IGWPXVC.js.map → chunk-ZHP4SUPB.js.map} +0 -0
- /package/dist/{first-start-migration-BKNGOFED.js.map → first-start-migration-LEXL3XYL.js.map} +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// src/access-http-lcm-compaction.ts
|
|
2
|
+
function respondLcmCompactionCapabilitiesHttp(response) {
|
|
3
|
+
response.statusCode = 200;
|
|
4
|
+
response.setHeader("content-type", "application/json; charset=utf-8");
|
|
5
|
+
response.end(JSON.stringify({ lcmCompactionFlushBatch: true }, null, 2));
|
|
6
|
+
}
|
|
7
|
+
async function handleLcmCompactionFlushHttp({
|
|
8
|
+
body,
|
|
9
|
+
service,
|
|
10
|
+
response,
|
|
11
|
+
ensureWriteRateLimitAvailable,
|
|
12
|
+
recordWriteRateLimitHit,
|
|
13
|
+
resolveNamespace,
|
|
14
|
+
defaultNamespace,
|
|
15
|
+
resolveRequestPrincipal,
|
|
16
|
+
respondJson
|
|
17
|
+
}) {
|
|
18
|
+
ensureWriteRateLimitAvailable();
|
|
19
|
+
const requestedNamespaces = body.namespaces;
|
|
20
|
+
if (requestedNamespaces === void 0) {
|
|
21
|
+
const result = await service.lcmCompactionFlush({
|
|
22
|
+
sessionKey: body.sessionKey,
|
|
23
|
+
namespace: resolveNamespace(body.namespace),
|
|
24
|
+
authenticatedPrincipal: resolveRequestPrincipal()
|
|
25
|
+
});
|
|
26
|
+
recordWriteRateLimitHit();
|
|
27
|
+
respondJson(response, 200, result);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const resolutionOutcomes = await Promise.allSettled(
|
|
31
|
+
requestedNamespaces.map(async (requestedNamespace) => {
|
|
32
|
+
const namespace = resolveNamespace(requestedNamespace);
|
|
33
|
+
return {
|
|
34
|
+
requestedNamespace,
|
|
35
|
+
namespace,
|
|
36
|
+
effectiveNamespace: namespace ?? defaultNamespace ?? ""
|
|
37
|
+
};
|
|
38
|
+
})
|
|
39
|
+
);
|
|
40
|
+
const uniqueResolvedNamespaces = [];
|
|
41
|
+
const queuedEffectiveNamespaces = /* @__PURE__ */ new Set();
|
|
42
|
+
for (const outcome of resolutionOutcomes) {
|
|
43
|
+
if (outcome.status === "fulfilled" && !queuedEffectiveNamespaces.has(outcome.value.effectiveNamespace)) {
|
|
44
|
+
queuedEffectiveNamespaces.add(outcome.value.effectiveNamespace);
|
|
45
|
+
uniqueResolvedNamespaces.push(outcome.value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const serviceOutcomes = await Promise.allSettled(
|
|
49
|
+
uniqueResolvedNamespaces.map(
|
|
50
|
+
({ namespace }) => service.lcmCompactionFlush({
|
|
51
|
+
sessionKey: body.sessionKey,
|
|
52
|
+
namespace,
|
|
53
|
+
authenticatedPrincipal: resolveRequestPrincipal()
|
|
54
|
+
})
|
|
55
|
+
)
|
|
56
|
+
);
|
|
57
|
+
const serviceOutcomesByEffectiveNamespace = /* @__PURE__ */ new Map();
|
|
58
|
+
for (const [index, resolved] of uniqueResolvedNamespaces.entries()) {
|
|
59
|
+
const serviceOutcome = serviceOutcomes[index];
|
|
60
|
+
if (serviceOutcome !== void 0) {
|
|
61
|
+
serviceOutcomesByEffectiveNamespace.set(resolved.effectiveNamespace, serviceOutcome);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const results = resolutionOutcomes.map((outcome, index) => {
|
|
65
|
+
const requestedNamespace = requestedNamespaces[index] ?? "";
|
|
66
|
+
if (outcome.status === "rejected") {
|
|
67
|
+
return { status: "rejected", requestedNamespace };
|
|
68
|
+
}
|
|
69
|
+
const serviceOutcome = serviceOutcomesByEffectiveNamespace.get(outcome.value.effectiveNamespace);
|
|
70
|
+
return serviceOutcome?.status === "fulfilled" ? { status: "fulfilled", requestedNamespace, result: serviceOutcome.value } : { status: "rejected", requestedNamespace };
|
|
71
|
+
});
|
|
72
|
+
recordWriteRateLimitHit();
|
|
73
|
+
respondJson(response, 200, {
|
|
74
|
+
enabled: results.every((result) => result.status === "fulfilled" && result.result.enabled !== false),
|
|
75
|
+
flushed: results.every((result) => result.status === "fulfilled" && result.result.flushed !== false),
|
|
76
|
+
sessionKey: body.sessionKey,
|
|
77
|
+
namespaces: requestedNamespaces,
|
|
78
|
+
results: results.map(({ requestedNamespace, ...result }) => ({ ...result, namespace: requestedNamespace }))
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
respondLcmCompactionCapabilitiesHttp,
|
|
84
|
+
handleLcmCompactionFlushHttp
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=chunk-4Z4XNEWZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/access-http-lcm-compaction.ts"],"sourcesContent":["import type { ServerResponse } from \"node:http\";\n\nimport type { LcmCompactionFlushRequest } from \"./access-schema.js\";\nimport type { EngramAccessLcmCompactionFlushResponse, EngramAccessService } from \"./access-service.js\";\n\ntype LcmCompactionService = Pick<EngramAccessService, \"lcmCompactionFlush\">;\ntype JsonResponder = (res: ServerResponse, status: number, payload: unknown) => void;\n\nexport interface LcmCompactionFlushHttpOptions {\n body: LcmCompactionFlushRequest;\n service: LcmCompactionService;\n response: ServerResponse;\n ensureWriteRateLimitAvailable: () => void;\n recordWriteRateLimitHit: () => void;\n resolveNamespace: (namespace?: string) => string | undefined;\n defaultNamespace?: string;\n resolveRequestPrincipal: () => string | undefined;\n respondJson: JsonResponder;\n}\n\nexport function respondLcmCompactionCapabilitiesHttp(response: ServerResponse): void {\n response.statusCode = 200;\n response.setHeader(\"content-type\", \"application/json; charset=utf-8\");\n response.end(JSON.stringify({ lcmCompactionFlushBatch: true }, null, 2));\n}\n\nexport async function handleLcmCompactionFlushHttp({\n body,\n service,\n response,\n ensureWriteRateLimitAvailable,\n recordWriteRateLimitHit,\n resolveNamespace,\n defaultNamespace,\n resolveRequestPrincipal,\n respondJson,\n}: LcmCompactionFlushHttpOptions): Promise<void> {\n ensureWriteRateLimitAvailable();\n const requestedNamespaces = body.namespaces;\n if (requestedNamespaces === undefined) {\n const result = await service.lcmCompactionFlush({\n sessionKey: body.sessionKey,\n namespace: resolveNamespace(body.namespace),\n authenticatedPrincipal: resolveRequestPrincipal(),\n });\n recordWriteRateLimitHit();\n respondJson(response, 200, result);\n return;\n }\n const resolutionOutcomes = await Promise.allSettled(\n requestedNamespaces.map(async (requestedNamespace) => {\n const namespace = resolveNamespace(requestedNamespace);\n return {\n requestedNamespace,\n namespace,\n effectiveNamespace: namespace ?? defaultNamespace ?? \"\",\n };\n })\n );\n const uniqueResolvedNamespaces: Array<{\n requestedNamespace: string;\n namespace: string | undefined;\n effectiveNamespace: string;\n }> = [];\n const queuedEffectiveNamespaces = new Set<string>();\n for (const outcome of resolutionOutcomes) {\n if (outcome.status === \"fulfilled\" && !queuedEffectiveNamespaces.has(outcome.value.effectiveNamespace)) {\n queuedEffectiveNamespaces.add(outcome.value.effectiveNamespace);\n uniqueResolvedNamespaces.push(outcome.value);\n }\n }\n const serviceOutcomes = await Promise.allSettled(\n uniqueResolvedNamespaces.map(({ namespace }) =>\n service.lcmCompactionFlush({\n sessionKey: body.sessionKey,\n namespace,\n authenticatedPrincipal: resolveRequestPrincipal(),\n })\n )\n );\n const serviceOutcomesByEffectiveNamespace = new Map<\n string,\n PromiseSettledResult<EngramAccessLcmCompactionFlushResponse>\n >();\n for (const [index, resolved] of uniqueResolvedNamespaces.entries()) {\n const serviceOutcome = serviceOutcomes[index];\n if (serviceOutcome !== undefined) {\n serviceOutcomesByEffectiveNamespace.set(resolved.effectiveNamespace, serviceOutcome);\n }\n }\n type BatchResult =\n | {\n requestedNamespace: string;\n status: \"fulfilled\";\n result: EngramAccessLcmCompactionFlushResponse;\n }\n | { requestedNamespace: string; status: \"rejected\" };\n const results: BatchResult[] = resolutionOutcomes.map((outcome, index) => {\n const requestedNamespace = requestedNamespaces[index] ?? \"\";\n if (outcome.status === \"rejected\") {\n return { status: \"rejected\", requestedNamespace };\n }\n const serviceOutcome = serviceOutcomesByEffectiveNamespace.get(outcome.value.effectiveNamespace);\n return serviceOutcome?.status === \"fulfilled\"\n ? { status: \"fulfilled\", requestedNamespace, result: serviceOutcome.value }\n : { status: \"rejected\", requestedNamespace };\n });\n recordWriteRateLimitHit();\n respondJson(response, 200, {\n enabled: results.every((result) => result.status === \"fulfilled\" && result.result.enabled !== false),\n flushed: results.every((result) => result.status === \"fulfilled\" && result.result.flushed !== false),\n sessionKey: body.sessionKey,\n namespaces: requestedNamespaces,\n results: results.map(({ requestedNamespace, ...result }) => ({ ...result, namespace: requestedNamespace })),\n });\n}\n"],"mappings":";AAoBO,SAAS,qCAAqC,UAAgC;AACnF,WAAS,aAAa;AACtB,WAAS,UAAU,gBAAgB,iCAAiC;AACpE,WAAS,IAAI,KAAK,UAAU,EAAE,yBAAyB,KAAK,GAAG,MAAM,CAAC,CAAC;AACzE;AAEA,eAAsB,6BAA6B;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiD;AAC/C,gCAA8B;AAC9B,QAAM,sBAAsB,KAAK;AACjC,MAAI,wBAAwB,QAAW;AACrC,UAAM,SAAS,MAAM,QAAQ,mBAAmB;AAAA,MAC9C,YAAY,KAAK;AAAA,MACjB,WAAW,iBAAiB,KAAK,SAAS;AAAA,MAC1C,wBAAwB,wBAAwB;AAAA,IAClD,CAAC;AACD,4BAAwB;AACxB,gBAAY,UAAU,KAAK,MAAM;AACjC;AAAA,EACF;AACA,QAAM,qBAAqB,MAAM,QAAQ;AAAA,IACvC,oBAAoB,IAAI,OAAO,uBAAuB;AACpD,YAAM,YAAY,iBAAiB,kBAAkB;AACrD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,oBAAoB,aAAa,oBAAoB;AAAA,MACvD;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,2BAID,CAAC;AACN,QAAM,4BAA4B,oBAAI,IAAY;AAClD,aAAW,WAAW,oBAAoB;AACxC,QAAI,QAAQ,WAAW,eAAe,CAAC,0BAA0B,IAAI,QAAQ,MAAM,kBAAkB,GAAG;AACtG,gCAA0B,IAAI,QAAQ,MAAM,kBAAkB;AAC9D,+BAAyB,KAAK,QAAQ,KAAK;AAAA,IAC7C;AAAA,EACF;AACA,QAAM,kBAAkB,MAAM,QAAQ;AAAA,IACpC,yBAAyB;AAAA,MAAI,CAAC,EAAE,UAAU,MACxC,QAAQ,mBAAmB;AAAA,QACzB,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,wBAAwB,wBAAwB;AAAA,MAClD,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,sCAAsC,oBAAI,IAG9C;AACF,aAAW,CAAC,OAAO,QAAQ,KAAK,yBAAyB,QAAQ,GAAG;AAClE,UAAM,iBAAiB,gBAAgB,KAAK;AAC5C,QAAI,mBAAmB,QAAW;AAChC,0CAAoC,IAAI,SAAS,oBAAoB,cAAc;AAAA,IACrF;AAAA,EACF;AAQA,QAAM,UAAyB,mBAAmB,IAAI,CAAC,SAAS,UAAU;AACxE,UAAM,qBAAqB,oBAAoB,KAAK,KAAK;AACzD,QAAI,QAAQ,WAAW,YAAY;AACjC,aAAO,EAAE,QAAQ,YAAY,mBAAmB;AAAA,IAClD;AACA,UAAM,iBAAiB,oCAAoC,IAAI,QAAQ,MAAM,kBAAkB;AAC/F,WAAO,gBAAgB,WAAW,cAC9B,EAAE,QAAQ,aAAa,oBAAoB,QAAQ,eAAe,MAAM,IACxE,EAAE,QAAQ,YAAY,mBAAmB;AAAA,EAC/C,CAAC;AACD,0BAAwB;AACxB,cAAY,UAAU,KAAK;AAAA,IACzB,SAAS,QAAQ,MAAM,CAAC,WAAW,OAAO,WAAW,eAAe,OAAO,OAAO,YAAY,KAAK;AAAA,IACnG,SAAS,QAAQ,MAAM,CAAC,WAAW,OAAO,WAAW,eAAe,OAAO,OAAO,YAAY,KAAK;AAAA,IACnG,YAAY,KAAK;AAAA,IACjB,YAAY;AAAA,IACZ,SAAS,QAAQ,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,OAAO,EAAE,GAAG,QAAQ,WAAW,mBAAmB,EAAE;AAAA,EAC5G,CAAC;AACH;","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-V7IZKJI3.js";
|
|
4
4
|
import {
|
|
5
5
|
AdapterRegistry
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2QSZNTDO.js";
|
|
7
7
|
import {
|
|
8
8
|
WriteRateLimiter
|
|
9
9
|
} from "./chunk-MKQBXQKU.js";
|
|
@@ -16,13 +16,13 @@ import {
|
|
|
16
16
|
processChatMessage,
|
|
17
17
|
sessionBelongsToPrincipal,
|
|
18
18
|
subscribeChatTranscript
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-XNUBF6RF.js";
|
|
20
20
|
import {
|
|
21
21
|
RelayMissionStoreError
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-HBVOJNV4.js";
|
|
23
23
|
import {
|
|
24
24
|
validateRequest
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-KGTD2KZJ.js";
|
|
26
26
|
import {
|
|
27
27
|
executeResolution,
|
|
28
28
|
isValidResolutionVerb
|
|
@@ -32,15 +32,19 @@ import {
|
|
|
32
32
|
listPairs,
|
|
33
33
|
readPair
|
|
34
34
|
} from "./chunk-35NN3ZFA.js";
|
|
35
|
+
import {
|
|
36
|
+
handleLcmCompactionFlushHttp,
|
|
37
|
+
respondLcmCompactionCapabilitiesHttp
|
|
38
|
+
} from "./chunk-4Z4XNEWZ.js";
|
|
35
39
|
import {
|
|
36
40
|
authorizationProbeNamespaces,
|
|
37
41
|
probeOperationAuthorization
|
|
38
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-M2KGXXTL.js";
|
|
39
43
|
import {
|
|
40
44
|
CorrectionContractError,
|
|
41
45
|
getOperation,
|
|
42
46
|
resolveQueryNamespaceWritablePreflight
|
|
43
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-2XP3PWL3.js";
|
|
44
48
|
import {
|
|
45
49
|
isTrustZoneName
|
|
46
50
|
} from "./chunk-JGSKJHF7.js";
|
|
@@ -872,6 +876,7 @@ var EngramAccessHttpServer = class {
|
|
|
872
876
|
this.respondJson(res, 200, await this.service.health());
|
|
873
877
|
return;
|
|
874
878
|
}
|
|
879
|
+
if (req.method === "GET" && pathname === "/engram/v1/capabilities") return respondLcmCompactionCapabilitiesHttp(res);
|
|
875
880
|
if (req.method === "GET" && pathname === "/engram/v1/authorization") {
|
|
876
881
|
res.setHeader("cache-control", "no-store");
|
|
877
882
|
const probe = probeOperationAuthorization(tokenCapabilityStore.getStore(), parsed.searchParams.getAll("op"));
|
|
@@ -1451,14 +1456,17 @@ var EngramAccessHttpServer = class {
|
|
|
1451
1456
|
if (req.method === "POST" && (pathname === "/engram/v1/lcm/compaction/flush" || pathname === "/remnic/v1/lcm/compaction/flush")) {
|
|
1452
1457
|
this.enforceTokenOp("lcm_compaction_flush");
|
|
1453
1458
|
const body = await this.readValidatedBody(req, "lcmCompactionFlush");
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
+
await handleLcmCompactionFlushHttp({
|
|
1460
|
+
body,
|
|
1461
|
+
service: this.service,
|
|
1462
|
+
response: res,
|
|
1463
|
+
ensureWriteRateLimitAvailable: () => this.ensureWriteRateLimitAvailable(req),
|
|
1464
|
+
recordWriteRateLimitHit: () => this.recordWriteRateLimitHit(req),
|
|
1465
|
+
resolveNamespace: (namespace) => this.resolveNamespace(req, namespace),
|
|
1466
|
+
defaultNamespace: this.service.configRef?.defaultNamespace,
|
|
1467
|
+
resolveRequestPrincipal: () => this.resolveRequestPrincipal(req),
|
|
1468
|
+
respondJson: this.respondJson.bind(this)
|
|
1459
1469
|
});
|
|
1460
|
-
this.recordWriteRateLimitHit(req);
|
|
1461
|
-
this.respondJson(res, 200, response);
|
|
1462
1470
|
return;
|
|
1463
1471
|
}
|
|
1464
1472
|
if (req.method === "POST" && (pathname === "/engram/v1/lcm/compaction/record" || pathname === "/remnic/v1/lcm/compaction/record")) {
|
|
@@ -3210,4 +3218,4 @@ export {
|
|
|
3210
3218
|
MeetingsInputError,
|
|
3211
3219
|
EngramAccessHttpServer
|
|
3212
3220
|
};
|
|
3213
|
-
//# sourceMappingURL=chunk-
|
|
3221
|
+
//# sourceMappingURL=chunk-67DSDRUB.js.map
|