@marcopeg/hal 1.0.18 → 1.0.22
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 +90 -743
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -5
- package/dist/agent/index.js.map +1 -1
- package/dist/bot/commands/git/callback.d.ts +8 -0
- package/dist/bot/commands/git/callback.d.ts.map +1 -0
- package/dist/bot/commands/git/callback.js +72 -0
- package/dist/bot/commands/git/callback.js.map +1 -0
- package/dist/bot/commands/git/clean.d.ts +4 -0
- package/dist/bot/commands/git/clean.d.ts.map +1 -0
- package/dist/bot/commands/git/clean.js +50 -0
- package/dist/bot/commands/git/clean.js.map +1 -0
- package/dist/bot/commands/git/commit.d.ts +4 -0
- package/dist/bot/commands/git/commit.d.ts.map +1 -0
- package/dist/bot/commands/git/commit.js +72 -0
- package/dist/bot/commands/git/commit.js.map +1 -0
- package/dist/bot/commands/git/exec.d.ts +6 -0
- package/dist/bot/commands/git/exec.d.ts.map +1 -0
- package/dist/bot/commands/git/exec.js +16 -0
- package/dist/bot/commands/git/exec.js.map +1 -0
- package/dist/bot/commands/git/index.d.ts +6 -0
- package/dist/bot/commands/git/index.d.ts.map +1 -0
- package/dist/bot/commands/git/index.js +6 -0
- package/dist/bot/commands/git/index.js.map +1 -0
- package/dist/bot/commands/git/init.d.ts +4 -0
- package/dist/bot/commands/git/init.d.ts.map +1 -0
- package/dist/bot/commands/git/init.js +22 -0
- package/dist/bot/commands/git/init.js.map +1 -0
- package/dist/bot/commands/git/status.d.ts +4 -0
- package/dist/bot/commands/git/status.d.ts.map +1 -0
- package/dist/bot/commands/git/status.js +18 -0
- package/dist/bot/commands/git/status.js.map +1 -0
- package/dist/bot/commands/help.js +1 -1
- package/dist/bot/commands/help.js.map +1 -1
- package/dist/bot/commands/loader.d.ts +14 -6
- package/dist/bot/commands/loader.d.ts.map +1 -1
- package/dist/bot/commands/loader.js +126 -34
- package/dist/bot/commands/loader.js.map +1 -1
- package/dist/bot/commands/message.d.ts.map +1 -1
- package/dist/bot/commands/message.js +51 -25
- package/dist/bot/commands/message.js.map +1 -1
- package/dist/bot/commands/model-callback.d.ts +4 -0
- package/dist/bot/commands/model-callback.d.ts.map +1 -0
- package/dist/bot/commands/model-callback.js +34 -0
- package/dist/bot/commands/model-callback.js.map +1 -0
- package/dist/bot/commands/model.d.ts +4 -0
- package/dist/bot/commands/model.d.ts.map +1 -0
- package/dist/bot/commands/model.js +83 -0
- package/dist/bot/commands/model.js.map +1 -0
- package/dist/bot/commands/reset.d.ts +3 -2
- package/dist/bot/commands/reset.d.ts.map +1 -1
- package/dist/bot/commands/reset.js +73 -10
- package/dist/bot/commands/reset.js.map +1 -1
- package/dist/bot/commands/resetPrompt.d.ts +20 -0
- package/dist/bot/commands/resetPrompt.d.ts.map +1 -0
- package/dist/bot/commands/resetPrompt.js +58 -0
- package/dist/bot/commands/resetPrompt.js.map +1 -0
- package/dist/bot/commands/session.d.ts +2 -2
- package/dist/bot/commands/session.d.ts.map +1 -1
- package/dist/bot/commands/session.js +7 -4
- package/dist/bot/commands/session.js.map +1 -1
- package/dist/bot/commands/start.js +2 -2
- package/dist/bot/commands/start.js.map +1 -1
- package/dist/bot/commands/watcher.d.ts +2 -1
- package/dist/bot/commands/watcher.d.ts.map +1 -1
- package/dist/bot/commands/watcher.js +11 -5
- package/dist/bot/commands/watcher.js.map +1 -1
- package/dist/bot/handlers/text.d.ts.map +1 -1
- package/dist/bot/handlers/text.js +11 -6
- package/dist/bot/handlers/text.js.map +1 -1
- package/dist/bot/middleware/auth.d.ts +0 -3
- package/dist/bot/middleware/auth.d.ts.map +1 -1
- package/dist/bot/middleware/auth.js +13 -12
- package/dist/bot/middleware/auth.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +43 -11
- package/dist/bot.js.map +1 -1
- package/dist/cli.js +52 -29
- package/dist/cli.js.map +1 -1
- package/dist/config-watcher.d.ts +10 -0
- package/dist/config-watcher.d.ts.map +1 -0
- package/dist/config-watcher.js +55 -0
- package/dist/config-watcher.js.map +1 -0
- package/dist/config-writer.d.ts +8 -0
- package/dist/config-writer.d.ts.map +1 -0
- package/dist/config-writer.js +57 -0
- package/dist/config-writer.js.map +1 -0
- package/dist/config.d.ts +338 -53
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +337 -92
- package/dist/config.js.map +1 -1
- package/dist/context/resolver.d.ts +4 -0
- package/dist/context/resolver.d.ts.map +1 -1
- package/dist/context/resolver.js +8 -2
- package/dist/context/resolver.js.map +1 -1
- package/dist/default-models.d.ts +3 -0
- package/dist/default-models.d.ts.map +1 -0
- package/dist/default-models.js +16 -0
- package/dist/default-models.js.map +1 -0
- package/dist/engine/adapters/antigravity.d.ts +13 -0
- package/dist/engine/adapters/antigravity.d.ts.map +1 -0
- package/dist/engine/adapters/antigravity.js +230 -0
- package/dist/engine/adapters/antigravity.js.map +1 -0
- package/dist/engine/adapters/claude.js +2 -2
- package/dist/engine/adapters/claude.js.map +1 -1
- package/dist/engine/adapters/codex.d.ts.map +1 -1
- package/dist/engine/adapters/codex.js +27 -8
- package/dist/engine/adapters/codex.js.map +1 -1
- package/dist/engine/adapters/copilot.d.ts.map +1 -1
- package/dist/engine/adapters/copilot.js +6 -3
- package/dist/engine/adapters/copilot.js.map +1 -1
- package/dist/engine/adapters/cursor.d.ts +3 -0
- package/dist/engine/adapters/cursor.d.ts.map +1 -0
- package/dist/engine/adapters/cursor.js +106 -0
- package/dist/engine/adapters/cursor.js.map +1 -0
- package/dist/engine/adapters/opencode.d.ts +2 -2
- package/dist/engine/adapters/opencode.d.ts.map +1 -1
- package/dist/engine/adapters/opencode.js +33 -13
- package/dist/engine/adapters/opencode.js.map +1 -1
- package/dist/engine/detect.d.ts +26 -0
- package/dist/engine/detect.d.ts.map +1 -0
- package/dist/engine/detect.js +129 -0
- package/dist/engine/detect.js.map +1 -0
- package/dist/engine/model-cache.d.ts +25 -0
- package/dist/engine/model-cache.d.ts.map +1 -0
- package/dist/engine/model-cache.js +162 -0
- package/dist/engine/model-cache.js.map +1 -0
- package/dist/engine/model-validation.d.ts +9 -0
- package/dist/engine/model-validation.d.ts.map +1 -0
- package/dist/engine/model-validation.js +21 -0
- package/dist/engine/model-validation.js.map +1 -0
- package/dist/engine/models-data.generated.d.ts +4 -0
- package/dist/engine/models-data.generated.d.ts.map +1 -0
- package/dist/engine/models-data.generated.js +196 -0
- package/dist/engine/models-data.generated.js.map +1 -0
- package/dist/engine/models-fetch.d.ts +5 -0
- package/dist/engine/models-fetch.d.ts.map +1 -0
- package/dist/engine/models-fetch.js +54 -0
- package/dist/engine/models-fetch.js.map +1 -0
- package/dist/engine/probe-utils.d.ts +6 -0
- package/dist/engine/probe-utils.d.ts.map +1 -0
- package/dist/engine/probe-utils.js +42 -0
- package/dist/engine/probe-utils.js.map +1 -0
- package/dist/engine/prompt.d.ts.map +1 -1
- package/dist/engine/prompt.js +8 -0
- package/dist/engine/prompt.js.map +1 -1
- package/dist/engine/registry.d.ts.map +1 -1
- package/dist/engine/registry.js +4 -0
- package/dist/engine/registry.js.map +1 -1
- package/dist/engine/types.d.ts +3 -3
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/engine/types.js +2 -0
- package/dist/engine/types.js.map +1 -1
- package/dist/prompts.d.ts +19 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +73 -0
- package/dist/prompts.js.map +1 -0
- package/dist/setup-wizard.d.ts +4 -0
- package/dist/setup-wizard.d.ts.map +1 -0
- package/dist/setup-wizard.js +258 -0
- package/dist/setup-wizard.js.map +1 -0
- package/package.json +6 -2
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { readdir, readFile } from "node:fs/promises";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
+
// Canonical display/menu order for command sources
|
|
5
|
+
const SOURCE_ORDER = {
|
|
6
|
+
project: 0,
|
|
7
|
+
skill: 1,
|
|
8
|
+
system: 2,
|
|
9
|
+
builtin: 3,
|
|
10
|
+
git: 4,
|
|
11
|
+
};
|
|
12
|
+
function sortBySource(a, b) {
|
|
13
|
+
return SOURCE_ORDER[a.source] - SOURCE_ORDER[b.source];
|
|
14
|
+
}
|
|
4
15
|
const TELEGRAM_COMMAND_RE = /^[a-z0-9_]{1,32}$/;
|
|
5
16
|
function isValidTelegramCommandName(name) {
|
|
6
17
|
return TELEGRAM_COMMAND_RE.test(name);
|
|
@@ -13,7 +24,7 @@ function globalCommandDir(configDir) {
|
|
|
13
24
|
return join(configDir, ".hal", "commands");
|
|
14
25
|
}
|
|
15
26
|
// ─── Single-file import ──────────────────────────────────────────────────────
|
|
16
|
-
async function importCommandFile(filePath, logger) {
|
|
27
|
+
async function importCommandFile(filePath, logger, source) {
|
|
17
28
|
try {
|
|
18
29
|
// Cache-bust on every import so hot-reload always gets the latest version
|
|
19
30
|
const mod = await import(`${filePath}?t=${Date.now()}`);
|
|
@@ -32,6 +43,7 @@ async function importCommandFile(filePath, logger) {
|
|
|
32
43
|
command,
|
|
33
44
|
description: mod.description,
|
|
34
45
|
filePath,
|
|
46
|
+
source,
|
|
35
47
|
};
|
|
36
48
|
}
|
|
37
49
|
catch (err) {
|
|
@@ -44,7 +56,7 @@ async function importCommandFile(filePath, logger) {
|
|
|
44
56
|
}
|
|
45
57
|
}
|
|
46
58
|
// ─── Directory scan ──────────────────────────────────────────────────────────
|
|
47
|
-
async function scanCommandDir(dir, logger) {
|
|
59
|
+
async function scanCommandDir(dir, logger, source) {
|
|
48
60
|
if (!existsSync(dir)) {
|
|
49
61
|
return [];
|
|
50
62
|
}
|
|
@@ -60,7 +72,7 @@ async function scanCommandDir(dir, logger) {
|
|
|
60
72
|
const entries = [];
|
|
61
73
|
for (const file of mjsFiles) {
|
|
62
74
|
const filePath = join(dir, file);
|
|
63
|
-
const entry = await importCommandFile(filePath, logger);
|
|
75
|
+
const entry = await importCommandFile(filePath, logger, source);
|
|
64
76
|
if (entry !== null) {
|
|
65
77
|
entries.push(entry);
|
|
66
78
|
}
|
|
@@ -147,44 +159,113 @@ async function scanSkillsDir(dir, logger) {
|
|
|
147
159
|
filePath: "",
|
|
148
160
|
skillPrompt: parsed.prompt,
|
|
149
161
|
public: parsed.public,
|
|
162
|
+
source: "skill",
|
|
150
163
|
});
|
|
151
164
|
}
|
|
152
165
|
return skills;
|
|
153
166
|
}
|
|
154
167
|
// ─── Built-in commands ───────────────────────────────────────────────────────
|
|
155
|
-
/**
|
|
156
|
-
* Commands that are always registered with Telegram, regardless of
|
|
157
|
-
* whether custom .mjs files or skills exist.
|
|
158
|
-
*/
|
|
159
168
|
export const BUILTIN_COMMANDS = [
|
|
160
|
-
{
|
|
161
|
-
|
|
169
|
+
{
|
|
170
|
+
command: "start",
|
|
171
|
+
description: "Welcome message",
|
|
172
|
+
filePath: "",
|
|
173
|
+
source: "builtin",
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
command: "help",
|
|
177
|
+
description: "Show help",
|
|
178
|
+
filePath: "",
|
|
179
|
+
source: "builtin",
|
|
180
|
+
},
|
|
162
181
|
{
|
|
163
182
|
command: "reset",
|
|
164
183
|
description: "Wipes out all user data and resets the LLM session",
|
|
165
184
|
filePath: "",
|
|
185
|
+
source: "builtin",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
command: "clean",
|
|
189
|
+
description: "Resets the LLM session",
|
|
190
|
+
filePath: "",
|
|
191
|
+
source: "builtin",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
command: "model",
|
|
195
|
+
description: "Switch the AI model",
|
|
196
|
+
filePath: "",
|
|
197
|
+
source: "builtin",
|
|
198
|
+
},
|
|
199
|
+
];
|
|
200
|
+
export const GIT_COMMANDS = [
|
|
201
|
+
{
|
|
202
|
+
command: "git_init",
|
|
203
|
+
description: "Initialize a git repository",
|
|
204
|
+
filePath: "",
|
|
205
|
+
source: "git",
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
command: "git_status",
|
|
209
|
+
description: "Show git status",
|
|
210
|
+
filePath: "",
|
|
211
|
+
source: "git",
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
command: "git_commit",
|
|
215
|
+
description: "Commit changes",
|
|
216
|
+
filePath: "",
|
|
217
|
+
source: "git",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
command: "git_clean",
|
|
221
|
+
description: "Revert uncommitted changes",
|
|
222
|
+
filePath: "",
|
|
223
|
+
source: "git",
|
|
166
224
|
},
|
|
167
|
-
{ command: "clean", description: "Resets the LLM session", filePath: "" },
|
|
168
225
|
];
|
|
226
|
+
const BUILTIN_ENABLED_MAP = {
|
|
227
|
+
start: "start",
|
|
228
|
+
help: "help",
|
|
229
|
+
reset: "reset",
|
|
230
|
+
clean: "clean",
|
|
231
|
+
model: "model",
|
|
232
|
+
};
|
|
169
233
|
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
170
234
|
/**
|
|
171
235
|
* Scan command directories and optionally the skills dir, then return the merged list.
|
|
236
|
+
* When `enabled` flags are provided, disabled built-in/git commands are excluded.
|
|
172
237
|
*
|
|
173
238
|
* Precedence (lowest → highest):
|
|
174
239
|
* engine skills < global .hal/commands < project .hal/commands
|
|
175
240
|
*/
|
|
176
|
-
export async function loadCommands(projectCwd, configDir, logger,
|
|
241
|
+
export async function loadCommands(projectCwd, configDir, logger, skillsDirs, enabled) {
|
|
177
242
|
const globalDir = globalCommandDir(configDir);
|
|
178
243
|
const projectDir = projectCommandDir(projectCwd);
|
|
179
|
-
//
|
|
180
|
-
const skillEntries =
|
|
181
|
-
const
|
|
182
|
-
|
|
244
|
+
// Scan all skill directories in priority order, dedup by name (first-found wins)
|
|
245
|
+
const skillEntries = [];
|
|
246
|
+
const seenSkills = new Set();
|
|
247
|
+
if (skillsDirs) {
|
|
248
|
+
for (const dir of skillsDirs) {
|
|
249
|
+
const dirSkills = await scanSkillsDir(dir, logger);
|
|
250
|
+
for (const skill of dirSkills) {
|
|
251
|
+
if (!seenSkills.has(skill.command)) {
|
|
252
|
+
seenSkills.add(skill.command);
|
|
253
|
+
skillEntries.push(skill);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
const globalEntries = await scanCommandDir(globalDir, logger, "system");
|
|
259
|
+
const projectEntries = await scanCommandDir(projectDir, logger, "project");
|
|
183
260
|
const map = new Map();
|
|
184
|
-
// Seed built-in commands first (lowest precedence)
|
|
185
261
|
for (const entry of BUILTIN_COMMANDS) {
|
|
186
262
|
map.set(entry.command, entry);
|
|
187
263
|
}
|
|
264
|
+
if (enabled?.git) {
|
|
265
|
+
for (const entry of GIT_COMMANDS) {
|
|
266
|
+
map.set(entry.command, entry);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
188
269
|
for (const entry of skillEntries) {
|
|
189
270
|
map.set(entry.command, entry);
|
|
190
271
|
}
|
|
@@ -194,33 +275,44 @@ export async function loadCommands(projectCwd, configDir, logger, skillsDir) {
|
|
|
194
275
|
for (const entry of projectEntries) {
|
|
195
276
|
map.set(entry.command, entry);
|
|
196
277
|
}
|
|
197
|
-
|
|
278
|
+
if (enabled) {
|
|
279
|
+
for (const [cmd, flag] of Object.entries(BUILTIN_ENABLED_MAP)) {
|
|
280
|
+
if (!enabled[flag]) {
|
|
281
|
+
map.delete(cmd);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return Array.from(map.values()).sort(sortBySource);
|
|
198
286
|
}
|
|
199
287
|
/**
|
|
200
288
|
* Resolve a skill entry by command name from the engine's skills directory.
|
|
201
289
|
* Returns null if the skill doesn't exist or its SKILL.md can't be parsed.
|
|
202
290
|
*/
|
|
203
|
-
export async function resolveSkillEntry(commandName,
|
|
291
|
+
export async function resolveSkillEntry(commandName, skillsDirs, logger) {
|
|
204
292
|
if (!isValidTelegramCommandName(commandName)) {
|
|
205
293
|
return null;
|
|
206
294
|
}
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
295
|
+
for (const dir of skillsDirs) {
|
|
296
|
+
const skillMdPath = join(dir, commandName, "SKILL.md");
|
|
297
|
+
if (!existsSync(skillMdPath)) {
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
const parsed = await parseSkillMd(skillMdPath, logger);
|
|
301
|
+
if (!parsed) {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
if (parsed.name !== commandName) {
|
|
305
|
+
logger.warn({ commandName, frontmatterName: parsed.name }, "Skill frontmatter `name` differs from folder name — using folder name as command");
|
|
306
|
+
}
|
|
307
|
+
return {
|
|
308
|
+
command: commandName,
|
|
309
|
+
description: parsed.description,
|
|
310
|
+
filePath: "",
|
|
311
|
+
skillPrompt: parsed.prompt,
|
|
312
|
+
source: "skill",
|
|
313
|
+
};
|
|
217
314
|
}
|
|
218
|
-
return
|
|
219
|
-
command: commandName,
|
|
220
|
-
description: parsed.description,
|
|
221
|
-
filePath: "",
|
|
222
|
-
skillPrompt: parsed.prompt,
|
|
223
|
-
};
|
|
315
|
+
return null;
|
|
224
316
|
}
|
|
225
317
|
/**
|
|
226
318
|
* Resolve the file path for a single command name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAyBjC,mDAAmD;AACnD,MAAM,YAAY,GAAkC;IAClD,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,SAAS,YAAY,CAAC,CAAe,EAAE,CAAe;IACpD,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,SAAS,0BAA0B,CAAC,IAAY;IAC9C,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,gFAAgF;AAEhF,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,MAAmB,EACnB,MAAqB;IAErB,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAExD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,EACZ,+DAA+D,CAChE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE/C,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,OAAO,EAAE,EACrB,wDAAwD,CACzD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,OAAO;YACP,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ;YACR,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV;YACE,QAAQ;YACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACpD,EACD,0CAA0C,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,cAAc,CAC3B,GAAW,EACX,MAAmB,EACnB,MAAqB;IAErB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAChE,6CAA6C,CAC9C,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,MAAmB;IAOnB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACrE,oCAAoC,CACrC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,+CAA+C,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE3D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,EACZ,6DAA6D,CAC9D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACzB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAChC,MAAM;QACN,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;KACzD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,MAAmB;IAEnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAChE,4CAA4C,CAC7C,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,EACxC,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,WAAW,EAAE,EACvB,4DAA4D,CAC7D,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C;QACE,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;CACF,CAAC;AAEF,MAAM,mBAAmB,GAA8C;IACrE,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,SAAiB,EACjB,MAAmB,EACnB,UAAqB,EACrB,OAA6B;IAE7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD,iFAAiF;IACjF,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,UAAoB,EACpB,MAAmB;IAEnB,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,EAC7C,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,UAAkB,EAClB,SAAiB;IAEjB,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;IAC9E,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;IAC3E,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmFrD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveContext, substituteMessage } from "../../context/resolver.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { getDefaultEngineModel } from "../../default-models.js";
|
|
3
|
+
import { loadCommands } from "./loader.js";
|
|
4
4
|
function escapeMarkdown(text) {
|
|
5
5
|
return text.replace(/[_*`[]/g, "\\$&").replace(/@/g, "@\u200B");
|
|
6
6
|
}
|
|
@@ -10,37 +10,57 @@ function formatCommandList(entries) {
|
|
|
10
10
|
.join("\n");
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Build the HAL_COMMANDS formatted string divided into
|
|
14
|
-
*
|
|
13
|
+
* Build the HAL_COMMANDS formatted string divided into 5 sections by source:
|
|
14
|
+
* Project Commands, Project Skills, System Commands, Hal Commands, Versioning.
|
|
15
15
|
*/
|
|
16
16
|
async function buildHalCommands(ctx) {
|
|
17
17
|
const { config, logger, engine } = ctx;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const skillsDirs = engine.skillsDirs(config.cwd);
|
|
19
|
+
const enabled = {
|
|
20
|
+
start: config.commands.start.enabled,
|
|
21
|
+
help: config.commands.help.enabled,
|
|
22
|
+
reset: config.commands.reset.enabled,
|
|
23
|
+
clean: config.commands.clean.enabled,
|
|
24
|
+
git: config.commands.git.enabled,
|
|
25
|
+
model: config.commands.model.enabled,
|
|
26
|
+
};
|
|
27
|
+
const all = await loadCommands(config.cwd, config.configDir, logger, skillsDirs, enabled);
|
|
28
|
+
const projectCommands = [];
|
|
22
29
|
const skills = [];
|
|
30
|
+
const systemCommands = [];
|
|
31
|
+
const halCommands = [];
|
|
32
|
+
const gitCommands = [];
|
|
23
33
|
for (const entry of all) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
switch (entry.source) {
|
|
35
|
+
case "project":
|
|
36
|
+
projectCommands.push(entry);
|
|
37
|
+
break;
|
|
38
|
+
case "skill":
|
|
39
|
+
if (entry.public)
|
|
40
|
+
skills.push(entry);
|
|
41
|
+
break;
|
|
42
|
+
case "system":
|
|
43
|
+
systemCommands.push(entry);
|
|
44
|
+
break;
|
|
45
|
+
case "builtin":
|
|
46
|
+
halCommands.push(entry);
|
|
47
|
+
break;
|
|
48
|
+
case "git":
|
|
49
|
+
gitCommands.push(entry);
|
|
50
|
+
break;
|
|
32
51
|
}
|
|
33
52
|
}
|
|
34
53
|
const sections = [];
|
|
35
|
-
if (
|
|
36
|
-
sections.push(`*Commands:*\n${formatCommandList(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
sections.push(`*
|
|
43
|
-
|
|
54
|
+
if (projectCommands.length > 0)
|
|
55
|
+
sections.push(`*Project Commands:*\n${formatCommandList(projectCommands)}`);
|
|
56
|
+
if (skills.length > 0)
|
|
57
|
+
sections.push(`*Project Skills:*\n${formatCommandList(skills)}`);
|
|
58
|
+
if (systemCommands.length > 0)
|
|
59
|
+
sections.push(`*System Commands:*\n${formatCommandList(systemCommands)}`);
|
|
60
|
+
if (halCommands.length > 0)
|
|
61
|
+
sections.push(`*Hal Commands:*\n${formatCommandList(halCommands)}`);
|
|
62
|
+
if (gitCommands.length > 0)
|
|
63
|
+
sections.push(`*Versioning:*\n${formatCommandList(gitCommands)}`);
|
|
44
64
|
return sections.join("\n\n");
|
|
45
65
|
}
|
|
46
66
|
/**
|
|
@@ -58,6 +78,12 @@ export async function resolveCommandMessage(template, ctx, gramCtx) {
|
|
|
58
78
|
projectName: config.name,
|
|
59
79
|
projectSlug: config.slug,
|
|
60
80
|
logger,
|
|
81
|
+
engineName: config.engine,
|
|
82
|
+
engineCommand: ctx.engine.command,
|
|
83
|
+
engineModel: config.engineModel,
|
|
84
|
+
engineDefaultModel: config.engineModel
|
|
85
|
+
? undefined
|
|
86
|
+
: (getDefaultEngineModel(config.engine) ?? "engine-defaults"),
|
|
61
87
|
});
|
|
62
88
|
vars.HAL_COMMANDS = await buildHalCommands(ctx);
|
|
63
89
|
return substituteMessage(template, vars, logger);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/bot/commands/message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/bot/commands/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Context, NextFunction } from "grammy";
|
|
2
|
+
import type { ProjectContext } from "../../types.js";
|
|
3
|
+
export declare function createModelCallbackHandler(projectCtx: ProjectContext): (ctx: Context, next: NextFunction) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=model-callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-callback.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/model-callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AASrD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,cAAc,GACzB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAuCrD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { updateProjectModel } from "../../config-writer.js";
|
|
2
|
+
function escapeHtml(text) {
|
|
3
|
+
return text
|
|
4
|
+
.replace(/&/g, "&")
|
|
5
|
+
.replace(/</g, "<")
|
|
6
|
+
.replace(/>/g, ">");
|
|
7
|
+
}
|
|
8
|
+
export function createModelCallbackHandler(projectCtx) {
|
|
9
|
+
return async (gramCtx, next) => {
|
|
10
|
+
const data = gramCtx.callbackQuery?.data;
|
|
11
|
+
if (!data?.startsWith("md:")) {
|
|
12
|
+
return next();
|
|
13
|
+
}
|
|
14
|
+
const { config, logger } = projectCtx;
|
|
15
|
+
const parts = data.split(":");
|
|
16
|
+
if (parts[1] !== "select" || !parts[2]) {
|
|
17
|
+
await gramCtx.answerCallbackQuery("Invalid selection");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const modelId = parts.slice(2).join(":");
|
|
21
|
+
try {
|
|
22
|
+
updateProjectModel(config.configDir, { name: config.name, cwd: config.cwd }, config.engine, modelId);
|
|
23
|
+
logger.info({ engine: config.engine, model: modelId }, "Model switched");
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
logger.error({ error: err instanceof Error ? err.message : String(err) }, "Failed to write model config");
|
|
27
|
+
await gramCtx.answerCallbackQuery("Failed to update config");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
await gramCtx.answerCallbackQuery(`Model switched to ${modelId}`);
|
|
31
|
+
await gramCtx.editMessageText(`✅ Model switched to <b>${escapeHtml(modelId)}</b>\n\nThe change will take effect shortly.`, { parse_mode: "HTML" });
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=model-callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-callback.js","sourceRoot":"","sources":["../../../src/bot/commands/model-callback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAA0B;IAE1B,OAAO,KAAK,EAAE,OAAgB,EAAE,IAAkB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,kBAAkB,CAChB,MAAM,CAAC,SAAS,EAChB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EACtC,MAAM,CAAC,MAAM,EACb,OAAO,CACR,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC3D,8BAA8B,CAC/B,CAAC;YACF,MAAM,OAAO,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,CAAC,eAAe,CAC3B,0BAA0B,UAAU,CAAC,OAAO,CAAC,8CAA8C,EAC3F,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AASrD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,cAAc,GACzB,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAsGjC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { InlineKeyboard } from "grammy";
|
|
2
|
+
import { updateProjectModel } from "../../config-writer.js";
|
|
3
|
+
function escapeHtml(text) {
|
|
4
|
+
return text
|
|
5
|
+
.replace(/&/g, "&")
|
|
6
|
+
.replace(/</g, "<")
|
|
7
|
+
.replace(/>/g, ">");
|
|
8
|
+
}
|
|
9
|
+
export function createModelHandler(projectCtx) {
|
|
10
|
+
return async (gramCtx) => {
|
|
11
|
+
const { config, logger } = projectCtx;
|
|
12
|
+
const models = config.providerModels;
|
|
13
|
+
const messageText = gramCtx.message?.text ?? "";
|
|
14
|
+
const directMatch = messageText.match(/^\/model(?:@\w+)?\s+(.+)$/i);
|
|
15
|
+
const directModel = directMatch?.[1]?.trim();
|
|
16
|
+
if (directModel) {
|
|
17
|
+
if (models.length > 0) {
|
|
18
|
+
const valid = models.some((m) => m.name === directModel);
|
|
19
|
+
if (!valid) {
|
|
20
|
+
const available = models
|
|
21
|
+
.map((m) => `• <code>${escapeHtml(m.name)}</code>`)
|
|
22
|
+
.join("\n");
|
|
23
|
+
await gramCtx.reply(`Model <b>${escapeHtml(directModel)}</b> is not in the configured models list.\n\nAvailable models:\n${available}`, { parse_mode: "HTML" });
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
updateProjectModel(config.configDir, { name: config.name, cwd: config.cwd }, config.engine, directModel);
|
|
29
|
+
logger.info({ engine: config.engine, model: directModel }, "Model switched via direct /model argument");
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
logger.error({ error: err instanceof Error ? err.message : String(err) }, "Failed to write model config");
|
|
33
|
+
await gramCtx.reply("Failed to update model in config.");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await gramCtx.reply(`✅ Model set to <b>${escapeHtml(directModel)}</b>\n\nThe change will take effect shortly.`, { parse_mode: "HTML" });
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// No argument provided
|
|
40
|
+
const currentModel = config.engineModel;
|
|
41
|
+
if (models.length === 0) {
|
|
42
|
+
const lines = [];
|
|
43
|
+
lines.push(`<b>Switch Model</b>`);
|
|
44
|
+
lines.push(`Engine: <b>${escapeHtml(config.engine)}</b>`);
|
|
45
|
+
if (currentModel) {
|
|
46
|
+
lines.push(`Current: <b>${escapeHtml(currentModel)}</b>`);
|
|
47
|
+
}
|
|
48
|
+
lines.push("");
|
|
49
|
+
lines.push(`No models list configured. Use <code>/model {name}</code> to set any model directly.`);
|
|
50
|
+
await gramCtx.reply(lines.join("\n"), { parse_mode: "HTML" });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const lines = [];
|
|
54
|
+
lines.push(`<b>Switch Model</b>`);
|
|
55
|
+
lines.push(`Engine: <b>${escapeHtml(config.engine)}</b>`);
|
|
56
|
+
if (currentModel) {
|
|
57
|
+
lines.push(`Current: <b>${escapeHtml(currentModel)}</b>`);
|
|
58
|
+
}
|
|
59
|
+
lines.push("");
|
|
60
|
+
for (const model of models) {
|
|
61
|
+
const isCurrent = model.name === currentModel;
|
|
62
|
+
const marker = isCurrent ? "▸ " : " ";
|
|
63
|
+
let line = `${marker}<b>${escapeHtml(model.name)}</b>`;
|
|
64
|
+
if (model.description) {
|
|
65
|
+
line += ` — ${escapeHtml(model.description)}`;
|
|
66
|
+
}
|
|
67
|
+
lines.push(line);
|
|
68
|
+
}
|
|
69
|
+
lines.push("");
|
|
70
|
+
lines.push(`<i>Tip: use /model <name> to set a model directly.</i>`);
|
|
71
|
+
const keyboard = new InlineKeyboard();
|
|
72
|
+
for (const model of models) {
|
|
73
|
+
const isCurrent = model.name === currentModel;
|
|
74
|
+
const label = isCurrent ? `✓ ${model.name}` : model.name;
|
|
75
|
+
keyboard.text(label, `md:select:${model.name}`).row();
|
|
76
|
+
}
|
|
77
|
+
await gramCtx.reply(lines.join("\n"), {
|
|
78
|
+
parse_mode: "HTML",
|
|
79
|
+
reply_markup: keyboard,
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/bot/commands/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Context } from "grammy";
|
|
1
|
+
import type { Api, Context, NextFunction } from "grammy";
|
|
2
2
|
import type { ProjectContext } from "../../types.js";
|
|
3
|
-
export declare function createResetHandler(ctx: ProjectContext): (gramCtx: Context) => Promise<void>;
|
|
3
|
+
export declare function createResetHandler(ctx: ProjectContext, botApi: Api): (gramCtx: Context) => Promise<void>;
|
|
4
|
+
export declare function createResetCallbackHandler(ctx: ProjectContext): (gramCtx: Context, next: NextFunction) => Promise<void>;
|
|
4
5
|
//# sourceMappingURL=reset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/reset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/reset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUrD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IACnD,SAAS,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAmC/C;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,IAC9C,SAAS,OAAO,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CA8DnE"}
|