@kodus/cli 0.4.3 → 0.4.5
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 +110 -7
- package/dist/agents/agent.interface.d.ts.map +1 -1
- package/dist/agents/claude-code.agent.d.ts.map +1 -1
- package/dist/agents/claude-code.agent.js +12 -4
- package/dist/agents/claude-code.agent.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +84 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/hook/index.js +4 -2
- package/dist/commands/hook/index.js.map +1 -1
- package/dist/commands/hook/install.d.ts +3 -1
- package/dist/commands/hook/install.d.ts.map +1 -1
- package/dist/commands/hook/install.js +76 -37
- package/dist/commands/hook/install.js.map +1 -1
- package/dist/commands/hook/uninstall.d.ts +4 -1
- package/dist/commands/hook/uninstall.d.ts.map +1 -1
- package/dist/commands/hook/uninstall.js +54 -19
- package/dist/commands/hook/uninstall.js.map +1 -1
- package/dist/commands/memory/capture.d.ts.map +1 -1
- package/dist/commands/memory/capture.js +3 -36
- package/dist/commands/memory/capture.js.map +1 -1
- package/dist/commands/memory/disable.d.ts +4 -1
- package/dist/commands/memory/disable.d.ts.map +1 -1
- package/dist/commands/memory/disable.js +53 -15
- package/dist/commands/memory/disable.js.map +1 -1
- package/dist/commands/memory/hooks.d.ts +2 -1
- package/dist/commands/memory/hooks.d.ts.map +1 -1
- package/dist/commands/memory/hooks.js +13 -5
- package/dist/commands/memory/hooks.js.map +1 -1
- package/dist/commands/memory/index.d.ts.map +1 -1
- package/dist/commands/memory/index.js +13 -3
- package/dist/commands/memory/index.js.map +1 -1
- package/dist/commands/memory/session-hooks/claude-code.js.map +1 -1
- package/dist/commands/memory/session-hooks/cursor.js.map +1 -1
- package/dist/commands/memory/session-hooks/index.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks/index.js +1 -2
- package/dist/commands/memory/session-hooks/index.js.map +1 -1
- package/dist/commands/memory/session-hooks/shared.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks/shared.js +7 -31
- package/dist/commands/memory/session-hooks/shared.js.map +1 -1
- package/dist/commands/memory/session-hooks-install.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks-install.js +60 -27
- package/dist/commands/memory/session-hooks-install.js.map +1 -1
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +71 -20
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +76 -24
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/schema.d.ts +3 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +62 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +85 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +3 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +17 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/services/api/api.interface.d.ts +7 -4
- package/dist/services/api/api.interface.d.ts.map +1 -1
- package/dist/services/api/api.real.d.ts +2 -1
- package/dist/services/api/api.real.d.ts.map +1 -1
- package/dist/services/api/api.real.js +36 -10
- package/dist/services/api/api.real.js.map +1 -1
- package/dist/services/api/sessions.api.d.ts.map +1 -1
- package/dist/services/api/sessions.api.js +12 -6
- package/dist/services/api/sessions.api.js.map +1 -1
- package/dist/services/git-hooks.service.d.ts.map +1 -1
- package/dist/services/git-hooks.service.js +14 -6
- package/dist/services/git-hooks.service.js.map +1 -1
- package/dist/services/git.service.d.ts.map +1 -1
- package/dist/services/git.service.js +6 -2
- package/dist/services/git.service.js.map +1 -1
- package/dist/services/hook-logger.service.d.ts.map +1 -1
- package/dist/services/hook-logger.service.js +2 -1
- package/dist/services/hook-logger.service.js.map +1 -1
- package/dist/services/lifecycle.service.d.ts.map +1 -1
- package/dist/services/lifecycle.service.js +28 -14
- package/dist/services/lifecycle.service.js.map +1 -1
- package/dist/services/repo-config.service.d.ts +22 -0
- package/dist/services/repo-config.service.d.ts.map +1 -0
- package/dist/services/repo-config.service.js +87 -0
- package/dist/services/repo-config.service.js.map +1 -0
- package/dist/services/review.service.d.ts +0 -3
- package/dist/services/review.service.d.ts.map +1 -1
- package/dist/services/review.service.js.map +1 -1
- package/dist/services/session-local.service.d.ts.map +1 -1
- package/dist/services/session-local.service.js.map +1 -1
- package/dist/services/transcript.service.d.ts.map +1 -1
- package/dist/services/transcript.service.js +44 -13
- package/dist/services/transcript.service.js.map +1 -1
- package/dist/types/command-output.d.ts +29 -0
- package/dist/types/command-output.d.ts.map +1 -0
- package/dist/types/command-output.js +2 -0
- package/dist/types/command-output.js.map +1 -0
- package/dist/types/index.d.ts +18 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/session-events.d.ts +1 -0
- package/dist/types/session-events.d.ts.map +1 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +5 -1
- package/dist/types/session.js.map +1 -1
- package/dist/utils/banner.d.ts.map +1 -1
- package/dist/utils/banner.js +2 -0
- package/dist/utils/banner.js.map +1 -1
- package/dist/utils/command-context.d.ts +12 -0
- package/dist/utils/command-context.d.ts.map +1 -0
- package/dist/utils/command-context.js +15 -0
- package/dist/utils/command-context.js.map +1 -0
- package/dist/utils/command-errors.d.ts +12 -0
- package/dist/utils/command-errors.d.ts.map +1 -0
- package/dist/utils/command-errors.js +88 -0
- package/dist/utils/command-errors.js.map +1 -0
- package/dist/utils/command-output.d.ts +5 -0
- package/dist/utils/command-output.d.ts.map +1 -0
- package/dist/utils/command-output.js +46 -0
- package/dist/utils/command-output.js.map +1 -0
- package/dist/utils/command-schema.d.ts +29 -0
- package/dist/utils/command-schema.d.ts.map +1 -0
- package/dist/utils/command-schema.js +74 -0
- package/dist/utils/command-schema.js.map +1 -0
- package/dist/utils/field-mask.d.ts +2 -0
- package/dist/utils/field-mask.d.ts.map +1 -0
- package/dist/utils/field-mask.js +93 -0
- package/dist/utils/field-mask.js.map +1 -0
- package/dist/utils/input-validation.d.ts +11 -0
- package/dist/utils/input-validation.d.ts.map +1 -0
- package/dist/utils/input-validation.js +73 -0
- package/dist/utils/input-validation.js.map +1 -0
- package/dist/utils/install-instructions.d.ts +6 -0
- package/dist/utils/install-instructions.d.ts.map +1 -0
- package/dist/utils/install-instructions.js +18 -0
- package/dist/utils/install-instructions.js.map +1 -0
- package/dist/utils/skills-sync.d.ts +39 -0
- package/dist/utils/skills-sync.d.ts.map +1 -0
- package/dist/utils/skills-sync.js +396 -0
- package/dist/utils/skills-sync.js.map +1 -0
- package/dist/utils/skills.d.ts +7 -0
- package/dist/utils/skills.d.ts.map +1 -1
- package/dist/utils/skills.js +61 -22
- package/dist/utils/skills.js.map +1 -1
- package/dist/utils/stream-input.d.ts +13 -0
- package/dist/utils/stream-input.d.ts.map +1 -0
- package/dist/utils/stream-input.js +36 -0
- package/dist/utils/stream-input.js.map +1 -0
- package/package.json +11 -9
- package/skills/README.md +12 -5
- package/skills/kodus-business-rules-validation/SKILL.md +65 -0
- package/skills/kodus-pr-suggestions-resolver/SKILL.md +6 -6
- package/skills/kodus-review/SKILL.md +20 -7
- package/skills/kodus-review-dev/SKILL.md +22 -8
- package/skills/business-rules-validation/SKILL.md +0 -43
package/README.md
CHANGED
|
@@ -109,14 +109,22 @@ Stored in `.kody/pr/by-sha/<head-sha>.md` — versioned with your code, readable
|
|
|
109
109
|
|
|
110
110
|
Kodus is designed to work **inside AI coding agents**. While you can use it standalone, the real power comes when your agent runs reviews automatically and fixes issues in a loop — no manual intervention needed.
|
|
111
111
|
|
|
112
|
-
**Works with:** Claude Code, Cursor, Windsurf, GitHub Copilot, Gemini CLI, and
|
|
112
|
+
**Works with:** Claude Code, Cursor, Windsurf, GitHub Copilot, Gemini CLI, and 20+ more environments.
|
|
113
113
|
|
|
114
114
|
### Install the Skill (recommended)
|
|
115
115
|
|
|
116
116
|
The fastest way to get started. Auto-detects your installed IDEs and sets everything up:
|
|
117
117
|
|
|
118
|
+
macOS/Linux:
|
|
119
|
+
|
|
118
120
|
```bash
|
|
119
|
-
curl -fsSL https://
|
|
121
|
+
curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bash
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Windows PowerShell:
|
|
125
|
+
|
|
126
|
+
```powershell
|
|
127
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "$tmp = Join-Path $env:TEMP 'kodus-install.ps1'; Invoke-WebRequest https://raw.githubusercontent.com/kodustech/cli/main/install.ps1 -OutFile $tmp; & $tmp"
|
|
120
128
|
```
|
|
121
129
|
|
|
122
130
|
This installs the Kodus CLI globally and deploys the review skill into every supported agent on your machine — Claude Code, Cursor, Windsurf, and others. One command, all environments.
|
|
@@ -187,30 +195,63 @@ The copied prompt includes file path, line numbers, severity, and detailed sugge
|
|
|
187
195
|
|
|
188
196
|
### Skill installer (recommended — CLI + all your agents)
|
|
189
197
|
|
|
198
|
+
macOS/Linux:
|
|
199
|
+
|
|
190
200
|
```bash
|
|
191
|
-
curl -fsSL https://
|
|
201
|
+
curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bash
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Windows PowerShell:
|
|
205
|
+
|
|
206
|
+
```powershell
|
|
207
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "$tmp = Join-Path $env:TEMP 'kodus-install.ps1'; Invoke-WebRequest https://raw.githubusercontent.com/kodustech/cli/main/install.ps1 -OutFile $tmp; & $tmp"
|
|
192
208
|
```
|
|
193
209
|
|
|
194
210
|
Installs the CLI and deploys the review skill to all detected agents in one step.
|
|
195
211
|
|
|
196
212
|
### Keep everything updated
|
|
197
213
|
|
|
198
|
-
`kodus update` updates the CLI package
|
|
214
|
+
`kodus update` updates the CLI package.
|
|
199
215
|
|
|
200
|
-
|
|
216
|
+
For end users, the recommended way to refresh skills and agent integrations is:
|
|
217
|
+
|
|
218
|
+
macOS/Linux:
|
|
201
219
|
|
|
202
220
|
```bash
|
|
203
|
-
curl -fsSL https://
|
|
221
|
+
curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bash
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Windows PowerShell:
|
|
225
|
+
|
|
226
|
+
```powershell
|
|
227
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "$tmp = Join-Path $env:TEMP 'kodus-install.ps1'; Invoke-WebRequest https://raw.githubusercontent.com/kodustech/cli/main/install.ps1 -OutFile $tmp; & $tmp"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Fallback via CLI for common local agent roots:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
kodus skills install # install into detected local agent roots
|
|
234
|
+
kodus skills resync # re-sync/refresh managed skills
|
|
235
|
+
kodus skills uninstall # remove managed skills from detected targets
|
|
204
236
|
```
|
|
205
237
|
|
|
206
238
|
If you want to inspect the script before execution:
|
|
207
239
|
|
|
240
|
+
macOS/Linux:
|
|
241
|
+
|
|
208
242
|
```bash
|
|
209
|
-
curl -fsSL https://
|
|
243
|
+
curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh -o /tmp/kodus-install.sh
|
|
210
244
|
less /tmp/kodus-install.sh
|
|
211
245
|
bash /tmp/kodus-install.sh
|
|
212
246
|
```
|
|
213
247
|
|
|
248
|
+
Windows PowerShell:
|
|
249
|
+
|
|
250
|
+
```powershell
|
|
251
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-WebRequest https://raw.githubusercontent.com/kodustech/cli/main/install.ps1 -OutFile install.ps1"
|
|
252
|
+
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
|
|
253
|
+
```
|
|
254
|
+
|
|
214
255
|
### CLI only
|
|
215
256
|
|
|
216
257
|
<details>
|
|
@@ -240,6 +281,15 @@ curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bas
|
|
|
240
281
|
|
|
241
282
|
</details>
|
|
242
283
|
|
|
284
|
+
<details>
|
|
285
|
+
<summary><strong>PowerShell</strong></summary>
|
|
286
|
+
|
|
287
|
+
```powershell
|
|
288
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "$tmp = Join-Path $env:TEMP 'kodus-install.ps1'; Invoke-WebRequest https://raw.githubusercontent.com/kodustech/cli/main/install.ps1 -OutFile $tmp; & $tmp"
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
</details>
|
|
292
|
+
|
|
243
293
|
<details>
|
|
244
294
|
<summary><strong>Homebrew (coming soon)</strong></summary>
|
|
245
295
|
|
|
@@ -249,6 +299,59 @@ brew install kodus/tap/kodus
|
|
|
249
299
|
|
|
250
300
|
</details>
|
|
251
301
|
|
|
302
|
+
## Agent Mode
|
|
303
|
+
|
|
304
|
+
Kodus now supports an explicit **agent mode** for deterministic automation output.
|
|
305
|
+
|
|
306
|
+
### Global flag
|
|
307
|
+
|
|
308
|
+
Use `--agent` on any command to return a stable JSON envelope:
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"ok": true,
|
|
313
|
+
"command": "review",
|
|
314
|
+
"data": {},
|
|
315
|
+
"error": null,
|
|
316
|
+
"meta": {
|
|
317
|
+
"schemaVersion": "1.0",
|
|
318
|
+
"cliVersion": "x.y.z",
|
|
319
|
+
"mode": "agent",
|
|
320
|
+
"durationMs": 123
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Command schema introspection
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
kodus schema
|
|
329
|
+
kodus schema --command "pr suggestions"
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Field selection for smaller payloads
|
|
333
|
+
|
|
334
|
+
Available on `review` and `pr suggestions`:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
kodus review --agent --fields summary,issues.file,issues.line
|
|
338
|
+
kodus pr suggestions --agent --pr-url https://github.com/org/repo/pull/42 --fields summary,issues.file
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
`--fields` requires `--agent` or `--format json`.
|
|
342
|
+
|
|
343
|
+
### Dry-run for mutable commands
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
kodus hook install --dry-run
|
|
347
|
+
kodus hook uninstall --dry-run
|
|
348
|
+
kodus decisions enable --dry-run
|
|
349
|
+
kodus decisions disable --dry-run
|
|
350
|
+
kodus decisions promote --dry-run
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Dry-run prints the planned actions and does not mutate local hooks/config/files.
|
|
354
|
+
|
|
252
355
|
## Review Modes
|
|
253
356
|
|
|
254
357
|
### Interactive (default)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.interface.d.ts","sourceRoot":"","sources":["../../src/agents/agent.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent.interface.d.ts","sourceRoot":"","sources":["../../src/agents/agent.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,SAAS,EACT,UAAU,EACV,qBAAqB,EACxB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAAC;IAE1E;;;;OAIG;IACH,cAAc,CACV,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC;;OAEG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhE;;OAEG;IACH,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjE;;;OAGG;IACH,sBAAsB,CAClB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.agent.d.ts","sourceRoot":"","sources":["../../src/agents/claude-code.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"claude-code.agent.d.ts","sourceRoot":"","sources":["../../src/agents/claude-code.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACV,qBAAqB,EAExB,MAAM,qBAAqB,CAAC;AAY7B,qBAAa,eAAgB,YAAW,YAAY;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAiB;IAE9C,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI;IAgDnE,cAAc,CAChB,cAAc,EAAE,MAAM,EACtB,UAAU,SAAI,GACf,OAAO,CAAC,qBAAqB,CAAC;IAI3B,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzD,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/D,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhE,sBAAsB,CACxB,cAAc,EAAE,MAAM,EACtB,SAAS,SAAO,GACjB,OAAO,CAAC,OAAO,CAAC;CAGtB;AAmBD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -12,18 +12,26 @@ export class ClaudeCodeAgent {
|
|
|
12
12
|
agentType = 'claude-code';
|
|
13
13
|
parseHookEvent(hookName, payload) {
|
|
14
14
|
const eventType = HOOK_TO_EVENT_TYPE[hookName];
|
|
15
|
-
if (!eventType)
|
|
15
|
+
if (!eventType) {
|
|
16
16
|
return null;
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
const obj = payload && typeof payload === 'object' && !Array.isArray(payload)
|
|
18
19
|
? payload
|
|
19
20
|
: {};
|
|
20
21
|
const sessionId = pickString(obj, ['session_id', 'sessionId']) ?? '';
|
|
21
|
-
const sessionRef = pickString(obj, [
|
|
22
|
+
const sessionRef = pickString(obj, [
|
|
23
|
+
'transcript_path',
|
|
24
|
+
'transcriptPath',
|
|
25
|
+
'session_ref',
|
|
26
|
+
]) ?? '';
|
|
22
27
|
const prompt = pickString(obj, ['prompt', 'user_message']);
|
|
23
28
|
const toolUseId = pickString(obj, ['tool_use_id', 'toolUseId']);
|
|
24
29
|
const subagentId = pickString(obj, ['subagent_id', 'subagentId']);
|
|
25
30
|
const subagentType = pickString(obj, ['subagent_type', 'subagentType']);
|
|
26
|
-
const taskDescription = pickString(obj, [
|
|
31
|
+
const taskDescription = pickString(obj, [
|
|
32
|
+
'task_description',
|
|
33
|
+
'taskDescription',
|
|
34
|
+
]);
|
|
27
35
|
let toolInput;
|
|
28
36
|
if (obj['tool_input'] !== undefined) {
|
|
29
37
|
toolInput = obj['tool_input'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.agent.js","sourceRoot":"","sources":["../../src/agents/claude-code.agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAUtE,MAAM,kBAAkB,GAA2C;
|
|
1
|
+
{"version":3,"file":"claude-code.agent.js","sourceRoot":"","sources":["../../src/agents/claude-code.agent.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA+C9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,9 @@ import { prCommand } from './commands/pr.js';
|
|
|
8
8
|
import { hookCommand } from './commands/hook/index.js';
|
|
9
9
|
import { decisionsCommand } from './commands/memory/index.js';
|
|
10
10
|
import { statusCommand } from './commands/status.js';
|
|
11
|
+
import { skillsCommand } from './commands/skills.js';
|
|
12
|
+
import { createSchemaCommand } from './commands/schema.js';
|
|
13
|
+
import { configCommand } from './commands/config.js';
|
|
11
14
|
import { checkForUpdates } from './utils/update-check.js';
|
|
12
15
|
import { setCliOutputMode } from './utils/logger.js';
|
|
13
16
|
import { recordRecentActivity } from './utils/recent-activity.js';
|
|
@@ -22,7 +25,8 @@ program
|
|
|
22
25
|
.option('-f, --format <format>', 'Output format: terminal, json, markdown', 'terminal')
|
|
23
26
|
.option('-o, --output <file>', 'Output file (for json/markdown)')
|
|
24
27
|
.option('-v, --verbose', 'Verbose output', false)
|
|
25
|
-
.option('-q, --quiet', 'Quiet mode (errors only)', false)
|
|
28
|
+
.option('-q, --quiet', 'Quiet mode (errors only)', false)
|
|
29
|
+
.option('--agent', 'Agent mode: deterministic machine-readable output');
|
|
26
30
|
program.addCommand(reviewCommand);
|
|
27
31
|
program.addCommand(authCommand);
|
|
28
32
|
program.addCommand(subscribeCommand);
|
|
@@ -31,6 +35,9 @@ program.addCommand(prCommand);
|
|
|
31
35
|
program.addCommand(hookCommand);
|
|
32
36
|
program.addCommand(decisionsCommand);
|
|
33
37
|
program.addCommand(statusCommand);
|
|
38
|
+
program.addCommand(skillsCommand);
|
|
39
|
+
program.addCommand(configCommand);
|
|
40
|
+
program.addCommand(createSchemaCommand(() => program));
|
|
34
41
|
program.hook('preAction', (_thisCommand, actionCommand) => {
|
|
35
42
|
const opts = actionCommand.optsWithGlobals();
|
|
36
43
|
setCliOutputMode({
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CACH,uBAAuB,EACvB,yCAAyC,EACzC,UAAU,CACb;KACA,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
export declare function configRepoAction(repository?: string): Promise<void>;
|
|
3
|
+
export declare function configRepoAddAction(repository?: string): Promise<void>;
|
|
4
|
+
export declare function configRemoteAction(repository?: string): Promise<void>;
|
|
5
|
+
export declare function configRemoteAddAction(repository?: string): Promise<void>;
|
|
6
|
+
export declare function configRepoListAction(): Promise<void>;
|
|
7
|
+
export declare const configCommand: Command;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAsB,gBAAgB,CAAC,UAAU,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtE;AAED,wBAAsB,mBAAmB,CAAC,UAAU,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAED,wBAAsB,kBAAkB,CAAC,UAAU,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE;AAED,wBAAsB,qBAAqB,CAAC,UAAU,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB1D;AAED,eAAO,MAAM,aAAa,SAEzB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { repoConfigService } from '../services/repo-config.service.js';
|
|
4
|
+
import { exitWithCode } from '../utils/cli-exit.js';
|
|
5
|
+
import { cliError, cliInfo } from '../utils/logger.js';
|
|
6
|
+
import { normalizeCommandError } from '../utils/command-errors.js';
|
|
7
|
+
export async function configRepoAction(repository = '.') {
|
|
8
|
+
try {
|
|
9
|
+
const result = await repoConfigService.addRepository(repository);
|
|
10
|
+
if (result.status === 'already-added') {
|
|
11
|
+
cliInfo(chalk.yellow(`Repository '${result.repositoryFullName}' is already added to Kodus.`));
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
cliInfo(chalk.green(`Repository '${result.repositoryFullName}' was added to Kodus successfully.`));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
const normalized = normalizeCommandError(error);
|
|
18
|
+
cliError(chalk.red(normalized.message));
|
|
19
|
+
exitWithCode(normalized.exitCode);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function configRepoAddAction(repository = '.') {
|
|
23
|
+
await configRepoAction(repository);
|
|
24
|
+
}
|
|
25
|
+
export async function configRemoteAction(repository = '.') {
|
|
26
|
+
await configRepoAction(repository);
|
|
27
|
+
}
|
|
28
|
+
export async function configRemoteAddAction(repository = '.') {
|
|
29
|
+
await configRepoAction(repository);
|
|
30
|
+
}
|
|
31
|
+
export async function configRepoListAction() {
|
|
32
|
+
try {
|
|
33
|
+
const repositories = await repoConfigService.listRepositories();
|
|
34
|
+
if (repositories.length === 0) {
|
|
35
|
+
cliInfo(chalk.yellow('No repositories are currently configured.'));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
cliInfo('Configured repositories:');
|
|
39
|
+
for (const repository of repositories) {
|
|
40
|
+
cliInfo(`- ${repository.fullName}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
const normalized = normalizeCommandError(error);
|
|
45
|
+
cliError(chalk.red(normalized.message));
|
|
46
|
+
exitWithCode(normalized.exitCode);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export const configCommand = new Command('config').description('Configuration commands');
|
|
50
|
+
configCommand
|
|
51
|
+
.option('-r, --remote [repository]', "Add remote repository config. Use '.' for the current repo.")
|
|
52
|
+
.action(async (options, command) => {
|
|
53
|
+
if (options.remote !== undefined) {
|
|
54
|
+
const repository = typeof options.remote === 'string' ? options.remote : '.';
|
|
55
|
+
await configRemoteAction(repository);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
command.help();
|
|
59
|
+
});
|
|
60
|
+
function registerRemoteRepositoryConfig(command, description, handlers) {
|
|
61
|
+
command
|
|
62
|
+
.description(description)
|
|
63
|
+
.argument('[repository]', "Repository to add. Use '.' for the current repo.", '.')
|
|
64
|
+
.action(handlers.action);
|
|
65
|
+
command
|
|
66
|
+
.command('add [repository]')
|
|
67
|
+
.description("Add a repository to Kodus. Use '.' for the current repo.")
|
|
68
|
+
.action(handlers.addAction);
|
|
69
|
+
command
|
|
70
|
+
.command('list')
|
|
71
|
+
.description('List repositories already configured in Kodus.')
|
|
72
|
+
.action(configRepoListAction);
|
|
73
|
+
}
|
|
74
|
+
registerRemoteRepositoryConfig(configCommand.command('remote'), 'Manage remote repository configuration in Kodus.', {
|
|
75
|
+
action: configRemoteAction,
|
|
76
|
+
addAction: configRemoteAddAction,
|
|
77
|
+
});
|
|
78
|
+
const repoAliasCommand = configCommand.command('repo');
|
|
79
|
+
repoAliasCommand._hidden = true;
|
|
80
|
+
registerRemoteRepositoryConfig(repoAliasCommand, 'Manage remote repository configuration in Kodus.', {
|
|
81
|
+
action: configRepoAction,
|
|
82
|
+
addAction: configRepoAddAction,
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,13 @@ hookCommand
|
|
|
10
10
|
.option('--fast', 'Use fast mode for review (default: true)', true)
|
|
11
11
|
.option('--no-fast', 'Disable fast mode for review')
|
|
12
12
|
.option('--force', 'Overwrite existing hook without prompting')
|
|
13
|
-
.
|
|
13
|
+
.option('--dry-run', 'Print planned changes without writing files', false)
|
|
14
|
+
.action((options, cmd) => installAction(options, cmd.optsWithGlobals()));
|
|
14
15
|
hookCommand
|
|
15
16
|
.command('uninstall')
|
|
16
17
|
.description('Remove pre-push hook installed by kodus')
|
|
17
|
-
.
|
|
18
|
+
.option('--dry-run', 'Print planned changes without writing files', false)
|
|
19
|
+
.action((options, cmd) => uninstallAction(options, cmd.optsWithGlobals()));
|
|
18
20
|
hookCommand
|
|
19
21
|
.command('status')
|
|
20
22
|
.description('Show pre-push hook status')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CACtD,gDAAgD,CACnD,CAAC;AAEF,WAAW;KACN,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CACH,sBAAsB,EACtB,iEAAiE,EACjE,UAAU,CACb;KACA,MAAM,CAAC,QAAQ,EAAE,0CAA0C,EAAE,IAAI,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CACtD,gDAAgD,CACnD,CAAC;AAEF,WAAW;KACN,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CACH,sBAAsB,EACtB,iEAAiE,EACjE,UAAU,CACb;KACA,MAAM,CAAC,QAAQ,EAAE,0CAA0C,EAAE,IAAI,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,WAAW,EAAE,6CAA6C,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAE7E,WAAW;KACN,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,WAAW,EAAE,6CAA6C,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAE/E,WAAW;KACN,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { GlobalOptions } from '../../types/index.js';
|
|
1
2
|
declare const KODUS_MARKER = "# kodus-hook";
|
|
2
3
|
declare function generateHookScript(failOn: string, fast: boolean): string;
|
|
3
4
|
export declare function installAction(options: {
|
|
4
5
|
failOn?: string;
|
|
5
6
|
fast?: boolean;
|
|
6
7
|
force?: boolean;
|
|
7
|
-
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
}, globalOpts?: GlobalOptions): Promise<void>;
|
|
8
10
|
export { KODUS_MARKER, generateHookScript };
|
|
9
11
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/hook/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/hook/install.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY1D,QAAA,MAAM,YAAY,iBAAiB,CAAC;AAEpC,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAwDjE;AAED,wBAAsB,aAAa,CAC/B,OAAO,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,EACD,UAAU,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsGf;AAED,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -5,6 +5,9 @@ import { confirm } from '@inquirer/prompts';
|
|
|
5
5
|
import { gitService } from '../../services/git.service.js';
|
|
6
6
|
import { exitWithCode } from '../../utils/cli-exit.js';
|
|
7
7
|
import { cliError, cliInfo } from '../../utils/logger.js';
|
|
8
|
+
import { createCommandContext } from '../../utils/command-context.js';
|
|
9
|
+
import { buildAgentErrorEnvelope, buildAgentSuccessEnvelope, emitAgentEnvelope, } from '../../utils/command-output.js';
|
|
10
|
+
import { CommandError, normalizeCommandError, } from '../../utils/command-errors.js';
|
|
8
11
|
const KODUS_MARKER = '# kodus-hook';
|
|
9
12
|
function generateHookScript(failOn, fast) {
|
|
10
13
|
const flags = [];
|
|
@@ -61,50 +64,86 @@ while read local_ref local_sha remote_ref remote_sha; do
|
|
|
61
64
|
done
|
|
62
65
|
`;
|
|
63
66
|
}
|
|
64
|
-
export async function installAction(options) {
|
|
67
|
+
export async function installAction(options, globalOpts) {
|
|
68
|
+
const ctx = createCommandContext('hook install', {
|
|
69
|
+
format: globalOpts?.format ?? 'terminal',
|
|
70
|
+
output: globalOpts?.output,
|
|
71
|
+
verbose: globalOpts?.verbose ?? false,
|
|
72
|
+
quiet: globalOpts?.quiet ?? false,
|
|
73
|
+
agent: globalOpts?.agent ?? false,
|
|
74
|
+
});
|
|
65
75
|
const failOn = options.failOn ?? 'critical';
|
|
66
76
|
const fast = options.fast !== false; // default true
|
|
67
|
-
const isRepo = await gitService.isGitRepository();
|
|
68
|
-
if (!isRepo) {
|
|
69
|
-
cliError(chalk.red('Error: Not a git repository.'));
|
|
70
|
-
exitWithCode(1);
|
|
71
|
-
}
|
|
72
|
-
const gitRoot = await gitService.getGitRoot();
|
|
73
|
-
const hooksDir = path.join(gitRoot.trim(), '.git', 'hooks');
|
|
74
|
-
const hookPath = path.join(hooksDir, 'pre-push');
|
|
75
|
-
// Check if hook already exists
|
|
76
|
-
let existingContent = null;
|
|
77
77
|
try {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
if
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
78
|
+
const isRepo = await gitService.isGitRepository();
|
|
79
|
+
if (!isRepo) {
|
|
80
|
+
throw new CommandError('NOT_IN_GIT_REPO', 'Not a git repository.');
|
|
81
|
+
}
|
|
82
|
+
const gitRoot = await gitService.getGitRoot();
|
|
83
|
+
const hooksDir = path.join(gitRoot.trim(), '.git', 'hooks');
|
|
84
|
+
const hookPath = path.join(hooksDir, 'pre-push');
|
|
85
|
+
// Check if hook already exists
|
|
86
|
+
let existingContent = null;
|
|
87
|
+
try {
|
|
88
|
+
existingContent = await fs.readFile(hookPath, 'utf-8');
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// File doesn't exist
|
|
92
|
+
}
|
|
93
|
+
const isKodusHook = existingContent
|
|
94
|
+
? existingContent.includes(KODUS_MARKER)
|
|
95
|
+
: false;
|
|
96
|
+
if (options.dryRun) {
|
|
97
|
+
const payload = {
|
|
98
|
+
action: 'hook install',
|
|
99
|
+
path: hookPath,
|
|
100
|
+
failOn,
|
|
101
|
+
fast,
|
|
102
|
+
hasExistingHook: !!existingContent,
|
|
103
|
+
wouldPromptForOverwrite: !!existingContent && !isKodusHook && !options.force,
|
|
104
|
+
};
|
|
105
|
+
if (ctx.isAgent) {
|
|
106
|
+
await emitAgentEnvelope(buildAgentSuccessEnvelope(ctx.command, payload, ctx.startedAt), ctx.outputFile);
|
|
92
107
|
return;
|
|
93
108
|
}
|
|
109
|
+
cliInfo(chalk.cyan('Dry run: no changes were made.'));
|
|
110
|
+
cliInfo(JSON.stringify(payload, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (existingContent) {
|
|
114
|
+
if (!isKodusHook && !options.force) {
|
|
115
|
+
const overwrite = await confirm({
|
|
116
|
+
message: 'A pre-push hook already exists. Overwrite it?',
|
|
117
|
+
default: false,
|
|
118
|
+
});
|
|
119
|
+
if (!overwrite) {
|
|
120
|
+
cliInfo(chalk.yellow('Installation cancelled.'));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Ensure hooks directory exists
|
|
126
|
+
await fs.mkdir(hooksDir, { recursive: true });
|
|
127
|
+
// Write hook script
|
|
128
|
+
const script = generateHookScript(failOn, fast);
|
|
129
|
+
await fs.writeFile(hookPath, script, { mode: 0o755 });
|
|
130
|
+
cliInfo(chalk.green('✓ Pre-push hook installed successfully!'));
|
|
131
|
+
cliInfo(chalk.dim(` Path: ${hookPath}`));
|
|
132
|
+
cliInfo(chalk.dim(` Fail on: ${failOn}`));
|
|
133
|
+
cliInfo(chalk.dim(` Fast mode: ${fast ? 'yes' : 'no'}`));
|
|
134
|
+
cliInfo('');
|
|
135
|
+
cliInfo(chalk.dim('Skip with: KODUS_SKIP_HOOK=1 git push'));
|
|
136
|
+
cliInfo(chalk.dim('Remove with: kodus hook uninstall'));
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
const normalized = normalizeCommandError(error);
|
|
140
|
+
if (ctx.isAgent) {
|
|
141
|
+
await emitAgentEnvelope(buildAgentErrorEnvelope(ctx.command, normalized, ctx.startedAt), ctx.outputFile);
|
|
142
|
+
exitWithCode(normalized.exitCode);
|
|
94
143
|
}
|
|
144
|
+
cliError(chalk.red(`Error: ${normalized.message}`));
|
|
145
|
+
exitWithCode(normalized.exitCode);
|
|
95
146
|
}
|
|
96
|
-
// Ensure hooks directory exists
|
|
97
|
-
await fs.mkdir(hooksDir, { recursive: true });
|
|
98
|
-
// Write hook script
|
|
99
|
-
const script = generateHookScript(failOn, fast);
|
|
100
|
-
await fs.writeFile(hookPath, script, { mode: 0o755 });
|
|
101
|
-
cliInfo(chalk.green('✓ Pre-push hook installed successfully!'));
|
|
102
|
-
cliInfo(chalk.dim(` Path: ${hookPath}`));
|
|
103
|
-
cliInfo(chalk.dim(` Fail on: ${failOn}`));
|
|
104
|
-
cliInfo(chalk.dim(` Fast mode: ${fast ? 'yes' : 'no'}`));
|
|
105
|
-
cliInfo('');
|
|
106
|
-
cliInfo(chalk.dim('Skip with: KODUS_SKIP_HOOK=1 git push'));
|
|
107
|
-
cliInfo(chalk.dim('Remove with: kodus hook uninstall'));
|
|
108
147
|
}
|
|
109
148
|
export { KODUS_MARKER, generateHookScript };
|
|
110
149
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/hook/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,SAAS,kBAAkB,CAAC,MAAc,EAAE,IAAa;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,EAAE,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO;EACT,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DAuC8C,WAAW;;;;CAItE,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/hook/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { GlobalOptions } from '../../types/index.js';
|
|
2
|
+
export declare function uninstallAction(options?: {
|
|
3
|
+
dryRun?: boolean;
|
|
4
|
+
}, globalOpts?: GlobalOptions): Promise<void>;
|
|
2
5
|
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/hook/uninstall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/hook/uninstall.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY1D,wBAAsB,eAAe,CACjC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,EAClC,UAAU,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
|