@fnndsc/brasa 0.14.1 → 0.15.0
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/buildinfo.json +1 -1
- package/dist/builtins/fs/ls.d.ts +2 -0
- package/dist/builtins/fs/ls.js +3 -3
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/help.js +6 -1
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/proc.js +57 -1
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/procWatch.d.ts +69 -0
- package/dist/builtins/procWatch.js +215 -0
- package/dist/builtins/procWatch.js.map +1 -0
- package/dist/builtins/res/feed.diagram.d.ts +6 -4
- package/dist/builtins/res/feed.diagram.js +91 -30
- package/dist/builtins/res/feed.diagram.js.map +1 -1
- package/dist/core/ambient.d.ts +34 -0
- package/dist/core/ambient.js +38 -0
- package/dist/core/ambient.js.map +1 -0
- package/dist/core/engine.d.ts +26 -1
- package/dist/core/engine.js +13 -0
- package/dist/core/engine.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +40 -8
- package/dist/lib/vfs/vfs.js +63 -46
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/package.json +3 -3
package/dist/lib/vfs/vfs.js
CHANGED
|
@@ -10,16 +10,13 @@ import { vfsDispatcher } from '@fnndsc/salsa';
|
|
|
10
10
|
import { session } from '../../session/index.js';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import * as path from 'path';
|
|
13
|
+
import { ambient_publish, ambient_hasListeners } from '../../core/ambient.js';
|
|
13
14
|
import { grid_render, long_render } from '@fnndsc/chili/views/ls.js';
|
|
14
15
|
import { list_applySort } from '@fnndsc/chili/utils/sort.js';
|
|
15
16
|
import { listCache_get, Ok, Err, errorStack, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
16
17
|
import { spinner } from '../spinner.js';
|
|
17
18
|
import { error_stripDebugPrefix } from '../../builtins/utils.js';
|
|
18
19
|
import { listingItemsFromVfs_make } from './listing.js';
|
|
19
|
-
/**
|
|
20
|
-
* Virtual File System Router.
|
|
21
|
-
* Dispatches operations to Virtual or Native providers.
|
|
22
|
-
*/
|
|
23
20
|
export class VFS {
|
|
24
21
|
/**
|
|
25
22
|
* Gets data for a directory (Virtual or Native).
|
|
@@ -30,6 +27,51 @@ export class VFS {
|
|
|
30
27
|
* @returns Result<ListingItem[]> - Ok with items or Err with error message.
|
|
31
28
|
*/
|
|
32
29
|
async data_get(targetPath, options = {}) {
|
|
30
|
+
const resolved = await this.listing_get(targetPath, options);
|
|
31
|
+
return resolved.ok ? Ok(resolved.value.items) : Err();
|
|
32
|
+
}
|
|
33
|
+
/** Background revalidations in flight, one per path. */
|
|
34
|
+
revalidating = new Map();
|
|
35
|
+
/**
|
|
36
|
+
* Re-fetches one listing behind a stale serve and publishes the fresh
|
|
37
|
+
* result as an ambient `fs.listing` envelope, so every surface showing
|
|
38
|
+
* that path repaints. One fetch per path at a time.
|
|
39
|
+
*
|
|
40
|
+
* @param effectivePath - The absolute path to refresh.
|
|
41
|
+
*/
|
|
42
|
+
listing_revalidate(effectivePath) {
|
|
43
|
+
const inflight = this.revalidating.get(effectivePath);
|
|
44
|
+
if (inflight)
|
|
45
|
+
return inflight;
|
|
46
|
+
const run = (async () => {
|
|
47
|
+
const fetched = await vfsDispatcher.list(effectivePath, {});
|
|
48
|
+
if (!fetched.ok)
|
|
49
|
+
return;
|
|
50
|
+
const items = listingItemsFromVfs_make(fetched.value);
|
|
51
|
+
listCache_get().cache_set(effectivePath, items);
|
|
52
|
+
ambient_publish({
|
|
53
|
+
kind: 'envelope',
|
|
54
|
+
envelope: { status: 'ok', rendered: '', model: { kind: 'fs.listing', data: [{ path: effectivePath, items, fresh: true }] } },
|
|
55
|
+
});
|
|
56
|
+
})()
|
|
57
|
+
.catch(() => { })
|
|
58
|
+
.finally(() => { this.revalidating.delete(effectivePath); });
|
|
59
|
+
this.revalidating.set(effectivePath, run);
|
|
60
|
+
return run;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolves a directory listing with its freshness. A fresh cached
|
|
64
|
+
* listing is served as is. A stale one is served at once only when a
|
|
65
|
+
* host can carry the refresh (an ambient listener exists — the daemon),
|
|
66
|
+
* with the revalidation running behind it; at a plain console the stale
|
|
67
|
+
* entry is refetched in line, because nobody would deliver the refresh.
|
|
68
|
+
* `/proc` paths never touch this cache.
|
|
69
|
+
*
|
|
70
|
+
* @param targetPath - The path to list; the working directory when empty.
|
|
71
|
+
* @param options - Sort and `-d` options.
|
|
72
|
+
* @returns The listing, its absolute path, and whether it is current.
|
|
73
|
+
*/
|
|
74
|
+
async listing_get(targetPath, options = {}) {
|
|
33
75
|
try {
|
|
34
76
|
const cwd = await session.getCWD();
|
|
35
77
|
const effectivePath = targetPath
|
|
@@ -37,7 +79,8 @@ export class VFS {
|
|
|
37
79
|
: cwd;
|
|
38
80
|
// -d: show the target entry itself rather than descending into it
|
|
39
81
|
if (options.directory && targetPath) {
|
|
40
|
-
|
|
82
|
+
const entry = await this.directoryEntry_get(effectivePath, options);
|
|
83
|
+
return entry.ok ? Ok({ path: effectivePath, items: entry.value, fresh: true }) : Err();
|
|
41
84
|
}
|
|
42
85
|
// /proc paths are backed by ProcCache which manages its own freshness —
|
|
43
86
|
// skip listCache entirely so proc refresh and live status reads are visible.
|
|
@@ -46,17 +89,19 @@ export class VFS {
|
|
|
46
89
|
const listCache = listCache_get();
|
|
47
90
|
if (!isProcPath) {
|
|
48
91
|
const cached = listCache.cache_get(effectivePath);
|
|
49
|
-
if (cached) {
|
|
92
|
+
if (cached && (cached.fresh || ambient_hasListeners())) {
|
|
93
|
+
if (!cached.fresh)
|
|
94
|
+
void this.listing_revalidate(effectivePath);
|
|
50
95
|
const sortField = options.sort || 'name';
|
|
51
96
|
const sortedItems = list_applySort(cached.data, sortField, options.reverse);
|
|
52
|
-
return Ok(sortedItems);
|
|
97
|
+
return Ok({ path: effectivePath, items: sortedItems, fresh: cached.fresh });
|
|
53
98
|
}
|
|
54
99
|
// Shell wildcard expansion reads and caches the parent directory before
|
|
55
100
|
// passing each matched path to ls. Leaf entries are not directories to
|
|
56
101
|
// descend into, so return the matching cached entry itself.
|
|
57
102
|
const parentLeaf = this.leafFromParentCache_get(effectivePath);
|
|
58
103
|
if (parentLeaf) {
|
|
59
|
-
return Ok([parentLeaf]);
|
|
104
|
+
return Ok({ path: effectivePath, items: [parentLeaf], fresh: true });
|
|
60
105
|
}
|
|
61
106
|
}
|
|
62
107
|
// Delegate path queries to the unified vfsDispatcher (which handles both virtual and native paths)
|
|
@@ -67,7 +112,7 @@ export class VFS {
|
|
|
67
112
|
if (!isProcPath) {
|
|
68
113
|
listCache.cache_set(effectivePath, items);
|
|
69
114
|
}
|
|
70
|
-
return Ok(items);
|
|
115
|
+
return Ok({ path: effectivePath, items, fresh: true });
|
|
71
116
|
}
|
|
72
117
|
return Err();
|
|
73
118
|
}
|
|
@@ -150,11 +195,10 @@ export class VFS {
|
|
|
150
195
|
const effectivePath = targetPath
|
|
151
196
|
? path.posix.resolve(cwd, targetPath)
|
|
152
197
|
: cwd;
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const
|
|
157
|
-
const isCacheMiss = !cached;
|
|
198
|
+
// A cache miss will wait on the wire; a stale entry may be served at
|
|
199
|
+
// once (listing_get decides, and revalidates behind it where a host can
|
|
200
|
+
// carry the refresh).
|
|
201
|
+
const isCacheMiss = !listCache_get().cache_get(effectivePath);
|
|
158
202
|
// For cache miss, show loading indicator after 500ms timeout
|
|
159
203
|
let spinnerStarted = false; // Flag to track if spinner was actually started
|
|
160
204
|
let spinnerDelayTimeout = null;
|
|
@@ -165,7 +209,8 @@ export class VFS {
|
|
|
165
209
|
}, 500);
|
|
166
210
|
}
|
|
167
211
|
// Fetch data (may be from cache)
|
|
168
|
-
const
|
|
212
|
+
const listing = await this.listing_get(targetPath, options);
|
|
213
|
+
const result = listing.ok ? Ok(listing.value.items) : Err();
|
|
169
214
|
// Clear loading timeout and indicator
|
|
170
215
|
if (spinnerDelayTimeout) {
|
|
171
216
|
clearTimeout(spinnerDelayTimeout);
|
|
@@ -185,41 +230,13 @@ export class VFS {
|
|
|
185
230
|
let rendered = options.long
|
|
186
231
|
? `${long_render(result.value, { human: !!options.human })}\n`
|
|
187
232
|
: `${grid_render(result.value, { oneColumn: !!options.oneColumn })}\n`;
|
|
188
|
-
//
|
|
189
|
-
|
|
233
|
+
// Served stale: say so. The refresh is already running behind this
|
|
234
|
+
// answer and reaches every surface as an ambient listing.
|
|
235
|
+
if (listing.ok && !listing.value.fresh) {
|
|
190
236
|
rendered += `${chalk.gray('(cached, refreshing...)')}\n`;
|
|
191
|
-
// Trigger background refresh - don't await. Fenced in its own error-stack
|
|
192
|
-
// scope so its pushes/pops cannot corrupt a concurrent foreground
|
|
193
|
-
// command's error-drain window.
|
|
194
|
-
errorStack.scope_run(() => {
|
|
195
|
-
this.refreshInBackground(effectivePath, options).catch(() => {
|
|
196
|
-
// Silently ignore refresh errors - user has moved on
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
237
|
}
|
|
200
238
|
return envelope_ok(rendered);
|
|
201
239
|
}
|
|
202
|
-
/**
|
|
203
|
-
* Refreshes cache in the background without blocking or updating display.
|
|
204
|
-
* Used for optimistic rendering - fetch fresh data after serving stale cache.
|
|
205
|
-
*
|
|
206
|
-
* @param targetPath - The path to refresh.
|
|
207
|
-
* @param options - Options including sort and reverse.
|
|
208
|
-
*/
|
|
209
|
-
async refreshInBackground(targetPath, options) {
|
|
210
|
-
try {
|
|
211
|
-
// Invalidate cache to force fresh fetch
|
|
212
|
-
const listCache = listCache_get();
|
|
213
|
-
listCache.cache_invalidate(targetPath);
|
|
214
|
-
// Fetch fresh data - this will repopulate cache
|
|
215
|
-
await this.data_get(targetPath, options);
|
|
216
|
-
// Don't update display - user has moved on
|
|
217
|
-
// Fresh data is now cached for next access
|
|
218
|
-
}
|
|
219
|
-
catch (_error) {
|
|
220
|
-
// Silently fail - background refresh is best-effort
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
240
|
}
|
|
224
241
|
/**
|
|
225
242
|
* Shared VFS singleton.
|
package/dist/lib/vfs/vfs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../src/lib/vfs/vfs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAmB,aAAa,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../src/lib/vfs/vfs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fnndsc/brasa",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "BRASA Runs Abstracted Shell Actions - the hostable ChRIS shell engine (kernel)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@fnndsc/chili": "^3.6.5",
|
|
47
|
-
"@fnndsc/cumin": "^3.
|
|
48
|
-
"@fnndsc/salsa": "^3.
|
|
47
|
+
"@fnndsc/cumin": "^3.16.0",
|
|
48
|
+
"@fnndsc/salsa": "^3.11.0",
|
|
49
49
|
"chalk": "^4.1.2",
|
|
50
50
|
"cli-highlight": "^2.1.11",
|
|
51
51
|
"js-yaml": "^4.1.0",
|