@kcisoul/remotecode 0.9.1
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/README.md +358 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +84 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/format.test.d.ts +2 -0
- package/dist/__tests__/format.test.d.ts.map +1 -0
- package/dist/__tests__/format.test.js +62 -0
- package/dist/__tests__/format.test.js.map +1 -0
- package/dist/__tests__/sessions.test.d.ts +2 -0
- package/dist/__tests__/sessions.test.d.ts.map +1 -0
- package/dist/__tests__/sessions.test.js +51 -0
- package/dist/__tests__/sessions.test.js.map +1 -0
- package/dist/banner.d.ts +4 -0
- package/dist/banner.d.ts.map +1 -0
- package/dist/banner.js +154 -0
- package/dist/banner.js.map +1 -0
- package/dist/callbacks.d.ts +10 -0
- package/dist/callbacks.d.ts.map +1 -0
- package/dist/callbacks.js +184 -0
- package/dist/callbacks.js.map +1 -0
- package/dist/claude.d.ts +9 -0
- package/dist/claude.d.ts.map +1 -0
- package/dist/claude.js +117 -0
- package/dist/claude.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +296 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +3 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +107 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +24 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +153 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +12 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +22 -0
- package/dist/context.js.map +1 -0
- package/dist/daemon.d.ts +11 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +316 -0
- package/dist/daemon.js.map +1 -0
- package/dist/format.d.ts +8 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +57 -0
- package/dist/format.js.map +1 -0
- package/dist/handler.d.ts +4 -0
- package/dist/handler.d.ts.map +1 -0
- package/dist/handler.js +292 -0
- package/dist/handler.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +10 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +42 -0
- package/dist/logger.js.map +1 -0
- package/dist/session-ui.d.ts +17 -0
- package/dist/session-ui.d.ts.map +1 -0
- package/dist/session-ui.js +237 -0
- package/dist/session-ui.js.map +1 -0
- package/dist/sessions.d.ts +33 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +341 -0
- package/dist/sessions.js.map +1 -0
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +144 -0
- package/dist/setup.js.map +1 -0
- package/dist/stt.d.ts +11 -0
- package/dist/stt.d.ts.map +1 -0
- package/dist/stt.js +192 -0
- package/dist/stt.js.map +1 -0
- package/dist/telegram.d.ts +85 -0
- package/dist/telegram.d.ts.map +1 -0
- package/dist/telegram.js +97 -0
- package/dist/telegram.js.map +1 -0
- package/dist/watcher.d.ts +6 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +230 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +45 -0
package/dist/banner.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.stopBannerResize = stopBannerResize;
|
|
37
|
+
exports.printBanner = printBanner;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
function getVersion() {
|
|
41
|
+
try {
|
|
42
|
+
const pkgPath = path.join(__dirname, "..", "package.json");
|
|
43
|
+
return JSON.parse(fs.readFileSync(pkgPath, "utf-8")).version || "0.0.0";
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return "0.0.0";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
let _bannerCleanup = null;
|
|
50
|
+
/** Stop listening for terminal resize (call before prompts / further output). */
|
|
51
|
+
function stopBannerResize() {
|
|
52
|
+
if (_bannerCleanup) {
|
|
53
|
+
_bannerCleanup();
|
|
54
|
+
_bannerCleanup = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function printBanner(contentLines) {
|
|
58
|
+
stopBannerResize();
|
|
59
|
+
const version = getVersion();
|
|
60
|
+
const tty = process.stdout.isTTY;
|
|
61
|
+
const c = tty ? "\x1b[36m" : "";
|
|
62
|
+
const r = tty ? "\x1b[0m" : "";
|
|
63
|
+
const d = tty ? "\x1b[2m" : "";
|
|
64
|
+
const bo = tty ? "\x1b[1m" : "";
|
|
65
|
+
function render(cols) {
|
|
66
|
+
const inner = cols - 2;
|
|
67
|
+
const dw = (s) => {
|
|
68
|
+
let n = 0;
|
|
69
|
+
for (const ch of s) {
|
|
70
|
+
const cp = ch.codePointAt(0) || 0;
|
|
71
|
+
n += (cp >= 0x1100 && cp <= 0x115F) || (cp >= 0x2E80 && cp <= 0x33BF) ||
|
|
72
|
+
(cp >= 0x3400 && cp <= 0x4DBF) || (cp >= 0x4E00 && cp <= 0xA4CF) ||
|
|
73
|
+
(cp >= 0xAC00 && cp <= 0xD7FF) || (cp >= 0xF900 && cp <= 0xFAFF) ||
|
|
74
|
+
(cp >= 0xFE30 && cp <= 0xFE6F) || (cp >= 0xFF01 && cp <= 0xFF60) ||
|
|
75
|
+
(cp >= 0x20000 && cp <= 0x2FA1F) ? 2 : 1;
|
|
76
|
+
}
|
|
77
|
+
return n;
|
|
78
|
+
};
|
|
79
|
+
const fit = (s, w) => {
|
|
80
|
+
const sw = dw(s);
|
|
81
|
+
if (sw <= w)
|
|
82
|
+
return s + " ".repeat(w - sw);
|
|
83
|
+
let out = "", ow = 0;
|
|
84
|
+
for (const ch of s) {
|
|
85
|
+
const cw = dw(ch);
|
|
86
|
+
if (ow + cw > w - 1)
|
|
87
|
+
break;
|
|
88
|
+
out += ch;
|
|
89
|
+
ow += cw;
|
|
90
|
+
}
|
|
91
|
+
return out + "\u2026" + " ".repeat(Math.max(0, w - ow - 1));
|
|
92
|
+
};
|
|
93
|
+
const row = (content) => c + "\u2502" + r + content + c + "\u2502" + r;
|
|
94
|
+
const empty = () => c + "\u2502" + " ".repeat(inner) + "\u2502" + r;
|
|
95
|
+
const titlePlain = `RemoteCode v${version}`;
|
|
96
|
+
const topFill = Math.max(0, inner - titlePlain.length - 3);
|
|
97
|
+
const out = [
|
|
98
|
+
"",
|
|
99
|
+
c + "\u256D\u2500 " + bo + "RemoteCode" + r + c + " v" + version + " " + "\u2500".repeat(topFill) + "\u256E" + r,
|
|
100
|
+
empty(),
|
|
101
|
+
];
|
|
102
|
+
if (contentLines && contentLines.length > 0) {
|
|
103
|
+
for (const cl of contentLines) {
|
|
104
|
+
if (cl.startsWith("---")) {
|
|
105
|
+
const label = cl.slice(3).trim();
|
|
106
|
+
out.push(empty());
|
|
107
|
+
if (label) {
|
|
108
|
+
const text = "-- " + label + " ---";
|
|
109
|
+
const pad = Math.max(0, inner - text.length - 2);
|
|
110
|
+
out.push(c + "\u2502" + r + d + " " + text + r + " ".repeat(pad) + c + "\u2502" + r);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
out.push(row(fit(" " + cl, inner)));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
out.push(empty());
|
|
118
|
+
}
|
|
119
|
+
out.push(c + "\u2570" + "\u2500".repeat(inner) + "\u256F" + r);
|
|
120
|
+
out.push("");
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
// Track visible width of each line from previous render
|
|
124
|
+
// so we can calculate how many visual rows they occupy after wrapping
|
|
125
|
+
let prevWidths = [];
|
|
126
|
+
function draw() {
|
|
127
|
+
const cols = Math.max(24, process.stdout.columns || 80);
|
|
128
|
+
// Erase previous render, accounting for line wrapping
|
|
129
|
+
if (prevWidths.length > 0 && tty) {
|
|
130
|
+
let up = 0;
|
|
131
|
+
for (const w of prevWidths) {
|
|
132
|
+
up += w === 0 ? 1 : Math.ceil(w / cols);
|
|
133
|
+
}
|
|
134
|
+
process.stdout.write(`\x1b[${up}A\x1b[0J`);
|
|
135
|
+
}
|
|
136
|
+
const lines = render(cols);
|
|
137
|
+
// Store visible widths (ANSI stripped) for next redraw
|
|
138
|
+
prevWidths = lines.map((l) => l.replace(/\x1b\[[0-9;]*m/g, "").length);
|
|
139
|
+
process.stdout.write(lines.join("\n") + "\n");
|
|
140
|
+
}
|
|
141
|
+
draw();
|
|
142
|
+
// Listen for terminal resize and redraw
|
|
143
|
+
if (tty) {
|
|
144
|
+
let active = true;
|
|
145
|
+
const onResize = () => { if (active)
|
|
146
|
+
draw(); };
|
|
147
|
+
process.stdout.on("resize", onResize);
|
|
148
|
+
_bannerCleanup = () => {
|
|
149
|
+
active = false;
|
|
150
|
+
process.stdout.removeListener("resize", onResize);
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,4CAKC;AAED,kCA0GC;AAhID,uCAAyB;AACzB,2CAA6B;AAE7B,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C,iFAAiF;AACjF,SAAgB,gBAAgB;IAC9B,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,YAAuB;IACjD,gBAAgB,EAAE,CAAC;IAEnB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACjC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhC,SAAS,MAAM,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;QAEvB,MAAM,EAAE,GAAG,CAAC,CAAS,EAAU,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;oBACnE,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;oBAChE,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;oBAChE,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;oBAChE,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;YAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM;gBAC3B,GAAG,IAAI,EAAE,CAAC;gBAAC,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,eAAe,OAAO,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAa;YACpB,EAAE;YACF,CAAC,GAAG,eAAe,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC;YAChH,KAAK,EAAE;SACR,CAAC;QAEF,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBAClB,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;wBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACjD,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wDAAwD;IACxD,sEAAsE;IACtE,IAAI,UAAU,GAAa,EAAE,CAAC;IAE9B,SAAS,IAAI;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAExD,sDAAsD;QACtD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACjC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,uDAAuD;QACvD,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,EAAE,CAAC;IAEP,wCAAwC;IACxC,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,IAAI,MAAM;YAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,cAAc,GAAG,GAAG,EAAE;YACpB,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CallbackQuery } from "./telegram";
|
|
2
|
+
import { HandlerContext } from "./context";
|
|
3
|
+
export declare function buildProjectListMarkup(): {
|
|
4
|
+
inline_keyboard: Array<Array<{
|
|
5
|
+
text: string;
|
|
6
|
+
callback_data: string;
|
|
7
|
+
}>>;
|
|
8
|
+
};
|
|
9
|
+
export declare function handleCallbackQuery(callback: CallbackQuery, ctx: HandlerContext): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=callbacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAiB,MAAM,WAAW,CAAC;AAsB1D,wBAAgB,sBAAsB,IAAI;IAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAAE,CAoBnH;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BrG"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildProjectListMarkup = buildProjectListMarkup;
|
|
4
|
+
exports.handleCallbackQuery = handleCallbackQuery;
|
|
5
|
+
const telegram_1 = require("./telegram");
|
|
6
|
+
const logger_1 = require("./logger");
|
|
7
|
+
const context_1 = require("./context");
|
|
8
|
+
const sessions_1 = require("./sessions");
|
|
9
|
+
const session_ui_1 = require("./session-ui");
|
|
10
|
+
function buildProjectListMarkup() {
|
|
11
|
+
const projects = (0, sessions_1.discoverProjects)();
|
|
12
|
+
const buttons = [];
|
|
13
|
+
if (projects.length > 0) {
|
|
14
|
+
for (const p of projects) {
|
|
15
|
+
let label = p.projectName;
|
|
16
|
+
if (label.length > 16)
|
|
17
|
+
label = label.slice(0, 13) + "..";
|
|
18
|
+
const timeAgo = (0, session_ui_1.formatTimeAgo)(p.lastModified);
|
|
19
|
+
const count = p.sessionCount > 5 ? "5+" : String(p.sessionCount);
|
|
20
|
+
buttons.push([
|
|
21
|
+
{ text: `${label} [${count}] ${timeAgo}`, callback_data: `proj:${p.encodedDir}` },
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
buttons.push([{ text: "No projects found", callback_data: "proj:noop" }]);
|
|
27
|
+
}
|
|
28
|
+
buttons.push([{ text: "Close", callback_data: "proj:close" }]);
|
|
29
|
+
return { inline_keyboard: buttons };
|
|
30
|
+
}
|
|
31
|
+
async function handleCallbackQuery(callback, ctx) {
|
|
32
|
+
const user = callback.from;
|
|
33
|
+
try {
|
|
34
|
+
await (0, telegram_1.answerCallbackQuery)(ctx.telegram, callback.id);
|
|
35
|
+
}
|
|
36
|
+
catch { /* ignore */ }
|
|
37
|
+
if (!(0, context_1.isUserAllowed)(user.id, user.username, ctx.allowedIds, ctx.allowedNames)) {
|
|
38
|
+
const chatId = callback.message?.chat.id;
|
|
39
|
+
const messageId = callback.message?.message_id;
|
|
40
|
+
if (chatId !== undefined && messageId !== undefined) {
|
|
41
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, "Not authorized.", { replyToMessageId: messageId });
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const data = (callback.data || "").trim();
|
|
46
|
+
const chatId = callback.message?.chat.id;
|
|
47
|
+
const messageId = callback.message?.message_id;
|
|
48
|
+
if (!data || chatId === undefined || messageId === undefined)
|
|
49
|
+
return;
|
|
50
|
+
try {
|
|
51
|
+
logger_1.logger.debug("callback", `chat_id=${chatId} message_id=${messageId} data=${data}`);
|
|
52
|
+
if (data.startsWith("proj:"))
|
|
53
|
+
return handleProjectCallback(data, chatId, messageId, ctx);
|
|
54
|
+
if (data.startsWith("sessdel:"))
|
|
55
|
+
return handleSessionDeleteCallback(data, chatId, messageId, ctx);
|
|
56
|
+
if (data.startsWith("sess:"))
|
|
57
|
+
return handleSessionCallback(data, chatId, messageId, ctx);
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
logger_1.logger.error("callback", `Error in handleCallbackQuery: ${(0, logger_1.errorMessage)(err)}`, err);
|
|
61
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, `Error: ${(0, logger_1.errorMessage)(err)}`, { replyToMessageId: messageId });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function handleProjectCallback(data, chatId, messageId, ctx) {
|
|
65
|
+
const action = data.slice("proj:".length);
|
|
66
|
+
if (action === "noop")
|
|
67
|
+
return;
|
|
68
|
+
if (action === "list" || action === "back") {
|
|
69
|
+
try {
|
|
70
|
+
await (0, telegram_1.editMessageText)(ctx.telegram, chatId, messageId, "Projects:", { replyMarkup: buildProjectListMarkup() });
|
|
71
|
+
}
|
|
72
|
+
catch { /* ignore */ }
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (action === "close") {
|
|
76
|
+
try {
|
|
77
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
78
|
+
}
|
|
79
|
+
catch { /* ignore */ }
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (action.startsWith("new:")) {
|
|
83
|
+
const dir = action.slice("new:".length);
|
|
84
|
+
const projectPath = (0, sessions_1.decodeProjectPath)(dir);
|
|
85
|
+
(0, sessions_1.createNewSession)(ctx.sessionsFile, projectPath);
|
|
86
|
+
const name = projectPath.split("/").pop() || projectPath;
|
|
87
|
+
try {
|
|
88
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
89
|
+
}
|
|
90
|
+
catch { /* ignore */ }
|
|
91
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, `New session in ${name}`, { replyMarkup: (0, session_ui_1.sessionsReplyKeyboard)(ctx.sessionsFile) });
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const encodedDir = action;
|
|
95
|
+
const sessions = (0, sessions_1.discoverProjectSessions)(encodedDir, 5);
|
|
96
|
+
const activeId = (0, sessions_1.loadActiveSessionId)(ctx.sessionsFile);
|
|
97
|
+
const buttons = (0, session_ui_1.buildSessionGrid)(sessions, activeId, { showDir: false });
|
|
98
|
+
if (sessions.length === 0) {
|
|
99
|
+
buttons.push([{ text: "No sessions", callback_data: "proj:noop" }]);
|
|
100
|
+
}
|
|
101
|
+
buttons.push([
|
|
102
|
+
{ text: "\u2190 Back", callback_data: "proj:back" },
|
|
103
|
+
{ text: "+ New", callback_data: `proj:new:${encodedDir}` },
|
|
104
|
+
{ text: "Close", callback_data: "proj:close" },
|
|
105
|
+
]);
|
|
106
|
+
const projectName = sessions.length > 0 ? sessions[0].projectName : encodedDir;
|
|
107
|
+
try {
|
|
108
|
+
await (0, telegram_1.editMessageText)(ctx.telegram, chatId, messageId, `${projectName} sessions:`, {
|
|
109
|
+
replyMarkup: { inline_keyboard: buttons },
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch { /* ignore */ }
|
|
113
|
+
}
|
|
114
|
+
async function handleSessionCallback(data, chatId, messageId, ctx) {
|
|
115
|
+
const action = data.slice("sess:".length);
|
|
116
|
+
if (action === "noop")
|
|
117
|
+
return;
|
|
118
|
+
if (action === "list") {
|
|
119
|
+
const sessions = (0, sessions_1.discoverSessions)(5);
|
|
120
|
+
const activeId = (0, sessions_1.loadActiveSessionId)(ctx.sessionsFile);
|
|
121
|
+
const display = (0, session_ui_1.buildSessionDisplay)(sessions, activeId);
|
|
122
|
+
try {
|
|
123
|
+
await (0, telegram_1.editMessageText)(ctx.telegram, chatId, messageId, display.text, {
|
|
124
|
+
parseMode: "HTML",
|
|
125
|
+
replyMarkup: { inline_keyboard: display.buttons },
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch { /* ignore */ }
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (action === "close") {
|
|
132
|
+
try {
|
|
133
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
134
|
+
}
|
|
135
|
+
catch { /* ignore */ }
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (action === "new") {
|
|
139
|
+
(0, sessions_1.createNewSession)(ctx.sessionsFile);
|
|
140
|
+
try {
|
|
141
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
142
|
+
}
|
|
143
|
+
catch { /* ignore */ }
|
|
144
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, "New session started.", { replyMarkup: (0, session_ui_1.sessionsReplyKeyboard)(ctx.sessionsFile) });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const session = (0, sessions_1.findSession)(action);
|
|
148
|
+
if (!session) {
|
|
149
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, "Session not found.", { replyToMessageId: messageId });
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
(0, sessions_1.saveActiveSessionId)(ctx.sessionsFile, session.sessionId);
|
|
153
|
+
(0, sessions_1.saveSessionCwd)(ctx.sessionsFile, session.project);
|
|
154
|
+
const label = (0, session_ui_1.formatSessionLabel)(session);
|
|
155
|
+
const pages = (0, session_ui_1.readLastTurns)(session.sessionId, 4);
|
|
156
|
+
const text = pages.length > 0 ? `Switched to: ${label}\n\n${pages[0]}` : `Switched to: ${label}`;
|
|
157
|
+
try {
|
|
158
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
159
|
+
}
|
|
160
|
+
catch { /* ignore */ }
|
|
161
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, text, {
|
|
162
|
+
replyMarkup: (0, session_ui_1.sessionsReplyKeyboard)(ctx.sessionsFile),
|
|
163
|
+
parseMode: pages.length > 0 ? "HTML" : undefined,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
async function handleSessionDeleteCallback(data, chatId, messageId, ctx) {
|
|
167
|
+
const sessionId = data.slice("sessdel:".length);
|
|
168
|
+
if ((0, sessions_1.loadActiveSessionId)(ctx.sessionsFile) === sessionId) {
|
|
169
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, "Cannot delete the active session.", { replyToMessageId: messageId });
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const session = (0, sessions_1.findSession)(sessionId);
|
|
173
|
+
const label = session ? (0, session_ui_1.formatSessionLabel)(session) : sessionId.slice(0, 8);
|
|
174
|
+
if (!(0, sessions_1.deleteSession)(sessionId)) {
|
|
175
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, "Session file not found.", { replyToMessageId: messageId });
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
await (0, telegram_1.deleteMessage)(ctx.telegram, chatId, messageId);
|
|
180
|
+
}
|
|
181
|
+
catch { /* ignore */ }
|
|
182
|
+
await (0, telegram_1.sendMessage)(ctx.telegram, chatId, `Deleted: ${label}`, { replyMarkup: (0, session_ui_1.sessionsReplyKeyboard)(ctx.sessionsFile) });
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=callbacks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":"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"}
|
package/dist/claude.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ClaudeOptions {
|
|
2
|
+
timeoutMs?: number;
|
|
3
|
+
imagePaths?: string[];
|
|
4
|
+
cwd?: string;
|
|
5
|
+
yolo?: boolean;
|
|
6
|
+
onBusy?: () => Promise<void> | void;
|
|
7
|
+
}
|
|
8
|
+
export declare function askClaude(prompt: string, sessionId: string, options?: ClaudeOptions): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACrC;AAuHD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
package/dist/claude.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.askClaude = askClaude;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const logger_1 = require("./logger");
|
|
6
|
+
// Track active child process for cleanup on exit
|
|
7
|
+
let activeChild = null;
|
|
8
|
+
function cleanup() {
|
|
9
|
+
if (activeChild) {
|
|
10
|
+
activeChild.kill("SIGKILL");
|
|
11
|
+
activeChild = null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
process.on("SIGINT", cleanup);
|
|
15
|
+
process.on("SIGTERM", cleanup);
|
|
16
|
+
process.on("exit", cleanup);
|
|
17
|
+
function buildCmd(args, prompt, yolo) {
|
|
18
|
+
const cmd = [...args, "--print"];
|
|
19
|
+
if (yolo) {
|
|
20
|
+
cmd.push("--dangerously-skip-permissions");
|
|
21
|
+
}
|
|
22
|
+
cmd.push(prompt);
|
|
23
|
+
return cmd;
|
|
24
|
+
}
|
|
25
|
+
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
26
|
+
function runClaude(args, timeoutMs, cwd) {
|
|
27
|
+
const effectiveTimeout = timeoutMs || DEFAULT_TIMEOUT_MS;
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
logger_1.logger.debug("claude", `spawn: claude ${args.map(a => a.includes("\n") ? JSON.stringify(a) : a).join(" ")}`);
|
|
30
|
+
const child = (0, child_process_1.spawn)("claude", args, {
|
|
31
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
32
|
+
cwd,
|
|
33
|
+
});
|
|
34
|
+
activeChild = child;
|
|
35
|
+
const stdoutChunks = [];
|
|
36
|
+
const stderrChunks = [];
|
|
37
|
+
let settled = false;
|
|
38
|
+
child.stdout.on("data", (chunk) => stdoutChunks.push(chunk));
|
|
39
|
+
child.stderr.on("data", (chunk) => stderrChunks.push(chunk));
|
|
40
|
+
const timer = setTimeout(() => {
|
|
41
|
+
child.kill("SIGTERM");
|
|
42
|
+
// Force kill after 3s if still alive
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
if (!child.killed)
|
|
45
|
+
child.kill("SIGKILL");
|
|
46
|
+
}, 3000);
|
|
47
|
+
}, effectiveTimeout);
|
|
48
|
+
function finish() {
|
|
49
|
+
if (settled)
|
|
50
|
+
return;
|
|
51
|
+
settled = true;
|
|
52
|
+
clearTimeout(timer);
|
|
53
|
+
if (activeChild === child)
|
|
54
|
+
activeChild = null;
|
|
55
|
+
}
|
|
56
|
+
child.on("close", (code) => {
|
|
57
|
+
finish();
|
|
58
|
+
const stdout = Buffer.concat(stdoutChunks).toString("utf-8").trim();
|
|
59
|
+
const stderr = Buffer.concat(stderrChunks).toString("utf-8").trim();
|
|
60
|
+
logger_1.logger.debug("claude", `exited code=${code} stdout=${stdout.length} stderr=${stderr.slice(0, 200)}`);
|
|
61
|
+
if (code !== 0) {
|
|
62
|
+
const detail = stderr || stdout || `exit code ${code}`;
|
|
63
|
+
reject(new Error(`Claude failed: ${detail}`));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!stdout) {
|
|
67
|
+
reject(new Error("Claude failed: empty response"));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
resolve(stdout);
|
|
71
|
+
});
|
|
72
|
+
child.on("error", (err) => {
|
|
73
|
+
finish();
|
|
74
|
+
reject(new Error(`Claude failed: ${err.message}`));
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function sleep(ms) {
|
|
79
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
80
|
+
}
|
|
81
|
+
async function runWithFallback(prompt, sessionId, options) {
|
|
82
|
+
const resumeArgs = buildCmd(["--resume", sessionId], prompt, options.yolo);
|
|
83
|
+
try {
|
|
84
|
+
return await runClaude(resumeArgs, options.timeoutMs, options.cwd);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
const message = (0, logger_1.errorMessage)(err);
|
|
88
|
+
logger_1.logger.debug("claude", `resume failed: ${message}`);
|
|
89
|
+
if (!message.includes("No conversation found") && !message.includes("already in use") && !message.includes("empty response")) {
|
|
90
|
+
throw err;
|
|
91
|
+
}
|
|
92
|
+
if (message.includes("No conversation found") || message.includes("empty response")) {
|
|
93
|
+
logger_1.logger.info("claude", `creating new session ${sessionId}`);
|
|
94
|
+
const newArgs = buildCmd(["--session-id", sessionId], prompt, options.yolo);
|
|
95
|
+
return await runClaude(newArgs, options.timeoutMs, options.cwd);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// "already in use" - notify and retry up to 5 times
|
|
99
|
+
await options.onBusy?.();
|
|
100
|
+
for (let i = 0; i < 5; i++) {
|
|
101
|
+
logger_1.logger.warn("claude", `Session ${sessionId.slice(0, 8)} in use, retrying (${i + 1}/5)...`);
|
|
102
|
+
await sleep(2000);
|
|
103
|
+
try {
|
|
104
|
+
return await runClaude(resumeArgs, options.timeoutMs, options.cwd);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
if (!(0, logger_1.errorMessage)(err).includes("already in use")) {
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
throw new Error("Session is busy \u2014 Claude Code is active on host. Try again later.");
|
|
113
|
+
}
|
|
114
|
+
async function askClaude(prompt, sessionId, options = {}) {
|
|
115
|
+
return runWithFallback(prompt, sessionId, options);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function cmdStart(): Promise<void>;
|
|
2
|
+
export declare function cmdStop(): Promise<void>;
|
|
3
|
+
export declare function cmdRestart(): Promise<void>;
|
|
4
|
+
export declare function cmdStatus(): void;
|
|
5
|
+
interface LogsOptions {
|
|
6
|
+
lines: number;
|
|
7
|
+
follow: boolean;
|
|
8
|
+
level: string | null;
|
|
9
|
+
tag: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function cmdLogs(opts: LogsOptions): void;
|
|
12
|
+
export declare function cmdConfig(): Promise<void>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAWA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB9C;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB7C;AAWD,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD;AAcD,wBAAgB,SAAS,IAAI,IAAI,CAsEhC;AAsBD,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAWD,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA4C/C;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAW/C"}
|