@mragentix/cli 4.2.39 → 4.2.53
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 +15 -6
- package/defaults/agents/bee.md +22 -0
- package/defaults/agents/db-manager.md +31 -0
- package/defaults/agents/deployer.md +35 -0
- package/defaults/agents/devops.md +36 -0
- package/defaults/agents/owl.md +24 -0
- package/defaults/agents/payments.md +29 -0
- package/defaults/agents/workspace.md +37 -0
- package/defaults/skills/act.md +65 -0
- package/defaults/skills/docker.md +84 -0
- package/defaults/skills/doppler.md +89 -0
- package/defaults/skills/drizzle.md +81 -0
- package/defaults/skills/firebase.md +83 -0
- package/defaults/skills/gh.md +91 -0
- package/defaults/skills/gws.md +72 -0
- package/defaults/skills/netlify.md +69 -0
- package/defaults/skills/prisma.md +62 -0
- package/defaults/skills/railway.md +69 -0
- package/defaults/skills/stripe.md +69 -0
- package/defaults/skills/supabase.md +84 -0
- package/defaults/skills/turso.md +78 -0
- package/defaults/skills/vercel.md +72 -0
- package/defaults/skills/wrangler.md +105 -0
- package/dist/cli.js +5 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -63
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +7 -7
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +9 -4
- package/dist/core/agents.d.ts.map +1 -1
- package/dist/core/agents.js +53 -8
- package/dist/core/agents.js.map +1 -1
- package/dist/core/auto-update.js +1 -1
- package/dist/core/auto-update.js.map +1 -1
- package/dist/core/compaction/compactor.d.ts +1 -1
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +1 -1
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/compactor.test.js +2 -2
- package/dist/core/compaction/compactor.test.js.map +1 -1
- package/dist/core/compaction/token-estimator.d.ts +1 -1
- package/dist/core/compaction/token-estimator.d.ts.map +1 -1
- package/dist/core/event-bus.d.ts +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/extensions/types.d.ts +1 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +2 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp/client.d.ts +1 -1
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/defaults.d.ts +1 -1
- package/dist/core/mcp/defaults.d.ts.map +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/process-manager.d.ts.map +1 -1
- package/dist/core/process-manager.js +2 -7
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/skills.d.ts +7 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +53 -7
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -97
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/telegram.d.ts +19 -0
- package/dist/core/telegram.d.ts.map +1 -1
- package/dist/core/telegram.js +22 -0
- package/dist/core/telegram.js.map +1 -1
- package/dist/core/voice-transcriber.d.ts +33 -0
- package/dist/core/voice-transcriber.d.ts.map +1 -0
- package/dist/core/voice-transcriber.js +113 -0
- package/dist/core/voice-transcriber.js.map +1 -0
- package/dist/core/voice-transcriber.test.d.ts +2 -0
- package/dist/core/voice-transcriber.test.d.ts.map +1 -0
- package/dist/core/voice-transcriber.test.js +88 -0
- package/dist/core/voice-transcriber.test.js.map +1 -0
- package/dist/interactive.js +6 -6
- package/dist/interactive.js.map +1 -1
- package/dist/modes/json-mode.d.ts +1 -1
- package/dist/modes/json-mode.d.ts.map +1 -1
- package/dist/modes/json-mode.js +1 -1
- package/dist/modes/json-mode.js.map +1 -1
- package/dist/modes/print-mode.d.ts +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc-mode.d.ts +1 -1
- package/dist/modes/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc-mode.js +1 -1
- package/dist/modes/rpc-mode.js.map +1 -1
- package/dist/modes/serve-mode.d.ts +1 -1
- package/dist/modes/serve-mode.d.ts.map +1 -1
- package/dist/modes/serve-mode.js +41 -4
- package/dist/modes/serve-mode.js.map +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -8
- package/dist/session.js.map +1 -1
- package/dist/system-prompt.js +2 -2
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/bash.d.ts +1 -2
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +1 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.d.ts +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/enter-plan.d.ts +1 -1
- package/dist/tools/enter-plan.d.ts.map +1 -1
- package/dist/tools/exit-plan.d.ts +1 -1
- package/dist/tools/exit-plan.d.ts.map +1 -1
- package/dist/tools/exit-plan.js +2 -3
- package/dist/tools/exit-plan.js.map +1 -1
- package/dist/tools/find.d.ts +1 -1
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/grep.d.ts +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/index.d.ts +5 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ls.d.ts +1 -1
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/plan-mode.test.js +6 -6
- package/dist/tools/plan-mode.test.js.map +1 -1
- package/dist/tools/read.d.ts +1 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/skill.d.ts +1 -1
- package/dist/tools/skill.d.ts.map +1 -1
- package/dist/tools/subagent.d.ts +1 -1
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/task-output.d.ts +1 -1
- package/dist/tools/task-output.d.ts.map +1 -1
- package/dist/tools/task-stop.d.ts +1 -1
- package/dist/tools/task-stop.d.ts.map +1 -1
- package/dist/tools/tasks.d.ts +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +1 -1
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +1 -1
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +1 -1
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/write.d.ts +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +3 -1
- package/dist/tools/write.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/App.d.ts +9 -3
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +49 -121
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/activity-phrases.d.ts +10 -0
- package/dist/ui/activity-phrases.d.ts.map +1 -0
- package/dist/ui/activity-phrases.js +227 -0
- package/dist/ui/activity-phrases.js.map +1 -0
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +1 -225
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/components/Banner.d.ts +1 -1
- package/dist/ui/components/Banner.d.ts.map +1 -1
- package/dist/ui/components/Banner.js +7 -4
- package/dist/ui/components/Banner.js.map +1 -1
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +453 -39
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts +1 -1
- package/dist/ui/components/ModelSelector.d.ts.map +1 -1
- package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
- package/dist/ui/components/PlanOverlay.js +7 -3
- package/dist/ui/components/PlanOverlay.js.map +1 -1
- package/dist/ui/components/SkillsOverlay.d.ts.map +1 -1
- package/dist/ui/components/SkillsOverlay.js +6 -2
- package/dist/ui/components/SkillsOverlay.js.map +1 -1
- package/dist/ui/components/TaskOverlay.d.ts.map +1 -1
- package/dist/ui/components/TaskOverlay.js +8 -4
- package/dist/ui/components/TaskOverlay.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +2 -2
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +3 -2
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/hooks/useSessionManager.d.ts +2 -2
- package/dist/ui/hooks/useSessionManager.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalSize.d.ts +12 -2
- package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalSize.js +27 -6
- package/dist/ui/hooks/useTerminalSize.js.map +1 -1
- package/dist/ui/hooks/useTerminalTitle.d.ts +8 -1
- package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalTitle.js +20 -23
- package/dist/ui/hooks/useTerminalTitle.js.map +1 -1
- package/dist/ui/login.d.ts +1 -1
- package/dist/ui/login.d.ts.map +1 -1
- package/dist/ui/login.js +5 -1
- package/dist/ui/login.js.map +1 -1
- package/dist/ui/plan-overlay.test.d.ts +2 -0
- package/dist/ui/plan-overlay.test.d.ts.map +1 -0
- package/dist/ui/plan-overlay.test.js +327 -0
- package/dist/ui/plan-overlay.test.js.map +1 -0
- package/dist/ui/render.d.ts +2 -2
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +1 -1
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/sessions.d.ts.map +1 -1
- package/dist/ui/sessions.js +5 -1
- package/dist/ui/sessions.js.map +1 -1
- package/package.json +17 -14
- package/LICENSE +0 -21
- package/dist/core/branding.d.ts +0 -11
- package/dist/core/branding.d.ts.map +0 -1
- package/dist/core/branding.js +0 -11
- package/dist/core/branding.js.map +0 -1
- package/dist/core/update.d.ts +0 -34
- package/dist/core/update.d.ts.map +0 -1
- package/dist/core/update.js +0 -231
- package/dist/core/update.js.map +0 -1
package/dist/core/skills.js
CHANGED
|
@@ -1,20 +1,66 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
3
5
|
/**
|
|
4
|
-
*
|
|
6
|
+
* Get the path to the bundled defaults/skills directory shipped with the package.
|
|
7
|
+
*/
|
|
8
|
+
function getBundledSkillsDir() {
|
|
9
|
+
// From src/core/skills.ts → ../../defaults/skills
|
|
10
|
+
return path.resolve(__dirname, "..", "..", "defaults", "skills");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Seed bundled default skills into the global skills directory.
|
|
14
|
+
* Only copies files that don't already exist (won't overwrite user customizations).
|
|
15
|
+
*/
|
|
16
|
+
export async function seedDefaultSkills(globalSkillsDir) {
|
|
17
|
+
const bundledDir = getBundledSkillsDir();
|
|
18
|
+
let bundledFiles;
|
|
19
|
+
try {
|
|
20
|
+
bundledFiles = await fs.readdir(bundledDir);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return; // No bundled defaults available
|
|
24
|
+
}
|
|
25
|
+
await fs.mkdir(globalSkillsDir, { recursive: true });
|
|
26
|
+
for (const file of bundledFiles) {
|
|
27
|
+
if (!file.endsWith(".md"))
|
|
28
|
+
continue;
|
|
29
|
+
const destPath = path.join(globalSkillsDir, file);
|
|
30
|
+
try {
|
|
31
|
+
await fs.access(destPath);
|
|
32
|
+
// File already exists — don't overwrite user customizations
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// File doesn't exist — copy the bundled default
|
|
36
|
+
const srcPath = path.join(bundledDir, file);
|
|
37
|
+
await fs.copyFile(srcPath, destPath);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Discover skills from bundled defaults, global, and project-local skill directories.
|
|
43
|
+
* Priority: project > global > bundled (later entries with the same name win).
|
|
5
44
|
*/
|
|
6
45
|
export async function discoverSkills(options) {
|
|
7
|
-
const
|
|
8
|
-
//
|
|
46
|
+
const skillMap = new Map();
|
|
47
|
+
// 1. Bundled default skills (shipped with the package)
|
|
48
|
+
const bundledDir = getBundledSkillsDir();
|
|
49
|
+
const bundledSkills = await loadSkillsFromDir(bundledDir, "bundled");
|
|
50
|
+
for (const s of bundledSkills)
|
|
51
|
+
skillMap.set(s.name, s);
|
|
52
|
+
// 2. Global skills: ~/.mragentix/skills/*.md (override bundled)
|
|
9
53
|
const globalSkills = await loadSkillsFromDir(options.globalSkillsDir, "global");
|
|
10
|
-
|
|
11
|
-
|
|
54
|
+
for (const s of globalSkills)
|
|
55
|
+
skillMap.set(s.name, s);
|
|
56
|
+
// 3. Project skills: {cwd}/.mragentix/skills/*.md (override global)
|
|
12
57
|
if (options.projectDir) {
|
|
13
58
|
const projectSkillsDir = path.join(options.projectDir, ".mragentix", "skills");
|
|
14
59
|
const projectSkills = await loadSkillsFromDir(projectSkillsDir, "project");
|
|
15
|
-
|
|
60
|
+
for (const s of projectSkills)
|
|
61
|
+
skillMap.set(s.name, s);
|
|
16
62
|
}
|
|
17
|
-
return
|
|
63
|
+
return Array.from(skillMap.values());
|
|
18
64
|
}
|
|
19
65
|
async function loadSkillsFromDir(dir, source) {
|
|
20
66
|
const skills = [];
|
package/dist/core/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAElC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,gDAAgD;IAChD,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACnF;AAID,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAmC;IAEnD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAOrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C,MAAM,IAAI,YAAY,EAAE;IAaxB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASrD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CASnF;AAID,wBAAgB,qBAAqB,IAAI,YAAY,EAAE,CA8HtD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// ── Types ──────────────────────────────────────────────────
|
|
2
2
|
// ── Registry ───────────────────────────────────────────────
|
|
3
3
|
export class SlashCommandRegistry {
|
|
4
4
|
commands = new Map();
|
|
@@ -158,18 +158,6 @@ export function createBuiltinCommands() {
|
|
|
158
158
|
return ctx.listBranches();
|
|
159
159
|
},
|
|
160
160
|
},
|
|
161
|
-
{
|
|
162
|
-
name: "update",
|
|
163
|
-
aliases: ["u"],
|
|
164
|
-
description: "Pull latest upstream changes, rebuild, and publish",
|
|
165
|
-
usage: "/update [confirm]",
|
|
166
|
-
execute(args) {
|
|
167
|
-
if (args === "confirm") {
|
|
168
|
-
return runUpdatePipeline();
|
|
169
|
-
}
|
|
170
|
-
return checkForUpdates();
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
161
|
{
|
|
174
162
|
name: "help",
|
|
175
163
|
aliases: ["h", "?"],
|
|
@@ -192,88 +180,4 @@ export function createBuiltinCommands() {
|
|
|
192
180
|
},
|
|
193
181
|
];
|
|
194
182
|
}
|
|
195
|
-
// ── Update helpers ──────────────────────────────────────
|
|
196
|
-
function checkForUpdates() {
|
|
197
|
-
try {
|
|
198
|
-
const status = fetchUpstreamChanges();
|
|
199
|
-
if (!status.hasUpdates) {
|
|
200
|
-
return "✅ Already up to date with upstream.";
|
|
201
|
-
}
|
|
202
|
-
const commitList = status.commits.map((c) => ` ${c}`).join("\n");
|
|
203
|
-
const lines = [
|
|
204
|
-
`📦 Found ${status.commits.length} new commit(s) from upstream:\n`,
|
|
205
|
-
commitList,
|
|
206
|
-
"",
|
|
207
|
-
status.diffStat,
|
|
208
|
-
"",
|
|
209
|
-
"Run /update confirm to merge, build, and publish.",
|
|
210
|
-
];
|
|
211
|
-
return lines.join("\n");
|
|
212
|
-
}
|
|
213
|
-
catch (err) {
|
|
214
|
-
return `❌ ${err.message}`;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
function runUpdatePipeline() {
|
|
218
|
-
const steps = [];
|
|
219
|
-
try {
|
|
220
|
-
// 1. Merge
|
|
221
|
-
steps.push("🔄 Merging upstream changes...");
|
|
222
|
-
const merge = mergeUpstream();
|
|
223
|
-
if (!merge.ok) {
|
|
224
|
-
steps.push(` ❌ ${merge.error}`);
|
|
225
|
-
return steps.join("\n");
|
|
226
|
-
}
|
|
227
|
-
steps.push(" ✓ Merged");
|
|
228
|
-
// 2. Branding
|
|
229
|
-
steps.push("🎨 Restoring branding...");
|
|
230
|
-
const branding = restoreBranding();
|
|
231
|
-
steps.push(` ✓ ${branding.filesModified} file(s) updated`);
|
|
232
|
-
// 3. Bump version
|
|
233
|
-
steps.push("📝 Bumping version...");
|
|
234
|
-
const version = bumpVersion();
|
|
235
|
-
steps.push(` ✓ ${version.oldVersion} → ${version.newVersion}`);
|
|
236
|
-
// 4. Build
|
|
237
|
-
steps.push("🔨 Building all packages...");
|
|
238
|
-
const build = buildAll();
|
|
239
|
-
if (!build.ok) {
|
|
240
|
-
steps.push(` ❌ Build failed:\n${build.output}`);
|
|
241
|
-
return steps.join("\n");
|
|
242
|
-
}
|
|
243
|
-
steps.push(" ✓ Built");
|
|
244
|
-
// 5. Publish
|
|
245
|
-
steps.push("📦 Publishing to npm...");
|
|
246
|
-
const pub = publishToNpm();
|
|
247
|
-
for (const r of pub.results) {
|
|
248
|
-
steps.push(` ${r}`);
|
|
249
|
-
}
|
|
250
|
-
if (!pub.ok) {
|
|
251
|
-
return steps.join("\n");
|
|
252
|
-
}
|
|
253
|
-
// 6. Push
|
|
254
|
-
steps.push("🚀 Pushing to GitHub...");
|
|
255
|
-
const push = pushToGithub(version.newVersion);
|
|
256
|
-
if (!push.ok) {
|
|
257
|
-
steps.push(` ❌ ${push.error}`);
|
|
258
|
-
return steps.join("\n");
|
|
259
|
-
}
|
|
260
|
-
steps.push(" ✓ Pushed");
|
|
261
|
-
// 7. Self-update
|
|
262
|
-
steps.push("⬆️ Updating global install...");
|
|
263
|
-
const update = selfUpdate();
|
|
264
|
-
if (!update.ok) {
|
|
265
|
-
steps.push(` ⚠️ Self-update failed: ${update.output}`);
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
steps.push(" ✓ Updated");
|
|
269
|
-
}
|
|
270
|
-
steps.push("");
|
|
271
|
-
steps.push(`✅ Updated to v${version.newVersion}! Restart mragentix to use the new version.`);
|
|
272
|
-
return steps.join("\n");
|
|
273
|
-
}
|
|
274
|
-
catch (err) {
|
|
275
|
-
steps.push(`\n❌ Pipeline error: ${err.message}`);
|
|
276
|
-
return steps.join("\n");
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
183
|
//# sourceMappingURL=slash-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/core/telegram.d.ts
CHANGED
|
@@ -21,6 +21,12 @@ export interface TelegramUpdate {
|
|
|
21
21
|
title?: string;
|
|
22
22
|
};
|
|
23
23
|
text?: string;
|
|
24
|
+
voice?: {
|
|
25
|
+
file_id: string;
|
|
26
|
+
duration: number;
|
|
27
|
+
mime_type?: string;
|
|
28
|
+
file_size?: number;
|
|
29
|
+
};
|
|
24
30
|
};
|
|
25
31
|
callback_query?: {
|
|
26
32
|
id: string;
|
|
@@ -59,18 +65,29 @@ export interface TelegramMessage {
|
|
|
59
65
|
chatType: "private" | "group" | "supergroup" | "channel";
|
|
60
66
|
chatTitle?: string;
|
|
61
67
|
}
|
|
68
|
+
/** Incoming voice note with chat context. */
|
|
69
|
+
export interface TelegramVoiceMessage {
|
|
70
|
+
fileId: string;
|
|
71
|
+
duration: number;
|
|
72
|
+
chatId: number;
|
|
73
|
+
chatType: "private" | "group" | "supergroup" | "channel";
|
|
74
|
+
chatTitle?: string;
|
|
75
|
+
}
|
|
62
76
|
export declare class TelegramBot {
|
|
63
77
|
private token;
|
|
64
78
|
private allowedUserId;
|
|
65
79
|
private offset;
|
|
66
80
|
private running;
|
|
67
81
|
private onMessage;
|
|
82
|
+
private onVoiceMessage;
|
|
68
83
|
private onCallback;
|
|
69
84
|
private onBotAdded;
|
|
70
85
|
private onBotRemoved;
|
|
71
86
|
constructor(config: TelegramConfig);
|
|
72
87
|
/** Register handler for incoming text messages. */
|
|
73
88
|
onText(handler: (msg: TelegramMessage) => void): void;
|
|
89
|
+
/** Register handler for incoming voice notes. */
|
|
90
|
+
onVoice(handler: (msg: TelegramVoiceMessage) => void): void;
|
|
74
91
|
/** Register handler for inline keyboard button presses. */
|
|
75
92
|
onCallbackQuery(handler: (data: string, chatId: number) => void): void;
|
|
76
93
|
/** Register handler for when the bot is added to a group. */
|
|
@@ -87,6 +104,8 @@ export declare class TelegramBot {
|
|
|
87
104
|
sendPlain(chatId: number, text: string): Promise<void>;
|
|
88
105
|
/** Send a typing indicator to a specific chat. */
|
|
89
106
|
sendTyping(chatId: number): Promise<void>;
|
|
107
|
+
/** Get a direct download URL for a Telegram file. */
|
|
108
|
+
getFileUrl(fileId: string): Promise<string>;
|
|
90
109
|
private getUpdates;
|
|
91
110
|
private handleUpdate;
|
|
92
111
|
private apiCall;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"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"}
|
package/dist/core/telegram.js
CHANGED
|
@@ -10,6 +10,7 @@ export class TelegramBot {
|
|
|
10
10
|
offset = 0;
|
|
11
11
|
running = false;
|
|
12
12
|
onMessage = null;
|
|
13
|
+
onVoiceMessage = null;
|
|
13
14
|
onCallback = null;
|
|
14
15
|
onBotAdded = null;
|
|
15
16
|
onBotRemoved = null;
|
|
@@ -21,6 +22,10 @@ export class TelegramBot {
|
|
|
21
22
|
onText(handler) {
|
|
22
23
|
this.onMessage = handler;
|
|
23
24
|
}
|
|
25
|
+
/** Register handler for incoming voice notes. */
|
|
26
|
+
onVoice(handler) {
|
|
27
|
+
this.onVoiceMessage = handler;
|
|
28
|
+
}
|
|
24
29
|
/** Register handler for inline keyboard button presses. */
|
|
25
30
|
onCallbackQuery(handler) {
|
|
26
31
|
this.onCallback = handler;
|
|
@@ -96,6 +101,14 @@ export class TelegramBot {
|
|
|
96
101
|
action: "typing",
|
|
97
102
|
});
|
|
98
103
|
}
|
|
104
|
+
/** Get a direct download URL for a Telegram file. */
|
|
105
|
+
async getFileUrl(fileId) {
|
|
106
|
+
const result = await this.apiCall("getFile", { file_id: fileId });
|
|
107
|
+
if (!result.ok)
|
|
108
|
+
throw new Error(`Failed to get file: ${JSON.stringify(result)}`);
|
|
109
|
+
const filePath = result.result.file_path;
|
|
110
|
+
return `${TELEGRAM_API}/file/bot${this.token}/${filePath}`;
|
|
111
|
+
}
|
|
99
112
|
// ── Private ───────────────────────────────────────────
|
|
100
113
|
async getUpdates() {
|
|
101
114
|
const result = await this.apiCall("getUpdates", {
|
|
@@ -126,6 +139,15 @@ export class TelegramBot {
|
|
|
126
139
|
chatTitle: msg.chat.title,
|
|
127
140
|
});
|
|
128
141
|
}
|
|
142
|
+
else if (msg.voice && this.onVoiceMessage) {
|
|
143
|
+
this.onVoiceMessage({
|
|
144
|
+
fileId: msg.voice.file_id,
|
|
145
|
+
duration: msg.voice.duration,
|
|
146
|
+
chatId: msg.chat.id,
|
|
147
|
+
chatType: msg.chat.type,
|
|
148
|
+
chatTitle: msg.chat.title,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
129
151
|
}
|
|
130
152
|
// Bot membership changed in a group
|
|
131
153
|
if (update.my_chat_member) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/core/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice note transcription using local Whisper model.
|
|
3
|
+
* Uses @huggingface/transformers (pure JS/WASM) — no native deps, no API keys.
|
|
4
|
+
* Model (~75MB) is downloaded on first use and cached locally.
|
|
5
|
+
*/
|
|
6
|
+
/** Optional callback for model download progress. */
|
|
7
|
+
export type ProgressCallback = (info: {
|
|
8
|
+
status: string;
|
|
9
|
+
progress?: number;
|
|
10
|
+
file?: string;
|
|
11
|
+
}) => void;
|
|
12
|
+
/** Set a callback to receive model download progress updates. */
|
|
13
|
+
export declare function setProgressCallback(cb: ProgressCallback | null): void;
|
|
14
|
+
/**
|
|
15
|
+
* Resample audio from one sample rate to another using linear interpolation.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resample(audio: Float32Array, fromRate: number, toRate: number): Float32Array;
|
|
18
|
+
/**
|
|
19
|
+
* Downmix multi-channel audio to mono by averaging all channels.
|
|
20
|
+
*/
|
|
21
|
+
export declare function downmixToMono(channelData: Float32Array[]): Float32Array;
|
|
22
|
+
/**
|
|
23
|
+
* Decode OGG Opus audio buffer to 16kHz mono PCM Float32Array.
|
|
24
|
+
*/
|
|
25
|
+
export declare function decodeOggOpus(buffer: Uint8Array): Promise<Float32Array>;
|
|
26
|
+
/** Whether the model has been loaded already. */
|
|
27
|
+
export declare function isModelLoaded(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Transcribe a voice message from its Telegram file URL.
|
|
30
|
+
* Downloads the OGG Opus file, decodes to PCM, and runs Whisper locally.
|
|
31
|
+
*/
|
|
32
|
+
export declare function transcribeVoice(fileUrl: string): Promise<string>;
|
|
33
|
+
//# sourceMappingURL=voice-transcriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-transcriber.d.ts","sourceRoot":"","sources":["../../src/core/voice-transcriber.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAIpG,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAa5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,YAAY,CAavE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAgB7E;AAwBD,iDAAiD;AACjD,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAetE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice note transcription using local Whisper model.
|
|
3
|
+
* Uses @huggingface/transformers (pure JS/WASM) — no native deps, no API keys.
|
|
4
|
+
* Model (~75MB) is downloaded on first use and cached locally.
|
|
5
|
+
*/
|
|
6
|
+
const TARGET_SAMPLE_RATE = 16000;
|
|
7
|
+
const MODEL_ID = "Xenova/whisper-tiny.en";
|
|
8
|
+
let transcriber = null;
|
|
9
|
+
let loadPromise = null;
|
|
10
|
+
let onProgress = null;
|
|
11
|
+
/** Set a callback to receive model download progress updates. */
|
|
12
|
+
export function setProgressCallback(cb) {
|
|
13
|
+
onProgress = cb;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resample audio from one sample rate to another using linear interpolation.
|
|
17
|
+
*/
|
|
18
|
+
export function resample(audio, fromRate, toRate) {
|
|
19
|
+
if (fromRate === toRate)
|
|
20
|
+
return audio;
|
|
21
|
+
const ratio = fromRate / toRate;
|
|
22
|
+
const newLength = Math.round(audio.length / ratio);
|
|
23
|
+
const result = new Float32Array(newLength);
|
|
24
|
+
for (let i = 0; i < newLength; i++) {
|
|
25
|
+
const srcIndex = i * ratio;
|
|
26
|
+
const low = Math.floor(srcIndex);
|
|
27
|
+
const high = Math.min(low + 1, audio.length - 1);
|
|
28
|
+
const frac = srcIndex - low;
|
|
29
|
+
result[i] = audio[low] * (1 - frac) + audio[high] * frac;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Downmix multi-channel audio to mono by averaging all channels.
|
|
35
|
+
*/
|
|
36
|
+
export function downmixToMono(channelData) {
|
|
37
|
+
if (channelData.length === 0)
|
|
38
|
+
return new Float32Array();
|
|
39
|
+
if (channelData.length === 1)
|
|
40
|
+
return channelData[0];
|
|
41
|
+
const samples = channelData[0].length;
|
|
42
|
+
const out = new Float32Array(samples);
|
|
43
|
+
const scale = 1 / channelData.length;
|
|
44
|
+
for (let i = 0; i < samples; i++) {
|
|
45
|
+
let mixed = 0;
|
|
46
|
+
for (const channel of channelData)
|
|
47
|
+
mixed += channel[i] ?? 0;
|
|
48
|
+
out[i] = mixed * scale;
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Decode OGG Opus audio buffer to 16kHz mono PCM Float32Array.
|
|
54
|
+
*/
|
|
55
|
+
export async function decodeOggOpus(buffer) {
|
|
56
|
+
const { OggOpusDecoder } = await import("ogg-opus-decoder");
|
|
57
|
+
const decoder = new OggOpusDecoder();
|
|
58
|
+
await decoder.ready;
|
|
59
|
+
try {
|
|
60
|
+
const decoded = await decoder.decodeFile(buffer);
|
|
61
|
+
if (!decoded.channelData?.length || !decoded.channelData[0]?.length) {
|
|
62
|
+
throw new Error("Decoded audio is empty");
|
|
63
|
+
}
|
|
64
|
+
const mono = downmixToMono(decoded.channelData);
|
|
65
|
+
return resample(mono, decoded.sampleRate, TARGET_SAMPLE_RATE);
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
decoder.free();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get or initialize the Whisper transcription pipeline.
|
|
73
|
+
* Model is downloaded on first use and cached by transformers.js.
|
|
74
|
+
*/
|
|
75
|
+
async function getTranscriber() {
|
|
76
|
+
if (transcriber)
|
|
77
|
+
return transcriber;
|
|
78
|
+
if (!loadPromise) {
|
|
79
|
+
loadPromise = (async () => {
|
|
80
|
+
const { pipeline } = await import("@huggingface/transformers");
|
|
81
|
+
const instance = await pipeline("automatic-speech-recognition", MODEL_ID, {
|
|
82
|
+
dtype: "fp32",
|
|
83
|
+
progress_callback: onProgress ?? undefined,
|
|
84
|
+
});
|
|
85
|
+
transcriber = instance;
|
|
86
|
+
return instance;
|
|
87
|
+
})();
|
|
88
|
+
}
|
|
89
|
+
return loadPromise;
|
|
90
|
+
}
|
|
91
|
+
/** Whether the model has been loaded already. */
|
|
92
|
+
export function isModelLoaded() {
|
|
93
|
+
return transcriber !== null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Transcribe a voice message from its Telegram file URL.
|
|
97
|
+
* Downloads the OGG Opus file, decodes to PCM, and runs Whisper locally.
|
|
98
|
+
*/
|
|
99
|
+
export async function transcribeVoice(fileUrl) {
|
|
100
|
+
// Download the audio file
|
|
101
|
+
const response = await fetch(fileUrl);
|
|
102
|
+
if (!response.ok)
|
|
103
|
+
throw new Error(`Failed to download voice file: ${response.status}`);
|
|
104
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
105
|
+
// Decode OGG Opus → 16kHz mono PCM
|
|
106
|
+
const pcm = await decodeOggOpus(buffer);
|
|
107
|
+
// Transcribe with Whisper
|
|
108
|
+
const asr = await getTranscriber();
|
|
109
|
+
const result = await asr(pcm);
|
|
110
|
+
const text = Array.isArray(result) ? result[0]?.text : result.text;
|
|
111
|
+
return (text ?? "").trim();
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=voice-transcriber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-transcriber.js","sourceRoot":"","sources":["../../src/core/voice-transcriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-transcriber.test.d.ts","sourceRoot":"","sources":["../../src/core/voice-transcriber.test.ts"],"names":[],"mappings":""}
|