moltyjacs 0.3.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/LICENSE +21 -0
- package/README.md +223 -0
- package/dist/cli.d.ts +24 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +593 -0
- package/dist/cli.js.map +1 -0
- package/dist/gateway/wellknown.d.ts +24 -0
- package/dist/gateway/wellknown.d.ts.map +1 -0
- package/dist/gateway/wellknown.js +206 -0
- package/dist/gateway/wellknown.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +150 -0
- package/dist/index.js.map +1 -0
- package/dist/setup.d.ts +25 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +217 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools/documents.d.ts +115 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +885 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/hai.d.ts +69 -0
- package/dist/tools/hai.d.ts.map +1 -0
- package/dist/tools/hai.js +214 -0
- package/dist/tools/hai.js.map +1 -0
- package/dist/tools/index.d.ts +106 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1170 -0
- package/dist/tools/index.js.map +1 -0
- package/marketplace.json +80 -0
- package/openclaw.plugin.json +59 -0
- package/package.json +64 -0
- package/src/skills/jacs/SKILL.md +308 -0
package/dist/setup.js
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JACS Setup Wizard
|
|
4
|
+
*
|
|
5
|
+
* Interactive setup for generating keys and creating agent identity.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.setupCommand = setupCommand;
|
|
42
|
+
const jacs_1 = require("@hai.ai/jacs");
|
|
43
|
+
const uuid_1 = require("uuid");
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
const crypto = __importStar(require("crypto"));
|
|
47
|
+
const index_1 = require("./index");
|
|
48
|
+
/**
|
|
49
|
+
* Creates the setup command handler
|
|
50
|
+
*/
|
|
51
|
+
function setupCommand(api) {
|
|
52
|
+
return async (ctx) => {
|
|
53
|
+
const logger = api.logger;
|
|
54
|
+
const homeDir = api.runtime.homeDir;
|
|
55
|
+
let originalPasswordEnv;
|
|
56
|
+
try {
|
|
57
|
+
// Get setup options from args or use defaults
|
|
58
|
+
const options = parseSetupOptions(ctx.args);
|
|
59
|
+
const jacsDir = path.join(homeDir, ".openclaw", "jacs");
|
|
60
|
+
const keysDir = path.join(homeDir, ".openclaw", "jacs_keys");
|
|
61
|
+
const configPath = path.join(jacsDir, "jacs.config.json");
|
|
62
|
+
// Check if already initialized
|
|
63
|
+
if (fs.existsSync(configPath)) {
|
|
64
|
+
const existingConfig = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
65
|
+
return {
|
|
66
|
+
text: `JACS already initialized.\n\nAgent ID: ${existingConfig.jacs_agent_id_and_version?.split(":")[0]}\nConfig: ${configPath}\n\nUse 'openclaw jacs rotate' to rotate keys or delete ${jacsDir} to reinitialize.`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Create directories with secure permissions
|
|
70
|
+
fs.mkdirSync(jacsDir, { recursive: true, mode: 0o700 });
|
|
71
|
+
fs.mkdirSync(keysDir, { recursive: true, mode: 0o700 });
|
|
72
|
+
fs.mkdirSync(path.join(jacsDir, "agent"), { recursive: true });
|
|
73
|
+
fs.mkdirSync(path.join(jacsDir, "documents"), { recursive: true });
|
|
74
|
+
logger.info(`Generating ${options.keyAlgorithm} key pair...`);
|
|
75
|
+
// JACS load() now expects a pre-existing agent document; use createAgent
|
|
76
|
+
// first so keys, config, and agent identity are created atomically.
|
|
77
|
+
originalPasswordEnv = process.env.JACS_PRIVATE_KEY_PASSWORD;
|
|
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");
|
|
80
|
+
let created = {};
|
|
81
|
+
try {
|
|
82
|
+
created = JSON.parse(createdRaw);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Keep created as {} and fall back to reading from config below.
|
|
86
|
+
}
|
|
87
|
+
ensureConfigCompatibility(configPath, {
|
|
88
|
+
dataDir: jacsDir,
|
|
89
|
+
keyDir: keysDir,
|
|
90
|
+
privateKeyFilename: getFilenameOrDefault(created?.private_key_path, "agent.private.pem.enc"),
|
|
91
|
+
publicKeyFilename: getFilenameOrDefault(created?.public_key_path, "agent.public.pem"),
|
|
92
|
+
algorithm: options.keyAlgorithm,
|
|
93
|
+
agentIdAndVersion: created?.agent_id && created?.version
|
|
94
|
+
? `${created.agent_id}:${created.version}`
|
|
95
|
+
: undefined,
|
|
96
|
+
});
|
|
97
|
+
// Load the created agent into runtime
|
|
98
|
+
const agent = new jacs_1.JacsAgent();
|
|
99
|
+
agent.load(configPath);
|
|
100
|
+
const configData = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
101
|
+
const [configAgentId, configAgentVersion] = parseAgentIdAndVersion(configData.jacs_agent_id_and_version);
|
|
102
|
+
const agentId = created?.agent_id || configAgentId || (0, uuid_1.v4)();
|
|
103
|
+
const agentVersion = created?.version || configAgentVersion;
|
|
104
|
+
logger.info(`Agent created: ${agentId}`);
|
|
105
|
+
const publicKeyPath = path.join(keysDir, configData.jacs_agent_public_key_filename || "agent.public.pem");
|
|
106
|
+
if (!fs.existsSync(publicKeyPath)) {
|
|
107
|
+
throw new Error(`Public key not found at ${publicKeyPath}`);
|
|
108
|
+
}
|
|
109
|
+
const publicKey = fs.readFileSync(publicKeyPath, "utf-8");
|
|
110
|
+
// Register the ready agent instance with plugin runtime
|
|
111
|
+
(0, index_1.setAgentInstance)(agent, agentId, publicKey);
|
|
112
|
+
// Update OpenClaw plugin config
|
|
113
|
+
api.updateConfig({
|
|
114
|
+
agentId,
|
|
115
|
+
keyAlgorithm: options.keyAlgorithm,
|
|
116
|
+
agentName: options.agentName,
|
|
117
|
+
agentDescription: options.agentDescription,
|
|
118
|
+
agentDomain: options.agentDomain,
|
|
119
|
+
});
|
|
120
|
+
const passwordLine = options.generatedPassword
|
|
121
|
+
? `Generated Key Password (save now): ${options.keyPassword}`
|
|
122
|
+
: `Key Password: provided via --password`;
|
|
123
|
+
return {
|
|
124
|
+
text: `JACS initialized successfully!
|
|
125
|
+
|
|
126
|
+
Agent ID: ${agentId}
|
|
127
|
+
Agent Version: ${agentVersion || "unknown"}
|
|
128
|
+
Algorithm: ${options.keyAlgorithm}
|
|
129
|
+
Config: ${configPath}
|
|
130
|
+
Keys: ${keysDir}
|
|
131
|
+
${passwordLine}
|
|
132
|
+
|
|
133
|
+
Your agent is ready to sign documents. Use:
|
|
134
|
+
openclaw jacs sign <file> - Sign a document
|
|
135
|
+
openclaw jacs verify <file> - Verify a signed document
|
|
136
|
+
openclaw jacs status - Show agent status
|
|
137
|
+
openclaw jacs dns-record <domain> - Generate DNS TXT record
|
|
138
|
+
|
|
139
|
+
Note: Save your key password securely. It's required to sign documents.`,
|
|
140
|
+
agentId,
|
|
141
|
+
configPath,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
logger.error(`Setup failed: ${err.message}`);
|
|
146
|
+
return {
|
|
147
|
+
text: `JACS setup failed: ${err.message}`,
|
|
148
|
+
error: err.message,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
if (originalPasswordEnv === undefined) {
|
|
153
|
+
delete process.env.JACS_PRIVATE_KEY_PASSWORD;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
process.env.JACS_PRIVATE_KEY_PASSWORD = originalPasswordEnv;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Parse setup options from command arguments
|
|
163
|
+
*/
|
|
164
|
+
function parseSetupOptions(args) {
|
|
165
|
+
const providedPassword = args?.password || args?.p;
|
|
166
|
+
return {
|
|
167
|
+
keyAlgorithm: args?.algorithm || args?.a || "pq2025",
|
|
168
|
+
agentName: args?.name || args?.n || "OpenClaw JACS Agent",
|
|
169
|
+
agentDescription: args?.description || args?.d || "OpenClaw agent with JACS cryptographic provenance",
|
|
170
|
+
agentDomain: args?.domain,
|
|
171
|
+
keyPassword: providedPassword || generateSecurePassword(),
|
|
172
|
+
generatedPassword: !providedPassword,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Generate a cryptographically secure random password
|
|
177
|
+
*/
|
|
178
|
+
function generateSecurePassword() {
|
|
179
|
+
return crypto.randomBytes(32).toString("base64");
|
|
180
|
+
}
|
|
181
|
+
function parseAgentIdAndVersion(value) {
|
|
182
|
+
if (!value || typeof value !== "string") {
|
|
183
|
+
return [undefined, undefined];
|
|
184
|
+
}
|
|
185
|
+
const [agentId, agentVersion] = value.split(":");
|
|
186
|
+
return [agentId || undefined, agentVersion || undefined];
|
|
187
|
+
}
|
|
188
|
+
function getFilenameOrDefault(fullPath, fallback) {
|
|
189
|
+
if (typeof fullPath !== "string" || fullPath.trim() === "") {
|
|
190
|
+
return fallback;
|
|
191
|
+
}
|
|
192
|
+
return path.basename(fullPath);
|
|
193
|
+
}
|
|
194
|
+
function ensureConfigCompatibility(configPath, defaults) {
|
|
195
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
196
|
+
let changed = false;
|
|
197
|
+
const setIfMissing = (key, value) => {
|
|
198
|
+
if (!value)
|
|
199
|
+
return;
|
|
200
|
+
if (config[key] == null || config[key] === "") {
|
|
201
|
+
config[key] = value;
|
|
202
|
+
changed = true;
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
setIfMissing("jacs_use_security", "true");
|
|
206
|
+
setIfMissing("jacs_data_directory", defaults.dataDir);
|
|
207
|
+
setIfMissing("jacs_key_directory", defaults.keyDir);
|
|
208
|
+
setIfMissing("jacs_agent_private_key_filename", defaults.privateKeyFilename);
|
|
209
|
+
setIfMissing("jacs_agent_public_key_filename", defaults.publicKeyFilename);
|
|
210
|
+
setIfMissing("jacs_agent_key_algorithm", defaults.algorithm);
|
|
211
|
+
setIfMissing("jacs_default_storage", "fs");
|
|
212
|
+
setIfMissing("jacs_agent_id_and_version", defaults.agentIdAndVersion);
|
|
213
|
+
if (changed) {
|
|
214
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JACS Document Type Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for creating and managing typed JACS documents:
|
|
5
|
+
* - Agent State (memory, skill, plan, config, hook)
|
|
6
|
+
* - Commitments (agreements between agents)
|
|
7
|
+
* - Todo Lists (private work tracking)
|
|
8
|
+
* - Conversations (signed message threads)
|
|
9
|
+
*/
|
|
10
|
+
import type { OpenClawPluginAPI } from "../index";
|
|
11
|
+
declare const AGENT_STATE_TYPES: readonly ["memory", "skill", "plan", "config", "hook", "other"];
|
|
12
|
+
type AgentStateType = (typeof AGENT_STATE_TYPES)[number];
|
|
13
|
+
declare const COMMITMENT_STATUSES: readonly ["pending", "active", "completed", "failed", "renegotiated", "disputed", "revoked"];
|
|
14
|
+
type CommitmentStatus = (typeof COMMITMENT_STATUSES)[number];
|
|
15
|
+
export interface CreateAgentStateParams {
|
|
16
|
+
stateType: AgentStateType;
|
|
17
|
+
name: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
content?: string;
|
|
20
|
+
contentType?: string;
|
|
21
|
+
framework?: string;
|
|
22
|
+
tags?: string[];
|
|
23
|
+
origin?: "authored" | "adopted" | "generated" | "imported";
|
|
24
|
+
sourceUrl?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SignFileAsStateParams {
|
|
27
|
+
stateType: AgentStateType;
|
|
28
|
+
name: string;
|
|
29
|
+
filePath: string;
|
|
30
|
+
embed?: boolean;
|
|
31
|
+
description?: string;
|
|
32
|
+
framework?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface VerifyAgentStateParams {
|
|
35
|
+
document: any;
|
|
36
|
+
}
|
|
37
|
+
export interface CreateCommitmentParams {
|
|
38
|
+
description: string;
|
|
39
|
+
status?: CommitmentStatus;
|
|
40
|
+
terms?: Record<string, any>;
|
|
41
|
+
question?: string;
|
|
42
|
+
startDate?: string;
|
|
43
|
+
endDate?: string;
|
|
44
|
+
recurrence?: {
|
|
45
|
+
frequency: string;
|
|
46
|
+
interval: number;
|
|
47
|
+
};
|
|
48
|
+
conversationRef?: string;
|
|
49
|
+
todoRef?: string;
|
|
50
|
+
taskId?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface UpdateCommitmentParams {
|
|
53
|
+
document: any;
|
|
54
|
+
status?: CommitmentStatus;
|
|
55
|
+
answer?: string;
|
|
56
|
+
completionAnswer?: string;
|
|
57
|
+
disputeReason?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface DisputeCommitmentParams {
|
|
60
|
+
document: any;
|
|
61
|
+
reason: string;
|
|
62
|
+
}
|
|
63
|
+
export interface RevokeCommitmentParams {
|
|
64
|
+
document: any;
|
|
65
|
+
reason: string;
|
|
66
|
+
}
|
|
67
|
+
export interface CreateTodoParams {
|
|
68
|
+
name: string;
|
|
69
|
+
items?: Array<{
|
|
70
|
+
itemType: "goal" | "task";
|
|
71
|
+
description: string;
|
|
72
|
+
priority?: string;
|
|
73
|
+
tags?: string[];
|
|
74
|
+
}>;
|
|
75
|
+
}
|
|
76
|
+
export interface AddTodoItemParams {
|
|
77
|
+
document: any;
|
|
78
|
+
itemType: "goal" | "task";
|
|
79
|
+
description: string;
|
|
80
|
+
priority?: string;
|
|
81
|
+
assignedAgent?: string;
|
|
82
|
+
tags?: string[];
|
|
83
|
+
}
|
|
84
|
+
export interface UpdateTodoItemParams {
|
|
85
|
+
document: any;
|
|
86
|
+
itemId: string;
|
|
87
|
+
status?: string;
|
|
88
|
+
description?: string;
|
|
89
|
+
priority?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface StartConversationParams {
|
|
92
|
+
content: any;
|
|
93
|
+
to: string[];
|
|
94
|
+
from: string[];
|
|
95
|
+
}
|
|
96
|
+
export interface SendMessageParams {
|
|
97
|
+
threadId: string;
|
|
98
|
+
content: any;
|
|
99
|
+
to: string[];
|
|
100
|
+
from: string[];
|
|
101
|
+
previousMessageId?: string;
|
|
102
|
+
}
|
|
103
|
+
export declare function buildAgentStateDocument(params: CreateAgentStateParams): Record<string, any>;
|
|
104
|
+
export declare function buildCommitmentDocument(params: CreateCommitmentParams): Record<string, any>;
|
|
105
|
+
export declare function buildTodoDocument(params: CreateTodoParams): Record<string, any>;
|
|
106
|
+
export declare function buildMessageDocument(params: {
|
|
107
|
+
threadId: string;
|
|
108
|
+
content: any;
|
|
109
|
+
to: string[];
|
|
110
|
+
from: string[];
|
|
111
|
+
previousMessageId?: string;
|
|
112
|
+
}): Record<string, any>;
|
|
113
|
+
export declare function registerDocumentTools(api: OpenClawPluginAPI): void;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|