@atalk/openclaw 0.1.0-alpha.10 → 0.1.0-alpha.12
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 +21 -3
- package/dist/channel.d.ts +9 -1
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +280 -26
- package/dist/channel.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools.d.ts +42 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +334 -0
- package/dist/tools.js.map +1 -0
- package/openclaw.plugin.json +11 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# @atalk/openclaw
|
|
2
2
|
|
|
3
|
-
Native OpenClaw channel for aTalk.
|
|
3
|
+
Native OpenClaw channel for aTalk. Authenticated direct messages start an OpenClaw turn automatically;
|
|
4
|
+
inside a multi-participant Task, only a structured mention of this agent or an assigned plan step does.
|
|
5
|
+
Encrypted text, images, video, audio and files retain their native media path, and OpenClaw responses
|
|
6
|
+
return through the same aTalk conversation or Task.
|
|
4
7
|
|
|
5
8
|
## Install
|
|
6
9
|
|
|
@@ -18,9 +21,24 @@ openclaw gateway restart
|
|
|
18
21
|
|
|
19
22
|
After activation, remove `ATALK_AGENT_TOKEN` and keep the credential path. `ATALK_BASE_URL` defaults to `https://api.atalk.ar`.
|
|
20
23
|
|
|
21
|
-
Attachments are decrypted only inside the connector process and
|
|
24
|
+
Attachments are decrypted only inside the connector process and streamed through private temporary files into OpenClaw's managed inbound media store. Outbound OpenClaw media is sent with aTalk's independently authenticated chunk transport. Temporary connector files are removed after handoff. The aTalk transport accepts files up to 100 MB; the selected model or OpenClaw media pipeline may impose a lower processing limit.
|
|
22
25
|
|
|
23
|
-
Identity policy, temporary
|
|
26
|
+
Identity policy, temporary permissions, supervision and revocation remain in the aTalk app.
|
|
24
27
|
When an owner intervenes in a supervised conversation, the selected `@agent` arrives as signed,
|
|
25
28
|
encrypted mention metadata and is added to OpenClaw's agent-facing context. OpenClaw replies privately
|
|
26
29
|
to that owner; an unmentioned intervention continues to the external counterparty. The user-visible text stays unchanged.
|
|
30
|
+
|
|
31
|
+
The channel also polls assigned aTalk Tasks/Workrooms with a durable cursor. The verified, locally decrypted task title/objective is included in context. Only a canonical structured E2EE mention of this agent with `intent: direct`, or an `executing` plan step assigned to it, starts an OpenClaw turn. FYI mentions, inactive steps, unrelated traffic and the agent's own events remain visible in aTalk without consuming model work. Publication/decryption reject stale or forged identity triples and direct self-mentions. There is no one-agent auto-target fallback, and text that merely looks like `@agent` is not routing.
|
|
32
|
+
|
|
33
|
+
For a plan event OpenClaw receives the task summary and only the SDK-verified `routing.assignedSteps` for this runtime. The rest of the plan stays in the operator audit view and is not injected as executable model context.
|
|
34
|
+
|
|
35
|
+
An `observer` membership never starts an OpenClaw turn. Its Task cursor still advances so changing
|
|
36
|
+
the role later does not replay old instructions.
|
|
37
|
+
|
|
38
|
+
OpenClaw sees directed task messages, activity, plans, deliverables, and encrypted artifact files. Images remain images, voice notes remain `audio/*`, video remains video, and other files remain documents in its native media pipeline. Text responses mention the originating participant and retain `replyToEventId`; generated media/files are encrypted and published as artifact versions.
|
|
39
|
+
|
|
40
|
+
The plugin also registers native `atalk_task_*` tools to list/open Tasks and publish messages, activity, versioned plans, deliverables, and workspace files. Mention and assignment parameters accept active participant `@handles`, which the connector resolves to signed peer ids locally. File tools are restricted to the active OpenClaw workspace. `atalk_task_submit_file` returns `artifactId`, `artifactVersion`, and `artifactVersionId` for a later `atalk_task_deliverable` call.
|
|
41
|
+
|
|
42
|
+
Message, plan, file, and deliverable operations use the same action names as the app's agent-permission editor (`message.send`, `plan.update`, `file.read`, `file.create`, `deliverable.submit`). `plan.update` must be explicitly allowed. Cost telemetry is derived from successful permitted work and cannot be granted or published as a standalone action; approval requests are created only by the permission guard and execute nothing.
|
|
43
|
+
|
|
44
|
+
Every response/file read is checked against the latest signed agent permission (`mandate` in the SDK API) immediately before the effect. Revoked, expired, over-limit, or out-of-scope work stops. `requires_approval` creates an encrypted consent request and does not run the action; retry the tool with its returned `operationId` after approval, and never reuse that id for a changed payload/effect. Consent ids bind the complete proposal. Successful work records a signed receipt. Run one active connector process per credential if aggregate limits must be strict: local counters and a third-party side effect are retry-safe, but are not one distributed transaction across cloned processes. The connector never sends private keys, attachment keys, or plaintext task content to the aTalk relay.
|
package/dist/channel.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IncomingMessage } from "@atalk/sdk";
|
|
1
|
+
import { Agent, type DecryptedWorkroomEvent, type IncomingMessage } from "@atalk/sdk";
|
|
2
2
|
import type { ChannelPlugin, OpenClawConfig } from "openclaw/plugin-sdk/channel-core";
|
|
3
3
|
interface ResolvedAtalkAccount {
|
|
4
4
|
accountId: string;
|
|
@@ -8,9 +8,17 @@ interface ResolvedAtalkAccount {
|
|
|
8
8
|
baseUrl: string;
|
|
9
9
|
credentialPath: string;
|
|
10
10
|
}
|
|
11
|
+
/** Used only by tools registered by this same native plugin process. */
|
|
12
|
+
export declare function getActiveAtalkAgent(accountId?: string): Agent | undefined;
|
|
11
13
|
export declare function resolveAtalkAccount(_cfg: OpenClawConfig, accountId?: string | null): ResolvedAtalkAccount;
|
|
12
14
|
export declare function normalizeAtalkTarget(value: string): string;
|
|
13
15
|
export declare function mediaKind(message: IncomingMessage): "image" | "video" | "audio" | "document" | "unknown";
|
|
16
|
+
export declare function renderWorkroomEvent(item: Pick<DecryptedWorkroomEvent, "content" | "routing">): string;
|
|
17
|
+
/** Agent turns are started only by authenticated structured routing. */
|
|
18
|
+
export declare function shouldDispatchWorkroomEvent(item: Pick<DecryptedWorkroomEvent, "directedToMe" | "routing">): boolean;
|
|
19
|
+
export declare function mandateFailureMode(result: {
|
|
20
|
+
status: string;
|
|
21
|
+
}): "retry" | "stop" | undefined;
|
|
14
22
|
export declare function shouldRelaySupervisorMessage(message: Pick<IncomingMessage, "isSupervisor" | "isMentioned">): boolean;
|
|
15
23
|
export declare const atalkPlugin: ChannelPlugin<ResolvedAtalkAccount>;
|
|
16
24
|
export {};
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,EAEL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMtF,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,SAAS,SAAY,GAAG,KAAK,GAAG,SAAS,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAWzG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAOxG;AAoJD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG,MAAM,CAkBrG;AAED,wEAAwE;AACxE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,GAAG,SAAS,CAAC,GAC7D,OAAO,CAGT;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3F;AAUD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,aAAa,CAAC,GAAG,OAAO,CAEpH;AAiRD,eAAO,MAAM,WAAW,qCAAS,CAAC"}
|
package/dist/channel.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { createReadStream, existsSync } from "node:fs";
|
|
3
|
+
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
4
|
+
import { homedir, tmpdir } from "node:os";
|
|
3
5
|
import { join } from "node:path";
|
|
4
|
-
import { Agent } from "@atalk/sdk";
|
|
6
|
+
import { Agent, } from "@atalk/sdk";
|
|
7
|
+
import { saveMediaStream } from "openclaw/plugin-sdk/media-store";
|
|
5
8
|
import { getAtalkRuntime } from "./runtime.js";
|
|
6
9
|
const MAX_ATTACHMENT_BYTES = 100 * 1024 * 1024;
|
|
7
10
|
const activeAgents = new Map();
|
|
11
|
+
/** Used only by tools registered by this same native plugin process. */
|
|
12
|
+
export function getActiveAtalkAgent(accountId = "default") {
|
|
13
|
+
return activeAgents.get(accountId);
|
|
14
|
+
}
|
|
8
15
|
export function resolveAtalkAccount(_cfg, accountId) {
|
|
9
16
|
const credentialPath = process.env.ATALK_CREDENTIAL_PATH ?? join(homedir(), ".atalk", "openclaw-agent.json");
|
|
10
17
|
const token = process.env.ATALK_AGENT_TOKEN;
|
|
@@ -36,17 +43,59 @@ export function mediaKind(message) {
|
|
|
36
43
|
async function stageInboundAttachment(message) {
|
|
37
44
|
if (!message.attachment)
|
|
38
45
|
return [];
|
|
39
|
-
const runtime = getAtalkRuntime();
|
|
40
46
|
const descriptor = message.attachment.descriptor;
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
const directory = await mkdtemp(join(tmpdir(), "atalk-openclaw-inbound-"));
|
|
48
|
+
const path = join(directory, safeFileName(descriptor.name));
|
|
49
|
+
try {
|
|
50
|
+
await message.attachment.downloadTo(path);
|
|
51
|
+
const saved = await saveMediaStream(createReadStream(path), descriptor.mimeType, "inbound", MAX_ATTACHMENT_BYTES, descriptor.name, descriptor.name);
|
|
52
|
+
return [{
|
|
53
|
+
path: saved.path,
|
|
54
|
+
url: saved.path,
|
|
55
|
+
contentType: descriptor.mimeType,
|
|
56
|
+
kind: mediaKind(message),
|
|
57
|
+
messageId: message.id,
|
|
58
|
+
}];
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
await rm(directory, { recursive: true, force: true });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function stageWorkroomAttachments(agent, detail, item) {
|
|
65
|
+
if (item.content.kind !== "artifact_version" || !item.content.attachments?.length)
|
|
66
|
+
return [];
|
|
67
|
+
const media = [];
|
|
68
|
+
for (const descriptor of item.content.attachments) {
|
|
69
|
+
const directory = await mkdtemp(join(tmpdir(), "atalk-openclaw-task-"));
|
|
70
|
+
const path = join(directory, safeFileName(descriptor.name));
|
|
71
|
+
try {
|
|
72
|
+
const result = await agent.workrooms.downloadAttachmentToMandated({
|
|
73
|
+
workroomId: detail.workroom.id,
|
|
74
|
+
threadId: item.event.threadId,
|
|
75
|
+
operationId: stableUuid(`${item.event.eventId}:read:${descriptor.id}`),
|
|
76
|
+
descriptor,
|
|
77
|
+
path,
|
|
78
|
+
summary: `Read Task file: ${descriptor.name}`,
|
|
79
|
+
effect: "Decrypt this Task file inside OpenClaw so the assigned agent can process it",
|
|
80
|
+
});
|
|
81
|
+
if (result.status === "requires_approval")
|
|
82
|
+
throw permissionError(result);
|
|
83
|
+
if (result.status !== "executed")
|
|
84
|
+
continue;
|
|
85
|
+
const saved = await saveMediaStream(createReadStream(result.value), descriptor.mimeType, "inbound", MAX_ATTACHMENT_BYTES, descriptor.name, descriptor.name);
|
|
86
|
+
media.push({
|
|
87
|
+
path: saved.path,
|
|
88
|
+
url: saved.path,
|
|
89
|
+
contentType: descriptor.mimeType,
|
|
90
|
+
kind: mediaKindFromType(descriptor.mimeType),
|
|
91
|
+
messageId: item.event.eventId,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
await rm(directory, { recursive: true, force: true });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return media;
|
|
50
99
|
}
|
|
51
100
|
async function loadOutboundAttachment(mediaUrl, access) {
|
|
52
101
|
const runtime = getAtalkRuntime();
|
|
@@ -56,11 +105,21 @@ async function loadOutboundAttachment(mediaUrl, access) {
|
|
|
56
105
|
...(access?.readFile ? { readFile: access.readFile, hostReadCapability: true } : {}),
|
|
57
106
|
...(access?.workspaceDir ? { workspaceDir: access.workspaceDir } : {}),
|
|
58
107
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
108
|
+
const directory = await mkdtemp(join(tmpdir(), "atalk-openclaw-outbound-"));
|
|
109
|
+
const name = safeFileName(loaded.fileName || "attachment");
|
|
110
|
+
const path = join(directory, name);
|
|
111
|
+
try {
|
|
112
|
+
await writeFile(path, loaded.buffer, { mode: 0o600 });
|
|
113
|
+
return {
|
|
114
|
+
input: { path, name, mimeType: loaded.contentType || "application/octet-stream" },
|
|
115
|
+
digest: createHash("sha256").update(loaded.buffer).digest("hex"),
|
|
116
|
+
cleanup: () => rm(directory, { recursive: true, force: true }),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
await rm(directory, { recursive: true, force: true });
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
64
123
|
}
|
|
65
124
|
async function deliverReply(message, payload) {
|
|
66
125
|
const text = payload.text?.trim();
|
|
@@ -74,10 +133,78 @@ async function deliverReply(message, payload) {
|
|
|
74
133
|
}
|
|
75
134
|
for (const [index, mediaUrl] of mediaUrls.entries()) {
|
|
76
135
|
const attachment = await loadOutboundAttachment(mediaUrl);
|
|
77
|
-
|
|
78
|
-
|
|
136
|
+
try {
|
|
137
|
+
const input = { ...attachment.input, ...(index === 0 && text ? { caption: text } : {}) };
|
|
138
|
+
await (relayToCounterparty ? message.relayAttachmentFile(input) : message.replyAttachmentFile(input));
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await attachment.cleanup();
|
|
142
|
+
}
|
|
79
143
|
}
|
|
80
144
|
}
|
|
145
|
+
function safeFileName(value) {
|
|
146
|
+
return value.replace(/[\r\n"\\/]+/gu, "_").slice(0, 180) || "attachment";
|
|
147
|
+
}
|
|
148
|
+
function stableUuid(value) {
|
|
149
|
+
const bytes = createHash("sha256").update(value).digest().subarray(0, 16);
|
|
150
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
151
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
152
|
+
const hex = bytes.toString("hex");
|
|
153
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
154
|
+
}
|
|
155
|
+
function mediaKindFromType(mimeType) {
|
|
156
|
+
if (mimeType.startsWith("image/"))
|
|
157
|
+
return "image";
|
|
158
|
+
if (mimeType.startsWith("video/"))
|
|
159
|
+
return "video";
|
|
160
|
+
if (mimeType.startsWith("audio/"))
|
|
161
|
+
return "audio";
|
|
162
|
+
return "document";
|
|
163
|
+
}
|
|
164
|
+
function responseMention(item) {
|
|
165
|
+
return [{
|
|
166
|
+
peerId: item.actor.id,
|
|
167
|
+
handle: item.actor.handle,
|
|
168
|
+
peerType: item.actor.type === "AGENT" ? "AGENT" : "HUMAN",
|
|
169
|
+
intent: "direct",
|
|
170
|
+
}];
|
|
171
|
+
}
|
|
172
|
+
export function renderWorkroomEvent(item) {
|
|
173
|
+
const content = item.content;
|
|
174
|
+
switch (content.kind) {
|
|
175
|
+
case "message": return content.body;
|
|
176
|
+
case "activity": return `${content.summary}\n\nActivity: ${content.activityType}`;
|
|
177
|
+
case "plan": return [
|
|
178
|
+
content.summary,
|
|
179
|
+
"Your executable assigned steps (execute only these steps):",
|
|
180
|
+
...item.routing.assignedSteps.map((step) => `- [${step.status}] ${step.title}`),
|
|
181
|
+
].join("\n");
|
|
182
|
+
case "artifact_version": return [content.title, content.description, content.fileName].filter(Boolean).join("\n");
|
|
183
|
+
case "deliverable": return ["Deliverable submitted for review", content.note].filter(Boolean).join("\n");
|
|
184
|
+
case "cost": return `Task usage recorded: ${content.metric}`;
|
|
185
|
+
case "approval_request": return [
|
|
186
|
+
content.summary ?? content.rationale,
|
|
187
|
+
`Requested effect: ${content.effect ?? content.action}`,
|
|
188
|
+
].join("\n");
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/** Agent turns are started only by authenticated structured routing. */
|
|
192
|
+
export function shouldDispatchWorkroomEvent(item) {
|
|
193
|
+
return item.directedToMe === true
|
|
194
|
+
&& item.routing.directedToMe === true;
|
|
195
|
+
}
|
|
196
|
+
export function mandateFailureMode(result) {
|
|
197
|
+
if (result.status === "executed")
|
|
198
|
+
return undefined;
|
|
199
|
+
return result.status === "requires_approval" ? "retry" : "stop";
|
|
200
|
+
}
|
|
201
|
+
function permissionError(result) {
|
|
202
|
+
const code = result.decision && typeof result.decision === "object" && "code" in result.decision
|
|
203
|
+
&& typeof result.decision.code === "string"
|
|
204
|
+
? result.decision.code
|
|
205
|
+
: undefined;
|
|
206
|
+
return new Error(`aTalk agent permission ${result.status}${code ? `: ${code}` : ""}`);
|
|
207
|
+
}
|
|
81
208
|
export function shouldRelaySupervisorMessage(message) {
|
|
82
209
|
return message.isSupervisor && !message.isMentioned;
|
|
83
210
|
}
|
|
@@ -129,6 +256,126 @@ async function dispatchIncoming(cfg, account, agent, message) {
|
|
|
129
256
|
dispatcherOptions: { deliver: async (payload) => deliverReply(message, payload) },
|
|
130
257
|
});
|
|
131
258
|
}
|
|
259
|
+
async function dispatchWorkroomEvent(cfg, account, agent, detail, item) {
|
|
260
|
+
if (!shouldDispatchWorkroomEvent(item))
|
|
261
|
+
return;
|
|
262
|
+
const content = item.content;
|
|
263
|
+
const body = renderWorkroomEvent(item);
|
|
264
|
+
const runtime = getAtalkRuntime();
|
|
265
|
+
const channel = runtime.channel;
|
|
266
|
+
const route = channel.routing.resolveAgentRoute({
|
|
267
|
+
cfg,
|
|
268
|
+
channel: "atalk",
|
|
269
|
+
accountId: account.accountId,
|
|
270
|
+
peer: { kind: "group", id: detail.workroom.id },
|
|
271
|
+
});
|
|
272
|
+
const media = await stageWorkroomAttachments(agent, detail, item);
|
|
273
|
+
const taskName = detail.descriptor.title ?? detail.descriptor.objective;
|
|
274
|
+
const ctx = channel.inbound.buildContext({
|
|
275
|
+
channel: "atalk",
|
|
276
|
+
provider: "atalk",
|
|
277
|
+
surface: "atalk",
|
|
278
|
+
accountId: route.accountId,
|
|
279
|
+
messageId: item.event.eventId,
|
|
280
|
+
messageIdFull: item.event.eventId,
|
|
281
|
+
timestamp: Date.parse(item.event.createdAt),
|
|
282
|
+
from: `atalk:${item.actor.handle}`,
|
|
283
|
+
sender: { id: item.actor.id, name: item.actor.displayName, username: item.actor.handle },
|
|
284
|
+
conversation: { kind: "group", id: detail.workroom.id, label: taskName },
|
|
285
|
+
route: { agentId: route.agentId, accountId: route.accountId, routeSessionKey: route.sessionKey, dispatchSessionKey: route.sessionKey },
|
|
286
|
+
reply: { to: `atalk-workroom:${detail.workroom.id}`, originatingTo: item.actor.handle },
|
|
287
|
+
message: {
|
|
288
|
+
rawBody: body,
|
|
289
|
+
body,
|
|
290
|
+
bodyForAgent: `[aTalk encrypted Task: ${taskName}; task id: ${detail.workroom.id}; thread id: ${item.event.threadId}; objective: ${detail.descriptor.objective}; reply in this thread; use atalk_task_* tools for plans, deliverables or explicit routing]\n\n${body}`,
|
|
291
|
+
commandBody: body,
|
|
292
|
+
},
|
|
293
|
+
media,
|
|
294
|
+
});
|
|
295
|
+
let deliveryIndex = 0;
|
|
296
|
+
await channel.reply.dispatchReplyWithBufferedBlockDispatcher({
|
|
297
|
+
ctx,
|
|
298
|
+
cfg,
|
|
299
|
+
dispatcherOptions: {
|
|
300
|
+
deliver: async (payload) => {
|
|
301
|
+
const text = payload.text?.trim();
|
|
302
|
+
const mediaUrls = (payload.mediaUrls?.length ? payload.mediaUrls : payload.mediaUrl ? [payload.mediaUrl] : [])
|
|
303
|
+
.filter((value) => Boolean(value?.trim()));
|
|
304
|
+
const index = deliveryIndex;
|
|
305
|
+
deliveryIndex += 1;
|
|
306
|
+
if (mediaUrls.length === 0) {
|
|
307
|
+
if (!text)
|
|
308
|
+
return;
|
|
309
|
+
const result = await agent.workrooms.publishMandated({
|
|
310
|
+
workroomId: detail.workroom.id,
|
|
311
|
+
threadId: item.event.threadId,
|
|
312
|
+
operationId: stableUuid(`${item.event.eventId}:reply:${index}:${text}`),
|
|
313
|
+
payload: {
|
|
314
|
+
version: 1,
|
|
315
|
+
kind: "message",
|
|
316
|
+
threadId: item.event.threadId,
|
|
317
|
+
body: text,
|
|
318
|
+
mentions: responseMention(item),
|
|
319
|
+
replyToEventId: item.event.eventId,
|
|
320
|
+
},
|
|
321
|
+
summary: "Reply to a directed message in this Task",
|
|
322
|
+
effect: "Share the reply with the Task participants",
|
|
323
|
+
});
|
|
324
|
+
if (mandateFailureMode(result) === "retry")
|
|
325
|
+
throw permissionError(result);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
for (const [mediaIndex, mediaUrl] of mediaUrls.entries()) {
|
|
329
|
+
const attachment = await loadOutboundAttachment(mediaUrl);
|
|
330
|
+
try {
|
|
331
|
+
const result = await agent.workrooms.submitFileMandated({
|
|
332
|
+
workroomId: detail.workroom.id,
|
|
333
|
+
threadId: item.event.threadId,
|
|
334
|
+
operationId: stableUuid(`${item.event.eventId}:reply:${index}:media:${mediaIndex}:${attachment.digest}:${text ?? ""}`),
|
|
335
|
+
...attachment.input,
|
|
336
|
+
...(text && mediaIndex === 0 ? { description: text } : {}),
|
|
337
|
+
mentions: responseMention(item),
|
|
338
|
+
summary: `Return ${attachment.input.name ?? "a file"} to this Task`,
|
|
339
|
+
effect: "Encrypt and share the generated file with the Task participants",
|
|
340
|
+
});
|
|
341
|
+
if (mandateFailureMode(result) === "retry")
|
|
342
|
+
throw permissionError(result);
|
|
343
|
+
}
|
|
344
|
+
finally {
|
|
345
|
+
await attachment.cleanup();
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
async function pollWorkrooms(cfg, account, agent, signal, log) {
|
|
353
|
+
while (!signal.aborted) {
|
|
354
|
+
try {
|
|
355
|
+
let cursor;
|
|
356
|
+
do {
|
|
357
|
+
const page = await agent.workrooms.list(cursor, 100);
|
|
358
|
+
for (const summary of page.workrooms) {
|
|
359
|
+
if (signal.aborted)
|
|
360
|
+
return;
|
|
361
|
+
await agent.workrooms.poll(summary.workroom.id, async (event) => {
|
|
362
|
+
const detail = await agent.workrooms.get(summary.workroom.id, 0, 1);
|
|
363
|
+
await dispatchWorkroomEvent(cfg, account, agent, detail, event);
|
|
364
|
+
}, { signal });
|
|
365
|
+
}
|
|
366
|
+
cursor = page.nextCursor ?? undefined;
|
|
367
|
+
} while (cursor && !signal.aborted);
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
if (!signal.aborted)
|
|
371
|
+
log?.error(error instanceof Error ? error.message : String(error));
|
|
372
|
+
}
|
|
373
|
+
await new Promise((resolve) => {
|
|
374
|
+
const timer = setTimeout(resolve, 2_000);
|
|
375
|
+
signal.addEventListener("abort", () => { clearTimeout(timer); resolve(); }, { once: true });
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
}
|
|
132
379
|
const plugin = {
|
|
133
380
|
id: "atalk",
|
|
134
381
|
meta: {
|
|
@@ -141,7 +388,7 @@ const plugin = {
|
|
|
141
388
|
aliases: ["atalk"],
|
|
142
389
|
markdownCapable: false,
|
|
143
390
|
},
|
|
144
|
-
capabilities: { chatTypes: ["direct"], reply: true, media: true, blockStreaming: true },
|
|
391
|
+
capabilities: { chatTypes: ["direct", "group"], reply: true, media: true, blockStreaming: true },
|
|
145
392
|
config: {
|
|
146
393
|
listAccountIds: () => ["default"],
|
|
147
394
|
resolveAccount: resolveAtalkAccount,
|
|
@@ -172,9 +419,11 @@ const plugin = {
|
|
|
172
419
|
agent.on("message", (message) => dispatchIncoming(ctx.cfg, ctx.account, agent, message));
|
|
173
420
|
try {
|
|
174
421
|
await agent.start();
|
|
422
|
+
const workroomPolling = pollWorkrooms(ctx.cfg, ctx.account, agent, ctx.abortSignal, ctx.log);
|
|
175
423
|
ctx.setStatus({ ...ctx.getStatus(), accountId: ctx.accountId, running: true, connected: true, lastConnectedAt: Date.now() });
|
|
176
424
|
ctx.log?.info(`connected as ${agent.peer?.handle ?? "unknown"}`);
|
|
177
425
|
await new Promise((resolve) => ctx.abortSignal.addEventListener("abort", () => resolve(), { once: true }));
|
|
426
|
+
await workroomPolling;
|
|
178
427
|
}
|
|
179
428
|
finally {
|
|
180
429
|
activeAgents.delete(ctx.accountId);
|
|
@@ -207,11 +456,16 @@ const plugin = {
|
|
|
207
456
|
readFile: mediaAccess?.readFile ?? mediaReadFile,
|
|
208
457
|
workspaceDir: mediaAccess?.workspaceDir,
|
|
209
458
|
});
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
459
|
+
try {
|
|
460
|
+
const sent = await agent.sendAttachmentFileWithDetails(normalizeAtalkTarget(to), {
|
|
461
|
+
...attachment.input,
|
|
462
|
+
...(text.trim() ? { caption: text.trim() } : {}),
|
|
463
|
+
});
|
|
464
|
+
return { channel: "atalk", messageId: sent.messageId, conversationId: sent.conversationId };
|
|
465
|
+
}
|
|
466
|
+
finally {
|
|
467
|
+
await attachment.cleanup();
|
|
468
|
+
}
|
|
215
469
|
},
|
|
216
470
|
},
|
|
217
471
|
};
|
package/dist/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,UAAU,oBAAoB;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAED,QAAA,MAAM,KAAK,EAOM,oBAAoB,CAAC;AAEtC,eAAe,KAAK,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
|
2
2
|
import { atalkPlugin } from "./channel.js";
|
|
3
3
|
import { setAtalkRuntime } from "./runtime.js";
|
|
4
|
+
import { registerAtalkTaskTools } from "./tools.js";
|
|
4
5
|
const entry = defineChannelPluginEntry({
|
|
5
6
|
id: "atalk",
|
|
6
7
|
name: "aTalk",
|
|
7
8
|
description: "Native end-to-end encrypted aTalk text and multimedia channel",
|
|
8
9
|
plugin: atalkPlugin,
|
|
9
10
|
setRuntime: setAtalkRuntime,
|
|
11
|
+
registerFull: registerAtalkTaskTools,
|
|
10
12
|
});
|
|
11
13
|
export default entry;
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AASpD,MAAM,KAAK,GAAG,wBAAwB,CAAC;IACrC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,+DAA+D;IAC5E,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,sBAAsB;CACrC,CAAoC,CAAC;AAEtC,eAAe,KAAK,CAAC"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Agent } from "@atalk/sdk";
|
|
2
|
+
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/channel-core";
|
|
3
|
+
import { Type } from "typebox";
|
|
4
|
+
export declare function buildAtalkTaskTools(agent: Agent, context: {
|
|
5
|
+
workspaceDir?: string;
|
|
6
|
+
}): ({
|
|
7
|
+
name: string;
|
|
8
|
+
label: string;
|
|
9
|
+
description: string;
|
|
10
|
+
parameters: Type.TObject<{
|
|
11
|
+
cursor: Type.TOptional<Type.TString>;
|
|
12
|
+
limit: Type.TOptional<Type.TInteger>;
|
|
13
|
+
}>;
|
|
14
|
+
execute(_toolCallId: string, params: {
|
|
15
|
+
cursor?: string;
|
|
16
|
+
limit?: number;
|
|
17
|
+
}): Promise<{
|
|
18
|
+
content: {
|
|
19
|
+
type: "text";
|
|
20
|
+
text: string;
|
|
21
|
+
}[];
|
|
22
|
+
details: unknown;
|
|
23
|
+
}>;
|
|
24
|
+
} | {
|
|
25
|
+
name: string;
|
|
26
|
+
label: string;
|
|
27
|
+
description: string;
|
|
28
|
+
parameters: Type.TObject<{
|
|
29
|
+
workroomId: Type.TString;
|
|
30
|
+
}>;
|
|
31
|
+
execute(_toolCallId: string, params: {
|
|
32
|
+
workroomId: string;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
content: {
|
|
35
|
+
type: "text";
|
|
36
|
+
text: string;
|
|
37
|
+
}[];
|
|
38
|
+
details: unknown;
|
|
39
|
+
}>;
|
|
40
|
+
})[];
|
|
41
|
+
export declare function registerAtalkTaskTools(api: OpenClawPluginApi): void;
|
|
42
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAqG/B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;yBAUjD,MAAM,UAAU;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;yBAUnD,MAAM,UAAU;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;;;;;;;KA8NxE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAUnE"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { realpath, stat } from "node:fs/promises";
|
|
3
|
+
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
4
|
+
import { Type } from "typebox";
|
|
5
|
+
import { getActiveAtalkAgent } from "./channel.js";
|
|
6
|
+
const MAX_ATTACHMENT_BYTES = 100 * 1024 * 1024;
|
|
7
|
+
const uuid = () => Type.String({ format: "uuid" });
|
|
8
|
+
const handle = () => Type.String({ pattern: "^@[a-z0-9][a-z0-9._-]{1,62}$" });
|
|
9
|
+
const handles = () => Type.Array(handle(), { maxItems: 100, default: [] });
|
|
10
|
+
const common = {
|
|
11
|
+
workroomId: uuid(),
|
|
12
|
+
threadId: uuid(),
|
|
13
|
+
operationId: Type.Optional(uuid()),
|
|
14
|
+
mandateId: Type.Optional(uuid()),
|
|
15
|
+
rationale: Type.Optional(Type.String({ minLength: 1, maxLength: 4_000 })),
|
|
16
|
+
};
|
|
17
|
+
function jsonResult(value) {
|
|
18
|
+
return {
|
|
19
|
+
content: [{ type: "text", text: JSON.stringify(value, null, 2) }],
|
|
20
|
+
details: value,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function operationId(value) {
|
|
24
|
+
return value ?? randomUUID();
|
|
25
|
+
}
|
|
26
|
+
function taskView(detail) {
|
|
27
|
+
return {
|
|
28
|
+
id: detail.workroom.id,
|
|
29
|
+
status: detail.workroom.status,
|
|
30
|
+
deadline: detail.workroom.deadline ?? null,
|
|
31
|
+
descriptor: detail.descriptor,
|
|
32
|
+
membership: {
|
|
33
|
+
role: detail.membership.role,
|
|
34
|
+
joinedAt: detail.membership.joinedAt,
|
|
35
|
+
leftAt: detail.membership.leftAt ?? null,
|
|
36
|
+
},
|
|
37
|
+
members: detail.members.map(({ membership, peer }) => ({
|
|
38
|
+
id: membership.peerId,
|
|
39
|
+
role: membership.role,
|
|
40
|
+
leftAt: membership.leftAt ?? null,
|
|
41
|
+
handle: peer?.handle ?? null,
|
|
42
|
+
displayName: peer?.displayName ?? null,
|
|
43
|
+
type: peer?.type ?? null,
|
|
44
|
+
})),
|
|
45
|
+
threads: detail.threads.map((thread) => ({ id: thread.id, kind: thread.kind, createdAt: thread.createdAt })),
|
|
46
|
+
permissions: detail.latestMandates.map(({ mandate, revocation }) => ({
|
|
47
|
+
mandateId: mandate.mandateId,
|
|
48
|
+
revision: mandate.revision,
|
|
49
|
+
actorPeerId: mandate.actorPeerId,
|
|
50
|
+
validFrom: mandate.validFrom,
|
|
51
|
+
validUntil: mandate.validUntil,
|
|
52
|
+
revoked: Boolean(revocation),
|
|
53
|
+
})),
|
|
54
|
+
approvals: detail.approvals.map((approval) => ({
|
|
55
|
+
requestId: approval.requestId,
|
|
56
|
+
status: approval.status,
|
|
57
|
+
requiredApprovals: approval.requiredApprovals,
|
|
58
|
+
eligiblePeerIds: approval.eligiblePeerIds,
|
|
59
|
+
expiresAt: approval.expiresAt ?? null,
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function participantIds(detail) {
|
|
64
|
+
return detail.members
|
|
65
|
+
.filter(({ membership }) => !membership.leftAt)
|
|
66
|
+
.map(({ membership }) => membership.peerId);
|
|
67
|
+
}
|
|
68
|
+
function resolveMembers(detail, requestedHandles) {
|
|
69
|
+
const activeMembers = detail.members.filter(({ membership }) => !membership.leftAt && membership.peerId);
|
|
70
|
+
return requestedHandles.map((requested) => {
|
|
71
|
+
const member = activeMembers.find(({ peer }) => peer?.handle === requested);
|
|
72
|
+
if (!member?.peer)
|
|
73
|
+
throw new Error(`Active Task participant not found: ${requested}`);
|
|
74
|
+
return member.peer;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function mentions(detail, requestedHandles) {
|
|
78
|
+
return resolveMembers(detail, requestedHandles).map((peer) => ({
|
|
79
|
+
peerId: peer.id,
|
|
80
|
+
handle: peer.handle,
|
|
81
|
+
peerType: peer.type === "AGENT" ? "AGENT" : "HUMAN",
|
|
82
|
+
intent: "direct",
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
async function workspaceFile(filePath, workspaceDir) {
|
|
86
|
+
const root = await realpath(resolve(workspaceDir));
|
|
87
|
+
const path = await realpath(resolve(workspaceDir, filePath));
|
|
88
|
+
const fromRoot = relative(root, path);
|
|
89
|
+
if (fromRoot === ".." || fromRoot.startsWith(`..${sep}`) || isAbsolute(fromRoot)) {
|
|
90
|
+
throw new Error("Task files must stay inside the active OpenClaw workspace");
|
|
91
|
+
}
|
|
92
|
+
const metadata = await stat(path);
|
|
93
|
+
if (!metadata.isFile())
|
|
94
|
+
throw new Error("Task attachment path is not a regular file");
|
|
95
|
+
if (metadata.size > MAX_ATTACHMENT_BYTES)
|
|
96
|
+
throw new Error("aTalk Task attachments cannot exceed 100 MB");
|
|
97
|
+
return path;
|
|
98
|
+
}
|
|
99
|
+
export function buildAtalkTaskTools(agent, context) {
|
|
100
|
+
const tools = [
|
|
101
|
+
{
|
|
102
|
+
name: "atalk_task_list",
|
|
103
|
+
label: "List aTalk Tasks",
|
|
104
|
+
description: "List encrypted aTalk Tasks assigned to this agent. Titles and objectives are verified and decrypted locally.",
|
|
105
|
+
parameters: Type.Object({
|
|
106
|
+
cursor: Type.Optional(Type.String()),
|
|
107
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 200, default: 50 })),
|
|
108
|
+
}, { additionalProperties: false }),
|
|
109
|
+
async execute(_toolCallId, params) {
|
|
110
|
+
const page = await agent.workrooms.list(params.cursor, params.limit ?? 50);
|
|
111
|
+
return jsonResult({ tasks: page.workrooms.map(taskView), nextCursor: page.nextCursor });
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "atalk_task_open",
|
|
116
|
+
label: "Open an aTalk Task",
|
|
117
|
+
description: "Open one encrypted aTalk Task and inspect its verified objective, participants, threads, permission metadata and approval status.",
|
|
118
|
+
parameters: Type.Object({ workroomId: uuid() }, { additionalProperties: false }),
|
|
119
|
+
async execute(_toolCallId, params) {
|
|
120
|
+
return jsonResult(taskView(await agent.workrooms.get(params.workroomId, 0, 1)));
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "atalk_task_message",
|
|
125
|
+
label: "Message an aTalk Task",
|
|
126
|
+
description: "Publish an encrypted Task message under the agent's current permission. Mention handles to direct it to specific humans or agents.",
|
|
127
|
+
parameters: Type.Object({
|
|
128
|
+
...common,
|
|
129
|
+
body: Type.String({ minLength: 1, maxLength: 200_000 }),
|
|
130
|
+
mentionHandles: Type.Optional(handles()),
|
|
131
|
+
replyToEventId: Type.Optional(uuid()),
|
|
132
|
+
}, { additionalProperties: false }),
|
|
133
|
+
async execute(_toolCallId, params) {
|
|
134
|
+
const id = operationId(params.operationId);
|
|
135
|
+
const detail = await agent.workrooms.get(params.workroomId, 0, 1);
|
|
136
|
+
const result = await agent.workrooms.publishMandated({
|
|
137
|
+
workroomId: params.workroomId,
|
|
138
|
+
threadId: params.threadId,
|
|
139
|
+
operationId: id,
|
|
140
|
+
...(params.mandateId ? { mandateId: params.mandateId } : {}),
|
|
141
|
+
...(params.rationale ? { rationale: params.rationale } : {}),
|
|
142
|
+
participantPeerIds: participantIds(detail),
|
|
143
|
+
payload: {
|
|
144
|
+
version: 1,
|
|
145
|
+
kind: "message",
|
|
146
|
+
threadId: params.threadId,
|
|
147
|
+
body: params.body,
|
|
148
|
+
mentions: mentions(detail, params.mentionHandles ?? []),
|
|
149
|
+
...(params.replyToEventId ? { replyToEventId: params.replyToEventId } : {}),
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
return jsonResult({ operationId: id, result });
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "atalk_task_activity",
|
|
157
|
+
label: "Update aTalk Task activity",
|
|
158
|
+
description: "Publish a concise encrypted progress update under the agent's current permission.",
|
|
159
|
+
parameters: Type.Object({
|
|
160
|
+
...common,
|
|
161
|
+
activityType: Type.String({ minLength: 1, maxLength: 160 }),
|
|
162
|
+
summary: Type.String({ minLength: 1, maxLength: 4_000 }),
|
|
163
|
+
mentionHandles: Type.Optional(handles()),
|
|
164
|
+
}, { additionalProperties: false }),
|
|
165
|
+
async execute(_toolCallId, params) {
|
|
166
|
+
const id = operationId(params.operationId);
|
|
167
|
+
const detail = await agent.workrooms.get(params.workroomId, 0, 1);
|
|
168
|
+
const result = await agent.workrooms.publishMandated({
|
|
169
|
+
workroomId: params.workroomId,
|
|
170
|
+
threadId: params.threadId,
|
|
171
|
+
operationId: id,
|
|
172
|
+
...(params.mandateId ? { mandateId: params.mandateId } : {}),
|
|
173
|
+
...(params.rationale ? { rationale: params.rationale } : {}),
|
|
174
|
+
participantPeerIds: participantIds(detail),
|
|
175
|
+
payload: {
|
|
176
|
+
version: 1,
|
|
177
|
+
kind: "activity",
|
|
178
|
+
threadId: params.threadId,
|
|
179
|
+
activityType: params.activityType,
|
|
180
|
+
summary: params.summary,
|
|
181
|
+
mentions: mentions(detail, params.mentionHandles ?? []),
|
|
182
|
+
sourceEventIds: [],
|
|
183
|
+
attributes: {},
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
return jsonResult({ operationId: id, result });
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: "atalk_task_plan",
|
|
191
|
+
label: "Plan an aTalk Task",
|
|
192
|
+
description: "Publish a versioned encrypted Task plan. Assign steps by active participant handle. Requires the explicit plan.update permission.",
|
|
193
|
+
parameters: Type.Object({
|
|
194
|
+
...common,
|
|
195
|
+
planId: Type.Optional(uuid()),
|
|
196
|
+
planVersion: Type.Integer({ minimum: 1 }),
|
|
197
|
+
summary: Type.String({ minLength: 1, maxLength: 2_000 }),
|
|
198
|
+
steps: Type.Array(Type.Object({
|
|
199
|
+
id: Type.String({ minLength: 1, maxLength: 160 }),
|
|
200
|
+
title: Type.String({ minLength: 1, maxLength: 500 }),
|
|
201
|
+
status: Type.Union([
|
|
202
|
+
Type.Literal("executing"), Type.Literal("waiting_approval"), Type.Literal("blocked"),
|
|
203
|
+
Type.Literal("completed"), Type.Literal("cancelled"), Type.Literal("expired"),
|
|
204
|
+
]),
|
|
205
|
+
assignedHandles: Type.Optional(handles()),
|
|
206
|
+
dependsOnStepIds: Type.Optional(Type.Array(Type.String({ minLength: 1, maxLength: 160 }), { maxItems: 100 })),
|
|
207
|
+
deadline: Type.Optional(Type.String({ format: "date-time" })),
|
|
208
|
+
}, { additionalProperties: false }), { minItems: 1, maxItems: 500 }),
|
|
209
|
+
}, { additionalProperties: false }),
|
|
210
|
+
async execute(_toolCallId, params) {
|
|
211
|
+
const id = operationId(params.operationId);
|
|
212
|
+
const detail = await agent.workrooms.get(params.workroomId, 0, 1);
|
|
213
|
+
const result = await agent.workrooms.publishMandated({
|
|
214
|
+
workroomId: params.workroomId,
|
|
215
|
+
threadId: params.threadId,
|
|
216
|
+
operationId: id,
|
|
217
|
+
...(params.mandateId ? { mandateId: params.mandateId } : {}),
|
|
218
|
+
...(params.rationale ? { rationale: params.rationale } : {}),
|
|
219
|
+
participantPeerIds: participantIds(detail),
|
|
220
|
+
payload: {
|
|
221
|
+
version: 1,
|
|
222
|
+
kind: "plan",
|
|
223
|
+
...(params.planId ? { planId: params.planId } : {}),
|
|
224
|
+
planVersion: params.planVersion,
|
|
225
|
+
summary: params.summary,
|
|
226
|
+
steps: params.steps.map((step) => ({
|
|
227
|
+
id: step.id,
|
|
228
|
+
title: step.title,
|
|
229
|
+
status: step.status,
|
|
230
|
+
assignedPeerIds: resolveMembers(detail, step.assignedHandles ?? []).map(({ id: peerId }) => peerId),
|
|
231
|
+
dependsOnStepIds: step.dependsOnStepIds ?? [],
|
|
232
|
+
...(step.deadline ? { deadline: step.deadline } : {}),
|
|
233
|
+
})),
|
|
234
|
+
},
|
|
235
|
+
});
|
|
236
|
+
return jsonResult({ operationId: id, result });
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
name: "atalk_task_deliverable",
|
|
241
|
+
label: "Submit an aTalk Task deliverable",
|
|
242
|
+
description: "Submit an encrypted artifact version for review under the agent's current deliverable.submit permission.",
|
|
243
|
+
parameters: Type.Object({
|
|
244
|
+
...common,
|
|
245
|
+
artifactId: uuid(),
|
|
246
|
+
artifactVersion: Type.Integer({ minimum: 1 }),
|
|
247
|
+
artifactVersionId: uuid(),
|
|
248
|
+
deliverableId: Type.Optional(uuid()),
|
|
249
|
+
acceptanceCriteria: Type.Array(Type.String({ minLength: 1, maxLength: 1_000 }), { minItems: 1, maxItems: 100 }),
|
|
250
|
+
note: Type.Optional(Type.String({ maxLength: 4_000 })),
|
|
251
|
+
mentionHandles: Type.Optional(handles()),
|
|
252
|
+
}, { additionalProperties: false }),
|
|
253
|
+
async execute(_toolCallId, params) {
|
|
254
|
+
const id = operationId(params.operationId);
|
|
255
|
+
const detail = await agent.workrooms.get(params.workroomId, 0, 1);
|
|
256
|
+
const result = await agent.workrooms.publishMandated({
|
|
257
|
+
workroomId: params.workroomId,
|
|
258
|
+
threadId: params.threadId,
|
|
259
|
+
operationId: id,
|
|
260
|
+
...(params.mandateId ? { mandateId: params.mandateId } : {}),
|
|
261
|
+
...(params.rationale ? { rationale: params.rationale } : {}),
|
|
262
|
+
participantPeerIds: participantIds(detail),
|
|
263
|
+
payload: {
|
|
264
|
+
version: 1,
|
|
265
|
+
kind: "deliverable",
|
|
266
|
+
artifactId: params.artifactId,
|
|
267
|
+
artifactVersion: params.artifactVersion,
|
|
268
|
+
artifactVersionId: params.artifactVersionId,
|
|
269
|
+
...(params.deliverableId ? { deliverableId: params.deliverableId } : {}),
|
|
270
|
+
acceptanceCriteria: params.acceptanceCriteria,
|
|
271
|
+
...(params.note ? { note: params.note } : {}),
|
|
272
|
+
mentions: mentions(detail, params.mentionHandles ?? []),
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
return jsonResult({ operationId: id, result });
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
];
|
|
279
|
+
if (context.workspaceDir) {
|
|
280
|
+
tools.push({
|
|
281
|
+
name: "atalk_task_submit_file",
|
|
282
|
+
label: "Attach a file to an aTalk Task",
|
|
283
|
+
description: "Encrypt and attach one file from the active OpenClaw workspace to a Task. Returns artifact identifiers that can be submitted as a deliverable.",
|
|
284
|
+
parameters: Type.Object({
|
|
285
|
+
...common,
|
|
286
|
+
filePath: Type.String({ minLength: 1 }),
|
|
287
|
+
name: Type.Optional(Type.String({ minLength: 1, maxLength: 500 })),
|
|
288
|
+
mimeType: Type.Optional(Type.String({ minLength: 1, maxLength: 200 })),
|
|
289
|
+
title: Type.Optional(Type.String({ minLength: 1, maxLength: 500 })),
|
|
290
|
+
description: Type.Optional(Type.String({ maxLength: 4_000 })),
|
|
291
|
+
artifactType: Type.Optional(Type.String({ minLength: 1, maxLength: 160 })),
|
|
292
|
+
artifactId: Type.Optional(uuid()),
|
|
293
|
+
artifactVersion: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
294
|
+
mentionHandles: Type.Optional(handles()),
|
|
295
|
+
}, { additionalProperties: false }),
|
|
296
|
+
async execute(_toolCallId, params) {
|
|
297
|
+
const id = operationId(params.operationId);
|
|
298
|
+
const detail = await agent.workrooms.get(params.workroomId, 0, 1);
|
|
299
|
+
const path = await workspaceFile(params.filePath, context.workspaceDir);
|
|
300
|
+
const result = await agent.workrooms.submitFileMandated({
|
|
301
|
+
workroomId: params.workroomId,
|
|
302
|
+
threadId: params.threadId,
|
|
303
|
+
operationId: id,
|
|
304
|
+
path,
|
|
305
|
+
...(params.mandateId ? { mandateId: params.mandateId } : {}),
|
|
306
|
+
...(params.rationale ? { rationale: params.rationale } : {}),
|
|
307
|
+
...(params.name ? { name: params.name } : {}),
|
|
308
|
+
...(params.mimeType ? { mimeType: params.mimeType } : {}),
|
|
309
|
+
...(params.title ? { title: params.title } : {}),
|
|
310
|
+
...(params.description ? { description: params.description } : {}),
|
|
311
|
+
...(params.artifactType ? { artifactType: params.artifactType } : {}),
|
|
312
|
+
...(params.artifactId ? { artifactId: params.artifactId } : {}),
|
|
313
|
+
...(params.artifactVersion ? { artifactVersion: params.artifactVersion } : {}),
|
|
314
|
+
mentions: mentions(detail, params.mentionHandles ?? []),
|
|
315
|
+
participantPeerIds: participantIds(detail),
|
|
316
|
+
});
|
|
317
|
+
return jsonResult({ operationId: id, result });
|
|
318
|
+
},
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
return tools;
|
|
322
|
+
}
|
|
323
|
+
export function registerAtalkTaskTools(api) {
|
|
324
|
+
api.registerTool((context) => {
|
|
325
|
+
const agent = getActiveAtalkAgent(context.agentAccountId ?? "default");
|
|
326
|
+
return agent ? buildAtalkTaskTools(agent, context) : null;
|
|
327
|
+
}, {
|
|
328
|
+
names: [
|
|
329
|
+
"atalk_task_list", "atalk_task_open", "atalk_task_message", "atalk_task_activity",
|
|
330
|
+
"atalk_task_plan", "atalk_task_deliverable", "atalk_task_submit_file",
|
|
331
|
+
],
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;AAC9E,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3E,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,IAAI,EAAE;IAClB,QAAQ,EAAE,IAAI,EAAE;IAChB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEF,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,IAAI,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB;IACtC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;QAC1C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;YAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;YACpC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI;SACzC;QACD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,EAAE,EAAE,UAAU,CAAC,MAAM;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI;YACjC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI;YAC5B,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI;YACtC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5G,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACnE,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;SAC7B,CAAC,CAAC;QACH,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,IAAI;SACtC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAsB;IAC5C,OAAO,MAAM,CAAC,OAAO;SAClB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;SAC9C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,MAAsB,EAAE,gBAA0B;IACxE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACzG,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB,EAAE,gBAA0B;IAClE,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAgB,CAAC,CAAC,CAAC,OAAgB;QACrE,MAAM,EAAE,QAAiB;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,YAAoB;IACjE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACtF,IAAI,QAAQ,CAAC,IAAI,GAAG,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACzG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,OAAkC;IAClF,MAAM,KAAK,GAAG;QACV;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,8GAA8G;YAC3H,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAC9E,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAA2C;gBAC5E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC3E,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1F,CAAC;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,mIAAmI;YAChJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YAChF,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAA8B;gBAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,oIAAoI;YACjJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,MAAM;gBACT,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;gBACvD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACtC,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAGlC;gBACC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;oBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,EAAE;oBACf,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC;oBAC1C,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;wBACvD,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5E;iBACF,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,mFAAmF;YAChG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,MAAM;gBACT,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBAC3D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACxD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACzC,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAGlC;gBACC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;oBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,EAAE;oBACf,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC;oBAC1C,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;wBACvD,cAAc,EAAE,EAAE;wBAClB,UAAU,EAAE,EAAE;qBACf;iBACF,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,mIAAmI;YAChJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,MAAM;gBACT,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACxD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC5B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;oBACjD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;oBACpD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;wBACpF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;qBAC9E,CAAC;oBACF,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACzC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7G,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;iBAC9D,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;aACrE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAIlC;gBACC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;oBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,EAAE;oBACf,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC;oBAC1C,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,MAAM;wBACZ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnD,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BACjC,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,eAAe,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;4BACnG,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;4BAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACtD,CAAC,CAAC;qBACJ;iBACF,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,kCAAkC;YACzC,WAAW,EAAE,0GAA0G;YACvH,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,MAAM;gBACT,UAAU,EAAE,IAAI,EAAE;gBAClB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,EAAE,IAAI,EAAE;gBACzB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;gBAC/G,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACzC,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAIlC;gBACC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;oBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,EAAE;oBACf,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC;oBAC1C,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;wBACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;wBAC3C,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7C,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;qBACxD;iBACF,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;SACF;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,gCAAgC;YACvC,WAAW,EAAE,gJAAgJ;YAC7J,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,MAAM;gBACT,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7D,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1E,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5D,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACzC,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,MAIlC;gBACC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAa,CAAC,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC;oBACtD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,EAAE;oBACf,IAAI;oBACJ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;oBACvD,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC;iBAC3C,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC,EAAE;QACD,KAAK,EAAE;YACL,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB;YACjF,iBAAiB,EAAE,wBAAwB,EAAE,wBAAwB;SACtE;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
"name": "aTalk",
|
|
4
4
|
"description": "Native end-to-end encrypted aTalk text and multimedia channel.",
|
|
5
5
|
"channels": ["atalk"],
|
|
6
|
+
"contracts": {
|
|
7
|
+
"tools": [
|
|
8
|
+
"atalk_task_list",
|
|
9
|
+
"atalk_task_open",
|
|
10
|
+
"atalk_task_message",
|
|
11
|
+
"atalk_task_activity",
|
|
12
|
+
"atalk_task_plan",
|
|
13
|
+
"atalk_task_deliverable",
|
|
14
|
+
"atalk_task_submit_file"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
6
17
|
"channelConfigs": {
|
|
7
18
|
"atalk": {
|
|
8
19
|
"schema": { "type": "object", "additionalProperties": false, "properties": {} },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atalk/openclaw",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.12",
|
|
4
4
|
"description": "Native aTalk messaging channel for OpenClaw",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"registry": "https://registry.npmjs.org/"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"
|
|
28
|
+
"typebox": "1.3.3",
|
|
29
|
+
"@atalk/sdk": "0.1.0-alpha.12"
|
|
29
30
|
},
|
|
30
31
|
"peerDependencies": {
|
|
31
32
|
"openclaw": ">=2026.7.1-2"
|