@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 +5 -1
- package/dist/index.js +11 -9
- package/package.json +2 -2
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
|
-
|
|
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/
|
|
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
|
|
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(
|
|
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
|
-
|
|
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.
|
|
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.
|
|
29
|
+
"@caplets/core": "0.12.2"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@opencode-ai/plugin": "^1.14.48",
|