@dp-pcs/ogp 0.3.3 → 0.4.3
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 +317 -61
- package/dist/cli/completion.d.ts +5 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +148 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +207 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/expose.d.ts.map +1 -1
- package/dist/cli/expose.js +20 -13
- package/dist/cli/expose.js.map +1 -1
- package/dist/cli/federation.d.ts +14 -0
- package/dist/cli/federation.d.ts.map +1 -1
- package/dist/cli/federation.js +347 -23
- package/dist/cli/federation.js.map +1 -1
- package/dist/cli/project.d.ts +4 -3
- package/dist/cli/project.d.ts.map +1 -1
- package/dist/cli/project.js +34 -24
- package/dist/cli/project.js.map +1 -1
- package/dist/cli/setup.d.ts +23 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +560 -32
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli.js +358 -35
- package/dist/cli.js.map +1 -1
- package/dist/daemon/agent-comms.d.ts.map +1 -1
- package/dist/daemon/agent-comms.js +15 -10
- package/dist/daemon/agent-comms.js.map +1 -1
- package/dist/daemon/heartbeat.d.ts +22 -0
- package/dist/daemon/heartbeat.d.ts.map +1 -0
- package/dist/daemon/heartbeat.js +119 -0
- package/dist/daemon/heartbeat.js.map +1 -0
- package/dist/daemon/intent-registry.d.ts.map +1 -1
- package/dist/daemon/intent-registry.js +19 -10
- package/dist/daemon/intent-registry.js.map +1 -1
- package/dist/daemon/keypair.d.ts +1 -0
- package/dist/daemon/keypair.d.ts.map +1 -1
- package/dist/daemon/keypair.js +151 -18
- package/dist/daemon/keypair.js.map +1 -1
- package/dist/daemon/message-handler.d.ts.map +1 -1
- package/dist/daemon/message-handler.js +30 -16
- package/dist/daemon/message-handler.js.map +1 -1
- package/dist/daemon/notify.d.ts +19 -0
- package/dist/daemon/notify.d.ts.map +1 -1
- package/dist/daemon/notify.js +376 -73
- package/dist/daemon/notify.js.map +1 -1
- package/dist/daemon/openclaw-bridge.d.ts +34 -0
- package/dist/daemon/openclaw-bridge.d.ts.map +1 -0
- package/dist/daemon/openclaw-bridge.js +261 -0
- package/dist/daemon/openclaw-bridge.js.map +1 -0
- package/dist/daemon/peers.d.ts +21 -0
- package/dist/daemon/peers.d.ts.map +1 -1
- package/dist/daemon/peers.js +125 -20
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/projects.d.ts +9 -6
- package/dist/daemon/projects.d.ts.map +1 -1
- package/dist/daemon/projects.js +30 -20
- package/dist/daemon/projects.js.map +1 -1
- package/dist/daemon/server.d.ts +17 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +188 -77
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/config.d.ts +52 -1
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +18 -11
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/framework-detection.d.ts +31 -0
- package/dist/shared/framework-detection.d.ts.map +1 -0
- package/dist/shared/framework-detection.js +91 -0
- package/dist/shared/framework-detection.js.map +1 -0
- package/dist/shared/help.d.ts +5 -0
- package/dist/shared/help.d.ts.map +1 -0
- package/dist/shared/help.js +281 -0
- package/dist/shared/help.js.map +1 -0
- package/dist/shared/meta-config.d.ts +44 -0
- package/dist/shared/meta-config.d.ts.map +1 -0
- package/dist/shared/meta-config.js +89 -0
- package/dist/shared/meta-config.js.map +1 -0
- package/dist/shared/migration.d.ts +57 -0
- package/dist/shared/migration.d.ts.map +1 -0
- package/dist/shared/migration.js +255 -0
- package/dist/shared/migration.js.map +1 -0
- package/docs/CLI-REFERENCE.md +1361 -0
- package/docs/GETTING-STARTED.md +953 -0
- package/docs/MIGRATION.md +202 -0
- package/docs/MULTI-FRAMEWORK-DEMO.md +352 -0
- package/docs/MULTI-FRAMEWORK-DESIGN.md +378 -0
- package/docs/MULTI-FRAMEWORK-IMPL.md +197 -0
- package/docs/case-studies/CRASH_RESOLUTION_20260407.md +190 -0
- package/docs/case-studies/OpenClaw_Hermes_Status_Report_20260407.md +142 -0
- package/docs/case-studies/OpenClaw_Stability_Fix_Summary.md +209 -0
- package/docs/case-studies/README.md +40 -0
- package/docs/case-studies/crash_observations.md +250 -0
- package/docs/cloudflare-named-tunnel-setup.md +126 -0
- package/docs/federation-flow.md +27 -37
- package/docs/hermes-implementation-checklist.md +4 -0
- package/docs/project-intent-testing.md +97 -0
- package/docs/quickstart.md +12 -4
- package/docs/rendezvous.md +13 -14
- package/docs/scopes.md +13 -13
- package/package.json +12 -6
- package/scripts/completion.bash +123 -0
- package/scripts/completion.zsh +372 -0
- package/scripts/install-skills.js +19 -1
- package/scripts/test-migration-execute.js +74 -0
- package/scripts/test-migration.js +42 -0
- package/scripts/test-project-intents.mjs +614 -0
- package/skills/ogp/SKILL.md +197 -64
- package/skills/ogp-agent-comms/SKILL.md +107 -41
- package/skills/ogp-expose/SKILL.md +183 -25
- package/skills/ogp-project/SKILL.md +110 -88
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw Bridge for OGP Notifications
|
|
3
|
+
*
|
|
4
|
+
* Primary path: /hooks/agent so OpenClaw can run an isolated agent turn and
|
|
5
|
+
* deliver the result through its normal channel-routing logic.
|
|
6
|
+
*
|
|
7
|
+
* Secondary path: Gateway RPC sessions.send for direct session injection.
|
|
8
|
+
*/
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import os from 'node:os';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import { request as httpRequest } from 'node:http';
|
|
13
|
+
import { request as httpsRequest } from 'node:https';
|
|
14
|
+
import { execFile } from 'node:child_process';
|
|
15
|
+
import { promisify } from 'node:util';
|
|
16
|
+
import { requireConfig } from '../shared/config.js';
|
|
17
|
+
const execFileAsync = promisify(execFile);
|
|
18
|
+
function extractJsonObject(output) {
|
|
19
|
+
const start = output.indexOf('{');
|
|
20
|
+
if (start === -1) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return JSON.parse(output.slice(start));
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function normalizeBaseUrl(url) {
|
|
31
|
+
if (url.startsWith('ws://')) {
|
|
32
|
+
return new URL(`http://${url.slice('ws://'.length)}`);
|
|
33
|
+
}
|
|
34
|
+
if (url.startsWith('wss://')) {
|
|
35
|
+
return new URL(`https://${url.slice('wss://'.length)}`);
|
|
36
|
+
}
|
|
37
|
+
return new URL(url);
|
|
38
|
+
}
|
|
39
|
+
function isLoopbackHost(hostname) {
|
|
40
|
+
const normalized = hostname.trim().toLowerCase();
|
|
41
|
+
return (normalized === 'localhost' ||
|
|
42
|
+
normalized === '127.0.0.1' ||
|
|
43
|
+
normalized === '::1');
|
|
44
|
+
}
|
|
45
|
+
function buildGatewayWsUrls(url) {
|
|
46
|
+
const base = normalizeBaseUrl(url);
|
|
47
|
+
const wsProtocol = base.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
48
|
+
const primary = `${wsProtocol}//${base.host}`;
|
|
49
|
+
// Current OpenClaw local gateway defaults to TLS on 18789, even if the
|
|
50
|
+
// OGP config still says http://localhost:18789.
|
|
51
|
+
if (base.protocol === 'http:' && isLoopbackHost(base.hostname) && base.port === '18789') {
|
|
52
|
+
return [`wss://${base.host}`, `ws://${base.host}`];
|
|
53
|
+
}
|
|
54
|
+
return [primary];
|
|
55
|
+
}
|
|
56
|
+
function buildHookBaseUrls(url) {
|
|
57
|
+
const base = normalizeBaseUrl(url);
|
|
58
|
+
const primaryProtocol = base.protocol === 'https:' ? 'https:' : 'http:';
|
|
59
|
+
const primary = `${primaryProtocol}//${base.host}`;
|
|
60
|
+
if (base.protocol === 'http:' && isLoopbackHost(base.hostname) && base.port === '18789') {
|
|
61
|
+
return [`https://${base.host}`, `http://${base.host}`];
|
|
62
|
+
}
|
|
63
|
+
return [primary];
|
|
64
|
+
}
|
|
65
|
+
function resolveOpenClawConfigPath() {
|
|
66
|
+
return process.env.OPENCLAW_CONFIG_PATH || path.join(os.homedir(), '.openclaw', 'openclaw.json');
|
|
67
|
+
}
|
|
68
|
+
function loadHooksConfigFromOpenClawConfig() {
|
|
69
|
+
try {
|
|
70
|
+
const configPath = resolveOpenClawConfigPath();
|
|
71
|
+
if (!fs.existsSync(configPath)) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
const raw = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
75
|
+
const token = raw.hooks?.token?.trim();
|
|
76
|
+
const allowedSessionKeyPrefixes = Array.isArray(raw.hooks?.allowedSessionKeyPrefixes)
|
|
77
|
+
? raw.hooks.allowedSessionKeyPrefixes
|
|
78
|
+
.map(prefix => typeof prefix === 'string' ? prefix.trim() : '')
|
|
79
|
+
.filter(Boolean)
|
|
80
|
+
: undefined;
|
|
81
|
+
return {
|
|
82
|
+
token: token || undefined,
|
|
83
|
+
allowRequestSessionKey: raw.hooks?.allowRequestSessionKey === true,
|
|
84
|
+
allowedSessionKeyPrefixes: allowedSessionKeyPrefixes?.length ? allowedSessionKeyPrefixes : undefined
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function isAllowedHookSessionKey(sessionKey, allowedPrefixes) {
|
|
92
|
+
if (!allowedPrefixes || allowedPrefixes.length === 0) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return allowedPrefixes.some(prefix => sessionKey.startsWith(prefix));
|
|
96
|
+
}
|
|
97
|
+
async function callGatewayMethod(params) {
|
|
98
|
+
const candidates = buildGatewayWsUrls(params.gatewayUrl);
|
|
99
|
+
for (const candidate of candidates) {
|
|
100
|
+
try {
|
|
101
|
+
const { stdout, stderr } = await execFileAsync('openclaw', [
|
|
102
|
+
'gateway',
|
|
103
|
+
'call',
|
|
104
|
+
'--token',
|
|
105
|
+
params.gatewayToken,
|
|
106
|
+
'--url',
|
|
107
|
+
candidate,
|
|
108
|
+
'--params',
|
|
109
|
+
JSON.stringify(params.payload),
|
|
110
|
+
'--json',
|
|
111
|
+
params.method
|
|
112
|
+
], {
|
|
113
|
+
timeout: 10_000,
|
|
114
|
+
maxBuffer: 1024 * 1024
|
|
115
|
+
});
|
|
116
|
+
const response = extractJsonObject(stdout);
|
|
117
|
+
const ok = Boolean(response &&
|
|
118
|
+
(response.runId || response.status === 'started' || response.messageSeq || response.ok));
|
|
119
|
+
if (ok) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
console.error(`[OGP Bridge] ${params.method} returned unexpected output via ${candidate}:`, stdout.trim() || stderr.trim());
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
console.error(`[OGP Bridge] ${params.method} failed via ${candidate}:`, err.message || err);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
async function postJson(params) {
|
|
131
|
+
const candidates = buildHookBaseUrls(params.baseUrl);
|
|
132
|
+
const body = JSON.stringify(params.body);
|
|
133
|
+
for (const candidate of candidates) {
|
|
134
|
+
try {
|
|
135
|
+
const url = new URL(params.path, candidate);
|
|
136
|
+
const reqFn = url.protocol === 'https:' ? httpsRequest : httpRequest;
|
|
137
|
+
const ok = await new Promise((resolve) => {
|
|
138
|
+
const req = reqFn({
|
|
139
|
+
hostname: url.hostname,
|
|
140
|
+
port: url.port || (url.protocol === 'https:' ? 443 : 80),
|
|
141
|
+
path: url.pathname,
|
|
142
|
+
method: 'POST',
|
|
143
|
+
rejectUnauthorized: false,
|
|
144
|
+
headers: {
|
|
145
|
+
Authorization: `Bearer ${params.token}`,
|
|
146
|
+
'Content-Type': 'application/json',
|
|
147
|
+
'Content-Length': Buffer.byteLength(body)
|
|
148
|
+
}
|
|
149
|
+
}, (res) => {
|
|
150
|
+
let responseBody = '';
|
|
151
|
+
res.setEncoding('utf8');
|
|
152
|
+
res.on('data', (chunk) => {
|
|
153
|
+
responseBody += chunk;
|
|
154
|
+
});
|
|
155
|
+
res.on('end', () => {
|
|
156
|
+
const parsed = extractJsonObject(responseBody);
|
|
157
|
+
resolve(Boolean(res.statusCode && res.statusCode >= 200 && res.statusCode < 300 && parsed?.ok));
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
req.on('error', () => resolve(false));
|
|
161
|
+
req.setTimeout(10_000, () => {
|
|
162
|
+
req.destroy();
|
|
163
|
+
resolve(false);
|
|
164
|
+
});
|
|
165
|
+
req.write(body);
|
|
166
|
+
req.end();
|
|
167
|
+
});
|
|
168
|
+
if (ok) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Try the next candidate.
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Connect bridge (no-op for request-based implementation)
|
|
180
|
+
*/
|
|
181
|
+
export function connectBridge() {
|
|
182
|
+
console.log('[OGP Bridge] Using OpenClaw hooks/agent for notifications and gateway RPC as fallback');
|
|
183
|
+
}
|
|
184
|
+
export async function dispatchAgentHook(message, from, options) {
|
|
185
|
+
const config = requireConfig();
|
|
186
|
+
const hooksConfig = loadHooksConfigFromOpenClawConfig();
|
|
187
|
+
const hooksToken = config.openclawHooksToken || hooksConfig?.token;
|
|
188
|
+
const baseUrl = config.openclawUrl || 'https://localhost:18789';
|
|
189
|
+
if (!hooksToken) {
|
|
190
|
+
console.error('[OGP Bridge] OpenClaw hooks token not configured');
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
let requestedSessionKey;
|
|
194
|
+
const trimmedSessionKey = options?.sessionKey?.trim();
|
|
195
|
+
if (trimmedSessionKey) {
|
|
196
|
+
if (hooksConfig?.allowRequestSessionKey === true) {
|
|
197
|
+
if (isAllowedHookSessionKey(trimmedSessionKey, hooksConfig.allowedSessionKeyPrefixes)) {
|
|
198
|
+
requestedSessionKey = trimmedSessionKey;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
console.warn('[OGP Bridge] Hook sessionKey override blocked by OpenClaw allowedSessionKeyPrefixes:', trimmedSessionKey);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.warn('[OGP Bridge] OpenClaw hooks.allowRequestSessionKey=false; /hooks/agent cannot be pinned to the target session and may run in the default hook session instead.');
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const ok = await postJson({
|
|
209
|
+
baseUrl,
|
|
210
|
+
path: '/hooks/agent',
|
|
211
|
+
token: hooksToken,
|
|
212
|
+
body: {
|
|
213
|
+
message,
|
|
214
|
+
name: 'OGP Federation',
|
|
215
|
+
agentId: config.agentId || 'main',
|
|
216
|
+
wakeMode: 'now',
|
|
217
|
+
deliver: options?.deliver ?? true,
|
|
218
|
+
...(requestedSessionKey ? { sessionKey: requestedSessionKey } : {}),
|
|
219
|
+
...(options?.target?.channel ? { channel: options.target.channel } : {}),
|
|
220
|
+
...(options?.target?.to ? { to: options.target.to } : {})
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
if (ok) {
|
|
224
|
+
console.log('[OGP Bridge] Message delivered via /hooks/agent:', from, message.substring(0, 100));
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
console.error('[OGP Bridge] /hooks/agent delivery failed');
|
|
228
|
+
}
|
|
229
|
+
return ok;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Inject a message into an OpenClaw session using the gateway RPC.
|
|
233
|
+
* Note: OpenClaw currently renders these messages with sender "cli", so OGP must
|
|
234
|
+
* include peer identity in the message content itself.
|
|
235
|
+
*/
|
|
236
|
+
export async function injectMessage(sessionKey, message, from) {
|
|
237
|
+
const config = requireConfig();
|
|
238
|
+
const gatewayToken = config.openclawToken;
|
|
239
|
+
const gatewayUrl = config.openclawUrl || 'https://localhost:18789';
|
|
240
|
+
if (!gatewayToken) {
|
|
241
|
+
console.error('[OGP Bridge] OpenClaw gateway token not configured');
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
const ok = await callGatewayMethod({
|
|
245
|
+
gatewayToken,
|
|
246
|
+
gatewayUrl,
|
|
247
|
+
method: 'sessions.send',
|
|
248
|
+
payload: { key: sessionKey, message }
|
|
249
|
+
});
|
|
250
|
+
if (ok) {
|
|
251
|
+
console.log('[OGP Bridge] Message delivered via sessions.send:', sessionKey, from ? `from ${from}` : '', message.substring(0, 100));
|
|
252
|
+
}
|
|
253
|
+
return ok;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Disconnect bridge (no-op for request-based implementation)
|
|
257
|
+
*/
|
|
258
|
+
export function disconnectBridge() {
|
|
259
|
+
console.log('[OGP Bridge] Request-based bridge has no persistent connection');
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=openclaw-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-bridge.js","sourceRoot":"","sources":["../../src/daemon/openclaw-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/peers.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface Peer {
|
|
|
12
12
|
status: 'pending' | 'approved' | 'rejected' | 'removed';
|
|
13
13
|
requestedAt: string;
|
|
14
14
|
approvedAt?: string;
|
|
15
|
+
rejectedAt?: string;
|
|
16
|
+
removedAt?: string;
|
|
15
17
|
metadata?: Record<string, any>;
|
|
16
18
|
protocolVersion?: string;
|
|
17
19
|
grantedScopes?: ScopeBundle;
|
|
@@ -20,13 +22,32 @@ export interface Peer {
|
|
|
20
22
|
responsePolicy?: ResponsePolicy;
|
|
21
23
|
defaultLevel?: ResponseLevel;
|
|
22
24
|
agentId?: string;
|
|
25
|
+
lastSeenAt?: string;
|
|
26
|
+
healthy?: boolean;
|
|
27
|
+
healthCheckFailures?: number;
|
|
23
28
|
}
|
|
29
|
+
export interface PeerIdentityLookup {
|
|
30
|
+
peerId?: string;
|
|
31
|
+
gatewayUrl?: string;
|
|
32
|
+
publicKey?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare const CANONICAL_PEER_ID_LENGTH = 32;
|
|
35
|
+
export declare function derivePeerIdFromPublicKey(publicKey: string): string;
|
|
36
|
+
type PendingPeerInput = Pick<Peer, 'id' | 'displayName' | 'email' | 'gatewayUrl' | 'publicKey'> & {
|
|
37
|
+
agentId?: string;
|
|
38
|
+
offeredIntents?: string[];
|
|
39
|
+
requestedAt?: string;
|
|
40
|
+
};
|
|
41
|
+
export declare function createPendingPeerRecord(input: PendingPeerInput): Peer;
|
|
24
42
|
export declare function loadPeers(): Peer[];
|
|
25
43
|
export declare function savePeers(peers: Peer[]): boolean;
|
|
26
44
|
export declare function addPeer(peer: Peer): boolean;
|
|
27
45
|
export declare function getPeer(peerId: string): Peer | null;
|
|
28
46
|
export declare function getPeerByUrl(gatewayUrl: string): Peer | null;
|
|
29
47
|
export declare function getPeerByPublicKey(publicKey: string): Peer | null;
|
|
48
|
+
export declare function findPeersByIdentity(identity: PeerIdentityLookup): Peer[];
|
|
49
|
+
export declare function findBestPeerForApproval(identity: PeerIdentityLookup): Peer | null;
|
|
50
|
+
export declare function replacePeersByIdentity(identity: PeerIdentityLookup, replacement: Peer): boolean;
|
|
30
51
|
export declare function approvePeer(peerId: string): boolean;
|
|
31
52
|
export declare function rejectPeer(peerId: string): boolean;
|
|
32
53
|
export declare function removePeer(peerId: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../src/daemon/peers.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AAE3D,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../src/daemon/peers.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/peers.js
CHANGED
|
@@ -1,13 +1,86 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { getConfigDir, ensureConfigDir } from '../shared/config.js';
|
|
4
|
-
const
|
|
4
|
+
export const CANONICAL_PEER_ID_LENGTH = 32;
|
|
5
|
+
function getPeersFile() {
|
|
6
|
+
return path.join(getConfigDir(), 'peers.json');
|
|
7
|
+
}
|
|
8
|
+
export function derivePeerIdFromPublicKey(publicKey) {
|
|
9
|
+
return publicKey.substring(0, CANONICAL_PEER_ID_LENGTH);
|
|
10
|
+
}
|
|
11
|
+
function matchesPeerIdentity(peer, identity) {
|
|
12
|
+
const canonicalLookupId = identity.publicKey ? derivePeerIdFromPublicKey(identity.publicKey) : undefined;
|
|
13
|
+
if (identity.peerId && peer.id === identity.peerId) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (identity.publicKey && peer.publicKey === identity.publicKey) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (canonicalLookupId) {
|
|
20
|
+
if (peer.id === canonicalLookupId) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (peer.publicKey && derivePeerIdFromPublicKey(peer.publicKey) === canonicalLookupId) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (identity.gatewayUrl && peer.gatewayUrl === identity.gatewayUrl) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function rankPeerMatch(peer, identity) {
|
|
33
|
+
const canonicalLookupId = identity.publicKey ? derivePeerIdFromPublicKey(identity.publicKey) : undefined;
|
|
34
|
+
if (peer.status === 'pending' && canonicalLookupId && peer.id === canonicalLookupId)
|
|
35
|
+
return 0;
|
|
36
|
+
if (peer.status === 'pending' && identity.publicKey && peer.publicKey === identity.publicKey)
|
|
37
|
+
return 1;
|
|
38
|
+
if (peer.status === 'pending')
|
|
39
|
+
return 2;
|
|
40
|
+
if (canonicalLookupId && peer.id === canonicalLookupId)
|
|
41
|
+
return 3;
|
|
42
|
+
if (identity.publicKey && peer.publicKey === identity.publicKey)
|
|
43
|
+
return 4;
|
|
44
|
+
if (identity.peerId && peer.id === identity.peerId)
|
|
45
|
+
return 5;
|
|
46
|
+
if (identity.gatewayUrl && peer.gatewayUrl === identity.gatewayUrl)
|
|
47
|
+
return 6;
|
|
48
|
+
return 7;
|
|
49
|
+
}
|
|
50
|
+
function createPeerTombstone(peer, status, changedAt = new Date().toISOString()) {
|
|
51
|
+
return {
|
|
52
|
+
id: peer.id,
|
|
53
|
+
displayName: peer.displayName,
|
|
54
|
+
email: peer.email,
|
|
55
|
+
gatewayUrl: peer.gatewayUrl,
|
|
56
|
+
publicKey: peer.publicKey,
|
|
57
|
+
status,
|
|
58
|
+
requestedAt: peer.requestedAt,
|
|
59
|
+
...(peer.approvedAt ? { approvedAt: peer.approvedAt } : {}),
|
|
60
|
+
...(peer.agentId ? { agentId: peer.agentId } : {}),
|
|
61
|
+
...(status === 'rejected' ? { rejectedAt: changedAt } : { removedAt: changedAt })
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function createPendingPeerRecord(input) {
|
|
65
|
+
return {
|
|
66
|
+
id: input.id,
|
|
67
|
+
displayName: input.displayName,
|
|
68
|
+
email: input.email,
|
|
69
|
+
gatewayUrl: input.gatewayUrl,
|
|
70
|
+
publicKey: input.publicKey,
|
|
71
|
+
status: 'pending',
|
|
72
|
+
requestedAt: input.requestedAt ?? new Date().toISOString(),
|
|
73
|
+
...(input.agentId ? { agentId: input.agentId } : {}),
|
|
74
|
+
...(input.offeredIntents && input.offeredIntents.length > 0 ? { offeredIntents: input.offeredIntents } : {})
|
|
75
|
+
};
|
|
76
|
+
}
|
|
5
77
|
export function loadPeers() {
|
|
6
78
|
ensureConfigDir();
|
|
7
|
-
|
|
79
|
+
const peersFile = getPeersFile();
|
|
80
|
+
if (!fs.existsSync(peersFile)) {
|
|
8
81
|
return [];
|
|
9
82
|
}
|
|
10
|
-
const data = fs.readFileSync(
|
|
83
|
+
const data = fs.readFileSync(peersFile, 'utf-8');
|
|
11
84
|
const peers = JSON.parse(data);
|
|
12
85
|
// Migration: petname → alias (backward compatibility)
|
|
13
86
|
let migrated = false;
|
|
@@ -25,14 +98,15 @@ export function loadPeers() {
|
|
|
25
98
|
}
|
|
26
99
|
export function savePeers(peers) {
|
|
27
100
|
ensureConfigDir();
|
|
101
|
+
const peersFile = getPeersFile();
|
|
28
102
|
// Strip deprecated petname field from saved data (migration complete)
|
|
29
103
|
const cleanPeers = peers.map(({ petname, ...peer }) => peer);
|
|
30
|
-
const tempFile = `${
|
|
104
|
+
const tempFile = `${peersFile}.tmp`;
|
|
31
105
|
try {
|
|
32
106
|
// BUILD-116: Atomic write - write to temp file first, then rename
|
|
33
107
|
// This prevents race conditions where concurrent reads get stale data
|
|
34
108
|
fs.writeFileSync(tempFile, JSON.stringify(cleanPeers, null, 2), 'utf-8');
|
|
35
|
-
fs.renameSync(tempFile,
|
|
109
|
+
fs.renameSync(tempFile, peersFile);
|
|
36
110
|
return true;
|
|
37
111
|
}
|
|
38
112
|
catch (error) {
|
|
@@ -51,16 +125,26 @@ export function savePeers(peers) {
|
|
|
51
125
|
}
|
|
52
126
|
export function addPeer(peer) {
|
|
53
127
|
const peers = loadPeers();
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
128
|
+
const matches = peers.filter((existingPeer) => matchesPeerIdentity(existingPeer, {
|
|
129
|
+
peerId: peer.id,
|
|
130
|
+
gatewayUrl: peer.gatewayUrl,
|
|
131
|
+
publicKey: peer.publicKey
|
|
132
|
+
}));
|
|
133
|
+
if (matches.length === 0) {
|
|
59
134
|
peers.push(peer);
|
|
135
|
+
return savePeers(peers);
|
|
60
136
|
}
|
|
61
|
-
|
|
137
|
+
const preservedAlias = peer.alias ?? matches.find((candidate) => candidate.alias)?.alias;
|
|
138
|
+
const replacement = preservedAlias ? { ...peer, alias: preservedAlias } : peer;
|
|
139
|
+
const filtered = peers.filter((existingPeer) => !matches.some((candidate) => candidate.id === existingPeer.id));
|
|
140
|
+
filtered.push(replacement);
|
|
141
|
+
return savePeers(filtered);
|
|
62
142
|
}
|
|
63
143
|
export function getPeer(peerId) {
|
|
144
|
+
// Handle null/undefined peerId gracefully
|
|
145
|
+
if (!peerId) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
64
148
|
const peers = loadPeers();
|
|
65
149
|
// Try exact match first
|
|
66
150
|
let peer = peers.find(p => p.id === peerId) || null;
|
|
@@ -89,6 +173,28 @@ export function getPeerByPublicKey(publicKey) {
|
|
|
89
173
|
}
|
|
90
174
|
return peer;
|
|
91
175
|
}
|
|
176
|
+
export function findPeersByIdentity(identity) {
|
|
177
|
+
return loadPeers().filter((peer) => matchesPeerIdentity(peer, identity));
|
|
178
|
+
}
|
|
179
|
+
export function findBestPeerForApproval(identity) {
|
|
180
|
+
const matches = findPeersByIdentity(identity);
|
|
181
|
+
if (matches.length === 0)
|
|
182
|
+
return null;
|
|
183
|
+
return matches
|
|
184
|
+
.slice()
|
|
185
|
+
.sort((a, b) => {
|
|
186
|
+
const rankDelta = rankPeerMatch(a, identity) - rankPeerMatch(b, identity);
|
|
187
|
+
if (rankDelta !== 0)
|
|
188
|
+
return rankDelta;
|
|
189
|
+
return b.id.length - a.id.length;
|
|
190
|
+
})[0] ?? null;
|
|
191
|
+
}
|
|
192
|
+
export function replacePeersByIdentity(identity, replacement) {
|
|
193
|
+
const peers = loadPeers();
|
|
194
|
+
const filtered = peers.filter((peer) => !matchesPeerIdentity(peer, identity));
|
|
195
|
+
filtered.push(replacement);
|
|
196
|
+
return savePeers(filtered);
|
|
197
|
+
}
|
|
92
198
|
export function approvePeer(peerId) {
|
|
93
199
|
const peers = loadPeers();
|
|
94
200
|
const peer = peers.find(p => p.id === peerId);
|
|
@@ -104,22 +210,21 @@ export function approvePeer(peerId) {
|
|
|
104
210
|
}
|
|
105
211
|
export function rejectPeer(peerId) {
|
|
106
212
|
const peers = loadPeers();
|
|
107
|
-
const
|
|
108
|
-
if (
|
|
213
|
+
const peerIndex = peers.findIndex(p => p.id === peerId);
|
|
214
|
+
if (peerIndex === -1)
|
|
109
215
|
return false;
|
|
110
|
-
|
|
111
|
-
savePeers(peers);
|
|
112
|
-
return true;
|
|
216
|
+
peers[peerIndex] = createPeerTombstone(peers[peerIndex], 'rejected');
|
|
217
|
+
return savePeers(peers);
|
|
113
218
|
}
|
|
114
219
|
export function removePeer(peerId) {
|
|
115
220
|
const peers = loadPeers();
|
|
116
221
|
const peerIndex = peers.findIndex(p => p.id === peerId);
|
|
117
222
|
if (peerIndex === -1)
|
|
118
223
|
return false;
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return
|
|
224
|
+
// Keep an auditable tombstone, but clear mutable relationship state so it
|
|
225
|
+
// cannot leak into later federation attempts.
|
|
226
|
+
peers[peerIndex] = createPeerTombstone(peers[peerIndex], 'removed');
|
|
227
|
+
return savePeers(peers);
|
|
123
228
|
}
|
|
124
229
|
export function listPeers(status) {
|
|
125
230
|
const peers = loadPeers();
|
package/dist/daemon/peers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/daemon/peers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/daemon/peers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ export interface ProjectContribution {
|
|
|
2
2
|
id: string;
|
|
3
3
|
timestamp: string;
|
|
4
4
|
authorId: string;
|
|
5
|
-
|
|
5
|
+
entryType?: string;
|
|
6
|
+
topic?: string;
|
|
6
7
|
summary: string;
|
|
7
8
|
metadata?: Record<string, any>;
|
|
8
9
|
}
|
|
@@ -22,12 +23,14 @@ export interface Project {
|
|
|
22
23
|
topics: ProjectTopic[];
|
|
23
24
|
metadata?: Record<string, any>;
|
|
24
25
|
}
|
|
26
|
+
export declare function getContributionEntryType(contribution: Partial<ProjectContribution> | null | undefined): string;
|
|
25
27
|
export declare function loadProjects(): Project[];
|
|
26
28
|
export declare function saveProjects(projects: Project[]): void;
|
|
27
29
|
export declare function createProject(id: string, name: string, description?: string, metadata?: Record<string, any>): Project;
|
|
28
30
|
export declare function addProject(project: Project): void;
|
|
29
31
|
export declare function getProject(projectId: string): Project | null;
|
|
30
32
|
export declare function listProjects(): Project[];
|
|
33
|
+
export declare function listProjectsForPeer(peerId: string, projects?: Project[]): Project[];
|
|
31
34
|
export declare function deleteProject(projectId: string): boolean;
|
|
32
35
|
/**
|
|
33
36
|
* Join a project (add peer as member if not already present)
|
|
@@ -46,13 +49,13 @@ export declare function isProjectMember(projectId: string, peerId: string): bool
|
|
|
46
49
|
*/
|
|
47
50
|
export declare function ensureProjectTopic(projectId: string, topicName: string, description?: string): boolean;
|
|
48
51
|
/**
|
|
49
|
-
* Add a contribution to a project
|
|
52
|
+
* Add a contribution to a project entry type
|
|
50
53
|
*/
|
|
51
|
-
export declare function contributeToProject(projectId: string,
|
|
54
|
+
export declare function contributeToProject(projectId: string, entryTypeName: string, authorId: string, summary: string, metadata?: Record<string, any>): string | null;
|
|
52
55
|
/**
|
|
53
|
-
* Get contributions for a specific
|
|
56
|
+
* Get contributions for a specific entry type across all projects
|
|
54
57
|
*/
|
|
55
|
-
export declare function getTopicContributions(projectId: string,
|
|
58
|
+
export declare function getTopicContributions(projectId: string, entryTypeName: string, limit?: number): ProjectContribution[];
|
|
56
59
|
/**
|
|
57
60
|
* Get all contributions from a specific author in a project
|
|
58
61
|
*/
|
|
@@ -62,7 +65,7 @@ export declare function getAuthorContributions(projectId: string, authorId: stri
|
|
|
62
65
|
*/
|
|
63
66
|
export declare function searchContributions(projectId: string, query: string, limit?: number): ProjectContribution[];
|
|
64
67
|
/**
|
|
65
|
-
* Get project status summary (
|
|
68
|
+
* Get project status summary (entry types with recent activity)
|
|
66
69
|
*/
|
|
67
70
|
export declare function getProjectStatus(projectId: string): {
|
|
68
71
|
project: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/daemon/projects.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/daemon/projects.ts"],"names":[],"mappings":"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"}
|