caplets 0.12.4 → 0.12.6

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 (3) hide show
  1. package/README.md +48 -10
  2. package/dist/index.js +1 -1
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <img src="assets/icon.png" alt="Caplets logo" width="140" height="140" />
2
+ <img src="plugins/caplets/assets/icon.png" alt="Caplets logo" width="140" height="140" />
3
3
 
4
4
  <h1>Caplets</h1>
5
5
 
@@ -81,9 +81,11 @@ your coding agent supports one.
81
81
  | OpenCode | Install [`@caplets/opencode`](packages/opencode/README.md) | Native `caplets_<id>` tools and prompt guidance hooks |
82
82
  | Pi | Install [`@caplets/pi`](packages/pi/README.md) | Native `caplets_<id>` tools with Pi prompt snippets/guidelines |
83
83
 
84
- Codex and Claude Code plugins are plugin-native but MCP-backed. Their manifests live in
85
- `.codex-plugin/` and `.claude-plugin/`; component files live at the plugin root so
86
- marketplace installs can copy and resolve them correctly.
84
+ Codex and Claude Code plugins are plugin-native but MCP-backed. The installable plugin
85
+ lives under `plugins/caplets/`, with agent-specific manifests in `.codex-plugin/` and
86
+ `.claude-plugin/`, a shared `skills/` directory, and shared `mcp.json` config. The
87
+ repo-level `.agents/plugins/marketplace.json` and `.claude-plugin/marketplace.json`
88
+ files only advertise that installable plugin root.
87
89
 
88
90
  The Claude Code and Codex commands install from this GitHub repository through each agent's
89
91
  plugin marketplace flow; users do not need to clone the repository manually. Plugin MCP
@@ -123,8 +125,8 @@ exposed two ways: direct flat MCP aggregation versus Caplets progressive disclos
123
125
  | Initial Agent Surface | Direct Flat MCP | Caplets | Reduction |
124
126
  | ------------------------- | ----------------: | -----------: | ------------: |
125
127
  | Visible tools | 106 | 3 | 97.2% fewer |
126
- | Serialized MCP payload | 32,090 bytes | 8,400 bytes | 73.8% smaller |
127
- | Approx. context surface | 8,023 tokens | 2,100 tokens | 5,923 fewer |
128
+ | Serialized MCP payload | 32,090 bytes | 8,442 bytes | 73.7% smaller |
129
+ | Approx. context surface | 8,023 tokens | 2,111 tokens | 5,912 fewer |
128
130
  | Top-level name collisions | 3 duplicate names | 0 | eliminated |
129
131
 
130
132
  Caplets does not remove access to downstream tools. It places them behind scoped
@@ -299,7 +301,7 @@ the committed schema stays in sync with the Zod config validator.
299
301
 
300
302
  For richer skill-like cards, add Markdown Caplet files beside `config.json`. Every Caplet
301
303
  file must include exactly one executable backend: `mcpServer`, `openapiEndpoint`,
302
- `graphqlEndpoint`, `httpApi`, or `cliTools`;
304
+ `graphqlEndpoint`, `httpApi`, `cliTools`, or `capletSet`;
303
305
  serverless Caplets are intentionally out of scope.
304
306
 
305
307
  Top-level files derive the Caplet ID from the filename:
@@ -452,7 +454,7 @@ caplets init --force
452
454
 
453
455
  ### Caplet IDs
454
456
 
455
- Each key under `mcpServers`, `openapiEndpoints`, `graphqlEndpoints`, `httpApis`, or `cliTools` is the
457
+ Each key under `mcpServers`, `openapiEndpoints`, `graphqlEndpoints`, `httpApis`, `cliTools`, or `capletSets` is the
456
458
  stable Caplet ID. It becomes the generated MCP tool name exactly, so keep it short and specific:
457
459
 
458
460
  ```json
@@ -469,7 +471,7 @@ stable Caplet ID. It becomes the generated MCP tool name exactly, so keep it sho
469
471
  ```
470
472
 
471
473
  Caplet IDs must match `^[a-zA-Z0-9_-]{1,64}$` and must be unique across `mcpServers`,
472
- `openapiEndpoints`, `graphqlEndpoints`, `httpApis`, and `cliTools`. Spaces, dots, slashes, colons, and Unicode IDs are rejected.
474
+ `openapiEndpoints`, `graphqlEndpoints`, `httpApis`, `cliTools`, and `capletSets`. Spaces, dots, slashes, colons, and Unicode IDs are rejected.
473
475
 
474
476
  ### Stdio Servers
475
477
 
@@ -687,6 +689,42 @@ Pass `-g` or `--global` to write to the user Caplets root, `--print` to review t
687
689
  manifest without writing, `--output <path>` for an explicit destination, or `--force` to overwrite
688
690
  an existing destination file.
689
691
 
692
+ ### Caplet Sets
693
+
694
+ Use `capletSets` to expose another Caplets collection as nested Caplets. Each child Caplet appears
695
+ as one downstream tool and supports the full Caplets operation set: `get_caplet`, `check_backend`,
696
+ `check_mcp_server`, `list_tools`, `search_tools`, `get_tool`, and `call_tool`.
697
+
698
+ ```json
699
+ {
700
+ "capletSets": {
701
+ "team": {
702
+ "name": "Team Caplets",
703
+ "description": "Use the team's shared Caplets collection.",
704
+ "configPath": "./team-caplets/config.json",
705
+ "capletsRoot": "./team-caplets/caplets"
706
+ }
707
+ }
708
+ }
709
+ ```
710
+
711
+ `configPath` and `capletsRoot` are independently optional, but at least one is required. Child
712
+ collections are isolated from the parent collection; they use their own config and Caplet files,
713
+ with their own `defaultSearchLimit` and `maxSearchLimit` when set on the `capletSets` entry.
714
+ Recursive nesting is supported, and repeated source paths are rejected as cycles.
715
+
716
+ Markdown Caplet files use `capletSet` frontmatter:
717
+
718
+ ```yaml
719
+ ---
720
+ name: Team Caplets
721
+ description: Use the team's shared Caplets collection.
722
+ capletSet:
723
+ configPath: ./team-caplets/config.json
724
+ capletsRoot: ./team-caplets/caplets
725
+ ---
726
+ ```
727
+
690
728
  Add MCP, OpenAPI, GraphQL, and HTTP API Caplets with the same destination options:
691
729
 
692
730
  ```sh
@@ -852,7 +890,7 @@ Call one exact downstream tool:
852
890
  Available operations:
853
891
 
854
892
  - `get_caplet`: return the configured capability card without starting the downstream server.
855
- - `check_backend`: verify the selected backend, whether MCP, OpenAPI, or GraphQL.
893
+ - `check_backend`: verify the selected backend, whether MCP, OpenAPI, GraphQL, HTTP, CLI, or nested Caplets.
856
894
  - `check_mcp_server`: start or connect to an MCP server and verify its tool list.
857
895
  - `list_tools`: return compact downstream tool metadata.
858
896
  - `search_tools`: search downstream tool names and descriptions within this Caplet.
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { CapletsRuntime, runCli } from "@caplets/core";
4
4
  //#region package.json
5
- var version = "0.12.4";
5
+ var version = "0.12.6";
6
6
  //#endregion
7
7
  //#region src/index.ts
8
8
  async function main() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "caplets",
3
- "version": "0.12.4",
3
+ "version": "0.12.6",
4
4
  "description": "Progressive disclosure gateway CLI for MCP servers and native Caplets adapters.",
5
5
  "keywords": [
6
6
  "caplets",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@modelcontextprotocol/sdk": "^1.29.0",
37
- "@caplets/core": "0.12.2"
37
+ "@caplets/core": "0.13.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^25.7.0",