@fnndsc/salsa 3.2.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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/dist/compute/index.d.ts +17 -0
  4. package/dist/compute/index.js +33 -0
  5. package/dist/compute/index.js.map +1 -0
  6. package/dist/connect/index.d.ts +25 -0
  7. package/dist/connect/index.js +27 -0
  8. package/dist/connect/index.js.map +1 -0
  9. package/dist/context/index.d.ts +38 -0
  10. package/dist/context/index.js +58 -0
  11. package/dist/context/index.js.map +1 -0
  12. package/dist/feeds/index.d.ts +60 -0
  13. package/dist/feeds/index.js +101 -0
  14. package/dist/feeds/index.js.map +1 -0
  15. package/dist/files/index.d.ts +179 -0
  16. package/dist/files/index.js +562 -0
  17. package/dist/files/index.js.map +1 -0
  18. package/dist/files/pacs_content.d.ts +29 -0
  19. package/dist/files/pacs_content.js +121 -0
  20. package/dist/files/pacs_content.js.map +1 -0
  21. package/dist/files/pipeline_content.d.ts +22 -0
  22. package/dist/files/pipeline_content.js +31 -0
  23. package/dist/files/pipeline_content.js.map +1 -0
  24. package/dist/files/regular_content.d.ts +33 -0
  25. package/dist/files/regular_content.js +177 -0
  26. package/dist/files/regular_content.js.map +1 -0
  27. package/dist/groups/index.d.ts +21 -0
  28. package/dist/groups/index.js +37 -0
  29. package/dist/groups/index.js.map +1 -0
  30. package/dist/index.d.ts +21 -0
  31. package/dist/index.js +42 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/jobs/index.d.ts +6 -0
  34. package/dist/jobs/index.js +17 -0
  35. package/dist/jobs/index.js.map +1 -0
  36. package/dist/jobs/jobOps.d.ts +108 -0
  37. package/dist/jobs/jobOps.js +307 -0
  38. package/dist/jobs/jobOps.js.map +1 -0
  39. package/dist/pacs/index.d.ts +64 -0
  40. package/dist/pacs/index.js +91 -0
  41. package/dist/pacs/index.js.map +1 -0
  42. package/dist/pacs/resultDecode.d.ts +13 -0
  43. package/dist/pacs/resultDecode.js +19 -0
  44. package/dist/pacs/resultDecode.js.map +1 -0
  45. package/dist/pipelines/index.d.ts +58 -0
  46. package/dist/pipelines/index.js +194 -0
  47. package/dist/pipelines/index.js.map +1 -0
  48. package/dist/plugininstances/index.d.ts +15 -0
  49. package/dist/plugininstances/index.js +27 -0
  50. package/dist/plugininstances/index.js.map +1 -0
  51. package/dist/pluginmetas/index.d.ts +21 -0
  52. package/dist/pluginmetas/index.js +37 -0
  53. package/dist/pluginmetas/index.js.map +1 -0
  54. package/dist/plugins/index.d.ts +118 -0
  55. package/dist/plugins/index.js +247 -0
  56. package/dist/plugins/index.js.map +1 -0
  57. package/dist/plugins/internal/plugin_executeContinueFeed.d.ts +17 -0
  58. package/dist/plugins/internal/plugin_executeContinueFeed.js +65 -0
  59. package/dist/plugins/internal/plugin_executeContinueFeed.js.map +1 -0
  60. package/dist/plugins/internal/plugin_executeNewFeed.d.ts +32 -0
  61. package/dist/plugins/internal/plugin_executeNewFeed.js +97 -0
  62. package/dist/plugins/internal/plugin_executeNewFeed.js.map +1 -0
  63. package/dist/plugins/peer_search.d.ts +65 -0
  64. package/dist/plugins/peer_search.js +94 -0
  65. package/dist/plugins/peer_search.js.map +1 -0
  66. package/dist/plugins/plugin_executeInPlace.d.ts +69 -0
  67. package/dist/plugins/plugin_executeInPlace.js +66 -0
  68. package/dist/plugins/plugin_executeInPlace.js.map +1 -0
  69. package/dist/plugins/plugin_register.d.ts +64 -0
  70. package/dist/plugins/plugin_register.js +121 -0
  71. package/dist/plugins/plugin_register.js.map +1 -0
  72. package/dist/plugins/store_import.d.ts +64 -0
  73. package/dist/plugins/store_import.js +196 -0
  74. package/dist/plugins/store_import.js.map +1 -0
  75. package/dist/store/index.d.ts +15 -0
  76. package/dist/store/index.js +37 -0
  77. package/dist/store/index.js.map +1 -0
  78. package/dist/tags/index.d.ts +21 -0
  79. package/dist/tags/index.js +37 -0
  80. package/dist/tags/index.js.map +1 -0
  81. package/dist/vfs/dispatcher.d.ts +83 -0
  82. package/dist/vfs/dispatcher.js +192 -0
  83. package/dist/vfs/dispatcher.js.map +1 -0
  84. package/dist/vfs/index.d.ts +9 -0
  85. package/dist/vfs/index.js +26 -0
  86. package/dist/vfs/index.js.map +1 -0
  87. package/dist/vfs/provider.d.ts +80 -0
  88. package/dist/vfs/provider.js +11 -0
  89. package/dist/vfs/provider.js.map +1 -0
  90. package/dist/vfs/providers/etc.d.ts +44 -0
  91. package/dist/vfs/providers/etc.js +119 -0
  92. package/dist/vfs/providers/etc.js.map +1 -0
  93. package/dist/vfs/providers/native.d.ts +34 -0
  94. package/dist/vfs/providers/native.js +168 -0
  95. package/dist/vfs/providers/native.js.map +1 -0
  96. package/dist/vfs/providers/pacs.d.ts +56 -0
  97. package/dist/vfs/providers/pacs.js +413 -0
  98. package/dist/vfs/providers/pacs.js.map +1 -0
  99. package/dist/vfs/providers/pacsHelpers.d.ts +27 -0
  100. package/dist/vfs/providers/pacsHelpers.js +108 -0
  101. package/dist/vfs/providers/pacsHelpers.js.map +1 -0
  102. package/dist/vfs/providers/pacs_content.d.ts +27 -0
  103. package/dist/vfs/providers/pacs_content.js +137 -0
  104. package/dist/vfs/providers/pacs_content.js.map +1 -0
  105. package/dist/vfs/providers/proc.d.ts +62 -0
  106. package/dist/vfs/providers/proc.js +478 -0
  107. package/dist/vfs/providers/proc.js.map +1 -0
  108. package/dist/workflows/index.d.ts +21 -0
  109. package/dist/workflows/index.js +37 -0
  110. package/dist/workflows/index.js.map +1 -0
  111. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacs.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file Pure helpers for the PACS VFS provider.
3
+ *
4
+ * Tag extraction, path/query parsing, and study/series lookup — dependency-light
5
+ * (cumin only) so they load and unit-test without the provider's import cycle.
6
+ *
7
+ * @module
8
+ */
9
+ import { Result } from "@fnndsc/cumin";
10
+ /**
11
+ * Safely extracts a string value from a potentially object-wrapped DICOM tag.
12
+ *
13
+ * @param val - Potentially object-wrapped DICOM tag or raw string.
14
+ * @returns The string value of the DICOM tag.
15
+ */
16
+ export declare function tag_extractValue(val: unknown): string;
17
+ export declare function path_normalize(pathStr: string): string;
18
+ export declare function queryId_extractFromFolder(folder: string): number;
19
+ export declare function studies_extractFromDecoded(decodedJson: unknown): Record<string, unknown>[];
20
+ export declare function series_extractFromStudy(studyObj: Record<string, unknown>): Record<string, unknown>[];
21
+ export declare function study_findByUID(studies: Record<string, unknown>[], uid: string): Record<string, unknown> | undefined;
22
+ export declare function series_findByUID(seriesArr: Record<string, unknown>[], uid: string): Record<string, unknown> | undefined;
23
+ export declare function cpSrc_parse(src: string): Result<{
24
+ studyUID: string;
25
+ seriesUID?: string;
26
+ queryId: number;
27
+ }>;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tag_extractValue = tag_extractValue;
4
+ exports.path_normalize = path_normalize;
5
+ exports.queryId_extractFromFolder = queryId_extractFromFolder;
6
+ exports.studies_extractFromDecoded = studies_extractFromDecoded;
7
+ exports.series_extractFromStudy = series_extractFromStudy;
8
+ exports.study_findByUID = study_findByUID;
9
+ exports.series_findByUID = series_findByUID;
10
+ exports.cpSrc_parse = cpSrc_parse;
11
+ /**
12
+ * @file Pure helpers for the PACS VFS provider.
13
+ *
14
+ * Tag extraction, path/query parsing, and study/series lookup — dependency-light
15
+ * (cumin only) so they load and unit-test without the provider's import cycle.
16
+ *
17
+ * @module
18
+ */
19
+ const cumin_1 = require("@fnndsc/cumin");
20
+ /**
21
+ * Safely extracts a string value from a potentially object-wrapped DICOM tag.
22
+ *
23
+ * @param val - Potentially object-wrapped DICOM tag or raw string.
24
+ * @returns The string value of the DICOM tag.
25
+ */
26
+ function tag_extractValue(val) {
27
+ if (val && typeof val === "object") {
28
+ const record = val;
29
+ if ("value" in record) {
30
+ return String(record.value ?? "");
31
+ }
32
+ }
33
+ return String(val ?? "");
34
+ }
35
+ function path_normalize(pathStr) {
36
+ let p = pathStr.startsWith("/") ? pathStr : "/" + pathStr;
37
+ if (p.length > 1 && p.endsWith("/"))
38
+ p = p.slice(0, -1);
39
+ return p;
40
+ }
41
+ function queryId_extractFromFolder(folder) {
42
+ const match = /_qid:(\d+)/.exec(folder);
43
+ return match ? Number(match[1]) : NaN;
44
+ }
45
+ function studies_extractFromDecoded(decodedJson) {
46
+ let studiesObj;
47
+ if (decodedJson && typeof decodedJson === "object") {
48
+ const record = decodedJson;
49
+ if ("studies" in record)
50
+ studiesObj = record.studies;
51
+ else if ("Studies" in record)
52
+ studiesObj = record.Studies;
53
+ else if ("results" in record)
54
+ studiesObj = record.results;
55
+ else
56
+ studiesObj = decodedJson;
57
+ }
58
+ else {
59
+ studiesObj = decodedJson;
60
+ }
61
+ const arr = Array.isArray(studiesObj) ? studiesObj : [studiesObj];
62
+ return arr;
63
+ }
64
+ function series_extractFromStudy(studyObj) {
65
+ const arr = Array.isArray(studyObj.series) ? studyObj.series :
66
+ Array.isArray(studyObj.Series) ? studyObj.Series :
67
+ Array.isArray(studyObj.results) ? studyObj.results :
68
+ Array.isArray(studyObj.data) ? studyObj.data :
69
+ [];
70
+ return arr;
71
+ }
72
+ function study_findByUID(studies, uid) {
73
+ return studies.find((s) => {
74
+ const sUID = tag_extractValue(s.StudyInstanceUID || s.uid);
75
+ return sUID === uid;
76
+ });
77
+ }
78
+ function series_findByUID(seriesArr, uid) {
79
+ return seriesArr.find((s) => {
80
+ const sUID = tag_extractValue(s.SeriesInstanceUID || s.uid);
81
+ return sUID === uid;
82
+ });
83
+ }
84
+ function cpSrc_parse(src) {
85
+ const absolutePath = src.startsWith("/") ? src : "/" + src;
86
+ const parts = absolutePath.split("/").filter(Boolean);
87
+ if (parts.length < 4) {
88
+ cumin_1.errorStack.stack_push("error", `cp: Copying from '${src}' is not supported. Please specify a Study or Series directory.`);
89
+ return (0, cumin_1.Err)();
90
+ }
91
+ const studyFolder = parts[3];
92
+ if (!studyFolder.startsWith("Study_")) {
93
+ cumin_1.errorStack.stack_push("error", `cp: Invalid PACS Study folder format: '${studyFolder}'`);
94
+ return (0, cumin_1.Err)();
95
+ }
96
+ const studyUID = studyFolder.replace(/^Study_/, "").split("_")[0];
97
+ let seriesUID;
98
+ if (parts.length >= 5 && parts[4].startsWith("Series_")) {
99
+ seriesUID = parts[4].replace(/^Series_/, "").split("_")[0];
100
+ }
101
+ const queryId = queryId_extractFromFolder(parts[2]);
102
+ if (Number.isNaN(queryId)) {
103
+ cumin_1.errorStack.stack_push("error", `cp: Invalid query ID in path '${src}'`);
104
+ return (0, cumin_1.Err)();
105
+ }
106
+ return (0, cumin_1.Ok)({ studyUID, seriesUID, queryId });
107
+ }
108
+ //# sourceMappingURL=pacsHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacsHelpers.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacsHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file PACS VFS Content Handler.
3
+ *
4
+ * Implements specialized virtual file reading and content generation
5
+ * for PACS queries metadata.json and image_slices.dcm.
6
+ *
7
+ * @module
8
+ */
9
+ import { Result, PACSQueryDecodedResult } from "@fnndsc/cumin";
10
+ /**
11
+ * Reads virtual file content under '/net/pacs'.
12
+ *
13
+ * Handles pretty-printed JSON series details for metadata.json and blocks image_slices.dcm.
14
+ *
15
+ * @param pathStr - The absolute virtual path of the file to read.
16
+ * @param queryResult_fetch - Callback to fetch decoded PACS query results (leveraging cache).
17
+ * @returns Promise resolving to a Result containing the file contents as a string.
18
+ */
19
+ export declare function pacsVfs_read(pathStr: string, queryResult_fetch: (queryId: number) => Promise<PACSQueryDecodedResult | null>): Promise<Result<string>>;
20
+ /**
21
+ * Reads virtual file binary content under '/net/pacs'.
22
+ *
23
+ * @param pathStr - The absolute virtual path of the file to read.
24
+ * @param queryResult_fetch - Callback to fetch decoded PACS query results (leveraging cache).
25
+ * @returns Promise resolving to a Result containing the file contents as a Buffer.
26
+ */
27
+ export declare function pacsVfs_readBinary(pathStr: string, queryResult_fetch: (queryId: number) => Promise<PACSQueryDecodedResult | null>): Promise<Result<Buffer>>;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * @file PACS VFS Content Handler.
4
+ *
5
+ * Implements specialized virtual file reading and content generation
6
+ * for PACS queries metadata.json and image_slices.dcm.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.pacsVfs_read = pacsVfs_read;
12
+ exports.pacsVfs_readBinary = pacsVfs_readBinary;
13
+ const cumin_1 = require("@fnndsc/cumin");
14
+ /**
15
+ * Safely extracts a string value from a potentially object-wrapped DICOM tag.
16
+ *
17
+ * @param val - Potentially object-wrapped DICOM tag or raw string.
18
+ * @returns The string value of the DICOM tag.
19
+ */
20
+ function pacs_tagValueExtract(val) {
21
+ if (val && typeof val === "object") {
22
+ const record = val;
23
+ if ("value" in record) {
24
+ return String(record.value ?? "");
25
+ }
26
+ }
27
+ return String(val ?? "");
28
+ }
29
+ /**
30
+ * Reads virtual file content under '/net/pacs'.
31
+ *
32
+ * Handles pretty-printed JSON series details for metadata.json and blocks image_slices.dcm.
33
+ *
34
+ * @param pathStr - The absolute virtual path of the file to read.
35
+ * @param queryResult_fetch - Callback to fetch decoded PACS query results (leveraging cache).
36
+ * @returns Promise resolving to a Result containing the file contents as a string.
37
+ */
38
+ async function pacsVfs_read(pathStr, queryResult_fetch) {
39
+ try {
40
+ let effectivePath = pathStr.startsWith("/") ? pathStr : "/" + pathStr;
41
+ if (effectivePath.length > 1 && effectivePath.endsWith("/")) {
42
+ effectivePath = effectivePath.slice(0, -1);
43
+ }
44
+ const parts = effectivePath.split("/").filter(Boolean);
45
+ if (parts.length !== 7 || parts[0] !== "net" || parts[1] !== "pacs" || parts[2] !== "queries") {
46
+ cumin_1.errorStack.stack_push("error", `File not found: ${pathStr}`);
47
+ return (0, cumin_1.Err)();
48
+ }
49
+ const queryFolder = parts[3];
50
+ const studyFolder = parts[4];
51
+ const seriesFolder = parts[5];
52
+ const filename = parts[6];
53
+ const queryId = Number(queryFolder.split("_")[0]);
54
+ if (Number.isNaN(queryId)) {
55
+ cumin_1.errorStack.stack_push("error", `Invalid query ID in path '${pathStr}'`);
56
+ return (0, cumin_1.Err)();
57
+ }
58
+ if (filename === "image_slices.dcm") {
59
+ cumin_1.errorStack.stack_push("error", "image_slices.dcm is a virtual placeholder. Use the 'cp' command on the containing Study or Series directory to download the DICOM files.");
60
+ return (0, cumin_1.Err)();
61
+ }
62
+ if (filename !== "metadata.json") {
63
+ cumin_1.errorStack.stack_push("error", `File not found: ${pathStr}`);
64
+ return (0, cumin_1.Err)();
65
+ }
66
+ const decoded = await queryResult_fetch(queryId);
67
+ if (!decoded || !decoded.json) {
68
+ cumin_1.errorStack.stack_push("error", `PACS query ${queryId} has no result payload.`);
69
+ return (0, cumin_1.Err)();
70
+ }
71
+ const studyUID = studyFolder.replace(/^Study_/, "").split("_")[0];
72
+ const seriesUID = seriesFolder.replace(/^Series_/, "").split("_")[0];
73
+ const decodedJson = decoded.json;
74
+ let studiesObj;
75
+ if (decodedJson && typeof decodedJson === "object") {
76
+ const record = decodedJson;
77
+ if ("studies" in record) {
78
+ studiesObj = record.studies;
79
+ }
80
+ else if ("Studies" in record) {
81
+ studiesObj = record.Studies;
82
+ }
83
+ else if ("results" in record) {
84
+ studiesObj = record.results;
85
+ }
86
+ else {
87
+ studiesObj = decodedJson;
88
+ }
89
+ }
90
+ else {
91
+ studiesObj = decodedJson;
92
+ }
93
+ const studies = Array.isArray(studiesObj) ? studiesObj : [studiesObj];
94
+ const studyObj = studies.find((s) => {
95
+ const sUID = pacs_tagValueExtract(s.StudyInstanceUID || s.uid);
96
+ return sUID === studyUID;
97
+ });
98
+ if (!studyObj) {
99
+ cumin_1.errorStack.stack_push("error", `Study with UID ${studyUID} not found in query results.`);
100
+ return (0, cumin_1.Err)();
101
+ }
102
+ const seriesArray = Array.isArray(studyObj.series) ? studyObj.series :
103
+ Array.isArray(studyObj.Series) ? studyObj.Series :
104
+ Array.isArray(studyObj.results) ? studyObj.results :
105
+ Array.isArray(studyObj.data) ? studyObj.data :
106
+ [];
107
+ const seriesObj = seriesArray.find((s) => {
108
+ const sUID = pacs_tagValueExtract(s.SeriesInstanceUID || s.uid);
109
+ return sUID === seriesUID;
110
+ });
111
+ if (!seriesObj) {
112
+ cumin_1.errorStack.stack_push("error", `Series with UID ${seriesUID} not found in study results.`);
113
+ return (0, cumin_1.Err)();
114
+ }
115
+ return (0, cumin_1.Ok)(JSON.stringify(seriesObj, null, 2));
116
+ }
117
+ catch (error) {
118
+ const msg = error instanceof Error ? error.message : String(error);
119
+ cumin_1.errorStack.stack_push("error", `PACS VFS read failed: ${msg}`);
120
+ return (0, cumin_1.Err)();
121
+ }
122
+ }
123
+ /**
124
+ * Reads virtual file binary content under '/net/pacs'.
125
+ *
126
+ * @param pathStr - The absolute virtual path of the file to read.
127
+ * @param queryResult_fetch - Callback to fetch decoded PACS query results (leveraging cache).
128
+ * @returns Promise resolving to a Result containing the file contents as a Buffer.
129
+ */
130
+ async function pacsVfs_readBinary(pathStr, queryResult_fetch) {
131
+ const res = await pacsVfs_read(pathStr, queryResult_fetch);
132
+ if (res.ok) {
133
+ return (0, cumin_1.Ok)(Buffer.from(res.value, "utf-8"));
134
+ }
135
+ return (0, cumin_1.Err)();
136
+ }
137
+ //# sourceMappingURL=pacs_content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacs_content.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacs_content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @file /proc VFS Provider
3
+ *
4
+ * Surfaces ChRIS plugin instances as a navigable DAG under /proc/jobs/.
5
+ * Backed by ProcCache (topology only — no status stored).
6
+ *
7
+ * Status is always fetched live:
8
+ * - cat .../status → getPluginInstance(id)
9
+ * - ls -l /proc/jobs/N → jobs_statusBatch(allNodeIDs) — parallel
10
+ * - ls /proc/jobs → aggregate from ProcFeed job counters (no API)
11
+ *
12
+ * @module
13
+ */
14
+ import { ProcFeed, Result } from '@fnndsc/cumin';
15
+ import { VFSProvider, VFSItem, CpOptions } from '../provider.js';
16
+ /** Derives aggregate feed status from stored job counters — no API call. */
17
+ export declare function feedStatus_derive(feed: ProcFeed): string;
18
+ export declare function procPath_parse(pathStr: string): {
19
+ feedID: number | null;
20
+ instanceID: number | null;
21
+ virtualFile: string | null;
22
+ };
23
+ /**
24
+ * VFS provider exposing running jobs and feeds under the /proc namespace.
25
+ */
26
+ export declare class ProcVfsProvider implements VFSProvider {
27
+ readonly prefix: string;
28
+ list(pathStr: string, _options?: {
29
+ sort?: 'name' | 'size' | 'date' | 'owner';
30
+ reverse?: boolean;
31
+ }): Promise<Result<VFSItem[]>>;
32
+ read(pathStr: string): Promise<Result<string>>;
33
+ rm(pathStr: string, _options?: {
34
+ recursive?: boolean;
35
+ force?: boolean;
36
+ }): Promise<boolean>;
37
+ cp(_src: string, _dst: string, _options?: CpOptions): Promise<boolean>;
38
+ mv(_src: string, _dst: string): Promise<boolean>;
39
+ mkdir(_pathStr: string): Promise<boolean>;
40
+ touch(_pathStr: string): Promise<boolean>;
41
+ upload(_localPath: string, _remotePath: string): Promise<boolean>;
42
+ write(_pathStr: string, _content: string): Promise<boolean>;
43
+ }
44
+ /**
45
+ * Ensures instance topology is loaded for a feed without clearing existing data.
46
+ * Use this from proc find — it respects already-loaded feeds and the in-flight map.
47
+ * Use procCache_refresh(feedID) only when a forced reload is desired.
48
+ */
49
+ export declare function procFeed_ensureLoaded(feedID: number): Promise<void>;
50
+ /**
51
+ * Background topology warm-up — single paginated sweep of all plugin instances
52
+ * across all feeds. Replaces the per-feed fan-out that was O(feeds) round trips.
53
+ *
54
+ * Registers itself as the active sweep so that any concurrent
55
+ * feedInstances_ensureLoaded call waits for this sweep rather than launching
56
+ * its own per-feed API call.
57
+ */
58
+ export declare function procTopology_warmup(): Promise<void>;
59
+ /**
60
+ * Rebuilds the ProcCache, optionally scoped to one feed.
61
+ */
62
+ export declare function procCache_refresh(feedID?: number): Promise<void>;