@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.
Files changed (87) hide show
  1. package/dist/access-boundary.d.ts +5 -4
  2. package/dist/access-boundary.js +11 -11
  3. package/dist/access-cli.js +18 -16
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +5 -4
  6. package/dist/access-http.js +15 -15
  7. package/dist/access-mcp.d.ts +5 -4
  8. package/dist/access-mcp.js +14 -14
  9. package/dist/access-operations.d.ts +5 -4
  10. package/dist/access-operations.js +13 -13
  11. package/dist/access-schema.js +3 -3
  12. package/dist/{access-service-CKnFdxH-.d.ts → access-service-DvApf9LZ.d.ts} +1 -1
  13. package/dist/access-service.d.ts +5 -4
  14. package/dist/access-service.js +10 -10
  15. package/dist/access-surface-catalog.d.ts +5 -4
  16. package/dist/bootstrap.d.ts +4 -3
  17. package/dist/{chunk-VH2DHBHG.js → chunk-2EN5WZQB.js} +2 -2
  18. package/dist/{chunk-QNG35H27.js → chunk-4IQNAOP3.js} +5 -141
  19. package/dist/chunk-4IQNAOP3.js.map +1 -0
  20. package/dist/chunk-6C2BMUZA.js +444 -0
  21. package/dist/chunk-6C2BMUZA.js.map +1 -0
  22. package/dist/{chunk-UUMYB3FR.js → chunk-6ZNIUGXB.js} +10 -10
  23. package/dist/{chunk-TSGREOYY.js → chunk-DO7MDZMU.js} +4 -4
  24. package/dist/{chunk-IPJD7WJH.js → chunk-E6BOD3UJ.js} +2 -2
  25. package/dist/{chunk-D3DNGQNQ.js → chunk-FM7KLRKN.js} +2 -2
  26. package/dist/chunk-HXNMDPHN.js +149 -0
  27. package/dist/chunk-HXNMDPHN.js.map +1 -0
  28. package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
  29. package/dist/{chunk-OOO7ZKOD.js → chunk-KYH53EFD.js} +3 -3
  30. package/dist/{chunk-LQ6JI4VH.js → chunk-LD53WPMU.js} +4 -4
  31. package/dist/{chunk-7UVDIWLL.js → chunk-NEILAC3H.js} +4 -4
  32. package/dist/{chunk-K7I24ZO2.js → chunk-O4ZIV62T.js} +20 -20
  33. package/dist/{chunk-NCRDCTEJ.js → chunk-SEK4XIDN.js} +5 -5
  34. package/dist/{chunk-5CEJH5ZN.js → chunk-TAPSNIMA.js} +4 -4
  35. package/dist/{chunk-QLRYXOAD.js → chunk-UDJLF3BO.js} +2 -2
  36. package/dist/{chunk-KO6OL4I7.js → chunk-V56S3A23.js} +3 -3
  37. package/dist/{chunk-TJ5IIQIR.js → chunk-W4MICQIZ.js} +39 -368
  38. package/dist/chunk-W4MICQIZ.js.map +1 -0
  39. package/dist/{chunk-WRFKZEO6.js → chunk-YQGHW5ML.js} +4 -4
  40. package/dist/{cli-CrSW_KRq.d.ts → cli-BjsY9Le7.d.ts} +2 -2
  41. package/dist/cli.d.ts +6 -5
  42. package/dist/cli.js +25 -24
  43. package/dist/contradiction/index.js +4 -4
  44. package/dist/explicit-capture.d.ts +4 -3
  45. package/dist/index.d.ts +6 -5
  46. package/dist/index.js +32 -30
  47. package/dist/index.js.map +1 -1
  48. package/dist/mcp-memory-inspector-app.d.ts +5 -4
  49. package/dist/namespaces/migrate.js +8 -8
  50. package/dist/namespaces/search.js +7 -7
  51. package/dist/operator-toolkit.js +11 -10
  52. package/dist/orchestration/maintenance.d.ts +112 -0
  53. package/dist/orchestration/maintenance.js +39 -0
  54. package/dist/orchestration/maintenance.js.map +1 -0
  55. package/dist/{orchestrator-DvswGK76.d.ts → orchestrator-CNJCYjZ1.d.ts} +9 -33
  56. package/dist/orchestrator.d.ts +2 -1
  57. package/dist/orchestrator.js +12 -10
  58. package/dist/search/factory.js +6 -6
  59. package/dist/search/index.js +11 -11
  60. package/dist/search/lancedb-backend.js +2 -2
  61. package/dist/search/meilisearch-backend.js +2 -2
  62. package/dist/search/orama-backend.js +2 -2
  63. package/dist/transfer/autodetect.js +1 -1
  64. package/dist/transfer/backup.js +1 -1
  65. package/dist/transfer/capsule-export.js +2 -2
  66. package/package.json +12 -2
  67. package/src/orchestration/maintenance.test.ts +738 -0
  68. package/src/orchestration/maintenance.ts +557 -0
  69. package/src/orchestrator-flush.test.ts +0 -599
  70. package/src/orchestrator.ts +33 -419
  71. package/dist/chunk-QNG35H27.js.map +0 -1
  72. package/dist/chunk-TJ5IIQIR.js.map +0 -1
  73. /package/dist/{chunk-VH2DHBHG.js.map → chunk-2EN5WZQB.js.map} +0 -0
  74. /package/dist/{chunk-UUMYB3FR.js.map → chunk-6ZNIUGXB.js.map} +0 -0
  75. /package/dist/{chunk-TSGREOYY.js.map → chunk-DO7MDZMU.js.map} +0 -0
  76. /package/dist/{chunk-IPJD7WJH.js.map → chunk-E6BOD3UJ.js.map} +0 -0
  77. /package/dist/{chunk-D3DNGQNQ.js.map → chunk-FM7KLRKN.js.map} +0 -0
  78. /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
  79. /package/dist/{chunk-OOO7ZKOD.js.map → chunk-KYH53EFD.js.map} +0 -0
  80. /package/dist/{chunk-LQ6JI4VH.js.map → chunk-LD53WPMU.js.map} +0 -0
  81. /package/dist/{chunk-7UVDIWLL.js.map → chunk-NEILAC3H.js.map} +0 -0
  82. /package/dist/{chunk-K7I24ZO2.js.map → chunk-O4ZIV62T.js.map} +0 -0
  83. /package/dist/{chunk-NCRDCTEJ.js.map → chunk-SEK4XIDN.js.map} +0 -0
  84. /package/dist/{chunk-5CEJH5ZN.js.map → chunk-TAPSNIMA.js.map} +0 -0
  85. /package/dist/{chunk-QLRYXOAD.js.map → chunk-UDJLF3BO.js.map} +0 -0
  86. /package/dist/{chunk-KO6OL4I7.js.map → chunk-V56S3A23.js.map} +0 -0
  87. /package/dist/{chunk-WRFKZEO6.js.map → chunk-YQGHW5ML.js.map} +0 -0
@@ -6,7 +6,7 @@ import { AnomalyDetectorResult } from './recall-audit-anomaly.js';
6
6
  import { ExplicitCaptureInput } from './explicit-capture.js';
7
7
  import { BudgetDecision } from './cross-namespace-budget.js';
8
8
  import { readMemoryGovernanceRunArtifact } from './maintenance/memory-governance.js';
9
- import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-DvswGK76.js';
9
+ import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-CNJCYjZ1.js';
10
10
  import { LiveConnectorsRunSummary } from './live-connectors-runner.js';
11
11
  import { LastRecallSnapshot } from './recall-state.js';
12
12
  import { GraphSnapshotRequest, GraphSnapshotResponse } from './graph-snapshot.js';
@@ -1,13 +1,13 @@
1
1
  import './storage.js';
2
2
  import './types-B1VHaf2w.js';
3
- export { C as CodingScopedWriteInput, l as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, m as EngramAccessActionConfidenceRequest, n as EngramAccessActionConfidenceResponse, o as EngramAccessBriefingRequest, p as EngramAccessBriefingResponse, q as EngramAccessCapsuleListResponse, r as EngramAccessDaySummaryRequest, s as EngramAccessEntityListResponse, t as EngramAccessEntityResponse, u as EngramAccessEntitySummary, v as EngramAccessHealthResponse, f as EngramAccessInputError, w as EngramAccessLcmCompactionFlushRequest, x as EngramAccessLcmCompactionFlushResponse, y as EngramAccessLcmCompactionRecordRequest, z as EngramAccessLcmCompactionRecordResponse, B as EngramAccessLcmSearchRequest, F as EngramAccessLcmSearchResponse, G as EngramAccessLcmStatusResponse, H as EngramAccessMaintenanceResponse, I as EngramAccessMemoryBrowseRequest, J as EngramAccessMemoryBrowseResponse, K as EngramAccessMemoryRecord, E as EngramAccessMemoryResponse, L as EngramAccessMemoryStoreRequest, M as EngramAccessMemorySummary, N as EngramAccessObserveMessage, O as EngramAccessObserveRequest, Q as EngramAccessObserveResponse, R as EngramAccessOfflineSyncApplyFileContentRequest, S as EngramAccessOfflineSyncApplyFileContentResponse, T as EngramAccessOfflineSyncApplyRequest, U as EngramAccessOfflineSyncApplyResponse, V as EngramAccessOfflineSyncFileContentRequest, W as EngramAccessOfflineSyncFileContentResponse, X as EngramAccessOfflineSyncFilesRequest, Y as EngramAccessOfflineSyncFilesResponse, Z as EngramAccessOfflineSyncSnapshotRequest, _ as EngramAccessOfflineSyncSnapshotResponse, $ as EngramAccessOfflineSyncSnapshotStreamResponse, a0 as EngramAccessQmdCollectionState, a1 as EngramAccessQmdHealthResponse, a2 as EngramAccessQualityResponse, a3 as EngramAccessRecallExplainRequest, a4 as EngramAccessRecallExplainResponse, a5 as EngramAccessRecallRequest, e as EngramAccessRecallResponse, a6 as EngramAccessReviewDispositionRequest, a7 as EngramAccessReviewDispositionResponse, a8 as EngramAccessReviewQueueResponse, a9 as EngramAccessScopeDebug, d as EngramAccessService, aa as EngramAccessSetCodingContextRequest, ab as EngramAccessSuggestionSubmitRequest, ac as EngramAccessTimelineResponse, ad as EngramAccessTrustZoneBrowseRequest, ae as EngramAccessTrustZoneBrowseResponse, af as EngramAccessTrustZoneDemoSeedRequest, ag as EngramAccessTrustZoneDemoSeedResponse, ah as EngramAccessTrustZonePromoteRequest, ai as EngramAccessTrustZonePromoteResponse, aj as EngramAccessTrustZoneRecordSummary, ak as EngramAccessTrustZoneStatusResponse, al as EngramAccessWriteEnvelope, c as EngramAccessWriteResponse, am as MemoryScopePlan, an as shapeMemorySummary } from './access-service-CKnFdxH-.js';
3
+ export { C as CodingScopedWriteInput, l as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, m as EngramAccessActionConfidenceRequest, n as EngramAccessActionConfidenceResponse, o as EngramAccessBriefingRequest, p as EngramAccessBriefingResponse, q as EngramAccessCapsuleListResponse, r as EngramAccessDaySummaryRequest, s as EngramAccessEntityListResponse, t as EngramAccessEntityResponse, u as EngramAccessEntitySummary, v as EngramAccessHealthResponse, f as EngramAccessInputError, w as EngramAccessLcmCompactionFlushRequest, x as EngramAccessLcmCompactionFlushResponse, y as EngramAccessLcmCompactionRecordRequest, z as EngramAccessLcmCompactionRecordResponse, B as EngramAccessLcmSearchRequest, F as EngramAccessLcmSearchResponse, G as EngramAccessLcmStatusResponse, H as EngramAccessMaintenanceResponse, I as EngramAccessMemoryBrowseRequest, J as EngramAccessMemoryBrowseResponse, K as EngramAccessMemoryRecord, E as EngramAccessMemoryResponse, L as EngramAccessMemoryStoreRequest, M as EngramAccessMemorySummary, N as EngramAccessObserveMessage, O as EngramAccessObserveRequest, Q as EngramAccessObserveResponse, R as EngramAccessOfflineSyncApplyFileContentRequest, S as EngramAccessOfflineSyncApplyFileContentResponse, T as EngramAccessOfflineSyncApplyRequest, U as EngramAccessOfflineSyncApplyResponse, V as EngramAccessOfflineSyncFileContentRequest, W as EngramAccessOfflineSyncFileContentResponse, X as EngramAccessOfflineSyncFilesRequest, Y as EngramAccessOfflineSyncFilesResponse, Z as EngramAccessOfflineSyncSnapshotRequest, _ as EngramAccessOfflineSyncSnapshotResponse, $ as EngramAccessOfflineSyncSnapshotStreamResponse, a0 as EngramAccessQmdCollectionState, a1 as EngramAccessQmdHealthResponse, a2 as EngramAccessQualityResponse, a3 as EngramAccessRecallExplainRequest, a4 as EngramAccessRecallExplainResponse, a5 as EngramAccessRecallRequest, e as EngramAccessRecallResponse, a6 as EngramAccessReviewDispositionRequest, a7 as EngramAccessReviewDispositionResponse, a8 as EngramAccessReviewQueueResponse, a9 as EngramAccessScopeDebug, d as EngramAccessService, aa as EngramAccessSetCodingContextRequest, ab as EngramAccessSuggestionSubmitRequest, ac as EngramAccessTimelineResponse, ad as EngramAccessTrustZoneBrowseRequest, ae as EngramAccessTrustZoneBrowseResponse, af as EngramAccessTrustZoneDemoSeedRequest, ag as EngramAccessTrustZoneDemoSeedResponse, ah as EngramAccessTrustZonePromoteRequest, ai as EngramAccessTrustZonePromoteResponse, aj as EngramAccessTrustZoneRecordSummary, ak as EngramAccessTrustZoneStatusResponse, al as EngramAccessWriteEnvelope, c as EngramAccessWriteResponse, am as MemoryScopePlan, an as shapeMemorySummary } from './access-service-DvApf9LZ.js';
4
4
  import './recall-explain-renderer.js';
5
5
  import './types-2NoBoRBM.js';
6
6
  import './recall-audit-anomaly.js';
7
7
  import './explicit-capture.js';
8
8
  import './cross-namespace-budget.js';
9
9
  import './maintenance/memory-governance.js';
10
- import './orchestrator-DvswGK76.js';
10
+ import './orchestrator-CNJCYjZ1.js';
11
11
  import './live-connectors-runner.js';
12
12
  import './recall-state.js';
13
13
  import './graph-snapshot.js';
@@ -41,6 +41,9 @@ import './session-integrity.js';
41
41
  import './summarizer.js';
42
42
  import './model-registry.js';
43
43
  import './resolve-provider-secret.js';
44
+ import './orchestration/maintenance.js';
45
+ import './namespaces/search.js';
46
+ import './catalog-BEWLjdOr.js';
44
47
  import './framework-CNDn2164.js';
45
48
  import './relevance.js';
46
49
  import './negative.js';
@@ -61,8 +64,6 @@ import './conversation-index/backend.js';
61
64
  import './conversation-index/chunker.js';
62
65
  import './faiss-adapter-BHecI1fF.js';
63
66
  import './runtime/child-process.js';
64
- import './catalog-BEWLjdOr.js';
65
- import './namespaces/search.js';
66
67
  import './shared-context/manager.js';
67
68
  import 'zod';
68
69
  import './compounding/engine.js';
@@ -3,7 +3,7 @@ import {
3
3
  EngramAccessInputError,
4
4
  EngramAccessService,
5
5
  shapeMemorySummary
6
- } from "./chunk-KO6OL4I7.js";
6
+ } from "./chunk-V56S3A23.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-ARV3AUOM.js";
@@ -20,16 +20,16 @@ import "./chunk-BMFZLLNI.js";
20
20
  import "./chunk-CI7RKSRE.js";
21
21
  import "./chunk-6HMYUWXR.js";
22
22
  import "./chunk-SAC5V6JT.js";
23
- import "./chunk-IPJD7WJH.js";
24
- import "./chunk-UUMYB3FR.js";
25
- import "./chunk-5CEJH5ZN.js";
26
- import "./chunk-WRFKZEO6.js";
27
- import "./chunk-CYEPCZN5.js";
28
- import "./chunk-LQ6JI4VH.js";
23
+ import "./chunk-E6BOD3UJ.js";
24
+ import "./chunk-6ZNIUGXB.js";
29
25
  import "./chunk-SANZHXY2.js";
30
- import "./chunk-AER6MT24.js";
31
26
  import "./chunk-EHISUJFN.js";
27
+ import "./chunk-TAPSNIMA.js";
28
+ import "./chunk-YQGHW5ML.js";
29
+ import "./chunk-CYEPCZN5.js";
30
+ import "./chunk-LD53WPMU.js";
32
31
  import "./chunk-CINZGPSJ.js";
32
+ import "./chunk-AER6MT24.js";
33
33
  import "./chunk-ZFXCQPNO.js";
34
34
  import "./chunk-DCWIQFNA.js";
35
35
  import "./chunk-XBZQRZ6G.js";
@@ -71,10 +71,10 @@ import "./chunk-FVQJYWH7.js";
71
71
  import "./chunk-G7D6GZ5J.js";
72
72
  import "./chunk-VF4XKTX3.js";
73
73
  import "./chunk-RGMVMVMF.js";
74
- import "./chunk-IPLYGWQF.js";
75
- import "./chunk-J4EB7DNW.js";
74
+ import "./chunk-KQAFEZQX.js";
76
75
  import "./chunk-WEHSQBFR.js";
77
76
  import "./chunk-X7Y7WX73.js";
77
+ import "./chunk-J4EB7DNW.js";
78
78
  import "./chunk-BJMBJZ2Y.js";
79
79
  import "./chunk-UKJAGEXH.js";
80
80
  import "./chunk-FP2373TW.js";
@@ -1,6 +1,6 @@
1
1
  import { OperationName } from './access-boundary.js';
2
2
  import 'zod';
3
- import './access-service-CKnFdxH-.js';
3
+ import './access-service-DvApf9LZ.js';
4
4
  import './storage.js';
5
5
  import './page-versioning.js';
6
6
  import './consolidation-operator.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-DvswGK76.js';
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 './compounding/engine.js';
61
62
  import './policy-runtime.js';
@@ -1,5 +1,5 @@
1
1
  import { P as PluginConfig } from './types-2NoBoRBM.js';
2
- import { O as Orchestrator } from './orchestrator-DvswGK76.js';
2
+ import { O as Orchestrator } from './orchestrator-CNJCYjZ1.js';
3
3
  import './types-ByK7T3L6.js';
4
4
  import './index-DJ9QWMw-.js';
5
5
  import './briefing.js';
@@ -20,6 +20,9 @@ import './model-registry.js';
20
20
  import './local-llm.js';
21
21
  import './fallback-llm.js';
22
22
  import './resolve-provider-secret.js';
23
+ import './orchestration/maintenance.js';
24
+ import './namespaces/search.js';
25
+ import './catalog-BEWLjdOr.js';
23
26
  import './live-connectors-runner.js';
24
27
  import './framework-CNDn2164.js';
25
28
  import './relevance.js';
@@ -46,8 +49,6 @@ import './conversation-index/backend.js';
46
49
  import './conversation-index/chunker.js';
47
50
  import './faiss-adapter-BHecI1fF.js';
48
51
  import './runtime/child-process.js';
49
- import './catalog-BEWLjdOr.js';
50
- import './namespaces/search.js';
51
52
  import './shared-context/manager.js';
52
53
  import 'zod';
53
54
  import './compounding/engine.js';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessInputError
3
- } from "./chunk-KO6OL4I7.js";
3
+ } from "./chunk-V56S3A23.js";
4
4
  import {
5
5
  expandTildePath
6
6
  } from "./chunk-EYIEWJNI.js";
@@ -104,4 +104,4 @@ export {
104
104
  listRegisteredOperations,
105
105
  __resetRegistryForTest
106
106
  };
107
- //# sourceMappingURL=chunk-VH2DHBHG.js.map
107
+ //# sourceMappingURL=chunk-2EN5WZQB.js.map
@@ -2043,148 +2043,12 @@ function itemCountForNamespace(result, namespace) {
2043
2043
  return result?.itemCount;
2044
2044
  }
2045
2045
 
2046
- // src/maintenance/namespace-maintenance-fanout.ts
2047
- var NAMESPACE_MAINTENANCE_JOBS = [
2048
- "qmd",
2049
- "pattern-reinforcement",
2050
- "contradiction-scan",
2051
- "semantic-consolidation",
2052
- "governance",
2053
- "lifecycle",
2054
- "graph-decay",
2055
- "fact-archival",
2056
- "tier-migration"
2057
- ];
2058
- async function runNamespaceMaintenanceFanout(options) {
2059
- if (options.enabled === false) {
2060
- return {
2061
- jobName: options.jobName,
2062
- generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
2063
- ran: 0,
2064
- skipped: 0,
2065
- failed: 0,
2066
- statuses: []
2067
- };
2068
- }
2069
- const plan = await planNamespaceMaintenance(options.config, {
2070
- jobName: options.jobName,
2071
- catalog: options.catalog
2072
- });
2073
- return runNamespaceMaintenancePlan(
2074
- options.config,
2075
- plan,
2076
- async (candidate) => {
2077
- return options.runner({
2078
- config: options.config,
2079
- candidate,
2080
- resolveStorage: options.resolveStorage
2081
- });
2082
- },
2083
- options.catalog
2084
- );
2085
- }
2086
- async function summarizeNamespaceMaintenanceHealth(config) {
2087
- const generatedAt = (/* @__PURE__ */ new Date()).toISOString();
2088
- const statuses = await readNamespaceMaintenanceStatuses(config);
2089
- const lastRanStatuses = await readNamespaceMaintenanceLastRanStatuses(config);
2090
- const lastRanByJobNs = /* @__PURE__ */ new Map();
2091
- for (const lr of lastRanStatuses) {
2092
- lastRanByJobNs.set(`${lr.jobName}\0${lr.namespace}`, lr);
2093
- }
2094
- const byJob = /* @__PURE__ */ new Map();
2095
- for (const status of statuses) {
2096
- const bucket = byJob.get(status.jobName);
2097
- if (bucket) {
2098
- bucket.push(status);
2099
- } else {
2100
- byJob.set(status.jobName, [status]);
2101
- }
2102
- }
2103
- const knownJobs = new Set(NAMESPACE_MAINTENANCE_JOBS);
2104
- for (const jobName of byJob.keys()) {
2105
- knownJobs.add(jobName);
2106
- }
2107
- const jobs = [];
2108
- let totalRan = 0;
2109
- let totalSkipped = 0;
2110
- let totalFailed = 0;
2111
- for (const jobName of [...knownJobs].sort()) {
2112
- const jobStatuses = byJob.get(jobName) ?? [];
2113
- const ran = jobStatuses.filter((s) => s.state === "ran").length;
2114
- const skipped = jobStatuses.filter((s) => s.state === "skipped").length;
2115
- const failed = jobStatuses.filter((s) => s.state === "failed").length;
2116
- const candidates = [];
2117
- for (const st of jobStatuses) {
2118
- if (typeof st.completedAt === "string") candidates.push(st.completedAt);
2119
- const lr = lastRanByJobNs.get(`${jobName}\0${st.namespace}`);
2120
- if (lr && typeof lr.completedAt === "string") candidates.push(lr.completedAt);
2121
- }
2122
- const lastRunAt = candidates.sort().at(-1) ?? null;
2123
- totalRan += ran;
2124
- totalSkipped += skipped;
2125
- totalFailed += failed;
2126
- jobs.push({
2127
- jobName,
2128
- ran,
2129
- skipped,
2130
- failed,
2131
- lastRunAt,
2132
- namespaces: jobStatuses
2133
- });
2134
- }
2135
- return {
2136
- generatedAt,
2137
- fanoutEnabled: config.maintenanceNamespaceFanoutEnabled !== false,
2138
- namespacesEnabled: config.namespacesEnabled,
2139
- maxNamespacesPerCycle: config.maintenanceMaxNamespacesPerCycle,
2140
- jobs,
2141
- totalRan,
2142
- totalSkipped,
2143
- totalFailed
2144
- };
2145
- }
2146
- function formatNamespaceMaintenanceHealthText(summary) {
2147
- const lines = [
2148
- "=== Namespace Maintenance ===",
2149
- "",
2150
- ` fanout: ${summary.fanoutEnabled ? "enabled" : "disabled"}`,
2151
- ` namespaces: ${summary.namespacesEnabled ? "enabled" : "disabled"}`,
2152
- ` max/cycle: ${summary.maxNamespacesPerCycle}`,
2153
- ` total ran: ${summary.totalRan}`,
2154
- ` total skipped: ${summary.totalSkipped}`,
2155
- ` total failed: ${summary.totalFailed}`,
2156
- ""
2157
- ];
2158
- if (summary.totalRan === 0 && summary.totalSkipped === 0 && summary.totalFailed === 0) {
2159
- lines.push(" (no maintenance status recorded yet)");
2160
- return lines.join("\n");
2161
- }
2162
- lines.push(" Per-job breakdown:");
2163
- for (const job of summary.jobs) {
2164
- const parts = [
2165
- `ran=${job.ran}`,
2166
- `skipped=${job.skipped}`,
2167
- `failed=${job.failed}`
2168
- ];
2169
- if (job.lastRunAt) {
2170
- parts.push(`last=${job.lastRunAt}`);
2171
- }
2172
- lines.push(` ${job.jobName}: ${parts.join(", ")}`);
2173
- const failedNs = job.namespaces.filter((n) => n.state === "failed");
2174
- for (const ns of failedNs) {
2175
- const detail = ns.error ? `: ${ns.error}` : "";
2176
- lines.push(` ! ${ns.namespace} failed (reason=${ns.reason ?? "unknown"})${detail}`);
2177
- }
2178
- }
2179
- return lines.join("\n");
2180
- }
2181
-
2182
2046
  export {
2183
2047
  NamespaceCatalog,
2184
2048
  planNamespaceMaintenance,
2185
- runNamespaceMaintenanceBatchPlan,
2186
- runNamespaceMaintenanceFanout,
2187
- summarizeNamespaceMaintenanceHealth,
2188
- formatNamespaceMaintenanceHealthText
2049
+ readNamespaceMaintenanceStatuses,
2050
+ readNamespaceMaintenanceLastRanStatuses,
2051
+ runNamespaceMaintenancePlan,
2052
+ runNamespaceMaintenanceBatchPlan
2189
2053
  };
2190
- //# sourceMappingURL=chunk-QNG35H27.js.map
2054
+ //# sourceMappingURL=chunk-4IQNAOP3.js.map