@dp-pcs/ogp 0.3.3 → 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 +182 -6
  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,6 +1,6 @@
1
1
  ---
2
2
  skill_name: ogp-project
3
- version: 2.0.0
3
+ version: 2.1.0
4
4
  description: >
5
5
  Tool-agnostic project collaboration for AI assistants. Users keep their own tools
6
6
  (Linear, Jira, Obsidian, GitHub, iCloud, local files — anything). This skill makes
@@ -20,9 +20,13 @@ requires:
20
20
  bins:
21
21
  - ogp
22
22
  state_paths:
23
+ - ~/.ogp-meta/config.json
23
24
  - ~/.ogp/config.json
24
25
  - ~/.ogp/projects.json
25
26
  - ~/.ogp/peers.json
27
+ - ~/.ogp-hermes/config.json
28
+ - ~/.ogp-hermes/projects.json
29
+ - ~/.ogp-hermes/peers.json
26
30
  install: npm install -g @dp-pcs/ogp
27
31
  docs: https://github.com/dp-pcs/ogp
28
32
  ---
@@ -35,6 +39,7 @@ The OGP daemon must be installed and configured. If you see errors like 'ogp: co
35
39
  npm install -g @dp-pcs/ogp
36
40
  ogp-install-skills
37
41
  ogp setup
42
+ ogp config show
38
43
  ogp start
39
44
  ```
40
45
 
@@ -42,6 +47,8 @@ ogp start
42
47
 
43
48
  **Note on Multi-Agent Routing (OGP 0.2.28+):** When `notifyTargets` is configured in `~/.ogp/config.json`, project-related federation messages can be routed to specific agents. Each agent can have its own project context and policies.
44
49
 
50
+ **Note on Multi-Framework Mode:** Projects are framework-local. Use `ogp --for openclaw ...` or `ogp --for hermes ...` consistently so you query and log to the intended state directory.
51
+
45
52
  Full documentation: https://github.com/dp-pcs/ogp
46
53
 
47
54
 
@@ -108,16 +115,16 @@ Whenever the user expresses intent to start work on something project-related, r
108
115
  ### Step 1: Check local project state
109
116
  ```bash
110
117
  # Quick scan of recent activity
111
- ogp project query <project-id> --limit 20
118
+ ogp --for openclaw project query <project-id> --limit 20
112
119
 
113
120
  # Check for anything on this specific topic
114
- ogp project query <project-id> --search "<keywords from user's intent>"
121
+ ogp --for openclaw project query <project-id> --search "<keywords from user's intent>"
115
122
  ```
116
123
 
117
124
  ### Step 2: Query peer agents
118
125
  ```bash
119
126
  # For each approved peer in the project, ask if they know anything relevant
120
- ogp federation agent <peer-id> <project-id> "My user is about to start working on <what they said>. Anything I should know before we begin?"
127
+ ogp --for openclaw federation agent <peer-id> <project-id> "My user is about to start working on <what they said>. Anything I should know before we begin?"
121
128
  ```
122
129
 
123
130
  ### Step 3: Surface findings
@@ -135,7 +142,7 @@ ogp federation agent <peer-id> <project-id> "My user is about to start working o
135
142
  User: "Let's start working on the companion app"
136
143
 
137
144
  Agent (internally):
138
- 1. ogp project query my-project --search "companion app"
145
+ 1. ogp --for openclaw project query my-project --search "companion app"
139
146
  → Found: "User B flagged companion app as out of scope in v1" (decision, 3 days ago)
140
147
 
141
148
  Agent (to user): "Before you dive in — there's a note in the project from 3 days ago:
@@ -147,8 +154,8 @@ Want to check with them first, or are you overriding that?"
147
154
  User: "Let's start working on the companion app"
148
155
 
149
156
  Agent (internally):
150
- 1. ogp project query my-project --search "companion app" → nothing found
151
- 2. ogp federation agent peer-b my-project "My user is about to start on the companion app. Anything I should know?"
157
+ 1. ogp --for openclaw project query my-project --search "companion app" → nothing found
158
+ 2. ogp --for openclaw federation agent peer-b my-project "My user is about to start on the companion app. Anything I should know?"
152
159
  → Peer agent responds: "No conflicts. Bob hasn't touched that area."
153
160
 
154
161
  Agent: [starts working — no announcement needed]
@@ -170,16 +177,16 @@ When your agent queries a peer agent, the peer agent responds according to its o
170
177
  **Configuring your own response policy** (how YOUR agent handles incoming queries):
171
178
  ```bash
172
179
  # See current policies
173
- ogp agent-comms policies
180
+ ogp --for openclaw agent-comms policies
174
181
 
175
182
  # Auto-answer project queries (full detail)
176
- ogp agent-comms add-topic <peer-id> <project-id> --level full
183
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level full
177
184
 
178
185
  # Escalate to human before answering
179
- ogp agent-comms add-topic <peer-id> <project-id> --level escalate
186
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level escalate
180
187
 
181
188
  # Summary only
182
- ogp agent-comms add-topic <peer-id> <project-id> --level summary
189
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level summary
183
190
  ```
184
191
 
185
192
  Response levels:
@@ -202,7 +209,7 @@ If the user skips questions, that's fine — the agent operates in generalized m
202
209
 
203
210
  ### Step 1: Create the project
204
211
  ```bash
205
- ogp project create <project-id> <name> --description "<description>"
212
+ ogp --for openclaw project create <project-id> <name> --description "<description>"
206
213
  ```
207
214
 
208
215
  ### Step 2: Run the interview
@@ -214,7 +221,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
214
221
  **Q1: How do you track tasks for this project?**
215
222
  *(e.g. Linear, Jira, GitHub Issues, Trello, a text file, nothing formal)*
216
223
 
217
- - If answered → `ogp project contribute <id> context.tools "Tasks tracked in: <answer>"`
224
+ - If answered → `ogp --for openclaw project contribute <id> context.tools "Tasks tracked in: <answer>"`
218
225
  - Agent behavior unlocked: When a peer agent asks about tasks/issues/tickets, search here first. If the tool has an API or CLI, offer to query it directly.
219
226
  - Example agent behavior: *"Stan's agent is asking what's in your backlog for this project. I can check Linear for you — want me to pull the open items?"*
220
227
  - If skipped → agent notes task tracking is unspecified; will only know what's been logged manually
@@ -224,7 +231,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
224
231
  **Q2: Where do you keep notes or docs for this project?**
225
232
  *(e.g. Obsidian vault at ~/notes/project-x, Notion, GitHub wiki, Apple Notes, Google Docs, a local folder)*
226
233
 
227
- - If answered → `ogp project contribute <id> context.notes "<location>"`
234
+ - If answered → `ogp --for openclaw project contribute <id> context.notes "<location>"`
228
235
  - Agent behavior unlocked: When a peer asks about ideas, decisions, meeting notes, or any written context — go look there first before saying "I don't know."
229
236
  - Example agent behavior: *"Before I answer Stan's question about the API design, let me check your Obsidian vault..."*
230
237
  - If skipped → agent can only surface what's been explicitly logged to the project
@@ -234,7 +241,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
234
241
  **Q3: Is there a code repository?**
235
242
  *(e.g. GitHub URL, GitLab, local git repo path)*
236
243
 
237
- - If answered → `ogp project contribute <id> context.repository "<url or path>"`
244
+ - If answered → `ogp --for openclaw project contribute <id> context.repository "<url or path>"`
238
245
  - Agent behavior unlocked: When peer asks about code, architecture, or recent commits — check the repo. Can run `git log`, search files, check open PRs.
239
246
  - If skipped → agent won't know where code lives
240
247
 
@@ -243,7 +250,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
243
250
  **Q4: Where do you store files for this project?**
244
251
  *(e.g. ~/Documents/project-x, iCloud Drive, Google Drive, Dropbox, S3 bucket)*
245
252
 
246
- - If answered → `ogp project contribute <id> context.workspace "<path or location>"`
253
+ - If answered → `ogp --for openclaw project contribute <id> context.workspace "<path or location>"`
247
254
  - Agent behavior unlocked: When peer asks about assets, specs, or anything file-based — look here.
248
255
  - If skipped → agent won't look for files outside the project log
249
256
 
@@ -252,9 +259,9 @@ Ask these questions conversationally — not as a form. Let the user's answers l
252
259
  **Q5: Is anyone else working on this with you?**
253
260
  *(peer IDs, names, or email addresses of collaborators)*
254
261
 
255
- - If answered → `ogp project contribute <id> context.collaborators "<names/peer-ids>"`
262
+ - If answered → `ogp --for openclaw project contribute <id> context.collaborators "<names/peer-ids>"`
256
263
  - Agent behavior unlocked: Know who to ping during pre-task checks. Know whose agent to query when looking for context.
257
- - Also offer: *"Want me to send them a federation invite?"* — if yes, run `ogp project request-join <peer-id> <project-id> <name>`
264
+ - Also offer: *"Want me to send them a federation invite?"* — if yes, run `ogp --for openclaw project request-join <peer-id> <project-id> <name>`
258
265
  - If skipped → no peer checks until collaborators are added later
259
266
 
260
267
  ---
@@ -262,7 +269,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
262
269
  **Q6: Anything else I should know about this project?**
263
270
  *(free text — constraints, deadlines, important context, tools not covered above)*
264
271
 
265
- - If answered → `ogp project contribute <id> context "<free text>"`
272
+ - If answered → `ogp --for openclaw project contribute <id> context "<free text>"`
266
273
  - This catches anything the structured questions missed
267
274
  - If skipped → fine, move on
268
275
 
@@ -296,17 +303,17 @@ I'll check this context before starting any work on this project.
296
303
  ### Explicit Project Logging
297
304
  | User Input | Action |
298
305
  |------------|--------|
299
- | "add/log/save/put/track this to [project]" | `ogp project contribute <id> context "<summary>"` |
300
- | "remember for [project] that..." | `ogp project contribute <id> context "<summary>"` |
301
- | Decision made during conversation | `ogp project contribute <id> decision "<summary>"` |
302
- | Blocker encountered | `ogp project contribute <id> blocker "<summary>"` |
303
- | Work completed | `ogp project contribute <id> progress "<summary>"` |
306
+ | "add/log/save/put/track this to [project]" | `ogp --for openclaw project contribute <id> context "<summary>"` |
307
+ | "remember for [project] that..." | `ogp --for openclaw project contribute <id> context "<summary>"` |
308
+ | Decision made during conversation | `ogp --for openclaw project contribute <id> decision "<summary>"` |
309
+ | Blocker encountered | `ogp --for openclaw project contribute <id> blocker "<summary>"` |
310
+ | Work completed | `ogp --for openclaw project contribute <id> progress "<summary>"` |
304
311
 
305
312
  ### No Project Specified
306
313
  If logging intent is clear but no project named:
307
314
  ```
308
315
  📝 I can log this for you. Which project?
309
- Active: [list from `ogp project list`]
316
+ Active: [list from `ogp --for openclaw project list`]
310
317
  Or name a new one to create it.
311
318
  ```
312
319
 
@@ -331,20 +338,20 @@ When a peer agent sends a query to your project topic, your agent should:
331
338
  **Searching your context to answer:**
332
339
  ```bash
333
340
  # Search project contributions
334
- ogp project query <project-id> --search "<keywords>"
341
+ ogp --for openclaw project query <project-id> --search "<keywords>"
335
342
 
336
343
  # Check specific context entries
337
- ogp project query <project-id> --type context.notes
338
- ogp project query <project-id> --type context.repository
339
- ogp project query <project-id> --type decision
344
+ ogp --for openclaw project query <project-id> --type context.notes
345
+ ogp --for openclaw project query <project-id> --type context.repository
346
+ ogp --for openclaw project query <project-id> --type decision
340
347
 
341
348
  # Recent activity
342
- ogp project query <project-id> --limit 20
349
+ ogp --for openclaw project query <project-id> --limit 20
343
350
  ```
344
351
 
345
352
  **Replying to a peer query:**
346
353
  ```bash
347
- ogp federation agent <peer-id> <project-id> "<your answer>"
354
+ ogp --for openclaw federation agent <peer-id> <project-id> "<your answer>"
348
355
  ```
349
356
 
350
357
  ---
@@ -354,44 +361,44 @@ ogp federation agent <peer-id> <project-id> "<your answer>"
354
361
  ### Project Management
355
362
  ```bash
356
363
  # Create project
357
- ogp project create <id> <name> [--description "..."]
364
+ ogp --for openclaw project create <id> <name> [--description "..."]
358
365
 
359
366
  # Join existing project
360
- ogp project join <id> [name] [--create] [--description "..."]
367
+ ogp --for openclaw project join <id> [name] [--create] [--description "..."]
361
368
 
362
369
  # List all projects
363
- ogp project list
370
+ ogp --for openclaw project list
364
371
 
365
372
  # Get project status
366
- ogp project status <id>
373
+ ogp --for openclaw project status <id>
367
374
  ```
368
375
 
369
376
  ### Contributions & Logging
370
377
  ```bash
371
378
  # Add contribution
372
- ogp project contribute <id> <type> <summary> [--metadata '{"key":"value"}']
379
+ ogp --for openclaw project contribute <id> <type> <summary> [--metadata '{"key":"value"}']
373
380
 
374
381
  # Query contributions
375
- ogp project query <id> [--type <type>] [--search <text>] [--limit <n>]
376
- # Note: --topic is a hidden alias for --type (backwards compat)
382
+ ogp --for openclaw project query <id> [--type <type>] [--search <text>] [--limit <n>]
383
+ # Prefer --type. --topic remains a compatibility alias.
377
384
  ```
378
385
 
379
386
  ### Cross-Peer Collaboration
380
387
  ```bash
381
388
  # Request to join peer's project
382
- ogp project request-join <peer-id> <project-id> <name>
389
+ ogp --for openclaw project request-join <peer-id> <project-id> <name>
383
390
 
384
391
  # Send contribution to peer project
385
- ogp project send-contribution <peer-id> <project-id> <type> <summary>
392
+ ogp --for openclaw project send-contribution <peer-id> <project-id> <type> <summary>
386
393
 
387
394
  # Query peer project contributions
388
- ogp project query-peer <peer-id> <project-id> [--topic <type>] [--limit <n>]
395
+ ogp --for openclaw project query-peer <peer-id> <project-id> [--type <type>] [--limit <n>]
389
396
 
390
397
  # Get peer project status
391
- ogp project status-peer <peer-id> <project-id>
398
+ ogp --for openclaw project status-peer <peer-id> <project-id>
392
399
 
393
400
  # Send agent-to-agent message on project topic
394
- ogp federation agent <peer-id> <project-id> "<message>"
401
+ ogp --for openclaw federation agent <peer-id> <project-id> "<message>"
395
402
  ```
396
403
 
397
404
  ---
@@ -445,32 +452,32 @@ Peer activity:
445
452
  ### Peer Agent Not Responding
446
453
  ```bash
447
454
  # Check peer is online
448
- ogp federation ping <peer-alias>
455
+ ogp --for openclaw federation ping <peer-alias>
449
456
 
450
457
  # Check agent-comms policies
451
- ogp agent-comms policies <peer-id>
458
+ ogp --for openclaw agent-comms policies <peer-id>
452
459
 
453
460
  # Check activity log
454
- ogp agent-comms activity <peer-id>
461
+ ogp --for openclaw agent-comms activity <peer-id>
455
462
  ```
456
463
 
457
464
  ### Project Not Found
458
465
  ```bash
459
- ogp project list
460
- ogp project status-peer <peer-id> <project-id>
466
+ ogp --for openclaw project list
467
+ ogp --for openclaw project status-peer <peer-id> <project-id>
461
468
  ```
462
469
 
463
470
  ### Logging Failures
464
471
  ```bash
465
- ogp project status <project-id>
466
- ogp status
472
+ ogp --for openclaw project status <project-id>
473
+ ogp --for openclaw status
467
474
  ```
468
475
 
469
476
  ### Cross-Peer Issues
470
477
  ```bash
471
- ogp federation list --status approved
472
- ogp federation scopes <peer-id>
473
- ogp federation send <peer-id> message '{"text":"ping"}'
478
+ ogp --for openclaw federation list --status approved
479
+ ogp --for openclaw federation scopes <peer-id>
480
+ ogp --for openclaw federation send <peer-id> message '{"text":"ping"}'
474
481
  ```
475
482
 
476
483
  ---
@@ -480,10 +487,10 @@ ogp federation send <peer-id> message '{"text":"ping"}'
480
487
  **Data Flow:**
481
488
  ```
482
489
  User says something project-related
483
- → Agent checks local project state (ogp project query)
484
- → Agent pings peer agents (ogp federation agent)
490
+ → Agent checks local project state (ogp --for <framework> project query)
491
+ → Agent pings peer agents (ogp --for <framework> federation agent)
485
492
  → Surfaces conflicts/info before starting
486
- → Logs outcomes (ogp project contribute)
493
+ → Logs outcomes (ogp --for <framework> project contribute)
487
494
  → Federation syncs to peers
488
495
  ```
489
496
 
@@ -491,5 +498,6 @@ User says something project-related
491
498
  The project doesn't care what tools you use. `context.notes`, `context.repository`, `context.tools` are just text. If you keep notes in Obsidian, that's in `context.notes`. If your peer uses GitHub wikis, that's in their `context.notes`. Peer agents read each other's context entries and know where to look — or know what to ask.
492
499
 
493
500
  **Storage:**
494
- - `~/.ogp/projects.json` — all project data and contributions
495
- - `~/.ogp/peers.json` — peer identities and federation state
501
+ - `~/.ogp/projects.json` / `~/.ogp-hermes/projects.json` — project data and contributions per framework
502
+ - `~/.ogp/peers.json` / `~/.ogp-hermes/peers.json` — peer identities and federation state per framework
503
+ - `~/.ogp-meta/config.json` — enabled frameworks and default selection