@kraki/tentacle 0.2.1 → 0.2.4
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/adapters/copilot.d.ts +1 -0
- package/dist/adapters/copilot.js +94 -5
- package/dist/adapters/copilot.js.map +1 -1
- package/dist/banner.js +23 -7
- package/dist/banner.js.map +1 -1
- package/dist/cli.js +101 -51
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.js +18 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon-worker.js +15 -7
- package/dist/daemon-worker.js.map +1 -1
- package/dist/daemon.d.ts +3 -2
- package/dist/daemon.js +29 -12
- package/dist/daemon.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.js +9 -0
- package/dist/logger.js.map +1 -1
- package/dist/message-store.d.ts +57 -0
- package/dist/message-store.js +212 -0
- package/dist/message-store.js.map +1 -0
- package/dist/relay-client.d.ts +14 -3
- package/dist/relay-client.js +70 -1
- package/dist/relay-client.js.map +1 -1
- package/dist/setup.js +129 -30
- package/dist/setup.js.map +1 -1
- package/package.json +7 -4
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* remote user approves/denies/answers via the tentacle runtime.
|
|
14
14
|
*/
|
|
15
15
|
import { AgentAdapter, type CreateSessionConfig, type SessionInfo, type PermissionDecision } from './base.js';
|
|
16
|
+
export declare function resolveCopilotCliPath(): string | undefined;
|
|
16
17
|
export declare function patchCopilotSdkSessionImport(currentUrl?: string): boolean;
|
|
17
18
|
export declare function resolveCopilotSdkSessionPath(currentUrl?: string): string | null;
|
|
18
19
|
export declare function installCopilotSdkImportCompatibility(currentUrl?: string): 'hook' | 'patch' | null;
|
package/dist/adapters/copilot.js
CHANGED
|
@@ -17,7 +17,8 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
17
17
|
import * as moduleApi from 'node:module';
|
|
18
18
|
import { homedir } from 'node:os';
|
|
19
19
|
import { dirname, join } from 'node:path';
|
|
20
|
-
import { fileURLToPath } from 'node:url';
|
|
20
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
21
|
+
import { isSea } from 'node:sea';
|
|
21
22
|
import { AgentAdapter, } from './base.js';
|
|
22
23
|
import { parsePermission } from '../parse-permission.js';
|
|
23
24
|
import { createLogger } from '../logger.js';
|
|
@@ -43,11 +44,33 @@ function getErrorMessage(err) {
|
|
|
43
44
|
return err.message;
|
|
44
45
|
return String(err);
|
|
45
46
|
}
|
|
47
|
+
function getRuntimeUrl() {
|
|
48
|
+
const scriptPath = process.argv[1];
|
|
49
|
+
return pathToFileURL(scriptPath ?? process.execPath).href;
|
|
50
|
+
}
|
|
51
|
+
function resolveExecutableFromPath(commandName) {
|
|
52
|
+
const lookupCommand = process.platform === 'win32'
|
|
53
|
+
? `where.exe ${commandName} 2>NUL`
|
|
54
|
+
: `command -v ${commandName} 2>/dev/null`;
|
|
55
|
+
try {
|
|
56
|
+
const output = execSync(lookupCommand, { encoding: 'utf8' }).trim();
|
|
57
|
+
return output
|
|
58
|
+
.split(/\r?\n/)
|
|
59
|
+
.map((line) => line.trim())
|
|
60
|
+
.find((candidate) => candidate.length > 0 && existsSync(candidate));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function resolveCopilotCliPath() {
|
|
67
|
+
return resolveExecutableFromPath('copilot');
|
|
68
|
+
}
|
|
46
69
|
function isRecoverableSessionError(err) {
|
|
47
70
|
const message = getErrorMessage(err);
|
|
48
71
|
return message.includes('Session not found:') || message.includes('Connection is disposed');
|
|
49
72
|
}
|
|
50
|
-
export function patchCopilotSdkSessionImport(currentUrl =
|
|
73
|
+
export function patchCopilotSdkSessionImport(currentUrl = getRuntimeUrl()) {
|
|
51
74
|
const sessionPath = resolveCopilotSdkSessionPath(currentUrl);
|
|
52
75
|
if (!sessionPath) {
|
|
53
76
|
return false;
|
|
@@ -60,7 +83,7 @@ export function patchCopilotSdkSessionImport(currentUrl = import.meta.url) {
|
|
|
60
83
|
writeFileSync(sessionPath, patched, 'utf8');
|
|
61
84
|
return true;
|
|
62
85
|
}
|
|
63
|
-
export function resolveCopilotSdkSessionPath(currentUrl =
|
|
86
|
+
export function resolveCopilotSdkSessionPath(currentUrl = getRuntimeUrl()) {
|
|
64
87
|
let dir = dirname(fileURLToPath(currentUrl));
|
|
65
88
|
while (true) {
|
|
66
89
|
const candidate = join(dir, 'node_modules', '@github', 'copilot-sdk', 'dist', 'session.js');
|
|
@@ -74,7 +97,7 @@ export function resolveCopilotSdkSessionPath(currentUrl = import.meta.url) {
|
|
|
74
97
|
dir = parent;
|
|
75
98
|
}
|
|
76
99
|
}
|
|
77
|
-
export function installCopilotSdkImportCompatibility(currentUrl =
|
|
100
|
+
export function installCopilotSdkImportCompatibility(currentUrl = getRuntimeUrl()) {
|
|
78
101
|
if (typeof moduleCompat.registerHooks === 'function') {
|
|
79
102
|
moduleCompat.registerHooks({
|
|
80
103
|
resolve(specifier, context, nextResolve) {
|
|
@@ -90,6 +113,9 @@ export function installCopilotSdkImportCompatibility(currentUrl = import.meta.ur
|
|
|
90
113
|
moduleCompat.register(`data:text/javascript,${encodeURIComponent(COPILOT_SDK_COMPATIBILITY_LOADER_SOURCE)}`, currentUrl);
|
|
91
114
|
return 'hook';
|
|
92
115
|
}
|
|
116
|
+
if (isSea()) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
93
119
|
if (patchCopilotSdkSessionImport(currentUrl)) {
|
|
94
120
|
return 'patch';
|
|
95
121
|
}
|
|
@@ -144,10 +170,14 @@ export class CopilotAdapter extends AgentAdapter {
|
|
|
144
170
|
// gh CLI unavailable — SDK will use its own auth chain
|
|
145
171
|
}
|
|
146
172
|
}
|
|
173
|
+
const cliPath = this.cliPath ?? resolveCopilotCliPath();
|
|
174
|
+
if (!cliPath && isSea()) {
|
|
175
|
+
throw new Error('Copilot CLI not found on PATH. Install GitHub Copilot CLI so `copilot` is available.');
|
|
176
|
+
}
|
|
147
177
|
const opts = {
|
|
148
178
|
useLoggedInUser: false,
|
|
149
179
|
...(githubToken && { githubToken }),
|
|
150
|
-
...(
|
|
180
|
+
...(cliPath && { cliPath }),
|
|
151
181
|
};
|
|
152
182
|
const CopilotClient = await loadCopilotClient();
|
|
153
183
|
this.client = new CopilotClient(opts);
|
|
@@ -167,11 +197,36 @@ export class CopilotAdapter extends AgentAdapter {
|
|
|
167
197
|
this.ensureClient();
|
|
168
198
|
const pendingPermissions = new Map();
|
|
169
199
|
const pendingQuestions = new Map();
|
|
200
|
+
// Load MCP server config and inject into session
|
|
201
|
+
const mcpConfigPath = join(homedir(), '.copilot', 'mcp-config.json');
|
|
202
|
+
let mcpServers;
|
|
203
|
+
if (existsSync(mcpConfigPath)) {
|
|
204
|
+
try {
|
|
205
|
+
const mcpRaw = JSON.parse(readFileSync(mcpConfigPath, 'utf8'));
|
|
206
|
+
const rawServers = mcpRaw.mcpServers ?? {};
|
|
207
|
+
const serverNames = Object.keys(rawServers);
|
|
208
|
+
if (serverNames.length > 0) {
|
|
209
|
+
// CLI requires `tools` field on each server — default to all tools
|
|
210
|
+
mcpServers = {};
|
|
211
|
+
for (const [name, cfg] of Object.entries(rawServers)) {
|
|
212
|
+
mcpServers[name] = { ...cfg, tools: cfg.tools ?? ['*'] };
|
|
213
|
+
}
|
|
214
|
+
logger.info(`MCP config found: ${serverNames.length} server(s) [${serverNames.join(', ')}]`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
logger.warn(`MCP config exists but failed to parse: ${err.message}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
logger.info('No MCP config at ~/.copilot/mcp-config.json');
|
|
223
|
+
}
|
|
170
224
|
const sessionConfig = {
|
|
171
225
|
...(config.sessionId && { sessionId: config.sessionId }),
|
|
172
226
|
...(config.model && { model: config.model }),
|
|
173
227
|
...(config.cwd && { workingDirectory: config.cwd }),
|
|
174
228
|
configDir: join(homedir(), '.copilot'),
|
|
229
|
+
...(mcpServers && { mcpServers }),
|
|
175
230
|
streaming: true,
|
|
176
231
|
onPermissionRequest: this.makePermissionHandler(pendingPermissions),
|
|
177
232
|
onUserInputRequest: this.makeQuestionHandler(pendingQuestions),
|
|
@@ -342,8 +397,24 @@ export class CopilotAdapter extends AgentAdapter {
|
|
|
342
397
|
this.sessionModes.delete(sessionId);
|
|
343
398
|
}
|
|
344
399
|
makeResumeConfig(pendingPermissions, pendingQuestions) {
|
|
400
|
+
// Load MCP servers for resumed sessions too
|
|
401
|
+
const mcpConfigPath = join(homedir(), '.copilot', 'mcp-config.json');
|
|
402
|
+
let mcpServers;
|
|
403
|
+
if (existsSync(mcpConfigPath)) {
|
|
404
|
+
try {
|
|
405
|
+
const rawServers = JSON.parse(readFileSync(mcpConfigPath, 'utf8')).mcpServers ?? {};
|
|
406
|
+
if (Object.keys(rawServers).length > 0) {
|
|
407
|
+
mcpServers = {};
|
|
408
|
+
for (const [name, cfg] of Object.entries(rawServers)) {
|
|
409
|
+
mcpServers[name] = { ...cfg, tools: cfg.tools ?? ['*'] };
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch { /* ignore parse errors on resume */ }
|
|
414
|
+
}
|
|
345
415
|
return {
|
|
346
416
|
configDir: join(homedir(), '.copilot'),
|
|
417
|
+
...(mcpServers && { mcpServers }),
|
|
347
418
|
onPermissionRequest: this.makePermissionHandler(pendingPermissions),
|
|
348
419
|
onUserInputRequest: this.makeQuestionHandler(pendingQuestions),
|
|
349
420
|
};
|
|
@@ -390,6 +461,9 @@ export class CopilotAdapter extends AgentAdapter {
|
|
|
390
461
|
});
|
|
391
462
|
session.on('tool.execution_start', (event) => {
|
|
392
463
|
const data = event.data;
|
|
464
|
+
if (data.mcpServerName) {
|
|
465
|
+
logger.info({ mcpServer: data.mcpServerName, mcpTool: data.mcpToolName }, `[MCP tool] ${data.mcpServerName}/${data.mcpToolName}`);
|
|
466
|
+
}
|
|
393
467
|
this.onToolStart?.(sessionId, {
|
|
394
468
|
toolName: data.toolName,
|
|
395
469
|
args: (data.args ?? data.arguments ?? {}),
|
|
@@ -412,6 +486,21 @@ export class CopilotAdapter extends AgentAdapter {
|
|
|
412
486
|
session.on('session.idle', () => {
|
|
413
487
|
this.onIdle?.(sessionId);
|
|
414
488
|
});
|
|
489
|
+
session.on('session.info', (event) => {
|
|
490
|
+
const data = event.data;
|
|
491
|
+
const category = data.category;
|
|
492
|
+
if (category === 'mcp') {
|
|
493
|
+
logger.info(`[MCP] ${data.message}`);
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
logger.debug(`[info:${category}] ${data.message}`);
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
session.on('session.warning', (event) => {
|
|
500
|
+
const data = event.data;
|
|
501
|
+
const category = data.category;
|
|
502
|
+
logger.warn(`[warning:${category}] ${data.message}`);
|
|
503
|
+
});
|
|
415
504
|
session.on('assistant.turn_end', (event) => {
|
|
416
505
|
const data = event.data;
|
|
417
506
|
const reason = data?.reason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/adapters/copilot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/adapters/copilot.ts"],"names":[],"mappings":"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"}
|
package/dist/banner.js
CHANGED
|
@@ -3,12 +3,28 @@
|
|
|
3
3
|
* Renders a colored octopus logo with radial reveal + title animation.
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import
|
|
7
|
-
const
|
|
8
|
-
const data = require('./banner-data.json');
|
|
6
|
+
import bannerData from './banner-data.json' with { type: 'json' };
|
|
7
|
+
const data = bannerData;
|
|
9
8
|
const SCRAMBLE = '!@#$%^&*=+<>~/';
|
|
10
9
|
const TITLE = 'KRAKI';
|
|
11
|
-
const TITLE_COLORS = ['#00c9a7', '#00b4d8', '#06b6d4', '#
|
|
10
|
+
const TITLE_COLORS = ['#00c9a7', '#00b4d8', '#06b6d4', '#ea6046', '#0891b2'];
|
|
11
|
+
const BLOCK_MAP = {
|
|
12
|
+
'.': '░', ':': '░', '-': '▒', '=': '▓', '+': '█', '*': '█', '#': '█', '%': '█', '@': '█',
|
|
13
|
+
};
|
|
14
|
+
/** Whether to render this cell as a block character (dense head) or original ASCII (tentacles) */
|
|
15
|
+
function useBlockChar(x, y, w) {
|
|
16
|
+
if (y < 8)
|
|
17
|
+
return true;
|
|
18
|
+
if (y === 8) {
|
|
19
|
+
const cx = Math.floor(w / 2);
|
|
20
|
+
return x >= cx - 9 && x < cx + 9;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
/** Convert a character to its block equivalent if in the head region */
|
|
25
|
+
function toDisplayChar(ch, x, y, w) {
|
|
26
|
+
return useBlockChar(x, y, w) ? (BLOCK_MAP[ch] ?? ch) : ch;
|
|
27
|
+
}
|
|
12
28
|
function sleep(ms) {
|
|
13
29
|
return new Promise((r) => setTimeout(r, ms));
|
|
14
30
|
}
|
|
@@ -111,7 +127,7 @@ export async function printAnimatedBanner() {
|
|
|
111
127
|
}
|
|
112
128
|
if (f > 0) {
|
|
113
129
|
for (const cell of frames[f - 1]) {
|
|
114
|
-
buffer[cell.y][cell.x] = chalk.rgb(cell.r, cell.g, cell.b)(cell.ch);
|
|
130
|
+
buffer[cell.y][cell.x] = chalk.rgb(cell.r, cell.g, cell.b)(toDisplayChar(cell.ch, cell.x, cell.y, w));
|
|
115
131
|
}
|
|
116
132
|
}
|
|
117
133
|
// Reveal text chars proportionally so they finish with the logo
|
|
@@ -124,7 +140,7 @@ export async function printAnimatedBanner() {
|
|
|
124
140
|
}
|
|
125
141
|
// Resolve final frame
|
|
126
142
|
for (const cell of frames[totalFrames - 1]) {
|
|
127
|
-
buffer[cell.y][cell.x] = chalk.rgb(cell.r, cell.g, cell.b)(cell.ch);
|
|
143
|
+
buffer[cell.y][cell.x] = chalk.rgb(cell.r, cell.g, cell.b)(toDisplayChar(cell.ch, cell.x, cell.y, w));
|
|
128
144
|
}
|
|
129
145
|
textCharsShown = totalTextChars;
|
|
130
146
|
redraw();
|
|
@@ -150,7 +166,7 @@ export function printStaticBanner() {
|
|
|
150
166
|
chars.push(' ');
|
|
151
167
|
}
|
|
152
168
|
else {
|
|
153
|
-
chars.push(chalk.rgb(c[1], c[2], c[3])(ch));
|
|
169
|
+
chars.push(chalk.rgb(c[1], c[2], c[3])(toDisplayChar(ch, x, y, w)));
|
|
154
170
|
}
|
|
155
171
|
}
|
|
156
172
|
let suffix = '';
|
package/dist/banner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAElE,MAAM,IAAI,GAAG,UAAqG,CAAC;AAEnH,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7E,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACzF,CAAC;AAEF,kGAAkG;AAClG,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACnD,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IAChE,OAAO,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAIjB,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG;gBAAE,SAAS;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,qBAAqB;IACrB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,qCAAqC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,gFAAgF;IAChF,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAE/C,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAExC,uDAAuD;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACrD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAEpF,gBAAgB;IAChB,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,KAAK,QAAQ,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrD,uDAAuD;gBACvD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACxE,oBAAoB;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;wBACZ,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3E,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,UAAU,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzE,uDAAuD;gBACvD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACxE,sBAAsB;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;oBAC1B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;wBACZ,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC;IAEF,sBAAsB;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxG,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YAC3E,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,EAAE,CAAC;QACT,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;IACD,cAAc,GAAG,cAAc,CAAC;IAChC,MAAM,EAAE,CAAC;IACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,cAAc;IACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAErC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACZ,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACZ,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -13,22 +13,35 @@
|
|
|
13
13
|
* kraki --version Show version
|
|
14
14
|
*/
|
|
15
15
|
import chalk from 'chalk';
|
|
16
|
-
import { join } from 'node:path';
|
|
16
|
+
import { join, dirname, resolve } from 'node:path';
|
|
17
17
|
import { spawn } from 'node:child_process';
|
|
18
18
|
import { readFileSync, existsSync, unlinkSync } from 'node:fs';
|
|
19
|
-
import { fileURLToPath } from 'node:url';
|
|
20
|
-
import { dirname } from 'node:path';
|
|
21
19
|
import { select } from '@inquirer/prompts';
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
20
|
+
import { isSea } from 'node:sea';
|
|
21
|
+
import { loadConfig, saveConfig, getConfigPath, getKrakiHome, getLogVerbosity } from './config.js';
|
|
22
|
+
import { INTERNAL_DAEMON_WORKER_COMMAND, isDaemonRunning, getDaemonStatus, startDaemon, stopDaemon } from './daemon.js';
|
|
24
23
|
import { runSetup } from './setup.js';
|
|
25
24
|
import { requestPairingToken, buildPairingUrl, renderQrToTerminal } from './pair.js';
|
|
26
25
|
import { printStaticBanner } from './banner.js';
|
|
27
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
28
26
|
// ── Version ─────────────────────────────────────────────
|
|
27
|
+
function resolvePackageRootFromArgv() {
|
|
28
|
+
const scriptPath = process.argv[1];
|
|
29
|
+
if (!scriptPath)
|
|
30
|
+
return null;
|
|
31
|
+
return resolve(dirname(resolve(scriptPath)), '..');
|
|
32
|
+
}
|
|
29
33
|
function getVersion() {
|
|
34
|
+
if (typeof __KRAKI_VERSION__ !== 'undefined') {
|
|
35
|
+
return __KRAKI_VERSION__;
|
|
36
|
+
}
|
|
37
|
+
if (isSea()) {
|
|
38
|
+
return '0.0.0';
|
|
39
|
+
}
|
|
30
40
|
try {
|
|
31
|
-
const
|
|
41
|
+
const packageRoot = resolvePackageRootFromArgv();
|
|
42
|
+
if (!packageRoot)
|
|
43
|
+
return '0.0.0';
|
|
44
|
+
const pkgPath = join(packageRoot, 'package.json');
|
|
32
45
|
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
33
46
|
return pkg.version ?? '0.0.0';
|
|
34
47
|
}
|
|
@@ -40,10 +53,11 @@ function getVersion() {
|
|
|
40
53
|
function printHelp() {
|
|
41
54
|
printStaticBanner();
|
|
42
55
|
console.log(`${chalk.bold('Usage:')}
|
|
43
|
-
kraki
|
|
56
|
+
kraki Setup wizard + start (first time or reconfigure)
|
|
57
|
+
kraki start Start silently from existing config
|
|
44
58
|
kraki stop Stop Kraki
|
|
59
|
+
kraki connect Generate QR code to connect a device
|
|
45
60
|
kraki status Show status and connection info
|
|
46
|
-
kraki connect Generate QR code to connect a mobile device
|
|
47
61
|
kraki logs [-f] Tail log files (-f to follow)
|
|
48
62
|
kraki config Print current config
|
|
49
63
|
kraki config log Show current log verbosity
|
|
@@ -55,63 +69,83 @@ function printHelp() {
|
|
|
55
69
|
`);
|
|
56
70
|
}
|
|
57
71
|
// ── Commands ────────────────────────────────────────────
|
|
58
|
-
|
|
72
|
+
// ── kraki (default) — setup wizard + auto start ─────────
|
|
73
|
+
async function cmdDefault() {
|
|
59
74
|
let config = loadConfig();
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
if (config) {
|
|
76
|
+
if (isDaemonRunning()) {
|
|
77
|
+
// Already running — show QR
|
|
78
|
+
const status = getDaemonStatus();
|
|
79
|
+
console.log(chalk.green(` 🦑 Kraki is already running (PID ${status.pid})`));
|
|
80
|
+
const { showPairingQr } = await import('./setup.js');
|
|
81
|
+
await showPairingQr(config);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Config exists but daemon not running — ask what to do
|
|
65
85
|
const action = await select({
|
|
66
|
-
message:
|
|
86
|
+
message: 'Found previous config. What do you want to do?',
|
|
67
87
|
theme: {
|
|
68
88
|
prefix: { idle: chalk.blue(' ?'), done: chalk.green(' ✔') },
|
|
69
89
|
icon: { cursor: ' ❯' },
|
|
70
90
|
},
|
|
71
91
|
choices: [
|
|
72
|
-
{ name: '
|
|
73
|
-
{ name: '
|
|
74
|
-
{ name: ' Clean setup (stop + reset config)', value: 'clean' },
|
|
92
|
+
{ name: ' Start with existing config', value: 'start' },
|
|
93
|
+
{ name: ' Reconfigure', value: 'reconfig' },
|
|
75
94
|
],
|
|
76
95
|
});
|
|
77
|
-
if (action === '
|
|
78
|
-
console.log(chalk.green(`${chalk.hex('#ea6046')('◈')} Kraki still running (PID ${status.pid})`));
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
stopDaemon();
|
|
82
|
-
console.log(chalk.dim(' Stopped..'));
|
|
83
|
-
if (action === 'clean') {
|
|
96
|
+
if (action === 'reconfig') {
|
|
84
97
|
const { rmSync } = await import('node:fs');
|
|
85
|
-
const krakiHome = getKrakiHome();
|
|
86
98
|
try {
|
|
87
|
-
rmSync(
|
|
88
|
-
console.log(chalk.dim(` Cleared ${krakiHome}`));
|
|
99
|
+
rmSync(getKrakiHome(), { recursive: true, force: true });
|
|
89
100
|
}
|
|
90
|
-
catch { /*
|
|
101
|
+
catch { /* ignore */ }
|
|
91
102
|
config = await runSetup();
|
|
92
103
|
}
|
|
93
104
|
}
|
|
105
|
+
else {
|
|
106
|
+
// No config — first time setup
|
|
107
|
+
config = await runSetup();
|
|
108
|
+
}
|
|
109
|
+
// Start daemon
|
|
110
|
+
await silentStart(config);
|
|
111
|
+
}
|
|
112
|
+
// ── kraki start — silent start from config ──────────────
|
|
113
|
+
async function cmdStart() {
|
|
114
|
+
let config = loadConfig();
|
|
115
|
+
if (!config) {
|
|
116
|
+
const { confirm } = await import('@inquirer/prompts');
|
|
117
|
+
const setup = await confirm({ message: 'No config found. Set up now?', default: true });
|
|
118
|
+
if (!setup)
|
|
119
|
+
return;
|
|
120
|
+
config = await runSetup();
|
|
121
|
+
}
|
|
122
|
+
if (isDaemonRunning()) {
|
|
123
|
+
const status = getDaemonStatus();
|
|
124
|
+
console.log(chalk.green(` 🦑 Kraki is already running (PID ${status.pid})`));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
await silentStart(config);
|
|
128
|
+
}
|
|
129
|
+
// ── Shared start logic ──────────────────────────────────
|
|
130
|
+
async function silentStart(config) {
|
|
94
131
|
let pid;
|
|
95
132
|
try {
|
|
96
133
|
pid = await startDaemon(config);
|
|
97
134
|
}
|
|
98
135
|
catch (err) {
|
|
99
|
-
console.log('');
|
|
100
136
|
console.log(chalk.red(` Failed to start Kraki: ${err.message}`));
|
|
101
|
-
console.log('');
|
|
102
137
|
return;
|
|
103
138
|
}
|
|
104
|
-
console.log('');
|
|
105
139
|
console.log(chalk.green(` 🦑 Kraki started (PID ${pid})`));
|
|
106
140
|
// Show pairing QR code
|
|
107
141
|
const { showPairingQr } = await import('./setup.js');
|
|
108
142
|
await showPairingQr(config);
|
|
109
143
|
// Tips
|
|
110
144
|
console.log(chalk.dim(' Commands:'));
|
|
111
|
-
console.log(chalk.dim(
|
|
112
|
-
console.log(chalk.dim(
|
|
113
|
-
console.log(chalk.dim(
|
|
114
|
-
console.log(chalk.dim(
|
|
145
|
+
console.log(chalk.dim(' kraki connect Generate a new connect code'));
|
|
146
|
+
console.log(chalk.dim(' kraki status Show connection status'));
|
|
147
|
+
console.log(chalk.dim(' kraki logs -f Follow logs'));
|
|
148
|
+
console.log(chalk.dim(' kraki stop Stop Kraki'));
|
|
115
149
|
console.log('');
|
|
116
150
|
}
|
|
117
151
|
function cmdStop() {
|
|
@@ -210,18 +244,24 @@ async function cmdConfigReset() {
|
|
|
210
244
|
await runSetup();
|
|
211
245
|
}
|
|
212
246
|
async function cmdConnect() {
|
|
213
|
-
|
|
214
|
-
if (!config) {
|
|
215
|
-
console.log(chalk.red('No config found. Run `kraki` to set up first.'));
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
247
|
+
let config = loadConfig();
|
|
218
248
|
if (!isDaemonRunning()) {
|
|
219
|
-
|
|
249
|
+
const { confirm } = await import('@inquirer/prompts');
|
|
250
|
+
const start = await confirm({ message: 'Kraki is not running. Start now?', default: true });
|
|
251
|
+
if (!start)
|
|
252
|
+
return;
|
|
253
|
+
if (!config) {
|
|
254
|
+
config = await runSetup();
|
|
255
|
+
}
|
|
256
|
+
await silentStart(config);
|
|
257
|
+
return; // silentStart already shows QR
|
|
258
|
+
}
|
|
259
|
+
if (!config) {
|
|
260
|
+
console.log(chalk.red('No config found. Run `kraki` to set up.'));
|
|
220
261
|
return;
|
|
221
262
|
}
|
|
222
|
-
console.log(chalk.dim('Requesting pairing token from relay...'));
|
|
263
|
+
console.log(chalk.dim(' Requesting pairing token from relay...'));
|
|
223
264
|
try {
|
|
224
|
-
// Resolve auth token (same logic as daemon-worker)
|
|
225
265
|
let token;
|
|
226
266
|
if (config.authMethod === 'github_token') {
|
|
227
267
|
try {
|
|
@@ -229,26 +269,32 @@ async function cmdConnect() {
|
|
|
229
269
|
token = execSync('gh auth token 2>/dev/null', { encoding: 'utf8' }).trim() || undefined;
|
|
230
270
|
}
|
|
231
271
|
catch { /* ignore */ }
|
|
272
|
+
if (!token) {
|
|
273
|
+
const { loadGitHubToken } = await import('./config.js');
|
|
274
|
+
token = loadGitHubToken() ?? undefined;
|
|
275
|
+
}
|
|
232
276
|
}
|
|
233
277
|
else if (config.authMethod === 'open') {
|
|
234
278
|
token = 'dev';
|
|
235
279
|
}
|
|
236
|
-
else {
|
|
237
|
-
token = loadChannelKey() ?? undefined;
|
|
238
|
-
}
|
|
239
280
|
const info = await requestPairingToken(config.relay, token);
|
|
240
281
|
const pairingUrl = buildPairingUrl(info);
|
|
241
282
|
const qr = await renderQrToTerminal(pairingUrl);
|
|
242
283
|
console.log(qr);
|
|
243
284
|
}
|
|
244
285
|
catch (err) {
|
|
245
|
-
console.log(chalk.red(`Failed to create pairing token: ${err.message}`));
|
|
286
|
+
console.log(chalk.red(` Failed to create pairing token: ${err.message}`));
|
|
246
287
|
}
|
|
247
288
|
}
|
|
248
289
|
// ── Arg parsing ─────────────────────────────────────────
|
|
249
290
|
async function main() {
|
|
250
291
|
const args = process.argv.slice(2);
|
|
251
292
|
const cmd = args[0];
|
|
293
|
+
if (cmd === INTERNAL_DAEMON_WORKER_COMMAND) {
|
|
294
|
+
const { startWorker } = await import('./daemon-worker.js');
|
|
295
|
+
await startWorker();
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
252
298
|
if (cmd === '--help' || cmd === '-h') {
|
|
253
299
|
printHelp();
|
|
254
300
|
return;
|
|
@@ -261,6 +307,10 @@ async function main() {
|
|
|
261
307
|
cmdStop();
|
|
262
308
|
return;
|
|
263
309
|
}
|
|
310
|
+
if (cmd === 'start') {
|
|
311
|
+
await cmdStart();
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
264
314
|
if (cmd === 'status') {
|
|
265
315
|
cmdStatus();
|
|
266
316
|
return;
|
|
@@ -286,9 +336,9 @@ async function main() {
|
|
|
286
336
|
cmdConfig();
|
|
287
337
|
return;
|
|
288
338
|
}
|
|
289
|
-
// Default: start
|
|
339
|
+
// Default: setup wizard + start
|
|
290
340
|
if (!cmd) {
|
|
291
|
-
await
|
|
341
|
+
await cmdDefault();
|
|
292
342
|
return;
|
|
293
343
|
}
|
|
294
344
|
console.log(chalk.red(`Unknown command: ${cmd}`));
|