@bluefly/openstandardagents 0.3.0 → 0.3.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +58 -218
  3. package/dist/cli/commands/diff.command.d.ts +7 -0
  4. package/dist/cli/commands/diff.command.d.ts.map +1 -0
  5. package/dist/cli/commands/diff.command.js +181 -0
  6. package/dist/cli/commands/diff.command.js.map +1 -0
  7. package/dist/cli/commands/docs.command.d.ts +7 -0
  8. package/dist/cli/commands/docs.command.d.ts.map +1 -0
  9. package/dist/cli/commands/docs.command.js +274 -0
  10. package/dist/cli/commands/docs.command.js.map +1 -0
  11. package/dist/cli/commands/lint.command.d.ts +7 -0
  12. package/dist/cli/commands/lint.command.d.ts.map +1 -0
  13. package/dist/cli/commands/lint.command.js +342 -0
  14. package/dist/cli/commands/lint.command.js.map +1 -0
  15. package/dist/cli/commands/serve.command.d.ts +7 -0
  16. package/dist/cli/commands/serve.command.d.ts.map +1 -0
  17. package/dist/cli/commands/serve.command.js +232 -0
  18. package/dist/cli/commands/serve.command.js.map +1 -0
  19. package/dist/cli/index.js +4 -0
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/di-container.d.ts.map +1 -1
  22. package/dist/di-container.js +3 -0
  23. package/dist/di-container.js.map +1 -1
  24. package/dist/services/git.service.d.ts +40 -0
  25. package/dist/services/git.service.d.ts.map +1 -0
  26. package/dist/services/git.service.js +122 -0
  27. package/dist/services/git.service.js.map +1 -0
  28. package/dist/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
  29. package/dist/spec/v0.3.1/adapters/drupal.md +541 -0
  30. package/dist/spec/v0.3.1/adapters/symfony.md +659 -0
  31. package/dist/spec/v0.3.1/agent-test.schema.json +75 -0
  32. package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
  33. package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  34. package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  35. package/dist/spec/v0.3.1/extensions/drupal.md +417 -0
  36. package/dist/spec/v0.3.1/ossa-0.3.0.schema.json +2787 -0
  37. package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +2806 -0
  38. package/dist/spec/v0.3.1/protocols/sse.md +494 -0
  39. package/dist/spec/v0.3.1/protocols/webrtc.md +600 -0
  40. package/dist/spec/v0.3.1/protocols/websocket.md +362 -0
  41. package/dist/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
  42. package/dist/spec/v0.3.1/schemas/capabilities.yaml +102 -0
  43. package/dist/spec/v0.3.1/schemas/functions.yaml +75 -0
  44. package/dist/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
  45. package/dist/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
  46. package/dist/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
  47. package/dist/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
  48. package/dist/spec/v0.3.1/schemas/runtime.yaml +102 -0
  49. package/dist/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
  50. package/dist/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
  51. package/dist/spec/v0.3.1/taxonomy.yaml +256 -0
  52. package/dist/testing/fixtures.d.ts.map +1 -1
  53. package/dist/testing/fixtures.js +3 -2
  54. package/dist/testing/fixtures.js.map +1 -1
  55. package/package.json +3 -31
  56. package/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
  57. package/spec/v0.3.1/adapters/drupal.md +541 -0
  58. package/spec/v0.3.1/adapters/symfony.md +659 -0
  59. package/spec/v0.3.1/agent-test.schema.json +75 -0
  60. package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
  61. package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  62. package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  63. package/spec/v0.3.1/extensions/drupal.md +417 -0
  64. package/spec/v0.3.1/ossa-0.3.0.schema.json +2787 -0
  65. package/spec/v0.3.1/ossa-0.3.1.schema.json +2806 -0
  66. package/spec/v0.3.1/protocols/sse.md +494 -0
  67. package/spec/v0.3.1/protocols/webrtc.md +600 -0
  68. package/spec/v0.3.1/protocols/websocket.md +362 -0
  69. package/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
  70. package/spec/v0.3.1/schemas/capabilities.yaml +102 -0
  71. package/spec/v0.3.1/schemas/functions.yaml +75 -0
  72. package/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
  73. package/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
  74. package/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
  75. package/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
  76. package/spec/v0.3.1/schemas/runtime.yaml +102 -0
  77. package/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
  78. package/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
  79. package/spec/v0.3.1/taxonomy.yaml +256 -0
  80. package/dist/types/generated/ossa-0.3.0.types.d.ts +0 -316
  81. package/dist/types/generated/ossa-0.3.0.types.d.ts.map +0 -1
  82. package/dist/types/generated/ossa-0.3.0.types.js +0 -8
  83. package/dist/types/generated/ossa-0.3.0.types.js.map +0 -1
  84. package/dist/types/generated/ossa-0.3.0.zod.d.ts +0 -17
  85. package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +0 -1
  86. package/dist/types/generated/ossa-0.3.0.zod.js +0 -3
  87. package/dist/types/generated/ossa-0.3.0.zod.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,7 +5,7 @@ All notable changes to OSSA (Open Standard for Scalable AI Agents) will be docum
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.3.0] - 2025-12-22
8
+ ## [v0.3.0] - 2025-12-22
9
9
 
10
10
  ### Fixed
11
11
 
package/README.md CHANGED
@@ -12,14 +12,20 @@
12
12
 
13
13
  ### **The OpenAPI of AI Agents**
14
14
 
15
- *Define once, deploy anywhere. A vendor-neutral specification for portable, composable, and compliant AI agents.*
15
+ *Define once, deploy anywhere. A vendor-neutral specification for portable, composable, and
16
+ compliant AI agents.*
16
17
 
17
18
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
18
- [![npm version](https://img.shields.io/npm/v/@bluefly/openstandardagents)](https://www.npmjs.com/package/@bluefly/openstandardagents)
19
- [![CI Status](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://gitlab.com/blueflyio/openstandardagents/-/pipelines)
20
- [![npm downloads](https://img.shields.io/npm/dm/@bluefly/openstandardagents)](https://www.npmjs.com/package/@bluefly/openstandardagents)
19
+ [![npm
20
+ version](https://img.shields.io/npm/v/@bluefly/openstandardagents)](https://www.npmjs.com/package/@bluefly/openstandardagents)
21
+ [![CI
22
+ Status](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://gitlab.com/blueflyio/openstandardagents/-/pipelines)
23
+ [![npm
24
+ downloads](https://img.shields.io/npm/dm/@bluefly/openstandardagents)](https://www.npmjs.com/package/@bluefly/openstandardagents)
21
25
 
22
- [**Quick Start**](#quick-start-under-60-seconds) • [**Documentation**](https://openstandardagents.org/docs/) • [**Examples**](https://openstandardagents.org/examples/) • [**Community**](#community)
26
+ [**Quick Start**](#quick-start-under-60-seconds) •
27
+ [**Documentation**](https://openstandardagents.org/docs/) •
28
+ [**Examples**](https://openstandardagents.org/examples/) • [**Community**](#community)
23
29
 
24
30
  </div>
25
31
 
@@ -27,42 +33,30 @@
27
33
 
28
34
  ## Why OSSA?
29
35
 
30
- <table>
31
- <tr>
32
- <td width="25%">
33
-
34
36
  ### 🔄 Portability
35
37
  **One manifest, any provider**
36
38
 
37
- Switch between OpenAI, Anthropic, Azure, or Ollama without changing a single line of code. Runtime bindings abstract implementation from definition.
38
-
39
- </td>
40
- <td width="25%">
39
+ Switch between OpenAI, Anthropic, Azure, or Ollama without changing a single line of code. Runtime
40
+ bindings abstract implementation from definition.
41
41
 
42
42
  ### 🧩 Composability
43
43
  **Build workflows from agents**
44
44
 
45
- Compose agents into workflows with parallel execution, conditional branching, and loop control. Orchestrate complex multi-agent systems declaratively.
46
-
47
- </td>
48
- <td width="25%">
45
+ Compose agents into workflows with parallel execution, conditional branching, and loop control.
46
+ Orchestrate complex multi-agent systems declaratively.
49
47
 
50
48
  ### 🛡️ Safety
51
49
  **Built-in guardrails**
52
50
 
53
- Enterprise-grade compliance out of the box. SOC2, FedRAMP, HIPAA, and GDPR controls are first-class schema properties, not afterthoughts.
54
-
55
- </td>
56
- <td width="25%">
51
+ Enterprise-grade compliance out of the box. SOC2, FedRAMP, HIPAA, and GDPR controls are first-class
52
+ schema properties, not afterthoughts.
57
53
 
58
54
  ### 📊 Observability
59
55
  **Full visibility**
60
56
 
61
- Native OpenTelemetry tracing, structured logging, cost tracking, and performance metrics. Know exactly what your agents are doing and what they cost.
57
+ Native OpenTelemetry tracing, structured logging, cost tracking, and performance metrics. Know
58
+ exactly what your agents are doing and what they cost.
62
59
 
63
- </td>
64
- </tr>
65
- </table>
66
60
 
67
61
  ---
68
62
 
@@ -107,7 +101,9 @@ That's it. You now have a working AI agent defined in a portable, standard forma
107
101
 
108
102
  ## What is OSSA?
109
103
 
110
- **OSSA** (Open Standard for Scalable AI Agents) is a **specification standard** for defining AI agents in a vendor-neutral, portable format—like OpenAPI for REST APIs or Kubernetes manifests for containers.
104
+ **OSSA** (Open Standard for Scalable AI Agents) is a **specification standard** for defining AI
105
+ agents in a vendor-neutral, portable format—like OpenAPI for REST APIs or Kubernetes manifests for
106
+ containers.
111
107
 
112
108
  OSSA is **NOT** a framework. It's a standard that frameworks implement.
113
109
 
@@ -115,18 +111,11 @@ OSSA is **NOT** a framework. It's a standard that frameworks implement.
115
111
 
116
112
  OSSA defines three resource types:
117
113
 
118
- <table>
119
- <tr>
120
- <th width="33%">Agent</th>
121
- <th width="33%">Task</th>
122
- <th width="33%">Workflow</th>
123
- </tr>
124
- <tr>
125
- <td>
126
-
114
+ #### Agent
127
115
  **LLM-powered agentic loops**
128
116
 
129
- Agents use LLMs to reason, plan, and execute tools. They handle inference, state management, and autonomous decision-making.
117
+ Agents use LLMs to reason, plan, and execute tools. They handle inference, state management, and
118
+ autonomous decision-making.
130
119
 
131
120
  ```yaml
132
121
  kind: Agent
@@ -138,12 +127,11 @@ spec:
138
127
  You are a helpful assistant
139
128
  ```
140
129
 
141
- </td>
142
- <td>
143
-
130
+ #### Task
144
131
  **Deterministic operations**
145
132
 
146
- Tasks are pure functions—no LLM required. Use them for data transformation, API calls, batch processing, or system integration.
133
+ Tasks are pure functions—no LLM required. Use them for data transformation, API calls, batch
134
+ processing, or system integration.
147
135
 
148
136
  ```yaml
149
137
  kind: Task
@@ -154,12 +142,11 @@ spec:
154
142
  entry: transform.ts
155
143
  ```
156
144
 
157
- </td>
158
- <td>
159
-
145
+ #### Workflow
160
146
  **Orchestrated compositions**
161
147
 
162
- Workflows compose Agents and Tasks into multi-step pipelines with parallel execution, conditionals, and loops.
148
+ Workflows compose Agents and Tasks into multi-step pipelines with parallel execution, conditionals,
149
+ and loops.
163
150
 
164
151
  ```yaml
165
152
  kind: Workflow
@@ -171,18 +158,15 @@ spec:
171
158
  - task: validate
172
159
  ```
173
160
 
174
- </td>
175
- </tr>
176
- </table>
177
-
178
161
  ---
179
162
 
180
- ## Example: A Complete Enterprise Agent (v0.3.0)
163
+ ## Example: A Complete Enterprise Agent (0.3.1)
181
164
 
182
- This agent demonstrates OSSA's full power—**portable across providers, compliant out of the box, and production-ready**:
165
+ This agent demonstrates OSSA's full power—**portable across providers, compliant out of the box, and
166
+ production-ready**:
183
167
 
184
168
  ```yaml
185
- apiVersion: ossa/v0.3.0
169
+ apiVersion: ossa/0.3.1
186
170
  kind: Agent
187
171
 
188
172
  metadata:
@@ -196,7 +180,7 @@ metadata:
196
180
  ossa.io/maintainer: security-team@company.com
197
181
  ossa.io/cost-center: CC-1234
198
182
 
199
- # NEW v0.3.0: Identity for OpenTelemetry + service mesh
183
+ # NEW 0.3.1: Identity for OpenTelemetry + service mesh
200
184
  identity:
201
185
  service_name: compliance-auditor
202
186
  service_namespace: agents.compliance
@@ -232,7 +216,7 @@ spec:
232
216
  severity: { type: string, enum: [low, medium, high, critical] }
233
217
  required: [findings, severity]
234
218
 
235
- # NEW v0.3.0: Agent-to-Agent messaging
219
+ # NEW 0.3.1: Agent-to-Agent messaging
236
220
  messaging:
237
221
  publishes:
238
222
  - channel: audit.findings
@@ -244,7 +228,7 @@ spec:
244
228
  deliveryGuarantee: at-least-once
245
229
  ordering: strict
246
230
 
247
- # NEW v0.3.0: Persistent state with encryption
231
+ # NEW 0.3.1: Persistent state with encryption
248
232
  state:
249
233
  storage:
250
234
  type: redis
@@ -269,7 +253,7 @@ spec:
269
253
  max_length: 100000
270
254
  require_structured: true
271
255
 
272
- # NEW v0.3.0: Compliance profiles
256
+ # NEW 0.3.1: Compliance profiles
273
257
  compliance:
274
258
  frameworks: [SOC2, HIPAA, GDPR]
275
259
  data_residency: us-east-1
@@ -296,7 +280,7 @@ spec:
296
280
  enabled: true
297
281
  destination: kafka://events.internal
298
282
 
299
- # NEW v0.3.0: Lifecycle management
283
+ # NEW 0.3.1: Lifecycle management
300
284
  lifecycle:
301
285
  environments:
302
286
  development:
@@ -344,7 +328,8 @@ Switch providers without changing your agent definition:
344
328
 
345
329
  ### 🛠️ MCP Tool Support
346
330
 
347
- Native integration with [Model Context Protocol](https://modelcontextprotocol.io/) for standardized tool definitions:
331
+ Native integration with [Model Context Protocol](https://modelcontextprotocol.io/) for standardized
332
+ tool definitions:
348
333
 
349
334
  ```yaml
350
335
  tools:
@@ -435,10 +420,6 @@ docker run -v $(pwd):/workspace bluefly/ossa validate agent.ossa.yaml
435
420
 
436
421
  ## Documentation
437
422
 
438
- <table>
439
- <tr>
440
- <td width="50%">
441
-
442
423
  ### Getting Started
443
424
  - [Installation Guide](https://openstandardagents.org/docs/installation/)
444
425
  - [Your First Agent](https://openstandardagents.org/docs/getting-started/first-agent/)
@@ -451,153 +432,18 @@ docker run -v $(pwd):/workspace bluefly/ossa validate agent.ossa.yaml
451
432
  - [Production Deployment](https://openstandardagents.org/docs/deployment/)
452
433
  - [Best Practices](https://openstandardagents.org/docs/best-practices/)
453
434
 
454
- </td>
455
- <td width="50%">
456
-
457
- - **Getting Started**: [openstandardagents.org/docs/getting-started/](https://openstandardagents.org/docs/getting-started/)
435
+ ### Reference
436
+ - **Getting Started**:
437
+ [openstandardagents.org/docs/getting-started/](https://openstandardagents.org/docs/getting-started/)
458
438
  - **Full Documentation**: [openstandardagents.org/docs/](https://openstandardagents.org/docs/)
459
439
  - **Schema Reference**: [openstandardagents.org/schema/](https://openstandardagents.org/schema/)
460
- - **Specification**: [spec/v0.3.0/ossa-0.3.0.schema.json](https://github.com/blueflyio/openstandardagents/blob/main/spec/v0.3.0/ossa-0.3.0.schema.json)
461
- - **Messaging Extension**: [spec/v0.3.0/messaging.md](spec/v0.3.0/messaging.md) - Agent-to-agent messaging (v0.3.0+) - Note: messaging.md is in v0.3.0 folder but applies to v0.3.0+
440
+ - **Specification**:
441
+ [spec/0.3.1/ossa-0.3.1.schema.json](https://github.com/blueflyio/openstandardagents/blob/main/spec/0.3.1/ossa-0.3.1.schema.json)
442
+ - **Messaging Extension**: [spec/0.3.1/messaging.md](spec/0.3.1/messaging.md) -
443
+ Agent-to-agent messaging (0.3.1+)
462
444
  - **Examples**: [openstandardagents.org/examples/](https://openstandardagents.org/examples/)
463
445
  - **Blog**: [openstandardagents.org/blog/](https://openstandardagents.org/blog/)
464
446
 
465
- ---
466
-
467
- ## Ecosystem
468
-
469
- ### Framework Support
470
-
471
- OSSA integrates with all major AI frameworks:
472
-
473
- - **[LangChain](https://python.langchain.com/)** — Export OSSA agents to LangChain
474
- - **[CrewAI](https://www.crewai.com/)** — Multi-agent orchestration
475
- - **[AutoGen](https://microsoft.github.io/autogen/)** — Microsoft's agent framework
476
- - **[LlamaIndex](https://www.llamaindex.ai/)** — RAG and data agents
477
- - **[LangGraph](https://langchain-ai.github.io/langgraph/)** — Stateful agent graphs
478
- - **[Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/)** — Microsoft's AI orchestration
479
-
480
- ### Platform Support
481
-
482
- Deploy OSSA agents anywhere:
483
-
484
- - **Kubernetes** — Native KAgent integration
485
- - **Docker** — Containerized agents
486
- - **AWS** — Lambda, ECS, Bedrock
487
- - **Azure** — Functions, Container Apps, OpenAI
488
- - **GCP** — Cloud Run, Vertex AI
489
-
490
- ### Tool Integrations
491
-
492
- - **[MCP](https://modelcontextprotocol.io/)** — Model Context Protocol
493
- - **[Drupal](https://www.drupal.org/)** — CMS integration
494
- - **[LibreChat](https://www.librechat.ai/)** — Chat interface
495
- - **[Cursor](https://cursor.sh/)** — AI-powered IDE
496
- - **[VS Code](https://code.visualstudio.com/)** — Editor extensions
497
-
498
- ---
499
-
500
- ## Community
501
-
502
- We're building OSSA in the open. Join us!
503
-
504
- ### Contributing
505
-
506
- We welcome contributions of all kinds:
507
-
508
- 1. **Code** — Fork the repo, create a branch, submit a PR
509
- 2. **Documentation** — Improve guides, fix typos, add examples
510
- 3. **Feedback** — Open issues, suggest features, share use cases
511
- 4. **Community** — Answer questions, help others, share your agents
512
-
513
- See our [**Contributing Guide**](CONTRIBUTING.md) for details.
514
-
515
- ### Get Help & Connect
516
-
517
- - **[GitHub Discussions](https://github.com/blueflyio/openstandardagents/discussions)** — Ask questions, share ideas
518
- - **[Discord Community](https://discord.gg/ossa)** — Real-time chat and support
519
- - **[Stack Overflow](https://stackoverflow.com/questions/tagged/ossa)** — Technical Q&A (tag: `ossa`)
520
- - **[Twitter/X](https://twitter.com/openstandardagi)** — Updates and announcements
521
-
522
- ### Stay Updated
523
-
524
- - **[Blog](https://openstandardagents.org/blog/)** — Tutorials, case studies, announcements
525
- - **[Newsletter](https://openstandardagents.org/newsletter/)** — Monthly updates
526
- - **[Changelog](CHANGELOG.md)** — Release notes and migration guides
527
-
528
- ---
529
-
530
- ## Comparison
531
-
532
- How does OSSA compare to other AI agent standards and frameworks?
533
-
534
- <table>
535
- <tr>
536
- <th>Feature</th>
537
- <th>OSSA</th>
538
- <th>LangChain</th>
539
- <th>AutoGen</th>
540
- <th>MCP</th>
541
- <th>Semantic Kernel</th>
542
- </tr>
543
- <tr>
544
- <td><strong>Vendor Neutral</strong></td>
545
- <td>✅ Yes</td>
546
- <td>❌ No</td>
547
- <td>❌ No</td>
548
- <td>✅ Yes</td>
549
- <td>❌ No</td>
550
- </tr>
551
- <tr>
552
- <td><strong>Formal Standard</strong></td>
553
- <td>✅ Yes</td>
554
- <td>❌ No</td>
555
- <td>❌ No</td>
556
- <td>✅ Yes</td>
557
- <td>❌ No</td>
558
- </tr>
559
- <tr>
560
- <td><strong>Multi-Runtime</strong></td>
561
- <td>✅ Full</td>
562
- <td>🟡 Partial</td>
563
- <td>🟡 Partial</td>
564
- <td>✅ Full</td>
565
- <td>🟡 Partial</td>
566
- </tr>
567
- <tr>
568
- <td><strong>Enterprise Governance</strong></td>
569
- <td>✅ Yes</td>
570
- <td>❌ No</td>
571
- <td>❌ No</td>
572
- <td>❌ No</td>
573
- <td>🟡 Partial</td>
574
- </tr>
575
- <tr>
576
- <td><strong>Compliance Ready</strong></td>
577
- <td>✅ Yes</td>
578
- <td>❌ No</td>
579
- <td>❌ No</td>
580
- <td>❌ No</td>
581
- <td>❌ No</td>
582
- </tr>
583
- <tr>
584
- <td><strong>Full Agent Lifecycle</strong></td>
585
- <td>✅ Yes</td>
586
- <td>✅ Yes</td>
587
- <td>✅ Yes</td>
588
- <td>❌ No</td>
589
- <td>✅ Yes</td>
590
- </tr>
591
- <tr>
592
- <td><strong>Open Source</strong></td>
593
- <td>✅ Apache 2.0</td>
594
- <td>✅ MIT</td>
595
- <td>✅ MIT</td>
596
- <td>✅ MIT</td>
597
- <td>✅ MIT</td>
598
- </tr>
599
- </table>
600
-
601
447
  **OSSA** is a vendor-neutral **specification standard** (like OpenAPI)
602
448
  **LangChain/AutoGen/Semantic Kernel** are framework-specific **implementations**
603
449
  **MCP** is a formal standard for **context protocol**, not full agent lifecycle
@@ -616,17 +462,13 @@ See [**LICENSE**](LICENSE) for full terms.
616
462
 
617
463
  ## Links
618
464
 
619
- <table>
620
- <tr>
621
- <td width="50%">
622
-
623
465
  ### Development
624
- - **GitLab** (Primary): [gitlab.com/blueflyio/openstandardagents](https://gitlab.com/blueflyio/openstandardagents)
625
- - **GitHub** (Mirror): [github.com/blueflyio/openstandardagents](https://github.com/blueflyio/openstandardagents)
626
- - **npm Package**: [@bluefly/openstandardagents](https://www.npmjs.com/package/@bluefly/openstandardagents)
627
-
628
- </td>
629
- <td width="50%">
466
+ - **GitLab** (Primary):
467
+ [gitlab.com/blueflyio/openstandardagents](https://gitlab.com/blueflyio/openstandardagents)
468
+ - **GitHub** (Mirror):
469
+ [github.com/blueflyio/openstandardagents](https://github.com/blueflyio/openstandardagents)
470
+ - **npm Package**:
471
+ [@bluefly/openstandardagents](https://www.npmjs.com/package/@bluefly/openstandardagents)
630
472
 
631
473
  ### Community
632
474
  - **Website**: [openstandardagents.org](https://openstandardagents.org)
@@ -634,17 +476,15 @@ See [**LICENSE**](LICENSE) for full terms.
634
476
  - **Discord**: [discord.gg/ossa](https://discord.gg/ossa)
635
477
  - **Twitter/X**: [@openstandardagi](https://twitter.com/openstandardagi)
636
478
 
637
- </td>
638
- </tr>
639
- </table>
640
-
641
479
  ---
642
480
 
643
481
  <div align="center">
644
482
 
645
483
  **Built with ❤️ by the open source community**
646
484
 
647
- [Report Bug](https://github.com/blueflyio/openstandardagents/issues) • [Request Feature](https://github.com/blueflyio/openstandardagents/issues) • [Ask Question](https://github.com/blueflyio/openstandardagents/discussions)
485
+ [Report Bug](https://github.com/blueflyio/openstandardagents/issues) • [Request
486
+ Feature](https://github.com/blueflyio/openstandardagents/issues) • [Ask
487
+ Question](https://github.com/blueflyio/openstandardagents/discussions)
648
488
 
649
489
  *Note: All development happens on GitLab. GitHub is a read-only mirror.*
650
490
 
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OSSA Diff Command
3
+ * Compare OSSA agent manifests between files or git references
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const diffCommand: Command;
7
+ //# sourceMappingURL=diff.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diff.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoEpC,eAAO,MAAM,WAAW,SAsIrB,CAAC"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * OSSA Diff Command
3
+ * Compare OSSA agent manifests between files or git references
4
+ */
5
+ import chalk from 'chalk';
6
+ import { Command } from 'commander';
7
+ import * as fs from 'fs';
8
+ import { container } from '../../di-container.js';
9
+ import { ManifestRepository } from '../../repositories/manifest.repository.js';
10
+ import { GitService } from '../../services/git.service.js';
11
+ function deepDiff(obj1, obj2, prefix = '') {
12
+ const changes = [];
13
+ const allKeys = new Set([...Object.keys(obj1 || {}), ...Object.keys(obj2 || {})]);
14
+ for (const key of allKeys) {
15
+ const path = prefix ? `${prefix}.${key}` : key;
16
+ const val1 = obj1?.[key];
17
+ const val2 = obj2?.[key];
18
+ if (!(key in obj1)) {
19
+ changes.push({
20
+ type: 'added',
21
+ path,
22
+ newValue: val2,
23
+ message: `Added: ${path}`,
24
+ });
25
+ }
26
+ else if (!(key in obj2)) {
27
+ changes.push({
28
+ type: 'removed',
29
+ path,
30
+ oldValue: val1,
31
+ message: `Removed: ${path}`,
32
+ });
33
+ }
34
+ else if (typeof val1 === 'object' && typeof val2 === 'object' && val1 !== null && val2 !== null && !Array.isArray(val1) && !Array.isArray(val2)) {
35
+ changes.push(...deepDiff(val1, val2, path));
36
+ }
37
+ else if (JSON.stringify(val1) !== JSON.stringify(val2)) {
38
+ changes.push({
39
+ type: 'modified',
40
+ path,
41
+ oldValue: val1,
42
+ newValue: val2,
43
+ message: `Modified: ${path}`,
44
+ });
45
+ }
46
+ }
47
+ return changes;
48
+ }
49
+ function isBreakingChange(change) {
50
+ // Breaking changes: removed fields, modified required fields, type changes
51
+ if (change.type === 'removed')
52
+ return true;
53
+ if (change.path.includes('metadata.name') || change.path.includes('metadata.version'))
54
+ return true;
55
+ if (change.path.includes('spec.role'))
56
+ return true;
57
+ if (change.path.includes('apiVersion'))
58
+ return true;
59
+ return false;
60
+ }
61
+ export const diffCommand = new Command('diff')
62
+ .argument('<path1>', 'First manifest path or git ref (e.g., main:path/to/file.yaml)')
63
+ .argument('[path2]', 'Second manifest path or git ref (default: current file)')
64
+ .option('--breaking-only', 'Show only breaking changes')
65
+ .option('--format <format>', 'Output format (default, json)', 'default')
66
+ .option('-o, --output <file>', 'Output file (for json format)')
67
+ .description('Compare OSSA agent manifests between versions')
68
+ .action(async (path1, path2, options) => {
69
+ try {
70
+ const manifestRepo = container.get(ManifestRepository);
71
+ const gitService = container.get(GitService);
72
+ // Parse git refs (format: ref:path)
73
+ let manifest1;
74
+ let manifest2;
75
+ let filePath1;
76
+ let filePath2;
77
+ // Load first manifest
78
+ const gitRef1 = gitService.parseRefString(path1);
79
+ if (gitRef1) {
80
+ try {
81
+ manifest1 = gitService.loadManifestFromRef(gitRef1.ref, gitRef1.filePath);
82
+ filePath1 = `${gitRef1.ref}:${gitRef1.filePath}`;
83
+ }
84
+ catch (error) {
85
+ console.error(chalk.red(`Failed to load ${path1} from git: ${error instanceof Error ? error.message : String(error)}`));
86
+ process.exit(1);
87
+ }
88
+ }
89
+ else {
90
+ manifest1 = await manifestRepo.load(path1);
91
+ filePath1 = path1;
92
+ }
93
+ // Load second manifest
94
+ if (path2) {
95
+ const gitRef2 = gitService.parseRefString(path2);
96
+ if (gitRef2) {
97
+ try {
98
+ manifest2 = gitService.loadManifestFromRef(gitRef2.ref, gitRef2.filePath);
99
+ filePath2 = `${gitRef2.ref}:${gitRef2.filePath}`;
100
+ }
101
+ catch (error) {
102
+ console.error(chalk.red(`Failed to load ${path2} from git: ${error instanceof Error ? error.message : String(error)}`));
103
+ process.exit(1);
104
+ }
105
+ }
106
+ else {
107
+ manifest2 = await manifestRepo.load(path2);
108
+ filePath2 = path2;
109
+ }
110
+ }
111
+ else {
112
+ // Compare with current file
113
+ manifest2 = await manifestRepo.load(filePath1);
114
+ filePath2 = filePath1;
115
+ }
116
+ // Compute diff
117
+ const changes = deepDiff(manifest1, manifest2);
118
+ const breakingChanges = changes.filter(isBreakingChange);
119
+ const result = {
120
+ breaking: breakingChanges.length > 0,
121
+ changes: options.breakingOnly ? breakingChanges : changes,
122
+ };
123
+ // Output results
124
+ if (options.format === 'json') {
125
+ const output = JSON.stringify(result, null, 2);
126
+ if (options.output) {
127
+ fs.writeFileSync(options.output, output);
128
+ console.log(chalk.green(`Results written to ${options.output}`));
129
+ }
130
+ else {
131
+ console.log(output);
132
+ }
133
+ }
134
+ else {
135
+ console.log(chalk.blue(`\nComparing manifests:`));
136
+ console.log(` ${chalk.cyan(filePath1)}`);
137
+ console.log(` ${chalk.cyan(filePath2 || filePath1)}\n`);
138
+ if (result.changes.length === 0) {
139
+ console.log(chalk.green('No differences found'));
140
+ }
141
+ else {
142
+ if (result.breaking) {
143
+ console.log(chalk.red(`⚠️ ${breakingChanges.length} breaking change(s) detected\n`));
144
+ }
145
+ console.log(chalk.blue(`Found ${result.changes.length} change(s):\n`));
146
+ for (const change of result.changes) {
147
+ const color = change.type === 'added'
148
+ ? chalk.green
149
+ : change.type === 'removed'
150
+ ? chalk.red
151
+ : chalk.yellow;
152
+ const icon = change.type === 'added' ? '+' : change.type === 'removed' ? '-' : '~';
153
+ const breaking = isBreakingChange(change) ? chalk.red(' [BREAKING]') : '';
154
+ console.log(color(`${icon} ${change.message}${breaking}`));
155
+ if (change.oldValue !== undefined && change.newValue !== undefined) {
156
+ console.log(chalk.gray(` Old: ${JSON.stringify(change.oldValue)}`));
157
+ console.log(chalk.gray(` New: ${JSON.stringify(change.newValue)}`));
158
+ }
159
+ else if (change.oldValue !== undefined) {
160
+ console.log(chalk.gray(` Value: ${JSON.stringify(change.oldValue)}`));
161
+ }
162
+ else if (change.newValue !== undefined) {
163
+ console.log(chalk.gray(` Value: ${JSON.stringify(change.newValue)}`));
164
+ }
165
+ }
166
+ if (result.breaking) {
167
+ console.log(chalk.red(`\n⚠️ Breaking changes detected - migration may be required`));
168
+ }
169
+ }
170
+ }
171
+ process.exit(result.breaking ? 1 : 0);
172
+ }
173
+ catch (error) {
174
+ console.error(chalk.red('[ERROR]'), error.message);
175
+ if (error.stack) {
176
+ console.error(chalk.gray(error.stack));
177
+ }
178
+ process.exit(1);
179
+ }
180
+ });
181
+ //# sourceMappingURL=diff.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.command.js","sourceRoot":"","sources":["../../../src/cli/commands/diff.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OSSA Docs Command
3
+ * Generate documentation from agent manifests
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const docsCommand: Command;
7
+ //# sourceMappingURL=docs.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmNpC,eAAO,MAAM,WAAW,SA4FrB,CAAC"}