@bluefly/openstandardagents 0.2.7 → 0.2.9

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 (327) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.github/AGENTS.md +245 -0
  4. package/.github/agents/github-issue-triage.ossa.yaml +99 -0
  5. package/.github/agents/github-pr-triage.ossa.yaml +137 -0
  6. package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
  7. package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
  8. package/.version.json +2 -2
  9. package/.wiki-config.json +24 -0
  10. package/CHANGELOG.md +44 -18
  11. package/CODEOWNERS +75 -0
  12. package/CONTRIBUTING.md +103 -4
  13. package/README.md +178 -243
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/repositories/schema.repository.d.ts +6 -1
  19. package/dist/repositories/schema.repository.d.ts.map +1 -1
  20. package/dist/repositories/schema.repository.js +49 -27
  21. package/dist/repositories/schema.repository.js.map +1 -1
  22. package/dist/services/migration.service.d.ts +4 -3
  23. package/dist/services/migration.service.d.ts.map +1 -1
  24. package/dist/services/migration.service.js +11 -10
  25. package/dist/services/migration.service.js.map +1 -1
  26. package/dist/services/release-automation/release.service.js +1 -1
  27. package/dist/services/release-automation/release.service.js.map +1 -1
  28. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  29. package/dist/services/release-automation/webhook.service.js +3 -3
  30. package/dist/services/release-automation/webhook.service.js.map +1 -1
  31. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  32. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  33. package/dist/services/runtime/claude/claude-adapter.js +2 -2
  34. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  35. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  36. package/dist/spec/v0.2.8/README.md +72 -0
  37. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  38. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  39. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  40. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  41. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  42. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  43. package/dist/spec/v0.2.9/agent.md +1946 -0
  44. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  45. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  46. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  47. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  48. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  49. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  50. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  51. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  52. package/dist/spec/v0.2.9/security-model.md +1245 -0
  53. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  54. package/dist/spec/v0.2.9/types.ts +522 -0
  55. package/dist/types/index.d.ts +3 -2
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/policy.d.ts +377 -0
  58. package/dist/types/policy.d.ts.map +1 -0
  59. package/dist/types/policy.js +84 -0
  60. package/dist/types/policy.js.map +1 -0
  61. package/dist/utils/index.d.ts +6 -0
  62. package/dist/utils/index.d.ts.map +1 -0
  63. package/dist/utils/index.js +6 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/dist/utils/version.d.ts +68 -0
  66. package/dist/utils/version.d.ts.map +1 -0
  67. package/dist/utils/version.js +156 -0
  68. package/dist/utils/version.js.map +1 -0
  69. package/docs/specs/policy-dsl.md +925 -0
  70. package/eslint-report.json +1 -0
  71. package/examples/adk-integration/code-review-workflow.yml +1 -1
  72. package/examples/adk-integration/customer-support.yml +1 -1
  73. package/examples/adk-integration/data-pipeline.yml +1 -1
  74. package/examples/advanced/reasoning-agent.yaml +136 -0
  75. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  76. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  77. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  78. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  79. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  80. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  81. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  82. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  83. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  84. package/examples/agents-md/code-agent.ossa.json +100 -0
  85. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  86. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  87. package/examples/autogen/multi-agent.ossa.json +1 -1
  88. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  89. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  90. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  91. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  92. package/examples/crewai/research-team.ossa.json +1 -1
  93. package/examples/cursor/code-review-agent.ossa.json +1 -1
  94. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  95. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  96. package/examples/extensions/agents-md-v1.yml +175 -0
  97. package/examples/extensions/drupal-v1.yml +1 -1
  98. package/examples/extensions/kagent-v1.yml +1 -1
  99. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  100. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  101. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  102. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  103. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  104. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  105. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  106. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  107. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  108. package/examples/langchain/chain-agent.ossa.json +1 -1
  109. package/examples/langflow/workflow-agent.ossa.json +1 -1
  110. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  111. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  112. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  113. package/examples/multi-agent/README.md +74 -0
  114. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  115. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  116. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  117. package/examples/openai/basic-agent.ossa.yaml +1 -1
  118. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  119. package/examples/openai/swarm-agent.ossa.json +1 -1
  120. package/examples/production/document-analyzer-openai.yml +1 -1
  121. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  122. package/examples/spec-examples/audit-agent.yml +1 -1
  123. package/examples/spec-examples/chat-agent.yml +1 -1
  124. package/examples/spec-examples/compliance-agent.yml +1 -1
  125. package/examples/spec-examples/monitoring-agent.yml +1 -1
  126. package/examples/spec-examples/workflow-agent.yml +1 -1
  127. package/examples/templates/ossa-compliance.yaml +1 -1
  128. package/examples/vercel/edge-agent.ossa.json +1 -1
  129. package/gl-code-quality-report.json +62 -0
  130. package/llms-ctx-full.txt +39 -0
  131. package/llms-ctx.txt +39 -0
  132. package/llms.txt +47 -0
  133. package/package.json +6 -3
  134. package/scripts/README.md +25 -0
  135. package/scripts/compliance-audit.ts +796 -0
  136. package/scripts/eslint-to-codequality.cjs +34 -0
  137. package/scripts/generate-agents-catalog.ts +2 -1
  138. package/scripts/generate-api-docs.ts +2 -1
  139. package/scripts/generate-examples-docs.ts +2 -1
  140. package/scripts/generate-llms-ctx.sh +17 -0
  141. package/scripts/generate-schema-docs.ts +31 -10
  142. package/scripts/sync-version.js +4 -12
  143. package/scripts/validate-schema.ts +2 -1
  144. package/spec/v0.2.8/CHANGELOG.md +401 -0
  145. package/spec/v0.2.8/README.md +72 -0
  146. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  147. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  148. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  149. package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  150. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  151. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  152. package/spec/v0.2.9/agent.md +1946 -0
  153. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  154. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  155. package/spec/v0.2.9/capability-schema.md +576 -0
  156. package/spec/v0.2.9/compliance-profiles.md +533 -0
  157. package/spec/v0.2.9/conformance-testing.md +1527 -0
  158. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  159. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  160. package/spec/v0.2.9/runtime-semantics.md +464 -0
  161. package/spec/v0.2.9/security-model.md +1245 -0
  162. package/spec/v0.2.9/semantic-conventions.md +347 -0
  163. package/spec/v0.2.9/types.ts +522 -0
  164. package/test-results/junit.xml +337 -0
  165. package/.github/workflows/pr-comment.yml +0 -33
  166. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  167. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
  168. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  169. package/scripts/lib/exec.ts +0 -37
  170. package/scripts/lib/file-ops.ts +0 -58
  171. package/scripts/lib/version.ts +0 -83
  172. package/website/.lighthouserc.ts +0 -24
  173. package/website/.prettierrc +0 -10
  174. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  175. package/website/Dockerfile +0 -30
  176. package/website/app/about/page.tsx +0 -304
  177. package/website/app/blog/[slug]/page.tsx +0 -208
  178. package/website/app/blog/page.tsx +0 -249
  179. package/website/app/design-guide/page.tsx +0 -511
  180. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  181. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  182. package/website/app/ecosystem/page.tsx +0 -410
  183. package/website/app/examples/page.tsx +0 -133
  184. package/website/app/globals.scss +0 -370
  185. package/website/app/layout.tsx +0 -106
  186. package/website/app/license/page.tsx +0 -183
  187. package/website/app/not-found.tsx +0 -18
  188. package/website/app/page.tsx +0 -686
  189. package/website/app/page.tsx.bak +0 -679
  190. package/website/app/page.tsx.bak2 +0 -649
  191. package/website/app/playground/page.tsx +0 -487
  192. package/website/app/robots.ts +0 -19
  193. package/website/app/rss.xml/route.ts +0 -74
  194. package/website/app/schema/page.tsx +0 -1001
  195. package/website/app/sitemap.ts +0 -56
  196. package/website/app/specification/page.tsx +0 -287
  197. package/website/components/InstallCommand.tsx +0 -96
  198. package/website/components/Logo.tsx +0 -97
  199. package/website/components/StructuredData.tsx +0 -65
  200. package/website/components/docs/DocsSearch.tsx +0 -104
  201. package/website/components/docs/DocsSidebar.tsx +0 -155
  202. package/website/components/docs/MarkdownContent.tsx +0 -401
  203. package/website/components/docs/VersionSelector.tsx +0 -105
  204. package/website/components/examples/ExamplesViewer.tsx +0 -293
  205. package/website/components/layout/Footer.tsx +0 -116
  206. package/website/components/layout/Header.tsx +0 -172
  207. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  208. package/website/components/schema/SchemaExplorer.tsx +0 -213
  209. package/website/components/ui/Badge.tsx +0 -82
  210. package/website/components/ui/Button.tsx +0 -116
  211. package/website/components/ui/Card.tsx +0 -167
  212. package/website/components/ui/Checkbox.tsx +0 -141
  213. package/website/components/ui/Input.tsx +0 -169
  214. package/website/components/ui/Radio.tsx +0 -141
  215. package/website/components/ui/Select.tsx +0 -182
  216. package/website/components/ui/Tag.tsx +0 -158
  217. package/website/components/ui/Textarea.tsx +0 -195
  218. package/website/components/ui/index.ts +0 -11
  219. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  220. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  221. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  222. package/website/content/blog/introducing-ossa-framework.md +0 -328
  223. package/website/content/blog/ossa-production-results.md +0 -279
  224. package/website/content/blog/welcome-to-ossa.md +0 -43
  225. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  226. package/website/content/docs/00-home.md +0 -153
  227. package/website/content/docs/adapters/openai-adapter.md +0 -693
  228. package/website/content/docs/agents/catalog.md +0 -28
  229. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  230. package/website/content/docs/api-reference/index.md +0 -38
  231. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  232. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  233. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  234. package/website/content/docs/architecture/execution-flow.md +0 -335
  235. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  236. package/website/content/docs/architecture/overview.md +0 -121
  237. package/website/content/docs/architecture/stack-integration.md +0 -461
  238. package/website/content/docs/changelog.md +0 -246
  239. package/website/content/docs/cli-reference/index.md +0 -111
  240. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  241. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  242. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  243. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  244. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  245. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  246. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  247. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  248. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  249. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  250. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  251. package/website/content/docs/configuration/index.md +0 -97
  252. package/website/content/docs/contributing.md +0 -599
  253. package/website/content/docs/deployment/github-mirroring.md +0 -924
  254. package/website/content/docs/documentation.md +0 -100
  255. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  256. package/website/content/docs/ecosystem/overview.md +0 -366
  257. package/website/content/docs/errors/index.md +0 -10
  258. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  259. package/website/content/docs/examples/catalog.md +0 -300
  260. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  261. package/website/content/docs/getting-started/index.md +0 -92
  262. package/website/content/docs/getting-started/installation.md +0 -155
  263. package/website/content/docs/getting-started/running-agents.md +0 -309
  264. package/website/content/docs/getting-started.md +0 -91
  265. package/website/content/docs/integrations/aiflow.md +0 -104
  266. package/website/content/docs/integrations/drupal.md +0 -105
  267. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  268. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  269. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  270. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  271. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  272. package/website/content/docs/migration-guides/index.md +0 -133
  273. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  274. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  275. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  276. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  277. package/website/content/docs/openapi-extensions/examples.md +0 -550
  278. package/website/content/docs/openapi-extensions/index.md +0 -551
  279. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  280. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  281. package/website/content/docs/ossa-compliant-badge.md +0 -251
  282. package/website/content/docs/pre-release/index.md +0 -175
  283. package/website/content/docs/quick-reference.md +0 -17
  284. package/website/content/docs/readme.md +0 -35
  285. package/website/content/docs/releases/v0.2.6.md +0 -99
  286. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  287. package/website/content/docs/schema-reference/agent-id.md +0 -52
  288. package/website/content/docs/schema-reference/agent-name.md +0 -50
  289. package/website/content/docs/schema-reference/agent-role.md +0 -54
  290. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  291. package/website/content/docs/schema-reference/agent-version.md +0 -50
  292. package/website/content/docs/schema-reference/autonomy.md +0 -568
  293. package/website/content/docs/schema-reference/constraints.md +0 -543
  294. package/website/content/docs/schema-reference/index.md +0 -45
  295. package/website/content/docs/schema-reference/llm-config.md +0 -445
  296. package/website/content/docs/schema-reference/observability.md +0 -654
  297. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  298. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  299. package/website/content/docs/schema-reference/tools.md +0 -628
  300. package/website/content/docs/templates/blog-post.md +0 -43
  301. package/website/content/docs/types-reference/index.md +0 -105
  302. package/website/content/docs/use-cases/00-index.md +0 -395
  303. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  304. package/website/content/docs/use-cases/customer-support.md +0 -1234
  305. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  306. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  307. package/website/content/docs/versioning.md +0 -288
  308. package/website/dev.sh +0 -53
  309. package/website/docker-compose.dev.yml +0 -36
  310. package/website/lib/version.ts +0 -35
  311. package/website/lib/versions.json +0 -103
  312. package/website/next.config.ts +0 -18
  313. package/website/nginx.conf +0 -32
  314. package/website/package-lock.json +0 -9679
  315. package/website/package.json +0 -59
  316. package/website/postcss.config.mjs +0 -9
  317. package/website/scripts/fetch-versions.js +0 -166
  318. package/website/scripts/generate-examples-index.js +0 -163
  319. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  320. package/website/scripts/sync-version.js +0 -72
  321. package/website/scripts/sync-wiki.ts +0 -322
  322. package/website/scripts/upload-wiki.ts +0 -199
  323. package/website/styles/_spacing.scss +0 -453
  324. package/website/styles/_tokens.scss +0 -245
  325. package/website/styles/_typography.scss +0 -361
  326. package/website/styles/_variables.scss +0 -287
  327. package/website/tailwind.config.ts +0 -170
@@ -0,0 +1,464 @@
1
+ # OSSA Runtime Semantics Specification
2
+
3
+ **Version**: 0.2.9
4
+ **Status**: Draft
5
+ **Last Updated**: 2025-12-04
6
+
7
+ This document defines the formal runtime semantics for OSSA-compliant agent execution. All OSSA runtime implementations MUST conform to these semantics.
8
+
9
+ ## 1. Turn Lifecycle
10
+
11
+ An OSSA agent turn consists of 7 sequential phases:
12
+
13
+ ```
14
+ ┌─────────────────────────────────────────────────────────────────┐
15
+ │ TURN LIFECYCLE │
16
+ ├─────────────────────────────────────────────────────────────────┤
17
+ │ │
18
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
19
+ │ │ 1. INIT │──▶│ 2. NORM │──▶│ 3. RESOL │──▶│ 4. INFER │ │
20
+ │ │ │ │ │ │ │ │ │ │
21
+ │ │ Generate │ │ Normalize│ │ Resolve │ │ LLM Call │ │
22
+ │ │ IDs │ │ Message │ │ Tools │ │ │ │
23
+ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
24
+ │ │ │
25
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
26
+ │ │ 7. EMIT │◀──│ 6. PERSIST│◀──│ 5. EXEC │◀────────┘ │
27
+ │ │ │ │ │ │ │ │
28
+ │ │ Observe │ │ State │ │ Tools │ │
29
+ │ │ │ │ │ │ │ │
30
+ │ └──────────┘ └──────────┘ └──────────┘ │
31
+ │ │
32
+ └─────────────────────────────────────────────────────────────────┘
33
+ ```
34
+
35
+ ### Phase 1: Initialization (INIT)
36
+
37
+ **Purpose**: Generate runtime identifiers and establish context.
38
+
39
+ ```typescript
40
+ interface InitPhase {
41
+ // MUST generate per spec.identity configuration
42
+ interaction_id: string; // New UUID per turn
43
+ session_id: string; // From context or new
44
+ instance_id: string; // Stable per pod/process
45
+
46
+ // MUST extract from context
47
+ trace_context: W3CTraceContext | null;
48
+ baggage: W3CBaggage | null;
49
+
50
+ // MUST record
51
+ turn_number: number;
52
+ started_at: ISO8601Timestamp;
53
+ }
54
+ ```
55
+
56
+ **Invariants**:
57
+ - `interaction_id` MUST be unique across all turns
58
+ - `session_id` MUST be consistent within a conversation
59
+ - `instance_id` MUST be stable for the agent instance lifetime
60
+
61
+ ### Phase 2: Message Normalization (NORM)
62
+
63
+ **Purpose**: Transform input into canonical message format.
64
+
65
+ ```typescript
66
+ interface NormalizedMessage {
67
+ role: 'user' | 'system' | 'assistant' | 'tool';
68
+ content: string | ContentPart[];
69
+ metadata: {
70
+ source: 'user' | 'api' | 'delegation';
71
+ original_format: string;
72
+ normalized_at: ISO8601Timestamp;
73
+ };
74
+ }
75
+
76
+ type ContentPart = TextPart | ImagePart | FilePart;
77
+ ```
78
+
79
+ **Rules**:
80
+ 1. All inputs MUST be converted to `NormalizedMessage`
81
+ 2. Content MUST be sanitized per `spec.safety.content_filtering`
82
+ 3. Multi-modal content MUST be split into `ContentPart[]`
83
+ 4. Original format MUST be preserved in metadata
84
+
85
+ ### Phase 3: Tool Resolution (RESOL)
86
+
87
+ **Purpose**: Resolve available tools from manifest and MCP servers.
88
+
89
+ ```typescript
90
+ interface ResolvedTool {
91
+ name: string;
92
+ description: string;
93
+ input_schema: JSONSchema;
94
+ source: ToolSource;
95
+ transport: 'function' | 'http' | 'mcp' | 'grpc';
96
+ timeout_ms: number;
97
+ retry_policy: RetryPolicy;
98
+ }
99
+
100
+ type ToolSource =
101
+ | { type: 'manifest'; tool_index: number }
102
+ | { type: 'mcp'; server_uri: string; capability: string }
103
+ | { type: 'delegation'; agent_id: string };
104
+ ```
105
+
106
+ **Rules**:
107
+ 1. Tools MUST be resolved from `spec.tools[]` array
108
+ 2. MCP tools MUST be discovered via `tools/list` call
109
+ 3. Tool schemas MUST be validated against JSON Schema
110
+ 4. Unavailable tools MUST be excluded with warning
111
+
112
+ ### Phase 4: LLM Inference (INFER)
113
+
114
+ **Purpose**: Execute LLM call with resolved context.
115
+
116
+ ```typescript
117
+ interface InferenceRequest {
118
+ model: string; // From spec.llm.model
119
+ messages: NormalizedMessage[]; // Conversation history
120
+ tools: ResolvedTool[]; // Available tools
121
+ system_prompt: string; // From spec.role or spec.prompts
122
+ parameters: LLMParameters; // From spec.llm.parameters
123
+ }
124
+
125
+ interface InferenceResponse {
126
+ content: string | null;
127
+ tool_calls: ToolCallRequest[];
128
+ finish_reason: 'stop' | 'length' | 'tool_use' | 'content_filter';
129
+ usage: TokenUsage;
130
+ model: string; // Actual model used
131
+ }
132
+ ```
133
+
134
+ **Rules**:
135
+ 1. System prompt MUST include `spec.role`
136
+ 2. Few-shot examples from `spec.prompts.few_shot_examples` MUST be prepended
137
+ 3. Token limits from `spec.constraints` MUST be enforced
138
+ 4. Timeout from `spec.constraints.timeout_seconds` MUST be enforced
139
+
140
+ ### Phase 5: Tool Execution (EXEC)
141
+
142
+ **Purpose**: Execute requested tool calls.
143
+
144
+ ```typescript
145
+ interface ToolExecution {
146
+ call_id: string;
147
+ tool_name: string;
148
+ input: unknown;
149
+ started_at: ISO8601Timestamp;
150
+ completed_at: ISO8601Timestamp;
151
+ result: ToolResult;
152
+ retries: number;
153
+ }
154
+
155
+ type ToolResult =
156
+ | { status: 'success'; output: unknown }
157
+ | { status: 'error'; error: ToolError }
158
+ | { status: 'timeout'; partial_output?: unknown };
159
+ ```
160
+
161
+ **Execution Order**:
162
+ 1. Tool calls MAY execute in parallel if `spec.tools[].parallel: true`
163
+ 2. By default, tools execute sequentially in request order
164
+ 3. Failed tools MUST be retried per `spec.reliability.retry`
165
+ 4. Circuit breaker MUST trip after threshold failures
166
+
167
+ **Rules**:
168
+ 1. Each tool call MUST have unique `call_id`
169
+ 2. Tool input MUST validate against tool's `input_schema`
170
+ 3. Tool output MUST be serializable to JSON
171
+ 4. Sensitive outputs MUST be redacted per `spec.security.output_filtering`
172
+
173
+ ### Phase 6: State Persistence (PERSIST)
174
+
175
+ **Purpose**: Persist state changes atomically.
176
+
177
+ ```typescript
178
+ interface StatePersistence {
179
+ mode: 'none' | 'session' | 'persistent';
180
+ storage: StateStorage;
181
+ changes: StateChange[];
182
+ transaction_id: string;
183
+ }
184
+
185
+ interface StateChange {
186
+ key: string;
187
+ previous_value: unknown | null;
188
+ new_value: unknown;
189
+ operation: 'set' | 'delete' | 'append';
190
+ }
191
+ ```
192
+
193
+ **Transaction Semantics**:
194
+ 1. All state changes within a turn MUST be atomic
195
+ 2. On failure, all changes MUST be rolled back
196
+ 3. State MUST be isolated per `spec.state.isolation_level`:
197
+ - `read_uncommitted`: No isolation
198
+ - `read_committed`: See only committed state
199
+ - `serializable`: Full isolation (default)
200
+
201
+ ### Phase 7: Observability Emission (EMIT)
202
+
203
+ **Purpose**: Emit telemetry data.
204
+
205
+ ```typescript
206
+ interface ObservabilityEmission {
207
+ // Tracing
208
+ span: OTelSpan;
209
+
210
+ // Metrics
211
+ metrics: {
212
+ tokens_input: number;
213
+ tokens_output: number;
214
+ latency_ms: number;
215
+ tool_calls: number;
216
+ errors: number;
217
+ };
218
+
219
+ // Logging
220
+ log_entries: LogEntry[];
221
+
222
+ // Activity Stream (if enabled)
223
+ event?: CloudEvent;
224
+ }
225
+ ```
226
+
227
+ **Rules**:
228
+ 1. Span MUST include all attributes from semantic-conventions.md
229
+ 2. Metrics MUST NOT include high-cardinality attributes
230
+ 3. Logs MUST be correlated via `trace_id` and `span_id`
231
+ 4. CloudEvents MUST conform to spec/v0.2.9/cloudevents.md
232
+
233
+ ---
234
+
235
+ ## 2. Error Handling
236
+
237
+ ### Error Code Taxonomy
238
+
239
+ ```typescript
240
+ type ErrorCode =
241
+ // Input Errors (4xx equivalent)
242
+ | 'VALIDATION_ERROR' // Invalid input format
243
+ | 'SCHEMA_VIOLATION' // Input doesn't match schema
244
+ | 'CONTENT_FILTERED' // Content blocked by safety
245
+ | 'POLICY_VIOLATION' // Violates agent policy
246
+
247
+ // Execution Errors (5xx equivalent)
248
+ | 'TOOL_ERROR' // Tool execution failed
249
+ | 'TOOL_TIMEOUT' // Tool exceeded timeout
250
+ | 'LLM_ERROR' // LLM provider error
251
+ | 'LLM_TIMEOUT' // LLM exceeded timeout
252
+ | 'STATE_ERROR' // State persistence failed
253
+
254
+ // Resource Errors
255
+ | 'RATE_LIMITED' // Rate limit exceeded
256
+ | 'QUOTA_EXCEEDED' // Token/request quota exceeded
257
+ | 'CIRCUIT_OPEN' // Circuit breaker tripped
258
+
259
+ // Agent Errors
260
+ | 'MAX_TURNS_EXCEEDED' // Hit spec.constraints.max_turns
261
+ | 'MAX_TOKENS_EXCEEDED' // Hit spec.constraints.max_tokens
262
+ | 'DELEGATION_FAILED' // Child agent failed
263
+ | 'ESCALATION_REQUIRED'; // Needs human intervention
264
+
265
+ interface OSSAError {
266
+ code: ErrorCode;
267
+ message: string;
268
+ details?: Record<string, unknown>;
269
+ recoverable: boolean;
270
+ retry_after_ms?: number;
271
+ escalation?: EscalationAction;
272
+ }
273
+ ```
274
+
275
+ ### Recovery Strategies
276
+
277
+ ```typescript
278
+ type RecoveryStrategy =
279
+ | 'retry' // Retry with backoff
280
+ | 'fallback' // Use fallback value/tool
281
+ | 'skip' // Skip and continue
282
+ | 'escalate' // Escalate to human/supervisor
283
+ | 'abort'; // Abort turn/session
284
+
285
+ interface ErrorHandler {
286
+ error_codes: ErrorCode[];
287
+ strategy: RecoveryStrategy;
288
+ max_retries?: number;
289
+ fallback_value?: unknown;
290
+ escalation_target?: string;
291
+ }
292
+ ```
293
+
294
+ ### Default Error Handling
295
+
296
+ | Error Code | Default Strategy | Retries |
297
+ |------------|------------------|---------|
298
+ | `VALIDATION_ERROR` | abort | 0 |
299
+ | `TOOL_ERROR` | retry | 3 |
300
+ | `TOOL_TIMEOUT` | retry | 2 |
301
+ | `LLM_ERROR` | retry | 3 |
302
+ | `LLM_TIMEOUT` | retry | 2 |
303
+ | `RATE_LIMITED` | retry | 3 (with backoff) |
304
+ | `CIRCUIT_OPEN` | fallback | 0 |
305
+ | `MAX_TURNS_EXCEEDED` | escalate | 0 |
306
+
307
+ ---
308
+
309
+ ## 3. State Semantics
310
+
311
+ ### Isolation Levels
312
+
313
+ ```typescript
314
+ type IsolationLevel =
315
+ | 'read_uncommitted' // Can see uncommitted changes
316
+ | 'read_committed' // Only see committed changes
317
+ | 'repeatable_read' // Consistent reads within turn
318
+ | 'serializable'; // Full isolation (default)
319
+ ```
320
+
321
+ ### Transaction Boundaries
322
+
323
+ ```
324
+ Turn Start ─────────────────────────────────────────── Turn End
325
+ │ │
326
+ │ ┌─────────────────────────────────────────────┐ │
327
+ │ │ TRANSACTION BOUNDARY │ │
328
+ │ │ │ │
329
+ │ │ state.get() ──▶ compute ──▶ state.set()│ │
330
+ │ │ │ │
331
+ │ │ ALL changes atomic │ │
332
+ │ │ ROLLBACK on any failure │ │
333
+ │ │ │ │
334
+ │ └─────────────────────────────────────────────┘ │
335
+ │ │
336
+ └──────────────────────────────────────────────────────┘
337
+ ```
338
+
339
+ ### State Operations
340
+
341
+ ```typescript
342
+ interface StateOperations {
343
+ // Read operations
344
+ get<T>(key: string): Promise<T | null>;
345
+ getMany<T>(keys: string[]): Promise<Map<string, T>>;
346
+ exists(key: string): Promise<boolean>;
347
+
348
+ // Write operations (within transaction)
349
+ set<T>(key: string, value: T, ttl?: number): Promise<void>;
350
+ delete(key: string): Promise<void>;
351
+ append<T>(key: string, value: T): Promise<void>;
352
+
353
+ // Transaction control
354
+ checkpoint(): Promise<string>; // Save point
355
+ rollback(checkpoint?: string): Promise<void>;
356
+ }
357
+ ```
358
+
359
+ ### Rollback Behavior
360
+
361
+ 1. **Automatic Rollback**: On unhandled error, all state changes roll back
362
+ 2. **Partial Rollback**: Can rollback to named checkpoint
363
+ 3. **No Rollback**: `isolation_level: read_uncommitted` disables rollback
364
+
365
+ ---
366
+
367
+ ## 4. Multi-Turn Behavior
368
+
369
+ ### Turn Chaining
370
+
371
+ ```typescript
372
+ interface TurnChain {
373
+ // Continue if LLM requests tool use
374
+ continue_on_tool_use: boolean; // default: true
375
+
376
+ // Max consecutive tool turns before response required
377
+ max_tool_turns: number; // default: 10
378
+
379
+ // Require user confirmation between turns
380
+ confirm_between_turns: boolean; // default: false
381
+ }
382
+ ```
383
+
384
+ ### Conversation Memory
385
+
386
+ ```typescript
387
+ interface ConversationMemory {
388
+ // How many messages to include in context
389
+ window_size: number; // default: 20
390
+
391
+ // Token budget for history
392
+ max_history_tokens: number; // default: 4000
393
+
394
+ // Summarization strategy when window exceeded
395
+ summarization: 'truncate' | 'summarize' | 'sliding';
396
+ }
397
+ ```
398
+
399
+ ---
400
+
401
+ ## 5. Delegation Semantics
402
+
403
+ ### Agent-to-Agent Handoff
404
+
405
+ ```typescript
406
+ interface Delegation {
407
+ type: 'handoff' | 'parallel' | 'supervisor';
408
+ target_agent: string;
409
+ input: unknown;
410
+ context_propagation: ContextPropagation;
411
+ timeout_ms: number;
412
+ on_failure: 'retry' | 'fallback' | 'escalate';
413
+ }
414
+
415
+ interface ContextPropagation {
416
+ // What to pass to child agent
417
+ include_session_id: boolean; // default: true
418
+ include_history: boolean; // default: false
419
+ include_state: boolean; // default: false
420
+ custom_context: Record<string, unknown>;
421
+ }
422
+ ```
423
+
424
+ ### Delegation Patterns
425
+
426
+ 1. **Handoff**: Transfer control completely to target agent
427
+ 2. **Parallel**: Execute multiple agents concurrently
428
+ 3. **Supervisor**: Parent monitors child execution
429
+
430
+ ---
431
+
432
+ ## 6. Compliance Requirements
433
+
434
+ ### MUST Requirements
435
+
436
+ 1. Runtime MUST generate unique `interaction_id` per turn
437
+ 2. Runtime MUST enforce `spec.constraints.max_turns`
438
+ 3. Runtime MUST enforce `spec.constraints.timeout_seconds`
439
+ 4. Runtime MUST emit OpenTelemetry spans per semantic-conventions.md
440
+ 5. Runtime MUST rollback state on unhandled errors
441
+ 6. Runtime MUST validate tool inputs against schemas
442
+
443
+ ### SHOULD Requirements
444
+
445
+ 1. Runtime SHOULD support all isolation levels
446
+ 2. Runtime SHOULD implement circuit breaker pattern
447
+ 3. Runtime SHOULD support W3C trace context propagation
448
+ 4. Runtime SHOULD emit CloudEvents for activity streams
449
+
450
+ ### MAY Requirements
451
+
452
+ 1. Runtime MAY implement custom error handlers
453
+ 2. Runtime MAY support additional state backends
454
+ 3. Runtime MAY implement conversation summarization
455
+
456
+ ---
457
+
458
+ ## References
459
+
460
+ - [OSSA Schema v0.2.9](./ossa-0.2.9.schema.json)
461
+ - [Semantic Conventions](./semantic-conventions.md)
462
+ - [OpenTelemetry Specification](https://opentelemetry.io/docs/specs/)
463
+ - [CloudEvents Specification](https://cloudevents.io/)
464
+ - [W3C Trace Context](https://www.w3.org/TR/trace-context/)