tsunami-code 3.11.5 โ 3.11.7
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/index.js +27 -7
- package/lib/loop.js +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
} from './lib/memory.js';
|
|
27
27
|
import { listMemories, readMemory, saveMemory, deleteMemory, getMemdirPath } from './lib/memdir.js';
|
|
28
28
|
|
|
29
|
-
const VERSION = '3.11.
|
|
29
|
+
const VERSION = '3.11.7';
|
|
30
30
|
const CONFIG_DIR = join(os.homedir(), '.tsunami-code');
|
|
31
31
|
const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
32
32
|
const DEFAULT_SERVER = 'https://radiometric-reita-amuck.ngrok-free.dev';
|
|
@@ -64,9 +64,29 @@ const blue = (s) => chalk.blue(s);
|
|
|
64
64
|
const magenta = (s) => chalk.magenta(s);
|
|
65
65
|
|
|
66
66
|
function printBanner(serverUrl) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
const divider = chalk.cyan(' ' + 'โ'.repeat(54));
|
|
68
|
+
const thin = chalk.cyan.dim(' ' + 'โ'.repeat(54));
|
|
69
|
+
|
|
70
|
+
console.log('');
|
|
71
|
+
console.log(divider);
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(
|
|
74
|
+
' ' + chalk.bold.cyan('๐ T S U N A M I') +
|
|
75
|
+
' ' + chalk.bold.white('C O D E C L I') +
|
|
76
|
+
' ' + chalk.dim('v' + VERSION)
|
|
77
|
+
);
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log(thin);
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log(' ' + chalk.dim('KEYSTONE WORLD MANAGEMENT'));
|
|
82
|
+
console.log(
|
|
83
|
+
' ' + chalk.bold.white('NAVY SEAL UNIT XI3') +
|
|
84
|
+
chalk.dim(' ยท ') +
|
|
85
|
+
chalk.bold.red('INTERNATIONAL AI WARS')
|
|
86
|
+
);
|
|
87
|
+
console.log('');
|
|
88
|
+
console.log(divider);
|
|
89
|
+
console.log('');
|
|
70
90
|
}
|
|
71
91
|
|
|
72
92
|
function printToolCall(name, args, elapsedMs) {
|
|
@@ -526,7 +546,7 @@ async function run() {
|
|
|
526
546
|
ui.setModelLabel(`Tsunami Code CLI v${VERSION}`);
|
|
527
547
|
|
|
528
548
|
// โโ Permission mode โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
529
|
-
const PERM_MODES = ['auto', 'accept-edits', 'confirm-writes', 'confirm-all', 'readonly', 'bypass'];
|
|
549
|
+
const PERM_MODES = ['auto', 'accept-edits', 'confirm-writes', 'confirm-all', 'readonly', 'bypass-permissions'];
|
|
530
550
|
let permMode = 'auto';
|
|
531
551
|
|
|
532
552
|
// โโ Mode label helper โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
@@ -541,8 +561,8 @@ async function run() {
|
|
|
541
561
|
'accept-edits': dim('[accept-edits]'),
|
|
542
562
|
'confirm-writes': cyan('[confirm-writes]'),
|
|
543
563
|
'confirm-all': yellow('[confirm-all]'),
|
|
544
|
-
'readonly':
|
|
545
|
-
'bypass':
|
|
564
|
+
'readonly': chalk.blue.bold('[readonly]'),
|
|
565
|
+
'bypass-permissions': chalk.red.bold('[bypass-permissions]'),
|
|
546
566
|
}[permMode];
|
|
547
567
|
if (permBadge) badges.push(permBadge);
|
|
548
568
|
|
package/lib/loop.js
CHANGED
|
@@ -460,7 +460,7 @@ export async function agentLoop(serverUrl, messages, onToken, onToolCall, sessio
|
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
// โโ Permission gate (skip entirely in bypass mode) โโโโโโโโโโโโโโโ
|
|
463
|
-
if (permMode !== 'bypass' && confirmCallback) {
|
|
463
|
+
if (permMode !== 'bypass-permissions' && confirmCallback) {
|
|
464
464
|
const needsConfirm =
|
|
465
465
|
(permMode === 'confirm-all' && ['Write', 'Edit', 'Bash'].includes(tc.name)) ||
|
|
466
466
|
(permMode === 'confirm-writes' && ['Write', 'Edit'].includes(tc.name)) ||
|