@tjdals12/agent-bolt 1.2.0 β†’ 1.3.0-next.1

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.
Files changed (35) hide show
  1. package/README.ko.md +25 -17
  2. package/README.md +25 -17
  3. package/dist/catalog/commands/add-item.d.ts +23 -7
  4. package/dist/catalog/commands/add-item.d.ts.map +1 -1
  5. package/dist/catalog/commands/add-item.js +270 -23
  6. package/dist/catalog/commands/add-item.js.map +1 -1
  7. package/dist/catalog/commands/remove-item.d.ts +21 -7
  8. package/dist/catalog/commands/remove-item.d.ts.map +1 -1
  9. package/dist/catalog/commands/remove-item.js +246 -22
  10. package/dist/catalog/commands/remove-item.js.map +1 -1
  11. package/dist/cli/format.d.ts +2 -0
  12. package/dist/cli/format.d.ts.map +1 -1
  13. package/dist/cli/format.js +19 -0
  14. package/dist/cli/format.js.map +1 -1
  15. package/dist/cli/index.js +13 -6
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/prompts.d.ts +4 -0
  18. package/dist/cli/prompts.d.ts.map +1 -0
  19. package/dist/cli/prompts.js +11 -0
  20. package/dist/cli/prompts.js.map +1 -0
  21. package/dist/cli/views/add-item.d.ts.map +1 -1
  22. package/dist/cli/views/add-item.js +47 -19
  23. package/dist/cli/views/add-item.js.map +1 -1
  24. package/dist/cli/views/add-pack.js +1 -1
  25. package/dist/cli/views/add-pack.js.map +1 -1
  26. package/dist/cli/views/remove-item.d.ts.map +1 -1
  27. package/dist/cli/views/remove-item.js +47 -19
  28. package/dist/cli/views/remove-item.js.map +1 -1
  29. package/dist/cli/views/remove-pack.js +1 -1
  30. package/dist/cli/views/remove-pack.js.map +1 -1
  31. package/dist/cli/views/shared/banner.d.ts +2 -0
  32. package/dist/cli/views/shared/banner.d.ts.map +1 -1
  33. package/dist/cli/views/shared/banner.js +8 -0
  34. package/dist/cli/views/shared/banner.js.map +1 -1
  35. package/package.json +1 -1
package/README.ko.md CHANGED
@@ -200,12 +200,14 @@ $ agent-bolt add-pack --source=common --packs=common
200
200
  $ agent-bolt add-item --source=common --pack=backend --skills=nestjs-expert
201
201
 
202
202
  β–Œ Agent Bolt: Added 1 item to common/backend
203
- (created pack backend in common)
203
+ (added new pack 'backend' in source 'common')
204
204
 
205
205
  + πŸ”§ nestjs-expert
206
206
  ...
207
207
  ```
208
208
 
209
+ μ•„μ΄ν…œ μ˜΅μ…˜μ„ λΉΌλ©΄ μ•„μ΄ν…œμ„ λͺ©λ‘μ—μ„œ 골라 μΆ”κ°€ν•©λ‹ˆλ‹€. `--pack`κΉŒμ§€ λΉΌλ©΄ νŒ©μ„ λ¨Όμ € κ³ λ₯΄κ³ , `--source`κΉŒμ§€ λΉΌλ©΄ μ™„μ „ λŒ€ν™”ν˜•μœΌλ‘œ λ™μž‘ν•΄ μ†ŒμŠ€μ™€ νŒ©μ„ μ˜€κ°€λ©° 계속 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
210
+
209
211
  `remove-pack`Β·`remove-item`으둜 μΆ”κ°€ν•œ νŒ¨ν‚€μ§€Β·μ•„μ΄ν…œμ„ μ‚­μ œν•©λ‹ˆλ‹€.
210
212
 
211
213
  ```text
@@ -217,6 +219,8 @@ $ agent-bolt remove-item --source=common --pack=common --skills=pr-review
217
219
  ...
218
220
  ```
219
221
 
222
+ μ•„μ΄ν…œ μ˜΅μ…˜μ„ λΉΌλ©΄ μ•„μ΄ν…œμ„ λͺ©λ‘μ—μ„œ 골라 μ œκ±°ν•©λ‹ˆλ‹€. `--pack`κΉŒμ§€ λΉΌλ©΄ νŒ©μ„ λ¨Όμ € κ³ λ₯΄κ³ , `--source`κΉŒμ§€ λΉΌλ©΄ μ™„μ „ λŒ€ν™”ν˜•μœΌλ‘œ λ™μž‘ν•΄ μ†ŒμŠ€μ™€ νŒ©μ„ μ˜€κ°€λ©° 계속 μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
223
+
220
224
  이 λͺ…령듀은 μ„€μ • νŒŒμΌμ„ λ°”κΏ€ λΏμž…λ‹ˆλ‹€. μ‹€μ œ μ„€μΉ˜λŠ” `sync`μ—μ„œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.
221
225
 
222
226
  ### μ—μ΄μ „νŠΈμ— μ„€μΉ˜ν•˜κΈ°
@@ -563,16 +567,18 @@ agent-bolt add-pack [--source <alias>] [--packs <list>]
563
567
  νŠΉμ • μ•„μ΄ν…œλ§Œ 섀정에 μΆ”κ°€ν•©λ‹ˆλ‹€. νŒ¨ν‚€μ§€ ν•­λͺ©μ΄ μ—†μœΌλ©΄ λ§Œλ“€μ–΄ λ‘‘λ‹ˆλ‹€.
564
568
 
565
569
  ```text
566
- agent-bolt add-item --source <alias> --pack <name> [options]
570
+ agent-bolt add-item [--source <alias>] [--pack <name>] [options]
567
571
  ```
568
572
 
569
- | μ˜΅μ…˜ | μ„€λͺ… | ν•„μˆ˜/선택 | κΈ°λ³Έκ°’ |
570
- | --------------------- | -------------------------------------- | --------- | ------ |
571
- | `--source <alias>` | λŒ€μƒ μΉ΄νƒˆλ‘œκ·Έ | ν•„μˆ˜ | β€” |
572
- | `--pack <name>` | λŒ€μƒ νŒ¨ν‚€μ§€ | ν•„μˆ˜ | β€” |
573
- | `--skills <list>` | μΆ”κ°€ν•  μŠ€ν‚¬ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
574
- | `--agents <list>` | μΆ”κ°€ν•  μ„œλΈŒ μ—μ΄μ „νŠΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
575
- | `--guidelines <list>` | μΆ”κ°€ν•  κ°€μ΄λ“œλΌμΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
573
+ | μ˜΅μ…˜ | μ„€λͺ… | ν•„μˆ˜/선택 | κΈ°λ³Έκ°’ |
574
+ | --------------------- | -------------------------------------- | --------- | ----------- |
575
+ | `--source <alias>` | λŒ€μƒ μΉ΄νƒˆλ‘œκ·Έ | 선택 | λŒ€ν™”ν˜• 선택 |
576
+ | `--pack <name>` | λŒ€μƒ νŒ¨ν‚€μ§€ | 선택 | λŒ€ν™”ν˜• 선택 |
577
+ | `--skills <list>` | μΆ”κ°€ν•  μŠ€ν‚¬ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
578
+ | `--agents <list>` | μΆ”κ°€ν•  μ„œλΈŒ μ—μ΄μ „νŠΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
579
+ | `--guidelines <list>` | μΆ”κ°€ν•  κ°€μ΄λ“œλΌμΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
580
+
581
+ μ•„μ΄ν…œ μ˜΅μ…˜μ„ μƒλž΅ν•˜λ©΄ μ•„μ΄ν…œμ„ λŒ€ν™”ν˜•μœΌλ‘œ κ³ λ₯΄κ³ , `--pack`κΉŒμ§€ μƒλž΅ν•˜λ©΄ νŒ©μ„ λ¨Όμ € κ³ λ₯΄λ©°, `--source`κΉŒμ§€ μƒλž΅ν•˜λ©΄ μ—¬λŸ¬ sourceλ₯Ό μ˜€κ°€λ©° λ°˜λ³΅ν•©λ‹ˆλ‹€. `--pack`은 `--source`와, μ•„μ΄ν…œ μ˜΅μ…˜μ€ `--pack`κ³Ό ν•¨κ»˜ 써야 ν•©λ‹ˆλ‹€.
576
582
 
577
583
  ### `agent-bolt remove-pack`
578
584
 
@@ -594,16 +600,18 @@ agent-bolt remove-pack [--source <alias>] [--packs <list>]
594
600
  μ„€μ •μ—μ„œ νŠΉμ • μ•„μ΄ν…œμ„ μ œκ±°ν•©λ‹ˆλ‹€.
595
601
 
596
602
  ```text
597
- agent-bolt remove-item --source <alias> --pack <name> [options]
603
+ agent-bolt remove-item [--source <alias>] [--pack <name>] [options]
598
604
  ```
599
605
 
600
- | μ˜΅μ…˜ | μ„€λͺ… | ν•„μˆ˜/선택 | κΈ°λ³Έκ°’ |
601
- | --------------------- | -------------------------------------- | --------- | ------ |
602
- | `--source <alias>` | λŒ€μƒ μΉ΄νƒˆλ‘œκ·Έ | ν•„μˆ˜ | β€” |
603
- | `--pack <name>` | λŒ€μƒ νŒ¨ν‚€μ§€ | ν•„μˆ˜ | β€” |
604
- | `--skills <list>` | μ œκ±°ν•  μŠ€ν‚¬ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
605
- | `--agents <list>` | μ œκ±°ν•  μ„œλΈŒ μ—μ΄μ „νŠΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
606
- | `--guidelines <list>` | μ œκ±°ν•  κ°€μ΄λ“œλΌμΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
606
+ | μ˜΅μ…˜ | μ„€λͺ… | ν•„μˆ˜/선택 | κΈ°λ³Έκ°’ |
607
+ | --------------------- | -------------------------------------- | --------- | ----------- |
608
+ | `--source <alias>` | λŒ€μƒ μΉ΄νƒˆλ‘œκ·Έ | 선택 | λŒ€ν™”ν˜• 선택 |
609
+ | `--pack <name>` | λŒ€μƒ νŒ¨ν‚€μ§€ | 선택 | λŒ€ν™”ν˜• 선택 |
610
+ | `--skills <list>` | μ œκ±°ν•  μŠ€ν‚¬ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
611
+ | `--agents <list>` | μ œκ±°ν•  μ„œλΈŒ μ—μ΄μ „νŠΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
612
+ | `--guidelines <list>` | μ œκ±°ν•  κ°€μ΄λ“œλΌμΈ 이름. 콀마둜 ꡬ뢄 | 선택 | β€” |
613
+
614
+ μ•„μ΄ν…œ μ˜΅μ…˜μ„ μƒλž΅ν•˜λ©΄ μ•„μ΄ν…œμ„ λŒ€ν™”ν˜•μœΌλ‘œ κ³ λ₯΄κ³ , `--pack`κΉŒμ§€ μƒλž΅ν•˜λ©΄ νŒ©μ„ λ¨Όμ € κ³ λ₯΄λ©°, `--source`κΉŒμ§€ μƒλž΅ν•˜λ©΄ μ—¬λŸ¬ sourceλ₯Ό μ˜€κ°€λ©° λ°˜λ³΅ν•©λ‹ˆλ‹€. `--pack`은 `--source`와, μ•„μ΄ν…œ μ˜΅μ…˜μ€ `--pack`κ³Ό ν•¨κ»˜ 써야 ν•©λ‹ˆλ‹€.
607
615
 
608
616
  ### `agent-bolt sync`
609
617
 
package/README.md CHANGED
@@ -200,12 +200,14 @@ Use `add-item` to add just specific items from a package.
200
200
  $ agent-bolt add-item --source=common --pack=backend --skills=nestjs-expert
201
201
 
202
202
  β–Œ Agent Bolt: Added 1 item to common/backend
203
- (created pack backend in common)
203
+ (added new pack 'backend' in source 'common')
204
204
 
205
205
  + πŸ”§ nestjs-expert
206
206
  ...
207
207
  ```
208
208
 
209
+ Omit the item options to pick items from a checklist. Omit `--pack` too and `add-item` picks a pack first; omit `--source` as well and it goes fully interactive, looping over sources and packs until you're done.
210
+
209
211
  Use `remove-pack` and `remove-item` to drop packages or items you've added.
210
212
 
211
213
  ```text
@@ -217,6 +219,8 @@ $ agent-bolt remove-item --source=common --pack=common --skills=pr-review
217
219
  ...
218
220
  ```
219
221
 
222
+ Omit the item options to pick items from a checklist. Omit `--pack` too and `remove-item` picks a pack first; omit `--source` as well and it goes fully interactive, looping over sources and packs until you're done.
223
+
220
224
  These commands only edit your config file. The actual installation happens with `sync`.
221
225
 
222
226
  ### Install into your agents
@@ -563,16 +567,18 @@ Omitting `--packs` picks packages interactively; omitting `--source` as well pic
563
567
  Adds specific items to your config. Creates the package entry if it doesn't exist yet.
564
568
 
565
569
  ```text
566
- agent-bolt add-item --source <alias> --pack <name> [options]
570
+ agent-bolt add-item [--source <alias>] [--pack <name>] [options]
567
571
  ```
568
572
 
569
- | Option | Description | Required | Default |
570
- | --------------------- | ------------------------------------------- | -------- | ------- |
571
- | `--source <alias>` | Target catalog | Required | β€” |
572
- | `--pack <name>` | Target package | Required | β€” |
573
- | `--skills <list>` | Names of skills to add. Comma-separated | Optional | β€” |
574
- | `--agents <list>` | Names of subagents to add. Comma-separated | Optional | β€” |
575
- | `--guidelines <list>` | Names of guidelines to add. Comma-separated | Optional | β€” |
573
+ | Option | Description | Required | Default |
574
+ | --------------------- | ------------------------------------------- | -------- | ------------------ |
575
+ | `--source <alias>` | Target catalog | Optional | Interactive prompt |
576
+ | `--pack <name>` | Target package | Optional | Interactive prompt |
577
+ | `--skills <list>` | Names of skills to add. Comma-separated | Optional | β€” |
578
+ | `--agents <list>` | Names of subagents to add. Comma-separated | Optional | β€” |
579
+ | `--guidelines <list>` | Names of guidelines to add. Comma-separated | Optional | β€” |
580
+
581
+ Omitting the item options picks items interactively; omitting `--pack` too picks a pack first; omitting `--source` as well loops over sources. `--pack` requires `--source`, and the item options require `--pack`.
576
582
 
577
583
  ### `agent-bolt remove-pack`
578
584
 
@@ -594,16 +600,18 @@ Omitting `--packs` picks packages interactively; omitting `--source` as well pic
594
600
  Removes specific items from your config.
595
601
 
596
602
  ```text
597
- agent-bolt remove-item --source <alias> --pack <name> [options]
603
+ agent-bolt remove-item [--source <alias>] [--pack <name>] [options]
598
604
  ```
599
605
 
600
- | Option | Description | Required | Default |
601
- | --------------------- | ---------------------------------------------- | -------- | ------- |
602
- | `--source <alias>` | Target catalog | Required | β€” |
603
- | `--pack <name>` | Target package | Required | β€” |
604
- | `--skills <list>` | Names of skills to remove. Comma-separated | Optional | β€” |
605
- | `--agents <list>` | Names of subagents to remove. Comma-separated | Optional | β€” |
606
- | `--guidelines <list>` | Names of guidelines to remove. Comma-separated | Optional | β€” |
606
+ | Option | Description | Required | Default |
607
+ | --------------------- | ---------------------------------------------- | -------- | ------------------ |
608
+ | `--source <alias>` | Target catalog | Optional | Interactive prompt |
609
+ | `--pack <name>` | Target package | Optional | Interactive prompt |
610
+ | `--skills <list>` | Names of skills to remove. Comma-separated | Optional | β€” |
611
+ | `--agents <list>` | Names of subagents to remove. Comma-separated | Optional | β€” |
612
+ | `--guidelines <list>` | Names of guidelines to remove. Comma-separated | Optional | β€” |
613
+
614
+ Omitting the item options picks items interactively; omitting `--pack` too picks a pack first; omitting `--source` as well loops over sources. `--pack` requires `--source`, and the item options require `--pack`.
607
615
 
608
616
  ### `agent-bolt sync`
609
617
 
@@ -1,25 +1,41 @@
1
1
  import { type ItemType } from '#catalog/content/item/model.js';
2
- export type AddItemResult = {
3
- sourceAlias: string;
2
+ import type { ProgressReporter } from '#core/progress.js';
3
+ export type AddedItemPack = {
4
4
  packName: string;
5
5
  packCreated: boolean;
6
6
  addedItems: Record<ItemType, string[]>;
7
7
  skippedItems: Record<ItemType, string[]>;
8
8
  };
9
+ export type AddedItemSourceResult = {
10
+ sourceAlias: string;
11
+ packs: AddedItemPack[];
12
+ };
13
+ export type AddItemResult = {
14
+ results: AddedItemSourceResult[];
15
+ failures: string[];
16
+ };
9
17
  export declare class AddItemCommand {
10
- private readonly _source;
11
- private readonly _pack;
18
+ private readonly _source?;
19
+ private readonly _pack?;
12
20
  private readonly _skills?;
13
21
  private readonly _agents?;
14
22
  private readonly _guidelines?;
15
23
  constructor(options: {
16
- source: string;
17
- pack: string;
24
+ source?: string;
25
+ pack?: string;
18
26
  skills?: string;
19
27
  agents?: string;
20
28
  guidelines?: string;
21
29
  });
22
- execute(projectPath: string): AddItemResult;
30
+ execute(projectPath: string, reporter: ProgressReporter): Promise<AddItemResult>;
31
+ private addItemsFromSource;
32
+ private mergePackInto;
33
+ private addItemsToPack;
34
+ private resolveCatalogDetail;
35
+ private promptSourceSelection;
36
+ private promptPackSelection;
37
+ private promptItemSelection;
38
+ private countAddedItems;
23
39
  private parseItemNames;
24
40
  }
25
41
  //# sourceMappingURL=add-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-item.d.ts","sourceRoot":"","sources":["../../../src/catalog/commands/add-item.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG3E,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;gBAE1B,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IAQD,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa;IAwI3C,OAAO,CAAC,cAAc;CAQvB"}
1
+ {"version":3,"file":"add-item.d.ts","sourceRoot":"","sources":["../../../src/catalog/commands/add-item.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAM3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;gBAE1B,OAAO,EAAE;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IAQK,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;YA0GxE,kBAAkB;IA2EhC,OAAO,CAAC,aAAa;YAcP,cAAc;IA2H5B,OAAO,CAAC,oBAAoB;YAwBd,qBAAqB;YA6BrB,mBAAmB;YAkCnB,mBAAmB;IAgFjC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;CAQvB"}
@@ -1,9 +1,14 @@
1
+ import { checkbox, select, Separator } from '@inquirer/prompts';
2
+ import chalk from 'chalk';
1
3
  import { buildCatalogConfigPath } from '#core/paths.js';
4
+ import { canPrompt } from '#core/tty.js';
2
5
  import { loadConfig } from '#catalog/config/load.js';
3
6
  import { editConfigFile } from '#catalog/config/write.js';
4
7
  import { resolveCatalogDir } from '#catalog/source/resolve.js';
5
8
  import { ITEM_TYPES } from '#catalog/content/item/model.js';
6
9
  import { parseCatalogDetail } from '#catalog/content/parse.js';
10
+ import { alignPackRows, pageSizeFor, truncate, visibleWidth } from '#cli/format.js';
11
+ import { itemSectionHeader } from '#cli/prompts.js';
7
12
  export class AddItemCommand {
8
13
  _source;
9
14
  _pack;
@@ -17,41 +22,172 @@ export class AddItemCommand {
17
22
  this._agents = options.agents;
18
23
  this._guidelines = options.guidelines;
19
24
  }
20
- execute(projectPath) {
25
+ async execute(projectPath, reporter) {
26
+ if (this._source !== undefined) {
27
+ const promptPack = this._pack === undefined;
28
+ const promptItems = this._skills === undefined && this._agents === undefined && this._guidelines === undefined;
29
+ if (promptPack && !promptItems) {
30
+ throw new Error('The --pack option is required with --skills, --agents, or --guidelines. e.g. --pack=git-workflow');
31
+ }
32
+ if ((promptPack || promptItems) && !canPrompt()) {
33
+ if (promptPack) {
34
+ throw new Error('The --pack option is required (or run add-item in an interactive terminal). e.g. --pack=git-workflow');
35
+ }
36
+ throw new Error('No items to add. Specify at least one of --skills, --agents, or --guidelines (or run add-item in an interactive terminal).');
37
+ }
38
+ const optionItemsByType = promptItems
39
+ ? undefined
40
+ : {
41
+ skills: this.parseItemNames(this._skills),
42
+ agents: this.parseItemNames(this._agents),
43
+ guidelines: this.parseItemNames(this._guidelines),
44
+ };
45
+ if (optionItemsByType) {
46
+ const totalInput = ITEM_TYPES.reduce((sum, type) => sum + optionItemsByType[type].length, 0);
47
+ if (totalInput === 0) {
48
+ throw new Error('No items to add. Specify at least one of --skills, --agents, or --guidelines.');
49
+ }
50
+ }
51
+ const result = await this.addItemsFromSource({
52
+ projectPath,
53
+ sourceAlias: this._source,
54
+ packName: this._pack,
55
+ optionItemsByType,
56
+ reporter,
57
+ });
58
+ return { results: [result], failures: [] };
59
+ }
60
+ if (this._pack !== undefined) {
61
+ throw new Error('The --source option is required with --pack. e.g. --source=common');
62
+ }
63
+ const hasItemOptions = this._skills !== undefined || this._agents !== undefined || this._guidelines !== undefined;
64
+ if (hasItemOptions) {
65
+ throw new Error('The --source option is required with --skills, --agents, or --guidelines. e.g. --source=common');
66
+ }
67
+ if (!canPrompt()) {
68
+ throw new Error('The --source option is required (or run add-item in an interactive terminal). e.g. --source=common');
69
+ }
70
+ const configPath = buildCatalogConfigPath(projectPath);
71
+ const bySource = new Map();
72
+ const failures = [];
73
+ while (true) {
74
+ const config = loadConfig(configPath);
75
+ if (Object.keys(config.sources).length === 0) {
76
+ throw new Error(`no sources configured. run 'agent-bolt init' to add one.`);
77
+ }
78
+ const sourceAlias = await this.promptSourceSelection(config.sources, bySource);
79
+ if (sourceAlias === null)
80
+ break;
81
+ try {
82
+ const result = await this.addItemsFromSource({
83
+ projectPath,
84
+ sourceAlias,
85
+ packName: undefined,
86
+ optionItemsByType: undefined,
87
+ reporter,
88
+ });
89
+ if (result.packs.length > 0) {
90
+ const merged = bySource.get(sourceAlias);
91
+ if (merged) {
92
+ for (const pack of result.packs) {
93
+ this.mergePackInto(merged.packs, pack);
94
+ }
95
+ }
96
+ else {
97
+ bySource.set(sourceAlias, result);
98
+ }
99
+ }
100
+ }
101
+ catch (e) {
102
+ failures.push(e instanceof Error ? e.message : String(e));
103
+ }
104
+ }
105
+ return { results: [...bySource.values()], failures };
106
+ }
107
+ async addItemsFromSource(options) {
108
+ const { projectPath, sourceAlias, packName, optionItemsByType, reporter } = options;
21
109
  const configPath = buildCatalogConfigPath(projectPath);
22
110
  const config = loadConfig(configPath);
23
- const source = config.sources[this._source];
111
+ const source = config.sources[sourceAlias];
24
112
  if (!source) {
25
- throw new Error(`source '${this._source}' not found in ${configPath}`);
113
+ throw new Error(`source '${sourceAlias}' not found in ${configPath}`);
26
114
  }
27
- const inputItemsByType = {
28
- skills: this.parseItemNames(this._skills),
29
- agents: this.parseItemNames(this._agents),
30
- guidelines: this.parseItemNames(this._guidelines),
31
- };
32
- const totalInput = ITEM_TYPES.reduce((sum, type) => sum + inputItemsByType[type].length, 0);
33
- if (totalInput === 0) {
34
- throw new Error('No items to add. Specify at least one of --skills, --agents, or --guidelines.');
115
+ const interactive = packName === undefined || optionItemsByType === undefined;
116
+ const catalogDetail = this.resolveCatalogDetail(projectPath, sourceAlias, source, reporter, interactive);
117
+ if (packName !== undefined) {
118
+ const packDetail = catalogDetail.find((pack) => pack.name === packName);
119
+ if (!packDetail) {
120
+ throw new Error(`unknown pack in source '${sourceAlias}': ${packName}. run 'agent-bolt list-packs --source=${sourceAlias}' to see available packs.`);
121
+ }
122
+ const pack = await this.addItemsToPack({
123
+ configPath,
124
+ config,
125
+ sourceAlias,
126
+ packDetail,
127
+ optionItemsByType,
128
+ });
129
+ return { sourceAlias, packs: [pack] };
35
130
  }
36
- const catalogDir = resolveCatalogDir(projectPath, this._source, source);
37
- const catalogDetail = parseCatalogDetail(catalogDir);
38
- const packDetail = catalogDetail.find((packDetail) => packDetail.name === this._pack);
39
- if (!packDetail) {
40
- throw new Error(`unknown pack in source '${this._source}': ${this._pack}. run 'agent-bolt list-packs --source=${this._source}' to see available packs.`);
131
+ if (catalogDetail.length === 0) {
132
+ throw new Error(`source '${sourceAlias}' has no packs.`);
41
133
  }
134
+ const packs = [];
135
+ while (true) {
136
+ const addedByPack = new Map();
137
+ for (const addedPack of packs) {
138
+ const prev = addedByPack.get(addedPack.packName) ?? 0;
139
+ addedByPack.set(addedPack.packName, prev + this.countAddedItems(addedPack));
140
+ }
141
+ const nextPackName = await this.promptPackSelection(catalogDetail, sourceAlias, addedByPack);
142
+ if (nextPackName === null)
143
+ break;
144
+ const packDetail = catalogDetail.find((pack) => pack.name === nextPackName);
145
+ const freshConfig = loadConfig(configPath);
146
+ const pack = await this.addItemsToPack({
147
+ configPath,
148
+ config: freshConfig,
149
+ sourceAlias,
150
+ packDetail,
151
+ optionItemsByType: undefined,
152
+ });
153
+ if (this.countAddedItems(pack) > 0) {
154
+ this.mergePackInto(packs, pack);
155
+ }
156
+ }
157
+ return { sourceAlias, packs };
158
+ }
159
+ mergePackInto(packs, pack) {
160
+ const existing = packs.find((existingPack) => existingPack.packName === pack.packName);
161
+ if (!existing) {
162
+ packs.push(pack);
163
+ return;
164
+ }
165
+ existing.packCreated = existing.packCreated || pack.packCreated;
166
+ for (const itemType of ITEM_TYPES) {
167
+ existing.addedItems[itemType].push(...pack.addedItems[itemType]);
168
+ existing.skippedItems[itemType].push(...pack.skippedItems[itemType]);
169
+ }
170
+ }
171
+ async addItemsToPack(options) {
172
+ const { configPath, config, sourceAlias, packDetail, optionItemsByType } = options;
173
+ const packName = packDetail.name;
42
174
  const validItemsByType = {
43
175
  skills: new Set(packDetail.items.skills.map((item) => item.name)),
44
176
  agents: new Set(packDetail.items.agents.map((item) => item.name)),
45
177
  guidelines: new Set(packDetail.items.guidelines.map((item) => item.name)),
46
178
  };
47
179
  const guidelineRecommendations = new Map(packDetail.items.guidelines.map((guideline) => [guideline.name, guideline.recommended]));
48
- const existingPacks = config.packs[this._source];
49
- const existingPack = existingPacks ? existingPacks[this._pack] : undefined;
180
+ const existingPacks = config.packs[sourceAlias];
181
+ const existingPack = existingPacks ? existingPacks[packName] : undefined;
50
182
  const existingItemsByType = {
51
183
  skills: new Set(existingPack?.skills ?? []),
52
184
  agents: new Set(existingPack?.agents ?? []),
53
185
  guidelines: new Set(Object.keys(existingPack?.guidelines ?? {})),
54
186
  };
187
+ let inputItemsByType = optionItemsByType;
188
+ if (inputItemsByType === undefined) {
189
+ inputItemsByType = await this.promptItemSelection(sourceAlias, packDetail, existingItemsByType);
190
+ }
55
191
  const unknownItems = { skills: [], agents: [], guidelines: [] };
56
192
  const skippedItems = { skills: [], agents: [], guidelines: [] };
57
193
  const addedItems = { skills: [], agents: [], guidelines: [] };
@@ -75,15 +211,15 @@ export class AddItemCommand {
75
211
  if (hasUnknown) {
76
212
  const lines = ITEM_TYPES.filter((itemType) => unknownItems[itemType].length > 0).map((itemType) => ` ${itemType}: ${unknownItems[itemType].join(', ')}`);
77
213
  throw new Error([
78
- `unknown items in pack '${this._pack}':`,
214
+ `unknown items in pack '${packName}':`,
79
215
  lines.join('\n'),
80
- `run 'agent-bolt list-items --source=${this._source} --pack=${this._pack}' to see available items.`,
216
+ `run 'agent-bolt list-items --source=${sourceAlias} --pack=${packName}' to see available items.`,
81
217
  ].join('\n'));
82
218
  }
83
219
  const addedCount = ITEM_TYPES.reduce((sum, type) => sum + addedItems[type].length, 0);
84
220
  if (addedCount > 0) {
85
221
  editConfigFile(configPath, (document) => {
86
- const packPath = ['packs', this._source, this._pack];
222
+ const packPath = ['packs', sourceAlias, packName];
87
223
  if (existingPack) {
88
224
  for (const itemType of ITEM_TYPES) {
89
225
  const itemNames = addedItems[itemType];
@@ -123,13 +259,124 @@ export class AddItemCommand {
123
259
  });
124
260
  }
125
261
  return {
126
- sourceAlias: this._source,
127
- packName: this._pack,
262
+ packName,
128
263
  packCreated: existingPack === undefined,
129
264
  addedItems,
130
265
  skippedItems,
131
266
  };
132
267
  }
268
+ resolveCatalogDetail(projectPath, sourceAlias, source, reporter, interactive) {
269
+ if (!interactive) {
270
+ const catalogDir = resolveCatalogDir(projectPath, sourceAlias, source);
271
+ return parseCatalogDetail(catalogDir);
272
+ }
273
+ reporter.start(`Resolving source '${sourceAlias}'`);
274
+ try {
275
+ const catalogDir = resolveCatalogDir(projectPath, sourceAlias, source);
276
+ const catalogDetail = parseCatalogDetail(catalogDir);
277
+ reporter.succeed(`source '${sourceAlias}'`);
278
+ return catalogDetail;
279
+ }
280
+ catch (e) {
281
+ reporter.stop();
282
+ throw e;
283
+ }
284
+ }
285
+ async promptSourceSelection(sources, bySource) {
286
+ const entries = Object.entries(sources);
287
+ const aliasWidth = Math.max(0, ...entries.map(([alias]) => alias.length));
288
+ const sourceChoices = entries.map(([alias, source]) => {
289
+ const location = source.type === 'local' ? source.path : source.url;
290
+ const added = bySource.get(alias);
291
+ const addedCount = added
292
+ ? added.packs.reduce((sum, pack) => sum + this.countAddedItems(pack), 0)
293
+ : 0;
294
+ const addedNote = addedCount > 0 ? chalk.dim(` Β· added ${addedCount}`) : '';
295
+ return {
296
+ name: `${alias.padEnd(aliasWidth)} ${chalk.dim(`(${source.type} Β· ${location})`)}${addedNote}`,
297
+ value: alias,
298
+ short: alias,
299
+ };
300
+ });
301
+ return select({
302
+ message: 'Select a source (or finish)',
303
+ choices: [...sourceChoices, new Separator(), { name: 'Done', value: null }],
304
+ loop: false,
305
+ pageSize: pageSizeFor(sourceChoices.length + 2),
306
+ });
307
+ }
308
+ async promptPackSelection(catalogDetail, sourceAlias, addedByPack) {
309
+ const rows = alignPackRows(catalogDetail.map((pack) => ({
310
+ name: pack.name,
311
+ counts: {
312
+ skills: pack.items.skills.length,
313
+ agents: pack.items.agents.length,
314
+ guidelines: pack.items.guidelines.length,
315
+ },
316
+ })));
317
+ const packChoices = rows.map((row) => {
318
+ const added = addedByPack.get(row.name) ?? 0;
319
+ const addedNote = added > 0 ? chalk.dim(` Β· added ${added}`) : '';
320
+ return {
321
+ name: `${row.paddedName} ${row.counts}${addedNote}`,
322
+ value: row.name,
323
+ short: row.name,
324
+ };
325
+ });
326
+ return select({
327
+ message: `Select a pack in source '${sourceAlias}' (or finish)`,
328
+ choices: [...packChoices, new Separator(), { name: 'Done', value: null }],
329
+ loop: false,
330
+ pageSize: pageSizeFor(packChoices.length + 2),
331
+ });
332
+ }
333
+ async promptItemSelection(sourceAlias, packDetail, existingItemsByType) {
334
+ const empty = { skills: [], agents: [], guidelines: [] };
335
+ const nameWidth = Math.max(0, ...ITEM_TYPES.flatMap((itemType) => packDetail.items[itemType].map((item) => item.name.length)));
336
+ const hasSelectable = ITEM_TYPES.some((itemType) => packDetail.items[itemType].some((item) => !existingItemsByType[itemType].has(item.name)));
337
+ if (!hasSelectable) {
338
+ const totalItems = ITEM_TYPES.reduce((sum, itemType) => sum + packDetail.items[itemType].length, 0);
339
+ const note = totalItems === 0
340
+ ? `pack '${packDetail.name}' has no items`
341
+ : `all items in '${packDetail.name}' are already added`;
342
+ console.log(chalk.dim(` ${note}`));
343
+ return empty;
344
+ }
345
+ const choices = [];
346
+ const rowWidth = Math.max(0, ...ITEM_TYPES.flatMap((itemType) => packDetail.items[itemType].map((item) => nameWidth + 2 + visibleWidth(truncate(item.description, 50)))));
347
+ for (const itemType of ITEM_TYPES) {
348
+ const items = packDetail.items[itemType];
349
+ if (items.length === 0)
350
+ continue;
351
+ if (choices.length > 0)
352
+ choices.push(new Separator(' '));
353
+ choices.push(itemSectionHeader(itemType, rowWidth));
354
+ for (const item of items) {
355
+ const alreadyAdded = existingItemsByType[itemType].has(item.name);
356
+ choices.push({
357
+ name: `${item.name.padEnd(nameWidth)} ${chalk.dim(truncate(item.description, 50))}`,
358
+ value: { type: itemType, name: item.name },
359
+ short: item.name,
360
+ disabled: alreadyAdded ? '(already added)' : false,
361
+ });
362
+ }
363
+ }
364
+ const selected = await checkbox({
365
+ message: `Select items to add to '${sourceAlias}/${packDetail.name}'`,
366
+ choices,
367
+ loop: false,
368
+ pageSize: pageSizeFor(choices.length),
369
+ theme: { icon: { disabledUnchecked: 'βœ“' } },
370
+ });
371
+ const result = { skills: [], agents: [], guidelines: [] };
372
+ for (const { type, name } of selected) {
373
+ result[type].push(name);
374
+ }
375
+ return result;
376
+ }
377
+ countAddedItems(pack) {
378
+ return ITEM_TYPES.reduce((sum, itemType) => sum + pack.addedItems[itemType].length, 0);
379
+ }
133
380
  parseItemNames(value) {
134
381
  if (!value)
135
382
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"add-item.js","sourceRoot":"","sources":["../../../src/catalog/commands/add-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-item.js","sourceRoot":"","sources":["../../../src/catalog/commands/add-item.ts"],"names":[],"mappings":"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"}