@dp-pcs/ogp 0.3.2 → 0.4.2

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.
Files changed (95) hide show
  1. package/README.md +275 -49
  2. package/dist/cli/completion.d.ts +5 -0
  3. package/dist/cli/completion.d.ts.map +1 -0
  4. package/dist/cli/completion.js +148 -0
  5. package/dist/cli/completion.js.map +1 -0
  6. package/dist/cli/config.d.ts +3 -0
  7. package/dist/cli/config.d.ts.map +1 -0
  8. package/dist/cli/config.js +207 -0
  9. package/dist/cli/config.js.map +1 -0
  10. package/dist/cli/expose.d.ts.map +1 -1
  11. package/dist/cli/expose.js +20 -13
  12. package/dist/cli/expose.js.map +1 -1
  13. package/dist/cli/federation.d.ts.map +1 -1
  14. package/dist/cli/federation.js +252 -9
  15. package/dist/cli/federation.js.map +1 -1
  16. package/dist/cli/setup.d.ts +19 -0
  17. package/dist/cli/setup.d.ts.map +1 -1
  18. package/dist/cli/setup.js +507 -32
  19. package/dist/cli/setup.js.map +1 -1
  20. package/dist/cli.js +348 -32
  21. package/dist/cli.js.map +1 -1
  22. package/dist/daemon/agent-comms.d.ts.map +1 -1
  23. package/dist/daemon/agent-comms.js +14 -9
  24. package/dist/daemon/agent-comms.js.map +1 -1
  25. package/dist/daemon/intent-registry.d.ts.map +1 -1
  26. package/dist/daemon/intent-registry.js +7 -4
  27. package/dist/daemon/intent-registry.js.map +1 -1
  28. package/dist/daemon/keypair.d.ts.map +1 -1
  29. package/dist/daemon/keypair.js +34 -13
  30. package/dist/daemon/keypair.js.map +1 -1
  31. package/dist/daemon/message-handler.d.ts.map +1 -1
  32. package/dist/daemon/message-handler.js +7 -0
  33. package/dist/daemon/message-handler.js.map +1 -1
  34. package/dist/daemon/notify.d.ts +19 -0
  35. package/dist/daemon/notify.d.ts.map +1 -1
  36. package/dist/daemon/notify.js +329 -73
  37. package/dist/daemon/notify.js.map +1 -1
  38. package/dist/daemon/openclaw-bridge.d.ts +34 -0
  39. package/dist/daemon/openclaw-bridge.d.ts.map +1 -0
  40. package/dist/daemon/openclaw-bridge.js +261 -0
  41. package/dist/daemon/openclaw-bridge.js.map +1 -0
  42. package/dist/daemon/peers.d.ts +8 -0
  43. package/dist/daemon/peers.d.ts.map +1 -1
  44. package/dist/daemon/peers.js +48 -14
  45. package/dist/daemon/peers.js.map +1 -1
  46. package/dist/daemon/projects.d.ts.map +1 -1
  47. package/dist/daemon/projects.js +7 -4
  48. package/dist/daemon/projects.js.map +1 -1
  49. package/dist/daemon/server.d.ts +16 -0
  50. package/dist/daemon/server.d.ts.map +1 -1
  51. package/dist/daemon/server.js +147 -46
  52. package/dist/daemon/server.js.map +1 -1
  53. package/dist/shared/config.d.ts +52 -1
  54. package/dist/shared/config.d.ts.map +1 -1
  55. package/dist/shared/config.js +18 -11
  56. package/dist/shared/config.js.map +1 -1
  57. package/dist/shared/framework-detection.d.ts +31 -0
  58. package/dist/shared/framework-detection.d.ts.map +1 -0
  59. package/dist/shared/framework-detection.js +91 -0
  60. package/dist/shared/framework-detection.js.map +1 -0
  61. package/dist/shared/help.d.ts +5 -0
  62. package/dist/shared/help.d.ts.map +1 -0
  63. package/dist/shared/help.js +280 -0
  64. package/dist/shared/help.js.map +1 -0
  65. package/dist/shared/meta-config.d.ts +44 -0
  66. package/dist/shared/meta-config.d.ts.map +1 -0
  67. package/dist/shared/meta-config.js +89 -0
  68. package/dist/shared/meta-config.js.map +1 -0
  69. package/dist/shared/migration.d.ts +57 -0
  70. package/dist/shared/migration.d.ts.map +1 -0
  71. package/dist/shared/migration.js +255 -0
  72. package/dist/shared/migration.js.map +1 -0
  73. package/docs/CLI-REFERENCE.md +1360 -0
  74. package/docs/GETTING-STARTED.md +942 -0
  75. package/docs/MIGRATION.md +202 -0
  76. package/docs/MULTI-FRAMEWORK-DEMO.md +352 -0
  77. package/docs/MULTI-FRAMEWORK-DESIGN.md +378 -0
  78. package/docs/MULTI-FRAMEWORK-IMPL.md +197 -0
  79. package/docs/case-studies/CRASH_RESOLUTION_20260407.md +190 -0
  80. package/docs/case-studies/OpenClaw_Hermes_Status_Report_20260407.md +142 -0
  81. package/docs/case-studies/OpenClaw_Stability_Fix_Summary.md +209 -0
  82. package/docs/case-studies/README.md +40 -0
  83. package/docs/case-studies/crash_observations.md +250 -0
  84. package/docs/federation-flow.md +21 -31
  85. package/docs/hermes-implementation-checklist.md +4 -0
  86. package/docs/rendezvous.md +13 -14
  87. package/package.json +9 -3
  88. package/scripts/completion.bash +123 -0
  89. package/scripts/completion.zsh +372 -0
  90. package/scripts/test-migration-execute.js +74 -0
  91. package/scripts/test-migration.js +42 -0
  92. package/skills/ogp/SKILL.md +197 -64
  93. package/skills/ogp-agent-comms/SKILL.md +107 -41
  94. package/skills/ogp-expose/SKILL.md +84 -21
  95. package/skills/ogp-project/SKILL.md +66 -58
@@ -1,5 +1,6 @@
1
1
  import { requireConfig } from '../shared/config.js';
2
2
  import crypto from 'node:crypto';
3
+ import { dispatchAgentHook, injectMessage } from './openclaw-bridge.js';
3
4
  /**
4
5
  * Resolve the notification target for a given agent.
5
6
  * Priority:
@@ -15,88 +16,324 @@ function resolveNotifyTarget(config, agent) {
15
16
  // Fall back to legacy notifyTarget
16
17
  return config.notifyTarget;
17
18
  }
19
+ function resolveHumanDeliveryTarget(config, agent) {
20
+ return config.humanDeliveryTarget || resolveNotifyTarget(config, agent);
21
+ }
22
+ function resolveInternalOpenClawSessionKey(config) {
23
+ const agentId = config.agentId || 'main';
24
+ return `agent:${agentId}:main`;
25
+ }
26
+ function targetToSessionKey(target, agentId) {
27
+ if (target.startsWith('agent:')) {
28
+ return target;
29
+ }
30
+ if (target.startsWith('session:')) {
31
+ return target.slice('session:'.length);
32
+ }
33
+ if (target.startsWith('telegram:')) {
34
+ const chatId = target.replace('telegram:', '');
35
+ return `agent:${agentId}:telegram:direct:${chatId}`;
36
+ }
37
+ return `agent:${agentId}:main`;
38
+ }
39
+ function resolveOpenClawSessionKey(config, agent) {
40
+ const agentId = config.agentId || 'main';
41
+ const target = resolveHumanDeliveryTarget(config, agent);
42
+ if (target) {
43
+ return targetToSessionKey(target, agentId);
44
+ }
45
+ return `agent:${agentId}:main`;
46
+ }
47
+ function resolveOpenClawDeliveryTarget(config, agent) {
48
+ const target = resolveHumanDeliveryTarget(config, agent);
49
+ if (!target) {
50
+ return undefined;
51
+ }
52
+ if (target.startsWith('telegram:')) {
53
+ return {
54
+ channel: 'telegram',
55
+ to: target.replace('telegram:', '')
56
+ };
57
+ }
58
+ const parts = target.split(':').filter(Boolean);
59
+ if (parts[0] !== 'agent') {
60
+ return undefined;
61
+ }
62
+ if (parts.length >= 5 && parts[2] === 'telegram' && parts[3] === 'direct') {
63
+ return {
64
+ channel: 'telegram',
65
+ to: parts[4]
66
+ };
67
+ }
68
+ if (parts.length >= 6 && parts[2] === 'telegram' && parts[4] === 'direct') {
69
+ return {
70
+ channel: 'telegram',
71
+ to: parts[5]
72
+ };
73
+ }
74
+ return undefined;
75
+ }
76
+ function getInboundFederationMode(config) {
77
+ return config.inboundFederationPolicy?.mode;
78
+ }
79
+ function getPayloadMetadata(payload) {
80
+ return payload.metadata ?? {};
81
+ }
82
+ function getOgpMetadata(payload) {
83
+ const metadata = getPayloadMetadata(payload);
84
+ return metadata.ogp ?? {};
85
+ }
86
+ function resolvePayloadIntent(payload) {
87
+ return payload.intent || getOgpMetadata(payload).intent;
88
+ }
89
+ function resolvePayloadTopic(payload) {
90
+ return payload.topic || getOgpMetadata(payload).topic;
91
+ }
92
+ function resolvePayloadPeerId(payload) {
93
+ const ogp = getOgpMetadata(payload);
94
+ return payload.peerId || ogp.from || ogp.peer?.id;
95
+ }
96
+ function resolvePayloadPeerDisplayName(payload) {
97
+ const ogp = getOgpMetadata(payload);
98
+ return payload.peerDisplayName || ogp.peer?.displayName;
99
+ }
100
+ function mergeRule(target, rule) {
101
+ if (!rule) {
102
+ return;
103
+ }
104
+ if (rule.mode !== undefined) {
105
+ target.mode = rule.mode;
106
+ }
107
+ if (rule.relayMode !== undefined) {
108
+ target.relayMode = rule.relayMode;
109
+ }
110
+ if (rule.surfaceToHuman !== undefined) {
111
+ target.surfaceToHuman = rule.surfaceToHuman;
112
+ }
113
+ if (rule.allowDirectPeerReply !== undefined) {
114
+ target.allowDirectPeerReply = rule.allowDirectPeerReply;
115
+ }
116
+ }
117
+ function applyDelegatedAuthorityPrecedence(accumulated, config, messageClass, topic, peerId) {
118
+ const legacyMode = getInboundFederationMode(config);
119
+ if (legacyMode) {
120
+ accumulated.mode = legacyMode;
121
+ }
122
+ const delegatedAuthority = config.delegatedAuthority;
123
+ if (!delegatedAuthority) {
124
+ return;
125
+ }
126
+ const peerScope = peerId ? delegatedAuthority.peers?.[peerId] : undefined;
127
+ // Deterministic precedence contract:
128
+ // 1. Legacy coarse mode as baseline fallback
129
+ // 2. Default rules: global, then peer
130
+ // 3. Message-class rules: global, then peer
131
+ // 4. Topic rules: global, then peer
132
+ //
133
+ // This prevents peer defaults from accidentally erasing a more specific
134
+ // global class rule such as "human-relay must not allow direct peer reply."
135
+ mergeRule(accumulated, delegatedAuthority.global.defaultRule);
136
+ mergeRule(accumulated, peerScope?.defaultRule);
137
+ mergeRule(accumulated, delegatedAuthority.global.classRules?.[messageClass]);
138
+ mergeRule(accumulated, peerScope?.classRules?.[messageClass]);
139
+ if (topic) {
140
+ mergeRule(accumulated, delegatedAuthority.global.topicRules?.[topic]);
141
+ mergeRule(accumulated, peerScope?.topicRules?.[topic]);
142
+ }
143
+ }
144
+ export function classifyFederatedMessage(payload) {
145
+ if (payload.messageClass) {
146
+ return payload.messageClass;
147
+ }
148
+ const ogp = getOgpMetadata(payload);
149
+ const intent = resolvePayloadIntent(payload);
150
+ if (ogp.messageClass) {
151
+ return ogp.messageClass;
152
+ }
153
+ switch (ogp.type) {
154
+ case 'federation_request':
155
+ case 'approval_request':
156
+ return 'approval-request';
157
+ case 'federation_removed':
158
+ return 'status-update';
159
+ }
160
+ if (ogp.requestedHumanRelay === true) {
161
+ return 'human-relay';
162
+ }
163
+ if (intent === 'status-update') {
164
+ return 'status-update';
165
+ }
166
+ if (intent === 'agent-comms') {
167
+ return 'agent-work';
168
+ }
169
+ return 'agent-work';
170
+ }
171
+ function defaultRelayModeForMode(mode) {
172
+ switch (mode) {
173
+ case 'approval-required':
174
+ return 'approval-required';
175
+ case 'summarize':
176
+ return 'summarize';
177
+ case 'forward':
178
+ case 'autonomous':
179
+ default:
180
+ return 'deliver';
181
+ }
182
+ }
183
+ function defaultSurfaceToHumanForMode(mode) {
184
+ switch (mode) {
185
+ case 'forward':
186
+ return 'always';
187
+ case 'autonomous':
188
+ return 'important-only';
189
+ case 'approval-required':
190
+ return 'always';
191
+ case 'summarize':
192
+ default:
193
+ return 'summary-only';
194
+ }
195
+ }
196
+ export function resolveFederatedHandlingPolicy(config, payload) {
197
+ const messageClass = classifyFederatedMessage(payload);
198
+ const topic = resolvePayloadTopic(payload);
199
+ const peerId = resolvePayloadPeerId(payload);
200
+ const accumulated = {};
201
+ applyDelegatedAuthorityPrecedence(accumulated, config, messageClass, topic, peerId);
202
+ if (messageClass === 'approval-request') {
203
+ return {
204
+ messageClass,
205
+ topic,
206
+ mode: accumulated.mode ?? 'approval-required',
207
+ relayMode: accumulated.relayMode ?? 'approval-required',
208
+ surfaceToHuman: accumulated.surfaceToHuman ?? 'always',
209
+ allowDirectPeerReply: accumulated.allowDirectPeerReply ?? false
210
+ };
211
+ }
212
+ const mode = accumulated.mode ?? 'summarize';
213
+ const relayMode = accumulated.relayMode ?? (messageClass === 'human-relay'
214
+ ? defaultRelayModeForMode(mode)
215
+ : defaultRelayModeForMode(mode));
216
+ const surfaceToHuman = accumulated.surfaceToHuman ?? (messageClass === 'human-relay' && relayMode === 'deliver'
217
+ ? 'always'
218
+ : messageClass === 'status-update'
219
+ ? 'summary-only'
220
+ : defaultSurfaceToHumanForMode(mode));
221
+ const allowDirectPeerReply = accumulated.allowDirectPeerReply ?? (messageClass === 'agent-work' && mode !== 'approval-required');
222
+ return {
223
+ messageClass,
224
+ topic,
225
+ mode,
226
+ relayMode,
227
+ surfaceToHuman,
228
+ allowDirectPeerReply
229
+ };
230
+ }
231
+ function shouldDeliverToHuman(policy) {
232
+ if (policy.messageClass === 'approval-request') {
233
+ return true;
234
+ }
235
+ return policy.surfaceToHuman !== 'never';
236
+ }
237
+ export function formatHandlingGuidance(config, payload) {
238
+ const policy = resolveFederatedHandlingPolicy(config, payload);
239
+ const target = resolveHumanDeliveryTarget(config);
240
+ const targetNote = target ? `Configured human delivery target: ${target}.` : '';
241
+ switch (policy.messageClass) {
242
+ case 'approval-request':
243
+ return `Message class: approval-request. Human preference: hold action and peer replies until the human explicitly approves. Surface this request to the human now. ${targetNote}`.trim();
244
+ case 'human-relay':
245
+ switch (policy.relayMode) {
246
+ case 'summarize':
247
+ return `Message class: human-relay. Human preference: summarize the requested relay for the human instead of claiming verbatim delivery. Do not tell the peer the human was notified unless that actually happened. ${targetNote}`.trim();
248
+ case 'approval-required':
249
+ return `Message class: human-relay. Human preference: hold this relay for approval before treating it as delivered. Do not claim delivery to the peer until the human approves and the delivery actually happens. ${targetNote}`.trim();
250
+ case 'deliver':
251
+ default:
252
+ return `Message class: human-relay. Human preference: treat this as a delivery obligation to the configured human channel. Do not claim delivery to the peer unless you actually deliver it there. ${targetNote}`.trim();
253
+ }
254
+ case 'status-update':
255
+ return `Message class: status-update. Human preference: keep this lightweight and summarize it unless it becomes urgent or approval-related. ${targetNote}`.trim();
256
+ }
257
+ switch (policy.mode) {
258
+ case 'forward':
259
+ return `Human preference: proactively forward inbound federated items to the configured human channel. Do not claim delivery unless you actually send it there. ${targetNote}`.trim();
260
+ case 'summarize':
261
+ return `Human preference: summarize inbound federated items and surface only action requests, uncertainty, or important updates. Do not assume that mentioning it in a different channel counts as delivery. ${targetNote}`.trim();
262
+ case 'autonomous':
263
+ return `Human preference: act autonomously when possible, but if a peer explicitly asks you to tell the human something, treat that as a delivery obligation to the configured human channel. ${targetNote}`.trim();
264
+ case 'approval-required':
265
+ return `Human preference: do not act on or reply to federated requests until the human explicitly approves. ${targetNote}`.trim();
266
+ default:
267
+ return '';
268
+ }
269
+ }
18
270
  /**
19
271
  * OpenClaw notification backend.
20
- * Uses the existing OpenClaw webhook and CLI integration.
272
+ * Uses the OpenClaw gateway RPC to deliver messages into the correct session.
21
273
  */
22
274
  class OpenClawBackend {
23
275
  name = 'openclaw';
24
276
  async notify(payload, config) {
25
- // Method 1: POST /hooks/agent
26
- const hooksToken = config.openclawHooksToken;
27
- if (hooksToken && config.openclawUrl) {
28
- const openclawUrl = config.openclawUrl.replace(/\/$/, '');
29
- try {
30
- const result = await new Promise((resolve) => {
31
- import('node:https').then(({ request: httpsRequest }) => {
32
- import('node:http').then(({ request: httpRequest }) => {
33
- import('node:url').then(({ URL }) => {
34
- const url = new URL(`${openclawUrl}/hooks/agent`);
35
- const isHttps = url.protocol === 'https:';
36
- const target = resolveNotifyTarget(config, payload.agent);
37
- const hookPayload = {
38
- agentId: payload.agent || config.agentId || 'default',
39
- peerId: payload.peerId || payload.metadata?.ogp?.from || 'unknown',
40
- intent: payload.intent || payload.metadata?.ogp?.intent || 'unknown',
41
- topic: payload.topic || payload.metadata?.ogp?.topic || 'general',
42
- message: payload.text,
43
- notifyTarget: target || config.notifyTarget || null,
44
- timestamp: new Date().toISOString(),
45
- // Legacy fields for backward compatibility
46
- name: 'OGP',
47
- deliver: true,
48
- channel: config.notifyChannel || 'last',
49
- ...(target ? { to: target } : {}),
50
- };
51
- const body = JSON.stringify(hookPayload);
52
- const reqFn = isHttps ? httpsRequest : httpRequest;
53
- const req = reqFn({
54
- hostname: url.hostname,
55
- port: url.port || (isHttps ? 443 : 80),
56
- path: url.pathname,
57
- method: 'POST',
58
- rejectUnauthorized: false,
59
- headers: {
60
- 'Content-Type': 'application/json',
61
- 'Authorization': `Bearer ${hooksToken}`,
62
- 'Content-Length': Buffer.byteLength(body),
63
- },
64
- }, (res) => {
65
- resolve(res.statusCode !== undefined && res.statusCode >= 200 && res.statusCode < 300);
66
- });
67
- req.on('error', () => resolve(false));
68
- req.setTimeout(5000, () => { req.destroy(); resolve(false); });
69
- req.write(body);
70
- req.end();
71
- });
72
- });
73
- });
74
- });
75
- if (result) {
76
- console.log('[OGP] Notified OpenClaw via /hooks/agent:', payload.text);
277
+ const peerName = resolvePayloadPeerDisplayName(payload) || resolvePayloadPeerId(payload) || 'unknown peer';
278
+ const intent = resolvePayloadIntent(payload) || 'message';
279
+ const topic = resolvePayloadTopic(payload) || 'general';
280
+ const handlingGuidance = formatHandlingGuidance(config, payload);
281
+ const policy = resolveFederatedHandlingPolicy(config, payload);
282
+ const deliverToHuman = shouldDeliverToHuman(policy);
283
+ const taskText = `Federated message from ${peerName} (${intent}/${topic}).
284
+
285
+ Message:
286
+ ${payload.text}${handlingGuidance ? `\n\n[OGP Handling Policy]\n${handlingGuidance}` : ''}`;
287
+ const sessionMessageText = `[OGP Federation] From ${peerName} (${intent}/${topic}):\n${payload.text}${handlingGuidance ? `\n\n[OGP Handling Policy]\n${handlingGuidance}` : ''}`;
288
+ try {
289
+ const deliveryTarget = deliverToHuman
290
+ ? resolveOpenClawDeliveryTarget(config, payload.agent)
291
+ : undefined;
292
+ const deliverySessionKey = deliverToHuman
293
+ ? resolveOpenClawSessionKey(config, payload.agent)
294
+ : resolveInternalOpenClawSessionKey(config);
295
+ const hookDelivered = await dispatchAgentHook(taskText, peerName, {
296
+ deliver: deliverToHuman,
297
+ target: deliveryTarget,
298
+ sessionKey: deliverySessionKey
299
+ });
300
+ if (hookDelivered) {
301
+ if (!deliverToHuman) {
302
+ console.log('[OGP] Message delivered to OpenClaw via /hooks/agent without proactive human delivery for peer:', peerName);
77
303
  return true;
78
304
  }
79
- console.warn('[OGP] /hooks/agent call failed (non-2xx or error), falling back');
305
+ const sessionKey = resolveOpenClawSessionKey(config, payload.agent);
306
+ const syncNote = `[OGP Internal Sync]
307
+ A federated request from ${peerName} (${intent}/${topic}) was handled via /hooks/agent and delivered to the configured human channel.
308
+
309
+ Do not treat this as a new pending delivery obligation unless the human asks you to revisit it.
310
+
311
+ Handled message summary:
312
+ ${payload.text}`;
313
+ const synced = await injectMessage(sessionKey, syncNote, peerName);
314
+ if (!synced) {
315
+ console.warn('[OGP] Hook delivery succeeded, but DM-session sync note failed for peer:', peerName);
316
+ }
317
+ console.log('[OGP] Message delivered to OpenClaw via /hooks/agent for peer:', peerName);
318
+ return true;
80
319
  }
81
- catch (error) {
82
- console.error('[OGP] /hooks/agent failed:', error);
320
+ const sessionKey = deliverToHuman
321
+ ? resolveOpenClawSessionKey(config, payload.agent)
322
+ : resolveInternalOpenClawSessionKey(config);
323
+ const result = await injectMessage(sessionKey, sessionMessageText, peerName);
324
+ if (result) {
325
+ console.log('[OGP] Message delivered to OpenClaw session fallback for peer:', peerName);
326
+ return true;
327
+ }
328
+ else {
329
+ console.error('[OGP] OpenClaw notification delivery failed');
330
+ return false;
83
331
  }
84
- }
85
- // Method 2: openclaw system event --mode now (CLI fallback)
86
- try {
87
- const { execSync } = await import('node:child_process');
88
- const escaped = payload.text.replace(/'/g, "'\\''");
89
- execSync(`openclaw system event --text '${escaped}' --mode now 2>/dev/null`, {
90
- timeout: 5000,
91
- env: { ...process.env }
92
- });
93
- console.log('[OGP] Notified OpenClaw via system event CLI:', payload.text);
94
- return true;
95
332
  }
96
333
  catch (err) {
97
- console.error('[OGP] System event CLI failed:', err);
334
+ console.error('[OGP] Message injection failed:', err);
335
+ return false;
98
336
  }
99
- return false;
100
337
  }
101
338
  }
102
339
  /**
@@ -106,6 +343,7 @@ class OpenClawBackend {
106
343
  class HermesBackend {
107
344
  name = 'hermes';
108
345
  async notify(payload, config) {
346
+ const policy = resolveFederatedHandlingPolicy(config, payload);
109
347
  const webhookUrl = config.hermesWebhookUrl || 'http://localhost:8644/webhooks/ogp_federation';
110
348
  const secret = config.hermesWebhookSecret;
111
349
  if (!secret) {
@@ -114,16 +352,21 @@ class HermesBackend {
114
352
  }
115
353
  // Build webhook payload
116
354
  // Note: event_type is required by Hermes webhook event filter ("events" subscription list)
117
- const intentStr = payload.intent || 'message';
355
+ const intentStr = resolvePayloadIntent(payload) || 'message';
118
356
  const body = {
119
357
  event_type: intentStr, // required for Hermes event filter ("*" is not a wildcard there)
120
- peer_id: payload.peerId || 'unknown',
121
- peer_display_name: payload.peerDisplayName || payload.peerId || 'Unknown Peer',
358
+ peer_id: resolvePayloadPeerId(payload) || 'unknown',
359
+ peer_display_name: resolvePayloadPeerDisplayName(payload) || resolvePayloadPeerId(payload) || 'Unknown Peer',
122
360
  intent: intentStr,
123
- topic: payload.topic || 'general',
361
+ topic: resolvePayloadTopic(payload) || 'general',
124
362
  message: payload.text,
125
363
  priority: payload.priority || 'normal',
126
364
  conversation_id: payload.conversationId,
365
+ human_delivery_target: resolveHumanDeliveryTarget(config, payload.agent),
366
+ handling_mode: policy.mode,
367
+ message_class: classifyFederatedMessage(payload),
368
+ human_surfacing_mode: policy.surfaceToHuman,
369
+ relay_mode: policy.relayMode,
127
370
  timestamp: new Date().toISOString(),
128
371
  payload: payload.metadata || {}
129
372
  };
@@ -215,4 +458,17 @@ export async function notifyLocalAgent(payload) {
215
458
  const backend = getNotificationBackend(config);
216
459
  return backend.notify(payload, config);
217
460
  }
461
+ /**
462
+ * Inject plain text into the local OpenClaw session without wrapping it as an
463
+ * inbound federation message. This is used to mirror local outbound actions
464
+ * into the agent's visible conversation state.
465
+ */
466
+ export async function deliverLocalSessionText(text, agent) {
467
+ const config = requireConfig();
468
+ if ((config.platform || 'openclaw') !== 'openclaw') {
469
+ return false;
470
+ }
471
+ const sessionKey = resolveOpenClawSessionKey(config, agent);
472
+ return injectMessage(sessionKey, text);
473
+ }
218
474
  //# sourceMappingURL=notify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
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
+ type DeliveryTarget = {
10
+ channel?: string;
11
+ to?: string;
12
+ };
13
+ type HookDispatchOptions = {
14
+ deliver?: boolean;
15
+ target?: DeliveryTarget;
16
+ sessionKey?: string;
17
+ };
18
+ /**
19
+ * Connect bridge (no-op for request-based implementation)
20
+ */
21
+ export declare function connectBridge(): void;
22
+ export declare function dispatchAgentHook(message: string, from: string, options?: HookDispatchOptions): Promise<boolean>;
23
+ /**
24
+ * Inject a message into an OpenClaw session using the gateway RPC.
25
+ * Note: OpenClaw currently renders these messages with sender "cli", so OGP must
26
+ * include peer identity in the message content itself.
27
+ */
28
+ export declare function injectMessage(sessionKey: string, message: string, from?: string): Promise<boolean>;
29
+ /**
30
+ * Disconnect bridge (no-op for request-based implementation)
31
+ */
32
+ export declare function disconnectBridge(): void;
33
+ export {};
34
+ //# sourceMappingURL=openclaw-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-bridge.d.ts","sourceRoot":"","sources":["../../src/daemon/openclaw-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAyNF;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}