@tjdals12/agent-bolt 1.0.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.
- package/LICENSE +21 -0
- package/README.ko.md +605 -0
- package/README.md +605 -0
- package/bin/agent-bolt.js +1 -0
- package/dist/catalog/commands/add-item.d.ts +25 -0
- package/dist/catalog/commands/add-item.d.ts.map +1 -0
- package/dist/catalog/commands/add-item.js +143 -0
- package/dist/catalog/commands/add-item.js.map +1 -0
- package/dist/catalog/commands/add-pack.d.ts +23 -0
- package/dist/catalog/commands/add-pack.d.ts.map +1 -0
- package/dist/catalog/commands/add-pack.js +89 -0
- package/dist/catalog/commands/add-pack.js.map +1 -0
- package/dist/catalog/commands/catalog/init-catalog.d.ts +16 -0
- package/dist/catalog/commands/catalog/init-catalog.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/init-catalog.js +41 -0
- package/dist/catalog/commands/catalog/init-catalog.js.map +1 -0
- package/dist/catalog/commands/catalog/new/new-agent.d.ts +5 -0
- package/dist/catalog/commands/catalog/new/new-agent.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/new/new-agent.js +18 -0
- package/dist/catalog/commands/catalog/new/new-agent.js.map +1 -0
- package/dist/catalog/commands/catalog/new/new-guideline.d.ts +5 -0
- package/dist/catalog/commands/catalog/new/new-guideline.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/new/new-guideline.js +19 -0
- package/dist/catalog/commands/catalog/new/new-guideline.js.map +1 -0
- package/dist/catalog/commands/catalog/new/new-item.d.ts +36 -0
- package/dist/catalog/commands/catalog/new/new-item.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/new/new-item.js +74 -0
- package/dist/catalog/commands/catalog/new/new-item.js.map +1 -0
- package/dist/catalog/commands/catalog/new/new-skill.d.ts +5 -0
- package/dist/catalog/commands/catalog/new/new-skill.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/new/new-skill.js +18 -0
- package/dist/catalog/commands/catalog/new/new-skill.js.map +1 -0
- package/dist/catalog/commands/catalog/new-pack.d.ts +16 -0
- package/dist/catalog/commands/catalog/new-pack.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/new-pack.js +49 -0
- package/dist/catalog/commands/catalog/new-pack.js.map +1 -0
- package/dist/catalog/commands/catalog/validate-catalog.d.ts +25 -0
- package/dist/catalog/commands/catalog/validate-catalog.d.ts.map +1 -0
- package/dist/catalog/commands/catalog/validate-catalog.js +168 -0
- package/dist/catalog/commands/catalog/validate-catalog.js.map +1 -0
- package/dist/catalog/commands/check.d.ts +20 -0
- package/dist/catalog/commands/check.d.ts.map +1 -0
- package/dist/catalog/commands/check.js +32 -0
- package/dist/catalog/commands/check.js.map +1 -0
- package/dist/catalog/commands/init.d.ts +34 -0
- package/dist/catalog/commands/init.d.ts.map +1 -0
- package/dist/catalog/commands/init.js +252 -0
- package/dist/catalog/commands/init.js.map +1 -0
- package/dist/catalog/commands/list-items.d.ts +17 -0
- package/dist/catalog/commands/list-items.d.ts.map +1 -0
- package/dist/catalog/commands/list-items.js +72 -0
- package/dist/catalog/commands/list-items.js.map +1 -0
- package/dist/catalog/commands/list-packs.d.ts +14 -0
- package/dist/catalog/commands/list-packs.d.ts.map +1 -0
- package/dist/catalog/commands/list-packs.js +52 -0
- package/dist/catalog/commands/list-packs.js.map +1 -0
- package/dist/catalog/commands/remove-item.d.ts +25 -0
- package/dist/catalog/commands/remove-item.d.ts.map +1 -0
- package/dist/catalog/commands/remove-item.js +122 -0
- package/dist/catalog/commands/remove-item.js.map +1 -0
- package/dist/catalog/commands/remove-pack.d.ts +22 -0
- package/dist/catalog/commands/remove-pack.d.ts.map +1 -0
- package/dist/catalog/commands/remove-pack.js +69 -0
- package/dist/catalog/commands/remove-pack.js.map +1 -0
- package/dist/catalog/commands/show-item.d.ts +27 -0
- package/dist/catalog/commands/show-item.d.ts.map +1 -0
- package/dist/catalog/commands/show-item.js +63 -0
- package/dist/catalog/commands/show-item.js.map +1 -0
- package/dist/catalog/commands/sync.d.ts +17 -0
- package/dist/catalog/commands/sync.d.ts.map +1 -0
- package/dist/catalog/commands/sync.js +31 -0
- package/dist/catalog/commands/sync.js.map +1 -0
- package/dist/catalog/config/load.d.ts +3 -0
- package/dist/catalog/config/load.d.ts.map +1 -0
- package/dist/catalog/config/load.js +18 -0
- package/dist/catalog/config/load.js.map +1 -0
- package/dist/catalog/config/normalize.d.ts +6 -0
- package/dist/catalog/config/normalize.d.ts.map +1 -0
- package/dist/catalog/config/normalize.js +30 -0
- package/dist/catalog/config/normalize.js.map +1 -0
- package/dist/catalog/config/reference.d.ts +2 -0
- package/dist/catalog/config/reference.d.ts.map +1 -0
- package/dist/catalog/config/reference.js +52 -0
- package/dist/catalog/config/reference.js.map +1 -0
- package/dist/catalog/config/schema.d.ts +80 -0
- package/dist/catalog/config/schema.d.ts.map +1 -0
- package/dist/catalog/config/schema.js +29 -0
- package/dist/catalog/config/schema.js.map +1 -0
- package/dist/catalog/config/write.d.ts +3 -0
- package/dist/catalog/config/write.d.ts.map +1 -0
- package/dist/catalog/config/write.js +28 -0
- package/dist/catalog/config/write.js.map +1 -0
- package/dist/catalog/content/item/find-detail.d.ts +5 -0
- package/dist/catalog/content/item/find-detail.d.ts.map +1 -0
- package/dist/catalog/content/item/find-detail.js +90 -0
- package/dist/catalog/content/item/find-detail.js.map +1 -0
- package/dist/catalog/content/item/list-assets.d.ts +2 -0
- package/dist/catalog/content/item/list-assets.d.ts.map +1 -0
- package/dist/catalog/content/item/list-assets.js +38 -0
- package/dist/catalog/content/item/list-assets.js.map +1 -0
- package/dist/catalog/content/item/model.d.ts +24 -0
- package/dist/catalog/content/item/model.d.ts.map +1 -0
- package/dist/catalog/content/item/model.js +2 -0
- package/dist/catalog/content/item/model.js.map +1 -0
- package/dist/catalog/content/item/parse-detail.d.ts +5 -0
- package/dist/catalog/content/item/parse-detail.d.ts.map +1 -0
- package/dist/catalog/content/item/parse-detail.js +32 -0
- package/dist/catalog/content/item/parse-detail.js.map +1 -0
- package/dist/catalog/content/item/parse-summary.d.ts +6 -0
- package/dist/catalog/content/item/parse-summary.d.ts.map +1 -0
- package/dist/catalog/content/item/parse-summary.js +58 -0
- package/dist/catalog/content/item/parse-summary.js.map +1 -0
- package/dist/catalog/content/item/schema.d.ts +49 -0
- package/dist/catalog/content/item/schema.d.ts.map +1 -0
- package/dist/catalog/content/item/schema.js +32 -0
- package/dist/catalog/content/item/schema.js.map +1 -0
- package/dist/catalog/content/load.d.ts +3 -0
- package/dist/catalog/content/load.d.ts.map +1 -0
- package/dist/catalog/content/load.js +19 -0
- package/dist/catalog/content/load.js.map +1 -0
- package/dist/catalog/content/model.d.ts +12 -0
- package/dist/catalog/content/model.d.ts.map +1 -0
- package/dist/catalog/content/model.js +2 -0
- package/dist/catalog/content/model.js.map +1 -0
- package/dist/catalog/content/pack/model.d.ts +20 -0
- package/dist/catalog/content/pack/model.d.ts.map +1 -0
- package/dist/catalog/content/pack/model.js +2 -0
- package/dist/catalog/content/pack/model.js.map +1 -0
- package/dist/catalog/content/pack/parse.d.ts +5 -0
- package/dist/catalog/content/pack/parse.d.ts.map +1 -0
- package/dist/catalog/content/pack/parse.js +68 -0
- package/dist/catalog/content/pack/parse.js.map +1 -0
- package/dist/catalog/content/pack/schema.d.ts +8 -0
- package/dist/catalog/content/pack/schema.d.ts.map +1 -0
- package/dist/catalog/content/pack/schema.js +9 -0
- package/dist/catalog/content/pack/schema.js.map +1 -0
- package/dist/catalog/content/parse.d.ts +4 -0
- package/dist/catalog/content/parse.d.ts.map +1 -0
- package/dist/catalog/content/parse.js +30 -0
- package/dist/catalog/content/parse.js.map +1 -0
- package/dist/catalog/content/schema.d.ts +14 -0
- package/dist/catalog/content/schema.d.ts.map +1 -0
- package/dist/catalog/content/schema.js +13 -0
- package/dist/catalog/content/schema.js.map +1 -0
- package/dist/catalog/install/adapters/adapter.d.ts +27 -0
- package/dist/catalog/install/adapters/adapter.d.ts.map +1 -0
- package/dist/catalog/install/adapters/adapter.js +30 -0
- package/dist/catalog/install/adapters/adapter.js.map +1 -0
- package/dist/catalog/install/adapters/claude.adapter.d.ts +14 -0
- package/dist/catalog/install/adapters/claude.adapter.d.ts.map +1 -0
- package/dist/catalog/install/adapters/claude.adapter.js +60 -0
- package/dist/catalog/install/adapters/claude.adapter.js.map +1 -0
- package/dist/catalog/install/adapters/codex.adapter.d.ts +13 -0
- package/dist/catalog/install/adapters/codex.adapter.d.ts.map +1 -0
- package/dist/catalog/install/adapters/codex.adapter.js +68 -0
- package/dist/catalog/install/adapters/codex.adapter.js.map +1 -0
- package/dist/catalog/install/adapters/registry.d.ts +4 -0
- package/dist/catalog/install/adapters/registry.d.ts.map +1 -0
- package/dist/catalog/install/adapters/registry.js +10 -0
- package/dist/catalog/install/adapters/registry.js.map +1 -0
- package/dist/catalog/install/apply.d.ts +3 -0
- package/dist/catalog/install/apply.d.ts.map +1 -0
- package/dist/catalog/install/apply.js +105 -0
- package/dist/catalog/install/apply.js.map +1 -0
- package/dist/catalog/install/classify.d.ts +4 -0
- package/dist/catalog/install/classify.d.ts.map +1 -0
- package/dist/catalog/install/classify.js +78 -0
- package/dist/catalog/install/classify.js.map +1 -0
- package/dist/catalog/install/diff.d.ts +3 -0
- package/dist/catalog/install/diff.d.ts.map +1 -0
- package/dist/catalog/install/diff.js +88 -0
- package/dist/catalog/install/diff.js.map +1 -0
- package/dist/catalog/install/lockfile/items.d.ts +5 -0
- package/dist/catalog/install/lockfile/items.d.ts.map +1 -0
- package/dist/catalog/install/lockfile/items.js +37 -0
- package/dist/catalog/install/lockfile/items.js.map +1 -0
- package/dist/catalog/install/lockfile/load.d.ts +3 -0
- package/dist/catalog/install/lockfile/load.d.ts.map +1 -0
- package/dist/catalog/install/lockfile/load.js +42 -0
- package/dist/catalog/install/lockfile/load.js.map +1 -0
- package/dist/catalog/install/lockfile/model.d.ts +6 -0
- package/dist/catalog/install/lockfile/model.d.ts.map +1 -0
- package/dist/catalog/install/lockfile/model.js +2 -0
- package/dist/catalog/install/lockfile/model.js.map +1 -0
- package/dist/catalog/install/lockfile/schema.d.ts +13 -0
- package/dist/catalog/install/lockfile/schema.d.ts.map +1 -0
- package/dist/catalog/install/lockfile/schema.js +9 -0
- package/dist/catalog/install/lockfile/schema.js.map +1 -0
- package/dist/catalog/install/lockfile/write.d.ts +5 -0
- package/dist/catalog/install/lockfile/write.d.ts.map +1 -0
- package/dist/catalog/install/lockfile/write.js +13 -0
- package/dist/catalog/install/lockfile/write.js.map +1 -0
- package/dist/catalog/install/managed-block.d.ts +4 -0
- package/dist/catalog/install/managed-block.d.ts.map +1 -0
- package/dist/catalog/install/managed-block.js +40 -0
- package/dist/catalog/install/managed-block.js.map +1 -0
- package/dist/catalog/install/model.d.ts +46 -0
- package/dist/catalog/install/model.d.ts.map +1 -0
- package/dist/catalog/install/model.js +2 -0
- package/dist/catalog/install/model.js.map +1 -0
- package/dist/catalog/install/plan.d.ts +4 -0
- package/dist/catalog/install/plan.d.ts.map +1 -0
- package/dist/catalog/install/plan.js +71 -0
- package/dist/catalog/install/plan.js.map +1 -0
- package/dist/catalog/source/resolve-git.d.ts +7 -0
- package/dist/catalog/source/resolve-git.d.ts.map +1 -0
- package/dist/catalog/source/resolve-git.js +65 -0
- package/dist/catalog/source/resolve-git.js.map +1 -0
- package/dist/catalog/source/resolve-local.d.ts +7 -0
- package/dist/catalog/source/resolve-local.d.ts.map +1 -0
- package/dist/catalog/source/resolve-local.js +13 -0
- package/dist/catalog/source/resolve-local.js.map +1 -0
- package/dist/catalog/source/resolve.d.ts +3 -0
- package/dist/catalog/source/resolve.d.ts.map +1 -0
- package/dist/catalog/source/resolve.js +12 -0
- package/dist/catalog/source/resolve.js.map +1 -0
- package/dist/catalog/source/schema.d.ts +13 -0
- package/dist/catalog/source/schema.d.ts.map +1 -0
- package/dist/catalog/source/schema.js +29 -0
- package/dist/catalog/source/schema.js.map +1 -0
- package/dist/catalog/source/validation.d.ts +14 -0
- package/dist/catalog/source/validation.d.ts.map +1 -0
- package/dist/catalog/source/validation.js +42 -0
- package/dist/catalog/source/validation.js.map +1 -0
- package/dist/catalog/tool/catalog.d.ts +12 -0
- package/dist/catalog/tool/catalog.d.ts.map +1 -0
- package/dist/catalog/tool/catalog.js +23 -0
- package/dist/catalog/tool/catalog.js.map +1 -0
- package/dist/catalog/tool/model.d.ts +8 -0
- package/dist/catalog/tool/model.d.ts.map +1 -0
- package/dist/catalog/tool/model.js +2 -0
- package/dist/catalog/tool/model.js.map +1 -0
- package/dist/cli/format.d.ts +28 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/format.js +62 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/helpers.d.ts +2 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +4 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +465 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/pager.d.ts +2 -0
- package/dist/cli/pager.d.ts.map +1 -0
- package/dist/cli/pager.js +35 -0
- package/dist/cli/pager.js.map +1 -0
- package/dist/cli/views/add-item.d.ts +3 -0
- package/dist/cli/views/add-item.d.ts.map +1 -0
- package/dist/cli/views/add-item.js +36 -0
- package/dist/cli/views/add-item.js.map +1 -0
- package/dist/cli/views/add-pack.d.ts +3 -0
- package/dist/cli/views/add-pack.d.ts.map +1 -0
- package/dist/cli/views/add-pack.js +35 -0
- package/dist/cli/views/add-pack.js.map +1 -0
- package/dist/cli/views/catalog/init-catalog.d.ts +3 -0
- package/dist/cli/views/catalog/init-catalog.d.ts.map +1 -0
- package/dist/cli/views/catalog/init-catalog.js +21 -0
- package/dist/cli/views/catalog/init-catalog.js.map +1 -0
- package/dist/cli/views/catalog/new/new-agent.d.ts +3 -0
- package/dist/cli/views/catalog/new/new-agent.d.ts.map +1 -0
- package/dist/cli/views/catalog/new/new-agent.js +30 -0
- package/dist/cli/views/catalog/new/new-agent.js.map +1 -0
- package/dist/cli/views/catalog/new/new-guideline.d.ts +3 -0
- package/dist/cli/views/catalog/new/new-guideline.d.ts.map +1 -0
- package/dist/cli/views/catalog/new/new-guideline.js +26 -0
- package/dist/cli/views/catalog/new/new-guideline.js.map +1 -0
- package/dist/cli/views/catalog/new/new-skill.d.ts +3 -0
- package/dist/cli/views/catalog/new/new-skill.d.ts.map +1 -0
- package/dist/cli/views/catalog/new/new-skill.js +31 -0
- package/dist/cli/views/catalog/new/new-skill.js.map +1 -0
- package/dist/cli/views/catalog/new-pack.d.ts +3 -0
- package/dist/cli/views/catalog/new-pack.d.ts.map +1 -0
- package/dist/cli/views/catalog/new-pack.js +23 -0
- package/dist/cli/views/catalog/new-pack.js.map +1 -0
- package/dist/cli/views/catalog/validate-catalog.d.ts +3 -0
- package/dist/cli/views/catalog/validate-catalog.d.ts.map +1 -0
- package/dist/cli/views/catalog/validate-catalog.js +57 -0
- package/dist/cli/views/catalog/validate-catalog.js.map +1 -0
- package/dist/cli/views/check.d.ts +3 -0
- package/dist/cli/views/check.d.ts.map +1 -0
- package/dist/cli/views/check.js +23 -0
- package/dist/cli/views/check.js.map +1 -0
- package/dist/cli/views/init.d.ts +3 -0
- package/dist/cli/views/init.d.ts.map +1 -0
- package/dist/cli/views/init.js +29 -0
- package/dist/cli/views/init.js.map +1 -0
- package/dist/cli/views/list-items.d.ts +3 -0
- package/dist/cli/views/list-items.d.ts.map +1 -0
- package/dist/cli/views/list-items.js +65 -0
- package/dist/cli/views/list-items.js.map +1 -0
- package/dist/cli/views/list-packs.d.ts +3 -0
- package/dist/cli/views/list-packs.d.ts.map +1 -0
- package/dist/cli/views/list-packs.js +50 -0
- package/dist/cli/views/list-packs.js.map +1 -0
- package/dist/cli/views/remove-item.d.ts +3 -0
- package/dist/cli/views/remove-item.d.ts.map +1 -0
- package/dist/cli/views/remove-item.js +35 -0
- package/dist/cli/views/remove-item.js.map +1 -0
- package/dist/cli/views/remove-pack.d.ts +3 -0
- package/dist/cli/views/remove-pack.d.ts.map +1 -0
- package/dist/cli/views/remove-pack.js +34 -0
- package/dist/cli/views/remove-pack.js.map +1 -0
- package/dist/cli/views/shared/banner.d.ts +21 -0
- package/dist/cli/views/shared/banner.d.ts.map +1 -0
- package/dist/cli/views/shared/banner.js +73 -0
- package/dist/cli/views/shared/banner.js.map +1 -0
- package/dist/cli/views/shared/report.d.ts +28 -0
- package/dist/cli/views/shared/report.d.ts.map +1 -0
- package/dist/cli/views/shared/report.js +63 -0
- package/dist/cli/views/shared/report.js.map +1 -0
- package/dist/cli/views/shared/sync-hint.d.ts +2 -0
- package/dist/cli/views/shared/sync-hint.d.ts.map +1 -0
- package/dist/cli/views/shared/sync-hint.js +7 -0
- package/dist/cli/views/shared/sync-hint.js.map +1 -0
- package/dist/cli/views/show-item.d.ts +3 -0
- package/dist/cli/views/show-item.d.ts.map +1 -0
- package/dist/cli/views/show-item.js +107 -0
- package/dist/cli/views/show-item.js.map +1 -0
- package/dist/cli/views/sync.d.ts +3 -0
- package/dist/cli/views/sync.d.ts.map +1 -0
- package/dist/cli/views/sync.js +21 -0
- package/dist/cli/views/sync.js.map +1 -0
- package/dist/core/intro/engine.d.ts +9 -0
- package/dist/core/intro/engine.d.ts.map +1 -0
- package/dist/core/intro/engine.js +98 -0
- package/dist/core/intro/engine.js.map +1 -0
- package/dist/core/intro/index.d.ts +6 -0
- package/dist/core/intro/index.d.ts.map +1 -0
- package/dist/core/intro/index.js +10 -0
- package/dist/core/intro/index.js.map +1 -0
- package/dist/core/intro/paint.d.ts +52 -0
- package/dist/core/intro/paint.d.ts.map +1 -0
- package/dist/core/intro/paint.js +89 -0
- package/dist/core/intro/paint.js.map +1 -0
- package/dist/core/intro/registry.d.ts +21 -0
- package/dist/core/intro/registry.d.ts.map +1 -0
- package/dist/core/intro/registry.js +31 -0
- package/dist/core/intro/registry.js.map +1 -0
- package/dist/core/intro/text.d.ts +9 -0
- package/dist/core/intro/text.d.ts.map +1 -0
- package/dist/core/intro/text.js +33 -0
- package/dist/core/intro/text.js.map +1 -0
- package/dist/core/intro/types.d.ts +33 -0
- package/dist/core/intro/types.d.ts.map +1 -0
- package/dist/core/intro/types.js +2 -0
- package/dist/core/intro/types.js.map +1 -0
- package/dist/core/intro/variants/bolt.d.ts +3 -0
- package/dist/core/intro/variants/bolt.d.ts.map +1 -0
- package/dist/core/intro/variants/bolt.js +62 -0
- package/dist/core/intro/variants/bolt.js.map +1 -0
- package/dist/core/intro/variants/fanout.d.ts +3 -0
- package/dist/core/intro/variants/fanout.d.ts.map +1 -0
- package/dist/core/intro/variants/fanout.js +90 -0
- package/dist/core/intro/variants/fanout.js.map +1 -0
- package/dist/core/intro/variants/tide.d.ts +3 -0
- package/dist/core/intro/variants/tide.d.ts.map +1 -0
- package/dist/core/intro/variants/tide.js +64 -0
- package/dist/core/intro/variants/tide.js.map +1 -0
- package/dist/core/intro/variants/wordmark-wave.d.ts +3 -0
- package/dist/core/intro/variants/wordmark-wave.d.ts.map +1 -0
- package/dist/core/intro/variants/wordmark-wave.js +49 -0
- package/dist/core/intro/variants/wordmark-wave.js.map +1 -0
- package/dist/core/intro/variants/wordmark.d.ts +3 -0
- package/dist/core/intro/variants/wordmark.d.ts.map +1 -0
- package/dist/core/intro/variants/wordmark.js +35 -0
- package/dist/core/intro/variants/wordmark.js.map +1 -0
- package/dist/core/json.d.ts +2 -0
- package/dist/core/json.d.ts.map +1 -0
- package/dist/core/json.js +12 -0
- package/dist/core/json.js.map +1 -0
- package/dist/core/output.d.ts +5 -0
- package/dist/core/output.d.ts.map +1 -0
- package/dist/core/output.js +18 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/paths.d.ts +8 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +17 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/progress.d.ts +8 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +44 -0
- package/dist/core/progress.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import toml from 'smol-toml';
|
|
3
|
+
import { Adapter } from './adapter.js';
|
|
4
|
+
export class CodexAdapter extends Adapter {
|
|
5
|
+
skillsDir = '.codex/skills';
|
|
6
|
+
agentsDir = '.codex/agents';
|
|
7
|
+
constructor() {
|
|
8
|
+
super({ id: 'codex', managedBlockFile: 'AGENTS.md' });
|
|
9
|
+
}
|
|
10
|
+
renderSkill(sourceAlias, packName, skill) {
|
|
11
|
+
const { name: skillName, description, toolConfig, instructions, sourceDir, assets } = skill;
|
|
12
|
+
const installName = this.buildInstallName(sourceAlias, packName, skillName);
|
|
13
|
+
const frontmatter = this.buildItemFrontmatter({ name: installName, description, toolConfig });
|
|
14
|
+
const dir = path.join(this.skillsDir, installName);
|
|
15
|
+
const entryFileName = 'SKILL.md';
|
|
16
|
+
const entryContent = `---\n${frontmatter}\n---\n\n${instructions}\n`;
|
|
17
|
+
return {
|
|
18
|
+
packName,
|
|
19
|
+
skillName,
|
|
20
|
+
dir,
|
|
21
|
+
entryFileName,
|
|
22
|
+
entryContent,
|
|
23
|
+
sourceDir,
|
|
24
|
+
assets,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
renderAgent(sourceAlias, packName, agent) {
|
|
28
|
+
const { name: agentName, description, toolConfig, instructions } = agent;
|
|
29
|
+
const installName = this.buildInstallName(sourceAlias, packName, agentName);
|
|
30
|
+
const vendorConfig = this.selectVendorConfig(toolConfig);
|
|
31
|
+
const placeholder = '__BOLT_DEVELOPER_INSTRUCTIONS';
|
|
32
|
+
const serialized = toml.stringify({
|
|
33
|
+
name: installName,
|
|
34
|
+
description,
|
|
35
|
+
developer_instructions: placeholder,
|
|
36
|
+
...vendorConfig,
|
|
37
|
+
});
|
|
38
|
+
const escaped = instructions.replace(/\\/g, '\\\\').replace(/"""/g, '\\"\\"\\"');
|
|
39
|
+
const multiline = `"""\n${escaped}\n"""`;
|
|
40
|
+
const content = `${serialized.replace(`"${placeholder}"`, multiline).trimEnd()}\n`;
|
|
41
|
+
const filePath = path.join(this.agentsDir, `${installName}.toml`);
|
|
42
|
+
return {
|
|
43
|
+
packName,
|
|
44
|
+
agentName,
|
|
45
|
+
filePath,
|
|
46
|
+
content,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
renderGuideline(sourceAlias, packName, guideline, guidelineSelection) {
|
|
50
|
+
const { name: guidelineName, description, body } = guideline;
|
|
51
|
+
const sourceTag = `<!-- bolt: ${sourceAlias}/${packName}/${guidelineName} - ${description} -->`;
|
|
52
|
+
const lines = [sourceTag, ''];
|
|
53
|
+
if (guidelineSelection.load === 'conditional') {
|
|
54
|
+
const globs = guidelineSelection.glob.map((value) => `\`${value}\``).join(', ');
|
|
55
|
+
lines.push(`> **The guideline below applies only when working with files matching ${globs}.**`);
|
|
56
|
+
lines.push('');
|
|
57
|
+
}
|
|
58
|
+
lines.push(body);
|
|
59
|
+
const fragment = lines.join('\n');
|
|
60
|
+
return {
|
|
61
|
+
kind: 'block-fragment',
|
|
62
|
+
packName,
|
|
63
|
+
guidelineName,
|
|
64
|
+
fragment,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=codex.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.adapter.js","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/codex.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAExD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClaudeAdapter } from './claude.adapter.js';
|
|
2
|
+
import { CodexAdapter } from './codex.adapter.js';
|
|
3
|
+
const ADAPTERS = {
|
|
4
|
+
claude: new ClaudeAdapter(),
|
|
5
|
+
codex: new CodexAdapter(),
|
|
6
|
+
};
|
|
7
|
+
export function getAdapters(toolIds) {
|
|
8
|
+
return toolIds.map((toolId) => ADAPTERS[toolId]);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,QAAQ,GAA4B;IACxC,MAAM,EAAE,IAAI,aAAa,EAAE;IAC3B,KAAK,EAAE,IAAI,YAAY,EAAE;CAC1B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAiB;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWlE,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CA2H/E"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { loadLockfile } from './lockfile/load.js';
|
|
4
|
+
import { buildLockfile, writeLockfile } from './lockfile/write.js';
|
|
5
|
+
import { collectInstalledItems, findOrphans } from './lockfile/items.js';
|
|
6
|
+
import { buildManagedBlock, buildManagedBlockContent, replaceManagedBlock, } from './managed-block.js';
|
|
7
|
+
import { classifyChange, classifySkill } from './classify.js';
|
|
8
|
+
export function applyPlan(projectPath, toolPlans) {
|
|
9
|
+
const previousLockfile = loadLockfile(projectPath);
|
|
10
|
+
const previousItems = previousLockfile.installedItems;
|
|
11
|
+
const currentItems = collectInstalledItems(toolPlans);
|
|
12
|
+
const currentLockfile = buildLockfile(currentItems);
|
|
13
|
+
const changeSet = {};
|
|
14
|
+
for (const toolPlan of toolPlans) {
|
|
15
|
+
const { tool, renderedSkills, renderedAgents, renderedGuidelines, managedBlock } = toolPlan;
|
|
16
|
+
const syncChanges = [];
|
|
17
|
+
for (const renderedSkill of renderedSkills) {
|
|
18
|
+
const { packName, skillName, dir, entryFileName, entryContent, sourceDir, assets } = renderedSkill;
|
|
19
|
+
const skillDirPath = path.join(projectPath, dir);
|
|
20
|
+
const skillEntryFilePath = path.join(skillDirPath, entryFileName);
|
|
21
|
+
const status = classifySkill(projectPath, renderedSkill);
|
|
22
|
+
fs.rmSync(skillDirPath, { recursive: true, force: true });
|
|
23
|
+
fs.mkdirSync(skillDirPath, { recursive: true });
|
|
24
|
+
fs.writeFileSync(skillEntryFilePath, entryContent, 'utf-8');
|
|
25
|
+
for (const asset of assets) {
|
|
26
|
+
const sourceAssetPath = path.join(sourceDir, asset);
|
|
27
|
+
const targetAssetPath = path.join(skillDirPath, asset);
|
|
28
|
+
fs.cpSync(sourceAssetPath, targetAssetPath, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
if (status) {
|
|
31
|
+
syncChanges.push({
|
|
32
|
+
label: `${packName}/${skillName}`,
|
|
33
|
+
status,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
for (const renderedAgent of renderedAgents) {
|
|
38
|
+
const { packName, agentName, filePath, content } = renderedAgent;
|
|
39
|
+
const agentFilePath = path.join(projectPath, filePath);
|
|
40
|
+
const agentDirPath = path.dirname(agentFilePath);
|
|
41
|
+
const before = fs.existsSync(agentFilePath) ? fs.readFileSync(agentFilePath, 'utf-8') : null;
|
|
42
|
+
fs.mkdirSync(agentDirPath, { recursive: true });
|
|
43
|
+
fs.writeFileSync(agentFilePath, content, 'utf-8');
|
|
44
|
+
const status = classifyChange(before, content);
|
|
45
|
+
if (status) {
|
|
46
|
+
syncChanges.push({ label: `${packName}/${agentName}`, status });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
for (const renderedGuideline of renderedGuidelines) {
|
|
50
|
+
if (renderedGuideline.kind === 'rule-file') {
|
|
51
|
+
const { packName, guidelineName, filePath, content } = renderedGuideline;
|
|
52
|
+
const guidelineFilePath = path.join(projectPath, filePath);
|
|
53
|
+
const guidelineDirPath = path.dirname(guidelineFilePath);
|
|
54
|
+
const before = fs.existsSync(guidelineFilePath)
|
|
55
|
+
? fs.readFileSync(guidelineFilePath, 'utf-8')
|
|
56
|
+
: null;
|
|
57
|
+
fs.mkdirSync(guidelineDirPath, { recursive: true });
|
|
58
|
+
fs.writeFileSync(guidelineFilePath, content, 'utf-8');
|
|
59
|
+
const status = classifyChange(before, content);
|
|
60
|
+
if (status) {
|
|
61
|
+
syncChanges.push({ label: `${packName}/${guidelineName}`, status });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (managedBlock) {
|
|
66
|
+
const { filePath, fragments } = managedBlock;
|
|
67
|
+
const blockFilePath = path.join(projectPath, filePath);
|
|
68
|
+
const blockFileDir = path.dirname(blockFilePath);
|
|
69
|
+
const before = fs.existsSync(blockFilePath) ? fs.readFileSync(blockFilePath, 'utf-8') : null;
|
|
70
|
+
const blockContent = buildManagedBlockContent(fragments);
|
|
71
|
+
const content = before === null
|
|
72
|
+
? buildManagedBlock(blockContent)
|
|
73
|
+
: replaceManagedBlock(before, blockContent);
|
|
74
|
+
fs.mkdirSync(blockFileDir, { recursive: true });
|
|
75
|
+
fs.writeFileSync(blockFilePath, content, 'utf-8');
|
|
76
|
+
const status = classifyChange(before, content);
|
|
77
|
+
if (status) {
|
|
78
|
+
syncChanges.push({ label: `${filePath} (managed block)`, status });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
changeSet[tool] = syncChanges;
|
|
82
|
+
}
|
|
83
|
+
const removed = findOrphans(previousItems, currentItems);
|
|
84
|
+
for (const items of Object.values(removed)) {
|
|
85
|
+
for (const item of items) {
|
|
86
|
+
fs.rmSync(path.join(projectPath, item.path), { recursive: true, force: true });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const removedItemsByTool = Object.entries(removed);
|
|
90
|
+
for (const [tool, removedItems] of removedItemsByTool) {
|
|
91
|
+
const syncChanges = removedItems.map((removedItem) => ({
|
|
92
|
+
label: removedItem.label,
|
|
93
|
+
status: 'removed',
|
|
94
|
+
}));
|
|
95
|
+
if (changeSet[tool]) {
|
|
96
|
+
changeSet[tool].push(...syncChanges);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
changeSet[tool] = syncChanges;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
writeLockfile(projectPath, currentLockfile);
|
|
103
|
+
return changeSet;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/catalog/install/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ChangeStatus, RenderedSkill } from './model.js';
|
|
2
|
+
export declare function classifyChange(before: string | null, current: string): ChangeStatus | null;
|
|
3
|
+
export declare function classifySkill(projectPath: string, renderedSkill: RenderedSkill): ChangeStatus | null;
|
|
4
|
+
//# sourceMappingURL=classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/classify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAI1F;AAkED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,GAC3B,YAAY,GAAG,IAAI,CAYrB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
export function classifyChange(before, current) {
|
|
4
|
+
if (before === null)
|
|
5
|
+
return 'installed';
|
|
6
|
+
if (before !== current)
|
|
7
|
+
return 'updated';
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
function walkFiles(root) {
|
|
11
|
+
const filePaths = [];
|
|
12
|
+
const walk = (dir, prefix) => {
|
|
13
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
14
|
+
for (const entry of entries) {
|
|
15
|
+
const entryPath = path.join(dir, entry.name);
|
|
16
|
+
const relPath = prefix ? path.join(prefix, entry.name) : entry.name;
|
|
17
|
+
if (entry.isDirectory()) {
|
|
18
|
+
walk(entryPath, relPath);
|
|
19
|
+
}
|
|
20
|
+
else if (entry.isFile()) {
|
|
21
|
+
filePaths.push(relPath);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
walk(root, '');
|
|
26
|
+
return filePaths;
|
|
27
|
+
}
|
|
28
|
+
function collectDesiredFiles(renderedSkill) {
|
|
29
|
+
const { entryFileName, entryContent, sourceDir, assets } = renderedSkill;
|
|
30
|
+
const files = new Map();
|
|
31
|
+
files.set(entryFileName, entryContent);
|
|
32
|
+
for (const asset of assets) {
|
|
33
|
+
const assetSourcePath = path.join(sourceDir, asset);
|
|
34
|
+
const isDirectoryAsset = fs.statSync(assetSourcePath).isDirectory();
|
|
35
|
+
if (isDirectoryAsset) {
|
|
36
|
+
const assetFiles = walkFiles(assetSourcePath);
|
|
37
|
+
for (const relPath of assetFiles) {
|
|
38
|
+
const fileSourcePath = path.join(assetSourcePath, relPath);
|
|
39
|
+
const fileContent = fs.readFileSync(fileSourcePath, 'utf-8');
|
|
40
|
+
const installPath = path.join(asset, relPath);
|
|
41
|
+
files.set(installPath, fileContent);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const fileContent = fs.readFileSync(assetSourcePath, 'utf-8');
|
|
46
|
+
files.set(asset, fileContent);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return files;
|
|
50
|
+
}
|
|
51
|
+
function collectInstalledFiles(skillDirPath) {
|
|
52
|
+
const files = new Map();
|
|
53
|
+
for (const relPath of walkFiles(skillDirPath)) {
|
|
54
|
+
files.set(relPath, fs.readFileSync(path.join(skillDirPath, relPath), 'utf-8'));
|
|
55
|
+
}
|
|
56
|
+
return files;
|
|
57
|
+
}
|
|
58
|
+
function isUpToDate(desired, installed) {
|
|
59
|
+
if (desired.size !== installed.size)
|
|
60
|
+
return false;
|
|
61
|
+
for (const [relPath, content] of desired) {
|
|
62
|
+
if (installed.get(relPath) !== content)
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
export function classifySkill(projectPath, renderedSkill) {
|
|
68
|
+
const { dir, entryFileName } = renderedSkill;
|
|
69
|
+
const skillDirPath = path.join(projectPath, dir);
|
|
70
|
+
const entryFilePath = path.join(skillDirPath, entryFileName);
|
|
71
|
+
if (!fs.existsSync(entryFilePath)) {
|
|
72
|
+
return 'installed';
|
|
73
|
+
}
|
|
74
|
+
const desired = collectDesiredFiles(renderedSkill);
|
|
75
|
+
const installed = collectInstalledFiles(skillDirPath);
|
|
76
|
+
return isUpToDate(desired, installed) ? null : 'updated';
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../src/catalog/install/classify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUlE,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAkG9E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { loadLockfile } from './lockfile/load.js';
|
|
4
|
+
import { collectInstalledItems, findOrphans } from './lockfile/items.js';
|
|
5
|
+
import { classifyChange, classifySkill } from './classify.js';
|
|
6
|
+
import { buildManagedBlock, buildManagedBlockContent, replaceManagedBlock, } from './managed-block.js';
|
|
7
|
+
export function diffPlan(projectPath, toolPlans) {
|
|
8
|
+
const previousLockfile = loadLockfile(projectPath);
|
|
9
|
+
const previousItems = previousLockfile.installedItems;
|
|
10
|
+
const currentItems = collectInstalledItems(toolPlans);
|
|
11
|
+
const changeSet = {};
|
|
12
|
+
for (const toolPlan of toolPlans) {
|
|
13
|
+
const { tool, renderedSkills, renderedAgents, renderedGuidelines, managedBlock } = toolPlan;
|
|
14
|
+
const changes = [];
|
|
15
|
+
for (const renderedSkill of renderedSkills) {
|
|
16
|
+
const { packName, skillName } = renderedSkill;
|
|
17
|
+
const status = classifySkill(projectPath, renderedSkill);
|
|
18
|
+
if (status) {
|
|
19
|
+
changes.push({
|
|
20
|
+
label: `${packName}/${skillName}`,
|
|
21
|
+
status,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
for (const renderedAgent of renderedAgents) {
|
|
26
|
+
const { packName, agentName, filePath, content } = renderedAgent;
|
|
27
|
+
const agentFilePath = path.join(projectPath, filePath);
|
|
28
|
+
const before = fs.existsSync(agentFilePath) ? fs.readFileSync(agentFilePath, 'utf-8') : null;
|
|
29
|
+
const status = classifyChange(before, content);
|
|
30
|
+
if (status) {
|
|
31
|
+
changes.push({
|
|
32
|
+
label: `${packName}/${agentName}`,
|
|
33
|
+
status,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
for (const renderedGuideline of renderedGuidelines) {
|
|
38
|
+
const { packName, guidelineName, kind } = renderedGuideline;
|
|
39
|
+
if (kind === 'rule-file') {
|
|
40
|
+
const { filePath, content } = renderedGuideline;
|
|
41
|
+
const guidelineFilePath = path.join(projectPath, filePath);
|
|
42
|
+
const before = fs.existsSync(guidelineFilePath)
|
|
43
|
+
? fs.readFileSync(guidelineFilePath, 'utf-8')
|
|
44
|
+
: null;
|
|
45
|
+
const status = classifyChange(before, content);
|
|
46
|
+
if (status) {
|
|
47
|
+
changes.push({
|
|
48
|
+
label: `${packName}/${guidelineName}`,
|
|
49
|
+
status,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (managedBlock) {
|
|
55
|
+
const { filePath, fragments } = managedBlock;
|
|
56
|
+
const blockFilePath = path.join(projectPath, filePath);
|
|
57
|
+
const before = fs.existsSync(blockFilePath) ? fs.readFileSync(blockFilePath, 'utf-8') : null;
|
|
58
|
+
const blockContent = buildManagedBlockContent(fragments);
|
|
59
|
+
const content = before === null
|
|
60
|
+
? buildManagedBlock(blockContent)
|
|
61
|
+
: replaceManagedBlock(before, blockContent);
|
|
62
|
+
const status = classifyChange(before, content);
|
|
63
|
+
if (status) {
|
|
64
|
+
changes.push({
|
|
65
|
+
label: `${filePath} (managed block)`,
|
|
66
|
+
status,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
changeSet[tool] = changes;
|
|
71
|
+
}
|
|
72
|
+
const removed = findOrphans(previousItems, currentItems);
|
|
73
|
+
const removedItemsByTool = Object.entries(removed);
|
|
74
|
+
for (const [tool, removedItems] of removedItemsByTool) {
|
|
75
|
+
const syncChanges = removedItems.map((removedItem) => ({
|
|
76
|
+
label: removedItem.label,
|
|
77
|
+
status: 'removed',
|
|
78
|
+
}));
|
|
79
|
+
if (changeSet[tool]) {
|
|
80
|
+
changeSet[tool].push(...syncChanges);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
changeSet[tool] = syncChanges;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return changeSet;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/catalog/install/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ToolPlan } from '../model.js';
|
|
2
|
+
import type { InstalledItems } from './model.js';
|
|
3
|
+
export declare function collectInstalledItems(toolPlans: ToolPlan[]): InstalledItems;
|
|
4
|
+
export declare function findOrphans(previous: InstalledItems, current: InstalledItems): InstalledItems;
|
|
5
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CA6B3E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAgB7F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export function collectInstalledItems(toolPlans) {
|
|
2
|
+
const byTool = {};
|
|
3
|
+
for (const toolPlan of toolPlans) {
|
|
4
|
+
const { tool, renderedSkills, renderedAgents, renderedGuidelines } = toolPlan;
|
|
5
|
+
const items = [];
|
|
6
|
+
for (const renderedSkill of renderedSkills) {
|
|
7
|
+
const { packName, skillName, dir } = renderedSkill;
|
|
8
|
+
items.push({ label: `${packName}/${skillName}`, path: dir });
|
|
9
|
+
}
|
|
10
|
+
for (const renderedAgent of renderedAgents) {
|
|
11
|
+
const { packName, agentName, filePath } = renderedAgent;
|
|
12
|
+
items.push({ label: `${packName}/${agentName}`, path: filePath });
|
|
13
|
+
}
|
|
14
|
+
for (const renderedGuideline of renderedGuidelines) {
|
|
15
|
+
if (renderedGuideline.kind === 'rule-file') {
|
|
16
|
+
const { packName, guidelineName, filePath } = renderedGuideline;
|
|
17
|
+
items.push({ label: `${packName}/${guidelineName}`, path: filePath });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
byTool[tool] = items;
|
|
21
|
+
}
|
|
22
|
+
return byTool;
|
|
23
|
+
}
|
|
24
|
+
export function findOrphans(previous, current) {
|
|
25
|
+
const currentPaths = new Set(Object.values(current)
|
|
26
|
+
.flat()
|
|
27
|
+
.map((item) => item.path));
|
|
28
|
+
const orphansByTool = {};
|
|
29
|
+
for (const [tool, items] of Object.entries(previous)) {
|
|
30
|
+
const orphans = items.filter((item) => !currentPaths.has(item.path));
|
|
31
|
+
if (orphans.length > 0) {
|
|
32
|
+
orphansByTool[tool] = orphans;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return orphansByTool;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/items.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qBAAqB,CAAC,SAAqB;IACzD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAC;QAE9E,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACnD,IAAI,iBAAiB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3C,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAwB,EAAE,OAAuB;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SACnB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;IAEF,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/load.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwB5D,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAqB1D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { buildInstallLockPath } from '#core/paths.js';
|
|
4
|
+
import { LockfileSchema } from './schema.js';
|
|
5
|
+
function isWithinProject(projectPath, relPath) {
|
|
6
|
+
const resolvedPath = path.resolve(projectPath, relPath);
|
|
7
|
+
const relativePath = path.relative(projectPath, resolvedPath);
|
|
8
|
+
return !relativePath.startsWith('..') && !path.isAbsolute(relativePath);
|
|
9
|
+
}
|
|
10
|
+
function isManagedPath(projectPath, relPath) {
|
|
11
|
+
const withinProject = isWithinProject(projectPath, relPath);
|
|
12
|
+
const hasInstallPrefix = path.basename(relPath).startsWith('bolt-');
|
|
13
|
+
return withinProject && hasInstallPrefix;
|
|
14
|
+
}
|
|
15
|
+
function sanitizeItems(projectPath, installedItems) {
|
|
16
|
+
const sanitized = {};
|
|
17
|
+
const installedItemsByTool = Object.entries(installedItems);
|
|
18
|
+
for (const [tool, items] of installedItemsByTool) {
|
|
19
|
+
sanitized[tool] = items.filter((item) => isManagedPath(projectPath, item.path));
|
|
20
|
+
}
|
|
21
|
+
return sanitized;
|
|
22
|
+
}
|
|
23
|
+
export function loadLockfile(projectPath) {
|
|
24
|
+
const lockfilePath = buildInstallLockPath(projectPath);
|
|
25
|
+
let raw;
|
|
26
|
+
try {
|
|
27
|
+
const file = fs.readFileSync(lockfilePath, 'utf-8');
|
|
28
|
+
raw = JSON.parse(file);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return { installedItems: {} };
|
|
32
|
+
}
|
|
33
|
+
const parsed = LockfileSchema.safeParse(raw);
|
|
34
|
+
if (parsed.error) {
|
|
35
|
+
return { installedItems: {} };
|
|
36
|
+
}
|
|
37
|
+
const lockfile = parsed.data;
|
|
38
|
+
return {
|
|
39
|
+
installedItems: sanitizeItems(projectPath, lockfile.installedItems),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAG5D,SAAS,eAAe,CAAC,WAAmB,EAAE,OAAe;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,OAAe;IACzD,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,aAAa,IAAI,gBAAgB,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,cAA8B;IACxE,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAE7B,OAAO;QACL,cAAc,EAAE,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const InstalledItemSchema: z.ZodObject<{
|
|
3
|
+
label: z.ZodString;
|
|
4
|
+
path: z.ZodString;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const LockfileSchema: z.ZodObject<{
|
|
7
|
+
installedItems: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
8
|
+
label: z.ZodString;
|
|
9
|
+
path: z.ZodString;
|
|
10
|
+
}, z.core.$strip>>>>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export type Lockfile = z.infer<typeof LockfileSchema>;
|
|
13
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;iBAEzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const InstalledItemSchema = z.object({
|
|
3
|
+
label: z.string(),
|
|
4
|
+
path: z.string(),
|
|
5
|
+
});
|
|
6
|
+
export const LockfileSchema = z.object({
|
|
7
|
+
installedItems: z.record(z.string(), z.array(InstalledItemSchema)).default({}),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/E,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Lockfile } from './schema.js';
|
|
2
|
+
import type { InstalledItems } from './model.js';
|
|
3
|
+
export declare function buildLockfile(installedItems: InstalledItems): Lockfile;
|
|
4
|
+
export declare function writeLockfile(projectPath: string, lockfile: Lockfile): void;
|
|
5
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/write.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,CAEtE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAK3E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { buildInstallLockPath } from '#core/paths.js';
|
|
4
|
+
export function buildLockfile(installedItems) {
|
|
5
|
+
return { installedItems };
|
|
6
|
+
}
|
|
7
|
+
export function writeLockfile(projectPath, lockfile) {
|
|
8
|
+
const lockfilePath = buildInstallLockPath(projectPath);
|
|
9
|
+
const lockfileDirPath = path.dirname(lockfilePath);
|
|
10
|
+
fs.mkdirSync(lockfileDirPath, { recursive: true });
|
|
11
|
+
fs.writeFileSync(lockfilePath, `${JSON.stringify(lockfile, null, 2)}\n`, 'utf-8');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/write.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtD,MAAM,UAAU,aAAa,CAAC,cAA8B;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,QAAkB;IACnE,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC"}
|