moltyjacs 0.3.0 → 0.8.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 +116 -48
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/setup.js +2 -2
- package/dist/setup.js.map +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +27 -26
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +147 -24
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/openclaw.d.ts +16 -0
- package/dist/tools/openclaw.d.ts.map +1 -0
- package/dist/tools/openclaw.js +38 -0
- package/dist/tools/openclaw.js.map +1 -0
- package/marketplace.json +3 -1
- package/openclaw.plugin.json +3 -3
- package/package.json +4 -4
- package/src/skills/jacs/SKILL.md +13 -2
package/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# moltyjacs
|
|
2
2
|
|
|
3
|
-
JACS cryptographic provenance plugin for OpenClaw.
|
|
3
|
+
**Sign it. Prove it.** JACS cryptographic provenance plugin for OpenClaw.
|
|
4
|
+
|
|
5
|
+
[Which integration should I use?](https://humanassisted.github.io/JACS/getting-started/decision-tree.html) | [Full JACS documentation](https://humanassisted.github.io/JACS/)
|
|
4
6
|
|
|
5
7
|
## Why use JACS?
|
|
6
8
|
|
|
7
|
-
**So your OpenClaw agent can be trusted
|
|
9
|
+
**So your OpenClaw agent can be trusted -- and can trust others.** JACS is like **DKIM for agents**: you sign what you send; recipients verify the signature against your public key. It is **decentralized** -- no single authority. You publish your key (DNS, optional HAI.ai); others fetch and verify. Without it, nothing you say or do can be proven. With JACS you sign messages, commitments, and state; anyone with your public key can verify they came from you and were not altered. You get proof of origin, integrity, and accountability. Other agents can discover your key via DNS or HAI.ai and verify your documents; you verify theirs with `jacs_verify_auto` and optional trust levels (domain, attested). Keys and signed payloads stay local; you send the same signed JSON over any channel (WhatsApp, HTTP, MCP). **Use it whenever another agent or human needs to trust that you said or agreed to something.**
|
|
8
10
|
|
|
9
11
|
## Overview
|
|
10
12
|
|
|
@@ -14,6 +16,10 @@ moltyjacs adds post-quantum cryptographic signatures to your OpenClaw agent comm
|
|
|
14
16
|
- **Verification** - Verify documents from other agents
|
|
15
17
|
- **Agent discovery** - Publish and discover agents via well-known endpoints and DNS
|
|
16
18
|
- **Multi-party agreements** - Create and manage agreements requiring multiple signatures
|
|
19
|
+
- **Agent state** - Sign and track memory, skills, plans, configs, and hooks
|
|
20
|
+
- **Commitments** - Track agreements and obligations between agents with lifecycle management
|
|
21
|
+
- **Todo lists** - Private, signed work tracking with goals and tasks
|
|
22
|
+
- **Conversations** - Signed message threads between agents
|
|
17
23
|
|
|
18
24
|
## Installation
|
|
19
25
|
|
|
@@ -58,6 +64,10 @@ openclaw plugins install https://github.com/HumanAssisted/moltyjacs
|
|
|
58
64
|
openclaw jacs verify signed-document.json
|
|
59
65
|
```
|
|
60
66
|
|
|
67
|
+
## JACS v0.8.0 Compatibility
|
|
68
|
+
|
|
69
|
+
moltyjacs v0.8.0 depends on `@hai.ai/jacs` v0.8.0, which uses an **async-first API**. All NAPI operations return Promises by default; sync variants use a `Sync` suffix (e.g., `loadSync` vs `load`). moltyjacs uses the async API for setup (`agent.load()`, `createAgent()`) and the sync API for hot-path operations (`signRequest`, `verifyResponse`) that must run on the V8 thread.
|
|
70
|
+
|
|
61
71
|
## CLI Commands
|
|
62
72
|
|
|
63
73
|
| Command | Description |
|
|
@@ -81,22 +91,88 @@ To get an attested trust level, register your agent with HAI.ai once: run `openc
|
|
|
81
91
|
|
|
82
92
|
When used with an AI agent, these tools are available:
|
|
83
93
|
|
|
94
|
+
### Core signing and verification
|
|
95
|
+
|
|
84
96
|
| Tool | Purpose |
|
|
85
97
|
|------|---------|
|
|
86
98
|
| `jacs_sign` | Sign a document (returns signed doc; when small enough, includes `verification_url` for sharing) |
|
|
87
99
|
| `jacs_verify_link` | Get a shareable verification URL for a signed document (for https://hai.ai/jacs/verify) |
|
|
88
100
|
| `jacs_verify` | Verify a self-signed document |
|
|
89
|
-
| `
|
|
101
|
+
| `jacs_verify_standalone` | Verify any signed document without JACS init (no agent required) |
|
|
102
|
+
| `jacs_verify_auto` | Verify any document (auto-fetches keys, supports trust levels) |
|
|
103
|
+
| `jacs_verify_dns` | Verify agent identity via DNS TXT record |
|
|
90
104
|
| `jacs_fetch_pubkey` | Fetch another agent's public key |
|
|
91
105
|
| `jacs_verify_with_key` | Verify with a specific public key |
|
|
106
|
+
| `jacs_hash` | Hash content |
|
|
107
|
+
| `jacs_identity` | Get your identity info |
|
|
108
|
+
| `jacs_audit` | Run read-only JACS security audit |
|
|
109
|
+
|
|
110
|
+
### Discovery and trust
|
|
111
|
+
|
|
112
|
+
| Tool | Purpose |
|
|
113
|
+
|------|---------|
|
|
92
114
|
| `jacs_dns_lookup` | Look up DNS TXT record |
|
|
93
|
-
| `jacs_lookup_agent` | Get complete agent info |
|
|
115
|
+
| `jacs_lookup_agent` | Get complete agent info (well-known + DNS + HAI.ai) |
|
|
116
|
+
| `jacs_verify_hai_registration` | Verify HAI.ai registration for an agent |
|
|
117
|
+
| `jacs_get_attestation` | Get full attestation status for an agent |
|
|
118
|
+
| `jacs_set_verification_claim` | Set verification claim level |
|
|
119
|
+
|
|
120
|
+
### Agreements
|
|
121
|
+
|
|
122
|
+
| Tool | Purpose |
|
|
123
|
+
|------|---------|
|
|
94
124
|
| `jacs_create_agreement` | Create multi-party agreement |
|
|
95
125
|
| `jacs_sign_agreement` | Sign an agreement |
|
|
96
126
|
| `jacs_check_agreement` | Check agreement status |
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
127
|
+
|
|
128
|
+
### Agent state
|
|
129
|
+
|
|
130
|
+
| Tool | Purpose |
|
|
131
|
+
|------|---------|
|
|
132
|
+
| `jacs_create_agentstate` | Create signed agent state (memory, skill, plan, config, hook) |
|
|
133
|
+
| `jacs_sign_file_as_state` | Sign a file as agent state with path reference and hash |
|
|
134
|
+
| `jacs_verify_agentstate` | Verify an agent state document |
|
|
135
|
+
|
|
136
|
+
### Commitments
|
|
137
|
+
|
|
138
|
+
| Tool | Purpose |
|
|
139
|
+
|------|---------|
|
|
140
|
+
| `jacs_create_commitment` | Create a signed commitment |
|
|
141
|
+
| `jacs_update_commitment` | Update commitment status or fields |
|
|
142
|
+
| `jacs_dispute_commitment` | Dispute a commitment with a reason |
|
|
143
|
+
| `jacs_revoke_commitment` | Revoke a commitment with a reason |
|
|
144
|
+
|
|
145
|
+
### Todo lists
|
|
146
|
+
|
|
147
|
+
| Tool | Purpose |
|
|
148
|
+
|------|---------|
|
|
149
|
+
| `jacs_create_todo` | Create a signed todo list |
|
|
150
|
+
| `jacs_add_todo_item` | Add an item to a todo list |
|
|
151
|
+
| `jacs_update_todo_item` | Update a todo item |
|
|
152
|
+
|
|
153
|
+
### Conversations
|
|
154
|
+
|
|
155
|
+
| Tool | Purpose |
|
|
156
|
+
|------|---------|
|
|
157
|
+
| `jacs_start_conversation` | Create the first signed message payload in a new thread |
|
|
158
|
+
| `jacs_send_message` | Create a signed message payload in an existing thread |
|
|
159
|
+
|
|
160
|
+
## MCP and Message Transport
|
|
161
|
+
|
|
162
|
+
`jacs_start_conversation` and `jacs_send_message` create signed JACS message payloads. They do **not** perform delivery/transport by themselves.
|
|
163
|
+
|
|
164
|
+
Use this pattern for agent-to-agent messaging:
|
|
165
|
+
|
|
166
|
+
1. Create/sign payload (`jacs_start_conversation` or `jacs_send_message`)
|
|
167
|
+
2. Deliver the returned signed JSON over your chosen channel (MCP, HTTP, queue, chat bridge, etc.)
|
|
168
|
+
3. Verify on receipt (`jacs_verify_auto`, `jacs_verify_standalone`, or `jacs_verify_with_key`)
|
|
169
|
+
|
|
170
|
+
For custom Node MCP servers, JACS supports transport-level integration via `@hai.ai/jacs/mcp`:
|
|
171
|
+
|
|
172
|
+
- `createJACSTransportProxy(...)` for automatic signing/verification at transport boundaries
|
|
173
|
+
- `registerJacsTools(...)` to expose JACS operations as MCP tools
|
|
174
|
+
|
|
175
|
+
This OpenClaw plugin does not automatically intercept all host MCP traffic; use explicit JACS tools or host transport middleware/adapters.
|
|
100
176
|
|
|
101
177
|
## Well-Known Endpoints
|
|
102
178
|
|
|
@@ -118,14 +194,14 @@ Configure via `openclaw.plugin.json`:
|
|
|
118
194
|
```json
|
|
119
195
|
{
|
|
120
196
|
"keyAlgorithm": "pq2025",
|
|
121
|
-
"autoSign": false,
|
|
122
|
-
"autoVerify": true,
|
|
123
197
|
"agentName": "My Agent",
|
|
124
198
|
"agentDescription": "Description",
|
|
125
199
|
"agentDomain": "agent.example.com"
|
|
126
200
|
}
|
|
127
201
|
```
|
|
128
202
|
|
|
203
|
+
`autoSign` and `autoVerify` are accepted for backward compatibility but are deprecated no-ops in `moltyjacs`.
|
|
204
|
+
|
|
129
205
|
`agentId` is set automatically when you run `openclaw jacs init` and is not edited in the config file.
|
|
130
206
|
|
|
131
207
|
### Environment variables
|
|
@@ -145,6 +221,10 @@ The key password is generated at `openclaw jacs init` and must be stored securel
|
|
|
145
221
|
- `ring-Ed25519` - Ed25519
|
|
146
222
|
- `RSA-PSS` - RSA with PSS padding
|
|
147
223
|
|
|
224
|
+
## Cross-Language Compatibility
|
|
225
|
+
|
|
226
|
+
Documents signed by moltyjacs (Node.js) can be verified by Rust or Python agents, and vice versa. Cross-language interop is tested on every commit with Ed25519 and post-quantum (ML-DSA-87) algorithms. See the [JACS cross-language tests](https://github.com/HumanAssisted/JACS/tree/main/jacs/tests/cross_language) for details.
|
|
227
|
+
|
|
148
228
|
## Security
|
|
149
229
|
|
|
150
230
|
- Private keys are encrypted with AES-256-GCM
|
|
@@ -152,8 +232,33 @@ The key password is generated at `openclaw jacs init` and must be stored securel
|
|
|
152
232
|
- Default algorithm (pq2025) provides quantum resistance
|
|
153
233
|
- DNS records enable DNSSEC-backed identity verification
|
|
154
234
|
|
|
235
|
+
## Development
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Install dependencies
|
|
239
|
+
npm install
|
|
240
|
+
|
|
241
|
+
# Build
|
|
242
|
+
npm run build
|
|
243
|
+
|
|
244
|
+
# Watch mode
|
|
245
|
+
npm run watch
|
|
246
|
+
|
|
247
|
+
# Run unit tests (uses mocked JACS module)
|
|
248
|
+
npm test
|
|
249
|
+
|
|
250
|
+
# Run integration tests (requires real @hai.ai/jacs native binary)
|
|
251
|
+
npm run test:integration
|
|
252
|
+
|
|
253
|
+
# Test local installation
|
|
254
|
+
openclaw plugins install . --link
|
|
255
|
+
openclaw plugins list
|
|
256
|
+
```
|
|
257
|
+
|
|
155
258
|
## Publishing
|
|
156
259
|
|
|
260
|
+
CI publishes on push of a tag `v*` (e.g. `v0.8.0`). **Publish [@hai.ai/jacs](https://www.npmjs.com/package/@hai.ai/jacs) from the [JACS](https://github.com/HumanAssisted/JACS) repo first** (tag `npm/v*`), then tag and push moltyjacs so the build can resolve the dependency.
|
|
261
|
+
|
|
157
262
|
### To npm
|
|
158
263
|
|
|
159
264
|
```bash
|
|
@@ -173,51 +278,14 @@ Or publish to both npm and ClawHub:
|
|
|
173
278
|
npm run publish:all
|
|
174
279
|
```
|
|
175
280
|
|
|
176
|
-
### Manual ClawHub Publishing
|
|
177
|
-
|
|
178
|
-
1. Install the ClawHub CLI:
|
|
179
|
-
```bash
|
|
180
|
-
npm install -g clawhub
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
2. Publish the plugin:
|
|
184
|
-
```bash
|
|
185
|
-
clawhub publish .
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
3. Sync updates:
|
|
189
|
-
```bash
|
|
190
|
-
clawhub sync
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## Development
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
# Install dependencies
|
|
197
|
-
npm install
|
|
198
|
-
|
|
199
|
-
# Build
|
|
200
|
-
npm run build
|
|
201
|
-
|
|
202
|
-
# Watch mode
|
|
203
|
-
npm run watch
|
|
204
|
-
|
|
205
|
-
# Test local installation
|
|
206
|
-
openclaw plugins install . --link
|
|
207
|
-
openclaw plugins list
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## Publishing
|
|
211
|
-
|
|
212
|
-
CI publishes on push of a tag `v*` (e.g. `v0.3.0`). **Publish [@hai.ai/jacs](https://www.npmjs.com/package/@hai.ai/jacs) from the [JACS](https://github.com/HumanAssisted/JACS) repo first** (tag `npm/v*`), then tag and push moltyjacs so the build can resolve the dependency.
|
|
213
|
-
|
|
214
281
|
## License
|
|
215
282
|
|
|
216
283
|
MIT License - see [LICENSE](LICENSE)
|
|
217
284
|
|
|
218
285
|
## Links
|
|
219
286
|
- [HAI.AI](https://hai.ai)
|
|
220
|
-
- [JACS Documentation](https://github.
|
|
287
|
+
- [JACS Documentation](https://humanassisted.github.io/JACS/)
|
|
288
|
+
- [Decision Tree](https://humanassisted.github.io/JACS/getting-started/decision-tree.html)
|
|
221
289
|
- [OpenClaw](https://docs.openclaw.ai)
|
|
222
290
|
- [ClawHub](https://www.clawhub.com)
|
|
223
291
|
- [GitHub](https://github.com/HumanAssisted/moltyjacs)
|
package/dist/index.d.ts
CHANGED
|
@@ -30,7 +30,9 @@ export interface AttestationStatus {
|
|
|
30
30
|
}
|
|
31
31
|
export interface JACSPluginConfig {
|
|
32
32
|
keyAlgorithm: string;
|
|
33
|
+
/** @deprecated OpenClaw transport-level concern; use explicit signing tools or JACS transport adapters. */
|
|
33
34
|
autoSign: boolean;
|
|
35
|
+
/** @deprecated OpenClaw transport-level concern; use explicit verification tools or JACS transport adapters. */
|
|
34
36
|
autoVerify: boolean;
|
|
35
37
|
agentName?: string;
|
|
36
38
|
agentDescription?: string;
|
|
@@ -54,7 +56,9 @@ export interface OpenClawPluginAPI {
|
|
|
54
56
|
};
|
|
55
57
|
registerCli: (opts: any) => void;
|
|
56
58
|
registerCommand: (opts: any) => void;
|
|
57
|
-
registerTool: (opts: any
|
|
59
|
+
registerTool: (opts: any, options?: {
|
|
60
|
+
optional?: boolean;
|
|
61
|
+
}) => void;
|
|
58
62
|
registerGatewayMethod: (opts: any) => void;
|
|
59
63
|
updateConfig: (update: Partial<JACSPluginConfig>) => void;
|
|
60
64
|
invoke: (command: string, args: any) => Promise<any>;
|
|
@@ -71,7 +75,7 @@ export interface JACSRuntime {
|
|
|
71
75
|
* Main plugin registration function called by OpenClaw
|
|
72
76
|
*/
|
|
73
77
|
export default function register(api: OpenClawPluginAPI): void;
|
|
74
|
-
export { JacsAgent, hashString, verifyString, createConfig } from "@hai.ai/jacs";
|
|
78
|
+
export { JacsAgent, hashString, legacyVerifyString as verifyString, createConfig } from "@hai.ai/jacs";
|
|
75
79
|
export declare function setAgentInstance(agent: JacsAgent, agentId: string, publicKey: string): void;
|
|
76
80
|
export { setupCommand } from "./setup";
|
|
77
81
|
export { cliCommands } from "./cli";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -64,6 +64,13 @@ let publicKeyContent;
|
|
|
64
64
|
function register(api) {
|
|
65
65
|
const config = api.config;
|
|
66
66
|
const logger = api.logger;
|
|
67
|
+
// Kept for backward compatibility in config schema; not implemented by this plugin runtime.
|
|
68
|
+
if (config.autoSign) {
|
|
69
|
+
logger.warn("Config `autoSign` is deprecated/no-op in moltyjacs. Use jacs_sign or JACS transport adapters for automatic signing.");
|
|
70
|
+
}
|
|
71
|
+
if (config.autoVerify === false) {
|
|
72
|
+
logger.warn("Config `autoVerify` is deprecated/no-op in moltyjacs. Use jacs_verify_* tools or JACS transport adapters for verification.");
|
|
73
|
+
}
|
|
67
74
|
// Determine JACS directories
|
|
68
75
|
const jacsDir = path.join(api.runtime.homeDir, ".openclaw", "jacs");
|
|
69
76
|
const keysDir = path.join(api.runtime.homeDir, ".openclaw", "jacs_keys");
|
|
@@ -73,7 +80,7 @@ function register(api) {
|
|
|
73
80
|
try {
|
|
74
81
|
// Use JacsAgent class instead of deprecated global load()
|
|
75
82
|
agentInstance = new jacs_1.JacsAgent();
|
|
76
|
-
agentInstance.
|
|
83
|
+
agentInstance.loadSync(configPath);
|
|
77
84
|
currentAgentId = config.agentId;
|
|
78
85
|
// Load public key
|
|
79
86
|
const pubKeyPath = path.join(keysDir, "agent.public.pem");
|
|
@@ -130,7 +137,7 @@ function register(api) {
|
|
|
130
137
|
var jacs_2 = require("@hai.ai/jacs");
|
|
131
138
|
Object.defineProperty(exports, "JacsAgent", { enumerable: true, get: function () { return jacs_2.JacsAgent; } });
|
|
132
139
|
Object.defineProperty(exports, "hashString", { enumerable: true, get: function () { return jacs_2.hashString; } });
|
|
133
|
-
Object.defineProperty(exports, "verifyString", { enumerable: true, get: function () { return jacs_2.
|
|
140
|
+
Object.defineProperty(exports, "verifyString", { enumerable: true, get: function () { return jacs_2.legacyVerifyString; } });
|
|
134
141
|
Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return jacs_2.createConfig; } });
|
|
135
142
|
// Export internal state accessor for reinit after setup
|
|
136
143
|
function setAgentInstance(agent, agentId, publicKey) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.js
CHANGED
|
@@ -76,7 +76,7 @@ function setupCommand(api) {
|
|
|
76
76
|
// first so keys, config, and agent identity are created atomically.
|
|
77
77
|
originalPasswordEnv = process.env.JACS_PRIVATE_KEY_PASSWORD;
|
|
78
78
|
process.env.JACS_PRIVATE_KEY_PASSWORD = options.keyPassword;
|
|
79
|
-
const createdRaw = (0, jacs_1.createAgent)(options.agentName, options.keyPassword, options.keyAlgorithm, jacsDir, keysDir, configPath, "ai", options.agentDescription, options.agentDomain, "fs");
|
|
79
|
+
const createdRaw = await (0, jacs_1.createAgent)(options.agentName, options.keyPassword, options.keyAlgorithm, jacsDir, keysDir, configPath, "ai", options.agentDescription, options.agentDomain, "fs");
|
|
80
80
|
let created = {};
|
|
81
81
|
try {
|
|
82
82
|
created = JSON.parse(createdRaw);
|
|
@@ -96,7 +96,7 @@ function setupCommand(api) {
|
|
|
96
96
|
});
|
|
97
97
|
// Load the created agent into runtime
|
|
98
98
|
const agent = new jacs_1.JacsAgent();
|
|
99
|
-
agent.load(configPath);
|
|
99
|
+
await agent.load(configPath);
|
|
100
100
|
const configData = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
101
101
|
const [configAgentId, configAgentVersion] = parseAgentIdAndVersion(configData.jacs_agent_id_and_version);
|
|
102
102
|
const agentId = created?.agent_id || configAgentId || (0, uuid_1.v4)();
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,oCA0IC;AArKD,uCAAsD;AACtD,+BAAoC;AACpC,2CAA6B;AAC7B,uCAAyB;AACzB,+CAAiC;AAEjC,mCAA2C;AAkB3C;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAsB;IACjD,OAAO,KAAK,EAAE,GAAQ,EAAwB,EAAE;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,mBAAuC,CAAC;QAE5C,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAE1D,+BAA+B;YAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxE,OAAO;oBACL,IAAI,EAAE,0CAA0C,cAAc,CAAC,yBAAyB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,UAAU,2DAA2D,OAAO,mBAAmB;iBACpN,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,YAAY,cAAc,CAAC,CAAC;YAE9D,yEAAyE;YACzE,oEAAoE;YACpE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;YAE5D,MAAM,UAAU,GAAG,IAAA,kBAAW,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/documents.js
CHANGED
|
@@ -50,6 +50,7 @@ exports.registerDocumentTools = registerDocumentTools;
|
|
|
50
50
|
const uuid_1 = require("uuid");
|
|
51
51
|
const fs = __importStar(require("fs"));
|
|
52
52
|
const path = __importStar(require("path"));
|
|
53
|
+
const openclaw_1 = require("./openclaw");
|
|
53
54
|
// Schema URLs for each document type
|
|
54
55
|
const SCHEMAS = {
|
|
55
56
|
agentstate: "https://hai.ai/schemas/agentstate/v1/agentstate.schema.json",
|
|
@@ -190,7 +191,7 @@ function buildMessageDocument(params) {
|
|
|
190
191
|
// ---------- Tool Registration ----------
|
|
191
192
|
function registerDocumentTools(api) {
|
|
192
193
|
// ===== Agent State Tools =====
|
|
193
|
-
|
|
194
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
194
195
|
name: "jacs_create_agentstate",
|
|
195
196
|
description: "Create a signed agent state document. Use this to sign and track agent memory, skills, plans, configs, or hooks with cryptographic provenance.",
|
|
196
197
|
parameters: {
|
|
@@ -245,7 +246,7 @@ function registerDocumentTools(api) {
|
|
|
245
246
|
}
|
|
246
247
|
try {
|
|
247
248
|
const doc = buildAgentStateDocument(params);
|
|
248
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
249
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
249
250
|
return { result: JSON.parse(signed) };
|
|
250
251
|
}
|
|
251
252
|
catch (err) {
|
|
@@ -253,7 +254,7 @@ function registerDocumentTools(api) {
|
|
|
253
254
|
}
|
|
254
255
|
},
|
|
255
256
|
});
|
|
256
|
-
|
|
257
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
257
258
|
name: "jacs_sign_file_as_state",
|
|
258
259
|
description: "Sign a file as agent state with a path reference and SHA-256 hash. Use this to create provenance records for MEMORY.md, SKILL.md, config files, or hook scripts.",
|
|
259
260
|
parameters: {
|
|
@@ -307,7 +308,7 @@ function registerDocumentTools(api) {
|
|
|
307
308
|
framework: params.framework,
|
|
308
309
|
origin: "authored",
|
|
309
310
|
});
|
|
310
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, params.filePath, shouldEmbed);
|
|
311
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, params.filePath, shouldEmbed);
|
|
311
312
|
return { result: JSON.parse(signed) };
|
|
312
313
|
}
|
|
313
314
|
catch (err) {
|
|
@@ -315,7 +316,7 @@ function registerDocumentTools(api) {
|
|
|
315
316
|
}
|
|
316
317
|
},
|
|
317
318
|
});
|
|
318
|
-
|
|
319
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
319
320
|
name: "jacs_verify_agentstate",
|
|
320
321
|
description: "Verify an agent state document's signature and integrity. Returns the state type, name, and verification status.",
|
|
321
322
|
parameters: {
|
|
@@ -334,7 +335,7 @@ function registerDocumentTools(api) {
|
|
|
334
335
|
return { error: "JACS not initialized. Run 'openclaw jacs init' first." };
|
|
335
336
|
}
|
|
336
337
|
try {
|
|
337
|
-
const isValid = agent.verifyDocument(JSON.stringify(params.document));
|
|
338
|
+
const isValid = await agent.verifyDocument(JSON.stringify(params.document));
|
|
338
339
|
return {
|
|
339
340
|
result: {
|
|
340
341
|
valid: isValid,
|
|
@@ -355,7 +356,7 @@ function registerDocumentTools(api) {
|
|
|
355
356
|
},
|
|
356
357
|
});
|
|
357
358
|
// ===== Commitment Tools =====
|
|
358
|
-
|
|
359
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
359
360
|
name: "jacs_create_commitment",
|
|
360
361
|
description: "Create a signed commitment document. Commitments track agreements and obligations between agents with lifecycle statuses: pending, active, completed, failed, renegotiated, disputed, revoked.",
|
|
361
362
|
parameters: {
|
|
@@ -423,7 +424,7 @@ function registerDocumentTools(api) {
|
|
|
423
424
|
}
|
|
424
425
|
try {
|
|
425
426
|
const doc = buildCommitmentDocument(params);
|
|
426
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
427
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
427
428
|
return { result: JSON.parse(signed) };
|
|
428
429
|
}
|
|
429
430
|
catch (err) {
|
|
@@ -431,7 +432,7 @@ function registerDocumentTools(api) {
|
|
|
431
432
|
}
|
|
432
433
|
},
|
|
433
434
|
});
|
|
434
|
-
|
|
435
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
435
436
|
name: "jacs_update_commitment",
|
|
436
437
|
description: "Update a commitment's status or fields. Use this to transition commitments through their lifecycle: pending -> active -> completed/failed/renegotiated/disputed/revoked.",
|
|
437
438
|
parameters: {
|
|
@@ -480,7 +481,7 @@ function registerDocumentTools(api) {
|
|
|
480
481
|
if (params.disputeReason)
|
|
481
482
|
doc.jacsCommitmentDisputeReason = params.disputeReason;
|
|
482
483
|
try {
|
|
483
|
-
const updated = agent.updateDocument(docId, JSON.stringify(doc));
|
|
484
|
+
const updated = await agent.updateDocument(docId, JSON.stringify(doc));
|
|
484
485
|
return { result: JSON.parse(updated) };
|
|
485
486
|
}
|
|
486
487
|
catch (err) {
|
|
@@ -488,7 +489,7 @@ function registerDocumentTools(api) {
|
|
|
488
489
|
}
|
|
489
490
|
},
|
|
490
491
|
});
|
|
491
|
-
|
|
492
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
492
493
|
name: "jacs_dispute_commitment",
|
|
493
494
|
description: "Dispute a commitment with a reason. Sets the status to 'disputed' and records the dispute reason.",
|
|
494
495
|
parameters: {
|
|
@@ -518,7 +519,7 @@ function registerDocumentTools(api) {
|
|
|
518
519
|
doc.jacsCommitmentStatus = "disputed";
|
|
519
520
|
doc.jacsCommitmentDisputeReason = params.reason;
|
|
520
521
|
try {
|
|
521
|
-
const updated = agent.updateDocument(docId, JSON.stringify(doc));
|
|
522
|
+
const updated = await agent.updateDocument(docId, JSON.stringify(doc));
|
|
522
523
|
return { result: JSON.parse(updated) };
|
|
523
524
|
}
|
|
524
525
|
catch (err) {
|
|
@@ -526,7 +527,7 @@ function registerDocumentTools(api) {
|
|
|
526
527
|
}
|
|
527
528
|
},
|
|
528
529
|
});
|
|
529
|
-
|
|
530
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
530
531
|
name: "jacs_revoke_commitment",
|
|
531
532
|
description: "Revoke a commitment with a reason. Sets the status to 'revoked' and records the revocation reason.",
|
|
532
533
|
parameters: {
|
|
@@ -556,7 +557,7 @@ function registerDocumentTools(api) {
|
|
|
556
557
|
doc.jacsCommitmentStatus = "revoked";
|
|
557
558
|
doc.jacsCommitmentDisputeReason = params.reason;
|
|
558
559
|
try {
|
|
559
|
-
const updated = agent.updateDocument(docId, JSON.stringify(doc));
|
|
560
|
+
const updated = await agent.updateDocument(docId, JSON.stringify(doc));
|
|
560
561
|
return { result: JSON.parse(updated) };
|
|
561
562
|
}
|
|
562
563
|
catch (err) {
|
|
@@ -565,7 +566,7 @@ function registerDocumentTools(api) {
|
|
|
565
566
|
},
|
|
566
567
|
});
|
|
567
568
|
// ===== Todo Tools =====
|
|
568
|
-
|
|
569
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
569
570
|
name: "jacs_create_todo",
|
|
570
571
|
description: "Create a signed todo list. Todo lists are private, signed documents for tracking goals and tasks. Items can be hierarchical with sub-goals and sub-tasks.",
|
|
571
572
|
parameters: {
|
|
@@ -612,7 +613,7 @@ function registerDocumentTools(api) {
|
|
|
612
613
|
}
|
|
613
614
|
try {
|
|
614
615
|
const doc = buildTodoDocument(params);
|
|
615
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
616
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
616
617
|
return { result: JSON.parse(signed) };
|
|
617
618
|
}
|
|
618
619
|
catch (err) {
|
|
@@ -620,7 +621,7 @@ function registerDocumentTools(api) {
|
|
|
620
621
|
}
|
|
621
622
|
},
|
|
622
623
|
});
|
|
623
|
-
|
|
624
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
624
625
|
name: "jacs_add_todo_item",
|
|
625
626
|
description: "Add a new item (goal or task) to an existing todo list. The list is re-signed with a new version.",
|
|
626
627
|
parameters: {
|
|
@@ -684,7 +685,7 @@ function registerDocumentTools(api) {
|
|
|
684
685
|
}
|
|
685
686
|
doc.jacsTodoItems.push(newItem);
|
|
686
687
|
try {
|
|
687
|
-
const updated = agent.updateDocument(docId, JSON.stringify(doc));
|
|
688
|
+
const updated = await agent.updateDocument(docId, JSON.stringify(doc));
|
|
688
689
|
const result = JSON.parse(updated);
|
|
689
690
|
return {
|
|
690
691
|
result: {
|
|
@@ -698,7 +699,7 @@ function registerDocumentTools(api) {
|
|
|
698
699
|
}
|
|
699
700
|
},
|
|
700
701
|
});
|
|
701
|
-
|
|
702
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
702
703
|
name: "jacs_update_todo_item",
|
|
703
704
|
description: "Update a todo item's status, description, or priority. When marking as 'completed', automatically sets the completion date.",
|
|
704
705
|
parameters: {
|
|
@@ -770,7 +771,7 @@ function registerDocumentTools(api) {
|
|
|
770
771
|
if (params.priority)
|
|
771
772
|
item.priority = params.priority;
|
|
772
773
|
try {
|
|
773
|
-
const updated = agent.updateDocument(docId, JSON.stringify(doc));
|
|
774
|
+
const updated = await agent.updateDocument(docId, JSON.stringify(doc));
|
|
774
775
|
return { result: JSON.parse(updated) };
|
|
775
776
|
}
|
|
776
777
|
catch (err) {
|
|
@@ -779,9 +780,9 @@ function registerDocumentTools(api) {
|
|
|
779
780
|
},
|
|
780
781
|
});
|
|
781
782
|
// ===== Conversation Tools =====
|
|
782
|
-
|
|
783
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
783
784
|
name: "jacs_start_conversation",
|
|
784
|
-
description: "
|
|
785
|
+
description: "Create and sign the first message in a conversation thread. Returns a signed payload with a new thread ID; deliver that payload using your transport (MCP, HTTP, chat, queue, etc.).",
|
|
785
786
|
parameters: {
|
|
786
787
|
type: "object",
|
|
787
788
|
properties: {
|
|
@@ -815,7 +816,7 @@ function registerDocumentTools(api) {
|
|
|
815
816
|
to: params.to,
|
|
816
817
|
from: params.from,
|
|
817
818
|
});
|
|
818
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
819
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
819
820
|
const result = JSON.parse(signed);
|
|
820
821
|
return {
|
|
821
822
|
result: {
|
|
@@ -829,9 +830,9 @@ function registerDocumentTools(api) {
|
|
|
829
830
|
}
|
|
830
831
|
},
|
|
831
832
|
});
|
|
832
|
-
|
|
833
|
+
(0, openclaw_1.registerOpenClawTool)(api, {
|
|
833
834
|
name: "jacs_send_message",
|
|
834
|
-
description: "
|
|
835
|
+
description: "Create and sign a message payload in an existing conversation thread. Messages are chained via previousMessageId for ordering. This tool does not perform transport; deliver the returned signed JSON separately.",
|
|
835
836
|
parameters: {
|
|
836
837
|
type: "object",
|
|
837
838
|
properties: {
|
|
@@ -873,7 +874,7 @@ function registerDocumentTools(api) {
|
|
|
873
874
|
from: params.from,
|
|
874
875
|
previousMessageId: params.previousMessageId,
|
|
875
876
|
});
|
|
876
|
-
const signed = agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
877
|
+
const signed = await agent.createDocument(JSON.stringify(doc), null, null, true, null, null);
|
|
877
878
|
return { result: JSON.parse(signed) };
|
|
878
879
|
}
|
|
879
880
|
catch (err) {
|