@fnndsc/salsa 3.5.1 → 3.6.1

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 (76) hide show
  1. package/README.md +3 -3
  2. package/dist/connect/index.d.ts +11 -0
  3. package/dist/connect/index.js +11 -0
  4. package/dist/connect/index.js.map +1 -1
  5. package/dist/dag/feedJoins.js +8 -7
  6. package/dist/dag/feedJoins.js.map +1 -1
  7. package/dist/feeds/index.d.ts +15 -2
  8. package/dist/feeds/index.js.map +1 -1
  9. package/dist/files/index.d.ts +7 -0
  10. package/dist/files/index.js +12 -11
  11. package/dist/files/index.js.map +1 -1
  12. package/dist/files/regular_content.js +11 -3
  13. package/dist/files/regular_content.js.map +1 -1
  14. package/dist/groups/index.d.ts +59 -0
  15. package/dist/groups/index.js +89 -0
  16. package/dist/groups/index.js.map +1 -1
  17. package/dist/groups/membershipRevision.d.ts +19 -0
  18. package/dist/groups/membershipRevision.js +29 -0
  19. package/dist/groups/membershipRevision.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.js +5 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/jobs/jobOps.d.ts +4 -9
  24. package/dist/jobs/jobOps.js +77 -39
  25. package/dist/jobs/jobOps.js.map +1 -1
  26. package/dist/pipelines/diagram.js +19 -9
  27. package/dist/pipelines/diagram.js.map +1 -1
  28. package/dist/pipelines/index.d.ts +28 -5
  29. package/dist/pipelines/index.js +118 -57
  30. package/dist/pipelines/index.js.map +1 -1
  31. package/dist/pipelines/invocation.d.ts +80 -0
  32. package/dist/pipelines/invocation.js +290 -0
  33. package/dist/pipelines/invocation.js.map +1 -0
  34. package/dist/pipelines/manifest.d.ts +88 -0
  35. package/dist/pipelines/manifest.js +216 -0
  36. package/dist/pipelines/manifest.js.map +1 -0
  37. package/dist/plugins/index.d.ts +29 -0
  38. package/dist/plugins/index.js +51 -10
  39. package/dist/plugins/index.js.map +1 -1
  40. package/dist/plugins/internal/plugin_executeNewFeed.d.ts +0 -14
  41. package/dist/plugins/internal/plugin_executeNewFeed.js +3 -3
  42. package/dist/plugins/internal/plugin_executeNewFeed.js.map +1 -1
  43. package/dist/plugins/plugin_register.js +5 -5
  44. package/dist/plugins/plugin_register.js.map +1 -1
  45. package/dist/plugins/store_import.js +1 -1
  46. package/dist/plugins/store_import.js.map +1 -1
  47. package/dist/retrieve/watch.d.ts +114 -0
  48. package/dist/retrieve/watch.js +358 -0
  49. package/dist/retrieve/watch.js.map +1 -0
  50. package/dist/store/index.d.ts +17 -4
  51. package/dist/store/index.js +9 -4
  52. package/dist/store/index.js.map +1 -1
  53. package/dist/users/index.d.ts +36 -0
  54. package/dist/users/index.js +50 -0
  55. package/dist/users/index.js.map +1 -0
  56. package/dist/vfs/dispatcher.d.ts +11 -0
  57. package/dist/vfs/dispatcher.js +37 -6
  58. package/dist/vfs/dispatcher.js.map +1 -1
  59. package/dist/vfs/index.d.ts +1 -0
  60. package/dist/vfs/index.js +3 -0
  61. package/dist/vfs/index.js.map +1 -1
  62. package/dist/vfs/provider.d.ts +13 -0
  63. package/dist/vfs/providers/etc.d.ts +2 -0
  64. package/dist/vfs/providers/etc.js +41 -2
  65. package/dist/vfs/providers/etc.js.map +1 -1
  66. package/dist/vfs/providers/native.js +41 -7
  67. package/dist/vfs/providers/native.js.map +1 -1
  68. package/dist/vfs/providers/pacs.d.ts +13 -1
  69. package/dist/vfs/providers/pacs.js +86 -107
  70. package/dist/vfs/providers/pacs.js.map +1 -1
  71. package/dist/vfs/providers/pacsHelpers.js +9 -5
  72. package/dist/vfs/providers/pacsHelpers.js.map +1 -1
  73. package/dist/vfs/providers/proc.d.ts +34 -1
  74. package/dist/vfs/providers/proc.js +314 -84
  75. package/dist/vfs/providers/proc.js.map +1 -1
  76. package/package.json +11 -8
@@ -12,6 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.PacsVfsProvider = void 0;
14
14
  const cumin_1 = require("@fnndsc/cumin");
15
+ const watch_js_1 = require("../../retrieve/watch.js");
15
16
  const sort_js_1 = require("../sort.js");
16
17
  const pacsHelpers_js_1 = require("./pacsHelpers.js");
17
18
  const index_js_1 = require("../../pacs/index.js");
@@ -19,28 +20,6 @@ const index_js_2 = require("../../files/index.js");
19
20
  const path_1 = __importDefault(require("path"));
20
21
  const chalk_1 = __importDefault(require("chalk"));
21
22
  const pacs_content_js_1 = require("./pacs_content.js");
22
- /**
23
- * Resolves the folder path on ChRIS storage for a retrieved series.
24
- *
25
- * @param seriesInstanceUID - The Series Instance UID to resolve.
26
- * @returns Promise resolving to the folder path string or null on failure.
27
- */
28
- async function series_getFolderPath(seriesInstanceUID) {
29
- const client = await cumin_1.chrisConnection.client_get();
30
- if (!client) {
31
- return null;
32
- }
33
- const seriesList = await client.getPACSSeriesList({
34
- SeriesInstanceUID: seriesInstanceUID,
35
- limit: 1,
36
- });
37
- const seriesItems = seriesList.getItems();
38
- if (!seriesItems || seriesItems.length === 0) {
39
- return null;
40
- }
41
- const series = seriesItems[0];
42
- return series?.data?.folder_path || null;
43
- }
44
23
  function pacsRoot_list() {
45
24
  return (0, cumin_1.Ok)([{ name: "queries", type: "vfs", size: 0, owner: "root", date: new Date().toISOString() }]);
46
25
  }
@@ -126,16 +105,17 @@ function seriesToRetrieve_build(decoded, studyUID, seriesUID, src) {
126
105
  }
127
106
  const seriesArray = (0, pacsHelpers_js_1.series_extractFromStudy)(studyObj);
128
107
  const seriesToRetrieve = [];
108
+ const expected_of = (obj) => Number((0, pacsHelpers_js_1.tag_extractValue)(obj?.NumberOfSeriesRelatedInstances ?? 0)) || 0;
129
109
  if (seriesUID) {
130
110
  const seriesObj = (0, pacsHelpers_js_1.series_findByUID)(seriesArray, seriesUID);
131
111
  const desc = seriesObj ? (0, pacsHelpers_js_1.tag_extractValue)(seriesObj.SeriesDescription || "Series") : "Series";
132
- seriesToRetrieve.push({ uid: seriesUID, description: desc });
112
+ seriesToRetrieve.push({ uid: seriesUID, description: desc, expectedFiles: expected_of(seriesObj) });
133
113
  }
134
114
  else {
135
115
  for (const s of seriesArray) {
136
116
  const sUID = (0, pacsHelpers_js_1.tag_extractValue)(s.SeriesInstanceUID || s.uid);
137
117
  if (sUID) {
138
- seriesToRetrieve.push({ uid: sUID, description: (0, pacsHelpers_js_1.tag_extractValue)(s.SeriesDescription || "Series") });
118
+ seriesToRetrieve.push({ uid: sUID, description: (0, pacsHelpers_js_1.tag_extractValue)(s.SeriesDescription || "Series"), expectedFiles: expected_of(s) });
139
119
  }
140
120
  }
141
121
  }
@@ -156,98 +136,69 @@ async function pacsServer_resolve() {
156
136
  cumin_1.errorStack.stack_push("error", "cp: No PACS server available or configured in context.");
157
137
  return (0, cumin_1.Err)();
158
138
  }
159
- async function retrieve_pollUntilComplete(syntheticQueryId, seriesUID, maxAttempts) {
160
- let attempts = 0;
161
- while (attempts < maxAttempts) {
162
- attempts++;
163
- await new Promise((resolve) => setTimeout(resolve, 5000));
164
- const statusResult = await (0, index_js_1.pacsRetrieve_statusForQuery)(syntheticQueryId);
165
- if (!statusResult.ok || !statusResult.value) {
166
- console.log(chalk_1.default.yellow(` [Attempt ${attempts}/${maxAttempts}] Failed to fetch status report, retrying...`));
167
- continue;
168
- }
169
- const statusReport = statusResult.value;
170
- let totalExpected = 0;
171
- let totalActual = 0;
172
- let anyPulling = false;
173
- let allPulled = true;
174
- let anyError = false;
175
- if (statusReport.studies) {
176
- for (const s of statusReport.studies) {
177
- if (s.series) {
178
- for (const ser of s.series) {
179
- if (String(ser.seriesInstanceUID) === String(seriesUID)) {
180
- totalExpected = Number(ser.expectedFiles) || 0;
181
- totalActual = Number(ser.actualFiles) || 0;
182
- if (ser.status === "pulling")
183
- anyPulling = true;
184
- if (ser.status !== "pulled")
185
- allPulled = false;
186
- if (ser.status === "error")
187
- anyError = true;
188
- }
189
- }
139
+ async function series_retrieveAndCopy(seriesItem, studyUID, pacsserver, dest, idx, total) {
140
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.cyan(`\n[PACS Retrieve ${idx + 1}/${total}] Processing series: ${seriesItem.description} (${seriesItem.uid})...`)}\n`);
141
+ const client = await cumin_1.chrisConnection.client_get();
142
+ if (!client) {
143
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(" ✗ Not connected to ChRIS.")}\n`);
144
+ return false;
145
+ }
146
+ // One retrieve engine for cp and pull alike: bounded, retried firing plus
147
+ // the LONK watch, replacing this provider's former 5-second polling loop.
148
+ const task = (0, watch_js_1.retrieveTask_make)({
149
+ label: seriesItem.description,
150
+ seriesUID: seriesItem.uid,
151
+ studyUID,
152
+ pacsName: pacsserver,
153
+ // The decode's instance count enables the idempotency skip: a series
154
+ // already fully registered in CUBE is copied without refiring.
155
+ expectedFiles: seriesItem.expectedFiles,
156
+ });
157
+ const alreadyThere = await (0, watch_js_1.retrieveTasks_skipComplete)([task]);
158
+ if (alreadyThere === 0) {
159
+ const events = {
160
+ task: (t, status) => {
161
+ if (status === 'running' && t.actualFiles > 0) {
162
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.gray(` ${t.actualFiles} file(s) received...`)}\n`);
190
163
  }
191
- }
192
- }
193
- const overallStatus = statusReport.retrieveStatus || "pending";
194
- console.log(chalk_1.default.gray(` [Attempt ${attempts}/${maxAttempts}] CUBE Status: ${overallStatus} | Files: ${totalActual}/${totalExpected}`));
195
- if (allPulled && totalExpected > 0 && totalActual === totalExpected) {
196
- console.log(chalk_1.default.green(` ✓ Pull complete: ${totalActual}/${totalExpected} files retrieved.`));
197
- return true;
198
- }
199
- if (overallStatus === "succeeded" || overallStatus === "completed") {
200
- console.log(chalk_1.default.green(` ✓ Pull complete (Status: ${overallStatus}).`));
201
- return true;
164
+ else if (status === 'error') {
165
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(" ✗ PACS retrieve reported an error.")}\n`);
166
+ }
167
+ else if (status === 'stalled' || status === 'timeout') {
168
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(` ✗ PACS retrieve ${status}.`)}\n`);
169
+ }
170
+ },
171
+ };
172
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.gray(" -> Firing PACS retrieve and watching progress...")}\n`);
173
+ const firingErrors = await (0, watch_js_1.retrieve_fireAndWatch)([task], pacsserver, client, events);
174
+ if (firingErrors > 0) {
175
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(` ✗ Retrieve could not be fired for series ${seriesItem.uid}.`)}\n`);
176
+ return false;
202
177
  }
203
- if (anyError || overallStatus === "error" || overallStatus === "failed") {
204
- console.error(chalk_1.default.red(" ✗ PACS retrieve reported error status."));
178
+ if (task.status !== 'pulled') {
205
179
  return false;
206
180
  }
207
181
  }
208
- console.error(chalk_1.default.red(" ✗ PACS retrieve timed out."));
209
- return false;
210
- }
211
- async function series_retrieveAndCopy(seriesItem, studyUID, pacsserver, dest, idx, total) {
212
- console.log(chalk_1.default.cyan(`\n[PACS Retrieve ${idx + 1}/${total}] Processing series: ${seriesItem.description} (${seriesItem.uid})...`));
213
- const queryPayload = {
214
- title: `Synthetic cp Query ${seriesItem.uid}`,
215
- query: JSON.stringify({ SeriesInstanceUID: seriesItem.uid, StudyInstanceUID: studyUID }),
216
- execute: false,
217
- };
218
- console.log(chalk_1.default.gray(" -> Registering synthetic query on CUBE..."));
219
- const queryResult = await (0, index_js_1.pacsQueries_create)(pacsserver, queryPayload);
220
- if (!queryResult.ok) {
221
- console.error(chalk_1.default.red(` ✗ Failed to create synthetic query for series ${seriesItem.uid}`));
222
- return false;
223
- }
224
- const syntheticQueryId = queryResult.value.id;
225
- console.log(chalk_1.default.gray(` -> Triggering PACS retrieve (Query ID: ${syntheticQueryId})...`));
226
- const retrieveResult = await (0, index_js_1.pacsRetrieve_create)(syntheticQueryId);
227
- if (!retrieveResult.ok) {
228
- console.error(chalk_1.default.red(` ✗ Failed to create PACS retrieve for query ${syntheticQueryId}`));
229
- return false;
182
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.gray(" -> Finding folder path on ChRIS storage...")}\n`);
183
+ let folderPath = task.cubePathDir;
184
+ if (folderPath === null) {
185
+ const stateResult = await (0, cumin_1.seriesStorage_resolve)(seriesItem.uid, { attempts: 4, delayMs: 2_000 });
186
+ folderPath = stateResult.ok ? stateResult.value.folderPath : null;
230
187
  }
231
- console.log(chalk_1.default.gray(" -> Pulling series data sequentially, polling progress..."));
232
- const finished = await retrieve_pollUntilComplete(syntheticQueryId, seriesItem.uid, 60);
233
- if (!finished)
234
- return false;
235
- console.log(chalk_1.default.gray(" -> Finding folder path on ChRIS storage..."));
236
- const folderPath = await series_getFolderPath(seriesItem.uid);
237
188
  if (!folderPath) {
238
- console.error(chalk_1.default.red(` ✗ No registered folder path found for series UID ${seriesItem.uid}`));
189
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(` ✗ No registered folder path found for series UID ${seriesItem.uid}`)}\n`);
239
190
  return false;
240
191
  }
241
192
  const absoluteFolderPath = folderPath.startsWith("/") ? folderPath : "/" + folderPath;
242
193
  const cleanDesc = seriesItem.description.replace(/[\s/]/g, "_");
243
194
  const targetSeriesFolder = path_1.default.posix.join(dest, `Series_${seriesItem.uid}_${cleanDesc}`);
244
- console.log(chalk_1.default.gray(` -> Copying series files to '${targetSeriesFolder}'...`));
195
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.gray(` -> Copying series files to '${targetSeriesFolder}'...`)}\n`);
245
196
  const copySuccess = await (0, index_js_2.files_copyRecursively)(absoluteFolderPath, targetSeriesFolder);
246
197
  if (!copySuccess) {
247
- console.error(chalk_1.default.red(` ✗ Recursive copy failed from '${absoluteFolderPath}' to '${targetSeriesFolder}'`));
198
+ (0, cumin_1.runtimeOutput_err)(`${chalk_1.default.red(` ✗ Recursive copy failed from '${absoluteFolderPath}' to '${targetSeriesFolder}'`)}\n`);
248
199
  return false;
249
200
  }
250
- console.log(chalk_1.default.green(` ✓ Series '${seriesItem.description}' copied successfully.`));
201
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.green(` ✓ Series '${seriesItem.description}' copied successfully.`)}\n`);
251
202
  return true;
252
203
  }
253
204
  /**
@@ -256,8 +207,20 @@ async function series_retrieveAndCopy(seriesItem, studyUID, pacsserver, dest, id
256
207
  class PacsVfsProvider {
257
208
  /** Prefix matches /net/pacs and subdirectories. */
258
209
  prefix = "/net/pacs";
259
- /** Cache for decoded PACS query results to avoid redundant API hits. */
210
+ /**
211
+ * Cache for decoded PACS query results to avoid redundant API hits.
212
+ *
213
+ * Contract (see docs/code-audit-2026-08.adoc, cache inventory): only a
214
+ * settled result — one carrying a structured `json` payload — is cached,
215
+ * since a query's payload is written once and never mutates afterwards; a
216
+ * payload-less decode (query still running, or empty) is re-fetched on the
217
+ * next access. The cache is size-bounded so a long-lived daemon does not
218
+ * grow it monotonically; eviction is oldest-inserted-first, which for
219
+ * monotonically increasing query ids approximates least-recently-created.
220
+ */
260
221
  _queryCache = new Map();
222
+ /** Upper bound on cached decoded query results. */
223
+ static QUERY_CACHE_MAX = 100;
261
224
  /**
262
225
  * Fetches the decoded query result, leveraging a cache to prevent redundant API calls.
263
226
  *
@@ -273,7 +236,17 @@ class PacsVfsProvider {
273
236
  if (!decodedResult.ok || !decodedResult.value) {
274
237
  return null;
275
238
  }
276
- this._queryCache.set(queryId, decodedResult.value);
239
+ // Cache settled results only: a decode without a structured payload may
240
+ // be a still-running query whose payload arrives later, and caching it
241
+ // would pin the empty view for the life of the process.
242
+ if (decodedResult.value.json !== undefined && decodedResult.value.json !== null) {
243
+ if (this._queryCache.size >= PacsVfsProvider.QUERY_CACHE_MAX) {
244
+ const oldest = this._queryCache.keys().next().value;
245
+ if (oldest !== undefined)
246
+ this._queryCache.delete(oldest);
247
+ }
248
+ this._queryCache.set(queryId, decodedResult.value);
249
+ }
277
250
  return decodedResult.value;
278
251
  }
279
252
  /**
@@ -309,16 +282,22 @@ class PacsVfsProvider {
309
282
  return studies_list(studies, options);
310
283
  const studyUID = parts[4].replace(/^Study_/, "").split("_")[0];
311
284
  const studyObj = (0, pacsHelpers_js_1.study_findByUID)(studies, studyUID);
312
- if (!studyObj)
313
- return (0, cumin_1.Ok)([]);
285
+ // A missing UID is "no such directory", never an empty one: rendering
286
+ // not-found as an empty listing hides typos and stale paths entirely.
287
+ if (!studyObj) {
288
+ cumin_1.errorStack.stack_push("error", `'${effectivePath}': No such study in query ${queryId}. Use 'ls' on the query directory to see available studies.`);
289
+ return (0, cumin_1.Err)();
290
+ }
314
291
  const seriesArr = (0, pacsHelpers_js_1.series_extractFromStudy)(studyObj);
315
292
  if (parts.length === 5)
316
293
  return series_list(seriesArr, options);
317
294
  if (parts.length === 6) {
318
295
  const seriesUID = parts[5].replace(/^Series_/, "").split("_")[0];
319
296
  const seriesObj = (0, pacsHelpers_js_1.series_findByUID)(seriesArr, seriesUID);
320
- if (!seriesObj)
321
- return (0, cumin_1.Ok)([]);
297
+ if (!seriesObj) {
298
+ cumin_1.errorStack.stack_push("error", `'${effectivePath}': No such series in study ${studyUID}.`);
299
+ return (0, cumin_1.Err)();
300
+ }
322
301
  return seriesFiles_list(seriesObj);
323
302
  }
324
303
  return (0, cumin_1.Ok)([]);
@@ -355,7 +334,7 @@ class PacsVfsProvider {
355
334
  if (!serverResult.ok)
356
335
  return false;
357
336
  const pacsserver = serverResult.value;
358
- console.log(chalk_1.default.cyan(`[PACS Retrieve] Initiating sequential gather of ${seriesToRetrieve.length} series...`));
337
+ (0, cumin_1.runtimeOutput_data)(`${chalk_1.default.cyan(`[PACS Retrieve] Initiating sequential gather of ${seriesToRetrieve.length} series...`)}\n`);
359
338
  let overallSuccess = true;
360
339
  for (let i = 0; i < seriesToRetrieve.length; i++) {
361
340
  const ok = await series_retrieveAndCopy(seriesToRetrieve[i], studyUID, pacsserver, dest, i, seriesToRetrieve.length);
@@ -1 +1 @@
1
- {"version":3,"file":"pacs.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pacs.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacs.ts"],"names":[],"mappings":"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"}
@@ -84,21 +84,25 @@ function series_findByUID(seriesArr, uid) {
84
84
  function cpSrc_parse(src) {
85
85
  const absolutePath = src.startsWith("/") ? src : "/" + src;
86
86
  const parts = absolutePath.split("/").filter(Boolean);
87
- if (parts.length < 4) {
87
+ // Locate the query folder by its `_qid:` marker rather than by position:
88
+ // real listing paths are /net/pacs/queries/<qfolder>/Study_/Series_, and a
89
+ // fixed-offset parse silently rejected every one of them.
90
+ const queryIdx = parts.findIndex((part) => /_qid:\d+/.test(part));
91
+ if (queryIdx === -1 || parts.length < queryIdx + 2) {
88
92
  cumin_1.errorStack.stack_push("error", `cp: Copying from '${src}' is not supported. Please specify a Study or Series directory.`);
89
93
  return (0, cumin_1.Err)();
90
94
  }
91
- const studyFolder = parts[3];
95
+ const studyFolder = parts[queryIdx + 1];
92
96
  if (!studyFolder.startsWith("Study_")) {
93
97
  cumin_1.errorStack.stack_push("error", `cp: Invalid PACS Study folder format: '${studyFolder}'`);
94
98
  return (0, cumin_1.Err)();
95
99
  }
96
100
  const studyUID = studyFolder.replace(/^Study_/, "").split("_")[0];
97
101
  let seriesUID;
98
- if (parts.length >= 5 && parts[4].startsWith("Series_")) {
99
- seriesUID = parts[4].replace(/^Series_/, "").split("_")[0];
102
+ if (parts.length >= queryIdx + 3 && parts[queryIdx + 2].startsWith("Series_")) {
103
+ seriesUID = parts[queryIdx + 2].replace(/^Series_/, "").split("_")[0];
100
104
  }
101
- const queryId = queryId_extractFromFolder(parts[2]);
105
+ const queryId = queryId_extractFromFolder(parts[queryIdx]);
102
106
  if (Number.isNaN(queryId)) {
103
107
  cumin_1.errorStack.stack_push("error", `cp: Invalid query ID in path '${src}'`);
104
108
  return (0, cumin_1.Err)();
@@ -1 +1 @@
1
- {"version":3,"file":"pacsHelpers.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacsHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pacsHelpers.js","sourceRoot":"","sources":["../../../src/vfs/providers/pacsHelpers.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,15 @@ export declare function procPath_parse(pathStr: string): {
43
43
  */
44
44
  export declare class ProcVfsProvider implements VFSProvider {
45
45
  readonly prefix: string;
46
+ /**
47
+ * Resolves the synthetic `data` link for one job only when navigation asks
48
+ * to follow it. This keeps `/proc` topology listings and recursive trees
49
+ * entirely cache-backed.
50
+ *
51
+ * @param pathStr - Absolute `/proc/jobs/.../data` path to resolve.
52
+ * @returns The authoritative CFS output path, or an error when absent.
53
+ */
54
+ linkTarget_resolve(pathStr: string): Promise<Result<string>>;
46
55
  list(pathStr: string, _options?: {
47
56
  sort?: 'name' | 'size' | 'date' | 'owner';
48
57
  reverse?: boolean;
@@ -90,6 +99,23 @@ export declare function feedStatus_refresh(feedID: number): Promise<void>;
90
99
  * @returns The single in-flight sweep promise.
91
100
  */
92
101
  export declare function procTopology_warmup(): Promise<void>;
102
+ /**
103
+ * Reconciles topology only for feed IDs selected by a restored-cache feed-index
104
+ * comparison. This preserves the checkpointed topology for unchanged terminal
105
+ * feeds while refreshing new, changed, and active feeds from CUBE.
106
+ *
107
+ * @param feedIDs - Canonical CUBE feed IDs whose topology must be reloaded.
108
+ * @returns A promise that resolves after all supplied feeds have been refreshed.
109
+ */
110
+ export declare function procTopology_reconcileFeeds(feedIDs: number[]): Promise<void>;
111
+ /**
112
+ * Continues a failed topology reconciliation from its retained global page or
113
+ * scoped feed set.
114
+ *
115
+ * @returns The resumed sweep promise, or the active sweep when one is running.
116
+ * @throws {Error} When there is no failed sweep continuation to retry.
117
+ */
118
+ export declare function procTopology_retry(): Promise<void>;
93
119
  /**
94
120
  * Reports the session topology sweep lifecycle.
95
121
  *
@@ -105,5 +131,12 @@ export declare function procTopology_status(): ProcTopologyStatus;
105
131
  export declare function procTopology_await(): Promise<void>;
106
132
  /**
107
133
  * Rebuilds the ProcCache, optionally scoped to one feed.
134
+ *
135
+ * A full refresh returns feeds whose topology merits reload after the feed-index
136
+ * comparison. Callers performing an explicit `proc refresh` can ignore that
137
+ * result and run a global topology sweep; restored startup uses it to stay scoped.
138
+ *
139
+ * @param feedID - One feed to force-refresh, or undefined for the full feed index.
140
+ * @returns IDs whose topology is new, changed, or currently active.
108
141
  */
109
- export declare function procCache_refresh(feedID?: number): Promise<void>;
142
+ export declare function procCache_refresh(feedID?: number): Promise<number[]>;