@bluefly/openstandardagents 0.4.6 → 0.4.8

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 (300) hide show
  1. package/.version.json +3 -3
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +1 -0
  4. package/dist/.version.json +3 -3
  5. package/dist/adapters/mcp/converter.js +4 -3
  6. package/dist/adapters/npm/adapter.js +2 -1
  7. package/dist/adapters/openai-agents/adapter.js +1 -1
  8. package/dist/cli/commands/config.command.d.ts +7 -0
  9. package/dist/cli/commands/config.command.js +92 -0
  10. package/dist/cli/commands/migrate.command.js +1 -1
  11. package/dist/cli/commands/sign.command.d.ts +3 -0
  12. package/dist/cli/commands/sign.command.js +42 -0
  13. package/dist/cli/commands/skills.command.js +4 -6
  14. package/dist/config/cli-config.d.ts +33 -0
  15. package/dist/config/cli-config.js +107 -0
  16. package/dist/mcp-server/index.js +0 -0
  17. package/dist/package.json +8 -9
  18. package/dist/services/governance/cedar-provider.js +2 -1
  19. package/dist/services/release-automation/base-crud.service.d.ts +93 -0
  20. package/dist/services/release-automation/base-crud.service.js +68 -0
  21. package/dist/services/release-automation/generate-changelog.d.ts +7 -0
  22. package/dist/services/release-automation/generate-changelog.js +288 -0
  23. package/dist/services/release-automation/increment-dev-tag.d.ts +7 -0
  24. package/dist/services/release-automation/increment-dev-tag.js +160 -0
  25. package/dist/services/release-automation/index.d.ts +12 -0
  26. package/dist/services/release-automation/index.js +12 -0
  27. package/dist/services/release-automation/merge-request.service.d.ts +119 -0
  28. package/dist/services/release-automation/merge-request.service.js +212 -0
  29. package/dist/services/release-automation/milestone.service.d.ts +104 -0
  30. package/dist/services/release-automation/milestone.service.js +207 -0
  31. package/dist/services/release-automation/release-agent.service.d.ts +39 -0
  32. package/dist/services/release-automation/release-agent.service.js +43 -0
  33. package/dist/services/release-automation/release-buttons.d.ts +7 -0
  34. package/dist/services/release-automation/release-buttons.js +207 -0
  35. package/dist/services/release-automation/release.service.d.ts +118 -0
  36. package/dist/services/release-automation/release.service.js +207 -0
  37. package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
  38. package/dist/services/release-automation/schemas/release.schema.js +272 -0
  39. package/dist/services/release-automation/tag.service.d.ts +99 -0
  40. package/dist/services/release-automation/tag.service.js +183 -0
  41. package/dist/services/release-automation/webhook.service.d.ts +37 -0
  42. package/dist/services/release-automation/webhook.service.js +187 -0
  43. package/dist/skills/test-skill/README.md +36 -0
  44. package/dist/skills/test-skill/SKILL.md +31 -0
  45. package/dist/skills/test-skill/index.d.ts +31 -0
  46. package/dist/skills/test-skill/install.js +44 -0
  47. package/dist/skills/test-skill/package.json +36 -0
  48. package/dist/spec/reference/reference-agents/compliance-auditor/manifest.ossa.yaml +1 -1
  49. package/dist/spec/reference/reference-agents/doc-agent/manifest.ossa.yaml +1 -1
  50. package/dist/spec/reference/reference-agents/mr-reviewer/manifest.ossa.yaml +1 -1
  51. package/dist/spec/reference/reference-agents/ossa-validator-v0.3/manifest.ossa.yaml +1 -1
  52. package/dist/spec/reference/reference-agents/pipeline-fixer/manifest.ossa.yaml +1 -1
  53. package/dist/spec/reference/reference-agents/release-orchestrator/manifest.ossa.yaml +1 -1
  54. package/dist/spec/uadp/README.md +393 -0
  55. package/dist/spec/uadp/openapi.yaml +387 -0
  56. package/dist/spec/uadp/schemas/uadp-agents-response.schema.json +68 -0
  57. package/dist/spec/uadp/schemas/uadp-federation-response.schema.json +46 -0
  58. package/dist/spec/uadp/schemas/uadp-manifest.schema.json +82 -0
  59. package/dist/spec/uadp/schemas/uadp-skills-response.schema.json +72 -0
  60. package/dist/spec/v0.4/agent-card.schema.json +1 -1
  61. package/dist/spec/v0.4/agent.schema.json +15 -15
  62. package/dist/spec/v0.4/extensions/a2a/a2a.schema.json +1 -1
  63. package/dist/spec/v0.4/extensions/ag2/ag2.schema.json +1 -1
  64. package/dist/spec/v0.4/extensions/crewai/crewai.schema.json +1 -1
  65. package/dist/spec/v0.4/extensions/kagent/kagent.schema.json +1 -1
  66. package/dist/spec/v0.4/extensions/langchain/langchain.schema.json +1 -1
  67. package/dist/spec/v0.4/extensions/langgraph/langgraph.schema.json +1 -1
  68. package/dist/spec/v0.4/extensions/mcp/mcp.schema.json +1 -1
  69. package/dist/spec/v0.5/agent-card.schema.json +477 -0
  70. package/dist/spec/v0.5/agent.schema.json +1556 -0
  71. package/dist/spec/v0.5/conformance/profiles/baseline.json +19 -0
  72. package/dist/spec/v0.5/conformance/profiles/enterprise.json +20 -0
  73. package/dist/spec/v0.5/extensions/a2a/README.md +193 -0
  74. package/dist/spec/v0.5/extensions/a2a/a2a.schema.json +77 -0
  75. package/dist/spec/v0.5/extensions/ag2/ag2.schema.json +277 -0
  76. package/dist/spec/v0.5/extensions/cognition/cognition.schema.json +94 -0
  77. package/dist/spec/v0.5/extensions/cognition/thought-node.schema.json +80 -0
  78. package/dist/spec/v0.5/extensions/crewai/crewai.schema.json +256 -0
  79. package/dist/spec/v0.5/extensions/drupal/drupal.schema.json +318 -0
  80. package/dist/spec/v0.5/extensions/evals/evals.schema.json +597 -0
  81. package/dist/spec/v0.5/extensions/governance/governance-extension.yaml +161 -0
  82. package/dist/spec/v0.5/extensions/identity/identity.schema.json +302 -0
  83. package/dist/spec/v0.5/extensions/kagent/README.md +315 -0
  84. package/dist/spec/v0.5/extensions/kagent/kagent.schema.json +624 -0
  85. package/dist/spec/v0.5/extensions/langchain/langchain.schema.json +243 -0
  86. package/dist/spec/v0.5/extensions/langgraph/langgraph.schema.json +211 -0
  87. package/dist/spec/v0.5/extensions/mcp/README.md +276 -0
  88. package/dist/spec/v0.5/extensions/mcp/mcp.schema.json +84 -0
  89. package/dist/spec/v0.5/extensions/memory/memory.schema.json +7 -0
  90. package/dist/spec/v0.5/extensions/team/team.schema.json +304 -0
  91. package/dist/spec/v0.5/extensions/token-efficiency/token-efficiency.schema.json +47 -0
  92. package/dist/spec/v0.5/mcp.schema.json +1 -0
  93. package/dist/spec/v0.5/skill.schema.json +1 -0
  94. package/dist/spec/v0.5/validator.schema.json +282 -0
  95. package/dist/validation/error-codes.js +1 -1
  96. package/examples/a2a/agent-handoff.ossa.yaml +1 -1
  97. package/examples/a2a/service-discovery.ossa.yaml +1 -1
  98. package/examples/adapters/drupal-eca-mapping.yaml +1 -1
  99. package/examples/adapters/drupal-eca-task.yaml +1 -1
  100. package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
  101. package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
  102. package/examples/adapters/mistral-agent.yaml +1 -1
  103. package/examples/adapters/symfony-messenger-task.yaml +1 -1
  104. package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
  105. package/examples/adk-integration/code-review-workflow.yml +1 -1
  106. package/examples/adk-integration/customer-support.yml +1 -1
  107. package/examples/adk-integration/data-pipeline.yml +1 -1
  108. package/examples/advanced/reasoning-agent.yaml +1 -1
  109. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  110. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  111. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  112. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  113. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  114. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  115. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  116. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  117. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  118. package/examples/agent-taxonomy-example.ossa.yaml +1 -1
  119. package/examples/agents/01-customer-support-bot/agent.ossa.yaml +1 -1
  120. package/examples/agents/02-code-review-agent/agent.ossa.yaml +1 -1
  121. package/examples/agents/03-data-analysis-agent/agent.ossa.yaml +1 -1
  122. package/examples/agents/04-content-moderator/agent.ossa.yaml +1 -1
  123. package/examples/agents/05-sales-assistant/agent.ossa.yaml +1 -1
  124. package/examples/agents/06-devops-agent/agent.ossa.yaml +1 -1
  125. package/examples/agents/07-research-assistant/agent.ossa.yaml +1 -1
  126. package/examples/agents/08-email-triage-agent/agent.ossa.yaml +1 -1
  127. package/examples/agents/09-security-scanner/agent.ossa.yaml +1 -1
  128. package/examples/agents/10-meeting-assistant/agent.ossa.yaml +1 -1
  129. package/examples/agents/architecture-healer-enterprise.yaml +1 -1
  130. package/examples/agents/dependency-healer-npm.yaml +1 -1
  131. package/examples/agents/spec-healer-openapi.yaml +1 -1
  132. package/examples/agents/wiki-healer-production.yaml +1 -1
  133. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  134. package/examples/agentscope/react-assistant/README.md +111 -0
  135. package/examples/agentscope/react-assistant/agent.ossa.yaml +132 -0
  136. package/examples/agentscope/react-assistant/skills/code-analysis/SKILL.md +18 -0
  137. package/examples/agentscope/react-assistant/skills/question-answering/SKILL.md +18 -0
  138. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
  139. package/examples/bridges/.gitlab-ci.yml +2 -2
  140. package/examples/build-once-use-everywhere/agent.ossa.yaml +1 -1
  141. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  142. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  143. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  144. package/examples/contracts/data-consumer.ossa.yaml +1 -1
  145. package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
  146. package/examples/contracts/data-producer.ossa.yaml +1 -1
  147. package/examples/drupal/QUICKSTART.md +17 -3
  148. package/examples/drupal/ai_agents_agentscope/README.md +62 -0
  149. package/examples/drupal/ai_agents_agentscope/ai_agents_agentscope.info.yml +13 -0
  150. package/examples/drupal/ai_agents_agentscope/ai_agents_agentscope.services.yml +4 -0
  151. package/examples/drupal/ai_agents_agentscope/config/install/ai_agents_agentscope.settings.yml +3 -0
  152. package/examples/drupal/ai_agents_agentscope/config/schema/ai_agents_agentscope.schema.yml +14 -0
  153. package/examples/drupal/ai_agents_agentscope/src/AgentScopeRuntime.php +11 -0
  154. package/examples/drupal/ai_agents_agentscope/src/Plugin/AiAgent/AgentScopeAgent.php +10 -0
  155. package/examples/drupal/ai_agents_agentscope/src/Plugin/AiProvider/AgentScopeProvider.php +217 -0
  156. package/examples/drupal/ai_agents_agentscope/src/Plugin/Derivative/AgentScopeDeriver.php +10 -0
  157. package/examples/drupal/ai_agents_agentscope/src/Service/AgentScopeAdapter.php +9 -0
  158. package/examples/drupal/content-moderator.ossa.yaml +1 -1
  159. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  160. package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +1 -1
  161. package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +1 -1
  162. package/examples/extensions/agents-md-advanced.yml +1 -1
  163. package/examples/extensions/agents-md-basic.yml +1 -1
  164. package/examples/extensions/agents-md-sync.yml +1 -1
  165. package/examples/extensions/agents-md-v1.yml +1 -1
  166. package/examples/extensions/drupal-v1.yml +1 -1
  167. package/examples/extensions/encryption-multi-provider.yaml +4 -4
  168. package/examples/extensions/kagent-v1.yml +1 -1
  169. package/examples/extensions/knowledge-sources.yaml +1 -1
  170. package/examples/extensions/mcp-full-featured.yaml +1 -1
  171. package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
  172. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  173. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  174. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
  175. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  176. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  177. package/examples/gitlab-agents/daily-code-scan/.gitlab-ci.yml +2 -2
  178. package/examples/gitlab-agents/duo-comment-responder/.gitlab-ci.yml +2 -2
  179. package/examples/gitlab-agents/mr-reviewer/.gitlab-ci.yml +2 -2
  180. package/examples/gitlab-agents/pipeline-auto-fix/.gitlab-ci.yml +2 -2
  181. package/examples/gitlab-agents/pre-commit-quality-check/.gitlab-ci.yml +2 -2
  182. package/examples/gitlab-agents/pre-push-validation/.gitlab-ci.yml +2 -2
  183. package/examples/hierarchical-agent.ossa.yaml +1 -1
  184. package/examples/infrastructure/token-rotation/manifest.ossa.yaml +1 -1
  185. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +1 -1
  186. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  187. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  188. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  189. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  190. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  191. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  192. package/examples/knowledge-graph/drupal-agent-with-kg.ossa.yaml +1 -1
  193. package/examples/mcp/browser-puppeteer.ossa.yaml +1 -1
  194. package/examples/mcp/database-mcp.ossa.yaml +1 -1
  195. package/examples/mcp/filesystem-mcp.ossa.yaml +1 -1
  196. package/examples/messaging/dependency-healer.ossa.yaml +1 -1
  197. package/examples/messaging/incident-responder.ossa.yaml +1 -1
  198. package/examples/messaging/routing-rules.ossa.yaml +1 -1
  199. package/examples/messaging/security-scanner.ossa.yaml +1 -1
  200. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  201. package/examples/migrations/langchain/01-python-react-agent-after.ossa.yaml +1 -1
  202. package/examples/migrations/langchain/02-typescript-conversational-after.ossa.yaml +1 -1
  203. package/examples/migrations/langchain/03-sequential-chain-after.ossa.yaml +1 -1
  204. package/examples/migrations/langchain/04-config-based-after.ossa.yaml +1 -1
  205. package/examples/migrations/swarm-to-ossa/after-handoffs.ossa.yaml +6 -6
  206. package/examples/migrations/swarm-to-ossa/after-triage-agent.ossa.yaml +3 -3
  207. package/examples/mr-reviewer-with-governance.ossa.yaml +1 -1
  208. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  209. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  210. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  211. package/examples/multi-agent-research-workflow.ossa.yaml +1 -1
  212. package/examples/multi-platform/single-manifest/agent.ossa.yaml +1 -1
  213. package/examples/observability/activity-stream-full.yaml +1 -1
  214. package/examples/openai/basic-agent.ossa.yaml +1 -1
  215. package/examples/ossa-templates/01-code-assistant.ossa.yaml +1 -1
  216. package/examples/ossa-templates/02-security-scanner.ossa.yaml +1 -1
  217. package/examples/ossa-templates/03-ci-pipeline.ossa.yaml +1 -1
  218. package/examples/ossa-templates/04-code-reviewer.ossa.yaml +1 -1
  219. package/examples/ossa-templates/05-doc-generator.ossa.yaml +1 -1
  220. package/examples/ossa-templates/06-compliance-validator.ossa.yaml +1 -1
  221. package/examples/ossa-templates/07-workflow-orchestrator.ossa.yaml +1 -1
  222. package/examples/ossa-templates/08-content-writer.ossa.yaml +1 -1
  223. package/examples/ossa-templates/09-test-generator.ossa.yaml +1 -1
  224. package/examples/ossa-templates/10-data-transformer.ossa.yaml +1 -1
  225. package/examples/ossa-templates/11-react-performance-expert.ossa.yaml +1 -1
  226. package/examples/ossa-templates/12-typescript-type-safety-expert.ossa.yaml +1 -1
  227. package/examples/ossa-templates/13-accessibility-champion.ossa.yaml +1 -1
  228. package/examples/ossa-templates/14-security-hardening-agent.ossa.yaml +1 -1
  229. package/examples/pipeline-agent.ossa.yaml +1 -1
  230. package/examples/production/document-analyzer-openai.yml +1 -1
  231. package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +1 -1
  232. package/examples/production-ready/02-code-review-agent/agent.ossa.yaml +1 -1
  233. package/examples/production-ready/03-data-analysis-agent/agent.ossa.yaml +1 -1
  234. package/examples/production-ready/04-content-moderator/agent.ossa.yaml +1 -1
  235. package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +1 -1
  236. package/examples/production-ready/06-devops-agent/agent.ossa.yaml +1 -1
  237. package/examples/production-ready/07-research-assistant/agent.ossa.yaml +1 -1
  238. package/examples/production-ready/08-email-triage-agent/agent.ossa.yaml +1 -1
  239. package/examples/production-ready/09-security-scanner/agent.ossa.yaml +1 -1
  240. package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +1 -1
  241. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  242. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
  243. package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
  244. package/examples/registry/agents/code-reviewer/agent.yaml +1 -1
  245. package/examples/registry/agents/security-scanner/agent.yaml +1 -1
  246. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
  247. package/examples/schema/reusable-components.yaml +1 -1
  248. package/examples/showcase/ci-pipeline.ossa.yaml +1 -1
  249. package/examples/showcase/code-assistant.ossa.yaml +1 -1
  250. package/examples/showcase/code-reviewer.ossa.yaml +1 -1
  251. package/examples/showcase/compliance-checker.ossa.yaml +1 -1
  252. package/examples/showcase/compliance-validator.ossa.yaml +1 -1
  253. package/examples/showcase/content-writer.ossa.yaml +1 -1
  254. package/examples/showcase/customer-support.ossa.yaml +1 -1
  255. package/examples/showcase/data-processing-pipeline.ossa.yaml +1 -1
  256. package/examples/showcase/data-transformer.ossa.yaml +1 -1
  257. package/examples/showcase/doc-generator.ossa.yaml +1 -1
  258. package/examples/showcase/full-power-agent.ossa.yaml +1 -1
  259. package/examples/showcase/security-scanner-enhanced.ossa.yaml +1 -1
  260. package/examples/showcase/security-scanner.ossa.yaml +1 -1
  261. package/examples/showcase/team-leader.ossa.yaml +1 -1
  262. package/examples/showcase/test-generator.ossa.yaml +1 -1
  263. package/examples/showcase/workflow-orchestrator.ossa.yaml +1 -1
  264. package/examples/skills-example.ossa.yaml +1 -1
  265. package/examples/swarm-agent.ossa.yaml +1 -1
  266. package/examples/tasks/batch-email-sender.yaml +1 -1
  267. package/examples/tasks/data-transform.yaml +1 -1
  268. package/examples/tasks/publish-content.yaml +1 -1
  269. package/examples/team-agent.ossa.yaml +1 -1
  270. package/examples/templates/ossa-compliance.yaml +1 -1
  271. package/examples/unified/security-scanner.ossa.yaml +1 -1
  272. package/examples/workflows/batch-email-campaign.yaml +1 -1
  273. package/examples/workflows/content-review-publish.yaml +1 -1
  274. package/examples/workflows/simple-etl.yaml +1 -1
  275. package/package.json +6 -7
  276. package/spec/reference/reference-agents/compliance-auditor/manifest.ossa.yaml +1 -1
  277. package/spec/reference/reference-agents/doc-agent/manifest.ossa.yaml +1 -1
  278. package/spec/reference/reference-agents/mr-reviewer/manifest.ossa.yaml +1 -1
  279. package/spec/reference/reference-agents/ossa-validator-v0.3/manifest.ossa.yaml +1 -1
  280. package/spec/reference/reference-agents/pipeline-fixer/manifest.ossa.yaml +1 -1
  281. package/spec/reference/reference-agents/release-orchestrator/manifest.ossa.yaml +1 -1
  282. package/spec/v0.4/agent-card.schema.json +1 -1
  283. package/spec/v0.4/agent.schema.json +84 -15
  284. package/spec/v0.4/extensions/a2a/a2a.schema.json +1 -1
  285. package/spec/v0.4/extensions/ag2/ag2.schema.json +1 -1
  286. package/spec/v0.4/extensions/crewai/crewai.schema.json +1 -1
  287. package/spec/v0.4/extensions/kagent/kagent.schema.json +1 -1
  288. package/spec/v0.4/extensions/langchain/langchain.schema.json +1 -1
  289. package/spec/v0.4/extensions/langgraph/langgraph.schema.json +1 -1
  290. package/spec/v0.4/extensions/mcp/mcp.schema.json +1 -1
  291. package/templates/agent-types/claude-agent.ossa.yaml +1 -1
  292. package/templates/agent-types/kagent.ossa.yaml +1 -1
  293. package/templates/agent-types/langchain-agent.ossa.yaml +1 -1
  294. package/templates/agent-types/openapi-agent.ossa.yaml +1 -1
  295. package/templates/agent-types/swarm-agents.ossa.yaml +1 -1
  296. package/templates/ci-cd/gitlab-ci.deploy.yml +2 -2
  297. package/templates/validators/capability-compatibility.ossa.yaml +1 -1
  298. package/templates/validators/coordination-consistency.ossa.yaml +1 -1
  299. package/templates/validators/pattern-requirements.ossa.yaml +1 -1
  300. package/templates/validators/transport-compatibility.ossa.yaml +1 -1
@@ -0,0 +1,217 @@
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Drupal\ai_agents_agentscope\Plugin\AiProvider;
6
+
7
+ use Drupal\ai\Attribute\AiProvider;
8
+ use Drupal\ai\Base\AiProviderClientBase;
9
+ use Drupal\ai\Exception\AiResponseErrorException;
10
+ use Drupal\ai\OperationType\Chat\ChatInput;
11
+ use Drupal\ai\OperationType\Chat\ChatInterface;
12
+ use Drupal\ai\OperationType\Chat\ChatMessage;
13
+ use Drupal\ai\OperationType\Chat\ChatOutput;
14
+ use Drupal\Core\Config\ImmutableConfig;
15
+ use Drupal\Core\StringTranslation\TranslatableMarkup;
16
+ use GuzzleHttp\Exception\GuzzleException;
17
+
18
+ /**
19
+ * AiProvider plugin that bridges to AgentScope's Python HTTP API.
20
+ *
21
+ * This is a thin bridge. All agent plugin derivation, manifest reading,
22
+ * and OSSA integration is handled by ai_agents_ossa. This provider ONLY
23
+ * provides the HTTP transport layer to speak AgentScope's REST API.
24
+ *
25
+ * AgentScope runtime exposes:
26
+ * - POST /api/v1/agent/message — send a message, get a response
27
+ * - GET /api/v1/health — health check
28
+ * - GET /api/v1/agents — list registered agents
29
+ */
30
+ #[AiProvider(
31
+ id: 'agentscope',
32
+ label: new TranslatableMarkup('AgentScope'),
33
+ )]
34
+ class AgentScopeProvider extends AiProviderClientBase implements ChatInterface {
35
+
36
+ /**
37
+ * {@inheritdoc}
38
+ */
39
+ public function getConfiguredModels(?string $operation_type = NULL, array $capabilities = []): array {
40
+ // AgentScope doesn't expose a model list — agents are the unit of work.
41
+ // Return a single virtual model representing the AgentScope runtime.
42
+ return [
43
+ 'agentscope-runtime' => [
44
+ 'label' => 'AgentScope Runtime',
45
+ 'model_id' => 'agentscope-runtime',
46
+ 'operation_types' => ['chat'],
47
+ ],
48
+ ];
49
+ }
50
+
51
+ /**
52
+ * {@inheritdoc}
53
+ */
54
+ public function isUsable(?string $operation_type = NULL, array $capabilities = []): bool {
55
+ $config = $this->getConfig();
56
+ $endpoint = $config->get('endpoint');
57
+
58
+ if (empty($endpoint)) {
59
+ return FALSE;
60
+ }
61
+
62
+ if ($operation_type) {
63
+ return in_array($operation_type, $this->getSupportedOperationTypes());
64
+ }
65
+
66
+ return TRUE;
67
+ }
68
+
69
+ /**
70
+ * {@inheritdoc}
71
+ */
72
+ public function getSupportedOperationTypes(): array {
73
+ return ['chat'];
74
+ }
75
+
76
+ /**
77
+ * {@inheritdoc}
78
+ */
79
+ public function getConfig(): ImmutableConfig {
80
+ return $this->configFactory->get('ai_agents_agentscope.settings');
81
+ }
82
+
83
+ /**
84
+ * {@inheritdoc}
85
+ */
86
+ public function getApiDefinition(): array {
87
+ return [
88
+ 'chat' => [
89
+ 'temperature' => [
90
+ 'type' => 'float',
91
+ 'default' => 0.7,
92
+ 'description' => 'Sampling temperature for the agent response.',
93
+ ],
94
+ 'max_tokens' => [
95
+ 'type' => 'integer',
96
+ 'default' => 2048,
97
+ 'description' => 'Maximum tokens in the response.',
98
+ ],
99
+ ],
100
+ ];
101
+ }
102
+
103
+ /**
104
+ * {@inheritdoc}
105
+ */
106
+ public function getModelSettings(string $model_id, array $generalConfig = []): array {
107
+ return $generalConfig;
108
+ }
109
+
110
+ /**
111
+ * {@inheritdoc}
112
+ */
113
+ public function setAuthentication(mixed $authentication): void {
114
+ // AgentScope runtime may not require auth, but store it if provided.
115
+ }
116
+
117
+ /**
118
+ * {@inheritdoc}
119
+ */
120
+ public function chat(array|string|ChatInput $input, string $model_id, array $tags = []): ChatOutput {
121
+ $config = $this->getConfig();
122
+ $endpoint = rtrim($config->get('endpoint') ?? 'http://127.0.0.1:12310', '/');
123
+ $timeout = (int) ($config->get('timeout') ?? 60);
124
+
125
+ // Build the message payload from ChatInput.
126
+ $messages = [];
127
+ if ($input instanceof ChatInput) {
128
+ foreach ($input->getMessages() as $message) {
129
+ $messages[] = [
130
+ 'role' => $message->getRole(),
131
+ 'content' => $message->getText(),
132
+ ];
133
+ }
134
+ }
135
+ elseif (is_string($input)) {
136
+ $messages[] = [
137
+ 'role' => 'user',
138
+ 'content' => $input,
139
+ ];
140
+ }
141
+ elseif (is_array($input)) {
142
+ $messages = $input;
143
+ }
144
+
145
+ // Extract the last user message as the prompt for AgentScope.
146
+ $prompt = '';
147
+ foreach (array_reverse($messages) as $msg) {
148
+ if (($msg['role'] ?? '') === 'user') {
149
+ $prompt = $msg['content'] ?? '';
150
+ break;
151
+ }
152
+ }
153
+
154
+ if (empty($prompt)) {
155
+ $prompt = end($messages)['content'] ?? '';
156
+ }
157
+
158
+ // Determine agent_id from tags or model_id.
159
+ $agentId = $tags['agent_id'] ?? $model_id;
160
+
161
+ $payload = [
162
+ 'agent_id' => $agentId,
163
+ 'message' => $prompt,
164
+ ];
165
+
166
+ // Pass model configuration if available from tags.
167
+ if (!empty($tags['model_config'])) {
168
+ $payload['config'] = $tags['model_config'];
169
+ }
170
+
171
+ try {
172
+ $response = $this->httpClient->request('POST', $endpoint . '/api/v1/agent/message', [
173
+ 'json' => $payload,
174
+ 'timeout' => $timeout,
175
+ 'headers' => array_filter([
176
+ 'Accept' => 'application/json',
177
+ 'Content-Type' => 'application/json',
178
+ 'Authorization' => $config->get('api_key') ? 'Bearer ' . $config->get('api_key') : NULL,
179
+ ]),
180
+ ]);
181
+
182
+ $body = json_decode((string) $response->getBody(), TRUE);
183
+ $content = $body['content'] ?? $body['response'] ?? '';
184
+
185
+ $message = new ChatMessage('model', $content);
186
+ return new ChatOutput($message, $body, $body['metadata'] ?? []);
187
+ }
188
+ catch (GuzzleException $e) {
189
+ throw new AiResponseErrorException(
190
+ sprintf('AgentScope runtime request failed: %s', $e->getMessage())
191
+ );
192
+ }
193
+ }
194
+
195
+ /**
196
+ * Checks if the AgentScope runtime is reachable.
197
+ *
198
+ * @return bool
199
+ * TRUE if the runtime health check passes.
200
+ */
201
+ public function isHealthy(): bool {
202
+ $config = $this->getConfig();
203
+ $endpoint = rtrim($config->get('endpoint') ?? 'http://127.0.0.1:12310', '/');
204
+
205
+ try {
206
+ $response = $this->httpClient->request('GET', $endpoint . '/api/v1/health', [
207
+ 'timeout' => 5,
208
+ ]);
209
+
210
+ return $response->getStatusCode() === 200;
211
+ }
212
+ catch (GuzzleException) {
213
+ return FALSE;
214
+ }
215
+ }
216
+
217
+ }
@@ -0,0 +1,10 @@
1
+ <?php
2
+
3
+ /**
4
+ * @file
5
+ * DELETED - This file is no longer needed.
6
+ *
7
+ * The ai_agents_ossa module provides OssaAgentDeriver which already derives
8
+ * AiAgent plugins from OSSA config entities. This duplicate deriver was
9
+ * unnecessary. Remove this file.
10
+ */
@@ -0,0 +1,9 @@
1
+ <?php
2
+
3
+ /**
4
+ * @file
5
+ * DELETED — This file is no longer needed.
6
+ *
7
+ * The ai_agents_ossa module handles all manifest reading and entity management.
8
+ * This adapter was duplicating that functionality. Remove this file.
9
+ */
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: content_moderator
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: gitlab-ml-recommender
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: production-agent-with-memory
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: production-agent-with-tools
@@ -1,7 +1,7 @@
1
1
  # OSSA agents.md Extension - Advanced Example
2
2
  # Demonstrates advanced features including Cursor integration and custom sections
3
3
 
4
- apiVersion: ossa/v0.4.6
4
+ apiVersion: ossa/v0.4.7
5
5
  kind: Agent
6
6
  metadata:
7
7
  name: fullstack-dev-agent
@@ -1,7 +1,7 @@
1
1
  # OSSA agents.md Extension - Basic Example
2
2
  # Demonstrates basic agents.md generation from OSSA manifest
3
3
 
4
- apiVersion: ossa/v0.4.6
4
+ apiVersion: ossa/v0.4.7
5
5
  kind: Agent
6
6
  metadata:
7
7
  name: code-review-agent
@@ -1,7 +1,7 @@
1
1
  # OSSA agents.md Extension - Sync Example
2
2
  # Demonstrates automatic synchronization configuration
3
3
 
4
- apiVersion: ossa/v0.4.6
4
+ apiVersion: ossa/v0.4.7
5
5
  kind: Agent
6
6
  metadata:
7
7
  name: docs-agent
@@ -2,7 +2,7 @@
2
2
  # agents.md standard: repository-level agent guidance (AAIF / agents.md)
3
3
  # See: https://agents.md | https://github.com/agentsmd/agents.md
4
4
 
5
- apiVersion: ossa/v0.4.6
5
+ apiVersion: ossa/v0.4.7
6
6
  kind: ExtensionSchema
7
7
  metadata:
8
8
  name: agents-md-extension
@@ -2,7 +2,7 @@
2
2
  # Extension specification for Drupal LLM Platform deployment
3
3
  # Compatible with Drupal 10+ and llm-platform modules
4
4
 
5
- apiVersion: ossa/v0.4.6
5
+ apiVersion: ossa/v0.4.7
6
6
  kind: ExtensionSchema
7
7
  metadata:
8
8
  name: drupal-extension
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: secure-agent
@@ -28,7 +28,7 @@ spec:
28
28
  interval_days: 90
29
29
 
30
30
  ---
31
- apiVersion: ossa/v0.4.6
31
+ apiVersion: ossa/v0.4.7
32
32
  kind: Agent
33
33
  metadata:
34
34
  name: vault-encrypted-agent
@@ -57,7 +57,7 @@ spec:
57
57
  - "*" # Encrypt all fields
58
58
 
59
59
  ---
60
- apiVersion: ossa/v0.4.6
60
+ apiVersion: ossa/v0.4.7
61
61
  kind: Agent
62
62
  metadata:
63
63
  name: gcp-kms-agent
@@ -86,7 +86,7 @@ spec:
86
86
  - pii_fields
87
87
 
88
88
  ---
89
- apiVersion: ossa/v0.4.6
89
+ apiVersion: ossa/v0.4.7
90
90
  kind: Agent
91
91
  metadata:
92
92
  name: azure-keyvault-agent
@@ -2,7 +2,7 @@
2
2
  # Production-grade specification for Kubernetes-native agent deployment
3
3
  # Compatible with kagent.dev/v1alpha1 CRDs
4
4
 
5
- apiVersion: ossa/v0.4.6
5
+ apiVersion: ossa/v0.4.7
6
6
  kind: ExtensionSchema
7
7
  metadata:
8
8
  name: kagent-extension
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: rag-agent
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: mcp-powered-agent
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: hello-world-agent
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: code-assistant
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: secure-assistant
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: security-scanner
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Workflow
3
3
  metadata:
4
4
  name: code-review-pipeline
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: hello-world-agent
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:daily-code-scan:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:duo-comment-responder:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:mr-reviewer:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:pipeline-auto-fix:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:pre-commit-quality-check:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -20,9 +20,9 @@ build:
20
20
 
21
21
  deploy:pre-push-validation:
22
22
  stage: deploy
23
- image: docker:24
23
+ image: docker:27
24
24
  services:
25
- - docker:24-dind
25
+ - docker:27-dind
26
26
  before_script:
27
27
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
28
28
  script:
@@ -12,7 +12,7 @@
12
12
  # - Context isolation enforced for all subagents
13
13
  # - Results flow up: subagent -> parent -> user
14
14
 
15
- apiVersion: ossa/v0.4.6
15
+ apiVersion: ossa/v0.4.7
16
16
  kind: Agent
17
17
  metadata:
18
18
  name: code-review-pipeline
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: token-rotation-manager
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: workflow-orchestrator
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: compliance-validator
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: cost-optimizer
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: documentation-agent
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: k8s-troubleshooter
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: k8s-troubleshooter
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: security-scanner
@@ -1,7 +1,7 @@
1
1
  # OSSA v0.4.1 Agent with Knowledge Graph Extension
2
2
  # Portable, configurable - works with ANY git platform, vector DB, wiki format
3
3
 
4
- apiVersion: ossa/v0.4.6
4
+ apiVersion: ossa/v0.4.7
5
5
  kind: Agent
6
6
 
7
7
  metadata:
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: browser-automation-agent
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: database-assistant
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: filesystem-assistant
@@ -3,7 +3,7 @@
3
3
  # This agent monitors dependencies, detects outdated packages, and coordinates
4
4
  # updates while communicating with security scanners via OSSA messaging.
5
5
 
6
- apiVersion: ossa/v0.4.6
6
+ apiVersion: ossa/v0.4.7
7
7
  kind: Agent
8
8
  metadata:
9
9
  name: dependency-healer
@@ -3,7 +3,7 @@
3
3
  # This agent receives security incidents from multiple sources and coordinates
4
4
  # response activities across teams via OSSA messaging.
5
5
 
6
- apiVersion: ossa/v0.4.6
6
+ apiVersion: ossa/v0.4.7
7
7
  kind: Agent
8
8
  metadata:
9
9
  name: incident-responder
@@ -4,7 +4,7 @@
4
4
  # in a multi-agent security system. It implements the routing rules
5
5
  # for the security-scanner, dependency-healer, and incident-responder agents.
6
6
 
7
- apiVersion: ossa/v0.4.6
7
+ apiVersion: ossa/v0.4.7
8
8
  kind: Workflow
9
9
  metadata:
10
10
  name: security-workflow-routing
@@ -1,4 +1,4 @@
1
- apiVersion: ossa/v0.4.6
1
+ apiVersion: ossa/v0.4.7
2
2
  kind: Agent
3
3
  metadata:
4
4
  name: security-scanner