@nexus-cortex/core 4.67.0 → 4.69.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.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * TUI first-run onboarding block (L-05 + S-03, TUI_UX_BACKLOG_2026-08-16).
3
+ *
4
+ * Before this, first paint was a bare prompt: no statement of what the tool
5
+ * is, no example, no pointer to the slash-command surface — the splash screen
6
+ * existed but was reachable only via /about. Canonical-in-the-library: the
7
+ * CONTENT lives here; each TUI wrapper styles and prints it.
8
+ *
9
+ * RULES:
10
+ * - Advertise ONLY features that exist on the surface rendering the block.
11
+ * (The backlog's own "@file/!shell" phrasing was ungrounded — neither is
12
+ * implemented anywhere in this repo; they are deliberately absent here.)
13
+ * - Key hints come from TUI_KEYMAP, never hardcoded (L-08 rule).
14
+ * - Shown once per machine (~/.cortex/onboarded marker), because the block
15
+ * is orientation, not chrome. Wrappers may re-show it via /about.
16
+ */
17
+ import { type TuiSurface } from './tuiKeymap.js';
18
+ /** Plain-text onboarding lines — wrappers apply their own styling. */
19
+ export declare function onboardingLines(surface: TuiSurface): string[];
20
+ /** True when this machine has never shown the first-run block. Fails closed
21
+ * (returns false) on filesystem errors so a broken home dir never loops the
22
+ * block forever. `configDir` is injectable for tests (vitest worker threads
23
+ * proxy process.env, so os.homedir() can't be steered via $HOME there). */
24
+ export declare function shouldShowOnboarding(configDir?: string): boolean;
25
+ /** Persist the shown-once marker. Non-fatal on failure. */
26
+ export declare function markOnboardingShown(configDir?: string): void;
27
+ //# sourceMappingURL=tuiOnboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuiOnboarding.d.ts","sourceRoot":"","sources":["../../src/config/tuiOnboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEnE,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAU7D;AAID;;;4EAG4E;AAC5E,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,MAA6B,GAAG,OAAO,CAMtF;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAA6B,GAAG,IAAI,CAOlF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * TUI first-run onboarding block (L-05 + S-03, TUI_UX_BACKLOG_2026-08-16).
3
+ *
4
+ * Before this, first paint was a bare prompt: no statement of what the tool
5
+ * is, no example, no pointer to the slash-command surface — the splash screen
6
+ * existed but was reachable only via /about. Canonical-in-the-library: the
7
+ * CONTENT lives here; each TUI wrapper styles and prints it.
8
+ *
9
+ * RULES:
10
+ * - Advertise ONLY features that exist on the surface rendering the block.
11
+ * (The backlog's own "@file/!shell" phrasing was ungrounded — neither is
12
+ * implemented anywhere in this repo; they are deliberately absent here.)
13
+ * - Key hints come from TUI_KEYMAP, never hardcoded (L-08 rule).
14
+ * - Shown once per machine (~/.cortex/onboarded marker), because the block
15
+ * is orientation, not chrome. Wrappers may re-show it via /about.
16
+ */
17
+ import * as fs from 'fs';
18
+ import * as path from 'path';
19
+ import { getGlobalConfigDir } from './SettingsLoader.js';
20
+ import { keymapFooterHint } from './tuiKeymap.js';
21
+ /** Plain-text onboarding lines — wrappers apply their own styling. */
22
+ export function onboardingLines(surface) {
23
+ return [
24
+ 'cortex — an agentic coding assistant in your terminal.',
25
+ 'Ask in plain language; it reads files, runs commands, and edits code.',
26
+ '',
27
+ 'Try: explain this repo or fix the failing test in src/',
28
+ '',
29
+ 'Type / for the command palette — /help lists everything, /model switches models.',
30
+ keymapFooterHint(surface),
31
+ ];
32
+ }
33
+ const ONBOARDED_MARKER = 'onboarded';
34
+ /** True when this machine has never shown the first-run block. Fails closed
35
+ * (returns false) on filesystem errors so a broken home dir never loops the
36
+ * block forever. `configDir` is injectable for tests (vitest worker threads
37
+ * proxy process.env, so os.homedir() can't be steered via $HOME there). */
38
+ export function shouldShowOnboarding(configDir = getGlobalConfigDir()) {
39
+ try {
40
+ return !fs.existsSync(path.join(configDir, ONBOARDED_MARKER));
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ /** Persist the shown-once marker. Non-fatal on failure. */
47
+ export function markOnboardingShown(configDir = getGlobalConfigDir()) {
48
+ try {
49
+ fs.mkdirSync(configDir, { recursive: true });
50
+ fs.writeFileSync(path.join(configDir, ONBOARDED_MARKER), `${new Date().toISOString()}\n`);
51
+ }
52
+ catch {
53
+ /* non-fatal — worst case the block shows again next launch */
54
+ }
55
+ }
56
+ //# sourceMappingURL=tuiOnboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuiOnboarding.js","sourceRoot":"","sources":["../../src/config/tuiOnboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnE,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAAC,OAAmB;IACjD,OAAO;QACL,wDAAwD;QACxD,uEAAuE;QACvE,EAAE;QACF,+DAA+D;QAC/D,EAAE;QACF,kFAAkF;QAClF,gBAAgB,CAAC,OAAO,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAErC;;;4EAG4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,YAAoB,kBAAkB,EAAE;IAC3E,IAAI,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,YAAoB,kBAAkB,EAAE;IAC1E,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -56,4 +56,5 @@ export * as RuntimeInterfaces from './interfaces/index.js';
56
56
  export { NodeConfigProvider, NodeHistoryStoreAdapter, NodeToolExecutorAdapter, NodePermissionAdapter, GitHistoryStore } from './adapters/node/index.js';
57
57
  export type { GitHistoryStoreConfig } from './adapters/node/index.js';
58
58
  export { TUI_KEYMAP, keymapFooterHint, keymapHelpRows, keymapKey, type TuiSurface, type KeyBinding } from './config/tuiKeymap.js';
59
+ export { onboardingLines, shouldShowOnboarding, markOnboardingShown } from './config/tuiOnboarding.js';
59
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -73,4 +73,5 @@ export * as RuntimeInterfaces from './interfaces/index.js';
73
73
  // Node.js runtime adapters (wraps existing services behind runtime-agnostic interfaces)
74
74
  export { NodeConfigProvider, NodeHistoryStoreAdapter, NodeToolExecutorAdapter, NodePermissionAdapter, GitHistoryStore } from './adapters/node/index.js';
75
75
  export { TUI_KEYMAP, keymapFooterHint, keymapHelpRows, keymapKey } from './config/tuiKeymap.js';
76
+ export { onboardingLines, shouldShowOnboarding, markOnboardingShown } from './config/tuiOnboarding.js';
76
77
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultPolicies.d.ts","sourceRoot":"","sources":["../../../src/middleware/permissions/DefaultPolicies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,gBAwJ7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,gBAiC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,gBA+F7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAI7C,CAAC"}
1
+ {"version":3,"file":"DefaultPolicies.d.ts","sourceRoot":"","sources":["../../../src/middleware/permissions/DefaultPolicies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAG5E;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,gBAiK7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,gBAiC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,gBAqG7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAI7C,CAAC"}
@@ -9,6 +9,7 @@
9
9
  * @version 1.0.0
10
10
  * @created 2025-11-13
11
11
  */
12
+ import { analyzeBashCommand } from './bashCommandView.js';
12
13
  /**
13
14
  * Whitelist Policy: Safe research/read operations that never need approval
14
15
  *
@@ -120,29 +121,40 @@ export const whitelistPolicy = {
120
121
  'time', // Command timing
121
122
  'cd' // Change directory (safe)
122
123
  ];
124
+ // Heredoc/redirect-aware structural analysis (2026-08-22). The old rule
125
+ // here was `cmd.match(/[<>]/)` — ANY angle bracket (every heredoc, every
126
+ // `2>/dev/null`, a `<` in a quoted string) ejected the command from the
127
+ // whitelist. Built when models were unreliable with heredocs; the
128
+ // narrow-door program showed they no longer are. Now: only a REAL file
129
+ // write (`>`/`>>` to a non-sink target) leaves the whitelist — as a
130
+ // graylist WRITE (parity with the Write tool), not a hard ejection.
131
+ // Stdin feeds (`<`), heredocs (`<<`), and null sinks stay whitelistable;
132
+ // matching runs on the heredoc-body-free view (bodies are data).
133
+ const structure = analyzeBashCommand(cmd);
134
+ if (structure.hasFileWriteRedirect) {
135
+ return { allowed: true }; // A write — pass-through to graylist
136
+ }
137
+ const matchText = structure.view.trim();
123
138
  // Check if command matches any safe command (with or without args)
124
139
  const isSafeCommand = safeReadCommands.some((safe) => {
125
140
  // Exact match (e.g., "ls" === "ls")
126
- if (cmd === safe)
141
+ if (matchText === safe)
127
142
  return true;
128
143
  // Command with arguments (e.g., "ls -la" starts with "ls ")
129
144
  // Works for both single-word ("ls") and multi-word ("git status") commands
130
- if (cmd.startsWith(safe + ' '))
145
+ if (matchText.startsWith(safe + ' '))
131
146
  return true;
132
147
  return false;
133
148
  });
134
- // For compound commands (with &&, ||, |, ;), check if ALL parts are safe
135
- // Safe operators: && (and), || (or), | (pipe), ; (sequence)
136
- // Unsafe operators: >, >>, <, << (redirects)
137
- const hasUnsafeOperators = cmd.match(/[<>]/);
138
- if (hasUnsafeOperators) {
139
- // Has redirects - not safe even if commands are safe
140
- return { allowed: true }; // Pass-through to graylist
141
- }
142
- // Split by safe operators and check if all parts are safe commands
143
- const commandParts = cmd.split(/\s*(?:&&|\|\||[|;])\s*/).filter(Boolean);
149
+ // Split by safe operators (&&, ||, |, ;) and check if all parts are safe.
150
+ // Redirect operators inside parts were handled structurally above.
151
+ const commandParts = matchText.split(/\s*(?:&&|\|\||[|;])\s*/).filter(Boolean);
144
152
  const allPartsAreSafe = commandParts.every((part) => {
145
- const trimmed = part.trim();
153
+ // Strip stdin/heredoc operator tails so `sort < file` / `cat <<'EOF'`
154
+ // match on their command head.
155
+ const trimmed = part.trim().replace(/\s*<<?-?\s*.*$/, '').trim();
156
+ if (!trimmed)
157
+ return true; // pure operator remnant
146
158
  return safeReadCommands.some((safe) => {
147
159
  // Check if this part matches a safe command
148
160
  return trimmed === safe || trimmed.startsWith(safe + ' ');
@@ -244,7 +256,13 @@ export const blacklistPolicy = {
244
256
  'pkill -9',
245
257
  'killall',
246
258
  ];
247
- const isDangerous = dangerousPatterns.some((pattern) => cmd.includes(pattern));
259
+ // Heredoc bodies are DATA unless fed to an interpreter that executes
260
+ // stdin (2026-08-22): `cat > deploy.sh <<EOF` containing `rm -rf ./dist`
261
+ // is a WRITE of text, not an execution — scan the body-free view.
262
+ // `bash <<EOF` DOES execute its body — scan the full command.
263
+ const bl = analyzeBashCommand(cmd);
264
+ const scanText = bl.interpreterFed ? cmd : bl.view;
265
+ const isDangerous = dangerousPatterns.some((pattern) => scanText.includes(pattern));
248
266
  if (isDangerous) {
249
267
  const previewCmd = cmd.substring(0, 50) + (cmd.length > 50 ? '...' : '');
250
268
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultPolicies.js","sourceRoot":"","sources":["../../../src/middleware/permissions/DefaultPolicies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DefaultPolicies.js","sourceRoot":"","sources":["../../../src/middleware/permissions/DefaultPolicies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Heredoc/redirect-aware structural view of a bash command for permission
3
+ * analysis (2026-08-22, operator-commissioned).
4
+ *
5
+ * WHY: the original whitelist rule treated EVERY `<`/`>` character as an
6
+ * unsafe operator, so all heredocs — including pure stdin feeds that write
7
+ * nothing — fell out of the safe whitelist. That rule dates from when models
8
+ * were unreliable with heredocs; the narrow-door program showed current and
9
+ * bash-focused trained models use them proficiently, so the analysis becomes
10
+ * structural:
11
+ *
12
+ * - heredoc BODIES are data, not commands — they are stripped from the view
13
+ * used for whitelist matching and (for non-interpreter targets) dangerous-
14
+ * pattern scanning. Writing a script that CONTAINS `rm -rf ./dist` is a
15
+ * write, not an execution.
16
+ * - a heredoc fed to an INTERPRETER (`bash <<EOF`) IS executed — those
17
+ * bodies stay in scope for danger scans (`interpreterFed`).
18
+ * - `>`/`>>` to a real file = a WRITE (graylist tier, parity with the Write
19
+ * tool). Null sinks (`>/dev/null`, `2>&1`, fd dups) are not writes.
20
+ * - `<` stdin feeds are reads and never disqualify a safe command.
21
+ */
22
+ export interface BashCommandView {
23
+ /** Command text with heredoc bodies removed (operators/markers retained). */
24
+ view: string;
25
+ /** At least one heredoc (`<<`/`<<-`) operator was present. */
26
+ hadHeredoc: boolean;
27
+ /** A `>`/`>>` redirect targets a real file (null sinks/fd dups excluded). */
28
+ hasFileWriteRedirect: boolean;
29
+ /** The command line feeds stdin to an interpreter that executes it. */
30
+ interpreterFed: boolean;
31
+ }
32
+ /** Analyze a bash command into its permission-relevant structure. */
33
+ export declare function analyzeBashCommand(command: string): BashCommandView;
34
+ //# sourceMappingURL=bashCommandView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bashCommandView.d.ts","sourceRoot":"","sources":["../../../src/middleware/permissions/bashCommandView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uEAAuE;IACvE,cAAc,EAAE,OAAO,CAAC;CACzB;AA8BD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAsCnE"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Heredoc/redirect-aware structural view of a bash command for permission
3
+ * analysis (2026-08-22, operator-commissioned).
4
+ *
5
+ * WHY: the original whitelist rule treated EVERY `<`/`>` character as an
6
+ * unsafe operator, so all heredocs — including pure stdin feeds that write
7
+ * nothing — fell out of the safe whitelist. That rule dates from when models
8
+ * were unreliable with heredocs; the narrow-door program showed current and
9
+ * bash-focused trained models use them proficiently, so the analysis becomes
10
+ * structural:
11
+ *
12
+ * - heredoc BODIES are data, not commands — they are stripped from the view
13
+ * used for whitelist matching and (for non-interpreter targets) dangerous-
14
+ * pattern scanning. Writing a script that CONTAINS `rm -rf ./dist` is a
15
+ * write, not an execution.
16
+ * - a heredoc fed to an INTERPRETER (`bash <<EOF`) IS executed — those
17
+ * bodies stay in scope for danger scans (`interpreterFed`).
18
+ * - `>`/`>>` to a real file = a WRITE (graylist tier, parity with the Write
19
+ * tool). Null sinks (`>/dev/null`, `2>&1`, fd dups) are not writes.
20
+ * - `<` stdin feeds are reads and never disqualify a safe command.
21
+ */
22
+ /** Interpreters that execute their stdin — heredoc bodies fed to these are
23
+ * live code and must stay visible to dangerous-pattern scanning. */
24
+ const STDIN_INTERPRETERS = new Set([
25
+ 'bash', 'sh', 'zsh', 'dash', 'ksh', 'fish',
26
+ 'node', 'python', 'python2', 'python3', 'perl', 'ruby', 'php', 'deno', 'bun',
27
+ ]);
28
+ const HEREDOC_RE = /<<-?\s*(["']?)([A-Za-z_][\w]*)\1/;
29
+ /** Strip one heredoc body (marker line retained). Returns null when no
30
+ * heredoc remains. Unterminated bodies extend to end-of-string. */
31
+ function stripFirstHeredocBody(text) {
32
+ const m = HEREDOC_RE.exec(text);
33
+ if (!m)
34
+ return null;
35
+ const markerEnd = m.index + m[0].length;
36
+ const delim = m[2];
37
+ const bodyStart = text.indexOf('\n', markerEnd);
38
+ if (bodyStart === -1)
39
+ return text; // marker but no body yet — nothing to strip
40
+ // Body runs to a line that is exactly the delimiter (leading tabs ok for <<-).
41
+ const lines = text.slice(bodyStart + 1).split('\n');
42
+ let end = lines.length; // unterminated → strip to end
43
+ for (let i = 0; i < lines.length; i++) {
44
+ if (lines[i].replace(/^\t+/, '') === delim) {
45
+ end = i;
46
+ break;
47
+ }
48
+ }
49
+ const after = lines.slice(end + 1).join('\n');
50
+ return text.slice(0, bodyStart) + (after ? '\n' + after : '');
51
+ }
52
+ /** Analyze a bash command into its permission-relevant structure. */
53
+ export function analyzeBashCommand(command) {
54
+ const raw = command ?? '';
55
+ const hadHeredoc = HEREDOC_RE.test(raw);
56
+ let view = raw;
57
+ if (hadHeredoc) {
58
+ // Iteratively strip bodies; guard against pathological loops.
59
+ for (let i = 0; i < 8; i++) {
60
+ const next = stripFirstHeredocBody(view);
61
+ if (next === null || next === view)
62
+ break;
63
+ view = next;
64
+ }
65
+ }
66
+ // Write redirects on the BODY-FREE view: `>`/`>>` (optionally fd-prefixed)
67
+ // to a target that is not /dev/null and not an fd duplication (`>&1`).
68
+ let hasFileWriteRedirect = false;
69
+ const redir = /(?<![<>])[0-9]?>{1,2}\s*([^\s|;&<>]+)/g;
70
+ for (const m of view.matchAll(redir)) {
71
+ const target = m[1];
72
+ if (target.startsWith('&'))
73
+ continue; // fd dup (2>&1)
74
+ if (target === '/dev/null')
75
+ continue; // null sink
76
+ hasFileWriteRedirect = true;
77
+ break;
78
+ }
79
+ // Interpreter-fed heredoc: first command token (skipping env prefixes and
80
+ // sudo) is a stdin interpreter.
81
+ let interpreterFed = false;
82
+ if (hadHeredoc) {
83
+ const tokens = view.trim().split(/\s+/);
84
+ let idx = 0;
85
+ while (idx < tokens.length && (/^[A-Za-z_][\w]*=/.test(tokens[idx]) || tokens[idx] === 'sudo' || tokens[idx] === 'env'))
86
+ idx++;
87
+ const base = (tokens[idx] ?? '').split('/').pop() ?? '';
88
+ interpreterFed = STDIN_INTERPRETERS.has(base);
89
+ }
90
+ return { view, hadHeredoc, hasFileWriteRedirect, interpreterFed };
91
+ }
92
+ //# sourceMappingURL=bashCommandView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bashCommandView.js","sourceRoot":"","sources":["../../../src/middleware/permissions/bashCommandView.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hf-space-models.d.ts","sourceRoot":"","sources":["../../../../src/models/cards/huggingface/hf-space-models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAuFlE,eAAO,MAAM,iBAAiB,EAAE,WAAW,EAE1C,CAAC"}
1
+ {"version":3,"file":"hf-space-models.d.ts","sourceRoot":"","sources":["../../../../src/models/cards/huggingface/hf-space-models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AA4FlE,eAAO,MAAM,iBAAiB,EAAE,WAAW,EAE1C,CAAC"}
@@ -32,6 +32,11 @@ const SPECS = [
32
32
  { envSlug: 'LFM2_5_350M', id: 'lfm2.5-350m-space', displayName: 'LFM2.5 350M (HF Space)', family: 'lfm2.5', repo: 'LiquidAI/LFM2.5-350M', contextWindow: 32768, reasoning: false, defaultTemperature: 0.3 },
33
33
  { envSlug: 'LFM2_5_1_2B', id: 'lfm2.5-1.2b-space', displayName: 'LFM2.5 1.2B (HF Space)', family: 'lfm2.5', repo: 'LiquidAI/LFM2.5-1.2B-Instruct', contextWindow: 32768, reasoning: false, defaultTemperature: 0.3 },
34
34
  { envSlug: 'LFM2_5_1_2B_THINKING', id: 'lfm2.5-1.2b-thinking-space', displayName: 'LFM2.5 1.2B Thinking (HF Space)', family: 'lfm2.5', repo: 'LiquidAI/LFM2.5-1.2B-Thinking', contextWindow: 32768, reasoning: true, defaultTemperature: 0.3 },
35
+ // New-generation LFM2.5 (128K vocab lineage; both always-think). Vendor temps
36
+ // (2.6B gen_config 0.1 / 8B 0.2); rep-penalty is NOT expressible via the card
37
+ // — confound-check degenerate recursion before believing any 0/N.
38
+ { envSlug: 'LFM2_5_2_6B', id: 'lfm2.5-2.6b-space', displayName: 'LFM2.5 2.6B (HF Space)', family: 'lfm2.5', repo: 'LiquidAI/LFM2.5-2.6B', contextWindow: 32768, reasoning: true, defaultTemperature: 0.1 },
39
+ { envSlug: 'LFM2_5_8B_A1B', id: 'lfm2.5-8b-a1b-space', displayName: 'LFM2.5 8B-A1B MoE (HF Space)', family: 'lfm2.5', repo: 'LiquidAI/LFM2.5-8B-A1B', contextWindow: 32768, reasoning: true, defaultTemperature: 0.2 },
35
40
  // MiniCPM5 1.08B (dense Llama arch, apache-2.0; hybrid <think>; own XML tool
36
41
  // family — see normalize.ts). Temp 0.3 = tool-stability override (vendor chat
37
42
  // default is 0.9/0.95, but router-bench r8/r8b: 100/300 @0.9 vs 250/300 @0.3 —
@@ -1 +1 @@
1
- {"version":3,"file":"hf-space-models.js","sourceRoot":"","sources":["../../../../src/models/cards/huggingface/hf-space-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hf-space-models.js","sourceRoot":"","sources":["../../../../src/models/cards/huggingface/hf-space-models.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cortex/core",
3
- "version": "4.67.0",
3
+ "version": "4.69.0",
4
4
  "description": "Core orchestration library implementing Claude CLI architecture patterns",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,8 +47,8 @@
47
47
  "@google/generative-ai": "^0.2.1",
48
48
  "@gradio/client": "^2.3.1",
49
49
  "@modelcontextprotocol/sdk": "^1.20.2",
50
- "@nexus-cortex/executors": "4.67.0",
51
- "@nexus-cortex/types": "4.67.0",
50
+ "@nexus-cortex/executors": "4.69.0",
51
+ "@nexus-cortex/types": "4.69.0",
52
52
  "@types/uuid": "^10.0.0",
53
53
  "ajv": "^8.12.0",
54
54
  "chokidar": "^3.6.0",
@@ -56,7 +56,7 @@
56
56
  "tiktoken": "^1.0.22",
57
57
  "undici": "^5.28.4",
58
58
  "uuid": "^13.0.0",
59
- "nexus-canon": "1.9.3"
59
+ "nexus-canon": "1.9.5"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/node": "^20.0.0",