@softspark/ai-toolkit 4.29.2 → 4.30.2
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/CHANGELOG.md +82 -0
- package/README.md +44 -18
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/ARCHITECTURE.md +2 -2
- package/app/mcp-templates/README.md +7 -2
- package/app/mcp-templates/rag-mcp-legal.json +11 -0
- package/app/mcp-templates/rag-mcp.json +11 -0
- package/app/surface.json +1 -0
- package/benchmarks/ecosystem-doctor-snapshot.json +29 -17
- package/bin/ai-toolkit.js +8 -0
- package/kb/history/completed/dsh-integration-plan-superseded.md +322 -0
- package/kb/history/completed/dsh-native-install-target-plan.md +331 -0
- package/kb/procedures/ecosystem-sync-sop.md +7 -5
- package/kb/procedures/maintenance-sop.md +1 -1
- package/kb/procedures/release-verification-sop.md +35 -5
- package/kb/reference/architecture-overview.md +24 -5
- package/kb/reference/cli-reference.md +1 -1
- package/kb/reference/dsh-compatibility.md +183 -0
- package/kb/reference/manifest-install.md +112 -5
- package/kb/reference/mcp-templates.md +11 -4
- package/kb/reference/plugin-pack-conventions.md +35 -18
- package/kb/reference/supported-tools-registry.md +30 -6
- package/llms-full.txt +1110 -50
- package/llms.txt +3 -0
- package/manifest.json +2 -2
- package/package.json +2 -2
- package/scripts/codex_skill_adapter.py +673 -34
- package/scripts/config_resolver.py +80 -14
- package/scripts/doctor.py +98 -20
- package/scripts/ecosystem_tools.json +51 -1
- package/scripts/generate_codex_skills.py +22 -20
- package/scripts/install.py +30 -13
- package/scripts/install_steps/ai_tools.py +97 -33
- package/scripts/install_steps/dsh.py +5063 -0
- package/scripts/install_steps/install_state.py +1645 -57
- package/scripts/mcp_editors.py +5 -2
- package/scripts/plugin.py +2495 -163
- package/scripts/plugin_mcp.py +279 -0
- package/scripts/plugin_rules.py +389 -0
- package/scripts/plugin_schema.py +139 -23
- package/scripts/uninstall.py +47 -4
- package/scripts/validate.py +421 -0
|
@@ -3,17 +3,17 @@ title: "Plugin Pack Conventions"
|
|
|
3
3
|
category: reference
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [plugins, plugin-packs, conventions, manifests, hooks, policy-packs]
|
|
6
|
-
version: "1.
|
|
6
|
+
version: "1.3.0"
|
|
7
7
|
created: "2026-03-28"
|
|
8
|
-
last_updated: "2026-08-
|
|
9
|
-
description: "Conventions for experimental ai-toolkit plugin packs, policy packs, hook packs, and plugin-creator scaffolding across
|
|
8
|
+
last_updated: "2026-08-31"
|
|
9
|
+
description: "Conventions for experimental ai-toolkit plugin packs, policy packs, hook packs, and plugin-creator scaffolding across supported editors."
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Plugin Pack Conventions
|
|
13
13
|
|
|
14
14
|
## Purpose
|
|
15
15
|
|
|
16
|
-
`ai-toolkit` includes experimental plugin packs under `app/plugins/` for Claude Code and
|
|
16
|
+
`ai-toolkit` includes experimental plugin packs under `app/plugins/` for Claude Code, Codex, Cursor, and Gemini global layering, and discovers external packs under `~/.softspark/ai-toolkit/plugins/` (see *Where Packs Live*). These internal pack manifests are distinct from the official uploadable Claude app plugin built by `ai-toolkit claude-app export`.
|
|
17
17
|
|
|
18
18
|
## Where Packs Live
|
|
19
19
|
|
|
@@ -69,6 +69,7 @@ app/plugins/<pack-name>/
|
|
|
69
69
|
├── plugin.json
|
|
70
70
|
├── README.md
|
|
71
71
|
├── hooks/ # optional, executable if present
|
|
72
|
+
├── mcp/ # optional, pack-local MCP templates
|
|
72
73
|
├── rules/ # optional
|
|
73
74
|
├── skills/ # optional
|
|
74
75
|
├── agents/ # optional
|
|
@@ -92,6 +93,14 @@ Required keys:
|
|
|
92
93
|
- `skills`
|
|
93
94
|
- `rules`
|
|
94
95
|
- `hooks`
|
|
96
|
+
- `mcp` (optional MCP template names)
|
|
97
|
+
|
|
98
|
+
An MCP reference such as `"rag-mcp-legal"` resolves first to the pack-owned
|
|
99
|
+
`mcp/rag-mcp-legal.json`, then to the built-in
|
|
100
|
+
`app/mcp-templates/rag-mcp-legal.json`. Each template must use the same `name`
|
|
101
|
+
as the reference and provide a non-empty `mcpServers` object. A localhost HTTP
|
|
102
|
+
template must also include a `postInstall` warning that the endpoint is
|
|
103
|
+
`unauthenticated`.
|
|
95
104
|
|
|
96
105
|
## Naming Rules
|
|
97
106
|
|
|
@@ -111,10 +120,12 @@ Required keys:
|
|
|
111
120
|
## CLI Management
|
|
112
121
|
|
|
113
122
|
```bash
|
|
114
|
-
ai-toolkit plugin list # show all
|
|
123
|
+
ai-toolkit plugin list # show all available packs with install status
|
|
115
124
|
ai-toolkit plugin install --editor claude <name> # Claude Code global target
|
|
116
125
|
ai-toolkit plugin install --editor codex <name> # Codex global target
|
|
117
|
-
ai-toolkit plugin install --editor
|
|
126
|
+
ai-toolkit plugin install --editor cursor <name> # Cursor global target
|
|
127
|
+
ai-toolkit plugin install --editor gemini <name> # Gemini CLI global target
|
|
128
|
+
ai-toolkit plugin install --editor all --all # install all available packs for all supported editors
|
|
118
129
|
ai-toolkit plugin update --editor all --all # update all installed packs
|
|
119
130
|
ai-toolkit plugin clean <name> # prune data older than 90 days (default)
|
|
120
131
|
ai-toolkit plugin clean <name> --days 30 # prune data older than 30 days
|
|
@@ -125,21 +136,25 @@ ai-toolkit plugin status --editor all # show installed packs with r
|
|
|
125
136
|
|
|
126
137
|
### What `plugin install` Does
|
|
127
138
|
|
|
128
|
-
1. **Parses** `--editor claude|codex|all` (default: `claude`)
|
|
139
|
+
1. **Parses** `--editor claude|codex|cursor|gemini|all` (default: `claude`)
|
|
129
140
|
2. **Copies** plugin-specific hooks to runtime-owned storage: Claude uses `~/.softspark/ai-toolkit/hooks/plugin-<pack>-<hook>.sh`; Codex uses `$CODEX_HOME/ai-toolkit-hooks/plugin-<pack>-<hook>.sh`
|
|
130
141
|
3. **Copies** shared plugin scripts to `~/.softspark/ai-toolkit/plugin-scripts/<pack>/`
|
|
131
142
|
4. **Runs** init scripts if present (e.g. `init_db.py` for memory-pack — safe to re-run, preserves data)
|
|
132
143
|
5. **Claude Code target**: links missing agents/skills into `~/.claude/`, injects plugin-local rules into `~/.claude/CLAUDE.md`, and merges plugin hook entries into `~/.claude/settings.json`
|
|
133
144
|
6. **Codex target**: bootstraps `$CODEX_HOME/AGENTS.md`, `$HOME/.agents/skills`, `$CODEX_HOME/hooks.json`, and self-contained `$CODEX_HOME/ai-toolkit-hooks`, then layers plugin-specific rules and hooks on top; it does not write `~/AGENTS.md` or `.agents/rules/`
|
|
134
|
-
7. **
|
|
145
|
+
7. **Cursor target**: writes each pack-owned rule as `~/.cursor/rules/plugin-<pack>-<rule>.mdc` with `alwaysApply: true`; files are exact-hash owned and collisions are rejected
|
|
146
|
+
8. **Gemini target**: marker-injects each pack-owned rule into `~/.gemini/GEMINI.md` as `plugin-<pack>-<rule>`, preserving all unrelated content
|
|
147
|
+
9. **Records** installed state per runtime in `~/.softspark/ai-toolkit/plugins.json`
|
|
148
|
+
10. **MCP assets**: installs `includes.mcp` into the selected editor's global MCP config, rejects unowned same-name entries, and records the exact normalized server configuration under the plugin's ownership state
|
|
135
149
|
|
|
136
150
|
### What `plugin update` Does
|
|
137
151
|
|
|
138
|
-
1. **
|
|
139
|
-
2. **
|
|
140
|
-
3. **
|
|
141
|
-
4.
|
|
142
|
-
5.
|
|
152
|
+
1. **Preflights** MCP and native-rule collisions before changing any plugin state, skill, rule, hook, or script
|
|
153
|
+
2. **Removes** existing plugin runtime entries for the selected editor(s) (same as `remove`)
|
|
154
|
+
3. **Reinstalls** from the current source (same as `install`)
|
|
155
|
+
4. **Preserves plugin data** (e.g. memory-pack SQLite database is never deleted)
|
|
156
|
+
5. Shared plugin scripts/hooks are kept if another runtime still has the same pack installed
|
|
157
|
+
6. `--all` updates only currently installed packs for the selected runtime(s)
|
|
143
158
|
|
|
144
159
|
### What `plugin clean` Does
|
|
145
160
|
|
|
@@ -151,10 +166,12 @@ ai-toolkit plugin status --editor all # show installed packs with r
|
|
|
151
166
|
|
|
152
167
|
1. **Claude Code target**: strips plugin hook entries from `~/.claude/settings.json` and removes plugin-local rule sections from `~/.claude/CLAUDE.md`
|
|
153
168
|
2. **Codex target**: strips only command handlers carrying the exact `AI_TOOLKIT_HOOK_OWNER=ai-toolkit-plugin-<pack>` marker from `$CODEX_HOME/hooks.json`, removes owned `$CODEX_HOME/ai-toolkit-hooks/plugin-<pack>-*` assets, and removes the pack's marker-bounded sections from `$CODEX_HOME/AGENTS.md`
|
|
154
|
-
3. **
|
|
155
|
-
4. **
|
|
156
|
-
5. **
|
|
157
|
-
6. **Leaves**
|
|
169
|
+
3. **Cursor/Gemini rules**: removes only exact content recorded in `rule_ownership`; foreign or user-modified files/sections are preserved with a warning
|
|
170
|
+
4. **Claude/shared assets** (`~/.softspark/ai-toolkit/hooks/plugin-*`, `plugin-scripts/<pack>/`) are removed only when no remaining runtime still uses that pack
|
|
171
|
+
5. **Updates** `plugins.json` state per runtime
|
|
172
|
+
6. **Leaves** core agents/skills untouched (they belong to the base install)
|
|
173
|
+
7. **Leaves** plugin data intact (e.g. `memory.db` — use `clean` to prune)
|
|
174
|
+
8. **MCP cleanup**: removes only unchanged servers recorded as owned by that plugin; user-created, foreign, or manually changed entries are preserved with a warning
|
|
158
175
|
|
|
159
176
|
### Data Retention (memory-pack)
|
|
160
177
|
|
|
@@ -178,7 +195,7 @@ time.
|
|
|
178
195
|
links every core skill and agent, so a manifest naming only core assets resolves
|
|
179
196
|
to nothing: `plugin install` reports `(0 file items)` and no file appears on
|
|
180
197
|
disk. This is not a subtle degradation — it is a complete no-op, identical on
|
|
181
|
-
every profile (`minimal`, `standard`, `strict`) and on
|
|
198
|
+
every profile (`minimal`, `standard`, `strict`) and on every supported editor.
|
|
182
199
|
|
|
183
200
|
Nine packs were removed in v4.20.0 for failing this: `csharp`, `java`, `kotlin`,
|
|
184
201
|
`ruby`, `rust`, `swift`, `frontend`, `research`, `security`. Every one declared
|
|
@@ -3,19 +3,19 @@ title: "Supported Tools Registry"
|
|
|
3
3
|
category: reference
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [editors, platforms, generators, integration, ecosystem]
|
|
6
|
-
version: "1.
|
|
6
|
+
version: "1.15.0"
|
|
7
7
|
created: "2026-04-23"
|
|
8
|
-
last_updated: "2026-
|
|
9
|
-
description: "Human-readable view of scripts/ecosystem_tools.json
|
|
8
|
+
last_updated: "2026-09-01"
|
|
9
|
+
description: "Human-readable view of scripts/ecosystem_tools.json: Claude Code, Claude Chat/Cowork, 11 editors, and the explicit developer-preview DSH target."
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Supported Tools Registry
|
|
13
13
|
|
|
14
|
-
The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed by `scripts/ecosystem_doctor.py`. This document is a derived view
|
|
14
|
+
The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed by `scripts/ecosystem_doctor.py`. This document is a derived view. Update it whenever the JSON changes.
|
|
15
15
|
|
|
16
|
-
## Tool Count:
|
|
16
|
+
## Tool Count: 14
|
|
17
17
|
|
|
18
|
-
1 primary runtime
|
|
18
|
+
1 primary runtime, 1 Claude app target, 11 editor integrations, and 1 explicit developer-preview harness target.
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -58,6 +58,30 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
+
## Explicit Developer-Preview Harness
|
|
62
|
+
|
|
63
|
+
### DeepSeek Harness
|
|
64
|
+
|
|
65
|
+
| Field | Value |
|
|
66
|
+
|-------|-------|
|
|
67
|
+
| ID | `dsh` |
|
|
68
|
+
| Status | `developer-preview`, `explicit-only`. This is a SoftSpark-maintained community compatibility target. DeepSeek AI has not endorsed it. |
|
|
69
|
+
| Reviewed version | DSH `0.1.1-rc.2`, `@softspark/dsh-codex@1.0.0`, and `@softspark/dsh-orchestrator@1.0.1`. |
|
|
70
|
+
| Docs | https://deepseek-harness.github.io/deepseek-harness/ |
|
|
71
|
+
| Release sources | https://github.com/deepseek-ai/deepseek-harness/releases and the reviewed [DSH 0.1.1-rc.2 release](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.1-rc.2) |
|
|
72
|
+
| Reviewed contracts | Tagged [CLI profile and plugin reference](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.1-rc.2/apps/cli/reference/README.md) and [skill discovery reference](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.1-rc.2/docs/subsystems/skills.md) |
|
|
73
|
+
| Config paths | Project `.agents/skills/*/SKILL.md`; profile `$DSH_HOME/profiles/<profile>/package.json`; installed packages under `$DSH_HOME/profiles/<profile>/node_modules/@softspark/`; preset `$DSH_HOME/.agent-presets/softspark-orchestrator` |
|
|
74
|
+
| Project generator | `scripts/generate_codex_skills.py` emits the shared Codex and DSH `.agents/skills` catalog. `ai-toolkit install --local --editors dsh` makes no `$DSH_HOME` write. |
|
|
75
|
+
| Profile lifecycle | `scripts/install_steps/dsh.py` implements explicit `install`, `update`, `doctor`, and `uninstall` for one named profile. |
|
|
76
|
+
| Selection boundary | Excluded from `--editors all`, auto-detection, defaults, default profiles, and global editor selection. |
|
|
77
|
+
| Authentication | ai-toolkit accepts no provider API key and performs no login. Codex, Claude Code, and GitHub Copilot own authentication. Copilot Gemini usage consumes GitHub AI credits. |
|
|
78
|
+
| State and recovery | State uses `AI_TOOLKIT_HOME`, then `SOFTSPARK_HOME`, then `~/.softspark/ai-toolkit/state.json`. Locks and compare-and-swap publication protect ownership. Doctor reports preserved recovery markers and drift. |
|
|
79
|
+
| Upstream drift | Upstream has newer prereleases, including `0.1.2-alpha.2`. They remain unqualified until source review and isolated real-profile verification complete. Phase 3 real-profile evidence is pending. |
|
|
80
|
+
|
|
81
|
+
See [DSH Compatibility](./dsh-compatibility.md) for commands, topology, subscription boundaries, lifecycle ownership, and limitations.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
61
85
|
## Editor Integrations
|
|
62
86
|
|
|
63
87
|
### Cursor
|