@remnic/core 9.7.2 → 9.7.4
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 +6 -6
- package/dist/access-admin-ops-surface.js +8 -8
- package/dist/access-boundary.d.ts +6 -6
- package/dist/access-boundary.js +9 -9
- package/dist/access-cli.js +32 -32
- package/dist/access-http.d.ts +15 -6
- package/dist/access-http.js +13 -13
- package/dist/access-identity-continuity-surface.d.ts +5 -5
- package/dist/access-identity-continuity-surface.js +8 -8
- package/dist/access-lcm-surface.d.ts +6 -6
- package/dist/access-lcm-surface.js +8 -8
- package/dist/access-mcp.d.ts +6 -6
- package/dist/access-mcp.js +12 -12
- package/dist/access-observe-write-surface.d.ts +6 -6
- package/dist/access-observe-write-surface.js +8 -8
- package/dist/access-operations-batch.js +10 -10
- package/dist/access-operations.d.ts +9 -9
- package/dist/access-operations.js +11 -11
- package/dist/access-recall-surface.d.ts +6 -6
- package/dist/access-recall-surface.js +8 -8
- package/dist/access-schema.d.ts +64 -64
- package/dist/{access-service-CJ5hrLqR.d.ts → access-service-CxDZXTKt.d.ts} +4 -4
- package/dist/access-service.d.ts +6 -6
- package/dist/access-service.js +8 -8
- package/dist/access-surface-catalog.d.ts +6 -6
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +5 -5
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +3 -3
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer.d.ts +2 -2
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{catalog-XCOyxXKw.d.ts → catalog-DzU9HowE.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +4 -4
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/{chunk-NS4GEMLR.js → chunk-3CRHW42H.js} +3 -3
- package/dist/{chunk-X6FSCBJZ.js → chunk-3UPBVNBX.js} +21 -17
- package/dist/chunk-3UPBVNBX.js.map +1 -0
- package/dist/{chunk-QFOLNA2C.js → chunk-6C35R7P4.js} +2 -2
- package/dist/{chunk-PUPQ2PMC.js → chunk-74MJH7I3.js} +2 -2
- package/dist/{chunk-AWHOZTF6.js → chunk-AD2KK5MT.js} +2 -2
- package/dist/{chunk-RZEJDF3S.js → chunk-AH3M6F4X.js} +2 -2
- package/dist/{chunk-ARD5NE4M.js → chunk-BFCQPJ5B.js} +3 -3
- package/dist/{chunk-KWJP22WP.js → chunk-CNWC274T.js} +8 -8
- package/dist/{chunk-RQTCDICG.js → chunk-CRFTLUWT.js} +2 -2
- package/dist/{chunk-BLXNPBJI.js → chunk-DQPPRXFO.js} +2 -2
- package/dist/{chunk-DSWYYEIK.js → chunk-EJCVMPIM.js} +12 -2
- package/dist/chunk-EJCVMPIM.js.map +1 -0
- package/dist/{chunk-Y4EMHIQ5.js → chunk-ESE55PZJ.js} +11 -7
- package/dist/chunk-ESE55PZJ.js.map +1 -0
- package/dist/{chunk-NGJT7IW5.js → chunk-GL3SMLMZ.js} +16 -16
- package/dist/{chunk-4YUPLX7U.js → chunk-HXDKC3BI.js} +2 -2
- package/dist/{chunk-QMUERLZK.js → chunk-JO5AT6QT.js} +1 -1
- package/dist/chunk-JO5AT6QT.js.map +1 -0
- package/dist/{chunk-QRYNEVHP.js → chunk-KTOH7EJE.js} +2 -2
- package/dist/{chunk-VD56CJRR.js → chunk-O3BZ6PFY.js} +2 -2
- package/dist/{chunk-WGE3OYC3.js → chunk-P2UA6XQG.js} +4 -4
- package/dist/{chunk-ZXUG3AFP.js → chunk-PKGWJFNR.js} +2 -2
- package/dist/{chunk-UKA7GNI2.js → chunk-QDCJNRKK.js} +3 -3
- package/dist/{chunk-FMECZFUT.js → chunk-R2SJDIPO.js} +2 -2
- package/dist/{chunk-PSQ32V5P.js → chunk-T7VNN3ZM.js} +13 -3
- package/dist/chunk-T7VNN3ZM.js.map +1 -0
- package/dist/{chunk-CBOHQNTJ.js → chunk-TBQ4CFIP.js} +2 -2
- package/dist/{chunk-53Y3TETS.js → chunk-TVRPRFUB.js} +2 -2
- package/dist/{chunk-O24E5CFS.js → chunk-TZJVTH3F.js} +3 -3
- package/dist/{chunk-Z3HJ5L3Z.js → chunk-UVIQHSS7.js} +2 -2
- package/dist/{chunk-HT2DQ27U.js → chunk-UYZUJ4EB.js} +2 -2
- package/dist/{chunk-DDHT5J5M.js → chunk-VMGMY2AI.js} +6 -6
- package/dist/{chunk-E47TABDR.js → chunk-WKE4VXSZ.js} +2 -2
- package/dist/{chunk-GWMTFDHF.js → chunk-ZHKD4EZM.js} +3 -3
- package/dist/{chunk-D6KNJRGX.js → chunk-ZUFJ7ZTR.js} +2 -2
- package/dist/{chunk-PML3GU4Q.js → chunk-ZW6OKHVX.js} +2 -2
- package/dist/{cli-CtECZr1q.d.ts → cli-BqyGVyOe.d.ts} +9 -5
- package/dist/cli.d.ts +8 -8
- package/dist/cli.js +26 -26
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +3 -3
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +3 -3
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +3 -3
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +2 -2
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +3 -3
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +5 -5
- package/dist/extraction-faithfulness.d.ts +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/graph-dashboard-diff.d.ts +1 -1
- package/dist/graph-dashboard-key.d.ts +1 -1
- package/dist/graph-dashboard-parser.d.ts +1 -1
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +32 -32
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +3 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
- package/dist/maintenance/rebuild-memory-projection.js +4 -4
- package/dist/mcp-memory-inspector-app.d.ts +6 -6
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +5 -5
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +1 -1
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +3 -3
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +2 -2
- package/dist/operator-toolkit.js +9 -9
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +2 -2
- package/dist/orchestration/maintenance.js +5 -5
- package/dist/{orchestrator-CKctWsw9.d.ts → orchestrator-37Cx7yyw.d.ts} +4 -4
- package/dist/orchestrator.d.ts +5 -5
- package/dist/orchestrator.js +32 -32
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-BWwGIys5.d.ts → pipeline-C6onljHc.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{qmd-DFuUrBWW.d.ts → qmd-J08G7MEm.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +1 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-timings.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +1 -1
- package/dist/replay/normalizers/claude.d.ts +1 -1
- package/dist/replay/normalizers/openclaw.d.ts +1 -1
- package/dist/replay/normalizers/shared.d.ts +1 -1
- package/dist/replay/runner.d.ts +1 -1
- package/dist/replay/types.d.ts +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +2 -2
- package/dist/retrieval-agents.d.ts +2 -2
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/schemas.d.ts +74 -74
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/index.d.ts +1 -1
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-1Wlr7NWL.d.ts → semantic-consolidation-BFtoVosl.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +4 -4
- package/dist/semantic-rule-promotion.js +3 -3
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +3 -3
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +9 -9
- package/dist/signal.d.ts +1 -1
- package/dist/{storage-BQwP90sb.d.ts → storage-CXjwBr69.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +2 -2
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.d.ts +2 -2
- package/dist/temporal-timeline-recall.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transfer/types.d.ts +66 -66
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-DgIkyAsK.d.ts → types-DpxqC8dI.d.ts} +4 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +3 -3
- package/package.json +2 -2
- package/src/access-http.ts +27 -2
- package/src/cli.ts +8 -0
- package/src/config.ts +10 -0
- package/src/namespaces/search.test.ts +74 -9
- package/src/namespaces/search.ts +12 -3
- package/src/types.ts +4 -0
- package/dist/chunk-DSWYYEIK.js.map +0 -1
- package/dist/chunk-PSQ32V5P.js.map +0 -1
- package/dist/chunk-QMUERLZK.js.map +0 -1
- package/dist/chunk-X6FSCBJZ.js.map +0 -1
- package/dist/chunk-Y4EMHIQ5.js.map +0 -1
- /package/dist/{chunk-NS4GEMLR.js.map → chunk-3CRHW42H.js.map} +0 -0
- /package/dist/{chunk-QFOLNA2C.js.map → chunk-6C35R7P4.js.map} +0 -0
- /package/dist/{chunk-PUPQ2PMC.js.map → chunk-74MJH7I3.js.map} +0 -0
- /package/dist/{chunk-AWHOZTF6.js.map → chunk-AD2KK5MT.js.map} +0 -0
- /package/dist/{chunk-RZEJDF3S.js.map → chunk-AH3M6F4X.js.map} +0 -0
- /package/dist/{chunk-ARD5NE4M.js.map → chunk-BFCQPJ5B.js.map} +0 -0
- /package/dist/{chunk-KWJP22WP.js.map → chunk-CNWC274T.js.map} +0 -0
- /package/dist/{chunk-RQTCDICG.js.map → chunk-CRFTLUWT.js.map} +0 -0
- /package/dist/{chunk-BLXNPBJI.js.map → chunk-DQPPRXFO.js.map} +0 -0
- /package/dist/{chunk-NGJT7IW5.js.map → chunk-GL3SMLMZ.js.map} +0 -0
- /package/dist/{chunk-4YUPLX7U.js.map → chunk-HXDKC3BI.js.map} +0 -0
- /package/dist/{chunk-QRYNEVHP.js.map → chunk-KTOH7EJE.js.map} +0 -0
- /package/dist/{chunk-VD56CJRR.js.map → chunk-O3BZ6PFY.js.map} +0 -0
- /package/dist/{chunk-WGE3OYC3.js.map → chunk-P2UA6XQG.js.map} +0 -0
- /package/dist/{chunk-ZXUG3AFP.js.map → chunk-PKGWJFNR.js.map} +0 -0
- /package/dist/{chunk-UKA7GNI2.js.map → chunk-QDCJNRKK.js.map} +0 -0
- /package/dist/{chunk-FMECZFUT.js.map → chunk-R2SJDIPO.js.map} +0 -0
- /package/dist/{chunk-CBOHQNTJ.js.map → chunk-TBQ4CFIP.js.map} +0 -0
- /package/dist/{chunk-53Y3TETS.js.map → chunk-TVRPRFUB.js.map} +0 -0
- /package/dist/{chunk-O24E5CFS.js.map → chunk-TZJVTH3F.js.map} +0 -0
- /package/dist/{chunk-Z3HJ5L3Z.js.map → chunk-UVIQHSS7.js.map} +0 -0
- /package/dist/{chunk-HT2DQ27U.js.map → chunk-UYZUJ4EB.js.map} +0 -0
- /package/dist/{chunk-DDHT5J5M.js.map → chunk-VMGMY2AI.js.map} +0 -0
- /package/dist/{chunk-E47TABDR.js.map → chunk-WKE4VXSZ.js.map} +0 -0
- /package/dist/{chunk-GWMTFDHF.js.map → chunk-ZHKD4EZM.js.map} +0 -0
- /package/dist/{chunk-D6KNJRGX.js.map → chunk-ZUFJ7ZTR.js.map} +0 -0
- /package/dist/{chunk-PML3GU4Q.js.map → chunk-ZW6OKHVX.js.map} +0 -0
|
@@ -461,7 +461,7 @@ test("ensureNamespaceCollection forwards abort signals to backend collection che
|
|
|
461
461
|
assert.deepEqual(backend.ensureCollections, ["openclaw-engram--ns-6d61696e"]);
|
|
462
462
|
});
|
|
463
463
|
|
|
464
|
-
test("legacy default namespace root
|
|
464
|
+
test("legacy default namespace root auto-creates its base collection (broad root, #1929)", async () => {
|
|
465
465
|
const backend = new FakeBackend(false);
|
|
466
466
|
const router = new NamespaceSearchRouter(
|
|
467
467
|
config(),
|
|
@@ -474,14 +474,17 @@ test("legacy default namespace root checks collection without auto-creating broa
|
|
|
474
474
|
signal: controller.signal,
|
|
475
475
|
});
|
|
476
476
|
|
|
477
|
+
// The default namespace at the flat root targets the BASE collection (not a
|
|
478
|
+
// tokenized name) on both index and search sides, and that collection is now
|
|
479
|
+
// auto-created so recall has something to read. Skipping creation left a
|
|
480
|
+
// configured default namespace with maintenance "ran" but 0 results (#1929).
|
|
477
481
|
assert.equal(state, "present");
|
|
478
|
-
assert.deepEqual(backend.
|
|
479
|
-
assert.deepEqual(backend.
|
|
480
|
-
assert.deepEqual(backend.ensureCollections, []);
|
|
482
|
+
assert.deepEqual(backend.ensureSignals, [controller.signal]);
|
|
483
|
+
assert.deepEqual(backend.ensureCollections, ["openclaw-engram"]);
|
|
481
484
|
});
|
|
482
485
|
|
|
483
|
-
test("legacy default namespace root
|
|
484
|
-
const backend = new FakeBackend(false, [], { check: "missing" });
|
|
486
|
+
test("legacy default namespace root auto-creates a missing base collection (#1929)", async () => {
|
|
487
|
+
const backend = new FakeBackend(false, [], { check: "missing", ensure: "present" });
|
|
485
488
|
const router = new NamespaceSearchRouter(
|
|
486
489
|
config(),
|
|
487
490
|
{ storageFor: async () => ({ dir: "/tmp/remnic" }) },
|
|
@@ -490,9 +493,71 @@ test("legacy default namespace root fail-opens missing guarded collections", asy
|
|
|
490
493
|
|
|
491
494
|
const state = await router.ensureNamespaceCollection("main");
|
|
492
495
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
+
// A missing base collection is no longer left missing (the old fail-open path);
|
|
497
|
+
// it is created so a fresh install with a flat-root default namespace gets a
|
|
498
|
+
// working QMD collection instead of silently returning 0 results.
|
|
499
|
+
assert.equal(state, "present");
|
|
500
|
+
assert.deepEqual(backend.ensureCollections, ["openclaw-engram"]);
|
|
501
|
+
});
|
|
502
|
+
|
|
503
|
+
test("configured non-legacy default namespace still recalls from its flat-root base collection (#1929)", async () => {
|
|
504
|
+
// Reporter's config: defaultNamespace "geek", data at the flat root. The
|
|
505
|
+
// default record must search the SAME base collection the index side creates,
|
|
506
|
+
// so recall returns results instead of 0.
|
|
507
|
+
const geekConfig = { ...config(), defaultNamespace: "geek" } as PluginConfig;
|
|
508
|
+
const created: FakeBackend[] = [];
|
|
509
|
+
const router = new NamespaceSearchRouter(
|
|
510
|
+
geekConfig,
|
|
511
|
+
{ storageFor: async () => ({ dir: "/tmp/remnic" }) },
|
|
512
|
+
() => {
|
|
513
|
+
const backend = new FakeBackend(false, [
|
|
514
|
+
{ docid: "1", path: "facts/geek-fact.md", snippet: "geek", score: 1 },
|
|
515
|
+
]);
|
|
516
|
+
created.push(backend);
|
|
517
|
+
return backend;
|
|
518
|
+
},
|
|
519
|
+
);
|
|
520
|
+
|
|
521
|
+
const ensured = await router.ensureNamespaceCollection("geek");
|
|
522
|
+
assert.equal(ensured, "present");
|
|
523
|
+
assert.deepEqual(created[0]?.ensureCollections, ["openclaw-engram"]);
|
|
524
|
+
|
|
525
|
+
const results = await router.searchAcrossNamespaces({
|
|
526
|
+
query: "geek",
|
|
527
|
+
namespaces: ["geek"],
|
|
528
|
+
maxResults: 10,
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
assert.deepEqual(
|
|
532
|
+
created.flatMap((backend) => backend.calls.map((call) => call.collection)),
|
|
533
|
+
["openclaw-engram"],
|
|
534
|
+
);
|
|
535
|
+
assert.equal(results.length, 1);
|
|
536
|
+
assert.equal(results[0]?.snippet, "geek");
|
|
537
|
+
});
|
|
538
|
+
|
|
539
|
+
test("configured non-legacy default namespace filters nested namespace files from its base collection (#1929)", async () => {
|
|
540
|
+
// The broad-root base collection also indexes nested `namespaces/` files; the
|
|
541
|
+
// default namespace search must strip them so auto-creation does not leak
|
|
542
|
+
// cross-namespace data into the default recall path.
|
|
543
|
+
const geekConfig = { ...config(), defaultNamespace: "geek" } as PluginConfig;
|
|
544
|
+
const backend = new FakeBackend(false, [
|
|
545
|
+
{ docid: "1", path: "facts/geek-fact.md", snippet: "geek", score: 2 },
|
|
546
|
+
{ docid: "2", path: "namespaces/ns-736861726564/facts/shared.md", snippet: "shared", score: 1 },
|
|
547
|
+
]);
|
|
548
|
+
const router = new NamespaceSearchRouter(
|
|
549
|
+
geekConfig,
|
|
550
|
+
{ storageFor: async () => ({ dir: "/tmp/remnic" }) },
|
|
551
|
+
() => backend,
|
|
552
|
+
);
|
|
553
|
+
|
|
554
|
+
const results = await router.searchAcrossNamespaces({
|
|
555
|
+
query: "geek",
|
|
556
|
+
namespaces: ["geek"],
|
|
557
|
+
maxResults: 10,
|
|
558
|
+
});
|
|
559
|
+
|
|
560
|
+
assert.deepEqual(results.map((result) => result.snippet), ["geek"]);
|
|
496
561
|
});
|
|
497
562
|
|
|
498
563
|
test("healthForNamespace checks namespace collection without auto-creating or caching state", async () => {
|
package/src/namespaces/search.ts
CHANGED
|
@@ -379,10 +379,20 @@ export class NamespaceSearchRouter {
|
|
|
379
379
|
});
|
|
380
380
|
const collectionState = available
|
|
381
381
|
? await awaitWithAbort(
|
|
382
|
+
// The legacy default namespace at the flat root (`filtersNestedNamespaces`)
|
|
383
|
+
// shares its `memoryDir` with the `namespaces/` container, so its base
|
|
384
|
+
// collection is a "broad root" that also indexes nested-namespace files.
|
|
385
|
+
// We STILL auto-create it (issue #1929): the search side already targets
|
|
386
|
+
// this exact base collection and `filterNamespaceSubtreeResults` strips
|
|
387
|
+
// the nested `namespaces/` subtree out of its results, so index and
|
|
388
|
+
// search stay symmetric. Skipping creation left a configured default
|
|
389
|
+
// namespace (e.g. `geek`) with maintenance "ran" but no collection and 0
|
|
390
|
+
// recall results. `ensureCollection` is a no-op when the collection is
|
|
391
|
+
// already present, so legacy installs that pre-created the broad root are
|
|
392
|
+
// unaffected.
|
|
382
393
|
this.collectionStateForBackend(backend, storage.dir, scopedConfig.qmdCollection, {
|
|
383
394
|
autoCreate: options.autoCreateCollection,
|
|
384
395
|
failOpenMissingGuardedCollection: options.failOpenMissingGuardedCollection,
|
|
385
|
-
skipAutoCreate: filtersNestedNamespaces,
|
|
386
396
|
execution,
|
|
387
397
|
}),
|
|
388
398
|
execution?.signal,
|
|
@@ -417,11 +427,10 @@ export class NamespaceSearchRouter {
|
|
|
417
427
|
options: {
|
|
418
428
|
autoCreate: boolean;
|
|
419
429
|
failOpenMissingGuardedCollection: boolean;
|
|
420
|
-
skipAutoCreate: boolean;
|
|
421
430
|
execution?: SearchExecutionOptions;
|
|
422
431
|
},
|
|
423
432
|
): Promise<CollectionState> {
|
|
424
|
-
if (!options.autoCreate
|
|
433
|
+
if (!options.autoCreate) {
|
|
425
434
|
if (!backend.checkCollection) return "unknown";
|
|
426
435
|
const collectionState = await backend
|
|
427
436
|
.checkCollection(collection, options.execution)
|
package/src/types.ts
CHANGED
|
@@ -255,6 +255,10 @@ export interface AgentAccessHttpConfig {
|
|
|
255
255
|
authToken?: AgentAccessAuthToken;
|
|
256
256
|
principal?: string;
|
|
257
257
|
maxBodyBytes: number;
|
|
258
|
+
/** Max write requests per rolling window before 429 write_rate_limited (issue #1937). */
|
|
259
|
+
writeRateLimitMaxRequests: number;
|
|
260
|
+
/** Rolling window for the write rate limit, in ms (issue #1937). */
|
|
261
|
+
writeRateLimitWindowMs: number;
|
|
258
262
|
}
|
|
259
263
|
|
|
260
264
|
export interface DreamingConfig {
|