skykoi 2026.3.357 → 2026.3.358
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/{archive-CbyTK8qu.js → archive-CSYoi0bB.js} +1 -1
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{capture-service-r5hzG32O.js → capture-service-aBlfOJ9T.js} +189 -229
- package/dist/{channel-options-BY2IjmzB.js → channel-options-BgjMKQVI.js} +1 -1
- package/dist/{channels-cli-DTPRtwE2.js → channels-cli-7ddnjbZQ.js} +7 -7
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-vBhxrkvs.js → cli-D8z8eo3e.js} +2 -2
- package/dist/{completion-cli-DRoMI6DH.js → completion-cli-CxoTsEsI.js} +1 -1
- package/dist/{config-guard-DOZ2mhKw.js → config-guard-DxgRRhoq.js} +13 -13
- package/dist/{configure-D6GSZYqL.js → configure-Dens4T0O.js} +3 -3
- package/dist/{daemon-cli-Bnuo4BIZ.js → daemon-cli-9Y7uhd5t.js} +1 -1
- package/dist/{deps-CCpiYgkP.js → deps-DcMNQQfA.js} +1 -1
- package/dist/{doctor-D3bdpqdq.js → doctor-B4qgRSWr.js} +3 -3
- package/dist/{doctor-completion-CfTpfvFC.js → doctor-completion-CcmiT1vg.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extension-api.js +2 -2
- package/dist/{gateway-cli-CR51t28e.js → gateway-cli-J1kovE8F.js} +17 -17
- package/dist/{github-copilot-auth-BtWnmpXC.js → github-copilot-auth-DNwNzQVE.js} +1 -1
- package/dist/{health-format-hWHROZlL.js → health-format-C3LzBRov.js} +1 -1
- package/dist/{hooks-cli-BJKdZbkg.js → hooks-cli-9NBU-oUf.js} +4 -4
- package/dist/index.js +20 -20
- package/dist/{installs-BXwolbqH.js → installs-Cao37ZRd.js} +1 -1
- package/dist/{koi-CNbYX51y.js → koi-oBrwdQUR.js} +2 -2
- package/dist/{models-cli-CMiioSPE.js → models-cli-d1aW5XS3.js} +3 -3
- package/dist/{onboard-channels-D4MXtJsE.js → onboard-channels-BWZRlIlZ.js} +2 -2
- package/dist/{onboard-skills-kIJ1-nLm.js → onboard-skills-_7yvOB3u.js} +3 -3
- package/dist/{onboarding-Bca4mmD6.js → onboarding-CNQUXit-.js} +6 -6
- package/dist/{plugin-registry-CEnpO8I0.js → plugin-registry-DrLbrjon.js} +1 -1
- package/dist/plugin-sdk/capture/capture-service.d.ts +21 -0
- package/dist/plugin-sdk/capture/capture-store.d.ts +32 -0
- package/dist/plugin-sdk/capture/file-capture.d.ts +9 -0
- package/dist/plugin-sdk/capture/input-capture.d.ts +13 -0
- package/dist/plugin-sdk/capture/process-capture.d.ts +32 -0
- package/dist/plugin-sdk/capture/terminal-capture.d.ts +32 -0
- package/dist/plugin-sdk/index.js +20 -15
- package/dist/plugin-sdk/{pi-model-discovery-szlzYGsC.js → pi-model-discovery-CBWcyyqn.js} +3 -3
- package/dist/{plugins-cli-BK2WyB6L.js → plugins-cli-VSkdMw2k.js} +6 -6
- package/dist/{program-1Joj3U3_.js → program-4w6A5ihW.js} +4 -4
- package/dist/{register.subclis-h279sCt8.js → register.subclis-Bar52U5A.js} +10 -10
- package/dist/{reply-Bvd7ywOH.js → reply-C7ADPs6d.js} +3 -12
- package/dist/{run-main-DZiuX9SQ.js → run-main-PIrmW36g.js} +21 -21
- package/dist/{server-node-events-TVfMzqB-.js → server-node-events-Bbd9oN7Q.js} +4 -4
- package/dist/{status-DzK2jjBE.js → status-CA9uUa1v.js} +1 -1
- package/dist/{update-BlJVtJqm.js → update-SQd6wZBl.js} +1 -1
- package/dist/{update-cli-BeNFwFXq.js → update-cli-DcFS66xp.js} +12 -12
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
|
|
2
|
-
import { mt as require_inherits } from "./reply-
|
|
2
|
+
import { mt as require_inherits } from "./reply-C7ADPs6d.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import * as tar from "tar";
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
314d2086097f6031cfa0cfb1fa6b26cb5a4d24fff0caba72ac85502b54184560
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as __require,
|
|
1
|
+
import { i as __require, r as __exportAll } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, watch, writeFileSync } from "node:fs";
|
|
3
3
|
import { dirname, extname, join, relative } from "node:path";
|
|
4
4
|
import { homedir } from "node:os";
|
|
@@ -6,6 +6,45 @@ import { execFile, spawn } from "node:child_process";
|
|
|
6
6
|
import { createInterface } from "node:readline";
|
|
7
7
|
|
|
8
8
|
//#region src/capture/terminal-capture.ts
|
|
9
|
+
const ITERM_SCRIPT = `
|
|
10
|
+
tell application "System Events"
|
|
11
|
+
if not (exists process "iTerm2") then return ""
|
|
12
|
+
end tell
|
|
13
|
+
tell application "iTerm2"
|
|
14
|
+
set out to ""
|
|
15
|
+
repeat with w in windows
|
|
16
|
+
set wName to name of w
|
|
17
|
+
repeat with t in tabs of w
|
|
18
|
+
repeat with s in sessions of t
|
|
19
|
+
set sName to name of s
|
|
20
|
+
set sContents to contents of s
|
|
21
|
+
set out to out & "---TAB:" & sName & "---WINDOW:" & wName & "---" & return & sContents & return
|
|
22
|
+
end repeat
|
|
23
|
+
end repeat
|
|
24
|
+
end repeat
|
|
25
|
+
return out
|
|
26
|
+
end tell
|
|
27
|
+
`;
|
|
28
|
+
const TERMINAL_SCRIPT = `
|
|
29
|
+
tell application "System Events"
|
|
30
|
+
if not (exists process "Terminal") then return ""
|
|
31
|
+
end tell
|
|
32
|
+
tell application "Terminal"
|
|
33
|
+
set out to ""
|
|
34
|
+
repeat with w in windows
|
|
35
|
+
set wName to name of w
|
|
36
|
+
repeat with t in tabs of w
|
|
37
|
+
set tTitle to custom title of t
|
|
38
|
+
if tTitle is "" then set tTitle to name of current settings of t
|
|
39
|
+
set tContents to contents of t
|
|
40
|
+
set out to out & "---TAB:" & tTitle & "---WINDOW:" & wName & "---" & return & tContents & return
|
|
41
|
+
end repeat
|
|
42
|
+
end repeat
|
|
43
|
+
return out
|
|
44
|
+
end tell
|
|
45
|
+
`;
|
|
46
|
+
const TIMEOUT_MS$1 = 5e3;
|
|
47
|
+
const TAB_HEADER = /^---TAB:(.*?)---WINDOW:(.*?)---$/;
|
|
9
48
|
function runOsascript(script) {
|
|
10
49
|
return new Promise((resolve) => {
|
|
11
50
|
execFile("osascript", ["-e", script], {
|
|
@@ -109,48 +148,6 @@ function captureTerminalDiffs(previous, current) {
|
|
|
109
148
|
changed
|
|
110
149
|
};
|
|
111
150
|
}
|
|
112
|
-
var ITERM_SCRIPT, TERMINAL_SCRIPT, TIMEOUT_MS$1, TAB_HEADER;
|
|
113
|
-
var init_terminal_capture = __esmMin((() => {
|
|
114
|
-
ITERM_SCRIPT = `
|
|
115
|
-
tell application "System Events"
|
|
116
|
-
if not (exists process "iTerm2") then return ""
|
|
117
|
-
end tell
|
|
118
|
-
tell application "iTerm2"
|
|
119
|
-
set out to ""
|
|
120
|
-
repeat with w in windows
|
|
121
|
-
set wName to name of w
|
|
122
|
-
repeat with t in tabs of w
|
|
123
|
-
repeat with s in sessions of t
|
|
124
|
-
set sName to name of s
|
|
125
|
-
set sContents to contents of s
|
|
126
|
-
set out to out & "---TAB:" & sName & "---WINDOW:" & wName & "---" & return & sContents & return
|
|
127
|
-
end repeat
|
|
128
|
-
end repeat
|
|
129
|
-
end repeat
|
|
130
|
-
return out
|
|
131
|
-
end tell
|
|
132
|
-
`;
|
|
133
|
-
TERMINAL_SCRIPT = `
|
|
134
|
-
tell application "System Events"
|
|
135
|
-
if not (exists process "Terminal") then return ""
|
|
136
|
-
end tell
|
|
137
|
-
tell application "Terminal"
|
|
138
|
-
set out to ""
|
|
139
|
-
repeat with w in windows
|
|
140
|
-
set wName to name of w
|
|
141
|
-
repeat with t in tabs of w
|
|
142
|
-
set tTitle to custom title of t
|
|
143
|
-
if tTitle is "" then set tTitle to name of current settings of t
|
|
144
|
-
set tContents to contents of t
|
|
145
|
-
set out to out & "---TAB:" & tTitle & "---WINDOW:" & wName & "---" & return & tContents & return
|
|
146
|
-
end repeat
|
|
147
|
-
end repeat
|
|
148
|
-
return out
|
|
149
|
-
end tell
|
|
150
|
-
`;
|
|
151
|
-
TIMEOUT_MS$1 = 5e3;
|
|
152
|
-
TAB_HEADER = /^---TAB:(.*?)---WINDOW:(.*?)---$/;
|
|
153
|
-
}));
|
|
154
151
|
|
|
155
152
|
//#endregion
|
|
156
153
|
//#region src/capture/capture-store.ts
|
|
@@ -161,6 +158,11 @@ end tell
|
|
|
161
158
|
* in-memory ring and periodically flushes to disk. The injector reads
|
|
162
159
|
* from it to feed the koi's context.
|
|
163
160
|
*/
|
|
161
|
+
const MAX_MEMORY_EVENTS = 500;
|
|
162
|
+
const MAX_DISK_BYTES = 10 * 1024 * 1024;
|
|
163
|
+
const STORE_DIR = join(homedir(), ".skykoi", "capture");
|
|
164
|
+
let ring = [];
|
|
165
|
+
let initialized = false;
|
|
164
166
|
function ensureDir() {
|
|
165
167
|
if (initialized) return;
|
|
166
168
|
try {
|
|
@@ -173,20 +175,6 @@ function pushCaptureEvent(event) {
|
|
|
173
175
|
if (ring.length > MAX_MEMORY_EVENTS) ring = ring.slice(-MAX_MEMORY_EVENTS);
|
|
174
176
|
}
|
|
175
177
|
/**
|
|
176
|
-
* Get recent events from the in-memory ring, optionally filtered by source.
|
|
177
|
-
* Returns newest-first.
|
|
178
|
-
*/
|
|
179
|
-
function getRecentEvents(opts) {
|
|
180
|
-
let result = ring;
|
|
181
|
-
if (opts?.source) result = result.filter((e) => e.source === opts.source);
|
|
182
|
-
if (opts?.sinceTs) {
|
|
183
|
-
const since = opts.sinceTs;
|
|
184
|
-
result = result.filter((e) => e.ts >= since);
|
|
185
|
-
}
|
|
186
|
-
const out = result.slice().reverse();
|
|
187
|
-
return opts?.limit ? out.slice(0, opts.limit) : out;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
178
|
* Get ALL events currently in the ring (for full context injection).
|
|
191
179
|
* Returns oldest-first (chronological order).
|
|
192
180
|
*/
|
|
@@ -212,14 +200,6 @@ function flushToDisk() {
|
|
|
212
200
|
} catch {}
|
|
213
201
|
ring = [];
|
|
214
202
|
}
|
|
215
|
-
var MAX_MEMORY_EVENTS, MAX_DISK_BYTES, STORE_DIR, ring, initialized;
|
|
216
|
-
var init_capture_store = __esmMin((() => {
|
|
217
|
-
MAX_MEMORY_EVENTS = 500;
|
|
218
|
-
MAX_DISK_BYTES = 10 * 1024 * 1024;
|
|
219
|
-
STORE_DIR = join(homedir(), ".skykoi", "capture");
|
|
220
|
-
ring = [];
|
|
221
|
-
initialized = false;
|
|
222
|
-
}));
|
|
223
203
|
|
|
224
204
|
//#endregion
|
|
225
205
|
//#region src/capture/input-capture.ts
|
|
@@ -235,6 +215,8 @@ var init_capture_store = __esmMin((() => {
|
|
|
235
215
|
* - The daemon binary isn't built
|
|
236
216
|
* - Accessibility permissions aren't granted
|
|
237
217
|
*/
|
|
218
|
+
let daemonProcess = null;
|
|
219
|
+
let building = false;
|
|
238
220
|
function daemonDir() {
|
|
239
221
|
return join(dirname(new URL(import.meta.url).pathname), "..", "..", "src", "capture", "input-daemon");
|
|
240
222
|
}
|
|
@@ -325,15 +307,88 @@ async function startInputCapture() {
|
|
|
325
307
|
daemonProcess = null;
|
|
326
308
|
} };
|
|
327
309
|
}
|
|
328
|
-
var daemonProcess, building;
|
|
329
|
-
var init_input_capture = __esmMin((() => {
|
|
330
|
-
init_capture_store();
|
|
331
|
-
daemonProcess = null;
|
|
332
|
-
building = false;
|
|
333
|
-
}));
|
|
334
310
|
|
|
335
311
|
//#endregion
|
|
336
312
|
//#region src/capture/process-capture.ts
|
|
313
|
+
const TIMEOUT_MS = 3e3;
|
|
314
|
+
const MAX_PROCESSES = 50;
|
|
315
|
+
const HIGH_CPU_THRESHOLD = 50;
|
|
316
|
+
const MIN_CPU_INTERESTING = 1;
|
|
317
|
+
const DEV_TOOLS = new Set([
|
|
318
|
+
"node",
|
|
319
|
+
"python",
|
|
320
|
+
"python3",
|
|
321
|
+
"swift",
|
|
322
|
+
"cargo",
|
|
323
|
+
"go",
|
|
324
|
+
"java",
|
|
325
|
+
"ruby",
|
|
326
|
+
"docker",
|
|
327
|
+
"kubectl",
|
|
328
|
+
"terraform",
|
|
329
|
+
"git",
|
|
330
|
+
"npm",
|
|
331
|
+
"npx",
|
|
332
|
+
"pnpm",
|
|
333
|
+
"yarn",
|
|
334
|
+
"bun",
|
|
335
|
+
"deno",
|
|
336
|
+
"tsc",
|
|
337
|
+
"esbuild",
|
|
338
|
+
"rustc",
|
|
339
|
+
"gcc",
|
|
340
|
+
"clang",
|
|
341
|
+
"make",
|
|
342
|
+
"cmake"
|
|
343
|
+
]);
|
|
344
|
+
const KNOWN_APPS = new Set([
|
|
345
|
+
"code",
|
|
346
|
+
"code helper",
|
|
347
|
+
"cursor",
|
|
348
|
+
"iterm2",
|
|
349
|
+
"terminal",
|
|
350
|
+
"safari",
|
|
351
|
+
"google chrome",
|
|
352
|
+
"google chrome helper",
|
|
353
|
+
"firefox",
|
|
354
|
+
"arc",
|
|
355
|
+
"slack",
|
|
356
|
+
"zoom",
|
|
357
|
+
"zoom.us",
|
|
358
|
+
"figma",
|
|
359
|
+
"notion",
|
|
360
|
+
"discord",
|
|
361
|
+
"linear",
|
|
362
|
+
"warp",
|
|
363
|
+
"alacritty",
|
|
364
|
+
"kitty",
|
|
365
|
+
"hyper"
|
|
366
|
+
]);
|
|
367
|
+
/** UIDs that indicate system processes on macOS. */
|
|
368
|
+
const SYSTEM_UIDS = new Set([
|
|
369
|
+
"0",
|
|
370
|
+
"1",
|
|
371
|
+
"55",
|
|
372
|
+
"89",
|
|
373
|
+
"205",
|
|
374
|
+
"241",
|
|
375
|
+
"248",
|
|
376
|
+
"249",
|
|
377
|
+
"262",
|
|
378
|
+
"270"
|
|
379
|
+
]);
|
|
380
|
+
const ACTIVE_WINDOW_SCRIPT = `
|
|
381
|
+
tell application "System Events"
|
|
382
|
+
set fp to first application process whose frontmost is true
|
|
383
|
+
set appName to name of fp
|
|
384
|
+
try
|
|
385
|
+
set winTitle to name of first window of fp
|
|
386
|
+
on error
|
|
387
|
+
set winTitle to ""
|
|
388
|
+
end try
|
|
389
|
+
return appName & "|||" & winTitle
|
|
390
|
+
end tell
|
|
391
|
+
`;
|
|
337
392
|
function exec$1(cmd, args) {
|
|
338
393
|
return new Promise((resolve) => {
|
|
339
394
|
execFile(cmd, args, {
|
|
@@ -491,87 +546,6 @@ function processChanges(prev, curr) {
|
|
|
491
546
|
highCpu
|
|
492
547
|
};
|
|
493
548
|
}
|
|
494
|
-
var TIMEOUT_MS, MAX_PROCESSES, HIGH_CPU_THRESHOLD, MIN_CPU_INTERESTING, DEV_TOOLS, KNOWN_APPS, SYSTEM_UIDS, ACTIVE_WINDOW_SCRIPT;
|
|
495
|
-
var init_process_capture = __esmMin((() => {
|
|
496
|
-
TIMEOUT_MS = 3e3;
|
|
497
|
-
MAX_PROCESSES = 50;
|
|
498
|
-
HIGH_CPU_THRESHOLD = 50;
|
|
499
|
-
MIN_CPU_INTERESTING = 1;
|
|
500
|
-
DEV_TOOLS = new Set([
|
|
501
|
-
"node",
|
|
502
|
-
"python",
|
|
503
|
-
"python3",
|
|
504
|
-
"swift",
|
|
505
|
-
"cargo",
|
|
506
|
-
"go",
|
|
507
|
-
"java",
|
|
508
|
-
"ruby",
|
|
509
|
-
"docker",
|
|
510
|
-
"kubectl",
|
|
511
|
-
"terraform",
|
|
512
|
-
"git",
|
|
513
|
-
"npm",
|
|
514
|
-
"npx",
|
|
515
|
-
"pnpm",
|
|
516
|
-
"yarn",
|
|
517
|
-
"bun",
|
|
518
|
-
"deno",
|
|
519
|
-
"tsc",
|
|
520
|
-
"esbuild",
|
|
521
|
-
"rustc",
|
|
522
|
-
"gcc",
|
|
523
|
-
"clang",
|
|
524
|
-
"make",
|
|
525
|
-
"cmake"
|
|
526
|
-
]);
|
|
527
|
-
KNOWN_APPS = new Set([
|
|
528
|
-
"code",
|
|
529
|
-
"code helper",
|
|
530
|
-
"cursor",
|
|
531
|
-
"iterm2",
|
|
532
|
-
"terminal",
|
|
533
|
-
"safari",
|
|
534
|
-
"google chrome",
|
|
535
|
-
"google chrome helper",
|
|
536
|
-
"firefox",
|
|
537
|
-
"arc",
|
|
538
|
-
"slack",
|
|
539
|
-
"zoom",
|
|
540
|
-
"zoom.us",
|
|
541
|
-
"figma",
|
|
542
|
-
"notion",
|
|
543
|
-
"discord",
|
|
544
|
-
"linear",
|
|
545
|
-
"warp",
|
|
546
|
-
"alacritty",
|
|
547
|
-
"kitty",
|
|
548
|
-
"hyper"
|
|
549
|
-
]);
|
|
550
|
-
SYSTEM_UIDS = new Set([
|
|
551
|
-
"0",
|
|
552
|
-
"1",
|
|
553
|
-
"55",
|
|
554
|
-
"89",
|
|
555
|
-
"205",
|
|
556
|
-
"241",
|
|
557
|
-
"248",
|
|
558
|
-
"249",
|
|
559
|
-
"262",
|
|
560
|
-
"270"
|
|
561
|
-
]);
|
|
562
|
-
ACTIVE_WINDOW_SCRIPT = `
|
|
563
|
-
tell application "System Events"
|
|
564
|
-
set fp to first application process whose frontmost is true
|
|
565
|
-
set appName to name of fp
|
|
566
|
-
try
|
|
567
|
-
set winTitle to name of first window of fp
|
|
568
|
-
on error
|
|
569
|
-
set winTitle to ""
|
|
570
|
-
end try
|
|
571
|
-
return appName & "|||" & winTitle
|
|
572
|
-
end tell
|
|
573
|
-
`;
|
|
574
|
-
}));
|
|
575
549
|
|
|
576
550
|
//#endregion
|
|
577
551
|
//#region src/capture/file-capture.ts
|
|
@@ -581,6 +555,63 @@ end tell
|
|
|
581
555
|
* Watches configured directories for file changes and captures exact diffs
|
|
582
556
|
* using `git diff` (for git repos) or before/after snapshots.
|
|
583
557
|
*/
|
|
558
|
+
const IGNORE_PATTERNS = [
|
|
559
|
+
/node_modules/,
|
|
560
|
+
/\.git\//,
|
|
561
|
+
/dist\//,
|
|
562
|
+
/\.next\//,
|
|
563
|
+
/\.DS_Store/,
|
|
564
|
+
/\.swp$/,
|
|
565
|
+
/\.swo$/,
|
|
566
|
+
/~$/,
|
|
567
|
+
/\.pyc$/,
|
|
568
|
+
/__pycache__/,
|
|
569
|
+
/\.env$/,
|
|
570
|
+
/\.env\.local$/
|
|
571
|
+
];
|
|
572
|
+
const TEXT_EXTENSIONS = new Set([
|
|
573
|
+
".ts",
|
|
574
|
+
".tsx",
|
|
575
|
+
".js",
|
|
576
|
+
".jsx",
|
|
577
|
+
".mjs",
|
|
578
|
+
".cjs",
|
|
579
|
+
".py",
|
|
580
|
+
".rb",
|
|
581
|
+
".go",
|
|
582
|
+
".rs",
|
|
583
|
+
".swift",
|
|
584
|
+
".java",
|
|
585
|
+
".kt",
|
|
586
|
+
".c",
|
|
587
|
+
".cpp",
|
|
588
|
+
".h",
|
|
589
|
+
".hpp",
|
|
590
|
+
".m",
|
|
591
|
+
".mm",
|
|
592
|
+
".json",
|
|
593
|
+
".yaml",
|
|
594
|
+
".yml",
|
|
595
|
+
".toml",
|
|
596
|
+
".xml",
|
|
597
|
+
".md",
|
|
598
|
+
".txt",
|
|
599
|
+
".sh",
|
|
600
|
+
".bash",
|
|
601
|
+
".zsh",
|
|
602
|
+
".css",
|
|
603
|
+
".scss",
|
|
604
|
+
".less",
|
|
605
|
+
".html",
|
|
606
|
+
".vue",
|
|
607
|
+
".svelte",
|
|
608
|
+
".sql",
|
|
609
|
+
".graphql",
|
|
610
|
+
".prisma",
|
|
611
|
+
".dockerfile",
|
|
612
|
+
".tf",
|
|
613
|
+
".hcl"
|
|
614
|
+
]);
|
|
584
615
|
function shouldIgnore(path) {
|
|
585
616
|
return IGNORE_PATTERNS.some((p) => p.test(path));
|
|
586
617
|
}
|
|
@@ -698,67 +729,6 @@ function watchDirectory(dir) {
|
|
|
698
729
|
debounce.clear();
|
|
699
730
|
} };
|
|
700
731
|
}
|
|
701
|
-
var IGNORE_PATTERNS, TEXT_EXTENSIONS;
|
|
702
|
-
var init_file_capture = __esmMin((() => {
|
|
703
|
-
init_capture_store();
|
|
704
|
-
IGNORE_PATTERNS = [
|
|
705
|
-
/node_modules/,
|
|
706
|
-
/\.git\//,
|
|
707
|
-
/dist\//,
|
|
708
|
-
/\.next\//,
|
|
709
|
-
/\.DS_Store/,
|
|
710
|
-
/\.swp$/,
|
|
711
|
-
/\.swo$/,
|
|
712
|
-
/~$/,
|
|
713
|
-
/\.pyc$/,
|
|
714
|
-
/__pycache__/,
|
|
715
|
-
/\.env$/,
|
|
716
|
-
/\.env\.local$/
|
|
717
|
-
];
|
|
718
|
-
TEXT_EXTENSIONS = new Set([
|
|
719
|
-
".ts",
|
|
720
|
-
".tsx",
|
|
721
|
-
".js",
|
|
722
|
-
".jsx",
|
|
723
|
-
".mjs",
|
|
724
|
-
".cjs",
|
|
725
|
-
".py",
|
|
726
|
-
".rb",
|
|
727
|
-
".go",
|
|
728
|
-
".rs",
|
|
729
|
-
".swift",
|
|
730
|
-
".java",
|
|
731
|
-
".kt",
|
|
732
|
-
".c",
|
|
733
|
-
".cpp",
|
|
734
|
-
".h",
|
|
735
|
-
".hpp",
|
|
736
|
-
".m",
|
|
737
|
-
".mm",
|
|
738
|
-
".json",
|
|
739
|
-
".yaml",
|
|
740
|
-
".yml",
|
|
741
|
-
".toml",
|
|
742
|
-
".xml",
|
|
743
|
-
".md",
|
|
744
|
-
".txt",
|
|
745
|
-
".sh",
|
|
746
|
-
".bash",
|
|
747
|
-
".zsh",
|
|
748
|
-
".css",
|
|
749
|
-
".scss",
|
|
750
|
-
".less",
|
|
751
|
-
".html",
|
|
752
|
-
".vue",
|
|
753
|
-
".svelte",
|
|
754
|
-
".sql",
|
|
755
|
-
".graphql",
|
|
756
|
-
".prisma",
|
|
757
|
-
".dockerfile",
|
|
758
|
-
".tf",
|
|
759
|
-
".hcl"
|
|
760
|
-
]);
|
|
761
|
-
}));
|
|
762
732
|
|
|
763
733
|
//#endregion
|
|
764
734
|
//#region src/capture/capture-service.ts
|
|
@@ -772,10 +742,13 @@ var init_file_capture = __esmMin((() => {
|
|
|
772
742
|
*/
|
|
773
743
|
var capture_service_exports = /* @__PURE__ */ __exportAll({
|
|
774
744
|
buildCaptureContextBlock: () => buildCaptureContextBlock,
|
|
775
|
-
getAllEvents: () => getAllEvents,
|
|
776
|
-
getRecentEvents: () => getRecentEvents,
|
|
777
745
|
startCaptureService: () => startCaptureService
|
|
778
746
|
});
|
|
747
|
+
let lastTerminalSnapshot = [];
|
|
748
|
+
let lastProcessSnapshot = null;
|
|
749
|
+
const TERMINAL_POLL_MS = 5e3;
|
|
750
|
+
const PROCESS_POLL_MS = 1e4;
|
|
751
|
+
const FLUSH_INTERVAL_MS = 6e4;
|
|
779
752
|
/**
|
|
780
753
|
* Format capture events into a raw context block for injection
|
|
781
754
|
* into the koi's system prompt or user message prefix.
|
|
@@ -1009,19 +982,6 @@ async function startCaptureService(opts) {
|
|
|
1009
982
|
flushToDisk();
|
|
1010
983
|
} };
|
|
1011
984
|
}
|
|
1012
|
-
var lastTerminalSnapshot, lastProcessSnapshot, TERMINAL_POLL_MS, PROCESS_POLL_MS, FLUSH_INTERVAL_MS;
|
|
1013
|
-
var init_capture_service = __esmMin((() => {
|
|
1014
|
-
init_terminal_capture();
|
|
1015
|
-
init_input_capture();
|
|
1016
|
-
init_process_capture();
|
|
1017
|
-
init_file_capture();
|
|
1018
|
-
init_capture_store();
|
|
1019
|
-
lastTerminalSnapshot = [];
|
|
1020
|
-
lastProcessSnapshot = null;
|
|
1021
|
-
TERMINAL_POLL_MS = 5e3;
|
|
1022
|
-
PROCESS_POLL_MS = 1e4;
|
|
1023
|
-
FLUSH_INTERVAL_MS = 6e4;
|
|
1024
|
-
}));
|
|
1025
985
|
|
|
1026
986
|
//#endregion
|
|
1027
|
-
export {
|
|
987
|
+
export { capture_service_exports as n, buildCaptureContextBlock as t };
|
|
@@ -2,7 +2,7 @@ import { O as CHAT_CHANNEL_ORDER } from "./subsystem-hATE68va.js";
|
|
|
2
2
|
import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
|
|
3
3
|
import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
|
|
4
4
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CdY4rE-n.js";
|
|
5
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
5
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DrLbrjon.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/channel-options.ts
|
|
8
8
|
function dedupe(values) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-DQFw4Gyf.js";
|
|
2
|
-
import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-
|
|
2
|
+
import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-C7ADPs6d.js";
|
|
3
3
|
import { f as danger, s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import { r as theme } from "./theme-C5EwWDWE.js";
|
|
@@ -66,7 +66,7 @@ import "./prompt-style-e5zz5JM8.js";
|
|
|
66
66
|
import "./pairing-labels-COEL5-l6.js";
|
|
67
67
|
import "./satisfies-OaA965Ap.js";
|
|
68
68
|
import "./session-cost-usage--3A8ZVbE.js";
|
|
69
|
-
import "./capture-service-
|
|
69
|
+
import "./capture-service-aBlfOJ9T.js";
|
|
70
70
|
import "./control-service-BX--GCio.js";
|
|
71
71
|
import "./restart-sentinel-BmtFp4hj.js";
|
|
72
72
|
import { n as resolveMessageChannelSelection } from "./channel-selection-D2xRBj5_.js";
|
|
@@ -74,20 +74,20 @@ import "./event-log-BI0AhKz-.js";
|
|
|
74
74
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BSFDAcJU.js";
|
|
75
75
|
import "./note-Bz1inBMY.js";
|
|
76
76
|
import { t as createClackPrompter } from "./clack-prompter-CpKbTEcs.js";
|
|
77
|
-
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-
|
|
77
|
+
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-BWZRlIlZ.js";
|
|
78
78
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CdY4rE-n.js";
|
|
79
|
-
import "./archive-
|
|
79
|
+
import "./archive-CSYoi0bB.js";
|
|
80
80
|
import "./skill-scanner-Bo0NYV6j.js";
|
|
81
|
-
import "./installs-
|
|
81
|
+
import "./installs-Cao37ZRd.js";
|
|
82
82
|
import "./service-Lr4_ZToq.js";
|
|
83
83
|
import "./systemd-Cg_r75DH.js";
|
|
84
84
|
import "./diagnostics-DF82q_Pz.js";
|
|
85
85
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-C7sTmzt9.js";
|
|
86
|
-
import { n as hasExplicitOptions } from "./plugin-registry-
|
|
86
|
+
import { n as hasExplicitOptions } from "./plugin-registry-DrLbrjon.js";
|
|
87
87
|
import "./daemon-runtime-CwgyTCkj.js";
|
|
88
88
|
import "./ensure-local-gateway-DgD7eQMm.js";
|
|
89
89
|
import { n as runChannelLoginAll, r as runChannelLogout, t as runChannelLogin } from "./channel-auth-Xs9WjBst.js";
|
|
90
|
-
import { t as formatCliChannelOptions } from "./channel-options-
|
|
90
|
+
import { t as formatCliChannelOptions } from "./channel-options-BgjMKQVI.js";
|
|
91
91
|
import { t as buildChannelAccountSnapshot } from "./status-BLjOBDvD.js";
|
|
92
92
|
import { t as parseLogLine } from "./parse-log-line-cWE1HOyo.js";
|
|
93
93
|
import fs from "node:fs/promises";
|
package/dist/cli/daemon-cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Legacy shim for pre-tsdown update-cli imports.
|
|
2
|
-
export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-
|
|
2
|
+
export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-9Y7uhd5t.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-DQFw4Gyf.js";
|
|
2
|
-
import { ct as loadSKYKOIPlugins } from "./reply-
|
|
2
|
+
import { ct as loadSKYKOIPlugins } from "./reply-C7ADPs6d.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import "./theme-C5EwWDWE.js";
|
|
@@ -63,7 +63,7 @@ import "./prompt-style-e5zz5JM8.js";
|
|
|
63
63
|
import "./pairing-labels-COEL5-l6.js";
|
|
64
64
|
import "./satisfies-OaA965Ap.js";
|
|
65
65
|
import "./session-cost-usage--3A8ZVbE.js";
|
|
66
|
-
import "./capture-service-
|
|
66
|
+
import "./capture-service-aBlfOJ9T.js";
|
|
67
67
|
import "./control-service-BX--GCio.js";
|
|
68
68
|
import "./restart-sentinel-BmtFp4hj.js";
|
|
69
69
|
import "./channel-selection-D2xRBj5_.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as __exportAll } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
|
|
3
|
-
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-
|
|
3
|
+
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-Bar52U5A.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import fs from "node:fs/promises";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-
|
|
1
|
+
import { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-C7ADPs6d.js";
|
|
2
2
|
import { I as normalizeChatChannelId, M as getChatChannelMeta, c as restoreTerminalState, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose } from "./subsystem-hATE68va.js";
|
|
3
3
|
import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
4
4
|
import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
|
|
@@ -21,32 +21,32 @@ import { n as runCommandWithRuntime } from "./cli-utils-CwUbbnsD.js";
|
|
|
21
21
|
import { n as withProgress } from "./progress-BPDEiFpj.js";
|
|
22
22
|
import { a as ensureWorkspaceAndSessions, c as handleReset, d as openUrl, h as resolveControlUiLinks, i as detectBrowserOpenSupport, l as moveToTrash, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, t as DEFAULT_WORKSPACE, v as waitForGatewayReachable } from "./onboard-helpers-ASRUrwc_.js";
|
|
23
23
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-e5zz5JM8.js";
|
|
24
|
-
import { t as createDefaultDeps } from "./deps-
|
|
24
|
+
import { t as createDefaultDeps } from "./deps-DcMNQQfA.js";
|
|
25
25
|
import { t as assertSupportedRuntime } from "./runtime-guard-2MMXk4Pw.js";
|
|
26
26
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BSFDAcJU.js";
|
|
27
27
|
import { n as logConfigUpdated, t as formatConfigPath } from "./logging-D0yLyZGX.js";
|
|
28
28
|
import { t as WizardCancelledError } from "./prompts-P_JikS7G.js";
|
|
29
29
|
import { t as createClackPrompter } from "./clack-prompter-CpKbTEcs.js";
|
|
30
|
-
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-
|
|
31
|
-
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-
|
|
32
|
-
import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-
|
|
33
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
34
|
-
import { i as healthCommand } from "./health-format-
|
|
30
|
+
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-CNQUXit-.js";
|
|
31
|
+
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-_7yvOB3u.js";
|
|
32
|
+
import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DNwNzQVE.js";
|
|
33
|
+
import { n as setupChannels } from "./onboard-channels-BWZRlIlZ.js";
|
|
34
|
+
import { i as healthCommand } from "./health-format-C3LzBRov.js";
|
|
35
35
|
import { t as renderTable } from "./table-BStCHVuZ.js";
|
|
36
36
|
import { t as resolveGatewayService } from "./service-Lr4_ZToq.js";
|
|
37
37
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Cg_r75DH.js";
|
|
38
|
-
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-
|
|
38
|
+
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-Bar52U5A.js";
|
|
39
39
|
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DVbnQlWk.js";
|
|
40
40
|
import { t as formatHelpExamples } from "./help-format-CiHMUo5S.js";
|
|
41
41
|
import { t as adminUnlockCommand } from "./admin-unlock-Bes1m3tc.js";
|
|
42
|
-
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-
|
|
43
|
-
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
42
|
+
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-oBrwdQUR.js";
|
|
43
|
+
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-DrLbrjon.js";
|
|
44
44
|
import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-DPUZzP-1.js";
|
|
45
|
-
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-
|
|
45
|
+
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-Dens4T0O.js";
|
|
46
46
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CwgyTCkj.js";
|
|
47
47
|
import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-D2_azwOA.js";
|
|
48
48
|
import { t as loginCommand } from "./login-B8lR6a3n.js";
|
|
49
|
-
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-
|
|
49
|
+
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-B4qgRSWr.js";
|
|
50
50
|
import { fileURLToPath } from "node:url";
|
|
51
51
|
import fs from "node:fs";
|
|
52
52
|
import path from "node:path";
|
|
@@ -2797,7 +2797,7 @@ async function loadValidConfig() {
|
|
|
2797
2797
|
}
|
|
2798
2798
|
function registerConfigCli(program) {
|
|
2799
2799
|
const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.skykoi.com/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
2800
|
-
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-
|
|
2800
|
+
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-Dens4T0O.js").then((n) => n.t);
|
|
2801
2801
|
const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
|
|
2802
2802
|
if (sections.length === 0) {
|
|
2803
2803
|
await configureCommand(defaultRuntime);
|