@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,377 @@
1
+ /**
2
+ * @fileoverview OSSA Policy DSL Type Definitions
3
+ * @module @openstandardagents/policy
4
+ * @version 1.0.0
5
+ *
6
+ * Formal type definitions for the OSSA Policy Domain-Specific Language.
7
+ * See docs/specs/policy-dsl.md for full specification.
8
+ */
9
+ /**
10
+ * Variable reference in policy expressions (e.g., $cost.tokens)
11
+ */
12
+ export interface Variable {
13
+ type: 'variable';
14
+ /** Dot-separated path (e.g., ['cost', 'tokens']) */
15
+ path: string[];
16
+ }
17
+ /**
18
+ * Primitive value types
19
+ */
20
+ export type PrimitiveValue = string | number | boolean | null;
21
+ /**
22
+ * Array of values (for recursive structure)
23
+ */
24
+ export type ValueArray = PolicyValue[];
25
+ /**
26
+ * Object of values (for recursive structure)
27
+ */
28
+ export interface ValueObject {
29
+ [key: string]: PolicyValue;
30
+ }
31
+ /**
32
+ * Function call in policy expressions
33
+ */
34
+ export interface FunctionCall {
35
+ type: 'function';
36
+ /** Function name */
37
+ name: string;
38
+ /** Function arguments */
39
+ args: PolicyValue[];
40
+ }
41
+ /**
42
+ * Value types supported in policy expressions
43
+ */
44
+ export type PolicyValue = PrimitiveValue | ValueArray | ValueObject | Variable | FunctionCall;
45
+ /**
46
+ * @deprecated Use PolicyValue instead
47
+ */
48
+ export type Value = PolicyValue;
49
+ /**
50
+ * Comparison operators for condition evaluation
51
+ */
52
+ export type ComparisonOperator = 'equals' | 'notEquals' | 'greaterThan' | 'lessThan' | 'greaterEqual' | 'lessEqual' | 'contains' | 'matches' | 'in' | 'startsWith' | 'endsWith';
53
+ /**
54
+ * Logical operators for combining conditions
55
+ */
56
+ export type LogicalOperator = 'and' | 'or' | 'not';
57
+ /**
58
+ * Action types that can be performed by policies
59
+ */
60
+ export type ActionType = 'allow' | 'deny' | 'require_approval' | 'log' | 'escalate' | 'notify' | 'execute';
61
+ /**
62
+ * Action effects (final outcome)
63
+ */
64
+ export type Effect = 'allow' | 'deny' | 'escalate' | 'log';
65
+ /**
66
+ * Comparison expression (e.g., $cost.tokens > 1000)
67
+ */
68
+ export interface ComparisonCondition {
69
+ type: 'comparison';
70
+ /** Left-hand side value */
71
+ left: PolicyValue;
72
+ /** Comparison operator */
73
+ operator: ComparisonOperator;
74
+ /** Right-hand side value */
75
+ right: PolicyValue;
76
+ }
77
+ /**
78
+ * Logical expression (AND, OR, NOT)
79
+ */
80
+ export interface LogicalCondition {
81
+ type: 'logical';
82
+ /** Logical operator */
83
+ operator: LogicalOperator;
84
+ /** Sub-conditions */
85
+ conditions: PolicyCondition[];
86
+ }
87
+ /**
88
+ * Function-based condition
89
+ */
90
+ export interface FunctionCondition {
91
+ type: 'function';
92
+ /** Function name */
93
+ function: string;
94
+ /** Function arguments */
95
+ args: PolicyValue[];
96
+ }
97
+ /**
98
+ * Policy condition (union type)
99
+ */
100
+ export type PolicyCondition = ComparisonCondition | LogicalCondition | FunctionCondition;
101
+ /**
102
+ * Notification channel configuration
103
+ */
104
+ export interface NotificationChannel {
105
+ /** Channel type */
106
+ type: 'email' | 'slack' | 'pagerduty' | 'webhook' | 'sms';
107
+ /** Channel-specific configuration */
108
+ config: Record<string, PolicyValue>;
109
+ }
110
+ /**
111
+ * Notification configuration
112
+ */
113
+ export interface NotificationConfig {
114
+ /** Notification channels */
115
+ channels: ('email' | 'slack' | 'pagerduty' | 'webhook' | 'sms')[];
116
+ /** Notification message (supports template variables) */
117
+ message: string;
118
+ /** Additional notification metadata */
119
+ metadata?: Record<string, PolicyValue>;
120
+ }
121
+ /**
122
+ * Audit log configuration
123
+ */
124
+ export interface AuditConfig {
125
+ /** Log level */
126
+ level: 'debug' | 'info' | 'warning' | 'error';
127
+ /** Log message (supports template variables) */
128
+ message: string;
129
+ /** Compliance frameworks */
130
+ compliance?: string[];
131
+ /** Additional audit metadata */
132
+ metadata?: Record<string, PolicyValue>;
133
+ }
134
+ /**
135
+ * Policy action
136
+ */
137
+ export interface PolicyAction {
138
+ /** Action type */
139
+ type: ActionType;
140
+ /** Target resource or capability */
141
+ target?: string;
142
+ /** Action parameters */
143
+ params?: Record<string, PolicyValue>;
144
+ /** Effect of the action */
145
+ effect: Effect;
146
+ /** Notification configuration */
147
+ notify?: NotificationConfig;
148
+ /** Audit log configuration */
149
+ audit?: AuditConfig;
150
+ }
151
+ /**
152
+ * Complete policy rule
153
+ */
154
+ export interface PolicyRule {
155
+ /** Unique rule identifier */
156
+ id: string;
157
+ /** Human-readable description */
158
+ description?: string;
159
+ /** Condition that triggers this rule */
160
+ condition: PolicyCondition;
161
+ /** Action to perform when condition matches */
162
+ action: PolicyAction;
163
+ /** Rule priority (higher = evaluated first) */
164
+ priority?: number;
165
+ /** Rule enabled state */
166
+ enabled?: boolean;
167
+ /** Rule metadata */
168
+ metadata?: Record<string, PolicyValue>;
169
+ }
170
+ /**
171
+ * Duration (timeout, delay, etc.)
172
+ */
173
+ export interface Duration {
174
+ /** Numeric value */
175
+ value: number;
176
+ /** Time unit */
177
+ unit: 'seconds' | 'minutes' | 'hours' | 'days';
178
+ }
179
+ /**
180
+ * Escalation target (human or system)
181
+ */
182
+ export interface EscalationTarget {
183
+ /** Target type */
184
+ type: 'user' | 'group' | 'role' | 'webhook';
185
+ /** Target identifier (user ID, group name, etc.) */
186
+ identifier: string;
187
+ /** Additional target metadata */
188
+ metadata?: Record<string, PolicyValue>;
189
+ }
190
+ /**
191
+ * Escalation policy for human-in-the-loop workflows
192
+ */
193
+ export interface EscalationPolicy {
194
+ /** Unique escalation identifier */
195
+ id: string;
196
+ /** Human-readable description */
197
+ description?: string;
198
+ /** Condition that triggers escalation */
199
+ condition: PolicyCondition;
200
+ /** Escalation target (user, group, role) */
201
+ target: EscalationTarget;
202
+ /** Timeout for human response */
203
+ timeout?: Duration;
204
+ /** Fallback action if timeout expires */
205
+ fallback?: PolicyAction;
206
+ /** Escalation priority */
207
+ priority?: 'low' | 'medium' | 'high' | 'critical';
208
+ /** Notification channels */
209
+ channels?: NotificationChannel[];
210
+ /** Escalation metadata */
211
+ metadata?: Record<string, PolicyValue>;
212
+ }
213
+ /**
214
+ * Policy evaluation context
215
+ * Variables accessible via $ prefix in policy expressions
216
+ */
217
+ export interface PolicyContext {
218
+ /** Agent metadata */
219
+ agent: {
220
+ name: string;
221
+ version: string;
222
+ capabilities: string[];
223
+ };
224
+ /** Current action being evaluated */
225
+ action: {
226
+ type: string;
227
+ target: string;
228
+ params: Record<string, PolicyValue>;
229
+ };
230
+ /** Cost metrics */
231
+ cost: {
232
+ tokens: number;
233
+ daily: number;
234
+ monthly: number;
235
+ currency: string;
236
+ };
237
+ /** Performance metrics */
238
+ performance: {
239
+ latency: number;
240
+ throughput: number;
241
+ };
242
+ /** Security context */
243
+ security: {
244
+ user: string;
245
+ role: string;
246
+ permissions: string[];
247
+ };
248
+ /** Compliance context */
249
+ compliance: {
250
+ frameworks: string[];
251
+ policies: string[];
252
+ };
253
+ /** Time context */
254
+ time: {
255
+ timestamp: number;
256
+ hour: number;
257
+ day: string;
258
+ timezone: string;
259
+ };
260
+ /** Custom context fields */
261
+ [key: string]: PolicyValue | Record<string, PolicyValue> | string[] | undefined;
262
+ }
263
+ /**
264
+ * Complete policy document
265
+ */
266
+ export interface PolicyDocument {
267
+ /** Policy identifier */
268
+ id: string;
269
+ /** Policy version (semver) */
270
+ version: string;
271
+ /** Human-readable description */
272
+ description?: string;
273
+ /** Policy rules */
274
+ rules: PolicyRule[];
275
+ /** Escalation policies */
276
+ escalations?: EscalationPolicy[];
277
+ /** Policy metadata */
278
+ metadata?: Record<string, PolicyValue>;
279
+ }
280
+ /**
281
+ * Policy error types
282
+ */
283
+ export type PolicyErrorType = 'SyntaxError' | 'ValidationError' | 'EvaluationError' | 'EscalationError' | 'ContextError';
284
+ /**
285
+ * Policy error details
286
+ */
287
+ export interface PolicyErrorDetails {
288
+ /** Error type */
289
+ type: PolicyErrorType;
290
+ /** Error message */
291
+ message: string;
292
+ /** Rule identifier (if applicable) */
293
+ rule?: string;
294
+ /** Source location (if applicable) */
295
+ location?: {
296
+ line: number;
297
+ column: number;
298
+ };
299
+ /** Additional error context */
300
+ context?: Record<string, PolicyValue | string[]>;
301
+ }
302
+ /**
303
+ * Policy error class
304
+ */
305
+ export declare class PolicyError extends Error {
306
+ readonly details: PolicyErrorDetails;
307
+ constructor(details: PolicyErrorDetails);
308
+ }
309
+ /**
310
+ * Policy evaluation result
311
+ */
312
+ export interface PolicyEvaluationResult {
313
+ /** Whether action is allowed */
314
+ allowed: boolean;
315
+ /** Effect applied */
316
+ effect: Effect;
317
+ /** Matched rule (if any) */
318
+ rule?: string;
319
+ /** Action taken */
320
+ action?: PolicyAction;
321
+ /** Escalation (if escalated) */
322
+ escalation?: EscalationPolicy;
323
+ /** Evaluation errors (if any) */
324
+ errors?: PolicyErrorDetails[];
325
+ /** Evaluation metadata */
326
+ metadata?: {
327
+ /** Evaluation duration (ms) */
328
+ duration: number;
329
+ /** Rules evaluated */
330
+ rulesEvaluated: number;
331
+ /** Timestamp */
332
+ timestamp: number;
333
+ };
334
+ }
335
+ /**
336
+ * Policy parser interface
337
+ */
338
+ export interface PolicyParser {
339
+ /**
340
+ * Parse policy DSL string into PolicyDocument
341
+ */
342
+ parse(source: string): PolicyDocument;
343
+ /**
344
+ * Validate policy document
345
+ */
346
+ validate(policy: PolicyDocument): PolicyErrorDetails[];
347
+ }
348
+ /**
349
+ * Policy evaluator interface
350
+ */
351
+ export interface PolicyEvaluator {
352
+ /**
353
+ * Evaluate policy rules against context
354
+ */
355
+ evaluate(policy: PolicyDocument, context: PolicyContext): PolicyEvaluationResult;
356
+ /**
357
+ * Evaluate single condition against context
358
+ */
359
+ evaluateCondition(condition: PolicyCondition, context: PolicyContext): boolean;
360
+ /**
361
+ * Execute policy action
362
+ */
363
+ executeAction(action: PolicyAction, context: PolicyContext): Promise<void>;
364
+ }
365
+ /**
366
+ * Parse duration string (e.g., "15m", "2h")
367
+ */
368
+ export declare function parseDuration(str: string): Duration;
369
+ /**
370
+ * Format duration as human-readable string
371
+ */
372
+ export declare function formatDuration(duration: Duration): string;
373
+ /**
374
+ * Resolve variable path in context
375
+ */
376
+ export declare function resolveVariable(variable: Variable, context: PolicyContext): PolicyValue;
377
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @fileoverview OSSA Policy DSL Type Definitions
3
+ * @module @openstandardagents/policy
4
+ * @version 1.0.0
5
+ *
6
+ * Formal type definitions for the OSSA Policy Domain-Specific Language.
7
+ * See docs/specs/policy-dsl.md for full specification.
8
+ */
9
+ /**
10
+ * Policy error class
11
+ */
12
+ export class PolicyError extends Error {
13
+ details;
14
+ constructor(details) {
15
+ super(details.message);
16
+ this.name = 'PolicyError';
17
+ this.details = details;
18
+ }
19
+ }
20
+ // ============================================================================
21
+ // Utility Functions
22
+ // ============================================================================
23
+ /**
24
+ * Parse duration string (e.g., "15m", "2h")
25
+ */
26
+ export function parseDuration(str) {
27
+ const match = str.match(/^(\d+)(s|m|h|d)$/);
28
+ if (!match) {
29
+ throw new PolicyError({
30
+ type: 'ValidationError',
31
+ message: `Invalid duration format: ${str}`,
32
+ });
33
+ }
34
+ const unitMap = {
35
+ s: 'seconds',
36
+ m: 'minutes',
37
+ h: 'hours',
38
+ d: 'days',
39
+ };
40
+ return {
41
+ value: parseInt(match[1], 10),
42
+ unit: unitMap[match[2]],
43
+ };
44
+ }
45
+ /**
46
+ * Format duration as human-readable string
47
+ */
48
+ export function formatDuration(duration) {
49
+ const unitLabels = {
50
+ seconds: 'second',
51
+ minutes: 'minute',
52
+ hours: 'hour',
53
+ days: 'day',
54
+ };
55
+ const label = unitLabels[duration.unit];
56
+ return `${duration.value} ${label}${duration.value !== 1 ? 's' : ''}`;
57
+ }
58
+ /**
59
+ * Resolve variable path in context
60
+ */
61
+ export function resolveVariable(variable, context) {
62
+ let value = context;
63
+ for (const key of variable.path) {
64
+ if (value === null || value === undefined) {
65
+ throw new PolicyError({
66
+ type: 'ContextError',
67
+ message: `Cannot resolve variable: $${variable.path.join('.')}`,
68
+ context: { path: variable.path, availableKeys: [] },
69
+ });
70
+ }
71
+ if (typeof value === 'object') {
72
+ value = value[key];
73
+ }
74
+ else {
75
+ throw new PolicyError({
76
+ type: 'ContextError',
77
+ message: `Cannot resolve variable: $${variable.path.join('.')}`,
78
+ context: { path: variable.path, availableKeys: [] },
79
+ });
80
+ }
81
+ }
82
+ return value;
83
+ }
84
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+aH;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpB,OAAO,CAAqB;IAE5C,YAAY,OAA2B;QACrC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAuFD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC;YACpB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,4BAA4B,GAAG,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAqC;QAChD,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,MAAM;KACV,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,MAAM,UAAU,GAAqC;QACnD,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,OAAsB;IAEtB,IAAI,KAAK,GAAY,OAAO,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC/D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;aACpD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC/D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;aACpD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAoB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * OSSA Utilities
3
+ * Common utilities for OSSA CLI and library
4
+ */
5
+ export * from './version.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * OSSA Utilities
3
+ * Common utilities for OSSA CLI and library
4
+ */
5
+ export * from './version.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * OSSA Version Utilities
3
+ *
4
+ * Provides dynamic version detection from package.json
5
+ * NEVER hardcode version strings - use these utilities
6
+ */
7
+ export interface VersionInfo {
8
+ /** Full version string (e.g., "0.2.8") */
9
+ version: string;
10
+ /** Major version (e.g., 0) */
11
+ major: number;
12
+ /** Minor version (e.g., 2) */
13
+ minor: number;
14
+ /** Patch version (e.g., 8) */
15
+ patch: number;
16
+ /** Prerelease tag if any (e.g., "RC", "beta") */
17
+ prerelease?: string;
18
+ /** Schema directory name (e.g., "v0.2.8") */
19
+ schemaDir: string;
20
+ /** Schema filename (e.g., "ossa-0.2.8.schema.json") */
21
+ schemaFile: string;
22
+ /** Full schema path relative to project root */
23
+ schemaPath: string;
24
+ /** API version string for manifests */
25
+ apiVersion: string;
26
+ }
27
+ /**
28
+ * Get OSSA version information dynamically from package.json
29
+ *
30
+ * @param forceRefresh - If true, bypasses cache and re-reads package.json
31
+ * @returns VersionInfo object with all version details
32
+ *
33
+ * @example
34
+ * const { version, schemaPath, apiVersion } = getVersionInfo();
35
+ * console.log(`Using OSSA ${version}`);
36
+ * console.log(`Schema at: ${schemaPath}`);
37
+ */
38
+ export declare function getVersionInfo(forceRefresh?: boolean): VersionInfo;
39
+ /**
40
+ * Get just the version string (convenience function)
41
+ */
42
+ export declare function getVersion(): string;
43
+ /**
44
+ * Get the schema path (convenience function)
45
+ */
46
+ export declare function getSchemaPath(): string;
47
+ /**
48
+ * Get the API version for manifests (convenience function)
49
+ */
50
+ export declare function getApiVersion(): string;
51
+ /**
52
+ * Get the schema directory (e.g., "v0.2.8")
53
+ */
54
+ export declare function getSchemaDir(): string;
55
+ /**
56
+ * Check if version is a prerelease
57
+ */
58
+ export declare function isPrerelease(): boolean;
59
+ /**
60
+ * Get supported schema versions (for migration, validation)
61
+ * Returns versions in descending order (newest first)
62
+ */
63
+ export declare function getSupportedVersions(): string[];
64
+ /**
65
+ * Resolve absolute path to schema file
66
+ */
67
+ export declare function resolveSchemaPath(projectRoot?: string): string;
68
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAoCD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,YAAY,UAAQ,GAAG,WAAW,CAiDhE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D"}