@ebowwa/channel-telegram 1.12.5 โ 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -44
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/restart.d.ts +7 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +29 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/settings.d.ts +8 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +16 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/index.d.ts +83 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +350 -712
- package/dist/index.js.map +1 -1
- package/package.json +9 -13
- package/src/commands/index.ts +3 -0
- package/src/commands/restart.ts +41 -0
- package/src/commands/settings.ts +24 -0
- package/src/index.ts +415 -823
- package/dist/mcp/client.d.ts +0 -50
- package/dist/mcp/client.d.ts.map +0 -1
- package/dist/mcp/client.js +0 -150
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -5
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -5
- package/dist/mcp/index.js.map +0 -1
- package/src/api/fetch-retry.js +0 -96
- package/src/api/keys.js +0 -25
- package/src/commands/cancel.js +0 -120
- package/src/commands/clear.js +0 -59
- package/src/commands/doppler.js +0 -118
- package/src/commands/git.js +0 -126
- package/src/commands/help.js +0 -74
- package/src/commands/index.js +0 -65
- package/src/commands/logs.js +0 -81
- package/src/commands/pause.js +0 -133
- package/src/commands/resources.js +0 -87
- package/src/commands/resume.js +0 -95
- package/src/commands/start.js +0 -68
- package/src/commands/status.js +0 -62
- package/src/commands/tools.js +0 -67
- package/src/commands/toolsoutput.js +0 -85
- package/src/commands/types.js +0 -5
- package/src/mcp/client.ts +0 -188
- package/src/mcp/index.ts +0 -5
package/dist/mcp/client.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Client - Connect to MCP servers and expose their tools
|
|
3
|
-
*
|
|
4
|
-
* Uses stdio transport to communicate with local MCP servers
|
|
5
|
-
*/
|
|
6
|
-
export interface MCPTool {
|
|
7
|
-
name: string;
|
|
8
|
-
description: string;
|
|
9
|
-
inputSchema: Record<string, unknown>;
|
|
10
|
-
serverName: string;
|
|
11
|
-
}
|
|
12
|
-
export interface MCPServerConfig {
|
|
13
|
-
name: string;
|
|
14
|
-
command: string;
|
|
15
|
-
args?: string[];
|
|
16
|
-
env?: Record<string, string>;
|
|
17
|
-
}
|
|
18
|
-
export declare class MCPClient {
|
|
19
|
-
private servers;
|
|
20
|
-
private clients;
|
|
21
|
-
private transports;
|
|
22
|
-
private tools;
|
|
23
|
-
/**
|
|
24
|
-
* Default MCP servers to connect to
|
|
25
|
-
* Uses globally installed @ebowwa/*-mcp packages
|
|
26
|
-
*/
|
|
27
|
-
static DEFAULT_SERVERS: MCPServerConfig[];
|
|
28
|
-
constructor(servers?: MCPServerConfig[]);
|
|
29
|
-
/**
|
|
30
|
-
* Connect to all configured MCP servers
|
|
31
|
-
*/
|
|
32
|
-
connect(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Connect to a single MCP server
|
|
35
|
-
*/
|
|
36
|
-
private connectToServer;
|
|
37
|
-
/**
|
|
38
|
-
* Get all discovered MCP tools
|
|
39
|
-
*/
|
|
40
|
-
getTools(): MCPTool[];
|
|
41
|
-
/**
|
|
42
|
-
* Call an MCP tool
|
|
43
|
-
*/
|
|
44
|
-
callTool(name: string, args: Record<string, unknown>): Promise<string>;
|
|
45
|
-
/**
|
|
46
|
-
* Disconnect from all MCP servers
|
|
47
|
-
*/
|
|
48
|
-
disconnect(): Promise<void>;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/mcp/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,qBAAa,SAAS;IAiBR,OAAO,CAAC,OAAO;IAhB3B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;OAGG;IACH,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,CAMvC;gBAEkB,OAAO,GAAE,eAAe,EAA8B;IAE1E;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B;;OAEG;YACW,eAAe;IAwD7B;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAIrB;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC5E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBlC"}
|
package/dist/mcp/client.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Client - Connect to MCP servers and expose their tools
|
|
3
|
-
*
|
|
4
|
-
* Uses stdio transport to communicate with local MCP servers
|
|
5
|
-
*/
|
|
6
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
7
|
-
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
8
|
-
export class MCPClient {
|
|
9
|
-
servers;
|
|
10
|
-
clients = new Map();
|
|
11
|
-
transports = new Map();
|
|
12
|
-
tools = [];
|
|
13
|
-
/**
|
|
14
|
-
* Default MCP servers to connect to
|
|
15
|
-
* Uses globally installed @ebowwa/*-mcp packages
|
|
16
|
-
*/
|
|
17
|
-
static DEFAULT_SERVERS = [
|
|
18
|
-
{
|
|
19
|
-
name: 'hetzner',
|
|
20
|
-
command: '/root/.bun/bin/bun',
|
|
21
|
-
args: ['/root/.bun/install/global/node_modules/@ebowwa/hetzner-mcp/dist/index.js'],
|
|
22
|
-
},
|
|
23
|
-
];
|
|
24
|
-
constructor(servers = MCPClient.DEFAULT_SERVERS) {
|
|
25
|
-
this.servers = servers;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Connect to all configured MCP servers
|
|
29
|
-
*/
|
|
30
|
-
async connect() {
|
|
31
|
-
console.log(`[MCP] Connecting to ${this.servers.length} servers...`);
|
|
32
|
-
for (const server of this.servers) {
|
|
33
|
-
try {
|
|
34
|
-
await this.connectToServer(server);
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.error(`[MCP] Failed to connect to ${server.name}:`, error);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
console.log(`[MCP] Connected. Found ${this.tools.length} tools.`);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Connect to a single MCP server
|
|
44
|
-
*/
|
|
45
|
-
async connectToServer(server) {
|
|
46
|
-
console.log(`[MCP] Connecting to ${server.name}...`);
|
|
47
|
-
// Build env - filter out undefined values
|
|
48
|
-
const env = {};
|
|
49
|
-
for (const [key, value] of Object.entries(process.env)) {
|
|
50
|
-
if (value !== undefined) {
|
|
51
|
-
env[key] = value;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (server.env) {
|
|
55
|
-
Object.assign(env, server.env);
|
|
56
|
-
}
|
|
57
|
-
// Create stdio transport - it handles spawning the process
|
|
58
|
-
const transport = new StdioClientTransport({
|
|
59
|
-
command: server.command,
|
|
60
|
-
args: server.args,
|
|
61
|
-
env,
|
|
62
|
-
stderr: 'pipe',
|
|
63
|
-
});
|
|
64
|
-
this.transports.set(server.name, transport);
|
|
65
|
-
// Handle stderr for debugging
|
|
66
|
-
const stderr = transport.stderr;
|
|
67
|
-
if (stderr) {
|
|
68
|
-
stderr.on('data', (data) => {
|
|
69
|
-
console.error(`[MCP:${server.name}] ${data.toString().trim()}`);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
// Create MCP client
|
|
73
|
-
const client = new Client({ name: `telegram-bot-mcp-${server.name}`, version: '1.0.0' }, { capabilities: {} });
|
|
74
|
-
await client.connect(transport);
|
|
75
|
-
this.clients.set(server.name, client);
|
|
76
|
-
// Discover tools
|
|
77
|
-
const toolsResult = await client.listTools();
|
|
78
|
-
for (const tool of toolsResult.tools) {
|
|
79
|
-
this.tools.push({
|
|
80
|
-
name: tool.name,
|
|
81
|
-
description: tool.description || '',
|
|
82
|
-
inputSchema: tool.inputSchema,
|
|
83
|
-
serverName: server.name,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
console.log(`[MCP] ${server.name}: Found ${toolsResult.tools.length} tools`);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Get all discovered MCP tools
|
|
90
|
-
*/
|
|
91
|
-
getTools() {
|
|
92
|
-
return this.tools;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Call an MCP tool
|
|
96
|
-
*/
|
|
97
|
-
async callTool(name, args) {
|
|
98
|
-
const tool = this.tools.find(t => t.name === name);
|
|
99
|
-
if (!tool) {
|
|
100
|
-
throw new Error(`Tool not found: ${name}`);
|
|
101
|
-
}
|
|
102
|
-
const client = this.clients.get(tool.serverName);
|
|
103
|
-
if (!client) {
|
|
104
|
-
throw new Error(`MCP server not connected: ${tool.serverName}`);
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const result = await client.callTool({
|
|
108
|
-
name,
|
|
109
|
-
arguments: args,
|
|
110
|
-
});
|
|
111
|
-
// Extract text content from result
|
|
112
|
-
if (result.content && Array.isArray(result.content)) {
|
|
113
|
-
return result.content
|
|
114
|
-
.map((c) => c.text || '')
|
|
115
|
-
.join('\n');
|
|
116
|
-
}
|
|
117
|
-
return JSON.stringify(result);
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
throw new Error(`MCP tool error: ${error.message}`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Disconnect from all MCP servers
|
|
125
|
-
*/
|
|
126
|
-
async disconnect() {
|
|
127
|
-
console.log('[MCP] Disconnecting...');
|
|
128
|
-
for (const [name, client] of this.clients) {
|
|
129
|
-
try {
|
|
130
|
-
await client.close();
|
|
131
|
-
console.log(`[MCP] Disconnected from ${name}`);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
console.error(`[MCP] Error disconnecting from ${name}:`, error);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
for (const [name, transport] of this.transports) {
|
|
138
|
-
try {
|
|
139
|
-
await transport.close();
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error(`[MCP] Error closing transport ${name}:`, error);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
this.clients.clear();
|
|
146
|
-
this.transports.clear();
|
|
147
|
-
this.tools = [];
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=client.js.map
|
package/dist/mcp/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.d.ts
DELETED
package/dist/mcp/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/mcp/index.js
DELETED
package/dist/mcp/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAsC,MAAM,UAAU,CAAC"}
|
package/src/api/fetch-retry.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Fetch with retry and exponential backoff for 429 handling
|
|
4
|
-
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
16
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
-
function step(op) {
|
|
19
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
21
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
-
switch (op[0]) {
|
|
24
|
-
case 0: case 1: t = op; break;
|
|
25
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
-
default:
|
|
29
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
-
if (t[2]) _.ops.pop();
|
|
34
|
-
_.trys.pop(); continue;
|
|
35
|
-
}
|
|
36
|
-
op = body.call(thisArg, _);
|
|
37
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.fetchWithRetry = fetchWithRetry;
|
|
43
|
-
var sleep = function (ms) { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); };
|
|
44
|
-
function fetchWithRetry(url_1, options_1) {
|
|
45
|
-
return __awaiter(this, arguments, void 0, function (url, options, maxRetries, baseDelay) {
|
|
46
|
-
var lastError, attempt, response, retryAfter, delay, error_1, delay;
|
|
47
|
-
if (maxRetries === void 0) { maxRetries = 3; }
|
|
48
|
-
if (baseDelay === void 0) { baseDelay = 1000; }
|
|
49
|
-
return __generator(this, function (_a) {
|
|
50
|
-
switch (_a.label) {
|
|
51
|
-
case 0:
|
|
52
|
-
lastError = null;
|
|
53
|
-
attempt = 0;
|
|
54
|
-
_a.label = 1;
|
|
55
|
-
case 1:
|
|
56
|
-
if (!(attempt < maxRetries)) return [3 /*break*/, 10];
|
|
57
|
-
_a.label = 2;
|
|
58
|
-
case 2:
|
|
59
|
-
_a.trys.push([2, 6, , 9]);
|
|
60
|
-
return [4 /*yield*/, fetch(url, options)];
|
|
61
|
-
case 3:
|
|
62
|
-
response = _a.sent();
|
|
63
|
-
if (!(response.status === 429)) return [3 /*break*/, 5];
|
|
64
|
-
retryAfter = response.headers.get('Retry-After');
|
|
65
|
-
delay = retryAfter
|
|
66
|
-
? parseInt(retryAfter) * 1000
|
|
67
|
-
: baseDelay * Math.pow(2, attempt);
|
|
68
|
-
console.log("[429] Rate limited, retrying in ".concat(delay, "ms (attempt ").concat(attempt + 1, "/").concat(maxRetries, ")"));
|
|
69
|
-
return [4 /*yield*/, sleep(delay)];
|
|
70
|
-
case 4:
|
|
71
|
-
_a.sent();
|
|
72
|
-
return [3 /*break*/, 9];
|
|
73
|
-
case 5:
|
|
74
|
-
if (!response.ok) {
|
|
75
|
-
throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
|
|
76
|
-
}
|
|
77
|
-
return [2 /*return*/, response];
|
|
78
|
-
case 6:
|
|
79
|
-
error_1 = _a.sent();
|
|
80
|
-
lastError = error_1;
|
|
81
|
-
if (!(attempt < maxRetries - 1)) return [3 /*break*/, 8];
|
|
82
|
-
delay = baseDelay * Math.pow(2, attempt);
|
|
83
|
-
console.log("[Retry] Attempt ".concat(attempt + 1, " failed: ").concat(lastError.message, ", retrying in ").concat(delay, "ms"));
|
|
84
|
-
return [4 /*yield*/, sleep(delay)];
|
|
85
|
-
case 7:
|
|
86
|
-
_a.sent();
|
|
87
|
-
_a.label = 8;
|
|
88
|
-
case 8: return [3 /*break*/, 9];
|
|
89
|
-
case 9:
|
|
90
|
-
attempt++;
|
|
91
|
-
return [3 /*break*/, 1];
|
|
92
|
-
case 10: throw lastError;
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
}
|
package/src/api/keys.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* API Key Resolution - supports rolling keys
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getZAIKey = getZAIKey;
|
|
7
|
-
/**
|
|
8
|
-
* Get Z.AI API key from environment
|
|
9
|
-
* Supports single key or JSON array of keys for rolling key rotation
|
|
10
|
-
*/
|
|
11
|
-
function getZAIKey() {
|
|
12
|
-
var keyValue = process.env.Z_AI_API_KEY || process.env.ANTHROPIC_API_KEYS;
|
|
13
|
-
if (!keyValue)
|
|
14
|
-
return null;
|
|
15
|
-
try {
|
|
16
|
-
var keysArray_1 = JSON.parse(keyValue);
|
|
17
|
-
if (Array.isArray(keysArray_1) && keysArray_1.length > 0) {
|
|
18
|
-
return keysArray_1[0];
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
catch (_a) {
|
|
22
|
-
return keyValue;
|
|
23
|
-
}
|
|
24
|
-
return keyValue;
|
|
25
|
-
}
|
package/src/commands/cancel.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* /cancel command - Stop current task immediately
|
|
4
|
-
*
|
|
5
|
-
* Sets a cancel flag that the daemon checks during execution.
|
|
6
|
-
* Also stops the telegram-bot service as a hard stop.
|
|
7
|
-
*/
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
18
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
19
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
20
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
21
|
-
function step(op) {
|
|
22
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
23
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
24
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
25
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
26
|
-
switch (op[0]) {
|
|
27
|
-
case 0: case 1: t = op; break;
|
|
28
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
29
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
30
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
31
|
-
default:
|
|
32
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
33
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
34
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
35
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
36
|
-
if (t[2]) _.ops.pop();
|
|
37
|
-
_.trys.pop(); continue;
|
|
38
|
-
}
|
|
39
|
-
op = body.call(thisArg, _);
|
|
40
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
41
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.registerCancelCommand = registerCancelCommand;
|
|
46
|
-
exports.isCancelled = isCancelled;
|
|
47
|
-
exports.clearCancel = clearCancel;
|
|
48
|
-
var child_process_1 = require("child_process");
|
|
49
|
-
var fs_1 = require("fs");
|
|
50
|
-
var STATE_DIR = '/root/seed/state';
|
|
51
|
-
var CANCEL_FLAG = "".concat(STATE_DIR, "/.cancel");
|
|
52
|
-
var PAUSE_FLAG = "".concat(STATE_DIR, "/.pause");
|
|
53
|
-
function registerCancelCommand(bot, _memory, _tools) {
|
|
54
|
-
var _this = this;
|
|
55
|
-
bot.onText(/\/cancel/, function (msg) { return __awaiter(_this, void 0, void 0, function () {
|
|
56
|
-
var chatId, error_1;
|
|
57
|
-
return __generator(this, function (_a) {
|
|
58
|
-
switch (_a.label) {
|
|
59
|
-
case 0:
|
|
60
|
-
chatId = msg.chat.id;
|
|
61
|
-
_a.label = 1;
|
|
62
|
-
case 1:
|
|
63
|
-
_a.trys.push([1, 3, , 5]);
|
|
64
|
-
// Ensure state directory exists
|
|
65
|
-
if (!(0, fs_1.existsSync)(STATE_DIR)) {
|
|
66
|
-
(0, fs_1.mkdirSync)(STATE_DIR, { recursive: true });
|
|
67
|
-
}
|
|
68
|
-
// Set cancel flag
|
|
69
|
-
(0, fs_1.writeFileSync)(CANCEL_FLAG, Date.now().toString());
|
|
70
|
-
// Clear pause flag if set
|
|
71
|
-
if ((0, fs_1.existsSync)(PAUSE_FLAG)) {
|
|
72
|
-
(0, child_process_1.execSync)("rm -f ".concat(PAUSE_FLAG));
|
|
73
|
-
}
|
|
74
|
-
return [4 /*yield*/, bot.sendMessage(chatId, "\uD83D\uDED1 *CANCELLED*\n\n" +
|
|
75
|
-
"Cancel flag set. Current task will stop.\n" +
|
|
76
|
-
"Use /resume to start fresh, or /status to check state.", { parse_mode: 'Markdown' })];
|
|
77
|
-
case 2:
|
|
78
|
-
_a.sent();
|
|
79
|
-
// Log the cancel action
|
|
80
|
-
console.log("[CANCEL] Cancel requested by chat ".concat(chatId, " at ").concat(new Date().toISOString()));
|
|
81
|
-
return [3 /*break*/, 5];
|
|
82
|
-
case 3:
|
|
83
|
-
error_1 = _a.sent();
|
|
84
|
-
return [4 /*yield*/, bot.sendMessage(chatId, "\u274C Error setting cancel flag: ".concat(error_1), { parse_mode: 'Markdown' })];
|
|
85
|
-
case 4:
|
|
86
|
-
_a.sent();
|
|
87
|
-
return [3 /*break*/, 5];
|
|
88
|
-
case 5: return [2 /*return*/];
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}); });
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check if cancel was requested
|
|
95
|
-
*/
|
|
96
|
-
function isCancelled() {
|
|
97
|
-
if (!(0, fs_1.existsSync)(CANCEL_FLAG))
|
|
98
|
-
return false;
|
|
99
|
-
// Auto-expire cancel after 5 minutes
|
|
100
|
-
try {
|
|
101
|
-
var _a = require('fs'), readFileSync = _a.readFileSync, unlinkSync = _a.unlinkSync;
|
|
102
|
-
var timestamp = parseInt(readFileSync(CANCEL_FLAG, 'utf-8'));
|
|
103
|
-
if (Date.now() - timestamp > 5 * 60 * 1000) {
|
|
104
|
-
unlinkSync(CANCEL_FLAG);
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
catch (_b) {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Clear cancel flag
|
|
115
|
-
*/
|
|
116
|
-
function clearCancel() {
|
|
117
|
-
if ((0, fs_1.existsSync)(CANCEL_FLAG)) {
|
|
118
|
-
(0, child_process_1.execSync)("rm -f ".concat(CANCEL_FLAG));
|
|
119
|
-
}
|
|
120
|
-
}
|
package/src/commands/clear.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* /clear command - Reset conversation memory
|
|
4
|
-
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
16
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
-
function step(op) {
|
|
19
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
21
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
-
switch (op[0]) {
|
|
24
|
-
case 0: case 1: t = op; break;
|
|
25
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
-
default:
|
|
29
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
-
if (t[2]) _.ops.pop();
|
|
34
|
-
_.trys.pop(); continue;
|
|
35
|
-
}
|
|
36
|
-
op = body.call(thisArg, _);
|
|
37
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.registerClearCommand = void 0;
|
|
43
|
-
var registerClearCommand = function (bot, memory) {
|
|
44
|
-
bot.onText(/\/clear/, function (msg) { return __awaiter(void 0, void 0, void 0, function () {
|
|
45
|
-
var chatId;
|
|
46
|
-
return __generator(this, function (_a) {
|
|
47
|
-
switch (_a.label) {
|
|
48
|
-
case 0:
|
|
49
|
-
chatId = msg.chat.id;
|
|
50
|
-
memory.clear(chatId);
|
|
51
|
-
return [4 /*yield*/, bot.sendMessage(chatId, '๐งน Conversation memory cleared. Starting fresh!')];
|
|
52
|
-
case 1:
|
|
53
|
-
_a.sent();
|
|
54
|
-
return [2 /*return*/];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}); });
|
|
58
|
-
};
|
|
59
|
-
exports.registerClearCommand = registerClearCommand;
|
package/src/commands/doppler.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* /doppler command - Check Doppler config
|
|
4
|
-
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
16
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
-
function step(op) {
|
|
19
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
21
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
-
switch (op[0]) {
|
|
24
|
-
case 0: case 1: t = op; break;
|
|
25
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
-
default:
|
|
29
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
-
if (t[2]) _.ops.pop();
|
|
34
|
-
_.trys.pop(); continue;
|
|
35
|
-
}
|
|
36
|
-
op = body.call(thisArg, _);
|
|
37
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.registerDopplerCommand = registerDopplerCommand;
|
|
43
|
-
var child_process_1 = require("child_process");
|
|
44
|
-
function registerDopplerCommand(bot, _memory, _tools) {
|
|
45
|
-
var _this = this;
|
|
46
|
-
bot.onText(/\/doppler(?:\s+(.+))?/, function (msg, match) { return __awaiter(_this, void 0, void 0, function () {
|
|
47
|
-
var chatId, subCommand, statusMsg, secrets, secretList, statusMsg, projectRaw, projectMatch, project, configRaw, configMatch, config, tokenCheck, error_1;
|
|
48
|
-
var _a;
|
|
49
|
-
return __generator(this, function (_b) {
|
|
50
|
-
switch (_b.label) {
|
|
51
|
-
case 0:
|
|
52
|
-
chatId = msg.chat.id;
|
|
53
|
-
subCommand = (_a = match === null || match === void 0 ? void 0 : match[1]) === null || _a === void 0 ? void 0 : _a.trim();
|
|
54
|
-
_b.label = 1;
|
|
55
|
-
case 1:
|
|
56
|
-
_b.trys.push([1, 6, , 8]);
|
|
57
|
-
if (!(subCommand === 'secrets')) return [3 /*break*/, 3];
|
|
58
|
-
statusMsg = 'Doppler Secrets\n\n';
|
|
59
|
-
try {
|
|
60
|
-
secrets = (0, child_process_1.execSync)('doppler secrets --plain 2>&1 | cut -d\'\\t\' -f1', {
|
|
61
|
-
encoding: 'utf-8',
|
|
62
|
-
cwd: '/root'
|
|
63
|
-
});
|
|
64
|
-
secretList = secrets.trim().split('\n').filter(function (s) { return s.length > 0; });
|
|
65
|
-
statusMsg += "Found ".concat(secretList.length, " secrets:\n\n");
|
|
66
|
-
statusMsg += secretList.slice(0, 20).join('\n');
|
|
67
|
-
if (secretList.length > 20) {
|
|
68
|
-
statusMsg += "\n... and ".concat(secretList.length - 20, " more");
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
catch (e) {
|
|
72
|
-
statusMsg += "Error: ".concat(e.message);
|
|
73
|
-
}
|
|
74
|
-
return [4 /*yield*/, bot.sendMessage(chatId, statusMsg)];
|
|
75
|
-
case 2:
|
|
76
|
-
_b.sent();
|
|
77
|
-
return [3 /*break*/, 5];
|
|
78
|
-
case 3:
|
|
79
|
-
statusMsg = '*Doppler Status*\n\n';
|
|
80
|
-
try {
|
|
81
|
-
projectRaw = (0, child_process_1.execSync)('doppler configure get project 2>/dev/null', { encoding: 'utf-8', cwd: '/root' });
|
|
82
|
-
projectMatch = projectRaw.match(/โ\s*project\s*โ\s*(\S+)\s*โ/);
|
|
83
|
-
project = projectMatch ? projectMatch[1] : 'Not set';
|
|
84
|
-
configRaw = (0, child_process_1.execSync)('doppler configure get config 2>/dev/null', { encoding: 'utf-8', cwd: '/root' });
|
|
85
|
-
configMatch = configRaw.match(/โ\s*config\s*โ\s*(\S+)\s*โ/);
|
|
86
|
-
config = configMatch ? configMatch[1] : 'Not set';
|
|
87
|
-
statusMsg += "Project: `".concat(project, "`\n");
|
|
88
|
-
statusMsg += "Config: `".concat(config, "`\n");
|
|
89
|
-
tokenCheck = (0, child_process_1.execSync)('doppler me 2>&1 | head -5', { encoding: 'utf-8', cwd: '/root' });
|
|
90
|
-
if (tokenCheck.includes('WORKPLACE') || tokenCheck.includes('TOKEN PREVIEW')) {
|
|
91
|
-
statusMsg += "Token: Valid";
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
statusMsg += "Token: Not configured";
|
|
95
|
-
}
|
|
96
|
-
statusMsg += "\n\n_Commands:_\n";
|
|
97
|
-
statusMsg += "/doppler secrets - List secret names";
|
|
98
|
-
}
|
|
99
|
-
catch (_c) {
|
|
100
|
-
statusMsg += "Not configured\n\n";
|
|
101
|
-
statusMsg += "Run: `doppler setup`";
|
|
102
|
-
}
|
|
103
|
-
return [4 /*yield*/, bot.sendMessage(chatId, statusMsg, { parse_mode: 'Markdown' })];
|
|
104
|
-
case 4:
|
|
105
|
-
_b.sent();
|
|
106
|
-
_b.label = 5;
|
|
107
|
-
case 5: return [3 /*break*/, 8];
|
|
108
|
-
case 6:
|
|
109
|
-
error_1 = _b.sent();
|
|
110
|
-
return [4 /*yield*/, bot.sendMessage(chatId, "Error: ".concat(error_1.message))];
|
|
111
|
-
case 7:
|
|
112
|
-
_b.sent();
|
|
113
|
-
return [3 /*break*/, 8];
|
|
114
|
-
case 8: return [2 /*return*/];
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}); });
|
|
118
|
-
}
|