@dp-pcs/ogp 0.2.0 → 0.2.1

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.
@@ -4,6 +4,10 @@ import { getIntent } from './intent-registry.js';
4
4
  import { notifyOpenClaw } from './notify.js';
5
5
  import { checkAccess } from './doorman.js';
6
6
  import { logActivity, getEffectivePolicy } from './agent-comms.js';
7
+ import { getProject, joinProject, isProjectMember, contributeToProject, getTopicContributions, getAuthorContributions, getProjectStatus, ensureProjectTopic, createProject, addProject } from './projects.js';
8
+ import { loadConfig } from '../shared/config.js';
9
+ import { spawn } from 'node:child_process';
10
+ import fs from 'node:fs';
7
11
  export async function handleMessage(message, signature) {
8
12
  // 1. Verify sender exists and is approved
9
13
  const peer = getPeer(message.from);
@@ -61,7 +65,24 @@ export async function handleMessage(message, signature) {
61
65
  if (message.intent === 'agent-comms') {
62
66
  return handleAgentComms(message, peer.displayName);
63
67
  }
64
- // 6. Standard intent handling: Notify OpenClaw
68
+ // 5.1. Handle project intents specially
69
+ if (message.intent.startsWith('project.')) {
70
+ return handleProjectIntent(message, peer.displayName);
71
+ }
72
+ // 6. Execute intent handler if one is registered
73
+ if (intent.handler) {
74
+ try {
75
+ const handlerResult = await executeIntentHandler(intent.handler, message, peer.displayName);
76
+ console.log(`[OGP] Intent handler executed for ${message.intent}: ${handlerResult.success ? 'success' : 'failed'}`);
77
+ if (!handlerResult.success) {
78
+ console.error(`[OGP] Handler error: ${handlerResult.error}`);
79
+ }
80
+ }
81
+ catch (error) {
82
+ console.error(`[OGP] Handler execution failed: ${error}`);
83
+ }
84
+ }
85
+ // 7. Standard intent handling: Notify OpenClaw
65
86
  const notificationText = formatNotification(message, peer.displayName);
66
87
  await notifyOpenClaw({
67
88
  text: notificationText,
@@ -76,7 +97,7 @@ export async function handleMessage(message, signature) {
76
97
  }
77
98
  }
78
99
  });
79
- // 7. Return success
100
+ // 8. Return success
80
101
  return {
81
102
  success: true,
82
103
  nonce: message.nonce,
@@ -152,8 +173,413 @@ function formatNotification(message, displayName) {
152
173
  return `[OGP] Task request from ${displayName}: ${payload.description}`;
153
174
  case 'status-update':
154
175
  return `[OGP] Status update from ${displayName}: ${payload.message || payload.status}`;
176
+ case 'project.join':
177
+ return `[OGP Project] ${displayName} wants to join project '${payload.projectName}' (${payload.projectId})`;
178
+ case 'project.contribute':
179
+ return `[OGP Project] ${displayName} contributed to project '${payload.projectId}' topic '${payload.topic}': ${payload.summary}`;
180
+ case 'project.query':
181
+ return `[OGP Project] ${displayName} queried project '${payload.projectId}'`;
182
+ case 'project.status':
183
+ return `[OGP Project] ${displayName} requested status for project '${payload.projectId}'`;
155
184
  default:
156
185
  return `[OGP] ${intent} from ${displayName}`;
157
186
  }
158
187
  }
188
+ /**
189
+ * Execute an intent handler script with the message data
190
+ */
191
+ async function executeIntentHandler(handlerPath, message, peerDisplayName) {
192
+ return new Promise((resolve) => {
193
+ // Check if handler script exists
194
+ if (!fs.existsSync(handlerPath)) {
195
+ resolve({ success: false, error: `Handler script not found: ${handlerPath}` });
196
+ return;
197
+ }
198
+ // Prepare environment variables for the script
199
+ const env = {
200
+ ...process.env,
201
+ OGP_INTENT: message.intent,
202
+ OGP_FROM: message.from,
203
+ OGP_TO: message.to,
204
+ OGP_NONCE: message.nonce,
205
+ OGP_TIMESTAMP: message.timestamp,
206
+ OGP_PAYLOAD: JSON.stringify(message.payload || {}),
207
+ OGP_PEER_NAME: peerDisplayName,
208
+ OGP_REPLY_TO: message.replyTo || '',
209
+ OGP_CONVERSATION_ID: message.conversationId || ''
210
+ };
211
+ const child = spawn(handlerPath, [], {
212
+ env,
213
+ stdio: ['pipe', 'pipe', 'pipe'],
214
+ timeout: 30000 // 30 second timeout
215
+ });
216
+ let stdout = '';
217
+ let stderr = '';
218
+ child.stdout?.on('data', (data) => {
219
+ stdout += data.toString();
220
+ });
221
+ child.stderr?.on('data', (data) => {
222
+ stderr += data.toString();
223
+ });
224
+ child.on('close', (code) => {
225
+ if (code === 0) {
226
+ resolve({ success: true, output: stdout.trim() });
227
+ }
228
+ else {
229
+ resolve({
230
+ success: false,
231
+ error: `Handler exited with code ${code}${stderr ? `: ${stderr.trim()}` : ''}`
232
+ });
233
+ }
234
+ });
235
+ child.on('error', (error) => {
236
+ resolve({ success: false, error: `Failed to execute handler: ${error.message}` });
237
+ });
238
+ // Send message data to handler via stdin
239
+ child.stdin?.write(JSON.stringify({
240
+ intent: message.intent,
241
+ from: message.from,
242
+ to: message.to,
243
+ nonce: message.nonce,
244
+ timestamp: message.timestamp,
245
+ payload: message.payload || {},
246
+ peerDisplayName,
247
+ replyTo: message.replyTo,
248
+ conversationId: message.conversationId
249
+ }));
250
+ child.stdin?.end();
251
+ });
252
+ }
253
+ /**
254
+ * Handle project.* intents with business logic
255
+ */
256
+ async function handleProjectIntent(message, displayName) {
257
+ const config = loadConfig();
258
+ if (!config) {
259
+ return {
260
+ success: false,
261
+ nonce: message.nonce,
262
+ error: 'Gateway not configured',
263
+ statusCode: 500
264
+ };
265
+ }
266
+ const payload = message.payload || {};
267
+ try {
268
+ switch (message.intent) {
269
+ case 'project.join':
270
+ return await handleProjectJoin(message, displayName, payload);
271
+ case 'project.contribute':
272
+ return await handleProjectContribute(message, displayName, payload);
273
+ case 'project.query':
274
+ return await handleProjectQuery(message, displayName, payload);
275
+ case 'project.status':
276
+ return await handleProjectStatus(message, displayName, payload);
277
+ default:
278
+ return {
279
+ success: false,
280
+ nonce: message.nonce,
281
+ error: `Unknown project intent: ${message.intent}`,
282
+ statusCode: 400
283
+ };
284
+ }
285
+ }
286
+ catch (error) {
287
+ console.error(`[OGP] Project intent error:`, error);
288
+ return {
289
+ success: false,
290
+ nonce: message.nonce,
291
+ error: 'Internal server error processing project intent',
292
+ statusCode: 500
293
+ };
294
+ }
295
+ }
296
+ /**
297
+ * Handle project.join intent
298
+ */
299
+ async function handleProjectJoin(message, displayName, payload) {
300
+ const { projectId, projectName, projectDescription } = payload;
301
+ if (!projectId || !projectName) {
302
+ return {
303
+ success: false,
304
+ nonce: message.nonce,
305
+ error: 'Missing required fields: projectId, projectName',
306
+ statusCode: 400
307
+ };
308
+ }
309
+ // Check if project exists locally
310
+ let project = getProject(projectId);
311
+ if (!project) {
312
+ // Create the project locally
313
+ project = createProject(projectId, projectName, projectDescription);
314
+ addProject(project);
315
+ console.log(`[OGP] Created project '${projectName}' (${projectId}) from peer ${message.from}`);
316
+ }
317
+ // Add the requesting peer as a member
318
+ const success = joinProject(projectId, message.from);
319
+ if (success) {
320
+ const notificationText = `[OGP Project] ${displayName} joined project '${projectName}' (${projectId})`;
321
+ await notifyOpenClaw({
322
+ text: notificationText,
323
+ metadata: {
324
+ ogp: {
325
+ from: message.from,
326
+ intent: 'project.join',
327
+ nonce: message.nonce,
328
+ projectId,
329
+ projectName,
330
+ payload: message.payload
331
+ }
332
+ }
333
+ });
334
+ return {
335
+ success: true,
336
+ nonce: message.nonce,
337
+ response: {
338
+ joined: true,
339
+ projectId,
340
+ projectName,
341
+ timestamp: new Date().toISOString()
342
+ }
343
+ };
344
+ }
345
+ else {
346
+ return {
347
+ success: false,
348
+ nonce: message.nonce,
349
+ error: 'Failed to join project',
350
+ statusCode: 500
351
+ };
352
+ }
353
+ }
354
+ /**
355
+ * Handle project.contribute intent
356
+ */
357
+ async function handleProjectContribute(message, displayName, payload) {
358
+ const { projectId, topic, summary, metadata } = payload;
359
+ if (!projectId || !topic || !summary) {
360
+ return {
361
+ success: false,
362
+ nonce: message.nonce,
363
+ error: 'Missing required fields: projectId, topic, summary',
364
+ statusCode: 400
365
+ };
366
+ }
367
+ // Check if project exists and peer is a member
368
+ const project = getProject(projectId);
369
+ if (!project) {
370
+ return {
371
+ success: false,
372
+ nonce: message.nonce,
373
+ error: `Project '${projectId}' not found`,
374
+ statusCode: 404
375
+ };
376
+ }
377
+ if (!isProjectMember(projectId, message.from)) {
378
+ return {
379
+ success: false,
380
+ nonce: message.nonce,
381
+ error: 'You are not a member of this project',
382
+ statusCode: 403
383
+ };
384
+ }
385
+ // Ensure topic exists
386
+ ensureProjectTopic(projectId, topic);
387
+ // Add the contribution
388
+ const contributionId = contributeToProject(projectId, topic, message.from, summary, metadata);
389
+ if (contributionId) {
390
+ const notificationText = `[OGP Project] ${displayName} contributed to '${project.name}' topic '${topic}': ${summary}`;
391
+ await notifyOpenClaw({
392
+ text: notificationText,
393
+ metadata: {
394
+ ogp: {
395
+ from: message.from,
396
+ intent: 'project.contribute',
397
+ nonce: message.nonce,
398
+ projectId,
399
+ topic,
400
+ summary,
401
+ contributionId,
402
+ payload: message.payload
403
+ }
404
+ }
405
+ });
406
+ return {
407
+ success: true,
408
+ nonce: message.nonce,
409
+ response: {
410
+ contributed: true,
411
+ projectId,
412
+ topic,
413
+ contributionId,
414
+ timestamp: new Date().toISOString()
415
+ }
416
+ };
417
+ }
418
+ else {
419
+ return {
420
+ success: false,
421
+ nonce: message.nonce,
422
+ error: 'Failed to add contribution',
423
+ statusCode: 500
424
+ };
425
+ }
426
+ }
427
+ /**
428
+ * Handle project.query intent
429
+ */
430
+ async function handleProjectQuery(message, displayName, payload) {
431
+ const { projectId, topic, authorId, limit = 20 } = payload;
432
+ if (!projectId) {
433
+ return {
434
+ success: false,
435
+ nonce: message.nonce,
436
+ error: 'Missing required field: projectId',
437
+ statusCode: 400
438
+ };
439
+ }
440
+ // Check if project exists and peer is a member
441
+ const project = getProject(projectId);
442
+ if (!project) {
443
+ return {
444
+ success: false,
445
+ nonce: message.nonce,
446
+ error: `Project '${projectId}' not found`,
447
+ statusCode: 404
448
+ };
449
+ }
450
+ if (!isProjectMember(projectId, message.from)) {
451
+ return {
452
+ success: false,
453
+ nonce: message.nonce,
454
+ error: 'You are not a member of this project',
455
+ statusCode: 403
456
+ };
457
+ }
458
+ // Get contributions based on query parameters
459
+ let contributions;
460
+ let queryDescription;
461
+ if (topic) {
462
+ contributions = getTopicContributions(projectId, topic, limit);
463
+ queryDescription = `topic '${topic}'`;
464
+ }
465
+ else if (authorId) {
466
+ contributions = getAuthorContributions(projectId, authorId, limit);
467
+ queryDescription = `author '${authorId}'`;
468
+ }
469
+ else {
470
+ // Get all recent contributions
471
+ contributions = [];
472
+ for (const projectTopic of project.topics) {
473
+ contributions.push(...projectTopic.contributions);
474
+ }
475
+ contributions.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
476
+ contributions = contributions.slice(0, limit);
477
+ queryDescription = 'all recent';
478
+ }
479
+ const notificationText = `[OGP Project] ${displayName} queried project '${project.name}' for ${queryDescription} contributions (${contributions.length} found)`;
480
+ await notifyOpenClaw({
481
+ text: notificationText,
482
+ metadata: {
483
+ ogp: {
484
+ from: message.from,
485
+ intent: 'project.query',
486
+ nonce: message.nonce,
487
+ projectId,
488
+ queryDescription,
489
+ resultCount: contributions.length,
490
+ payload: message.payload
491
+ }
492
+ }
493
+ });
494
+ return {
495
+ success: true,
496
+ nonce: message.nonce,
497
+ response: {
498
+ projectId,
499
+ projectName: project.name,
500
+ contributions: contributions.map(c => ({
501
+ id: c.id,
502
+ timestamp: c.timestamp,
503
+ authorId: c.authorId,
504
+ topic: c.topic,
505
+ summary: c.summary,
506
+ metadata: c.metadata
507
+ })),
508
+ timestamp: new Date().toISOString()
509
+ }
510
+ };
511
+ }
512
+ /**
513
+ * Handle project.status intent
514
+ */
515
+ async function handleProjectStatus(message, displayName, payload) {
516
+ const { projectId } = payload;
517
+ if (!projectId) {
518
+ return {
519
+ success: false,
520
+ nonce: message.nonce,
521
+ error: 'Missing required field: projectId',
522
+ statusCode: 400
523
+ };
524
+ }
525
+ // Check if project exists and peer is a member
526
+ const statusData = getProjectStatus(projectId);
527
+ if (!statusData) {
528
+ return {
529
+ success: false,
530
+ nonce: message.nonce,
531
+ error: `Project '${projectId}' not found`,
532
+ statusCode: 404
533
+ };
534
+ }
535
+ const { project } = statusData;
536
+ if (!isProjectMember(projectId, message.from)) {
537
+ return {
538
+ success: false,
539
+ nonce: message.nonce,
540
+ error: 'You are not a member of this project',
541
+ statusCode: 403
542
+ };
543
+ }
544
+ const notificationText = `[OGP Project] ${displayName} requested status for project '${project.name}' (${statusData.topics.length} topics)`;
545
+ await notifyOpenClaw({
546
+ text: notificationText,
547
+ metadata: {
548
+ ogp: {
549
+ from: message.from,
550
+ intent: 'project.status',
551
+ nonce: message.nonce,
552
+ projectId,
553
+ topicCount: statusData.topics.length,
554
+ payload: message.payload
555
+ }
556
+ }
557
+ });
558
+ return {
559
+ success: true,
560
+ nonce: message.nonce,
561
+ response: {
562
+ project: {
563
+ id: project.id,
564
+ name: project.name,
565
+ description: project.description,
566
+ members: project.members,
567
+ createdAt: project.createdAt,
568
+ updatedAt: project.updatedAt
569
+ },
570
+ topics: statusData.topics.map(topic => ({
571
+ name: topic.name,
572
+ description: topic.description,
573
+ contributionCount: topic.contributionCount,
574
+ contributors: topic.contributors,
575
+ lastContribution: topic.lastContribution ? {
576
+ timestamp: topic.lastContribution.timestamp,
577
+ authorId: topic.lastContribution.authorId,
578
+ summary: topic.lastContribution.summary
579
+ } : null
580
+ })),
581
+ timestamp: new Date().toISOString()
582
+ }
583
+ };
584
+ }
159
585
  //# sourceMappingURL=message-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ export interface ProjectContribution {
2
+ id: string;
3
+ timestamp: string;
4
+ authorId: string;
5
+ topic: string;
6
+ summary: string;
7
+ metadata?: Record<string, any>;
8
+ }
9
+ export interface ProjectTopic {
10
+ name: string;
11
+ description?: string;
12
+ contributions: ProjectContribution[];
13
+ lastUpdated: string;
14
+ }
15
+ export interface Project {
16
+ id: string;
17
+ name: string;
18
+ description?: string;
19
+ createdAt: string;
20
+ updatedAt: string;
21
+ members: string[];
22
+ topics: ProjectTopic[];
23
+ metadata?: Record<string, any>;
24
+ }
25
+ export declare function loadProjects(): Project[];
26
+ export declare function saveProjects(projects: Project[]): void;
27
+ export declare function createProject(id: string, name: string, description?: string, metadata?: Record<string, any>): Project;
28
+ export declare function addProject(project: Project): void;
29
+ export declare function getProject(projectId: string): Project | null;
30
+ export declare function listProjects(): Project[];
31
+ export declare function deleteProject(projectId: string): boolean;
32
+ /**
33
+ * Join a project (add peer as member if not already present)
34
+ */
35
+ export declare function joinProject(projectId: string, peerId: string): boolean;
36
+ /**
37
+ * Leave a project (remove peer from members)
38
+ */
39
+ export declare function leaveProject(projectId: string, peerId: string): boolean;
40
+ /**
41
+ * Check if a peer is a member of a project
42
+ */
43
+ export declare function isProjectMember(projectId: string, peerId: string): boolean;
44
+ /**
45
+ * Add or update a topic in a project
46
+ */
47
+ export declare function ensureProjectTopic(projectId: string, topicName: string, description?: string): boolean;
48
+ /**
49
+ * Add a contribution to a project topic
50
+ */
51
+ export declare function contributeToProject(projectId: string, topicName: string, authorId: string, summary: string, metadata?: Record<string, any>): string | null;
52
+ /**
53
+ * Get contributions for a specific topic across all projects
54
+ */
55
+ export declare function getTopicContributions(projectId: string, topicName: string, limit?: number): ProjectContribution[];
56
+ /**
57
+ * Get all contributions from a specific author in a project
58
+ */
59
+ export declare function getAuthorContributions(projectId: string, authorId: string, limit?: number): ProjectContribution[];
60
+ /**
61
+ * Search contributions by content (simple text search)
62
+ */
63
+ export declare function searchContributions(projectId: string, query: string, limit?: number): ProjectContribution[];
64
+ /**
65
+ * Get project status summary (topics with recent activity)
66
+ */
67
+ export declare function getProjectStatus(projectId: string): {
68
+ project: any;
69
+ topics: Array<{
70
+ name: string;
71
+ description?: string;
72
+ contributionCount: number;
73
+ lastContribution?: any;
74
+ contributors: string[];
75
+ }>;
76
+ } | null;
77
+ /**
78
+ * Update project metadata
79
+ */
80
+ export declare function updateProject(projectId: string, updates: Partial<Omit<Project, 'id' | 'createdAt' | 'updatedAt'>>): boolean;
81
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/daemon/projects.ts"],"names":[],"mappings":"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"}