agentikit 0.0.13 → 0.0.15

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 (156) hide show
  1. package/LICENSE +385 -0
  2. package/README.md +187 -110
  3. package/dist/{src/asset-spec.js → asset-spec.js} +11 -2
  4. package/dist/{src/asset-type-handler.js → asset-type-handler.js} +4 -3
  5. package/dist/cli.js +709 -0
  6. package/dist/common.js +192 -0
  7. package/dist/{src/config-cli.js → config-cli.js} +36 -30
  8. package/dist/{src/config.js → config.js} +95 -25
  9. package/dist/{src/db.js → db.js} +123 -51
  10. package/dist/{src/embedder.js → embedder.js} +57 -2
  11. package/dist/errors.js +28 -0
  12. package/dist/file-context.js +188 -0
  13. package/dist/{src/frontmatter.js → frontmatter.js} +1 -1
  14. package/dist/{src/github.js → github.js} +1 -3
  15. package/dist/handlers/agent-handler.js +19 -0
  16. package/dist/handlers/command-handler.js +20 -0
  17. package/dist/handlers/handler-bridge.js +51 -0
  18. package/dist/handlers/index.js +19 -0
  19. package/dist/handlers/knowledge-handler.js +32 -0
  20. package/dist/handlers/script-handler.js +42 -0
  21. package/dist/{src/handlers → handlers}/skill-handler.js +5 -6
  22. package/dist/{src/handlers → handlers}/tool-handler.js +8 -24
  23. package/dist/{src/indexer.js → indexer.js} +50 -26
  24. package/dist/init.js +43 -0
  25. package/dist/{src/llm.js → llm.js} +6 -11
  26. package/dist/lockfile.js +60 -0
  27. package/dist/matchers.js +163 -0
  28. package/dist/{src/metadata.js → metadata.js} +36 -16
  29. package/dist/{src/origin-resolve.js → origin-resolve.js} +10 -9
  30. package/dist/paths.js +83 -0
  31. package/dist/{src/registry-install.js → registry-install.js} +151 -19
  32. package/dist/{src/registry-resolve.js → registry-resolve.js} +190 -26
  33. package/dist/{src/registry-search.js → registry-search.js} +13 -21
  34. package/dist/renderers.js +286 -0
  35. package/dist/{src/ripgrep-install.js → ripgrep-install.js} +8 -27
  36. package/dist/{src/ripgrep-resolve.js → ripgrep-resolve.js} +21 -11
  37. package/dist/ripgrep.js +2 -0
  38. package/dist/self-update.js +226 -0
  39. package/dist/{src/stash-add.js → stash-add.js} +14 -4
  40. package/dist/stash-clone.js +115 -0
  41. package/dist/{src/stash-ref.js → stash-ref.js} +10 -9
  42. package/dist/{src/stash-registry.js → stash-registry.js} +21 -46
  43. package/dist/{src/stash-resolve.js → stash-resolve.js} +10 -9
  44. package/dist/{src/stash-search.js → stash-search.js} +89 -74
  45. package/dist/stash-show.js +74 -0
  46. package/dist/stash-source.js +127 -0
  47. package/dist/submit.js +557 -0
  48. package/dist/{src/tool-runner.js → tool-runner.js} +1 -5
  49. package/dist/{src/walker.js → walker.js} +38 -0
  50. package/dist/warn.js +20 -0
  51. package/package.json +13 -18
  52. package/dist/index.d.ts +0 -28
  53. package/dist/index.js +0 -15
  54. package/dist/src/asset-spec.d.ts +0 -16
  55. package/dist/src/asset-type-handler.d.ts +0 -27
  56. package/dist/src/cli.d.ts +0 -2
  57. package/dist/src/cli.js +0 -399
  58. package/dist/src/common.d.ts +0 -13
  59. package/dist/src/common.js +0 -60
  60. package/dist/src/config-cli.d.ts +0 -9
  61. package/dist/src/config.d.ts +0 -50
  62. package/dist/src/db.d.ts +0 -46
  63. package/dist/src/embedder.d.ts +0 -10
  64. package/dist/src/frontmatter.d.ts +0 -30
  65. package/dist/src/github.d.ts +0 -4
  66. package/dist/src/handlers/agent-handler.d.ts +0 -2
  67. package/dist/src/handlers/agent-handler.js +0 -26
  68. package/dist/src/handlers/command-handler.d.ts +0 -2
  69. package/dist/src/handlers/command-handler.js +0 -23
  70. package/dist/src/handlers/index.d.ts +0 -6
  71. package/dist/src/handlers/index.js +0 -23
  72. package/dist/src/handlers/knowledge-handler.d.ts +0 -2
  73. package/dist/src/handlers/knowledge-handler.js +0 -56
  74. package/dist/src/handlers/markdown-helpers.d.ts +0 -7
  75. package/dist/src/handlers/script-handler.d.ts +0 -2
  76. package/dist/src/handlers/script-handler.js +0 -78
  77. package/dist/src/handlers/skill-handler.d.ts +0 -2
  78. package/dist/src/handlers/tool-handler.d.ts +0 -2
  79. package/dist/src/indexer.d.ts +0 -22
  80. package/dist/src/init.d.ts +0 -19
  81. package/dist/src/init.js +0 -99
  82. package/dist/src/llm.d.ts +0 -15
  83. package/dist/src/markdown.d.ts +0 -18
  84. package/dist/src/metadata.d.ts +0 -41
  85. package/dist/src/origin-resolve.d.ts +0 -19
  86. package/dist/src/registry-install.d.ts +0 -11
  87. package/dist/src/registry-resolve.d.ts +0 -3
  88. package/dist/src/registry-search.d.ts +0 -27
  89. package/dist/src/registry-types.d.ts +0 -62
  90. package/dist/src/ripgrep-install.d.ts +0 -12
  91. package/dist/src/ripgrep-resolve.d.ts +0 -13
  92. package/dist/src/ripgrep.d.ts +0 -3
  93. package/dist/src/ripgrep.js +0 -2
  94. package/dist/src/stash-add.d.ts +0 -4
  95. package/dist/src/stash-clone.d.ts +0 -22
  96. package/dist/src/stash-clone.js +0 -83
  97. package/dist/src/stash-ref.d.ts +0 -31
  98. package/dist/src/stash-registry.d.ts +0 -18
  99. package/dist/src/stash-resolve.d.ts +0 -2
  100. package/dist/src/stash-search.d.ts +0 -8
  101. package/dist/src/stash-show.d.ts +0 -5
  102. package/dist/src/stash-show.js +0 -46
  103. package/dist/src/stash-source.d.ts +0 -24
  104. package/dist/src/stash-source.js +0 -81
  105. package/dist/src/stash-types.d.ts +0 -227
  106. package/dist/src/stash.d.ts +0 -16
  107. package/dist/src/stash.js +0 -9
  108. package/dist/src/tool-runner.d.ts +0 -35
  109. package/dist/src/walker.d.ts +0 -19
  110. package/src/asset-spec.ts +0 -85
  111. package/src/asset-type-handler.ts +0 -77
  112. package/src/cli.ts +0 -427
  113. package/src/common.ts +0 -76
  114. package/src/config-cli.ts +0 -499
  115. package/src/config.ts +0 -305
  116. package/src/db.ts +0 -411
  117. package/src/embedder.ts +0 -128
  118. package/src/frontmatter.ts +0 -95
  119. package/src/github.ts +0 -21
  120. package/src/handlers/agent-handler.ts +0 -32
  121. package/src/handlers/command-handler.ts +0 -29
  122. package/src/handlers/index.ts +0 -25
  123. package/src/handlers/knowledge-handler.ts +0 -62
  124. package/src/handlers/markdown-helpers.ts +0 -19
  125. package/src/handlers/script-handler.ts +0 -92
  126. package/src/handlers/skill-handler.ts +0 -37
  127. package/src/handlers/tool-handler.ts +0 -71
  128. package/src/indexer.ts +0 -392
  129. package/src/init.ts +0 -114
  130. package/src/llm.ts +0 -125
  131. package/src/markdown.ts +0 -106
  132. package/src/metadata.ts +0 -333
  133. package/src/origin-resolve.ts +0 -67
  134. package/src/registry-install.ts +0 -361
  135. package/src/registry-resolve.ts +0 -341
  136. package/src/registry-search.ts +0 -335
  137. package/src/registry-types.ts +0 -72
  138. package/src/ripgrep-install.ts +0 -200
  139. package/src/ripgrep-resolve.ts +0 -72
  140. package/src/ripgrep.ts +0 -3
  141. package/src/stash-add.ts +0 -63
  142. package/src/stash-clone.ts +0 -127
  143. package/src/stash-ref.ts +0 -99
  144. package/src/stash-registry.ts +0 -259
  145. package/src/stash-resolve.ts +0 -50
  146. package/src/stash-search.ts +0 -613
  147. package/src/stash-show.ts +0 -55
  148. package/src/stash-source.ts +0 -103
  149. package/src/stash-types.ts +0 -231
  150. package/src/stash.ts +0 -39
  151. package/src/tool-runner.ts +0 -142
  152. package/src/walker.ts +0 -53
  153. /package/dist/{src/handlers → handlers}/markdown-helpers.js +0 -0
  154. /package/dist/{src/markdown.js → markdown.js} +0 -0
  155. /package/dist/{src/registry-types.js → registry-types.js} +0 -0
  156. /package/dist/{src/stash-types.js → stash-types.js} +0 -0
package/README.md CHANGED
@@ -1,91 +1,162 @@
1
1
  # Agent-i-Kit
2
2
 
3
- Agent-i-Kit gives AI coding agents a shared library of capabilities they can
4
- search and use. You organize tools, skills, commands, agents, knowledge, and
5
- scripts into a **stash**, and agents discover what they need through
6
- `akm` (Agent Kit Manager).
3
+ [![npm version](https://img.shields.io/npm/v/agentikit)](https://www.npmjs.com/package/agentikit)
4
+ [![CI](https://github.com/itlackey/agentikit/actions/workflows/ci.yml/badge.svg)](https://github.com/itlackey/agentikit/actions/workflows/ci.yml)
5
+ [![license](https://img.shields.io/npm/l/agentikit)](LICENSE)
7
6
 
8
- ## What Is a Kit?
7
+ A package manager for AI agent capabilities — tools, skills, commands, agents,
8
+ knowledge, and scripts — that works with any AI coding assistant that can run
9
+ shell commands.
9
10
 
10
- A kit is a shareable package of assets. Any directory with asset
11
- subdirectories is a valid kit:
11
+ You build up useful scripts, prompts, and agent configs. Agent-i-Kit lets you
12
+ organize them into a searchable **stash**, share them as installable **kits**,
13
+ and give any model a way to discover and use them through `akm` (Agent Kit
14
+ Manager). No plugins required — just CLI output any tool-calling model can read.
12
15
 
13
- ```text
14
- my-kit/
15
- tools/ # Executable scripts (.sh, .ts, .js)
16
- skills/ # Skill definitions (directories with SKILL.md)
17
- commands/ # Slash commands (.md)
18
- agents/ # Agent definitions (.md)
19
- knowledge/ # Reference documents (.md)
20
- scripts/ # General scripts (.py, .rb, .go, etc.)
16
+ ## Requirements
17
+
18
+ Agent-i-Kit requires [Bun](https://bun.sh) v1.0+ as its runtime. It uses
19
+ Bun-specific APIs (`bun:sqlite`) that are **not available in Node.js**.
20
+
21
+ ## Quick Start
22
+
23
+ ```sh
24
+ # Install (requires Bun v1.0+)
25
+ bun install -g agentikit
26
+
27
+ # Initialize your stash
28
+ akm init
29
+
30
+ # Add a kit from GitHub
31
+ akm add github:owner/repo
32
+
33
+ # Search for assets
34
+ akm search "deploy"
35
+
36
+ # Show an asset
37
+ akm show script:deploy.sh
21
38
  ```
22
39
 
23
- Kits can be published to npm or hosted on GitHub. Tag them with `akm` or
24
- `agentikit` so others can discover them through registry search.
40
+ > **Don't want Bun?** Use the [standalone binary](#standalone-binary) instead it
41
+ > bundles everything and has no runtime dependencies.
25
42
 
26
- ## What Is a Stash?
43
+ ## Using With Any AI Agent
27
44
 
28
- The stash is your local library of assets. It combines three sources:
45
+ Agent-i-Kit is platform agnostic. Any model that can execute shell commands can
46
+ search your stash and use what it finds. The workflow is three commands:
29
47
 
30
- 1. **Working stash** -- Your personal assets (`AKM_STASH_DIR`). Read-write.
31
- 2. **Mounted dirs** -- Shared team directories. Read-only.
32
- 3. **Installed kits** -- Kits from npm or GitHub via `akm add`. Read-only.
48
+ 1. `akm search "what you need"` — find relevant assets (returns JSON)
49
+ 2. `akm show <openRef>` get the details (run command, instructions, prompt, etc.)
50
+ 3. Use the asset execute the `runCmd`, follow the skill instructions, fill in the template
33
51
 
34
- When you search or open an asset, the working stash takes priority. This
35
- means you can install a kit and override individual assets by cloning them
36
- into your working stash.
52
+ ### Drop-in prompt snippet
37
53
 
38
- ## Prerequisites
54
+ Add this to your `AGENTS.md`, `CLAUDE.md`, system prompt, or any instruction
55
+ file to give your agent access to your stash without any additional setup:
39
56
 
40
- Agent-i-Kit requires [Bun](https://bun.sh) (v1.0+) as its runtime. It uses
41
- Bun-specific APIs (`bun:sqlite`) that are not available in Node.js.
57
+ ~~~markdown
42
58
 
59
+ You have access to a searchable library of tools, skills, commands, agents,
60
+ and knowledge documents via `akm`. Use it to find and
61
+ use capabilities before writing something from scratch.
62
+
63
+ **Finding assets:**
43
64
  ```sh
44
- # Install Bun if you don't have it
45
- curl -fsSL https://bun.sh/install | bash
65
+ akm search "<query>" # Search by keyword
66
+ akm search "<query>" --type tool # Filter by type (tool, skill, command, agent, knowledge, script)
46
67
  ```
47
68
 
48
- > **Don't want to install Bun?** Use the [standalone binary](#standalone-binary)
49
- > instead -- it has no runtime dependencies.
50
-
51
- ## Quick Start
69
+ Search returns JSON with scored results. Each hit includes an `openRef` you
70
+ use to retrieve the full asset.
52
71
 
72
+ **Using assets:**
53
73
  ```sh
54
- # Install
55
- bun install -g agentikit
74
+ akm show <openRef> # Get full asset details
75
+ ```
56
76
 
57
- # Initialize your stash
58
- akm init
77
+ What you get back depends on the asset type:
78
+ - **script/tool** — A `runCmd` you can execute directly
79
+ - **skill** — Instructions to follow (read the full content)
80
+ - **command** — A prompt template with placeholders to fill in
81
+ - **agent** — A system prompt with model and tool hints
82
+ - **knowledge** — A reference doc (use `--view toc` or `--view section --heading "..."` to navigate)
59
83
 
60
- # Search for assets
61
- akm search "deploy"
84
+ Always search the stash first when you need a capability. Prefer existing
85
+ assets over writing new code.
86
+ ~~~
62
87
 
63
- # Show an asset
64
- akm show tool:deploy.sh
88
+ That's it. No plugin, no SDK, no integration code. The model reads the JSON
89
+ output from `akm` and acts on it.
90
+
91
+ ### Platform plugins (optional)
65
92
 
66
- # Install a kit from npm
67
- akm add @scope/my-kit
93
+ For tighter integration, plugins are available for some platforms. These add
94
+ native tool bindings so the agent doesn't need to shell out, but they're
95
+ purely optional — the CLI works everywhere.
68
96
 
69
- # Search installed and registry kits
70
- akm search "lint" --source both
97
+ **OpenCode** Add the [OpenCode plugin](https://github.com/itlackey/agentikit-plugins?tab=readme-ov-file#agentikit-opencode) to your `opencode.json`:
98
+
99
+ ```json
100
+ {
101
+ "plugin": ["agentikit-opencode"]
102
+ }
71
103
  ```
72
104
 
73
- ### Standalone Binary
105
+ **Claude Code** — Add the prompt snippet above to your `CLAUDE.md` or
106
+ project instructions. Claude Code can run `akm` commands directly.
74
107
 
75
- The standalone binary bundles everything it needs and does **not** require Bun
76
- or Node.js.
108
+ **Everything else** If your agent can run shell commands, it can use `akm`.
109
+ Add the prompt snippet to whatever instruction mechanism your platform uses.
77
110
 
78
- ```sh
79
- # macOS / Linux
80
- curl -fsSL https://raw.githubusercontent.com/itlackey/agentikit/main/install.sh | bash
111
+ ## What's In a Kit?
81
112
 
82
- # Windows (PowerShell)
83
- irm https://raw.githubusercontent.com/itlackey/agentikit/main/install.ps1 -OutFile install.ps1; ./install.ps1
113
+ A kit is a directory of assets you can share and install. There's no required
114
+ structure agentikit classifies assets by **file extension and content**, not
115
+ by directory name. A `.sh` file is a script whether it lives in `scripts/`,
116
+ `deploy/`, or at the root. A `.md` file with `tools` in its frontmatter is an
117
+ agent definition wherever you put it.
118
+
119
+ That said, using these directory names as an opt-in convention improves
120
+ indexing confidence:
121
+
122
+ ```text
123
+ my-kit/
124
+ scripts/ # Executable scripts (.sh, .ts, .js, .py, .rb, .go, etc.)
125
+ skills/ # Skill definitions (directories with SKILL.md)
126
+ commands/ # Slash commands (.md with $ARGUMENTS or agent frontmatter)
127
+ agents/ # Agent definitions (.md with model/tools frontmatter)
128
+ knowledge/ # Reference documents (.md)
84
129
  ```
85
130
 
131
+ ### Asset types
132
+
133
+ | Type | What it is | What the agent gets |
134
+ | --- | --- | --- |
135
+ | **script** | An executable script | A `runCmd` the agent can execute, or source for unsupported runtimes |
136
+ | **skill** | A set of instructions | Step-by-step guidance the agent follows |
137
+ | **command** | A prompt template | A template with placeholders to fill in |
138
+ | **agent** | An agent definition | A system prompt, model hint, and tool policy |
139
+ | **knowledge** | A reference document | Navigable content with TOC and section views |
140
+
141
+ Assets are referenced by type and name (e.g. `script:deploy.sh`,
142
+ `knowledge:api-guide.md`). See [Concepts](docs/concepts.md) for details on
143
+ how classification works.
144
+
145
+ ## The Stash
146
+
147
+ Your stash is the local library where assets live. It combines three sources
148
+ in priority order:
149
+
150
+ 1. **Primary stash** — Your personal assets (`AKM_STASH_DIR`), created by `akm init`
151
+ 2. **Search paths** — Additional directories (team shares, project dirs, etc.)
152
+ 3. **Installed kits** — Kits from npm, GitHub, or git via `akm add` (cache-managed)
153
+
154
+ The first match wins, so local assets always override installed ones. Use
155
+ `akm clone` to fork an installed asset into your stash for editing.
156
+
86
157
  ## Searching and Showing Assets
87
158
 
88
- Search returns scored results with metadata explaining why each hit matched:
159
+ Search returns scored results with explainability:
89
160
 
90
161
  ```sh
91
162
  akm search "docker" --type tool
@@ -106,7 +177,7 @@ akm search "docker" --type tool
106
177
  }
107
178
  ```
108
179
 
109
- Use `openRef` from search results to show the full asset:
180
+ Show returns everything the agent needs to act:
110
181
 
111
182
  ```sh
112
183
  akm show tool:docker-build.sh
@@ -121,97 +192,103 @@ akm show tool:docker-build.sh
121
192
  }
122
193
  ```
123
194
 
124
- For knowledge assets, views let you navigate large documents:
195
+ For knowledge assets, navigate without loading the entire document:
125
196
 
126
197
  ```sh
127
198
  akm show knowledge:api-guide.md --view toc
128
199
  akm show knowledge:api-guide.md --view section --heading "Authentication"
129
200
  ```
130
201
 
131
- ## Using With AI Agents
132
-
133
- Agent-i-Kit is designed to be called by AI coding agents. The agent searches
134
- for capabilities, reads the results, and acts on them.
135
-
136
- ### OpenCode
202
+ ## Installing and Sharing Kits
137
203
 
138
- In an OpenCode project, add akm as a tool in your configuration. The agent
139
- can then search the stash and run tools directly:
204
+ Install kits from npm, GitHub, any git host, or local directories:
140
205
 
141
- ```text
142
- Search the stash for deployment tools, then run the best match.
206
+ ```sh
207
+ akm add @scope/my-kit # npm
208
+ akm add github:owner/repo#v1.2.3 # GitHub with tag
209
+ akm add git+https://gitlab.com/org/kit # Any git repo
210
+ akm add ./path/to/local/kit # Local directory
143
211
  ```
144
212
 
145
- The agent calls `akm search "deploy" --type tool`, picks the top result,
146
- reads its `runCmd` from `akm show`, and executes it.
213
+ Search the registry for community kits:
147
214
 
148
- ### Claude Code
149
-
150
- Add akm commands as tools or reference them from your CLAUDE.md:
215
+ ```sh
216
+ akm search "code review" --source registry
217
+ ```
151
218
 
152
- ```markdown
153
- ## Available Tools
219
+ Manage installed kits:
154
220
 
155
- Use `akm search <query>` to find tools, skills, and commands in the stash.
156
- Use `akm show <ref>` to read asset details before using them.
221
+ ```sh
222
+ akm list # Show installed kits with status
223
+ akm update --all # Update all (reports version changes)
224
+ akm remove owner/repo # Remove and reindex
225
+ akm clone tool:deploy.sh # Fork an asset into your stash for editing
157
226
  ```
158
227
 
159
- ### Any Agent
228
+ ### Publishing your own kit
160
229
 
161
- The JSON output from `akm search` and `akm show` is designed for machine
162
- consumption. Any agent that can run shell commands can use akm:
230
+ 1. Organize your assets (directory conventions are optional)
231
+ 2. Add `"akm"` to `keywords` in `package.json` or add the `akm` topic to your GitHub repo
232
+ 3. Optionally add `agentikit.include` to control what gets installed
233
+ 4. Publish to npm or push to GitHub
234
+ 5. Submit to the registry with `akm submit` to appear in `akm search --source registry`
163
235
 
164
- 1. `akm search "what you need"` -- Find relevant assets
165
- 2. `akm show <openRef>` -- Get the details
166
- 3. Use the asset (run the `runCmd`, follow the skill instructions, etc.)
236
+ See the [Kit Maker's Guide](docs/kit-makers.md) for a full walkthrough.
167
237
 
168
- ## Installing Kits
238
+ ## Installation
169
239
 
170
- Install kits from npm, GitHub, or local directories:
240
+ Agent-i-Kit requires [Bun](https://bun.sh) v1.0+ as its runtime. It uses
241
+ Bun-specific APIs (`bun:sqlite`) that are not available in Node.js.
171
242
 
172
243
  ```sh
173
- akm add @scope/my-kit # npm package
174
- akm add github:owner/repo # GitHub repo
175
- akm add ./path/to/local/kit # Local git directory
244
+ # Install Bun if you don't have it
245
+ curl -fsSL https://bun.sh/install | bash
246
+
247
+ # Install agentikit
248
+ bun install -g agentikit
176
249
  ```
177
250
 
178
- Search the registry to discover kits:
251
+ ### Standalone binary
252
+
253
+ The standalone binary bundles everything and has **no runtime dependencies** —
254
+ no Bun, no Node.js.
179
255
 
180
256
  ```sh
181
- akm search "code review" --source registry
182
- ```
257
+ # macOS / Linux
258
+ curl -fsSL https://raw.githubusercontent.com/itlackey/agentikit/main/install.sh | bash
183
259
 
184
- Only packages tagged with `akm` or `agentikit` appear in registry results.
185
- See [docs/registry.md](docs/registry.md) for details.
260
+ # Windows (PowerShell)
261
+ irm https://raw.githubusercontent.com/itlackey/agentikit/main/install.ps1 -OutFile install.ps1; ./install.ps1
262
+ ```
186
263
 
187
- ## Publishing a Kit
264
+ The shell installer verifies the binary against release checksums.
188
265
 
189
- 1. Organize your assets into the standard directory structure
190
- 2. Add `"akm"` to `keywords` in `package.json` (for npm) or add the `akm`
191
- topic to your GitHub repo
192
- 3. Optionally add an `agentikit.include` array in `package.json` to control
193
- which paths are included when installed
266
+ Upgrade the binary in place:
194
267
 
195
- ```json
196
- {
197
- "name": "@scope/my-kit",
198
- "keywords": ["akm"],
199
- "agentikit": {
200
- "include": ["tools", "skills", "commands"]
201
- }
202
- }
268
+ ```sh
269
+ akm upgrade # Download and replace the running binary
270
+ akm upgrade --check # Check for updates without installing
203
271
  ```
204
272
 
205
273
  ## Documentation
206
274
 
207
275
  | Doc | Description |
208
276
  | --- | --- |
209
- | [Concepts](docs/concepts.md) | Asset types, stash sources, metadata, tool execution |
210
- | [CLI Reference](docs/cli.md) | All akm commands and flags |
211
- | [Kit Maker's Guide](docs/kit-makers.md) | How to build and share a kit |
277
+ | [Concepts](docs/concepts.md) | Asset types, classification, stash sources, metadata |
278
+ | [CLI Reference](docs/cli.md) | All `akm` commands and flags |
279
+ | [Kit Maker's Guide](docs/kit-makers.md) | Build and share a kit on GitHub, npm, or a network share |
212
280
  | [Registry](docs/registry.md) | Finding, installing, and publishing kits |
213
281
  | [Search](docs/search.md) | Hybrid search architecture and scoring |
214
282
  | [Indexing](docs/indexing.md) | How the search index is built |
215
283
  | [Filesystem](docs/filesystem.md) | Directory layout and `.stash.json` schema |
216
284
  | [Configuration](docs/configuration.md) | Providers, settings, and Ollama setup |
217
- | [Library API](docs/api.md) | Using agentikit as a TypeScript/JS library |
285
+
286
+ ## Status
287
+
288
+ Agent-i-Kit is approaching v1.0. The core CLI, stash model, and registry are
289
+ stable and in daily use. Feedback, issues, and PRs welcome — especially around
290
+ real-world usage patterns and integrations with different AI coding assistants.
291
+
292
+ ## License
293
+
294
+ [MPL-2.0](LICENSE)
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
- import { toPosix } from "./common";
3
2
  import { tryGetHandler } from "./asset-type-handler";
3
+ import { toPosix } from "./common";
4
4
  export const SCRIPT_EXTENSIONS = new Set([".sh", ".ts", ".js", ".ps1", ".cmd", ".bat"]);
5
5
  const markdownSpec = {
6
6
  isRelevantFile: (fileName) => path.extname(fileName).toLowerCase() === ".md",
@@ -10,7 +10,16 @@ const markdownSpec = {
10
10
  /** Extended set of script extensions for the script asset type */
11
11
  export const SCRIPT_EXTENSIONS_BROAD = new Set([
12
12
  ...SCRIPT_EXTENSIONS,
13
- ".py", ".rb", ".go", ".pl", ".php", ".lua", ".r", ".swift", ".kt", ".kts",
13
+ ".py",
14
+ ".rb",
15
+ ".go",
16
+ ".pl",
17
+ ".php",
18
+ ".lua",
19
+ ".r",
20
+ ".swift",
21
+ ".kt",
22
+ ".kts",
14
23
  ]);
15
24
  export const ASSET_SPECS = {
16
25
  tool: {
@@ -1,3 +1,5 @@
1
+ import { UsageError } from "./errors";
2
+ import { registerBuiltinHandlers } from "./handlers/index";
1
3
  // ── Registry ─────────────────────────────────────────────────────────────────
2
4
  const handlers = new Map();
3
5
  let handlersInitialized = false;
@@ -5,8 +7,7 @@ function ensureHandlersRegistered() {
5
7
  if (handlersInitialized)
6
8
  return;
7
9
  handlersInitialized = true;
8
- // Import handler registrations
9
- require("./handlers/index");
10
+ registerBuiltinHandlers();
10
11
  }
11
12
  export function registerAssetType(handler) {
12
13
  handlers.set(handler.typeName, handler);
@@ -15,7 +16,7 @@ export function getHandler(type) {
15
16
  ensureHandlersRegistered();
16
17
  const handler = handlers.get(type);
17
18
  if (!handler) {
18
- throw new Error(`Unknown asset type: "${type}"`);
19
+ throw new UsageError(`Unknown asset type: "${type}"`);
19
20
  }
20
21
  return handler;
21
22
  }