@caplets/opencode 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -10,4 +10,8 @@ This package exposes configured Caplets as native OpenCode tools named `caplets_
10
10
  }
11
11
  ```
12
12
 
13
- New or removed Caplets are snapshotted at plugin load. Restart OpenCode to refresh the native tool list.
13
+ The plugin hot reloads Caplets config and Caplet file edits for already-registered tools, so
14
+ existing native tools execute against the latest valid backend config and prompt guidance is
15
+ rebuilt from current Caplets state for the tools registered when the plugin loaded. OpenCode's
16
+ current plugin API snapshots `Hooks.tool` at plugin load, so adding, removing, or renaming native
17
+ tools still requires restarting OpenCode; newly added tools are not advertised until restart.
package/dist/index.js CHANGED
@@ -13,15 +13,10 @@ function capletsOpenCodeArgs() {
13
13
  };
14
14
  }
15
15
  //#endregion
16
- //#region src/index.ts
17
- const plugin = async (_ctx) => {
18
- const service = createNativeCapletsService();
19
- registerNativeCapletsProcessCleanup(service);
20
- return createCapletsOpenCodeHooks(service);
21
- };
16
+ //#region src/hooks.ts
22
17
  async function createCapletsOpenCodeHooks(service) {
23
18
  const capletTools = service.listTools();
24
- const toolNames = capletTools.map((caplet) => caplet.toolName);
19
+ const registeredToolNames = new Set(capletTools.map((caplet) => caplet.toolName));
25
20
  return {
26
21
  tool: Object.fromEntries(capletTools.map((caplet) => [caplet.toolName, tool({
27
22
  description: caplet.description,
@@ -37,9 +32,16 @@ async function createCapletsOpenCodeHooks(service) {
37
32
  }
38
33
  })])),
39
34
  "experimental.chat.system.transform": async (_input, output) => {
40
- output.system.push(nativeCapletsSystemGuidance(toolNames));
35
+ output.system.push(nativeCapletsSystemGuidance(service.listTools().map((caplet) => caplet.toolName).filter((toolName) => registeredToolNames.has(toolName))));
41
36
  }
42
37
  };
43
38
  }
44
39
  //#endregion
45
- export { createCapletsOpenCodeHooks, plugin as default };
40
+ //#region src/index.ts
41
+ const plugin = async (_ctx) => {
42
+ const service = createNativeCapletsService();
43
+ registerNativeCapletsProcessCleanup(service);
44
+ return createCapletsOpenCodeHooks(service);
45
+ };
46
+ //#endregion
47
+ export { plugin as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caplets/opencode",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Native OpenCode plugin for Caplets.",
5
5
  "homepage": "https://github.com/spiritledsoftware/caplets#readme",
6
6
  "bugs": {
@@ -26,7 +26,7 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
- "@caplets/core": "0.12.0"
29
+ "@caplets/core": "0.12.2"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@opencode-ai/plugin": "^1.14.48",