247-cli 1.5.0 → 1.6.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/agent/dist/lib/init-script.d.ts +23 -0
- package/agent/dist/lib/init-script.d.ts.map +1 -0
- package/agent/dist/lib/init-script.js +71 -0
- package/agent/dist/lib/init-script.js.map +1 -0
- package/agent/dist/terminal.d.ts.map +1 -1
- package/agent/dist/terminal.js +30 -31
- package/agent/dist/terminal.js.map +1 -1
- package/agent/node_modules/247-shared/package.json +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface InitScriptOptions {
|
|
2
|
+
sessionName: string;
|
|
3
|
+
customEnvVars?: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Generates a bash init script for tmux session initialization.
|
|
7
|
+
* This script sets up environment variables and tmux options, then starts an interactive shell.
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateInitScript(options: InitScriptOptions): string;
|
|
10
|
+
/**
|
|
11
|
+
* Writes the init script to a temporary file.
|
|
12
|
+
* @returns The path to the created script file.
|
|
13
|
+
*/
|
|
14
|
+
export declare function writeInitScript(sessionName: string, content: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Removes the init script file.
|
|
17
|
+
*/
|
|
18
|
+
export declare function cleanupInitScript(sessionName: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Gets the path where an init script would be written.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getInitScriptPath(sessionName: string): string;
|
|
23
|
+
//# sourceMappingURL=init-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-script.d.ts","sourceRoot":"","sources":["../../src/lib/init-script.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA4BrE;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAO3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
/**
|
|
5
|
+
* Generates a bash init script for tmux session initialization.
|
|
6
|
+
* This script sets up environment variables and tmux options, then starts an interactive shell.
|
|
7
|
+
*/
|
|
8
|
+
export function generateInitScript(options) {
|
|
9
|
+
const { sessionName, customEnvVars = {} } = options;
|
|
10
|
+
// Build export statements
|
|
11
|
+
const exports = [`export CLAUDE_TMUX_SESSION="${escapeForBash(sessionName)}"`];
|
|
12
|
+
// Add custom env vars (filter out empty values)
|
|
13
|
+
for (const [key, value] of Object.entries(customEnvVars)) {
|
|
14
|
+
if (value && value.trim() !== '') {
|
|
15
|
+
exports.push(`export ${key}="${escapeForBash(value)}"`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return `#!/bin/bash
|
|
19
|
+
# 247 Terminal Init Script - Auto-generated
|
|
20
|
+
# Session: ${sessionName}
|
|
21
|
+
# Generated: ${new Date().toISOString()}
|
|
22
|
+
|
|
23
|
+
# Environment variables
|
|
24
|
+
${exports.join('\n')}
|
|
25
|
+
|
|
26
|
+
# tmux configuration
|
|
27
|
+
tmux set-option -t "${escapeForBash(sessionName)}" history-limit 10000 2>/dev/null
|
|
28
|
+
tmux set-option -t "${escapeForBash(sessionName)}" mouse on 2>/dev/null
|
|
29
|
+
|
|
30
|
+
# Start interactive shell (replaces this script process)
|
|
31
|
+
exec bash -i
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Escapes a string for safe use in bash double-quoted strings.
|
|
36
|
+
*/
|
|
37
|
+
function escapeForBash(value) {
|
|
38
|
+
return value
|
|
39
|
+
.replace(/\\/g, '\\\\')
|
|
40
|
+
.replace(/"/g, '\\"')
|
|
41
|
+
.replace(/\$/g, '\\$')
|
|
42
|
+
.replace(/`/g, '\\`');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Writes the init script to a temporary file.
|
|
46
|
+
* @returns The path to the created script file.
|
|
47
|
+
*/
|
|
48
|
+
export function writeInitScript(sessionName, content) {
|
|
49
|
+
const scriptPath = path.join(os.tmpdir(), `247-init-${sessionName}.sh`);
|
|
50
|
+
fs.writeFileSync(scriptPath, content, { mode: 0o755 });
|
|
51
|
+
return scriptPath;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Removes the init script file.
|
|
55
|
+
*/
|
|
56
|
+
export function cleanupInitScript(sessionName) {
|
|
57
|
+
const scriptPath = path.join(os.tmpdir(), `247-init-${sessionName}.sh`);
|
|
58
|
+
try {
|
|
59
|
+
fs.unlinkSync(scriptPath);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Ignore errors (file might already be deleted)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Gets the path where an init script would be written.
|
|
67
|
+
*/
|
|
68
|
+
export function getInitScriptPath(sessionName) {
|
|
69
|
+
return path.join(os.tmpdir(), `247-init-${sessionName}.sh`);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=init-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-script.js","sourceRoot":"","sources":["../../src/lib/init-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IAC3D,MAAM,EAAE,WAAW,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEpD,0BAA0B;IAC1B,MAAM,OAAO,GAAa,CAAC,+BAA+B,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEzF,gDAAgD;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO;;aAEI,WAAW;eACT,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;EAGrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;sBAGE,aAAa,CAAC,WAAW,CAAC;sBAC1B,aAAa,CAAC,WAAW,CAAC;;;;CAI/C,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK;SACT,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAe;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,WAAW,KAAK,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,WAAW,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,WAAW,KAAK,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,IAAI,CAAC;IACf,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,iBAAiB,IAAI,OAAO,CAAC;IAC7B,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACrC;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,QAAQ,CAuJV"}
|
package/agent/dist/terminal.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as pty from '@homebridge/node-pty-prebuilt-multiarch';
|
|
2
2
|
import { exec, execSync } from 'child_process';
|
|
3
3
|
import { promisify } from 'util';
|
|
4
|
+
import { generateInitScript, writeInitScript, cleanupInitScript } from './lib/init-script';
|
|
4
5
|
const execAsync = promisify(exec);
|
|
5
6
|
export function createTerminal(cwd, sessionName, customEnvVars = {}) {
|
|
6
7
|
// Check if session already exists before spawning
|
|
@@ -19,11 +20,21 @@ export function createTerminal(cwd, sessionName, customEnvVars = {}) {
|
|
|
19
20
|
}
|
|
20
21
|
// Use tmux for session persistence
|
|
21
22
|
// For existing sessions: use attach-session (more reliable)
|
|
22
|
-
// For new sessions: use new-session with
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
// For new sessions: use new-session with init script for clean setup
|
|
24
|
+
let tmuxArgs;
|
|
25
|
+
let initScriptPath = null;
|
|
26
|
+
if (existingSession) {
|
|
27
|
+
tmuxArgs = ['attach-session', '-t', sessionName];
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Generate and write init script for new sessions
|
|
31
|
+
const scriptContent = generateInitScript({ sessionName, customEnvVars });
|
|
32
|
+
initScriptPath = writeInitScript(sessionName, scriptContent);
|
|
33
|
+
console.log(`[Terminal] Init script written to: ${initScriptPath}`);
|
|
34
|
+
// Spawn tmux with the init script
|
|
35
|
+
// The script exports env vars, configures tmux, then runs exec bash -i
|
|
36
|
+
tmuxArgs = ['new-session', '-s', sessionName, '-c', cwd, `bash --init-file ${initScriptPath}`];
|
|
37
|
+
}
|
|
27
38
|
console.log(`[Terminal] Spawning: tmux ${tmuxArgs.join(' ')}`);
|
|
28
39
|
const shell = pty.spawn('tmux', tmuxArgs, {
|
|
29
40
|
name: 'xterm-256color',
|
|
@@ -32,10 +43,8 @@ export function createTerminal(cwd, sessionName, customEnvVars = {}) {
|
|
|
32
43
|
cwd,
|
|
33
44
|
env: {
|
|
34
45
|
...process.env,
|
|
35
|
-
// Note: customEnvVars are NOT included here to avoid polluting the pty environment
|
|
36
|
-
// They will be injected per-session using tmux send-keys
|
|
37
46
|
TERM: 'xterm-256color',
|
|
38
|
-
CLAUDE_TMUX_SESSION: sessionName, //
|
|
47
|
+
CLAUDE_TMUX_SESSION: sessionName, // Also set at PTY level for hook detection
|
|
39
48
|
PATH: `/opt/homebrew/bin:${process.env.PATH}`,
|
|
40
49
|
// Ensure UTF-8 encoding for proper accent/unicode support
|
|
41
50
|
LANG: process.env.LANG || 'en_US.UTF-8',
|
|
@@ -68,31 +77,21 @@ export function createTerminal(cwd, sessionName, customEnvVars = {}) {
|
|
|
68
77
|
readyCallbacks.forEach((cb) => cb());
|
|
69
78
|
readyCallbacks.length = 0; // Clear the array
|
|
70
79
|
};
|
|
71
|
-
//
|
|
80
|
+
// Handle session initialization and readiness
|
|
72
81
|
if (!existingSession) {
|
|
82
|
+
// For new sessions, the init script handles env vars and tmux config
|
|
83
|
+
// Fire ready callbacks once shell is likely initialized
|
|
73
84
|
setTimeout(() => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
.join('; ')}`
|
|
85
|
-
: baseExport;
|
|
86
|
-
console.log(`[Terminal] Injecting CLAUDE_TMUX_SESSION and ${nonEmptyVars.length} custom vars into NEW session '${sessionName}'`);
|
|
87
|
-
// Séquences ANSI pour effacer les lignes après exécution
|
|
88
|
-
// \033[1A = remonter d'une ligne, \033[2K = effacer la ligne
|
|
89
|
-
// On efface 2 lignes: la commande tapée + le prompt précédent
|
|
90
|
-
const clearSequence = `printf '\\033[1A\\033[2K\\033[1A\\033[2K'`;
|
|
91
|
-
exec(`tmux send-keys -t "${sessionName}" "${allExports}; ${clearSequence}" C-m`, () => {
|
|
92
|
-
// Fire ready callbacks after init commands are sent
|
|
93
|
-
fireReadyCallbacks();
|
|
94
|
-
});
|
|
95
|
-
}, 100);
|
|
85
|
+
console.log(`[Terminal] New session '${sessionName}' ready (init script executed)`);
|
|
86
|
+
fireReadyCallbacks();
|
|
87
|
+
}, 150);
|
|
88
|
+
// Cleanup init script after shell has started (give it time to read the file)
|
|
89
|
+
if (initScriptPath) {
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
cleanupInitScript(sessionName);
|
|
92
|
+
console.log(`[Terminal] Init script cleaned up for '${sessionName}'`);
|
|
93
|
+
}, 5000);
|
|
94
|
+
}
|
|
96
95
|
}
|
|
97
96
|
else {
|
|
98
97
|
// For existing sessions, just ensure mouse is enabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ const program = new Command();
|
|
|
15
15
|
program
|
|
16
16
|
.name('247')
|
|
17
17
|
.description('247 - Access Claude Code from anywhere 24/7\nby The Vibe Company')
|
|
18
|
-
.version('1.
|
|
18
|
+
.version('1.6.0')
|
|
19
19
|
.option('-P, --profile <name>', 'Use a specific profile (dev, prod, etc.)');
|
|
20
20
|
// Add commands
|
|
21
21
|
program.addCommand(initCommand);
|