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/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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"}