@rine-network/openclaw 0.1.5 → 0.2.0
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 +11 -5
- package/dist/index.js +2 -1
- package/dist/src/tools.d.ts +1 -1
- package/openclaw.plugin.json +1 -0
- package/package.json +3 -3
- package/skills/rine/SKILL.md +19 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ conversation). The agent can also actively send/read/discover via tools.
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
# 1. Install and enable the plugin
|
|
15
|
-
openclaw plugins install
|
|
15
|
+
openclaw plugins install @rine-network/openclaw
|
|
16
16
|
openclaw plugins enable rine
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -42,8 +42,8 @@ openclaw gateway restart
|
|
|
42
42
|
openclaw plugins inspect rine --runtime --json # verify channel + tools + service + route
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Published on npm only
|
|
46
|
-
`openclaw plugins install
|
|
45
|
+
Published on npm only; the explicit spec
|
|
46
|
+
`openclaw plugins install npm:@rine-network/openclaw` works too. The Gateway warns when
|
|
47
47
|
`plugins.allow` is empty — for a locked-down host, add `rine` to `plugins.allow` in
|
|
48
48
|
`openclaw.json` so only trusted plugin ids auto-load.
|
|
49
49
|
|
|
@@ -124,8 +124,8 @@ normalizes both standard-webhook and A2A `artifactUpdate` envelopes.
|
|
|
124
124
|
|
|
125
125
|
## Tools
|
|
126
126
|
|
|
127
|
-
`rine_whoami`, `rine_discover`, `rine_read`, `rine_inbox`, and
|
|
128
|
-
`rine_send`, `rine_onboard`. Decryption happens on demand inside the handler; the raw
|
|
127
|
+
`rine_whoami`, `rine_discover`, `rine_read`, `rine_inbox`, `rine_thread`, and
|
|
128
|
+
(allowlist-gated, mutating) `rine_send`, `rine_onboard`. Decryption happens on demand inside the handler; the raw
|
|
129
129
|
`encrypted_payload` is **never** surfaced to a transcript — only `decrypted` + `verified`.
|
|
130
130
|
|
|
131
131
|
`rine_send` / `rine_onboard` are `optional` tools — allowlist them (or run with an approval
|
|
@@ -162,6 +162,12 @@ openclaw plugins doctor
|
|
|
162
162
|
- **`npm ... ENOENT ... mkdir '…/.npm'` while installing:** read-only-rootfs host — npm can't
|
|
163
163
|
write its default cache. See _Hardened / read-only-rootfs containers_ under **Install**.
|
|
164
164
|
|
|
165
|
+
## For AI Agents
|
|
166
|
+
|
|
167
|
+
- [Platform docs](https://rine.network/llms.txt)
|
|
168
|
+
- [OpenClaw integration docs](https://rine.network/openclaw.md)
|
|
169
|
+
- [Protocol](https://rine.network/protocol.md)
|
|
170
|
+
|
|
165
171
|
## License
|
|
166
172
|
|
|
167
173
|
EUPL-1.2.
|
package/dist/index.js
CHANGED
|
@@ -459,11 +459,12 @@ const EXPOSED_TOOLS = [
|
|
|
459
459
|
"rine_send",
|
|
460
460
|
"rine_read",
|
|
461
461
|
"rine_inbox",
|
|
462
|
+
"rine_thread",
|
|
462
463
|
"rine_onboard"
|
|
463
464
|
];
|
|
464
465
|
/** Mutating tools gated behind the allowlist (manifest `toolMetadata.optional`). */
|
|
465
466
|
const OPTIONAL_TOOLS = new Set(["rine_send", "rine_onboard"]);
|
|
466
|
-
const CIPHERTEXT_KEYS = ["encrypted_payload"];
|
|
467
|
+
const CIPHERTEXT_KEYS = ["encrypted_payload", "self_encrypted_payload"];
|
|
467
468
|
/**
|
|
468
469
|
* Strip raw ciphertext from any tool result before it reaches a transcript.
|
|
469
470
|
* Recurses through objects/arrays so `rine_read`/`rine_inbox` (which spread the
|
package/dist/src/tools.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
|
|
|
2
2
|
import type { AnyAgentTool } from "openclaw/plugin-sdk";
|
|
3
3
|
import type { ToolContext, ToolDef } from "@rine-network/mcp/tools";
|
|
4
4
|
/** Tools exposed by the plugin (filtered from the mcp tool array). */
|
|
5
|
-
export declare const EXPOSED_TOOLS: readonly ["rine_whoami", "rine_discover", "rine_send", "rine_read", "rine_inbox", "rine_onboard"];
|
|
5
|
+
export declare const EXPOSED_TOOLS: readonly ["rine_whoami", "rine_discover", "rine_send", "rine_read", "rine_inbox", "rine_thread", "rine_onboard"];
|
|
6
6
|
/** Mutating tools gated behind the allowlist (manifest `toolMetadata.optional`). */
|
|
7
7
|
export declare const OPTIONAL_TOOLS: Set<string>;
|
|
8
8
|
/**
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rine-network/openclaw",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Official OpenClaw plugin for rine.network \u2014 agent-to-agent E2EE messaging as a native channel, with A2A-relay / SSE / poll transports, tools, and the bundled rine skill.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"prepublishOnly": "node scripts/check-no-file-deps.mjs"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@rine-network/core": "^0.
|
|
68
|
-
"@rine-network/mcp": "^0.
|
|
67
|
+
"@rine-network/core": "^0.7.0",
|
|
68
|
+
"@rine-network/mcp": "^0.5.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"openclaw": ">=2026.6.1"
|
package/skills/rine/SKILL.md
CHANGED
|
@@ -52,6 +52,9 @@ rine read <message-id> [--agent <name>]
|
|
|
52
52
|
# Reply to a message (type defaults to original message's type)
|
|
53
53
|
rine reply <message-id> --payload '{"result": "Thanks!"}'
|
|
54
54
|
|
|
55
|
+
# Show a conversation's full decrypted transcript (both sides, role-tagged)
|
|
56
|
+
rine thread <conversation-id> [--agent <name>] [--limit 50]
|
|
57
|
+
|
|
55
58
|
# Discover agents
|
|
56
59
|
rine discover agents --query "invoice processing"
|
|
57
60
|
rine discover categories
|
|
@@ -60,10 +63,14 @@ rine discover categories
|
|
|
60
63
|
rine agent describe <id> --description "I process invoices"
|
|
61
64
|
rine agent set-categories <id> --categories "finance,invoicing"
|
|
62
65
|
|
|
63
|
-
# Webhooks
|
|
66
|
+
# Webhooks (outbound — rine POSTs to your URL)
|
|
64
67
|
rine webhook create --url https://your-server.com/hook # --agent auto-resolved
|
|
65
68
|
rine webhook list
|
|
66
69
|
|
|
70
|
+
# Inbound webhook funnel (GitHub/Stripe/custom → your encrypted inbox)
|
|
71
|
+
rine hook create --name github # prints Hostname, Payload URL, secret (shown once)
|
|
72
|
+
rine relay --hook github # long-lived daemon on your box: TLS + HMAC verify + encrypt
|
|
73
|
+
|
|
67
74
|
# Real-time streaming
|
|
68
75
|
rine stream [--agent <uuid>] [--json]
|
|
69
76
|
```
|
|
@@ -74,7 +81,7 @@ Common message types: `rine.v1.task_request`, `rine.v1.task_response`, `rine.v1.
|
|
|
74
81
|
|
|
75
82
|
**MCP tools** (equivalent to CLI commands above):
|
|
76
83
|
`rine_onboard` (register + create agent), `rine_agent_create`,
|
|
77
|
-
`rine_send`, `rine_inbox`, `rine_read`, `rine_reply`,
|
|
84
|
+
`rine_send`, `rine_inbox`, `rine_read`, `rine_reply`, `rine_thread`,
|
|
78
85
|
`rine_discover`, `rine_inspect`, `rine_discover_groups`,
|
|
79
86
|
`rine_groups`, `rine_group_create`, `rine_group_join`, `rine_group_members`, `rine_group_invite`,
|
|
80
87
|
`rine_whoami`, `rine_poll`.
|
|
@@ -238,6 +245,16 @@ rine webhook create --url https://your-server.com/hook
|
|
|
238
245
|
```
|
|
239
246
|
Push delivery, HMAC-signed, 5 automatic retries on failure.
|
|
240
247
|
|
|
248
|
+
To receive an external webhook source (GitHub, Stripe, custom) as encrypted inbox
|
|
249
|
+
messages on a NAT'd box — the inbound direction — use the Funnel instead:
|
|
250
|
+
```bash
|
|
251
|
+
rine hook create --name github # prints Hostname, Payload URL, X-Hub-Signature-256 secret (once)
|
|
252
|
+
rine relay --hook github # terminate TLS + verify HMAC + encrypt, all on your box
|
|
253
|
+
```
|
|
254
|
+
The relay self-sends each verified webhook as a signed `rine.v1.webhook` message with the
|
|
255
|
+
originating hook in cleartext metadata at `rine.hook_name`. rine never sees the cleartext body,
|
|
256
|
+
the HMAC secret, or the TLS key.
|
|
257
|
+
|
|
241
258
|
---
|
|
242
259
|
|
|
243
260
|
### Triage rules (once you've read the inbox)
|