openclaw-workflowskill 0.1.0 → 0.1.1

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 (2) hide show
  1. package/lib/adapters.ts +19 -1
  2. package/package.json +4 -5
package/lib/adapters.ts CHANGED
@@ -8,7 +8,20 @@ import { readFileSync } from 'node:fs';
8
8
  import { homedir } from 'node:os';
9
9
  import { join } from 'node:path';
10
10
  import type { LLMAdapter, ToolAdapter, ToolDescriptor, ToolResult } from 'workflowskill';
11
- import { AnthropicLLMAdapter } from 'workflowskill';
11
+ import { AnthropicLLMAdapter, BuiltinToolAdapter } from 'workflowskill';
12
+
13
+ // Tools served locally by BuiltinToolAdapter (html.select, http.request, etc.)
14
+ // These bypass the gateway and run in-process.
15
+ const DEV_TOOL_NAMES = new Set(['html.select', 'http.request']);
16
+
17
+ // Lazy singleton — BuiltinToolAdapter.create() is async so we initialize on first use.
18
+ let _devToolsPromise: Promise<BuiltinToolAdapter> | null = null;
19
+ function getDevTools(): Promise<BuiltinToolAdapter> {
20
+ if (!_devToolsPromise) {
21
+ _devToolsPromise = BuiltinToolAdapter.create();
22
+ }
23
+ return _devToolsPromise as Promise<BuiltinToolAdapter>;
24
+ }
12
25
 
13
26
  export interface GatewayConfig {
14
27
  baseUrl: string;
@@ -153,6 +166,7 @@ export function createAdapters(gatewayConfig: GatewayConfig): AdapterSet {
153
166
  const toolAdapter: ToolAdapter = {
154
167
  has(toolName: string): boolean {
155
168
  if (toolName === LLM_COMPLETE) return true;
169
+ if (DEV_TOOL_NAMES.has(toolName)) return true;
156
170
  return hostTools.has(toolName);
157
171
  },
158
172
  async invoke(toolName: string, args: Record<string, unknown>): Promise<ToolResult> {
@@ -163,6 +177,10 @@ export function createAdapters(gatewayConfig: GatewayConfig): AdapterSet {
163
177
  );
164
178
  return { output: { text: result.text } };
165
179
  }
180
+ if (DEV_TOOL_NAMES.has(toolName)) {
181
+ const devTools = await getDevTools();
182
+ return devTools.invoke(toolName, args);
183
+ }
166
184
  return hostTools.invoke(toolName, args);
167
185
  },
168
186
  list(): ToolDescriptor[] {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-workflowskill",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "WorkflowSkill plugin for OpenClaw — author, validate, run, and review YAML workflows",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -34,14 +34,13 @@
34
34
  "./index.ts"
35
35
  ]
36
36
  },
37
- "peerDependencies": {
38
- "workflowskill": ">=0.1.0"
37
+ "dependencies": {
38
+ "workflowskill": "^0.1.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^25.3.0",
42
42
  "tsx": "^4.21.0",
43
- "typescript": "^5.9.3",
44
- "workflowskill": "^0.1.0"
43
+ "typescript": "^5.9.3"
45
44
  },
46
45
  "scripts": {
47
46
  "typecheck": "tsc --noEmit --project tsconfig.json",