@fnndsc/brasa 0.1.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/builtins/debug.d.ts +8 -0
- package/dist/builtins/debug.js +39 -0
- package/dist/builtins/debug.js.map +1 -0
- package/dist/builtins/executable.d.ts +22 -0
- package/dist/builtins/executable.js +115 -0
- package/dist/builtins/executable.js.map +1 -0
- package/dist/builtins/fs/cat.d.ts +16 -0
- package/dist/builtins/fs/cat.js +266 -0
- package/dist/builtins/fs/cat.js.map +1 -0
- package/dist/builtins/fs/cd.d.ts +42 -0
- package/dist/builtins/fs/cd.js +193 -0
- package/dist/builtins/fs/cd.js.map +1 -0
- package/dist/builtins/fs/cp.d.ts +10 -0
- package/dist/builtins/fs/cp.js +86 -0
- package/dist/builtins/fs/cp.js.map +1 -0
- package/dist/builtins/fs/download.d.ts +6 -0
- package/dist/builtins/fs/download.js +45 -0
- package/dist/builtins/fs/download.js.map +1 -0
- package/dist/builtins/fs/du.d.ts +58 -0
- package/dist/builtins/fs/du.js +210 -0
- package/dist/builtins/fs/du.js.map +1 -0
- package/dist/builtins/fs/edit.d.ts +7 -0
- package/dist/builtins/fs/edit.js +104 -0
- package/dist/builtins/fs/edit.js.map +1 -0
- package/dist/builtins/fs/ls.d.ts +8 -0
- package/dist/builtins/fs/ls.js +68 -0
- package/dist/builtins/fs/ls.js.map +1 -0
- package/dist/builtins/fs/mkdir.d.ts +9 -0
- package/dist/builtins/fs/mkdir.js +52 -0
- package/dist/builtins/fs/mkdir.js.map +1 -0
- package/dist/builtins/fs/mv.d.ts +10 -0
- package/dist/builtins/fs/mv.js +88 -0
- package/dist/builtins/fs/mv.js.map +1 -0
- package/dist/builtins/fs/pull.args.d.ts +22 -0
- package/dist/builtins/fs/pull.args.js +30 -0
- package/dist/builtins/fs/pull.args.js.map +1 -0
- package/dist/builtins/fs/pull.d.ts +26 -0
- package/dist/builtins/fs/pull.js +445 -0
- package/dist/builtins/fs/pull.js.map +1 -0
- package/dist/builtins/fs/pwd.d.ts +10 -0
- package/dist/builtins/fs/pwd.js +73 -0
- package/dist/builtins/fs/pwd.js.map +1 -0
- package/dist/builtins/fs/rm.d.ts +37 -0
- package/dist/builtins/fs/rm.js +197 -0
- package/dist/builtins/fs/rm.js.map +1 -0
- package/dist/builtins/fs/touch.d.ts +9 -0
- package/dist/builtins/fs/touch.js +76 -0
- package/dist/builtins/fs/touch.js.map +1 -0
- package/dist/builtins/fs/tree.d.ts +15 -0
- package/dist/builtins/fs/tree.js +84 -0
- package/dist/builtins/fs/tree.js.map +1 -0
- package/dist/builtins/fs/upload.d.ts +6 -0
- package/dist/builtins/fs/upload.js +48 -0
- package/dist/builtins/fs/upload.js.map +1 -0
- package/dist/builtins/help.d.ts +74 -0
- package/dist/builtins/help.js +1217 -0
- package/dist/builtins/help.js.map +1 -0
- package/dist/builtins/index.d.ts +45 -0
- package/dist/builtins/index.js +45 -0
- package/dist/builtins/index.js.map +1 -0
- package/dist/builtins/net/connect.d.ts +7 -0
- package/dist/builtins/net/connect.js +42 -0
- package/dist/builtins/net/connect.js.map +1 -0
- package/dist/builtins/net/cubepath.d.ts +18 -0
- package/dist/builtins/net/cubepath.js +102 -0
- package/dist/builtins/net/cubepath.js.map +1 -0
- package/dist/builtins/net/logout.d.ts +6 -0
- package/dist/builtins/net/logout.js +24 -0
- package/dist/builtins/net/logout.js.map +1 -0
- package/dist/builtins/net/pacs.d.ts +24 -0
- package/dist/builtins/net/pacs.js +121 -0
- package/dist/builtins/net/pacs.js.map +1 -0
- package/dist/builtins/net/pacsUtils.d.ts +85 -0
- package/dist/builtins/net/pacsUtils.js +184 -0
- package/dist/builtins/net/pacsUtils.js.map +1 -0
- package/dist/builtins/net/query.d.ts +60 -0
- package/dist/builtins/net/query.js +324 -0
- package/dist/builtins/net/query.js.map +1 -0
- package/dist/builtins/parametersofplugin.d.ts +13 -0
- package/dist/builtins/parametersofplugin.js +43 -0
- package/dist/builtins/parametersofplugin.js.map +1 -0
- package/dist/builtins/pluginExecute.d.ts +27 -0
- package/dist/builtins/pluginExecute.js +165 -0
- package/dist/builtins/pluginExecute.js.map +1 -0
- package/dist/builtins/proc.d.ts +6 -0
- package/dist/builtins/proc.helpers.d.ts +68 -0
- package/dist/builtins/proc.helpers.js +102 -0
- package/dist/builtins/proc.helpers.js.map +1 -0
- package/dist/builtins/proc.js +289 -0
- package/dist/builtins/proc.js.map +1 -0
- package/dist/builtins/res/compute.d.ts +6 -0
- package/dist/builtins/res/compute.js +55 -0
- package/dist/builtins/res/compute.js.map +1 -0
- package/dist/builtins/res/feed.d.ts +6 -0
- package/dist/builtins/res/feed.js +244 -0
- package/dist/builtins/res/feed.js.map +1 -0
- package/dist/builtins/res/feed.notes.d.ts +28 -0
- package/dist/builtins/res/feed.notes.js +24 -0
- package/dist/builtins/res/feed.notes.js.map +1 -0
- package/dist/builtins/res/files.d.ts +18 -0
- package/dist/builtins/res/files.js +85 -0
- package/dist/builtins/res/files.js.map +1 -0
- package/dist/builtins/res/group.d.ts +6 -0
- package/dist/builtins/res/group.js +54 -0
- package/dist/builtins/res/group.js.map +1 -0
- package/dist/builtins/res/pipeline.args.d.ts +22 -0
- package/dist/builtins/res/pipeline.args.js +28 -0
- package/dist/builtins/res/pipeline.args.js.map +1 -0
- package/dist/builtins/res/pipeline.d.ts +20 -0
- package/dist/builtins/res/pipeline.js +252 -0
- package/dist/builtins/res/pipeline.js.map +1 -0
- package/dist/builtins/res/plugin.d.ts +13 -0
- package/dist/builtins/res/plugin.js +140 -0
- package/dist/builtins/res/plugin.js.map +1 -0
- package/dist/builtins/res/plugininstance.d.ts +6 -0
- package/dist/builtins/res/plugininstance.js +53 -0
- package/dist/builtins/res/plugininstance.js.map +1 -0
- package/dist/builtins/res/pluginmeta.d.ts +6 -0
- package/dist/builtins/res/pluginmeta.js +53 -0
- package/dist/builtins/res/pluginmeta.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +6 -0
- package/dist/builtins/res/tag.js +53 -0
- package/dist/builtins/res/tag.js.map +1 -0
- package/dist/builtins/res/workflow.d.ts +6 -0
- package/dist/builtins/res/workflow.js +53 -0
- package/dist/builtins/res/workflow.js.map +1 -0
- package/dist/builtins/store.d.ts +6 -0
- package/dist/builtins/store.js +107 -0
- package/dist/builtins/store.js.map +1 -0
- package/dist/builtins/sys/context.d.ts +6 -0
- package/dist/builtins/sys/context.js +50 -0
- package/dist/builtins/sys/context.js.map +1 -0
- package/dist/builtins/sys/physicalmode.d.ts +8 -0
- package/dist/builtins/sys/physicalmode.js +34 -0
- package/dist/builtins/sys/physicalmode.js.map +1 -0
- package/dist/builtins/sys/timing.d.ts +8 -0
- package/dist/builtins/sys/timing.js +34 -0
- package/dist/builtins/sys/timing.js.map +1 -0
- package/dist/builtins/sys/version.d.ts +15 -0
- package/dist/builtins/sys/version.js +23 -0
- package/dist/builtins/sys/version.js.map +1 -0
- package/dist/builtins/sys/whoami.d.ts +17 -0
- package/dist/builtins/sys/whoami.js +44 -0
- package/dist/builtins/sys/whoami.js.map +1 -0
- package/dist/builtins/utils.d.ts +55 -0
- package/dist/builtins/utils.js +145 -0
- package/dist/builtins/utils.js.map +1 -0
- package/dist/builtins/wildcard.d.ts +26 -0
- package/dist/builtins/wildcard.js +120 -0
- package/dist/builtins/wildcard.js.map +1 -0
- package/dist/command-keys.d.ts +8 -0
- package/dist/command-keys.js +32 -0
- package/dist/command-keys.js.map +1 -0
- package/dist/config/storeConfig.d.ts +57 -0
- package/dist/config/storeConfig.js +78 -0
- package/dist/config/storeConfig.js.map +1 -0
- package/dist/core/chiliDelegate.d.ts +21 -0
- package/dist/core/chiliDelegate.js +32 -0
- package/dist/core/chiliDelegate.js.map +1 -0
- package/dist/core/connect.d.ts +38 -0
- package/dist/core/connect.js +46 -0
- package/dist/core/connect.js.map +1 -0
- package/dist/core/dispatch.d.ts +95 -0
- package/dist/core/dispatch.js +618 -0
- package/dist/core/dispatch.js.map +1 -0
- package/dist/core/engine.d.ts +91 -0
- package/dist/core/engine.js +222 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/preprocess.d.ts +46 -0
- package/dist/core/preprocess.js +146 -0
- package/dist/core/preprocess.js.map +1 -0
- package/dist/core/progress.d.ts +50 -0
- package/dist/core/progress.js +21 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/promptContext.d.ts +49 -0
- package/dist/core/promptContext.js +39 -0
- package/dist/core/promptContext.js.map +1 -0
- package/dist/core/question.d.ts +27 -0
- package/dist/core/question.js +33 -0
- package/dist/core/question.js.map +1 -0
- package/dist/core/sink.d.ts +207 -0
- package/dist/core/sink.js +329 -0
- package/dist/core/sink.js.map +1 -0
- package/dist/core/surface.d.ts +172 -0
- package/dist/core/surface.js +105 -0
- package/dist/core/surface.js.map +1 -0
- package/dist/core/version.d.ts +20 -0
- package/dist/core/version.js +82 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/completer/index.d.ts +15 -0
- package/dist/lib/completer/index.js +212 -0
- package/dist/lib/completer/index.js.map +1 -0
- package/dist/lib/completer/pathComplete.helpers.d.ts +22 -0
- package/dist/lib/completer/pathComplete.helpers.js +49 -0
- package/dist/lib/completer/pathComplete.helpers.js.map +1 -0
- package/dist/lib/parser.d.ts +13 -0
- package/dist/lib/parser.js +52 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/pipe.d.ts +11 -0
- package/dist/lib/pipe.js +90 -0
- package/dist/lib/pipe.js.map +1 -0
- package/dist/lib/prefetch.d.ts +25 -0
- package/dist/lib/prefetch.js +64 -0
- package/dist/lib/prefetch.js.map +1 -0
- package/dist/lib/semicolonParser.d.ts +22 -0
- package/dist/lib/semicolonParser.js +53 -0
- package/dist/lib/semicolonParser.js.map +1 -0
- package/dist/lib/spinner.d.ts +23 -0
- package/dist/lib/spinner.js +71 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/vfs/providers/static.d.ts +65 -0
- package/dist/lib/vfs/providers/static.js +164 -0
- package/dist/lib/vfs/providers/static.js.map +1 -0
- package/dist/lib/vfs/providers/static_content.d.ts +27 -0
- package/dist/lib/vfs/providers/static_content.js +180 -0
- package/dist/lib/vfs/providers/static_content.js.map +1 -0
- package/dist/lib/vfs/vfs.d.ts +59 -0
- package/dist/lib/vfs/vfs.js +202 -0
- package/dist/lib/vfs/vfs.js.map +1 -0
- package/dist/session/index.d.ts +76 -0
- package/dist/session/index.js +120 -0
- package/dist/session/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Virtual File System Router.
|
|
3
|
+
*
|
|
4
|
+
* Handles path resolution and dispatching to appropriate file system providers
|
|
5
|
+
* (native ChRIS or virtual overlays like /bin).
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { vfsDispatcher } from '@fnndsc/salsa';
|
|
10
|
+
import { session } from '../../session/index.js';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import * as path from 'path';
|
|
13
|
+
import { grid_render, long_render } from '@fnndsc/chili/views/ls.js';
|
|
14
|
+
import { list_applySort } from '@fnndsc/chili/utils/sort.js';
|
|
15
|
+
import { listCache_get, Ok, Err, errorStack } from '@fnndsc/cumin';
|
|
16
|
+
import { spinner } from '../spinner.js';
|
|
17
|
+
import { error_stripDebugPrefix } from '../../builtins/utils.js';
|
|
18
|
+
/**
|
|
19
|
+
* Virtual File System Router.
|
|
20
|
+
* Dispatches operations to Virtual or Native providers.
|
|
21
|
+
*/
|
|
22
|
+
export class VFS {
|
|
23
|
+
/**
|
|
24
|
+
* Gets data for a directory (Virtual or Native).
|
|
25
|
+
* Separated from rendering to allow Result<T> pattern.
|
|
26
|
+
*
|
|
27
|
+
* @param targetPath - The path to get data for. If empty, uses CWD.
|
|
28
|
+
* @param options - Options including directory flag and sort.
|
|
29
|
+
* @returns Result<ListingItem[]> - Ok with items or Err with error message.
|
|
30
|
+
*/
|
|
31
|
+
async data_get(targetPath, options = {}) {
|
|
32
|
+
try {
|
|
33
|
+
const cwd = await session.getCWD();
|
|
34
|
+
const effectivePath = targetPath
|
|
35
|
+
? path.posix.resolve(cwd, targetPath)
|
|
36
|
+
: cwd;
|
|
37
|
+
// -d: show the target entry itself rather than descending into it
|
|
38
|
+
if (options.directory && targetPath) {
|
|
39
|
+
return this.directoryEntry_get(effectivePath, options);
|
|
40
|
+
}
|
|
41
|
+
// /proc paths are backed by ProcCache which manages its own freshness —
|
|
42
|
+
// skip listCache entirely so proc refresh and live status reads are visible.
|
|
43
|
+
const isProcPath = effectivePath.startsWith('/proc');
|
|
44
|
+
// Check cache first (not for /proc paths)
|
|
45
|
+
const listCache = listCache_get();
|
|
46
|
+
if (!isProcPath) {
|
|
47
|
+
const cached = listCache.cache_get(effectivePath);
|
|
48
|
+
if (cached) {
|
|
49
|
+
const sortField = options.sort || 'name';
|
|
50
|
+
const sortedItems = list_applySort(cached.data, sortField, options.reverse);
|
|
51
|
+
return Ok(sortedItems);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Delegate path queries to the unified vfsDispatcher (which handles both virtual and native paths)
|
|
55
|
+
const vfsResult = await vfsDispatcher.list(effectivePath, options);
|
|
56
|
+
if (vfsResult.ok) {
|
|
57
|
+
const items = vfsResult.value;
|
|
58
|
+
// Cache the results (not for /proc paths)
|
|
59
|
+
if (!isProcPath) {
|
|
60
|
+
listCache.cache_set(effectivePath, items);
|
|
61
|
+
}
|
|
62
|
+
return Ok(items);
|
|
63
|
+
}
|
|
64
|
+
return Err();
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
68
|
+
errorStack.stack_push("error", `Failed to get directory data: ${errorMsg}`);
|
|
69
|
+
return Err();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Returns the directory entry for `absolutePath` itself (not its contents).
|
|
74
|
+
* Looks up the entry in the parent's listing — used to implement `ls -d`.
|
|
75
|
+
*
|
|
76
|
+
* @param absolutePath - The fully resolved path of the target.
|
|
77
|
+
* @param options - Sort options forwarded to the parent listing.
|
|
78
|
+
*/
|
|
79
|
+
async directoryEntry_get(absolutePath, options) {
|
|
80
|
+
const baseName = path.posix.basename(absolutePath);
|
|
81
|
+
const parentPath = path.posix.dirname(absolutePath);
|
|
82
|
+
if (!baseName || absolutePath === '/') {
|
|
83
|
+
return Ok([{ name: '/', type: 'vfs', size: 0, owner: 'root', date: '' }]);
|
|
84
|
+
}
|
|
85
|
+
// Fetch parent listing (use cache when available)
|
|
86
|
+
const listCache = listCache_get();
|
|
87
|
+
let parentItems = null;
|
|
88
|
+
const cached = listCache.cache_get(parentPath);
|
|
89
|
+
if (cached) {
|
|
90
|
+
parentItems = cached.data;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const parentResult = await vfsDispatcher.list(parentPath, options);
|
|
94
|
+
if (parentResult.ok) {
|
|
95
|
+
parentItems = parentResult.value;
|
|
96
|
+
listCache.cache_set(parentPath, parentItems);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (parentItems) {
|
|
100
|
+
const match = parentItems.find((item) => item.name === baseName);
|
|
101
|
+
if (match)
|
|
102
|
+
return Ok([match]);
|
|
103
|
+
}
|
|
104
|
+
// Fallback: synthesize an entry from the path name
|
|
105
|
+
return Ok([{ name: baseName, type: 'dir', size: 0, owner: 'system', date: '' }]);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* List contents of a directory (Virtual or Native).
|
|
109
|
+
* Convenience method that fetches data and renders it.
|
|
110
|
+
* Implements optimistic rendering with progress feedback:
|
|
111
|
+
* - Stale cache: serve immediately with "(cached, refreshing...)" indicator
|
|
112
|
+
* - Cache miss: show "Fetching..." after 500ms if still loading
|
|
113
|
+
*
|
|
114
|
+
* @param targetPath - The path to list. If empty, uses CWD.
|
|
115
|
+
* @param options - Listing options (long, human, sort, reverse, directory).
|
|
116
|
+
*/
|
|
117
|
+
async list(targetPath, options = {}) {
|
|
118
|
+
// Resolve effective path for cache checking
|
|
119
|
+
const cwd = await session.getCWD();
|
|
120
|
+
const effectivePath = targetPath
|
|
121
|
+
? path.posix.resolve(cwd, targetPath)
|
|
122
|
+
: cwd;
|
|
123
|
+
// Check if we're serving from stale cache BEFORE fetching
|
|
124
|
+
const listCache = listCache_get();
|
|
125
|
+
const cached = listCache.cache_get(effectivePath);
|
|
126
|
+
const wasStale = cached && !cached.fresh;
|
|
127
|
+
const isCacheMiss = !cached;
|
|
128
|
+
// For cache miss, show loading indicator after 500ms timeout
|
|
129
|
+
let spinnerStarted = false; // Flag to track if spinner was actually started
|
|
130
|
+
let spinnerDelayTimeout = null;
|
|
131
|
+
if (isCacheMiss) {
|
|
132
|
+
spinnerDelayTimeout = setTimeout(() => {
|
|
133
|
+
spinner.start('Fetching directory from remote', true); // The spinner message with timing
|
|
134
|
+
spinnerStarted = true;
|
|
135
|
+
}, 500);
|
|
136
|
+
}
|
|
137
|
+
// Fetch data (may be from cache)
|
|
138
|
+
const result = await this.data_get(targetPath, options);
|
|
139
|
+
// Clear loading timeout and indicator
|
|
140
|
+
if (spinnerDelayTimeout) {
|
|
141
|
+
clearTimeout(spinnerDelayTimeout);
|
|
142
|
+
}
|
|
143
|
+
if (spinnerStarted) {
|
|
144
|
+
spinner.stop();
|
|
145
|
+
}
|
|
146
|
+
if (!result.ok) {
|
|
147
|
+
const lastError = errorStack.stack_pop();
|
|
148
|
+
if (lastError) {
|
|
149
|
+
console.error(chalk.red(error_stripDebugPrefix(lastError.message)));
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (result.value.length === 0) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
// Render based on options
|
|
157
|
+
if (options.long) {
|
|
158
|
+
console.log(long_render(result.value, { human: !!options.human }));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
console.log(grid_render(result.value, { oneColumn: !!options.oneColumn }));
|
|
162
|
+
}
|
|
163
|
+
// If we served stale cache, show indicator and refresh in background
|
|
164
|
+
if (wasStale) {
|
|
165
|
+
console.log(chalk.gray('(cached, refreshing...)'));
|
|
166
|
+
// Trigger background refresh - don't await. Fenced in its own error-stack
|
|
167
|
+
// scope so its pushes/pops cannot corrupt a concurrent foreground
|
|
168
|
+
// command's error-drain window.
|
|
169
|
+
errorStack.scope_run(() => {
|
|
170
|
+
this.refreshInBackground(effectivePath, options).catch(() => {
|
|
171
|
+
// Silently ignore refresh errors - user has moved on
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Refreshes cache in the background without blocking or updating display.
|
|
178
|
+
* Used for optimistic rendering - fetch fresh data after serving stale cache.
|
|
179
|
+
*
|
|
180
|
+
* @param targetPath - The path to refresh.
|
|
181
|
+
* @param options - Options including sort and reverse.
|
|
182
|
+
*/
|
|
183
|
+
async refreshInBackground(targetPath, options) {
|
|
184
|
+
try {
|
|
185
|
+
// Invalidate cache to force fresh fetch
|
|
186
|
+
const listCache = listCache_get();
|
|
187
|
+
listCache.cache_invalidate(targetPath);
|
|
188
|
+
// Fetch fresh data - this will repopulate cache
|
|
189
|
+
await this.data_get(targetPath, options);
|
|
190
|
+
// Don't update display - user has moved on
|
|
191
|
+
// Fresh data is now cached for next access
|
|
192
|
+
}
|
|
193
|
+
catch (_error) {
|
|
194
|
+
// Silently fail - background refresh is best-effort
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Shared VFS singleton.
|
|
200
|
+
*/
|
|
201
|
+
export const vfs = new VFS();
|
|
202
|
+
//# sourceMappingURL=vfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../src/lib/vfs/vfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the shell session state (Connection, Context).
|
|
3
|
+
*/
|
|
4
|
+
export declare class Session {
|
|
5
|
+
private static instance;
|
|
6
|
+
private _connection;
|
|
7
|
+
private _offline;
|
|
8
|
+
private _physicalMode;
|
|
9
|
+
private _timingEnabled;
|
|
10
|
+
/**
|
|
11
|
+
* Private constructor for Singleton.
|
|
12
|
+
*/
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Returns the singleton instance of the Session.
|
|
16
|
+
*/
|
|
17
|
+
static getInstance(): Session;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize the session (load config/token).
|
|
20
|
+
*/
|
|
21
|
+
init(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get Current Working Directory from Context.
|
|
24
|
+
*/
|
|
25
|
+
getCWD(): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Set Current Working Directory.
|
|
28
|
+
* Cache invalidation is handled automatically by cumin's chrisContext.
|
|
29
|
+
*/
|
|
30
|
+
setCWD(path: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Access the underlying ChRIS Connection singleton.
|
|
33
|
+
*/
|
|
34
|
+
get connection(): import("@fnndsc/cumin").ChRISConnection;
|
|
35
|
+
/**
|
|
36
|
+
* Get offline status.
|
|
37
|
+
*/
|
|
38
|
+
get offline(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Set offline status.
|
|
41
|
+
*/
|
|
42
|
+
set offline(value: boolean);
|
|
43
|
+
/**
|
|
44
|
+
* Gets physical filesystem mode status.
|
|
45
|
+
*
|
|
46
|
+
* When true, path operations work directly with physical paths
|
|
47
|
+
* without logical-to-physical mapping.
|
|
48
|
+
*
|
|
49
|
+
* @returns True if in physical mode, false if using logical paths.
|
|
50
|
+
*/
|
|
51
|
+
physicalMode_get(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Sets physical filesystem mode.
|
|
54
|
+
*
|
|
55
|
+
* @param enabled - True to enable physical mode, false for logical mode.
|
|
56
|
+
*/
|
|
57
|
+
physicalMode_set(enabled: boolean): void;
|
|
58
|
+
/**
|
|
59
|
+
* Gets timing mode status.
|
|
60
|
+
*
|
|
61
|
+
* When true, command execution times are displayed after each command.
|
|
62
|
+
*
|
|
63
|
+
* @returns True if timing is enabled, false otherwise.
|
|
64
|
+
*/
|
|
65
|
+
timingEnabled_get(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Sets timing mode.
|
|
68
|
+
*
|
|
69
|
+
* @param enabled - True to enable timing display, false to disable.
|
|
70
|
+
*/
|
|
71
|
+
timingEnabled_set(enabled: boolean): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Shared Session singleton.
|
|
75
|
+
*/
|
|
76
|
+
export declare const session: Session;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Session Management.
|
|
3
|
+
*
|
|
4
|
+
* Maintains the global state of the shell, including connection and context.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import { chrisConnection, chrisConnection_init, NodeStorageProvider, chrisContext, Context } from '@fnndsc/cumin';
|
|
9
|
+
/**
|
|
10
|
+
* Manages the shell session state (Connection, Context).
|
|
11
|
+
*/
|
|
12
|
+
export class Session {
|
|
13
|
+
static instance;
|
|
14
|
+
_connection;
|
|
15
|
+
_offline = false;
|
|
16
|
+
_physicalMode = false;
|
|
17
|
+
_timingEnabled = false;
|
|
18
|
+
/**
|
|
19
|
+
* Private constructor for Singleton.
|
|
20
|
+
*/
|
|
21
|
+
constructor() { }
|
|
22
|
+
/**
|
|
23
|
+
* Returns the singleton instance of the Session.
|
|
24
|
+
*/
|
|
25
|
+
static getInstance() {
|
|
26
|
+
if (!Session.instance) {
|
|
27
|
+
Session.instance = new Session();
|
|
28
|
+
}
|
|
29
|
+
return Session.instance;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the session (load config/token).
|
|
33
|
+
*/
|
|
34
|
+
async init() {
|
|
35
|
+
const nodeStorageProvider = new NodeStorageProvider();
|
|
36
|
+
// Initialize the connection singleton which also initializes config
|
|
37
|
+
this._connection = await chrisConnection_init(nodeStorageProvider);
|
|
38
|
+
try {
|
|
39
|
+
// Also initialize chili's duplicate copy of the connection singleton to align monorepo package boundaries
|
|
40
|
+
const { chrisConnection_init: chiliConnection_init } = await import('@fnndsc/chili/utils');
|
|
41
|
+
await chiliConnection_init(nodeStorageProvider);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
// Fail silently if chili utilities connection initialization is not needed/available
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get Current Working Directory from Context.
|
|
49
|
+
*/
|
|
50
|
+
async getCWD() {
|
|
51
|
+
return await chrisContext.current_get(Context.ChRISfolder) || '/';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Set Current Working Directory.
|
|
55
|
+
* Cache invalidation is handled automatically by cumin's chrisContext.
|
|
56
|
+
*/
|
|
57
|
+
async setCWD(path) {
|
|
58
|
+
await chrisContext.current_set(Context.ChRISfolder, path);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Access the underlying ChRIS Connection singleton.
|
|
62
|
+
*/
|
|
63
|
+
get connection() {
|
|
64
|
+
return this._connection || chrisConnection;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get offline status.
|
|
68
|
+
*/
|
|
69
|
+
get offline() {
|
|
70
|
+
return this._offline;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Set offline status.
|
|
74
|
+
*/
|
|
75
|
+
set offline(value) {
|
|
76
|
+
this._offline = value;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Gets physical filesystem mode status.
|
|
80
|
+
*
|
|
81
|
+
* When true, path operations work directly with physical paths
|
|
82
|
+
* without logical-to-physical mapping.
|
|
83
|
+
*
|
|
84
|
+
* @returns True if in physical mode, false if using logical paths.
|
|
85
|
+
*/
|
|
86
|
+
physicalMode_get() {
|
|
87
|
+
return this._physicalMode;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Sets physical filesystem mode.
|
|
91
|
+
*
|
|
92
|
+
* @param enabled - True to enable physical mode, false for logical mode.
|
|
93
|
+
*/
|
|
94
|
+
physicalMode_set(enabled) {
|
|
95
|
+
this._physicalMode = enabled;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Gets timing mode status.
|
|
99
|
+
*
|
|
100
|
+
* When true, command execution times are displayed after each command.
|
|
101
|
+
*
|
|
102
|
+
* @returns True if timing is enabled, false otherwise.
|
|
103
|
+
*/
|
|
104
|
+
timingEnabled_get() {
|
|
105
|
+
return this._timingEnabled;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Sets timing mode.
|
|
109
|
+
*
|
|
110
|
+
* @param enabled - True to enable timing display, false to disable.
|
|
111
|
+
*/
|
|
112
|
+
timingEnabled_set(enabled) {
|
|
113
|
+
this._timingEnabled = enabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Shared Session singleton.
|
|
118
|
+
*/
|
|
119
|
+
export const session = Session.getInstance();
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElH;;GAEG;AACH,MAAM,OAAO,OAAO;IACV,MAAM,CAAC,QAAQ,CAAU;IACzB,WAAW,CAAqC;IAChD,QAAQ,GAAY,KAAK,CAAC;IAC1B,aAAa,GAAY,KAAK,CAAC;IAC/B,cAAc,GAAY,KAAK,CAAC;IAExC;;OAEG;IACH,gBAAuB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,mBAAmB,GAAwB,IAAI,mBAAmB,EAAE,CAAC;QAC3E,oEAAoE;QACpE,IAAI,CAAC,WAAW,GAAG,MAAM,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,0GAA0G;YAC1G,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC3F,MAAM,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,qFAAqF;QACvF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAgB;QAChC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY,OAAO,CAAC,WAAW,EAAE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fnndsc/brasa",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "BRASA Runs Abstracted Shell Actions - the hostable ChRIS shell engine (kernel)",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/FNNDSC/mise.git",
|
|
8
|
+
"directory": "packages/brasa"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/FNNDSC/mise/tree/main/packages/brasa#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/FNNDSC/mise/issues"
|
|
13
|
+
},
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"module": "dist/index.js",
|
|
16
|
+
"types": "dist/index.d.ts",
|
|
17
|
+
"type": "module",
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"import": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./package.json": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "rm -fr dist && tsc",
|
|
30
|
+
"test": "NODE_OPTIONS='--experimental-vm-modules --disable-warning=ExperimentalWarning' jest --forceExit --passWithNoTests --coverage"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"chris",
|
|
34
|
+
"fnndsc",
|
|
35
|
+
"shell",
|
|
36
|
+
"engine",
|
|
37
|
+
"kernel"
|
|
38
|
+
],
|
|
39
|
+
"author": "FNNDSC <dev@babyMRI.org>",
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@fnndsc/chili": "^3.3.0",
|
|
43
|
+
"@fnndsc/cumin": "^3.5.0",
|
|
44
|
+
"@fnndsc/salsa": "^3.2.6",
|
|
45
|
+
"chalk": "^4.1.2",
|
|
46
|
+
"minimatch": "^10.1.1",
|
|
47
|
+
"ws": "^8.21.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/jest": "^30.0.0",
|
|
51
|
+
"@types/minimatch": "^5.1.2",
|
|
52
|
+
"@types/node": "^22.0.0",
|
|
53
|
+
"@types/ws": "^8.18.1",
|
|
54
|
+
"jest": "^30.2.0",
|
|
55
|
+
"ts-jest": "^29.4.5",
|
|
56
|
+
"typescript": "^5.5.2"
|
|
57
|
+
}
|
|
58
|
+
}
|