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
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JACS Gateway Methods
|
|
4
|
+
*
|
|
5
|
+
* Serves .well-known endpoints for JACS agent discovery.
|
|
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.registerGatewayMethods = registerGatewayMethods;
|
|
42
|
+
const jacs_1 = require("@hai.ai/jacs");
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const tools_1 = require("../tools");
|
|
46
|
+
const hai_1 = require("../tools/hai");
|
|
47
|
+
/**
|
|
48
|
+
* Register gateway methods for well-known endpoints
|
|
49
|
+
*/
|
|
50
|
+
function registerGatewayMethods(api) {
|
|
51
|
+
const homeDir = api.runtime.homeDir;
|
|
52
|
+
const keysDir = path.join(homeDir, ".openclaw", "jacs_keys");
|
|
53
|
+
// Serve /.well-known/jacs-pubkey.json
|
|
54
|
+
api.registerGatewayMethod({
|
|
55
|
+
method: "GET",
|
|
56
|
+
path: "/.well-known/jacs-pubkey.json",
|
|
57
|
+
handler: async (req, res) => {
|
|
58
|
+
if (!api.runtime.jacs?.isInitialized()) {
|
|
59
|
+
res.status(503).json({
|
|
60
|
+
error: "JACS not initialized",
|
|
61
|
+
message: "Run 'openclaw jacs init' to configure JACS",
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const config = api.config;
|
|
67
|
+
const publicKeyPath = path.join(keysDir, "agent.public.pem");
|
|
68
|
+
if (!fs.existsSync(publicKeyPath)) {
|
|
69
|
+
res.status(404).json({ error: "Public key not found" });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const publicKey = fs.readFileSync(publicKeyPath, "utf-8");
|
|
73
|
+
const publicKeyHash = (0, jacs_1.hashString)(publicKey);
|
|
74
|
+
res.setHeader("Content-Type", "application/json");
|
|
75
|
+
res.setHeader("Cache-Control", "public, max-age=3600");
|
|
76
|
+
res.json({
|
|
77
|
+
publicKey,
|
|
78
|
+
publicKeyHash,
|
|
79
|
+
algorithm: config.keyAlgorithm || "pq2025",
|
|
80
|
+
agentId: config.agentId,
|
|
81
|
+
agentName: config.agentName,
|
|
82
|
+
agentDomain: config.agentDomain,
|
|
83
|
+
verificationClaim: config.verificationClaim || "unverified",
|
|
84
|
+
timestamp: new Date().toISOString(),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
api.logger.error(`Failed to serve public key: ${err.message}`);
|
|
89
|
+
res.status(500).json({ error: err.message });
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
// POST /jacs/verify - Public verification endpoint
|
|
94
|
+
api.registerGatewayMethod({
|
|
95
|
+
method: "POST",
|
|
96
|
+
path: "/jacs/verify",
|
|
97
|
+
handler: async (req, res) => {
|
|
98
|
+
if (!api.runtime.jacs?.isInitialized()) {
|
|
99
|
+
res.status(503).json({ error: "JACS not initialized" });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
if (!req.body) {
|
|
104
|
+
res.status(400).json({ error: "Request body required" });
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const agent = api.runtime.jacs?.getAgent();
|
|
108
|
+
if (!agent) {
|
|
109
|
+
res.status(503).json({ error: "JACS not initialized" });
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const result = agent.verifyResponse(JSON.stringify(req.body));
|
|
113
|
+
res.json(result);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
res.status(400).json({ error: err.message });
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
// NOTE: No external signing endpoint is exposed.
|
|
121
|
+
// Signing MUST only happen internally by the agent itself.
|
|
122
|
+
// External signing would compromise the agent's identity.
|
|
123
|
+
// GET /jacs/status - Health check endpoint
|
|
124
|
+
api.registerGatewayMethod({
|
|
125
|
+
method: "GET",
|
|
126
|
+
path: "/jacs/status",
|
|
127
|
+
handler: async (req, res) => {
|
|
128
|
+
const config = api.config;
|
|
129
|
+
const initialized = api.runtime.jacs?.isInitialized() || false;
|
|
130
|
+
res.json({
|
|
131
|
+
initialized,
|
|
132
|
+
agentId: config.agentId || null,
|
|
133
|
+
algorithm: config.keyAlgorithm || null,
|
|
134
|
+
verificationClaim: config.verificationClaim || "unverified",
|
|
135
|
+
timestamp: new Date().toISOString(),
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
// GET /jacs/attestation - Full attestation status endpoint
|
|
140
|
+
api.registerGatewayMethod({
|
|
141
|
+
method: "GET",
|
|
142
|
+
path: "/jacs/attestation",
|
|
143
|
+
handler: async (req, res) => {
|
|
144
|
+
if (!api.runtime.jacs?.isInitialized()) {
|
|
145
|
+
res.status(503).json({
|
|
146
|
+
error: "JACS not initialized",
|
|
147
|
+
message: "Run 'openclaw jacs init' to configure JACS",
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
const config = api.config;
|
|
153
|
+
const publicKeyPath = path.join(keysDir, "agent.public.pem");
|
|
154
|
+
if (!fs.existsSync(publicKeyPath)) {
|
|
155
|
+
res.status(404).json({ error: "Public key not found" });
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const publicKey = fs.readFileSync(publicKeyPath, "utf-8");
|
|
159
|
+
const publicKeyHash = (0, jacs_1.hashString)(publicKey);
|
|
160
|
+
// Check DNS verification
|
|
161
|
+
let dnsVerified = false;
|
|
162
|
+
if (config.agentDomain) {
|
|
163
|
+
try {
|
|
164
|
+
const dnsResult = await (0, tools_1.resolveDnsRecord)(config.agentDomain);
|
|
165
|
+
if (dnsResult) {
|
|
166
|
+
dnsVerified = dnsResult.parsed.publicKeyHash === publicKeyHash;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// DNS check failed
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Check HAI.ai registration
|
|
174
|
+
let haiRegistered = false;
|
|
175
|
+
let haiRegistration = null;
|
|
176
|
+
if (config.agentId) {
|
|
177
|
+
try {
|
|
178
|
+
haiRegistration = await (0, hai_1.checkHaiStatus)(config.agentId);
|
|
179
|
+
haiRegistered = haiRegistration?.verified ?? false;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// HAI.ai check failed
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const trustLevel = (0, hai_1.determineTrustLevel)(!!config.agentDomain, dnsVerified, haiRegistered);
|
|
186
|
+
const status = {
|
|
187
|
+
agentId: config.agentId || "",
|
|
188
|
+
trustLevel,
|
|
189
|
+
verificationClaim: config.verificationClaim || "unverified",
|
|
190
|
+
domain: config.agentDomain,
|
|
191
|
+
haiRegistration,
|
|
192
|
+
dnsVerified,
|
|
193
|
+
timestamp: new Date().toISOString(),
|
|
194
|
+
};
|
|
195
|
+
res.setHeader("Content-Type", "application/json");
|
|
196
|
+
res.setHeader("Cache-Control", "public, max-age=60");
|
|
197
|
+
res.json(status);
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
api.logger.error(`Failed to get attestation status: ${err.message}`);
|
|
201
|
+
res.status(500).json({ error: err.message });
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=wellknown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wellknown.js","sourceRoot":"","sources":["../../src/gateway/wellknown.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JACS OpenClaw Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides post-quantum cryptographic signatures for agent communications.
|
|
5
|
+
*
|
|
6
|
+
* Core Features:
|
|
7
|
+
* - Key generation and secure storage
|
|
8
|
+
* - Document signing and verification
|
|
9
|
+
* - Public key endpoint for discovery
|
|
10
|
+
*/
|
|
11
|
+
import { JacsAgent } from "@hai.ai/jacs";
|
|
12
|
+
import * as fs from "fs";
|
|
13
|
+
export type TrustLevel = "basic" | "domain" | "attested";
|
|
14
|
+
export type VerificationClaim = "unverified" | "verified" | "verified-hai.ai";
|
|
15
|
+
export interface HaiRegistration {
|
|
16
|
+
verified: boolean;
|
|
17
|
+
verified_at?: string;
|
|
18
|
+
registration_type: string;
|
|
19
|
+
agent_id: string;
|
|
20
|
+
public_key_hash: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AttestationStatus {
|
|
23
|
+
agentId: string;
|
|
24
|
+
trustLevel: TrustLevel;
|
|
25
|
+
verificationClaim: VerificationClaim;
|
|
26
|
+
domain?: string;
|
|
27
|
+
haiRegistration?: HaiRegistration | null;
|
|
28
|
+
dnsVerified?: boolean;
|
|
29
|
+
timestamp: string;
|
|
30
|
+
}
|
|
31
|
+
export interface JACSPluginConfig {
|
|
32
|
+
keyAlgorithm: string;
|
|
33
|
+
autoSign: boolean;
|
|
34
|
+
autoVerify: boolean;
|
|
35
|
+
agentName?: string;
|
|
36
|
+
agentDescription?: string;
|
|
37
|
+
agentDomain?: string;
|
|
38
|
+
agentId?: string;
|
|
39
|
+
verificationClaim?: VerificationClaim;
|
|
40
|
+
haiApiUrl?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface OpenClawPluginAPI {
|
|
43
|
+
config: JACSPluginConfig;
|
|
44
|
+
logger: {
|
|
45
|
+
info: (msg: string) => void;
|
|
46
|
+
warn: (msg: string) => void;
|
|
47
|
+
error: (msg: string) => void;
|
|
48
|
+
debug: (msg: string) => void;
|
|
49
|
+
};
|
|
50
|
+
runtime: {
|
|
51
|
+
homeDir: string;
|
|
52
|
+
fs: typeof fs;
|
|
53
|
+
jacs?: JACSRuntime;
|
|
54
|
+
};
|
|
55
|
+
registerCli: (opts: any) => void;
|
|
56
|
+
registerCommand: (opts: any) => void;
|
|
57
|
+
registerTool: (opts: any) => void;
|
|
58
|
+
registerGatewayMethod: (opts: any) => void;
|
|
59
|
+
updateConfig: (update: Partial<JACSPluginConfig>) => void;
|
|
60
|
+
invoke: (command: string, args: any) => Promise<any>;
|
|
61
|
+
}
|
|
62
|
+
export interface JACSRuntime {
|
|
63
|
+
isInitialized: () => boolean;
|
|
64
|
+
getAgent: () => JacsAgent | null;
|
|
65
|
+
signDocument: (doc: any) => string;
|
|
66
|
+
verifyDocument: (doc: string) => any;
|
|
67
|
+
getAgentId: () => string | undefined;
|
|
68
|
+
getPublicKey: () => string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Main plugin registration function called by OpenClaw
|
|
72
|
+
*/
|
|
73
|
+
export default function register(api: OpenClawPluginAPI): void;
|
|
74
|
+
export { JacsAgent, hashString, verifyString, createConfig } from "@hai.ai/jacs";
|
|
75
|
+
export declare function setAgentInstance(agent: JacsAgent, agentId: string, publicKey: string): void;
|
|
76
|
+
export { setupCommand } from "./setup";
|
|
77
|
+
export { cliCommands } from "./cli";
|
|
78
|
+
export { registerTools } from "./tools";
|
|
79
|
+
export { registerGatewayMethods } from "./gateway/wellknown";
|
|
80
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JACS OpenClaw Plugin
|
|
4
|
+
*
|
|
5
|
+
* Provides post-quantum cryptographic signatures for agent communications.
|
|
6
|
+
*
|
|
7
|
+
* Core Features:
|
|
8
|
+
* - Key generation and secure storage
|
|
9
|
+
* - Document signing and verification
|
|
10
|
+
* - Public key endpoint for discovery
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.registerGatewayMethods = exports.registerTools = exports.cliCommands = exports.setupCommand = exports.createConfig = exports.verifyString = exports.hashString = exports.JacsAgent = void 0;
|
|
47
|
+
exports.default = register;
|
|
48
|
+
exports.setAgentInstance = setAgentInstance;
|
|
49
|
+
const jacs_1 = require("@hai.ai/jacs");
|
|
50
|
+
const setup_1 = require("./setup");
|
|
51
|
+
const cli_1 = require("./cli");
|
|
52
|
+
const wellknown_1 = require("./gateway/wellknown");
|
|
53
|
+
const tools_1 = require("./tools");
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const fs = __importStar(require("fs"));
|
|
56
|
+
// Agent instance (replaces deprecated global singleton)
|
|
57
|
+
let agentInstance = null;
|
|
58
|
+
let isInitialized = false;
|
|
59
|
+
let currentAgentId;
|
|
60
|
+
let publicKeyContent;
|
|
61
|
+
/**
|
|
62
|
+
* Main plugin registration function called by OpenClaw
|
|
63
|
+
*/
|
|
64
|
+
function register(api) {
|
|
65
|
+
const config = api.config;
|
|
66
|
+
const logger = api.logger;
|
|
67
|
+
// Determine JACS directories
|
|
68
|
+
const jacsDir = path.join(api.runtime.homeDir, ".openclaw", "jacs");
|
|
69
|
+
const keysDir = path.join(api.runtime.homeDir, ".openclaw", "jacs_keys");
|
|
70
|
+
const configPath = path.join(jacsDir, "jacs.config.json");
|
|
71
|
+
// Try to initialize JACS if config exists
|
|
72
|
+
if (fs.existsSync(configPath)) {
|
|
73
|
+
try {
|
|
74
|
+
// Use JacsAgent class instead of deprecated global load()
|
|
75
|
+
agentInstance = new jacs_1.JacsAgent();
|
|
76
|
+
agentInstance.load(configPath);
|
|
77
|
+
currentAgentId = config.agentId;
|
|
78
|
+
// Load public key
|
|
79
|
+
const pubKeyPath = path.join(keysDir, "agent.public.pem");
|
|
80
|
+
if (fs.existsSync(pubKeyPath)) {
|
|
81
|
+
publicKeyContent = fs.readFileSync(pubKeyPath, "utf-8");
|
|
82
|
+
}
|
|
83
|
+
isInitialized = true;
|
|
84
|
+
logger.info("JACS initialized successfully");
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
logger.warn(`JACS not initialized - run 'openclaw jacs init': ${err.message}`);
|
|
88
|
+
agentInstance = null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
logger.info("JACS not configured - run 'openclaw jacs init' to set up");
|
|
93
|
+
}
|
|
94
|
+
// Register CLI commands
|
|
95
|
+
api.registerCli({
|
|
96
|
+
name: "jacs",
|
|
97
|
+
description: "JACS cryptographic provenance commands",
|
|
98
|
+
subcommands: (0, cli_1.cliCommands)(api),
|
|
99
|
+
});
|
|
100
|
+
// Register setup/init command
|
|
101
|
+
api.registerCommand({
|
|
102
|
+
name: "jacs-init",
|
|
103
|
+
description: "Initialize JACS with key generation and agent creation",
|
|
104
|
+
handler: (0, setup_1.setupCommand)(api),
|
|
105
|
+
});
|
|
106
|
+
// Register agent tools for AI use
|
|
107
|
+
(0, tools_1.registerTools)(api);
|
|
108
|
+
// Register gateway methods for well-known endpoints
|
|
109
|
+
(0, wellknown_1.registerGatewayMethods)(api);
|
|
110
|
+
// Expose JACS runtime for other plugins
|
|
111
|
+
api.runtime.jacs = {
|
|
112
|
+
isInitialized: () => isInitialized,
|
|
113
|
+
getAgent: () => agentInstance,
|
|
114
|
+
signDocument: (doc) => {
|
|
115
|
+
if (!agentInstance)
|
|
116
|
+
throw new Error("JACS not initialized");
|
|
117
|
+
return agentInstance.signRequest(doc);
|
|
118
|
+
},
|
|
119
|
+
verifyDocument: (doc) => {
|
|
120
|
+
if (!agentInstance)
|
|
121
|
+
throw new Error("JACS not initialized");
|
|
122
|
+
return agentInstance.verifyResponse(doc);
|
|
123
|
+
},
|
|
124
|
+
getAgentId: () => currentAgentId,
|
|
125
|
+
getPublicKey: () => publicKeyContent || "",
|
|
126
|
+
};
|
|
127
|
+
logger.debug("JACS plugin registered");
|
|
128
|
+
}
|
|
129
|
+
// Re-export for use by other modules
|
|
130
|
+
var jacs_2 = require("@hai.ai/jacs");
|
|
131
|
+
Object.defineProperty(exports, "JacsAgent", { enumerable: true, get: function () { return jacs_2.JacsAgent; } });
|
|
132
|
+
Object.defineProperty(exports, "hashString", { enumerable: true, get: function () { return jacs_2.hashString; } });
|
|
133
|
+
Object.defineProperty(exports, "verifyString", { enumerable: true, get: function () { return jacs_2.verifyString; } });
|
|
134
|
+
Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return jacs_2.createConfig; } });
|
|
135
|
+
// Export internal state accessor for reinit after setup
|
|
136
|
+
function setAgentInstance(agent, agentId, publicKey) {
|
|
137
|
+
agentInstance = agent;
|
|
138
|
+
currentAgentId = agentId;
|
|
139
|
+
publicKeyContent = publicKey;
|
|
140
|
+
isInitialized = true;
|
|
141
|
+
}
|
|
142
|
+
var setup_2 = require("./setup");
|
|
143
|
+
Object.defineProperty(exports, "setupCommand", { enumerable: true, get: function () { return setup_2.setupCommand; } });
|
|
144
|
+
var cli_2 = require("./cli");
|
|
145
|
+
Object.defineProperty(exports, "cliCommands", { enumerable: true, get: function () { return cli_2.cliCommands; } });
|
|
146
|
+
var tools_2 = require("./tools");
|
|
147
|
+
Object.defineProperty(exports, "registerTools", { enumerable: true, get: function () { return tools_2.registerTools; } });
|
|
148
|
+
var wellknown_2 = require("./gateway/wellknown");
|
|
149
|
+
Object.defineProperty(exports, "registerGatewayMethods", { enumerable: true, get: function () { return wellknown_2.registerGatewayMethods; } });
|
|
150
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JACS Setup Wizard
|
|
3
|
+
*
|
|
4
|
+
* Interactive setup for generating keys and creating agent identity.
|
|
5
|
+
*/
|
|
6
|
+
import type { OpenClawPluginAPI } from "./index";
|
|
7
|
+
export interface SetupOptions {
|
|
8
|
+
keyAlgorithm: string;
|
|
9
|
+
agentName: string;
|
|
10
|
+
agentDescription: string;
|
|
11
|
+
agentDomain?: string;
|
|
12
|
+
keyPassword: string;
|
|
13
|
+
generatedPassword: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SetupResult {
|
|
16
|
+
text: string;
|
|
17
|
+
agentId?: string;
|
|
18
|
+
configPath?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates the setup command handler
|
|
23
|
+
*/
|
|
24
|
+
export declare function setupCommand(api: OpenClawPluginAPI): (ctx: any) => Promise<SetupResult>;
|
|
25
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,IACnC,KAAK,GAAG,KAAG,OAAO,CAAC,WAAW,CAAC,CAyI9C"}
|