@marcopeg/hal 1.0.32 → 1.0.34
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 +19 -44
- package/dist/bot/commands/loader.d.ts +1 -0
- package/dist/bot/commands/loader.d.ts.map +1 -1
- package/dist/bot/commands/loader.js +7 -0
- 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 +1 -0
- package/dist/bot/commands/message.js.map +1 -1
- package/dist/bot/commands/npm/exec.d.ts +15 -0
- package/dist/bot/commands/npm/exec.d.ts.map +1 -0
- package/dist/bot/commands/npm/exec.js +66 -0
- package/dist/bot/commands/npm/exec.js.map +1 -0
- package/dist/bot/commands/npm/format.d.ts +11 -0
- package/dist/bot/commands/npm/format.d.ts.map +1 -0
- package/dist/bot/commands/npm/format.js +40 -0
- package/dist/bot/commands/npm/format.js.map +1 -0
- package/dist/bot/commands/npm/index.d.ts +5 -0
- package/dist/bot/commands/npm/index.d.ts.map +1 -0
- package/dist/bot/commands/npm/index.js +126 -0
- package/dist/bot/commands/npm/index.js.map +1 -0
- package/dist/bot/commands/npm/scripts.d.ts +18 -0
- package/dist/bot/commands/npm/scripts.d.ts.map +1 -0
- package/dist/bot/commands/npm/scripts.js +66 -0
- package/dist/bot/commands/npm/scripts.js.map +1 -0
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +6 -0
- package/dist/bot.js.map +1 -1
- package/dist/cli.js +207 -19
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -2
- package/dist/config.js.map +1 -1
- package/dist/engine/adapters/copilot.d.ts.map +1 -1
- package/dist/engine/adapters/copilot.js +35 -1
- package/dist/engine/adapters/copilot.js.map +1 -1
- package/dist/wizard/analyzer.d.ts +17 -0
- package/dist/wizard/analyzer.d.ts.map +1 -0
- package/dist/wizard/analyzer.js +173 -0
- package/dist/wizard/analyzer.js.map +1 -0
- package/dist/wizard/config-builder.d.ts +15 -0
- package/dist/wizard/config-builder.d.ts.map +1 -0
- package/dist/wizard/config-builder.js +199 -0
- package/dist/wizard/config-builder.js.map +1 -0
- package/dist/wizard/confirm-and-write.d.ts +7 -0
- package/dist/wizard/confirm-and-write.d.ts.map +1 -0
- package/dist/wizard/confirm-and-write.js +135 -0
- package/dist/wizard/confirm-and-write.js.map +1 -0
- package/dist/wizard/engine-discovery.d.ts +8 -0
- package/dist/wizard/engine-discovery.d.ts.map +1 -0
- package/dist/wizard/engine-discovery.js +55 -0
- package/dist/wizard/engine-discovery.js.map +1 -0
- package/dist/wizard/index.d.ts +14 -0
- package/dist/wizard/index.d.ts.map +1 -0
- package/dist/wizard/index.js +116 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/runner.d.ts +16 -0
- package/dist/wizard/runner.d.ts.map +1 -0
- package/dist/wizard/runner.js +47 -0
- package/dist/wizard/runner.js.map +1 -0
- package/dist/wizard/steps/additional-users.d.ts +3 -0
- package/dist/wizard/steps/additional-users.d.ts.map +1 -0
- package/dist/wizard/steps/additional-users.js +57 -0
- package/dist/wizard/steps/additional-users.js.map +1 -0
- package/dist/wizard/steps/bot-token.d.ts +3 -0
- package/dist/wizard/steps/bot-token.d.ts.map +1 -0
- package/dist/wizard/steps/bot-token.js +130 -0
- package/dist/wizard/steps/bot-token.js.map +1 -0
- package/dist/wizard/steps/cwd.d.ts +3 -0
- package/dist/wizard/steps/cwd.d.ts.map +1 -0
- package/dist/wizard/steps/cwd.js +80 -0
- package/dist/wizard/steps/cwd.js.map +1 -0
- package/dist/wizard/steps/engine.d.ts +3 -0
- package/dist/wizard/steps/engine.d.ts.map +1 -0
- package/dist/wizard/steps/engine.js +118 -0
- package/dist/wizard/steps/engine.js.map +1 -0
- package/dist/wizard/steps/index.d.ts +5 -0
- package/dist/wizard/steps/index.d.ts.map +1 -0
- package/dist/wizard/steps/index.js +15 -0
- package/dist/wizard/steps/index.js.map +1 -0
- package/dist/wizard/steps/model.d.ts +3 -0
- package/dist/wizard/steps/model.d.ts.map +1 -0
- package/dist/wizard/steps/model.js +88 -0
- package/dist/wizard/steps/model.js.map +1 -0
- package/dist/wizard/steps/project-name.d.ts +3 -0
- package/dist/wizard/steps/project-name.d.ts.map +1 -0
- package/dist/wizard/steps/project-name.js +59 -0
- package/dist/wizard/steps/project-name.js.map +1 -0
- package/dist/wizard/steps/session.d.ts +3 -0
- package/dist/wizard/steps/session.d.ts.map +1 -0
- package/dist/wizard/steps/session.js +81 -0
- package/dist/wizard/steps/session.js.map +1 -0
- package/dist/wizard/steps/user-id.d.ts +3 -0
- package/dist/wizard/steps/user-id.d.ts.map +1 -0
- package/dist/wizard/steps/user-id.js +155 -0
- package/dist/wizard/steps/user-id.js.map +1 -0
- package/dist/wizard/types.d.ts +108 -0
- package/dist/wizard/types.d.ts.map +1 -0
- package/dist/wizard/types.js +2 -0
- package/dist/wizard/types.js.map +1 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ A Telegram bot that provides access to AI coding agents as a personal assistant.
|
|
|
12
12
|
- Send images and documents for analysis
|
|
13
13
|
- **Voice message support** with local Whisper transcription
|
|
14
14
|
- **File sending** — the engine can send files back to you
|
|
15
|
-
- **Multi-engine support** — use Claude Code, GitHub Copilot, Codex, OpenCode, or Antigravity per project
|
|
15
|
+
- **Multi-engine support** — use [Claude Code](docs/engines/claude/README.md), [GitHub Copilot](docs/engines/copilot/README.md), [Codex](docs/engines/codex/README.md), [OpenCode](docs/engines/opencode/README.md), [Cursor](docs/engines/cursor/README.md), or [Antigravity](docs/engines/antigravity/README.md) per project
|
|
16
16
|
- **Multi-project support** — run multiple bots from a single config, each connected to a different independent directory
|
|
17
17
|
- **Context injection** — every message includes system metadata (timestamps, user info, custom values) and supports custom injections via config and per-project hooks (`.mjs`) with hot-reload
|
|
18
18
|
- **Custom slash commands** — add `.mjs` command files per-project or globally; hot-reloaded so the engine can create new commands at runtime
|
|
@@ -68,22 +68,26 @@ Read more in the [engine docs](docs/engines/README.md).
|
|
|
68
68
|
|
|
69
69
|
## Quick Start
|
|
70
70
|
|
|
71
|
+
The easiest way to get going is the **interactive setup wizard**. It creates or completes your config and can start the bot when done.
|
|
72
|
+
|
|
71
73
|
```bash
|
|
72
|
-
#
|
|
73
|
-
npx @marcopeg/hal
|
|
74
|
+
# Run the wizard (recommended): it will ask for project dir, bot token, user ID, engine, etc.
|
|
75
|
+
npx @marcopeg/hal wiz
|
|
74
76
|
|
|
75
|
-
# Or
|
|
76
|
-
npx @marcopeg/hal
|
|
77
|
+
# Or just run HAL: if no config exists (or it’s incomplete), HAL will suggest running the wizard
|
|
78
|
+
npx @marcopeg/hal
|
|
79
|
+
npx @marcopeg/hal --config-dir ./workspace
|
|
80
|
+
```
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
npx @marcopeg/hal init --engine copilot
|
|
80
|
-
npx @marcopeg/hal init --cwd ./workspace --engine copilot
|
|
82
|
+
You can pre-fill some values so the wizard only asks for the rest (see [Setup wizard](docs/setup-wizard/README.md)):
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
npx @marcopeg/hal
|
|
84
|
-
npx @marcopeg/hal --
|
|
84
|
+
```bash
|
|
85
|
+
npx @marcopeg/hal wiz --engine cursor
|
|
86
|
+
npx @marcopeg/hal wiz --engine codex --model gpt-5.2-codex
|
|
85
87
|
```
|
|
86
88
|
|
|
89
|
+
**Legacy:** `npx @marcopeg/hal init` still creates a config from a template (non-interactive) but is deprecated in favour of `wiz`.
|
|
90
|
+
|
|
87
91
|
## Telegram
|
|
88
92
|
|
|
89
93
|
Before running HAL you need a Telegram bot token and your own Telegram user ID. Both are required to set up your first project.
|
|
@@ -93,8 +97,9 @@ Before running HAL you need a Telegram bot token and your own Telegram user ID.
|
|
|
93
97
|
|
|
94
98
|
## Configuration
|
|
95
99
|
|
|
96
|
-
HAL is configured via a config file in the directory where you run the CLI. **
|
|
100
|
+
HAL is configured via a config file in the directory where you run the CLI. Use the **[Setup wizard](docs/setup-wizard/README.md)** to create or complete your config interactively; you can run it directly with `wiz`, and HAL will suggest it if you run `start` with no or incomplete config. **YAML** is the recommended format; JSON and JSONC are also supported. See [Configuration](docs/config/README.md) and [Configuration alternatives](docs/config/README.md#configuration-alternatives) for details. Full reference:
|
|
97
101
|
|
|
102
|
+
- **[Setup wizard](docs/setup-wizard/README.md)** — interactive config creation and completion, start-time suggestion, pre-fill flags
|
|
98
103
|
- **[Configuration](docs/config/README.md)** — config files, [reference.yaml](docs/config/reference.yaml) (all keys), [examples/hal.config.yaml](examples/hal.config.yaml), env vars, `globals`, `projects` (map), dataDir, log files
|
|
99
104
|
- **[Context](docs/config/context/README.md)** — context injection (implicit keys, custom context, hooks)
|
|
100
105
|
- **[Commands](docs/config/commands/README.md)** — built-in command config (`/start`, `/help`, `/reset`, `/clean`, `/model`, `/engine`, `/git`)
|
|
@@ -175,39 +180,9 @@ The engine can send files back through Telegram. Each user has a `downloads/` fo
|
|
|
175
180
|
3. The file is sent via Telegram (as a document)
|
|
176
181
|
4. The file is deleted from the server after delivery
|
|
177
182
|
|
|
178
|
-
##
|
|
179
|
-
|
|
180
|
-
Releases use [release-it](https://github.com/release-it/release-it) with [conventional commits](https://www.conventionalcommits.org/). The flow is split so version/changelog/tag stay local until you run the push step; `npm publish` runs in your terminal so the browser/OTP flow works with 2FA.
|
|
181
|
-
|
|
182
|
-
**Package manager:** This repo uses **pnpm** (see `packageManager` in `package.json`). You can use **npm** instead; Node 18+ and `npm login` are the only requirements.
|
|
183
|
-
|
|
184
|
-
### Scripts
|
|
185
|
-
|
|
186
|
-
| Script | What it does |
|
|
187
|
-
|--------|----------------|
|
|
188
|
-
| **release:patch** | Lint → build (fails if either fails) → bump patch → update `CHANGELOG.md` → commit → tag. Does **not** push or publish. |
|
|
189
|
-
| **release:minor** | Same as above with minor bump. |
|
|
190
|
-
| **release:major** | Same as above with major bump. |
|
|
191
|
-
| **release:push** | Pushes the release commit and tag to the remote, then runs `npm publish --access public` (browser/OTP in your terminal). |
|
|
192
|
-
| **release** | Interactive: release-it prompts for version bump and options. Use when you want to choose patch/minor/major at runtime. |
|
|
193
|
-
| **deploy** | Alias for `release:patch`. |
|
|
194
|
-
|
|
195
|
-
**prepare** runs when you (or CI) run `npm install` / `pnpm install`; here it sets up **husky** (git hooks). It is not part of the release flow.
|
|
196
|
-
|
|
197
|
-
**prepublishOnly** runs automatically when you run the **publish** script (or `npm publish`). It runs `npm run build` so the package is built right before publish. You don’t run it yourself; it runs as part of `release:push` → `publish`.
|
|
198
|
-
|
|
199
|
-
### Flow
|
|
200
|
-
|
|
201
|
-
1. **Clean tree** — Commit or stash all changes. release-it will refuse to run if the working directory is dirty.
|
|
202
|
-
2. **Auth** — Run `npm login` if you are not already logged in.
|
|
203
|
-
3. **Version + changelog (local only)** — Run one of:
|
|
204
|
-
- `pnpm run release:patch`
|
|
205
|
-
- `pnpm run release:minor`
|
|
206
|
-
- `pnpm run release:major`
|
|
207
|
-
Each runs lint and build first; if either fails, the script stops. Then it bumps the version, updates `CHANGELOG.md`, commits, and creates the tag. Nothing is pushed.
|
|
208
|
-
4. **Push and publish** — When you’re ready: `pnpm run release:push`. This pushes the commit and tag, then runs `npm publish --access public` so you get the normal npm 2FA prompt in your terminal.
|
|
183
|
+
## Development
|
|
209
184
|
|
|
210
|
-
|
|
185
|
+
For local setup, running the bot, and releasing: **[Development](docs/development/README.md)** — requirements, quick start (`pnpm install`, `pnpm start`), examples folder and `.env`, release scripts, and npm token setup for publish.
|
|
211
186
|
|
|
212
187
|
## Security Notice
|
|
213
188
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,4EAA4E;AAC5E,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAInD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,4EAA4E;AAC5E,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAInD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAqBD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAwC,GAClD;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAWrD;AAiOD,eAAO,MAAM,gBAAgB,EAAE,YAAY,EA2C1C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAAY,EAyBtC,CAAC;AAcF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAoDzB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EAAE,GACvB,YAAY,EAAE,CAEhB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkC9B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAcf"}
|
|
@@ -219,6 +219,12 @@ export const BUILTIN_COMMANDS = [
|
|
|
219
219
|
filePath: "",
|
|
220
220
|
source: "builtin",
|
|
221
221
|
},
|
|
222
|
+
{
|
|
223
|
+
command: "npm",
|
|
224
|
+
description: "Run an npm script",
|
|
225
|
+
filePath: "",
|
|
226
|
+
source: "builtin",
|
|
227
|
+
},
|
|
222
228
|
];
|
|
223
229
|
export const GIT_COMMANDS = [
|
|
224
230
|
{
|
|
@@ -253,6 +259,7 @@ const BUILTIN_ENABLED_MAP = {
|
|
|
253
259
|
clean: "clean",
|
|
254
260
|
model: "model",
|
|
255
261
|
engine: "engine",
|
|
262
|
+
npm: "npm",
|
|
256
263
|
};
|
|
257
264
|
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
258
265
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/bot/commands/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,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;AAqFrD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -24,6 +24,7 @@ async function buildHalCommands(ctx) {
|
|
|
24
24
|
git: config.commands.git.enabled,
|
|
25
25
|
model: config.commands.model.enabled,
|
|
26
26
|
engine: config.commands.engine.enabled,
|
|
27
|
+
npm: config.commands.npm.enabled,
|
|
27
28
|
};
|
|
28
29
|
const all = await loadCommands(config.cwd, config.configDir, logger, skillsDirs, enabled);
|
|
29
30
|
const projectCommands = [];
|
|
@@ -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;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAqB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO,OAAO;SACX,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CACvE;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,GAAmB;IACjD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QACpC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;QAClC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QACpC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QACpC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;QAChC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QACpC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/bot/commands/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface NpmResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number | null;
|
|
5
|
+
timedOut: boolean;
|
|
6
|
+
durationMs: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Run `npm run <script>` in the given cwd with a hard timeout.
|
|
10
|
+
*
|
|
11
|
+
* On timeout the process is terminated with a graceful escalation:
|
|
12
|
+
* SIGINT → 3 s → SIGTERM → 2 s → SIGKILL.
|
|
13
|
+
*/
|
|
14
|
+
export declare function npmExec(cwd: string, script: string, timeoutMs: number): Promise<NpmResult>;
|
|
15
|
+
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../../src/bot/commands/npm/exec.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC,CAiEpB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
/**
|
|
3
|
+
* Run `npm run <script>` in the given cwd with a hard timeout.
|
|
4
|
+
*
|
|
5
|
+
* On timeout the process is terminated with a graceful escalation:
|
|
6
|
+
* SIGINT → 3 s → SIGTERM → 2 s → SIGKILL.
|
|
7
|
+
*/
|
|
8
|
+
export function npmExec(cwd, script, timeoutMs) {
|
|
9
|
+
return new Promise((resolve) => {
|
|
10
|
+
const start = Date.now();
|
|
11
|
+
let timedOut = false;
|
|
12
|
+
let stdoutBuf = "";
|
|
13
|
+
let stderrBuf = "";
|
|
14
|
+
const child = spawn("npm", ["run", script], {
|
|
15
|
+
cwd,
|
|
16
|
+
stdio: "pipe",
|
|
17
|
+
env: { ...process.env, FORCE_COLOR: "0" },
|
|
18
|
+
});
|
|
19
|
+
child.stdout.on("data", (chunk) => {
|
|
20
|
+
stdoutBuf += chunk.toString();
|
|
21
|
+
});
|
|
22
|
+
child.stderr.on("data", (chunk) => {
|
|
23
|
+
stderrBuf += chunk.toString();
|
|
24
|
+
});
|
|
25
|
+
let killTimer;
|
|
26
|
+
const timeoutTimer = setTimeout(() => {
|
|
27
|
+
timedOut = true;
|
|
28
|
+
child.kill("SIGINT");
|
|
29
|
+
killTimer = setTimeout(() => {
|
|
30
|
+
if (!child.killed) {
|
|
31
|
+
child.kill("SIGTERM");
|
|
32
|
+
killTimer = setTimeout(() => {
|
|
33
|
+
if (!child.killed) {
|
|
34
|
+
child.kill("SIGKILL");
|
|
35
|
+
}
|
|
36
|
+
}, 2_000);
|
|
37
|
+
}
|
|
38
|
+
}, 3_000);
|
|
39
|
+
}, timeoutMs);
|
|
40
|
+
child.on("close", (code) => {
|
|
41
|
+
clearTimeout(timeoutTimer);
|
|
42
|
+
if (killTimer)
|
|
43
|
+
clearTimeout(killTimer);
|
|
44
|
+
resolve({
|
|
45
|
+
stdout: stdoutBuf,
|
|
46
|
+
stderr: stderrBuf,
|
|
47
|
+
exitCode: code,
|
|
48
|
+
timedOut,
|
|
49
|
+
durationMs: Date.now() - start,
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
child.on("error", (err) => {
|
|
53
|
+
clearTimeout(timeoutTimer);
|
|
54
|
+
if (killTimer)
|
|
55
|
+
clearTimeout(killTimer);
|
|
56
|
+
resolve({
|
|
57
|
+
stdout: stdoutBuf,
|
|
58
|
+
stderr: `${stderrBuf}\n${err.message}`,
|
|
59
|
+
exitCode: null,
|
|
60
|
+
timedOut: false,
|
|
61
|
+
durationMs: Date.now() - start,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/bot/commands/npm/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,MAAc,EACd,SAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YAC1C,GAAG;YACH,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;SAC1C,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,SAAoD,CAAC;QAEzD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;4BAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxB,CAAC;oBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,CAAC;gBACN,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,IAAI;gBACd,QAAQ;gBACR,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,CAAC;gBACN,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,GAAG,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE;gBACtC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NpmResult } from "./exec.js";
|
|
2
|
+
/**
|
|
3
|
+
* Build a human-readable summary of an npm script run.
|
|
4
|
+
* Logs are truncated from the tail to fit `maxChars`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatNpmResult(script: string, result: NpmResult, maxChars: number): {
|
|
7
|
+
summary: string;
|
|
8
|
+
fullLog: string;
|
|
9
|
+
truncated: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/bot/commands/npm/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA0C1D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a human-readable summary of an npm script run.
|
|
3
|
+
* Logs are truncated from the tail to fit `maxChars`.
|
|
4
|
+
*/
|
|
5
|
+
export function formatNpmResult(script, result, maxChars) {
|
|
6
|
+
const statusIcon = result.timedOut
|
|
7
|
+
? "⏱"
|
|
8
|
+
: result.exitCode === 0
|
|
9
|
+
? "✅"
|
|
10
|
+
: "❌";
|
|
11
|
+
const statusLabel = result.timedOut
|
|
12
|
+
? "timed out"
|
|
13
|
+
: result.exitCode === 0
|
|
14
|
+
? "success"
|
|
15
|
+
: "failed";
|
|
16
|
+
const exitStr = result.exitCode !== null ? `exit ${result.exitCode}` : "no exit code";
|
|
17
|
+
const durationStr = (result.durationMs / 1000).toFixed(1);
|
|
18
|
+
const fullLog = [result.stdout, result.stderr].filter(Boolean).join("\n");
|
|
19
|
+
const header = `📦 npm run ${script}\nStatus: ${statusIcon} ${statusLabel} (${exitStr})\nDuration: ${durationStr}s`;
|
|
20
|
+
const budgetForLogs = maxChars - header.length - 20;
|
|
21
|
+
let logBlock;
|
|
22
|
+
let truncated = false;
|
|
23
|
+
if (fullLog.length === 0) {
|
|
24
|
+
logBlock = "(no output)";
|
|
25
|
+
}
|
|
26
|
+
else if (fullLog.length <= budgetForLogs) {
|
|
27
|
+
logBlock = `\`\`\`\n${fullLog}\n\`\`\``;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
truncated = true;
|
|
31
|
+
const tail = fullLog.slice(-budgetForLogs);
|
|
32
|
+
logBlock = `\`\`\`\n…(truncated)\n${tail}\n\`\`\``;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
summary: `${header}\n\n${logBlock}`,
|
|
36
|
+
fullLog,
|
|
37
|
+
truncated,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/bot/commands/npm/format.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,MAAiB,EACjB,QAAgB;IAEhB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ;QAChC,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG,CAAC;IAEV,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ;QACjC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC;YACrB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC;IAEf,MAAM,OAAO,GACX,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAExE,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,cAAc,MAAM,aAAa,UAAU,IAAI,WAAW,KAAK,OAAO,gBAAgB,WAAW,GAAG,CAAC;IAEpH,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IAEpD,IAAI,QAAgB,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QAC3C,QAAQ,GAAG,WAAW,OAAO,UAAU,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3C,QAAQ,GAAG,yBAAyB,IAAI,UAAU,CAAC;IACrD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,MAAM,OAAO,QAAQ,EAAE;QACnC,OAAO;QACP,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Context, NextFunction } from "grammy";
|
|
2
|
+
import type { ProjectContext } from "../../../types.js";
|
|
3
|
+
export declare function createNpmHandler(ctx: ProjectContext): (gramCtx: Context) => Promise<void>;
|
|
4
|
+
export declare function createNpmCallbackHandler(ctx: ProjectContext): (gramCtx: Context, next: NextFunction) => Promise<void>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bot/commands/npm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiIxD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,IACpC,SAAS,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CA8B/C;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,IAC5C,SAAS,OAAO,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAoBnE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { InlineKeyboard, InputFile } from "grammy";
|
|
2
|
+
import { npmExec } from "./exec.js";
|
|
3
|
+
import { formatNpmResult } from "./format.js";
|
|
4
|
+
import { NpmScriptError, readPackageScripts, resolveAllowedScripts, } from "./scripts.js";
|
|
5
|
+
// Per-project concurrency lock: only one npm run at a time per slug.
|
|
6
|
+
const activeRuns = new Map();
|
|
7
|
+
function getAllowedScripts(ctx) {
|
|
8
|
+
const { config } = ctx;
|
|
9
|
+
const scripts = readPackageScripts(config.cwd);
|
|
10
|
+
const available = Object.keys(scripts);
|
|
11
|
+
return resolveAllowedScripts(available, config.commands.npm.whitelist, config.commands.npm.blacklist);
|
|
12
|
+
}
|
|
13
|
+
function buildScriptKeyboard(allowed) {
|
|
14
|
+
const kb = new InlineKeyboard();
|
|
15
|
+
for (let i = 0; i < allowed.length; i++) {
|
|
16
|
+
kb.text(allowed[i], `npm:${allowed[i]}`);
|
|
17
|
+
if ((i + 1) % 3 === 0)
|
|
18
|
+
kb.row();
|
|
19
|
+
}
|
|
20
|
+
return kb;
|
|
21
|
+
}
|
|
22
|
+
async function runScript(ctx, gramCtx, script) {
|
|
23
|
+
const { config, logger } = ctx;
|
|
24
|
+
const slug = config.slug;
|
|
25
|
+
if (activeRuns.get(slug)) {
|
|
26
|
+
await gramCtx.reply("An npm command is already running for this project. Please wait for it to finish.");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
let allowed;
|
|
30
|
+
try {
|
|
31
|
+
allowed = getAllowedScripts(ctx);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
if (err instanceof NpmScriptError) {
|
|
35
|
+
await gramCtx.reply(err.message);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
if (allowed.length === 0) {
|
|
41
|
+
await gramCtx.reply("No scripts are available after applying whitelist/blacklist filters.");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!allowed.includes(script)) {
|
|
45
|
+
await gramCtx.reply(`Script "${script}" is not allowed.\n\nAvailable scripts: ${allowed.join(", ")}`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
activeRuns.set(slug, true);
|
|
49
|
+
const statusMsg = await gramCtx.reply(`⏳ Running \`npm run ${script}\`…`, {
|
|
50
|
+
parse_mode: "Markdown",
|
|
51
|
+
});
|
|
52
|
+
try {
|
|
53
|
+
const result = await npmExec(config.cwd, script, config.commands.npm.timeoutMs);
|
|
54
|
+
const { summary, fullLog, truncated } = formatNpmResult(script, result, config.commands.npm.maxOutputChars);
|
|
55
|
+
try {
|
|
56
|
+
await gramCtx.api.editMessageText(statusMsg.chat.id, statusMsg.message_id, summary, { parse_mode: "Markdown" });
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
await gramCtx.reply(summary, { parse_mode: "Markdown" });
|
|
60
|
+
}
|
|
61
|
+
if (truncated && config.commands.npm.sendAsFileWhenLarge) {
|
|
62
|
+
const buf = Buffer.from(fullLog, "utf-8");
|
|
63
|
+
await gramCtx.replyWithDocument(new InputFile(buf, `npm-run-${script}.log`));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
logger.error({ error: err instanceof Error ? err.message : String(err), script }, "/npm execution failed");
|
|
68
|
+
try {
|
|
69
|
+
await gramCtx.api.editMessageText(statusMsg.chat.id, statusMsg.message_id, `Failed to run \`npm run ${script}\`: ${err instanceof Error ? err.message : String(err)}`, { parse_mode: "Markdown" });
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
await gramCtx.reply(`Failed to run \`npm run ${script}\`: ${err instanceof Error ? err.message : String(err)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
activeRuns.delete(slug);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export function createNpmHandler(ctx) {
|
|
80
|
+
return async (gramCtx) => {
|
|
81
|
+
const messageText = gramCtx.message?.text ?? "";
|
|
82
|
+
const script = messageText.replace(/^\/npm(@\w+)?\s*/, "").trim();
|
|
83
|
+
let allowed;
|
|
84
|
+
try {
|
|
85
|
+
allowed = getAllowedScripts(ctx);
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
if (err instanceof NpmScriptError) {
|
|
89
|
+
await gramCtx.reply(err.message);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
if (allowed.length === 0) {
|
|
95
|
+
await gramCtx.reply("No scripts are available after applying whitelist/blacklist filters.");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (!script) {
|
|
99
|
+
const kb = buildScriptKeyboard(allowed);
|
|
100
|
+
await gramCtx.reply("Choose a script to run:", { reply_markup: kb });
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await runScript(ctx, gramCtx, script);
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function createNpmCallbackHandler(ctx) {
|
|
107
|
+
return async (gramCtx, next) => {
|
|
108
|
+
const data = gramCtx.callbackQuery?.data;
|
|
109
|
+
if (!data?.startsWith("npm:")) {
|
|
110
|
+
return next();
|
|
111
|
+
}
|
|
112
|
+
const script = data.slice(4);
|
|
113
|
+
await gramCtx.answerCallbackQuery();
|
|
114
|
+
try {
|
|
115
|
+
await gramCtx.editMessageText(`Running \`npm run ${script}\`…`, {
|
|
116
|
+
parse_mode: "Markdown",
|
|
117
|
+
reply_markup: undefined,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// keyboard may already be gone
|
|
122
|
+
}
|
|
123
|
+
await runScript(ctx, gramCtx, script);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bot/commands/npm/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class NpmScriptError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Read the `scripts` map from `<cwd>/package.json`.
|
|
6
|
+
* Throws NpmScriptError when the file is missing, unreadable, or has no scripts.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readPackageScripts(cwd: string): Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the effective list of allowed scripts from available scripts,
|
|
11
|
+
* an optional whitelist, and an optional blacklist.
|
|
12
|
+
*
|
|
13
|
+
* - whitelist present → allowed = available ∩ whitelist
|
|
14
|
+
* - else → allowed = available
|
|
15
|
+
* - blacklist present → allowed = allowed \ blacklist
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveAllowedScripts(available: string[], whitelist?: string[], blacklist?: string[]): string[];
|
|
18
|
+
//# sourceMappingURL=scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../../src/bot/commands/npm/scripts.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4CtE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAgBV"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export class NpmScriptError extends Error {
|
|
4
|
+
constructor(message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "NpmScriptError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Read the `scripts` map from `<cwd>/package.json`.
|
|
11
|
+
* Throws NpmScriptError when the file is missing, unreadable, or has no scripts.
|
|
12
|
+
*/
|
|
13
|
+
export function readPackageScripts(cwd) {
|
|
14
|
+
const pkgPath = join(cwd, "package.json");
|
|
15
|
+
if (!existsSync(pkgPath)) {
|
|
16
|
+
throw new NpmScriptError(`No package.json found in ${cwd}. Cannot run npm scripts.`);
|
|
17
|
+
}
|
|
18
|
+
let raw;
|
|
19
|
+
try {
|
|
20
|
+
raw = readFileSync(pkgPath, "utf-8");
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
throw new NpmScriptError(`Cannot read package.json: ${err instanceof Error ? err.message : String(err)}`);
|
|
24
|
+
}
|
|
25
|
+
let pkg;
|
|
26
|
+
try {
|
|
27
|
+
pkg = JSON.parse(raw);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
throw new NpmScriptError(`Invalid JSON in package.json: ${err instanceof Error ? err.message : String(err)}`);
|
|
31
|
+
}
|
|
32
|
+
const scripts = pkg !== null && typeof pkg === "object" && "scripts" in pkg
|
|
33
|
+
? pkg.scripts
|
|
34
|
+
: undefined;
|
|
35
|
+
if (scripts === undefined ||
|
|
36
|
+
scripts === null ||
|
|
37
|
+
typeof scripts !== "object" ||
|
|
38
|
+
Object.keys(scripts).length === 0) {
|
|
39
|
+
throw new NpmScriptError("package.json has no scripts defined. Nothing to run.");
|
|
40
|
+
}
|
|
41
|
+
return scripts;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the effective list of allowed scripts from available scripts,
|
|
45
|
+
* an optional whitelist, and an optional blacklist.
|
|
46
|
+
*
|
|
47
|
+
* - whitelist present → allowed = available ∩ whitelist
|
|
48
|
+
* - else → allowed = available
|
|
49
|
+
* - blacklist present → allowed = allowed \ blacklist
|
|
50
|
+
*/
|
|
51
|
+
export function resolveAllowedScripts(available, whitelist, blacklist) {
|
|
52
|
+
let allowed;
|
|
53
|
+
if (whitelist && whitelist.length > 0) {
|
|
54
|
+
const whiteSet = new Set(whitelist);
|
|
55
|
+
allowed = available.filter((s) => whiteSet.has(s));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
allowed = [...available];
|
|
59
|
+
}
|
|
60
|
+
if (blacklist && blacklist.length > 0) {
|
|
61
|
+
const blackSet = new Set(blacklist);
|
|
62
|
+
allowed = allowed.filter((s) => !blackSet.has(s));
|
|
63
|
+
}
|
|
64
|
+
return allowed;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../src/bot/commands/npm/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CACtB,4BAA4B,GAAG,2BAA2B,CAC3D,CAAC;IACJ,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,cAAc,CACtB,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,cAAc,CACtB,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG;QACzD,CAAC,CAAE,GAA4B,CAAC,OAAO;QACvC,CAAC,CAAC,SAAS,CAAC;IAEhB,IACE,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,IAAI;QAChB,OAAO,OAAO,KAAK,QAAQ;QAC3B,MAAM,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,EAC3C,CAAC;QACD,MAAM,IAAI,cAAc,CACtB,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,OAAO,OAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAmB,EACnB,SAAoB,EACpB,SAAoB;IAEpB,IAAI,OAAiB,CAAC;IAEtB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA2L7E"}
|