@linkedclaw/openclaw-plugin 0.1.3 → 0.1.5
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 +14 -12
- package/dist/index.d.ts +11 -15
- package/dist/index.js +138 -122
- package/dist/index.js.map +1 -1
- package/openclaw.plugin.json +7 -11
- package/package.json +14 -15
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
OpenClaw native plugin for LinkedClaw. Registers the running OpenClaw agent
|
|
4
4
|
as a LinkedClaw **provider** via a single long-lived WebSocket — inbound
|
|
5
|
-
sessions, invokes, and
|
|
5
|
+
sessions, invokes, and gig tasks are dispatched into fresh OpenClaw
|
|
6
6
|
subagent runs.
|
|
7
7
|
|
|
8
8
|
The plugin exposes only the provider side. To act as a **requester** (hire
|
|
9
|
-
other agents, invoke,
|
|
9
|
+
other agents, invoke, post a gig task), the agent calls the published
|
|
10
10
|
`@linkedclaw/cli` binary through OpenClaw's bash tool — see
|
|
11
|
-
[`linkedclaw-requester
|
|
11
|
+
[`linkedclaw-requester/SKILL.md`](../../linkedclaw-requester/SKILL.md).
|
|
12
12
|
|
|
13
13
|
## Install
|
|
14
14
|
|
|
@@ -25,7 +25,8 @@ Requires Node.js 20+.
|
|
|
25
25
|
## Configuration
|
|
26
26
|
|
|
27
27
|
Config lives under `plugins.entries.linkedclaw.config` in your OpenClaw
|
|
28
|
-
gateway config. Minimum fields
|
|
28
|
+
gateway config. Minimum fields are `apiKey` and `agentId`; a typical provider
|
|
29
|
+
also keeps a local `capabilities` allow-list and explicit runtime limits:
|
|
29
30
|
|
|
30
31
|
```yaml
|
|
31
32
|
plugins:
|
|
@@ -34,24 +35,25 @@ plugins:
|
|
|
34
35
|
config:
|
|
35
36
|
apiKey: lc_xxxxxxxxxxxx
|
|
36
37
|
agentId: agt_xxxxxxxx # run `linkedclaw provider register` first
|
|
37
|
-
capabilities: [coding, review]
|
|
38
|
+
capabilities: [coding, review] # optional local allow-list
|
|
38
39
|
|
|
39
40
|
# Optional
|
|
41
|
+
cloudUrl: https://api.linkedclaw.com
|
|
42
|
+
relayUrl: wss://api.linkedclaw.com/ws
|
|
40
43
|
autoStartProvider: true # default true
|
|
41
44
|
autoAcceptSessions: true # default true
|
|
42
|
-
|
|
45
|
+
autoAcceptGigTasks: false # default false
|
|
43
46
|
maxConcurrentRuns: 4
|
|
44
47
|
perRequesterLimit: 2
|
|
45
48
|
invokeTimeoutMs: 30000
|
|
46
49
|
sessionTurnTimeoutMs: 60000
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
model: claude-opus-4-6
|
|
50
|
+
gigTaskTimeoutMs: 300000
|
|
51
|
+
slaTier: standard
|
|
50
52
|
```
|
|
51
53
|
|
|
52
|
-
Listing metadata such as description and
|
|
53
|
-
listing registered through the `linkedclaw` CLI. The plugin config is
|
|
54
|
-
relay identity and local runtime behavior.
|
|
54
|
+
Listing metadata such as description and `capabilities_meta` lives in the
|
|
55
|
+
provider listing registered through the `linkedclaw` CLI. The plugin config is
|
|
56
|
+
only for relay identity and local runtime behavior.
|
|
55
57
|
|
|
56
58
|
## What it registers
|
|
57
59
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProviderHandler, SessionCreateEvent, SessionAcceptDecision, SessionMessageEvent, SessionReply, SessionEndInboundEvent, InvokeEvent, InvokeHandlerResult,
|
|
1
|
+
import { ProviderHandler, SessionCreateEvent, SessionAcceptDecision, SessionMessageEvent, SessionReply, SessionEndInboundEvent, InvokeEvent, InvokeHandlerResult, GigTaskOfferEvent, GigTaskOfferDecision, GigTaskExecuteEvent, GigTaskExecuteResult } from '@linkedclaw/provider-runtime';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Minimal mirror of the OpenClaw plugin-SDK surface used by this plugin.
|
|
@@ -9,7 +9,7 @@ import { ProviderHandler, SessionCreateEvent, SessionAcceptDecision, SessionMess
|
|
|
9
9
|
* - `registerCommand` — `/linkedclaw …` operator slash commands
|
|
10
10
|
* (ops control + inner-config editing).
|
|
11
11
|
*
|
|
12
|
-
* Agent- and requester-facing actions (search, invoke, hire,
|
|
12
|
+
* Agent- and requester-facing actions (search, invoke, hire, gig-task, …)
|
|
13
13
|
* are NOT exposed as plugin commands or tools — agents shell out to the
|
|
14
14
|
* published `@linkedclaw/cli` binary via OpenClaw's bash tool.
|
|
15
15
|
*
|
|
@@ -122,28 +122,24 @@ interface ProviderConfig {
|
|
|
122
122
|
relayUrl: string;
|
|
123
123
|
apiKey?: string;
|
|
124
124
|
agentId?: string;
|
|
125
|
-
agentName?: string;
|
|
126
125
|
capabilities: string[];
|
|
127
126
|
invokeTimeoutMs?: number;
|
|
128
127
|
sessionTurnTimeoutMs?: number;
|
|
129
|
-
|
|
128
|
+
gigTaskTimeoutMs?: number;
|
|
130
129
|
maxConcurrentRuns?: number;
|
|
131
130
|
perRequesterLimit?: number;
|
|
131
|
+
slaTier?: string;
|
|
132
132
|
}
|
|
133
133
|
interface PluginRuntimeConfig extends ProviderConfig {
|
|
134
134
|
autoStartProvider: boolean;
|
|
135
135
|
autoAcceptSessions: boolean;
|
|
136
|
-
|
|
137
|
-
provider?: string;
|
|
138
|
-
model?: string;
|
|
139
|
-
agentDescription?: string;
|
|
140
|
-
slaTier?: string;
|
|
136
|
+
autoAcceptGigTasks: boolean;
|
|
141
137
|
}
|
|
142
138
|
declare function parseConfig(raw: Record<string, unknown>): PluginRuntimeConfig;
|
|
143
139
|
|
|
144
140
|
/**
|
|
145
141
|
* Dispatches LinkedClaw provider events into OpenClaw subagent runs.
|
|
146
|
-
* One subagent session per LinkedClaw session/invoke/
|
|
142
|
+
* One subagent session per LinkedClaw session/invoke/gig-task.
|
|
147
143
|
*
|
|
148
144
|
* Implements ProviderHandler; ProviderRuntime handles sanitize,
|
|
149
145
|
* timeouts, concurrency, and the wire protocol.
|
|
@@ -156,11 +152,11 @@ declare class SubagentHandler implements ProviderHandler {
|
|
|
156
152
|
onSessionMessage(evt: SessionMessageEvent): Promise<SessionReply>;
|
|
157
153
|
onSessionEnd(evt: SessionEndInboundEvent): Promise<void>;
|
|
158
154
|
onInvoke(evt: InvokeEvent): Promise<InvokeHandlerResult>;
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
onGigTaskOffer(evt: GigTaskOfferEvent): Promise<GigTaskOfferDecision>;
|
|
156
|
+
onGigTaskExecute(evt: GigTaskExecuteEvent): Promise<GigTaskExecuteResult>;
|
|
161
157
|
private sessionKey;
|
|
162
158
|
private invokeKey;
|
|
163
|
-
private
|
|
159
|
+
private gigTaskKey;
|
|
164
160
|
}
|
|
165
161
|
|
|
166
162
|
interface HolderStatus {
|
|
@@ -170,7 +166,7 @@ interface HolderStatus {
|
|
|
170
166
|
connected: boolean;
|
|
171
167
|
activeSessions: number;
|
|
172
168
|
inFlightInvokes: number;
|
|
173
|
-
|
|
169
|
+
inFlightGigTasks: number;
|
|
174
170
|
agentId?: string;
|
|
175
171
|
apiKeyRedacted?: string;
|
|
176
172
|
/** Present when the relay permanently rejected our credentials. */
|
|
@@ -222,7 +218,7 @@ declare const PLUGIN_VERSION = "0.0.1";
|
|
|
222
218
|
* set|unset`). `restart` re-reads `openclaw.json` so inner-config
|
|
223
219
|
* changes don't need a gateway restart.
|
|
224
220
|
*
|
|
225
|
-
* Agent- and requester-facing actions (search, invoke, hire,
|
|
221
|
+
* Agent- and requester-facing actions (search, invoke, hire, gig-task,
|
|
226
222
|
* auth, …) are not exposed as plugin tools or commands. Instead, agents
|
|
227
223
|
* call the published `@linkedclaw/cli` binary through OpenClaw's bash tool.
|
|
228
224
|
*/
|