@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,522 @@
1
+ /**
2
+ * OSSA Type System v0.2.9
3
+ *
4
+ * Canonical TypeScript type definitions for OSSA runtime interoperability.
5
+ * These types define the contract between OSSA manifests and runtime implementations.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ // =============================================================================
11
+ // Core Identity Types
12
+ // =============================================================================
13
+
14
+ /** UUID v4 string format */
15
+ export type UUID = string;
16
+
17
+ /** ISO 8601 timestamp */
18
+ export type ISO8601Timestamp = string;
19
+
20
+ /** Semantic version string */
21
+ export type SemVer = string;
22
+
23
+ /** Agent identity at runtime */
24
+ export interface AgentIdentity {
25
+ /** Agent definition ID from manifest metadata.name */
26
+ agent_id: string;
27
+ /** Agent version from manifest metadata.version */
28
+ agent_version: SemVer;
29
+ /** Runtime instance UUID (stable per pod/process) */
30
+ instance_id: UUID;
31
+ /** Session UUID (stable per conversation) */
32
+ session_id: UUID;
33
+ /** Interaction UUID (unique per turn) */
34
+ interaction_id: UUID;
35
+ /** Turn number within session */
36
+ turn_number: number;
37
+ }
38
+
39
+ // =============================================================================
40
+ // Message Types
41
+ // =============================================================================
42
+
43
+ /** Message roles in conversation */
44
+ export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
45
+
46
+ /** Text content part */
47
+ export interface TextPart {
48
+ type: 'text';
49
+ text: string;
50
+ }
51
+
52
+ /** Image content part */
53
+ export interface ImagePart {
54
+ type: 'image';
55
+ source: {
56
+ type: 'base64' | 'url';
57
+ media_type: string;
58
+ data: string;
59
+ };
60
+ }
61
+
62
+ /** File content part */
63
+ export interface FilePart {
64
+ type: 'file';
65
+ name: string;
66
+ content: string;
67
+ media_type: string;
68
+ }
69
+
70
+ /** Union of all content part types */
71
+ export type ContentPart = TextPart | ImagePart | FilePart;
72
+
73
+ /** Base message interface */
74
+ export interface BaseMessage {
75
+ role: MessageRole;
76
+ metadata?: MessageMetadata;
77
+ }
78
+
79
+ /** User message */
80
+ export interface UserMessage extends BaseMessage {
81
+ role: 'user';
82
+ content: string | ContentPart[];
83
+ }
84
+
85
+ /** Assistant/Agent message */
86
+ export interface AssistantMessage extends BaseMessage {
87
+ role: 'assistant';
88
+ content: string | null;
89
+ tool_calls?: ToolCallRequest[];
90
+ }
91
+
92
+ /** System message */
93
+ export interface SystemMessage extends BaseMessage {
94
+ role: 'system';
95
+ content: string;
96
+ }
97
+
98
+ /** Tool result message */
99
+ export interface ToolMessage extends BaseMessage {
100
+ role: 'tool';
101
+ tool_call_id: string;
102
+ content: string;
103
+ }
104
+
105
+ /** Union of all message types */
106
+ export type Message = UserMessage | AssistantMessage | SystemMessage | ToolMessage;
107
+
108
+ /** Message metadata */
109
+ export interface MessageMetadata {
110
+ source: 'user' | 'api' | 'delegation';
111
+ original_format?: string;
112
+ normalized_at?: ISO8601Timestamp;
113
+ [key: string]: unknown;
114
+ }
115
+
116
+ // =============================================================================
117
+ // Tool Types
118
+ // =============================================================================
119
+
120
+ /** Tool transport mechanisms */
121
+ export type ToolTransport = 'function' | 'http' | 'mcp' | 'grpc';
122
+
123
+ /** Tool source definition */
124
+ export type ToolSource =
125
+ | { type: 'manifest'; tool_index: number }
126
+ | { type: 'mcp'; server_uri: string; capability: string }
127
+ | { type: 'delegation'; agent_id: string }
128
+ | { type: 'function'; handler: string };
129
+
130
+ /** Resolved tool at runtime */
131
+ export interface ResolvedTool {
132
+ name: string;
133
+ description: string;
134
+ input_schema: JSONSchema;
135
+ source: ToolSource;
136
+ transport: ToolTransport;
137
+ timeout_ms: number;
138
+ retry_policy?: RetryPolicy;
139
+ }
140
+
141
+ /** Tool call request from LLM */
142
+ export interface ToolCallRequest {
143
+ id: string;
144
+ name: string;
145
+ arguments: string; // JSON string
146
+ }
147
+
148
+ /** Parsed tool call */
149
+ export interface ToolCall {
150
+ id: string;
151
+ capability: string;
152
+ input: Record<string, unknown>;
153
+ transport?: ToolTransport;
154
+ }
155
+
156
+ /** Tool execution result */
157
+ export type ToolResult =
158
+ | { status: 'success'; output: unknown }
159
+ | { status: 'error'; error: ToolError }
160
+ | { status: 'timeout'; partial_output?: unknown };
161
+
162
+ /** Tool error details */
163
+ export interface ToolError {
164
+ code: string;
165
+ message: string;
166
+ details?: Record<string, unknown>;
167
+ retryable: boolean;
168
+ }
169
+
170
+ /** Tool execution record */
171
+ export interface ToolExecution {
172
+ call_id: string;
173
+ tool_name: string;
174
+ input: unknown;
175
+ started_at: ISO8601Timestamp;
176
+ completed_at: ISO8601Timestamp;
177
+ result: ToolResult;
178
+ retries: number;
179
+ duration_ms: number;
180
+ }
181
+
182
+ // =============================================================================
183
+ // Error Types
184
+ // =============================================================================
185
+
186
+ /** OSSA error codes taxonomy */
187
+ export type ErrorCode =
188
+ // Input Errors (4xx equivalent)
189
+ | 'VALIDATION_ERROR'
190
+ | 'SCHEMA_VIOLATION'
191
+ | 'CONTENT_FILTERED'
192
+ | 'POLICY_VIOLATION'
193
+ // Execution Errors (5xx equivalent)
194
+ | 'TOOL_ERROR'
195
+ | 'TOOL_TIMEOUT'
196
+ | 'LLM_ERROR'
197
+ | 'LLM_TIMEOUT'
198
+ | 'STATE_ERROR'
199
+ // Resource Errors
200
+ | 'RATE_LIMITED'
201
+ | 'QUOTA_EXCEEDED'
202
+ | 'CIRCUIT_OPEN'
203
+ // Agent Errors
204
+ | 'MAX_TURNS_EXCEEDED'
205
+ | 'MAX_TOKENS_EXCEEDED'
206
+ | 'DELEGATION_FAILED'
207
+ | 'ESCALATION_REQUIRED';
208
+
209
+ /** Structured OSSA error */
210
+ export interface OSSAError {
211
+ code: ErrorCode;
212
+ message: string;
213
+ details?: Record<string, unknown>;
214
+ recoverable: boolean;
215
+ retry_after_ms?: number;
216
+ escalation?: EscalationAction;
217
+ cause?: Error;
218
+ }
219
+
220
+ /** Recovery strategies */
221
+ export type RecoveryStrategy =
222
+ | 'retry'
223
+ | 'fallback'
224
+ | 'skip'
225
+ | 'escalate'
226
+ | 'abort';
227
+
228
+ /** Escalation action */
229
+ export interface EscalationAction {
230
+ type: 'human' | 'supervisor' | 'alert';
231
+ target?: string;
232
+ context?: Record<string, unknown>;
233
+ }
234
+
235
+ /** Error handler configuration */
236
+ export interface ErrorHandler {
237
+ error_codes: ErrorCode[];
238
+ strategy: RecoveryStrategy;
239
+ max_retries?: number;
240
+ fallback_value?: unknown;
241
+ escalation_target?: string;
242
+ }
243
+
244
+ // =============================================================================
245
+ // State Types
246
+ // =============================================================================
247
+
248
+ /** State isolation levels */
249
+ export type IsolationLevel =
250
+ | 'read_uncommitted'
251
+ | 'read_committed'
252
+ | 'repeatable_read'
253
+ | 'serializable';
254
+
255
+ /** State persistence modes */
256
+ export type StateMode = 'none' | 'session' | 'persistent';
257
+
258
+ /** State storage backends */
259
+ export type StateStorageType =
260
+ | 'memory'
261
+ | 'redis'
262
+ | 'postgres'
263
+ | 'dynamodb'
264
+ | 'vector-db'
265
+ | 'custom';
266
+
267
+ /** State change operation */
268
+ export interface StateChange {
269
+ key: string;
270
+ previous_value: unknown | null;
271
+ new_value: unknown;
272
+ operation: 'set' | 'delete' | 'append';
273
+ timestamp: ISO8601Timestamp;
274
+ }
275
+
276
+ /** State transaction */
277
+ export interface StateTransaction {
278
+ id: string;
279
+ started_at: ISO8601Timestamp;
280
+ changes: StateChange[];
281
+ status: 'pending' | 'committed' | 'rolled_back';
282
+ }
283
+
284
+ /** State operations interface */
285
+ export interface StateOperations {
286
+ get<T>(key: string): Promise<T | null>;
287
+ getMany<T>(keys: string[]): Promise<Map<string, T>>;
288
+ exists(key: string): Promise<boolean>;
289
+ set<T>(key: string, value: T, ttl?: number): Promise<void>;
290
+ delete(key: string): Promise<void>;
291
+ append<T>(key: string, value: T): Promise<void>;
292
+ checkpoint(): Promise<string>;
293
+ rollback(checkpoint?: string): Promise<void>;
294
+ }
295
+
296
+ // =============================================================================
297
+ // LLM Types
298
+ // =============================================================================
299
+
300
+ /** LLM provider identifiers */
301
+ export type LLMProvider =
302
+ | 'openai'
303
+ | 'anthropic'
304
+ | 'google'
305
+ | 'azure'
306
+ | 'aws'
307
+ | 'mistral'
308
+ | 'groq'
309
+ | 'ollama'
310
+ | 'custom';
311
+
312
+ /** LLM request parameters */
313
+ export interface LLMParameters {
314
+ temperature?: number;
315
+ max_tokens?: number;
316
+ top_p?: number;
317
+ top_k?: number;
318
+ stop_sequences?: string[];
319
+ presence_penalty?: number;
320
+ frequency_penalty?: number;
321
+ }
322
+
323
+ /** LLM inference request */
324
+ export interface InferenceRequest {
325
+ model: string;
326
+ messages: Message[];
327
+ tools?: ResolvedTool[];
328
+ system_prompt?: string;
329
+ parameters: LLMParameters;
330
+ }
331
+
332
+ /** LLM inference response */
333
+ export interface InferenceResponse {
334
+ id: string;
335
+ content: string | null;
336
+ tool_calls: ToolCallRequest[];
337
+ finish_reason: FinishReason;
338
+ usage: TokenUsage;
339
+ model: string;
340
+ }
341
+
342
+ /** LLM finish reasons */
343
+ export type FinishReason =
344
+ | 'stop'
345
+ | 'length'
346
+ | 'tool_use'
347
+ | 'content_filter'
348
+ | 'error';
349
+
350
+ /** Token usage statistics */
351
+ export interface TokenUsage {
352
+ input_tokens: number;
353
+ output_tokens: number;
354
+ total_tokens: number;
355
+ cache_read_tokens?: number;
356
+ cache_write_tokens?: number;
357
+ }
358
+
359
+ // =============================================================================
360
+ // Observability Types
361
+ // =============================================================================
362
+
363
+ /** W3C Trace Context */
364
+ export interface W3CTraceContext {
365
+ traceparent: string;
366
+ tracestate?: string;
367
+ }
368
+
369
+ /** W3C Baggage */
370
+ export interface W3CBaggage {
371
+ entries: Map<string, string>;
372
+ }
373
+
374
+ /** Log severity levels */
375
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
376
+
377
+ /** Structured log entry */
378
+ export interface LogEntry {
379
+ level: LogLevel;
380
+ message: string;
381
+ timestamp: ISO8601Timestamp;
382
+ trace_id?: string;
383
+ span_id?: string;
384
+ attributes?: Record<string, unknown>;
385
+ }
386
+
387
+ /** CloudEvent for activity streams */
388
+ export interface CloudEvent<T = unknown> {
389
+ specversion: '1.0';
390
+ type: string;
391
+ source: string;
392
+ id: string;
393
+ time: ISO8601Timestamp;
394
+ datacontenttype?: string;
395
+ data?: T;
396
+ subject?: string;
397
+ }
398
+
399
+ /** OSSA-specific CloudEvent types */
400
+ export type OSSAEventType =
401
+ | 'io.ossa.agent.turn.started'
402
+ | 'io.ossa.agent.turn.completed'
403
+ | 'io.ossa.agent.turn.failed'
404
+ | 'io.ossa.tool.called'
405
+ | 'io.ossa.tool.completed'
406
+ | 'io.ossa.tool.failed'
407
+ | 'io.ossa.state.changed'
408
+ | 'io.ossa.delegation.started'
409
+ | 'io.ossa.delegation.completed';
410
+
411
+ // =============================================================================
412
+ // Delegation Types
413
+ // =============================================================================
414
+
415
+ /** Delegation patterns */
416
+ export type DelegationType = 'handoff' | 'parallel' | 'supervisor';
417
+
418
+ /** Delegation request */
419
+ export interface DelegationRequest {
420
+ type: DelegationType;
421
+ target_agent: string;
422
+ input: unknown;
423
+ context_propagation: ContextPropagation;
424
+ timeout_ms: number;
425
+ on_failure: RecoveryStrategy;
426
+ }
427
+
428
+ /** Context propagation config */
429
+ export interface ContextPropagation {
430
+ include_session_id: boolean;
431
+ include_history: boolean;
432
+ include_state: boolean;
433
+ custom_context?: Record<string, unknown>;
434
+ }
435
+
436
+ /** Delegation result */
437
+ export interface DelegationResult {
438
+ agent_id: string;
439
+ status: 'success' | 'error' | 'timeout';
440
+ output?: unknown;
441
+ error?: OSSAError;
442
+ duration_ms: number;
443
+ }
444
+
445
+ // =============================================================================
446
+ // Retry Types
447
+ // =============================================================================
448
+
449
+ /** Retry policy configuration */
450
+ export interface RetryPolicy {
451
+ max_retries: number;
452
+ initial_delay_ms: number;
453
+ max_delay_ms: number;
454
+ backoff_multiplier: number;
455
+ retryable_errors?: ErrorCode[];
456
+ }
457
+
458
+ // =============================================================================
459
+ // JSON Schema Types (subset)
460
+ // =============================================================================
461
+
462
+ /** Simplified JSON Schema type */
463
+ export interface JSONSchema {
464
+ type?: string | string[];
465
+ properties?: Record<string, JSONSchema>;
466
+ required?: string[];
467
+ items?: JSONSchema;
468
+ enum?: unknown[];
469
+ description?: string;
470
+ default?: unknown;
471
+ format?: string;
472
+ minimum?: number;
473
+ maximum?: number;
474
+ minLength?: number;
475
+ maxLength?: number;
476
+ pattern?: string;
477
+ additionalProperties?: boolean | JSONSchema;
478
+ $ref?: string;
479
+ }
480
+
481
+ // =============================================================================
482
+ // Turn Lifecycle Types
483
+ // =============================================================================
484
+
485
+ /** Turn phase names */
486
+ export type TurnPhase =
487
+ | 'init'
488
+ | 'normalize'
489
+ | 'resolve'
490
+ | 'infer'
491
+ | 'execute'
492
+ | 'persist'
493
+ | 'emit';
494
+
495
+ /** Turn context */
496
+ export interface TurnContext {
497
+ identity: AgentIdentity;
498
+ messages: Message[];
499
+ tools: ResolvedTool[];
500
+ state: StateOperations;
501
+ trace_context?: W3CTraceContext;
502
+ baggage?: W3CBaggage;
503
+ }
504
+
505
+ /** Turn result */
506
+ export interface TurnResult {
507
+ response: AssistantMessage;
508
+ tool_executions: ToolExecution[];
509
+ state_changes: StateChange[];
510
+ usage: TokenUsage;
511
+ duration_ms: number;
512
+ phases: PhaseMetrics[];
513
+ }
514
+
515
+ /** Phase execution metrics */
516
+ export interface PhaseMetrics {
517
+ phase: TurnPhase;
518
+ started_at: ISO8601Timestamp;
519
+ completed_at: ISO8601Timestamp;
520
+ duration_ms: number;
521
+ error?: OSSAError;
522
+ }