@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 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 npm:@rine-network/openclaw
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 (`npm:@rine-network/openclaw`); the plain spec
46
- `openclaw plugins install @rine-network/openclaw` works too. The Gateway warns when
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 (allowlist-gated, mutating)
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
@@ -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
  /**
@@ -14,6 +14,7 @@
14
14
  "rine_send",
15
15
  "rine_read",
16
16
  "rine_inbox",
17
+ "rine_thread",
17
18
  "rine_onboard"
18
19
  ]
19
20
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rine-network/openclaw",
3
- "version": "0.1.5",
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.5.1",
68
- "@rine-network/mcp": "^0.4.2"
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"
@@ -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)