@remnic/core 9.3.691 → 9.3.692
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-boundary.d.ts +5 -4
- package/dist/access-boundary.js +11 -11
- package/dist/access-cli.js +18 -16
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +5 -4
- package/dist/access-http.js +15 -15
- package/dist/access-mcp.d.ts +5 -4
- package/dist/access-mcp.js +14 -14
- package/dist/access-operations.d.ts +5 -4
- package/dist/access-operations.js +13 -13
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-CKnFdxH-.d.ts → access-service-DvApf9LZ.d.ts} +1 -1
- package/dist/access-service.d.ts +5 -4
- package/dist/access-service.js +10 -10
- package/dist/access-surface-catalog.d.ts +5 -4
- package/dist/bootstrap.d.ts +4 -3
- package/dist/{chunk-VH2DHBHG.js → chunk-2EN5WZQB.js} +2 -2
- package/dist/{chunk-QNG35H27.js → chunk-4IQNAOP3.js} +5 -141
- package/dist/chunk-4IQNAOP3.js.map +1 -0
- package/dist/chunk-6C2BMUZA.js +444 -0
- package/dist/chunk-6C2BMUZA.js.map +1 -0
- package/dist/{chunk-UUMYB3FR.js → chunk-6ZNIUGXB.js} +10 -10
- package/dist/{chunk-TSGREOYY.js → chunk-DO7MDZMU.js} +4 -4
- package/dist/{chunk-IPJD7WJH.js → chunk-E6BOD3UJ.js} +2 -2
- package/dist/{chunk-D3DNGQNQ.js → chunk-FM7KLRKN.js} +2 -2
- package/dist/chunk-HXNMDPHN.js +149 -0
- package/dist/chunk-HXNMDPHN.js.map +1 -0
- package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
- package/dist/{chunk-OOO7ZKOD.js → chunk-KYH53EFD.js} +3 -3
- package/dist/{chunk-LQ6JI4VH.js → chunk-LD53WPMU.js} +4 -4
- package/dist/{chunk-7UVDIWLL.js → chunk-NEILAC3H.js} +4 -4
- package/dist/{chunk-K7I24ZO2.js → chunk-O4ZIV62T.js} +20 -20
- package/dist/{chunk-NCRDCTEJ.js → chunk-SEK4XIDN.js} +5 -5
- package/dist/{chunk-5CEJH5ZN.js → chunk-TAPSNIMA.js} +4 -4
- package/dist/{chunk-QLRYXOAD.js → chunk-UDJLF3BO.js} +2 -2
- package/dist/{chunk-KO6OL4I7.js → chunk-V56S3A23.js} +3 -3
- package/dist/{chunk-TJ5IIQIR.js → chunk-W4MICQIZ.js} +39 -368
- package/dist/chunk-W4MICQIZ.js.map +1 -0
- package/dist/{chunk-WRFKZEO6.js → chunk-YQGHW5ML.js} +4 -4
- package/dist/{cli-CrSW_KRq.d.ts → cli-BjsY9Le7.d.ts} +2 -2
- package/dist/cli.d.ts +6 -5
- package/dist/cli.js +25 -24
- package/dist/contradiction/index.js +4 -4
- package/dist/explicit-capture.d.ts +4 -3
- package/dist/index.d.ts +6 -5
- package/dist/index.js +32 -30
- package/dist/index.js.map +1 -1
- package/dist/mcp-memory-inspector-app.d.ts +5 -4
- package/dist/namespaces/migrate.js +8 -8
- package/dist/namespaces/search.js +7 -7
- package/dist/operator-toolkit.js +11 -10
- package/dist/orchestration/maintenance.d.ts +112 -0
- package/dist/orchestration/maintenance.js +39 -0
- package/dist/orchestration/maintenance.js.map +1 -0
- package/dist/{orchestrator-DvswGK76.d.ts → orchestrator-CNJCYjZ1.d.ts} +9 -33
- package/dist/orchestrator.d.ts +2 -1
- package/dist/orchestrator.js +12 -10
- package/dist/search/factory.js +6 -6
- package/dist/search/index.js +11 -11
- 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/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +1 -1
- package/dist/transfer/capsule-export.js +2 -2
- package/package.json +12 -2
- package/src/orchestration/maintenance.test.ts +738 -0
- package/src/orchestration/maintenance.ts +557 -0
- package/src/orchestrator-flush.test.ts +0 -599
- package/src/orchestrator.ts +33 -419
- package/dist/chunk-QNG35H27.js.map +0 -1
- package/dist/chunk-TJ5IIQIR.js.map +0 -1
- /package/dist/{chunk-VH2DHBHG.js.map → chunk-2EN5WZQB.js.map} +0 -0
- /package/dist/{chunk-UUMYB3FR.js.map → chunk-6ZNIUGXB.js.map} +0 -0
- /package/dist/{chunk-TSGREOYY.js.map → chunk-DO7MDZMU.js.map} +0 -0
- /package/dist/{chunk-IPJD7WJH.js.map → chunk-E6BOD3UJ.js.map} +0 -0
- /package/dist/{chunk-D3DNGQNQ.js.map → chunk-FM7KLRKN.js.map} +0 -0
- /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-OOO7ZKOD.js.map → chunk-KYH53EFD.js.map} +0 -0
- /package/dist/{chunk-LQ6JI4VH.js.map → chunk-LD53WPMU.js.map} +0 -0
- /package/dist/{chunk-7UVDIWLL.js.map → chunk-NEILAC3H.js.map} +0 -0
- /package/dist/{chunk-K7I24ZO2.js.map → chunk-O4ZIV62T.js.map} +0 -0
- /package/dist/{chunk-NCRDCTEJ.js.map → chunk-SEK4XIDN.js.map} +0 -0
- /package/dist/{chunk-5CEJH5ZN.js.map → chunk-TAPSNIMA.js.map} +0 -0
- /package/dist/{chunk-QLRYXOAD.js.map → chunk-UDJLF3BO.js.map} +0 -0
- /package/dist/{chunk-KO6OL4I7.js.map → chunk-V56S3A23.js.map} +0 -0
- /package/dist/{chunk-WRFKZEO6.js.map → chunk-YQGHW5ML.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as EngramAccessRecallResponse } from './access-service-
|
|
1
|
+
import { e as EngramAccessRecallResponse } from './access-service-DvApf9LZ.js';
|
|
2
2
|
import { ActionConfidenceRequest } from './access-schema.js';
|
|
3
3
|
import { RecallXraySnapshot } from './recall-xray.js';
|
|
4
4
|
import { ActionConfidenceResult } from './action-confidence.js';
|
|
@@ -22,7 +22,7 @@ import './user-model.js';
|
|
|
22
22
|
import './recall-audit-anomaly.js';
|
|
23
23
|
import './recall-audit.js';
|
|
24
24
|
import './explicit-capture.js';
|
|
25
|
-
import './orchestrator-
|
|
25
|
+
import './orchestrator-CNJCYjZ1.js';
|
|
26
26
|
import './briefing.js';
|
|
27
27
|
import './buffer.js';
|
|
28
28
|
import './transcript.js';
|
|
@@ -32,6 +32,9 @@ import './model-registry.js';
|
|
|
32
32
|
import './local-llm.js';
|
|
33
33
|
import './fallback-llm.js';
|
|
34
34
|
import './resolve-provider-secret.js';
|
|
35
|
+
import './orchestration/maintenance.js';
|
|
36
|
+
import './namespaces/search.js';
|
|
37
|
+
import './catalog-BEWLjdOr.js';
|
|
35
38
|
import './live-connectors-runner.js';
|
|
36
39
|
import './framework-CNDn2164.js';
|
|
37
40
|
import './relevance.js';
|
|
@@ -54,8 +57,6 @@ import './conversation-index/backend.js';
|
|
|
54
57
|
import './conversation-index/chunker.js';
|
|
55
58
|
import './faiss-adapter-BHecI1fF.js';
|
|
56
59
|
import './runtime/child-process.js';
|
|
57
|
-
import './catalog-BEWLjdOr.js';
|
|
58
|
-
import './namespaces/search.js';
|
|
59
60
|
import './shared-context/manager.js';
|
|
60
61
|
import 'zod';
|
|
61
62
|
import './compounding/engine.js';
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
listNamespaces,
|
|
3
3
|
runNamespaceMigration,
|
|
4
4
|
verifyNamespaces
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-FM7KLRKN.js";
|
|
6
6
|
import "../chunk-W4ELOUNX.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-5CEJH5ZN.js";
|
|
10
|
-
import "../chunk-WRFKZEO6.js";
|
|
11
|
-
import "../chunk-CYEPCZN5.js";
|
|
12
|
-
import "../chunk-LQ6JI4VH.js";
|
|
7
|
+
import "../chunk-E6BOD3UJ.js";
|
|
8
|
+
import "../chunk-6ZNIUGXB.js";
|
|
13
9
|
import "../chunk-SANZHXY2.js";
|
|
14
|
-
import "../chunk-AER6MT24.js";
|
|
15
10
|
import "../chunk-EHISUJFN.js";
|
|
11
|
+
import "../chunk-TAPSNIMA.js";
|
|
12
|
+
import "../chunk-YQGHW5ML.js";
|
|
13
|
+
import "../chunk-CYEPCZN5.js";
|
|
14
|
+
import "../chunk-LD53WPMU.js";
|
|
16
15
|
import "../chunk-CINZGPSJ.js";
|
|
16
|
+
import "../chunk-AER6MT24.js";
|
|
17
17
|
import "../chunk-ZFXCQPNO.js";
|
|
18
18
|
import "../chunk-DCWIQFNA.js";
|
|
19
19
|
import "../chunk-XBZQRZ6G.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NamespaceSearchRouter,
|
|
3
3
|
namespaceCollectionName
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-5CEJH5ZN.js";
|
|
7
|
-
import "../chunk-WRFKZEO6.js";
|
|
8
|
-
import "../chunk-CYEPCZN5.js";
|
|
9
|
-
import "../chunk-LQ6JI4VH.js";
|
|
4
|
+
} from "../chunk-E6BOD3UJ.js";
|
|
5
|
+
import "../chunk-6ZNIUGXB.js";
|
|
10
6
|
import "../chunk-SANZHXY2.js";
|
|
11
|
-
import "../chunk-AER6MT24.js";
|
|
12
7
|
import "../chunk-EHISUJFN.js";
|
|
8
|
+
import "../chunk-TAPSNIMA.js";
|
|
9
|
+
import "../chunk-YQGHW5ML.js";
|
|
10
|
+
import "../chunk-CYEPCZN5.js";
|
|
11
|
+
import "../chunk-LD53WPMU.js";
|
|
13
12
|
import "../chunk-CINZGPSJ.js";
|
|
13
|
+
import "../chunk-AER6MT24.js";
|
|
14
14
|
import "../chunk-ZFXCQPNO.js";
|
|
15
15
|
import "../chunk-DCWIQFNA.js";
|
|
16
16
|
import "../chunk-XBZQRZ6G.js";
|
package/dist/operator-toolkit.js
CHANGED
|
@@ -11,11 +11,12 @@ import {
|
|
|
11
11
|
summarizeMemoryWorthLegacyCounters,
|
|
12
12
|
summarizeObservationThroughput,
|
|
13
13
|
summarizeTierDistribution
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-KYH53EFD.js";
|
|
15
|
+
import "./chunk-FM7KLRKN.js";
|
|
16
16
|
import "./chunk-7XH7VJN4.js";
|
|
17
17
|
import "./chunk-YBPYIAA5.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-HXNMDPHN.js";
|
|
19
|
+
import "./chunk-4IQNAOP3.js";
|
|
19
20
|
import "./chunk-W4ELOUNX.js";
|
|
20
21
|
import "./chunk-KFY3SGN7.js";
|
|
21
22
|
import "./chunk-CMTINOFS.js";
|
|
@@ -28,16 +29,16 @@ import "./chunk-Z5LAYHGJ.js";
|
|
|
28
29
|
import "./chunk-OO42R444.js";
|
|
29
30
|
import "./chunk-K6MV3TRQ.js";
|
|
30
31
|
import "./chunk-SAC5V6JT.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-5CEJH5ZN.js";
|
|
34
|
-
import "./chunk-WRFKZEO6.js";
|
|
35
|
-
import "./chunk-CYEPCZN5.js";
|
|
36
|
-
import "./chunk-LQ6JI4VH.js";
|
|
32
|
+
import "./chunk-E6BOD3UJ.js";
|
|
33
|
+
import "./chunk-6ZNIUGXB.js";
|
|
37
34
|
import "./chunk-SANZHXY2.js";
|
|
38
|
-
import "./chunk-AER6MT24.js";
|
|
39
35
|
import "./chunk-EHISUJFN.js";
|
|
36
|
+
import "./chunk-TAPSNIMA.js";
|
|
37
|
+
import "./chunk-YQGHW5ML.js";
|
|
38
|
+
import "./chunk-CYEPCZN5.js";
|
|
39
|
+
import "./chunk-LD53WPMU.js";
|
|
40
40
|
import "./chunk-CINZGPSJ.js";
|
|
41
|
+
import "./chunk-AER6MT24.js";
|
|
41
42
|
import "./chunk-ZFXCQPNO.js";
|
|
42
43
|
import "./chunk-DCWIQFNA.js";
|
|
43
44
|
import "./chunk-XBZQRZ6G.js";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { P as PluginConfig } from '../types-2NoBoRBM.js';
|
|
2
|
+
import { SearchBackend } from '../search/port.js';
|
|
3
|
+
import { NamespaceSearchRouter } from '../namespaces/search.js';
|
|
4
|
+
import { N as NamespaceCatalog } from '../catalog-BEWLjdOr.js';
|
|
5
|
+
import '../types-ByK7T3L6.js';
|
|
6
|
+
import '../index-DJ9QWMw-.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Maintenance scheduler — extracted from the orchestrator (issue #1526 PR1).
|
|
10
|
+
*
|
|
11
|
+
* Owns the WHEN of memory maintenance:
|
|
12
|
+
* - cron auto-registration (writes jobs.json entries the OpenClaw cron
|
|
13
|
+
* daemon picks up)
|
|
14
|
+
* - debounced + singleflight QMD index maintenance (re-index + embed
|
|
15
|
+
* after writes)
|
|
16
|
+
* - consolidation scheduling trigger (count + interval gated)
|
|
17
|
+
*
|
|
18
|
+
* Does NOT own the WHAT — the actual job runners (runSemanticConsolidation,
|
|
19
|
+
* runPatternReinforcement, runDeepSleepGovernanceNow, runConsolidation)
|
|
20
|
+
* remain on the orchestrator because they need the full LLM + extraction
|
|
21
|
+
* dependency surface. The scheduler invokes consolidation through a
|
|
22
|
+
* callback so the orchestrator stays the source of truth for that work.
|
|
23
|
+
*
|
|
24
|
+
* Behavior-preserving move from orchestrator.ts. No logic changes — the
|
|
25
|
+
* orchestrator keeps thin delegating methods so existing tests that stub
|
|
26
|
+
* `orchestrator.requestQmdMaintenance` etc. continue to work.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/** Dependencies injected by the orchestrator. All stable references. */
|
|
30
|
+
interface MaintenanceSchedulerDeps {
|
|
31
|
+
config: PluginConfig;
|
|
32
|
+
/** Live accessor — the orchestrator can reassign its qmd backend after
|
|
33
|
+
* construction (e.g. swap to NoopSearchBackend when the collection is
|
|
34
|
+
* missing), and the scheduler must always observe the current backend. */
|
|
35
|
+
getQmd: () => SearchBackend;
|
|
36
|
+
namespaceSearchRouter: NamespaceSearchRouter;
|
|
37
|
+
namespaceCatalog: NamespaceCatalog;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Schedules and debounces memory maintenance work. Owns the cadence +
|
|
41
|
+
* singleflight state that previously lived as private orchestrator fields.
|
|
42
|
+
*
|
|
43
|
+
* The orchestrator constructs one instance in its constructor and delegates
|
|
44
|
+
* the public scheduling entrypoints to it. Job execution stays on the
|
|
45
|
+
* orchestrator (LLM-heavy) and is invoked through callbacks.
|
|
46
|
+
*/
|
|
47
|
+
declare class MaintenanceScheduler {
|
|
48
|
+
private readonly deps;
|
|
49
|
+
private nonZeroExtractionsSinceConsolidation;
|
|
50
|
+
private lastConsolidationRunAtMs;
|
|
51
|
+
private consolidationInFlight;
|
|
52
|
+
private qmdMaintenanceTimer;
|
|
53
|
+
private qmdMaintenancePending;
|
|
54
|
+
private qmdMaintenanceInFlight;
|
|
55
|
+
private lastQmdEmbedAtMs;
|
|
56
|
+
private lastQmdEmbedAtMsByNamespace;
|
|
57
|
+
constructor(deps: MaintenanceSchedulerDeps);
|
|
58
|
+
/**
|
|
59
|
+
* Register every cron job the daemon should run, gated by its config flag.
|
|
60
|
+
* Each registration is independent and non-fatal — a failure in one does
|
|
61
|
+
* not block the others (mirrors the orchestrator's prior sequential try/
|
|
62
|
+
* catch behavior exactly).
|
|
63
|
+
*
|
|
64
|
+
* Returns when all eligible registrations have completed so callers that
|
|
65
|
+
* `await deferredReady` can rely on jobs.json being current.
|
|
66
|
+
*/
|
|
67
|
+
autoRegisterCrons(_signal: AbortSignal): Promise<void>;
|
|
68
|
+
autoRegisterDaySummaryCron(): Promise<void>;
|
|
69
|
+
autoRegisterNightlyGovernanceCron(): Promise<void>;
|
|
70
|
+
autoRegisterProceduralMiningCron(): Promise<void>;
|
|
71
|
+
autoRegisterContradictionScanCron(): Promise<void>;
|
|
72
|
+
autoRegisterPatternReinforcementCron(): Promise<void>;
|
|
73
|
+
autoRegisterGraphEdgeDecayCron(): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Maybe trigger a background consolidation pass after an extraction.
|
|
76
|
+
* Counted + interval gated so a burst of extractions does not fan into a
|
|
77
|
+
* burst of consolidation passes. The consolidation runner itself is
|
|
78
|
+
* passed in as a callback because it lives on the orchestrator (LLM +
|
|
79
|
+
* storage dependency surface) and is not owned by this module.
|
|
80
|
+
*/
|
|
81
|
+
maybeScheduleConsolidation(nonZeroExtraction: boolean, runConsolidation: () => Promise<unknown>): void;
|
|
82
|
+
/** Whether a background consolidation pass is currently running. Exposed so
|
|
83
|
+
* the orchestrator's waitForConsolidationIdle can poll idle state without
|
|
84
|
+
* owning the cadence state (issue #1526 PR1). */
|
|
85
|
+
isConsolidationInFlight(): boolean;
|
|
86
|
+
/** Whether a debounced QMD maintenance pass is armed and waiting for the
|
|
87
|
+
* debounce timer. Exposed so drain/teardown diagnostics (e.g. the bench
|
|
88
|
+
* adapter) can observe scheduler idle state after the #1526 PR1 extraction
|
|
89
|
+
* moved this flag off the orchestrator. */
|
|
90
|
+
isQmdMaintenancePending(): boolean;
|
|
91
|
+
/** Whether a QMD maintenance pass is currently running (singleflight guard).
|
|
92
|
+
* Exposed for drain/teardown diagnostics (see isQmdMaintenancePending). */
|
|
93
|
+
isQmdMaintenanceInFlight(): boolean;
|
|
94
|
+
/** Internal: queue a debounced QMD maintenance pass. */
|
|
95
|
+
private requestQmdMaintenance;
|
|
96
|
+
/**
|
|
97
|
+
* Public entrypoint for tool-driven QMD maintenance requests.
|
|
98
|
+
* Routes through existing debounced/singleflight maintenance controls.
|
|
99
|
+
*/
|
|
100
|
+
requestQmdMaintenanceForTool(reason: string): void;
|
|
101
|
+
/** Internal: run a single QMD maintenance pass under singleflight guard. */
|
|
102
|
+
runQmdMaintenance(): Promise<void>;
|
|
103
|
+
/** Build the namespace-aware maintenance plan for one job. */
|
|
104
|
+
private namespaceMaintenancePlan;
|
|
105
|
+
/**
|
|
106
|
+
* Clear any pending debounce timer. Called from the orchestrator's
|
|
107
|
+
* destroy() so a late tick does not fire on a torn-down instance.
|
|
108
|
+
*/
|
|
109
|
+
dispose(): void;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export { MaintenanceScheduler, type MaintenanceSchedulerDeps };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MaintenanceScheduler
|
|
3
|
+
} from "../chunk-6C2BMUZA.js";
|
|
4
|
+
import "../chunk-666A3MOW.js";
|
|
5
|
+
import "../chunk-4IQNAOP3.js";
|
|
6
|
+
import "../chunk-W4ELOUNX.js";
|
|
7
|
+
import "../chunk-ZFXCQPNO.js";
|
|
8
|
+
import "../chunk-VFVG4NS2.js";
|
|
9
|
+
import "../chunk-M7XQSUBB.js";
|
|
10
|
+
import "../chunk-5UZXUTVO.js";
|
|
11
|
+
import "../chunk-5GPPACXK.js";
|
|
12
|
+
import "../chunk-SVOZFLIQ.js";
|
|
13
|
+
import "../chunk-J6A3CX5N.js";
|
|
14
|
+
import "../chunk-DQHZA7Y3.js";
|
|
15
|
+
import "../chunk-SCU65EZI.js";
|
|
16
|
+
import "../chunk-MB5RSUW6.js";
|
|
17
|
+
import "../chunk-6KYMPV2O.js";
|
|
18
|
+
import "../chunk-AWJ2FHCF.js";
|
|
19
|
+
import "../chunk-42JKGUFJ.js";
|
|
20
|
+
import "../chunk-RULE4VG5.js";
|
|
21
|
+
import "../chunk-LDXUBPMO.js";
|
|
22
|
+
import "../chunk-DM2T26WE.js";
|
|
23
|
+
import "../chunk-FVQJYWH7.js";
|
|
24
|
+
import "../chunk-G7D6GZ5J.js";
|
|
25
|
+
import "../chunk-VF4XKTX3.js";
|
|
26
|
+
import "../chunk-J2HSAU72.js";
|
|
27
|
+
import "../chunk-A6XUJE5D.js";
|
|
28
|
+
import "../chunk-P7FMDTKL.js";
|
|
29
|
+
import "../chunk-VS2IYZRU.js";
|
|
30
|
+
import "../chunk-U3PN77QT.js";
|
|
31
|
+
import "../chunk-ZPQVJEVQ.js";
|
|
32
|
+
import "../chunk-4DJQYKMN.js";
|
|
33
|
+
import "../chunk-JUC24CTX.js";
|
|
34
|
+
import "../chunk-NU3CSQ4H.js";
|
|
35
|
+
import "../chunk-PZ5AY32C.js";
|
|
36
|
+
export {
|
|
37
|
+
MaintenanceScheduler
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -6,6 +6,7 @@ import { TranscriptManager } from './transcript.js';
|
|
|
6
6
|
import { HourlySummarizer } from './summarizer.js';
|
|
7
7
|
import { LocalLlmClient } from './local-llm.js';
|
|
8
8
|
import { FallbackLlmClient } from './fallback-llm.js';
|
|
9
|
+
import { MaintenanceScheduler } from './orchestration/maintenance.js';
|
|
9
10
|
import { LiveConnectorsRunSummary } from './live-connectors-runner.js';
|
|
10
11
|
import { ModelRegistry } from './model-registry.js';
|
|
11
12
|
import { RelevanceStore } from './relevance.js';
|
|
@@ -929,6 +930,12 @@ declare class Orchestrator {
|
|
|
929
930
|
private namespaceStorageDirHintsLoaded;
|
|
930
931
|
private readonly namespaceSearchRouter;
|
|
931
932
|
qmd: SearchBackend;
|
|
933
|
+
/**
|
|
934
|
+
* Maintenance scheduler (issue #1526 PR1). Owns cron auto-registration,
|
|
935
|
+
* debounced QMD index maintenance, and consolidation scheduling. Job
|
|
936
|
+
* runners (consolidation/pattern-reinforcement/governance) stay here.
|
|
937
|
+
*/
|
|
938
|
+
readonly maintenanceScheduler: MaintenanceScheduler;
|
|
932
939
|
private readonly conversationQmd?;
|
|
933
940
|
private readonly conversationFaiss?;
|
|
934
941
|
private readonly conversationIndexBackend?;
|
|
@@ -1031,17 +1038,9 @@ declare class Orchestrator {
|
|
|
1031
1038
|
private queueProcessing;
|
|
1032
1039
|
private heartbeatObserverChains;
|
|
1033
1040
|
private recentExtractionFingerprints;
|
|
1034
|
-
private nonZeroExtractionsSinceConsolidation;
|
|
1035
|
-
private lastConsolidationRunAtMs;
|
|
1036
|
-
private consolidationInFlight;
|
|
1037
1041
|
private readonly consolidationObservers;
|
|
1038
|
-
private qmdMaintenanceTimer;
|
|
1039
1042
|
private wearablesServiceInstance;
|
|
1040
1043
|
private wearablesAutoSyncHandle;
|
|
1041
|
-
private qmdMaintenancePending;
|
|
1042
|
-
private qmdMaintenanceInFlight;
|
|
1043
|
-
private lastQmdEmbedAtMs;
|
|
1044
|
-
private lastQmdEmbedAtMsByNamespace;
|
|
1045
1044
|
private lastQmdReprobeAtMs;
|
|
1046
1045
|
private tierMigrationInFlight;
|
|
1047
1046
|
private lastTierMigrationRunAtMs;
|
|
@@ -1233,16 +1232,6 @@ declare class Orchestrator {
|
|
|
1233
1232
|
private namespaceStorageDirHintOwnershipRank;
|
|
1234
1233
|
private preferNamespaceStorageDirHintOwner;
|
|
1235
1234
|
private loadNamespaceStorageDirHintsFromCatalog;
|
|
1236
|
-
/**
|
|
1237
|
-
* Shared namespace maintenance planner (issue #1500). This extends the
|
|
1238
|
-
* #1499 catalog-union QMD helper into a reusable contract: configured
|
|
1239
|
-
* namespaces are always considered, dynamic catalog namespaces are admitted
|
|
1240
|
-
* only when their live router root still matches real memory data, and branch
|
|
1241
|
-
* namespaces are opt-in. Recurring jobs use the per-cycle budget; startup and
|
|
1242
|
-
* recovery discovery paths use the same safety filters without that cycle
|
|
1243
|
-
* budget so every live namespace is ensured/synced.
|
|
1244
|
-
*/
|
|
1245
|
-
private namespaceMaintenancePlan;
|
|
1246
1235
|
private maintenanceNamespaces;
|
|
1247
1236
|
/**
|
|
1248
1237
|
* Fan out a maintenance job across all maintained namespaces (issue #1500).
|
|
@@ -1345,17 +1334,6 @@ declare class Orchestrator {
|
|
|
1345
1334
|
* Returns true if the sync succeeded (QMD now available), false otherwise.
|
|
1346
1335
|
*/
|
|
1347
1336
|
startupSearchSync(signal?: AbortSignal): Promise<boolean>;
|
|
1348
|
-
/**
|
|
1349
|
-
* Auto-register the engram-day-summary cron job in OpenClaw.
|
|
1350
|
-
* Reconciles model and timezone on every startup so config changes propagate.
|
|
1351
|
-
* Fire-and-forget — never blocks init or crashes on failure.
|
|
1352
|
-
* Issues #1474, #1475.
|
|
1353
|
-
*/
|
|
1354
|
-
private autoRegisterDaySummaryCron;
|
|
1355
|
-
private autoRegisterNightlyGovernanceCron;
|
|
1356
|
-
private autoRegisterProceduralMiningCron;
|
|
1357
|
-
private autoRegisterContradictionScanCron;
|
|
1358
|
-
private autoRegisterPatternReinforcementCron;
|
|
1359
1337
|
/**
|
|
1360
1338
|
* Run the pattern-reinforcement maintenance job (issue #687 PR 2/4).
|
|
1361
1339
|
*
|
|
@@ -1418,7 +1396,6 @@ declare class Orchestrator {
|
|
|
1418
1396
|
runDeepSleepGovernanceFanout(options?: {
|
|
1419
1397
|
dryRun?: boolean;
|
|
1420
1398
|
}): Promise<NamespaceMaintenanceSummary>;
|
|
1421
|
-
private autoRegisterGraphEdgeDecayCron;
|
|
1422
1399
|
runLiveConnectors(options?: {
|
|
1423
1400
|
force?: boolean;
|
|
1424
1401
|
abortSignal?: AbortSignal;
|
|
@@ -1755,13 +1732,12 @@ declare class Orchestrator {
|
|
|
1755
1732
|
limit?: number;
|
|
1756
1733
|
}): Promise<TierMigrationCycleSummary>;
|
|
1757
1734
|
private maybeScheduleConsolidation;
|
|
1758
|
-
|
|
1735
|
+
requestQmdMaintenance(): void;
|
|
1759
1736
|
/**
|
|
1760
1737
|
* Public entrypoint for tool-driven QMD maintenance requests.
|
|
1761
|
-
*
|
|
1738
|
+
* Delegates to the maintenance scheduler (issue #1526 PR1).
|
|
1762
1739
|
*/
|
|
1763
1740
|
requestQmdMaintenanceForTool(reason: string): void;
|
|
1764
|
-
private runQmdMaintenance;
|
|
1765
1741
|
private persistExtraction;
|
|
1766
1742
|
private indexPersistedMemory;
|
|
1767
1743
|
/**
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ import './transcript.js';
|
|
|
6
6
|
import './summarizer.js';
|
|
7
7
|
import './local-llm.js';
|
|
8
8
|
import './fallback-llm.js';
|
|
9
|
+
import './orchestration/maintenance.js';
|
|
9
10
|
import './live-connectors-runner.js';
|
|
10
|
-
export { L as BulkImportBatchIngestResult, M as BulkImportBatchPartialFailureError, N as GraphRecallRankedResult, Q as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, T as QmdRecallSnapshot, U as RecallInvocationOptions, V as RecallModeDecision, X as appendMemoryToGraphContext, Y as blendGraphExpandedRecallScore, Z as buildCompressionGuidelinesMarkdown, _ as buildMemoryPathById, $ as computeArtifactCandidateFetchLimit, a0 as computeArtifactRecallLimit, a1 as computeQmdHybridFetchLimit, a2 as dedupeEntitySynthesisEvidenceEntries, q as defaultWorkspaceDir, a3 as deriveTopicsFromExtraction, a4 as filterRecallCandidates, a5 as formatCompressionGuidelinesForRecall, a6 as graphPathRelativeToStorage, a7 as hasIdentityRecoveryIntent, a8 as isArtifactMemoryPath, a9 as lifecycleRecallScoreAdjustment, aa as mergeArtifactRecallCandidates, ab as mergeGraphExpandedResults, ac as resolveEffectiveIdentityInjectionMode, ad as resolveEffectiveRecallMode, ae as resolvePersistedMemoryRelativePath, af as resolveRecallModeDecision, ag as resolveRecallModeDecisionAsync, ah as resolveRecentThreadMemoryPaths, A as sanitizeSessionKeyForFilename, ai as shouldFilterLifecycleRecallCandidate, aj as summarizeGraphShadowComparison } from './orchestrator-
|
|
11
|
+
export { L as BulkImportBatchIngestResult, M as BulkImportBatchPartialFailureError, N as GraphRecallRankedResult, Q as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, T as QmdRecallSnapshot, U as RecallInvocationOptions, V as RecallModeDecision, X as appendMemoryToGraphContext, Y as blendGraphExpandedRecallScore, Z as buildCompressionGuidelinesMarkdown, _ as buildMemoryPathById, $ as computeArtifactCandidateFetchLimit, a0 as computeArtifactRecallLimit, a1 as computeQmdHybridFetchLimit, a2 as dedupeEntitySynthesisEvidenceEntries, q as defaultWorkspaceDir, a3 as deriveTopicsFromExtraction, a4 as filterRecallCandidates, a5 as formatCompressionGuidelinesForRecall, a6 as graphPathRelativeToStorage, a7 as hasIdentityRecoveryIntent, a8 as isArtifactMemoryPath, a9 as lifecycleRecallScoreAdjustment, aa as mergeArtifactRecallCandidates, ab as mergeGraphExpandedResults, ac as resolveEffectiveIdentityInjectionMode, ad as resolveEffectiveRecallMode, ae as resolvePersistedMemoryRelativePath, af as resolveRecallModeDecision, ag as resolveRecallModeDecisionAsync, ah as resolveRecentThreadMemoryPaths, A as sanitizeSessionKeyForFilename, ai as shouldFilterLifecycleRecallCandidate, aj as summarizeGraphShadowComparison } from './orchestrator-CNJCYjZ1.js';
|
|
11
12
|
import './model-registry.js';
|
|
12
13
|
import './relevance.js';
|
|
13
14
|
import './negative.js';
|
package/dist/orchestrator.js
CHANGED
|
@@ -28,8 +28,9 @@ import {
|
|
|
28
28
|
sanitizeSessionKeyForFilename,
|
|
29
29
|
shouldFilterLifecycleRecallCandidate,
|
|
30
30
|
summarizeGraphShadowComparison
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-W4MICQIZ.js";
|
|
32
32
|
import "./chunk-5KBNNUXS.js";
|
|
33
|
+
import "./chunk-6C2BMUZA.js";
|
|
33
34
|
import "./chunk-666A3MOW.js";
|
|
34
35
|
import "./chunk-7HYPN2GC.js";
|
|
35
36
|
import "./chunk-HHLLAQGZ.js";
|
|
@@ -93,8 +94,8 @@ import "./chunk-6HEM6HTQ.js";
|
|
|
93
94
|
import "./chunk-ZA2S2VLL.js";
|
|
94
95
|
import "./chunk-U2OBZSGG.js";
|
|
95
96
|
import "./chunk-EO5QWINU.js";
|
|
96
|
-
import "./chunk-WIWPSQYU.js";
|
|
97
97
|
import "./chunk-2PRQG7PV.js";
|
|
98
|
+
import "./chunk-WIWPSQYU.js";
|
|
98
99
|
import "./chunk-2F6NP3NT.js";
|
|
99
100
|
import "./chunk-TERNBNJB.js";
|
|
100
101
|
import "./chunk-3VVH6ZQW.js";
|
|
@@ -105,7 +106,8 @@ import "./chunk-PONNZ54D.js";
|
|
|
105
106
|
import "./chunk-S4DDLTPX.js";
|
|
106
107
|
import "./chunk-SFQ6QNL7.js";
|
|
107
108
|
import "./chunk-33JBK2XP.js";
|
|
108
|
-
import "./chunk-
|
|
109
|
+
import "./chunk-HXNMDPHN.js";
|
|
110
|
+
import "./chunk-4IQNAOP3.js";
|
|
109
111
|
import "./chunk-W4ELOUNX.js";
|
|
110
112
|
import "./chunk-KFY3SGN7.js";
|
|
111
113
|
import "./chunk-TQNRI55H.js";
|
|
@@ -150,16 +152,16 @@ import "./chunk-FF4KLI5W.js";
|
|
|
150
152
|
import "./chunk-AFWEUTMS.js";
|
|
151
153
|
import "./chunk-CI7RKSRE.js";
|
|
152
154
|
import "./chunk-6HMYUWXR.js";
|
|
153
|
-
import "./chunk-
|
|
154
|
-
import "./chunk-
|
|
155
|
-
import "./chunk-5CEJH5ZN.js";
|
|
156
|
-
import "./chunk-WRFKZEO6.js";
|
|
157
|
-
import "./chunk-CYEPCZN5.js";
|
|
158
|
-
import "./chunk-LQ6JI4VH.js";
|
|
155
|
+
import "./chunk-E6BOD3UJ.js";
|
|
156
|
+
import "./chunk-6ZNIUGXB.js";
|
|
159
157
|
import "./chunk-SANZHXY2.js";
|
|
160
|
-
import "./chunk-AER6MT24.js";
|
|
161
158
|
import "./chunk-EHISUJFN.js";
|
|
159
|
+
import "./chunk-TAPSNIMA.js";
|
|
160
|
+
import "./chunk-YQGHW5ML.js";
|
|
161
|
+
import "./chunk-CYEPCZN5.js";
|
|
162
|
+
import "./chunk-LD53WPMU.js";
|
|
162
163
|
import "./chunk-CINZGPSJ.js";
|
|
164
|
+
import "./chunk-AER6MT24.js";
|
|
163
165
|
import "./chunk-ZFXCQPNO.js";
|
|
164
166
|
import "./chunk-DCWIQFNA.js";
|
|
165
167
|
import "./chunk-XBZQRZ6G.js";
|
package/dist/search/factory.js
CHANGED
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-5CEJH5ZN.js";
|
|
7
|
-
import "../chunk-WRFKZEO6.js";
|
|
8
|
-
import "../chunk-CYEPCZN5.js";
|
|
9
|
-
import "../chunk-LQ6JI4VH.js";
|
|
5
|
+
} from "../chunk-6ZNIUGXB.js";
|
|
10
6
|
import "../chunk-SANZHXY2.js";
|
|
11
|
-
import "../chunk-AER6MT24.js";
|
|
12
7
|
import "../chunk-EHISUJFN.js";
|
|
8
|
+
import "../chunk-TAPSNIMA.js";
|
|
9
|
+
import "../chunk-YQGHW5ML.js";
|
|
10
|
+
import "../chunk-CYEPCZN5.js";
|
|
11
|
+
import "../chunk-LD53WPMU.js";
|
|
13
12
|
import "../chunk-CINZGPSJ.js";
|
|
13
|
+
import "../chunk-AER6MT24.js";
|
|
14
14
|
import "../chunk-DCWIQFNA.js";
|
|
15
15
|
import "../chunk-XBZQRZ6G.js";
|
|
16
16
|
import "../chunk-KCQA46NR.js";
|
package/dist/search/index.js
CHANGED
|
@@ -2,29 +2,29 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-6ZNIUGXB.js";
|
|
6
|
+
import {
|
|
7
|
+
RemoteSearchBackend
|
|
8
|
+
} from "../chunk-SANZHXY2.js";
|
|
9
|
+
import {
|
|
10
|
+
EmbedHelper
|
|
11
|
+
} from "../chunk-EHISUJFN.js";
|
|
6
12
|
import {
|
|
7
13
|
LanceDbBackend
|
|
8
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-TAPSNIMA.js";
|
|
9
15
|
import {
|
|
10
16
|
MeilisearchBackend
|
|
11
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-YQGHW5ML.js";
|
|
12
18
|
import {
|
|
13
19
|
NoopSearchBackend
|
|
14
20
|
} from "../chunk-CYEPCZN5.js";
|
|
15
21
|
import {
|
|
16
22
|
OramaBackend
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import
|
|
19
|
-
RemoteSearchBackend
|
|
20
|
-
} from "../chunk-SANZHXY2.js";
|
|
23
|
+
} from "../chunk-LD53WPMU.js";
|
|
24
|
+
import "../chunk-CINZGPSJ.js";
|
|
21
25
|
import {
|
|
22
26
|
scanMemoryDir
|
|
23
27
|
} from "../chunk-AER6MT24.js";
|
|
24
|
-
import {
|
|
25
|
-
EmbedHelper
|
|
26
|
-
} from "../chunk-EHISUJFN.js";
|
|
27
|
-
import "../chunk-CINZGPSJ.js";
|
|
28
28
|
import "../chunk-DCWIQFNA.js";
|
|
29
29
|
import "../chunk-XBZQRZ6G.js";
|
|
30
30
|
import "../chunk-KCQA46NR.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LanceDbBackend
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-AER6MT24.js";
|
|
3
|
+
} from "../chunk-TAPSNIMA.js";
|
|
5
4
|
import "../chunk-CINZGPSJ.js";
|
|
5
|
+
import "../chunk-AER6MT24.js";
|
|
6
6
|
import "../chunk-YNQ6DFSV.js";
|
|
7
7
|
import "../chunk-5GPPACXK.js";
|
|
8
8
|
import "../chunk-VS2IYZRU.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MeilisearchBackend
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-AER6MT24.js";
|
|
3
|
+
} from "../chunk-YQGHW5ML.js";
|
|
5
4
|
import "../chunk-CINZGPSJ.js";
|
|
5
|
+
import "../chunk-AER6MT24.js";
|
|
6
6
|
import "../chunk-YNQ6DFSV.js";
|
|
7
7
|
import "../chunk-5GPPACXK.js";
|
|
8
8
|
import "../chunk-VS2IYZRU.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OramaBackend,
|
|
3
3
|
resolveOramaCollectionDbFilePath
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-AER6MT24.js";
|
|
4
|
+
} from "../chunk-LD53WPMU.js";
|
|
6
5
|
import "../chunk-CINZGPSJ.js";
|
|
6
|
+
import "../chunk-AER6MT24.js";
|
|
7
7
|
import "../chunk-YNQ6DFSV.js";
|
|
8
8
|
import "../chunk-5GPPACXK.js";
|
|
9
9
|
import "../chunk-VS2IYZRU.js";
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
import "../chunk-2DL3OFLD.js";
|
|
5
5
|
import "../chunk-G4IAEX6D.js";
|
|
6
6
|
import "../chunk-765K3SAT.js";
|
|
7
|
-
import "../chunk-J4EB7DNW.js";
|
|
8
7
|
import "../chunk-WEHSQBFR.js";
|
|
8
|
+
import "../chunk-J4EB7DNW.js";
|
|
9
9
|
import "../chunk-UI3NYK34.js";
|
|
10
10
|
import "../chunk-GCGJW34D.js";
|
|
11
11
|
import "../chunk-PZ5AY32C.js";
|
package/dist/transfer/backup.js
CHANGED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
backupMemoryDir
|
|
3
3
|
} from "../chunk-2NLLXCJG.js";
|
|
4
4
|
import "../chunk-765K3SAT.js";
|
|
5
|
-
import "../chunk-J4EB7DNW.js";
|
|
6
5
|
import "../chunk-X7Y7WX73.js";
|
|
6
|
+
import "../chunk-J4EB7DNW.js";
|
|
7
7
|
import "../chunk-BJMBJZ2Y.js";
|
|
8
8
|
import "../chunk-UKJAGEXH.js";
|
|
9
9
|
import "../chunk-FP2373TW.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exportCapsule,
|
|
3
3
|
isValidCapsuleSince
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-J4EB7DNW.js";
|
|
4
|
+
} from "../chunk-KQAFEZQX.js";
|
|
6
5
|
import "../chunk-WEHSQBFR.js";
|
|
7
6
|
import "../chunk-X7Y7WX73.js";
|
|
7
|
+
import "../chunk-J4EB7DNW.js";
|
|
8
8
|
import "../chunk-BJMBJZ2Y.js";
|
|
9
9
|
import "../chunk-UKJAGEXH.js";
|
|
10
10
|
import "../chunk-FP2373TW.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.692",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -1646,6 +1646,16 @@
|
|
|
1646
1646
|
"remnic-source": "./src/orchestrator.ts",
|
|
1647
1647
|
"import": "./dist/orchestrator.js"
|
|
1648
1648
|
},
|
|
1649
|
+
"./orchestration/maintenance": {
|
|
1650
|
+
"types": "./dist/orchestration/maintenance.d.ts",
|
|
1651
|
+
"remnic-source": "./src/orchestration/maintenance.ts",
|
|
1652
|
+
"import": "./dist/orchestration/maintenance.js"
|
|
1653
|
+
},
|
|
1654
|
+
"./orchestration/maintenance.js": {
|
|
1655
|
+
"types": "./dist/orchestration/maintenance.d.ts",
|
|
1656
|
+
"remnic-source": "./src/orchestration/maintenance.ts",
|
|
1657
|
+
"import": "./dist/orchestration/maintenance.js"
|
|
1658
|
+
},
|
|
1649
1659
|
"./page-versioning": {
|
|
1650
1660
|
"types": "./dist/page-versioning.d.ts",
|
|
1651
1661
|
"remnic-source": "./src/page-versioning.ts",
|
|
@@ -2931,7 +2941,7 @@
|
|
|
2931
2941
|
"core"
|
|
2932
2942
|
],
|
|
2933
2943
|
"peerDependencies": {
|
|
2934
|
-
"@remnic/coding-graph": "^9.3.
|
|
2944
|
+
"@remnic/coding-graph": "^9.3.692"
|
|
2935
2945
|
},
|
|
2936
2946
|
"peerDependenciesMeta": {
|
|
2937
2947
|
"@remnic/coding-graph": {
|