spanforge 1.0.2__tar.gz → 1.0.3__tar.gz

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 (571) hide show
  1. spanforge-1.0.3/LICENSE +21 -0
  2. {spanforge-1.0.2 → spanforge-1.0.3}/PKG-INFO +11 -14
  3. {spanforge-1.0.2 → spanforge-1.0.3}/PRICING.md +5 -5
  4. {spanforge-1.0.2 → spanforge-1.0.3}/README.md +8 -11
  5. {spanforge-1.0.2 → spanforge-1.0.3}/docs/contributing.md +2 -2
  6. {spanforge-1.0.2 → spanforge-1.0.3}/docs/rfc/rfc-0001.md +1 -1
  7. {spanforge-1.0.2 → spanforge-1.0.3}/pyproject.toml +3 -3
  8. spanforge-1.0.2/LICENSE +0 -128
  9. {spanforge-1.0.2 → spanforge-1.0.3}/.bandit +0 -0
  10. {spanforge-1.0.2 → spanforge-1.0.3}/.gitattributes +0 -0
  11. {spanforge-1.0.2 → spanforge-1.0.3}/.github/CODEOWNERS +0 -0
  12. {spanforge-1.0.2 → spanforge-1.0.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  13. {spanforge-1.0.2 → spanforge-1.0.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  14. {spanforge-1.0.2 → spanforge-1.0.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  15. {spanforge-1.0.2 → spanforge-1.0.3}/.github/ISSUE_TEMPLATE/rfc.yml +0 -0
  16. {spanforge-1.0.2 → spanforge-1.0.3}/.github/pull_request_template.md +0 -0
  17. {spanforge-1.0.2 → spanforge-1.0.3}/.github/workflows/ci.yml +0 -0
  18. {spanforge-1.0.2 → spanforge-1.0.3}/.github/workflows/release.yml +0 -0
  19. {spanforge-1.0.2 → spanforge-1.0.3}/.gitignore +0 -0
  20. {spanforge-1.0.2 → spanforge-1.0.3}/.pre-commit-hooks.yaml +0 -0
  21. {spanforge-1.0.2 → spanforge-1.0.3}/.sf-gate/artifacts/g1_result.json +0 -0
  22. {spanforge-1.0.2 → spanforge-1.0.3}/.sf-gate/artifacts/gate5_governance_result.json +0 -0
  23. {spanforge-1.0.2 → spanforge-1.0.3}/.sf-gate/artifacts/gate6_trust_result.json +0 -0
  24. {spanforge-1.0.2 → spanforge-1.0.3}/.sf-gate/artifacts/test-gate_result.json +0 -0
  25. {spanforge-1.0.2 → spanforge-1.0.3}/CNAME +0 -0
  26. {spanforge-1.0.2 → spanforge-1.0.3}/CODE_OF_CONDUCT.md +0 -0
  27. {spanforge-1.0.2 → spanforge-1.0.3}/CONFORMANCE.md +0 -0
  28. {spanforge-1.0.2 → spanforge-1.0.3}/MAINTAINERS.md +0 -0
  29. {spanforge-1.0.2 → spanforge-1.0.3}/RELEASE.md +0 -0
  30. {spanforge-1.0.2 → spanforge-1.0.3}/SECURITY.md +0 -0
  31. {spanforge-1.0.2 → spanforge-1.0.3}/SPANFORGE_COMPLETE_Master_Build_Plan_v6_FULL.md +0 -0
  32. {spanforge-1.0.2 → spanforge-1.0.3}/artifacts/g1_result.json +0 -0
  33. {spanforge-1.0.2 → spanforge-1.0.3}/artifacts/gate5_governance_result.json +0 -0
  34. {spanforge-1.0.2 → spanforge-1.0.3}/artifacts/gate6_trust_result.json +0 -0
  35. {spanforge-1.0.2 → spanforge-1.0.3}/docker-compose.selfhosted.yml +0 -0
  36. {spanforge-1.0.2 → spanforge-1.0.3}/docs/Makefile +0 -0
  37. {spanforge-1.0.2 → spanforge-1.0.3}/docs/_static/.gitkeep +0 -0
  38. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-001-immutable-audit-trail.md +0 -0
  39. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-002-singleton-service-clients.md +0 -0
  40. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-003-schema-versioning-strategy.md +0 -0
  41. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-004-local-first-architecture.md +0 -0
  42. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-005-sandbox-mode.md +0 -0
  43. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-006-rag-tracing.md +0 -0
  44. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-007-user-feedback.md +0 -0
  45. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/ADR-008-sso-scim-oidc.md +0 -0
  46. {spanforge-1.0.2 → spanforge-1.0.3}/docs/adr/README.md +0 -0
  47. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/alert.md +0 -0
  48. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/audit.md +0 -0
  49. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/auto.md +0 -0
  50. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/cache.md +0 -0
  51. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/cec.md +0 -0
  52. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/compliance.md +0 -0
  53. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/config.md +0 -0
  54. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/consumer.md +0 -0
  55. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/debug.md +0 -0
  56. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/deprecations.md +0 -0
  57. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/drift.md +0 -0
  58. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/enterprise.md +0 -0
  59. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/eval.md +0 -0
  60. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/event.md +0 -0
  61. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/exceptions.md +0 -0
  62. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/explain.md +0 -0
  63. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/export.md +0 -0
  64. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/feedback.md +0 -0
  65. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/gate.md +0 -0
  66. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/governance.md +0 -0
  67. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/hooks.md +0 -0
  68. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/http.md +0 -0
  69. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/identity.md +0 -0
  70. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/index.md +0 -0
  71. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/integrations.md +0 -0
  72. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/io.md +0 -0
  73. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/lineage.md +0 -0
  74. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/lint.md +0 -0
  75. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/metrics.md +0 -0
  76. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/migrate.md +0 -0
  77. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/models.md +0 -0
  78. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/normalizer.md +0 -0
  79. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/observe.md +0 -0
  80. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/operator.md +0 -0
  81. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/pii.md +0 -0
  82. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/pipelines.md +0 -0
  83. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/plugins.md +0 -0
  84. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/policy.md +0 -0
  85. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/rag.md +0 -0
  86. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/rbac.md +0 -0
  87. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/redact.md +0 -0
  88. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/regression.md +0 -0
  89. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/schema.md +0 -0
  90. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/scope.md +0 -0
  91. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/sdk-reference.md +0 -0
  92. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/secrets.md +0 -0
  93. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/signing.md +0 -0
  94. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/stats.md +0 -0
  95. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/store.md +0 -0
  96. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/stream.md +0 -0
  97. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/testing.md +0 -0
  98. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/testing_mocks.md +0 -0
  99. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/trace.md +0 -0
  100. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/trust.md +0 -0
  101. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/types.md +0 -0
  102. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/ulid.md +0 -0
  103. {spanforge-1.0.2 → spanforge-1.0.3}/docs/api/validate.md +0 -0
  104. {spanforge-1.0.2 → spanforge-1.0.3}/docs/changelog.md +0 -0
  105. {spanforge-1.0.2 → spanforge-1.0.3}/docs/cli.md +0 -0
  106. {spanforge-1.0.2 → spanforge-1.0.3}/docs/competitor-comparison.md +0 -0
  107. {spanforge-1.0.2 → spanforge-1.0.3}/docs/conf.py +0 -0
  108. {spanforge-1.0.2 → spanforge-1.0.3}/docs/configuration.md +0 -0
  109. {spanforge-1.0.2 → spanforge-1.0.3}/docs/demos/enterprise-evidence-demo.md +0 -0
  110. {spanforge-1.0.2 → spanforge-1.0.3}/docs/demos/runtime-governance-demo.md +0 -0
  111. {spanforge-1.0.2 → spanforge-1.0.3}/docs/deployment/air-gapped.md +0 -0
  112. {spanforge-1.0.2 → spanforge-1.0.3}/docs/deployment/kubernetes.md +0 -0
  113. {spanforge-1.0.2 → spanforge-1.0.3}/docs/enterprise-integrations.md +0 -0
  114. {spanforge-1.0.2 → spanforge-1.0.3}/docs/evidence-export.md +0 -0
  115. {spanforge-1.0.2 → spanforge-1.0.3}/docs/ga-release-notes.md +0 -0
  116. {spanforge-1.0.2 → spanforge-1.0.3}/docs/index.md +0 -0
  117. {spanforge-1.0.2 → spanforge-1.0.3}/docs/installation.md +0 -0
  118. {spanforge-1.0.2 → spanforge-1.0.3}/docs/integrations/crewai.md +0 -0
  119. {spanforge-1.0.2 → spanforge-1.0.3}/docs/integrations/halluccheck.md +0 -0
  120. {spanforge-1.0.2 → spanforge-1.0.3}/docs/make.bat +0 -0
  121. {spanforge-1.0.2 → spanforge-1.0.3}/docs/migrations/from-langfuse.md +0 -0
  122. {spanforge-1.0.2 → spanforge-1.0.3}/docs/migrations/from-langsmith.md +0 -0
  123. {spanforge-1.0.2 → spanforge-1.0.3}/docs/migrations/from-openllmetry.md +0 -0
  124. {spanforge-1.0.2 → spanforge-1.0.3}/docs/migrations/v5-to-v6.md +0 -0
  125. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/audit.md +0 -0
  126. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/cache.md +0 -0
  127. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/consent.md +0 -0
  128. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/cost.md +0 -0
  129. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/diff.md +0 -0
  130. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/eval.md +0 -0
  131. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/explanation.md +0 -0
  132. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/feedback.md +0 -0
  133. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/fence.md +0 -0
  134. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/guard.md +0 -0
  135. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/hitl.md +0 -0
  136. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/index.md +0 -0
  137. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/model_registry.md +0 -0
  138. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/prompt.md +0 -0
  139. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/redact_ns.md +0 -0
  140. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/retrieval.md +0 -0
  141. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/template.md +0 -0
  142. {spanforge-1.0.2 → spanforge-1.0.3}/docs/namespaces/trace.md +0 -0
  143. {spanforge-1.0.2 → spanforge-1.0.3}/docs/quickstart.md +0 -0
  144. {spanforge-1.0.2 → spanforge-1.0.3}/docs/reference-architectures.md +0 -0
  145. {spanforge-1.0.2 → spanforge-1.0.3}/docs/replay-simulation.md +0 -0
  146. {spanforge-1.0.2 → spanforge-1.0.3}/docs/rfc/adr-index.md +0 -0
  147. {spanforge-1.0.2 → spanforge-1.0.3}/docs/runbook.md +0 -0
  148. {spanforge-1.0.2 → spanforge-1.0.3}/docs/runtime-governance-contracts.md +0 -0
  149. {spanforge-1.0.2 → spanforge-1.0.3}/docs/runtime-governance.md +0 -0
  150. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/README.md +0 -0
  151. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/envelope.schema.json +0 -0
  152. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/agent-run.schema.json +0 -0
  153. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/agent-step.schema.json +0 -0
  154. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/audit.schema.json +0 -0
  155. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/cache.schema.json +0 -0
  156. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/consent.schema.json +0 -0
  157. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/cost.schema.json +0 -0
  158. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/diff.schema.json +0 -0
  159. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/eval.schema.json +0 -0
  160. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/explanation.schema.json +0 -0
  161. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/fence.schema.json +0 -0
  162. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/guard.schema.json +0 -0
  163. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/hitl.schema.json +0 -0
  164. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/model-registry.schema.json +0 -0
  165. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/prompt.schema.json +0 -0
  166. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/redact.schema.json +0 -0
  167. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/span.schema.json +0 -0
  168. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/payloads/template.schema.json +0 -0
  169. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema/types/common.schema.json +0 -0
  170. {spanforge-1.0.2 → spanforge-1.0.3}/docs/schema-versioning.md +0 -0
  171. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/alert.md +0 -0
  172. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/audit.md +0 -0
  173. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/cache.md +0 -0
  174. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/compliance.md +0 -0
  175. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/custom_exporters.md +0 -0
  176. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/debugging.md +0 -0
  177. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/events.md +0 -0
  178. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/export.md +0 -0
  179. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/feedback.md +0 -0
  180. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/gate.md +0 -0
  181. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/governance.md +0 -0
  182. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/in_memory_state.md +0 -0
  183. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/index.md +0 -0
  184. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/linting.md +0 -0
  185. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/metrics.md +0 -0
  186. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/migration.md +0 -0
  187. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/rag.md +0 -0
  188. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/redaction.md +0 -0
  189. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/signing.md +0 -0
  190. {spanforge-1.0.2 → spanforge-1.0.3}/docs/user_guide/tracing.md +0 -0
  191. {spanforge-1.0.2 → spanforge-1.0.3}/examples/agent_workflow.py +0 -0
  192. {spanforge-1.0.2 → spanforge-1.0.3}/examples/budget_alert.py +0 -0
  193. {spanforge-1.0.2 → spanforge-1.0.3}/examples/docker/Dockerfile +0 -0
  194. {spanforge-1.0.2 → spanforge-1.0.3}/examples/docker/docker-compose.yml +0 -0
  195. {spanforge-1.0.2 → spanforge-1.0.3}/examples/docker/otel-config.yaml +0 -0
  196. {spanforge-1.0.2 → spanforge-1.0.3}/examples/enterprise_evidence_demo.py +0 -0
  197. {spanforge-1.0.2 → spanforge-1.0.3}/examples/explain_demo.py +0 -0
  198. {spanforge-1.0.2 → spanforge-1.0.3}/examples/gates/gate5_governance.yaml +0 -0
  199. {spanforge-1.0.2 → spanforge-1.0.3}/examples/gates/sf-gate.yaml +0 -0
  200. {spanforge-1.0.2 → spanforge-1.0.3}/examples/langchain_chain.py +0 -0
  201. {spanforge-1.0.2 → spanforge-1.0.3}/examples/multi_agent_rag.py +0 -0
  202. {spanforge-1.0.2 → spanforge-1.0.3}/examples/multi_tenant.py +0 -0
  203. {spanforge-1.0.2 → spanforge-1.0.3}/examples/openai_chat.py +0 -0
  204. {spanforge-1.0.2 → spanforge-1.0.3}/examples/otlp_grafana.py +0 -0
  205. {spanforge-1.0.2 → spanforge-1.0.3}/examples/production_multi_agent.py +0 -0
  206. {spanforge-1.0.2 → spanforge-1.0.3}/examples/runtime_governance_demo.py +0 -0
  207. {spanforge-1.0.2 → spanforge-1.0.3}/examples/scope_demo.py +0 -0
  208. {spanforge-1.0.2 → spanforge-1.0.3}/examples/scope_manifest.yaml +0 -0
  209. {spanforge-1.0.2 → spanforge-1.0.3}/examples/secure_pipeline.py +0 -0
  210. {spanforge-1.0.2 → spanforge-1.0.3}/examples/streaming_response.py +0 -0
  211. {spanforge-1.0.2 → spanforge-1.0.3}/examples/testing_mocks_example.py +0 -0
  212. {spanforge-1.0.2 → spanforge-1.0.3}/examples/validate_demo.py +0 -0
  213. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/Chart.yaml +0 -0
  214. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/_helpers.tpl +0 -0
  215. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/deployment.yaml +0 -0
  216. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/hpa.yaml +0 -0
  217. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/networkpolicy.yaml +0 -0
  218. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/pdb.yaml +0 -0
  219. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/secret.yaml +0 -0
  220. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/templates/service.yaml +0 -0
  221. {spanforge-1.0.2 → spanforge-1.0.3}/helm/spanforge/values.yaml +0 -0
  222. {spanforge-1.0.2 → spanforge-1.0.3}/k6/README.md +0 -0
  223. {spanforge-1.0.2 → spanforge-1.0.3}/k6/pii_scan_50rps.js +0 -0
  224. {spanforge-1.0.2 → spanforge-1.0.3}/k6/score_100rps.js +0 -0
  225. {spanforge-1.0.2 → spanforge-1.0.3}/k6/secrets_scan_100rps.js +0 -0
  226. {spanforge-1.0.2 → spanforge-1.0.3}/sonar-project.properties +0 -0
  227. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/__init__.py +0 -0
  228. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_ansi.py +0 -0
  229. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_batch_exporter.py +0 -0
  230. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli.py +0 -0
  231. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_audit.py +0 -0
  232. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_compliance.py +0 -0
  233. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_config.py +0 -0
  234. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_cost.py +0 -0
  235. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_ops.py +0 -0
  236. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_cli_phase11.py +0 -0
  237. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_hooks.py +0 -0
  238. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_server.py +0 -0
  239. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_span.py +0 -0
  240. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_store.py +0 -0
  241. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_stream.py +0 -0
  242. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_trace.py +0 -0
  243. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/_tracer.py +0 -0
  244. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/actor.py +0 -0
  245. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/alerts.py +0 -0
  246. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/auto.py +0 -0
  247. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/baseline.py +0 -0
  248. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/cache.py +0 -0
  249. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/compliance.py +0 -0
  250. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/config.py +0 -0
  251. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/consent.py +0 -0
  252. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/consumer.py +0 -0
  253. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/core/__init__.py +0 -0
  254. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/core/compliance_mapping.py +0 -0
  255. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/core/dx.py +0 -0
  256. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/cost.py +0 -0
  257. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/debug.py +0 -0
  258. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/deprecations.py +0 -0
  259. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/drift.py +0 -0
  260. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/egress.py +0 -0
  261. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/eval.py +0 -0
  262. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/event.py +0 -0
  263. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/exceptions.py +0 -0
  264. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/explain.py +0 -0
  265. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/__init__.py +0 -0
  266. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/append_only.py +0 -0
  267. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/cloud.py +0 -0
  268. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/datadog.py +0 -0
  269. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/grafana.py +0 -0
  270. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/jsonl.py +0 -0
  271. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/openinference.py +0 -0
  272. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/otel_bridge.py +0 -0
  273. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/otlp.py +0 -0
  274. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/otlp_bridge.py +0 -0
  275. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/redis_backend.py +0 -0
  276. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/siem.py +0 -0
  277. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/siem_schema.py +0 -0
  278. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/siem_splunk.py +0 -0
  279. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/siem_syslog.py +0 -0
  280. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/export/webhook.py +0 -0
  281. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/exporters/__init__.py +0 -0
  282. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/exporters/console.py +0 -0
  283. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/exporters/jsonl.py +0 -0
  284. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/exporters/sqlite.py +0 -0
  285. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/gate.py +0 -0
  286. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/governance.py +0 -0
  287. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/hitl.py +0 -0
  288. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/http.py +0 -0
  289. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/inspect.py +0 -0
  290. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/__init__.py +0 -0
  291. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/_pricing.py +0 -0
  292. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/anthropic.py +0 -0
  293. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/azure_openai.py +0 -0
  294. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/bedrock.py +0 -0
  295. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/crewai.py +0 -0
  296. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/gemini.py +0 -0
  297. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/groq.py +0 -0
  298. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/langchain.py +0 -0
  299. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/langgraph.py +0 -0
  300. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/llamaindex.py +0 -0
  301. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/ollama.py +0 -0
  302. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/openai.py +0 -0
  303. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/integrations/together.py +0 -0
  304. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/io.py +0 -0
  305. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/lint.py +0 -0
  306. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/metrics.py +0 -0
  307. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/metrics_export.py +0 -0
  308. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/migrate.py +0 -0
  309. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/model_registry.py +0 -0
  310. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/models.py +0 -0
  311. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/__init__.py +0 -0
  312. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/audit.py +0 -0
  313. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/cache.py +0 -0
  314. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/chain.py +0 -0
  315. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/confidence.py +0 -0
  316. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/consent.py +0 -0
  317. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/cost.py +0 -0
  318. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/decision.py +0 -0
  319. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/diff.py +0 -0
  320. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/drift.py +0 -0
  321. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/eval_.py +0 -0
  322. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/feedback.py +0 -0
  323. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/fence.py +0 -0
  324. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/guard.py +0 -0
  325. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/hitl.py +0 -0
  326. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/latency.py +0 -0
  327. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/prompt.py +0 -0
  328. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/redact.py +0 -0
  329. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/retrieval.py +0 -0
  330. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/runtime_governance.py +0 -0
  331. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/template.py +0 -0
  332. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/tool_call.py +0 -0
  333. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/namespaces/trace.py +0 -0
  334. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/normalizer.py +0 -0
  335. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/plugins.py +0 -0
  336. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/presidio_backend.py +0 -0
  337. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/processor.py +0 -0
  338. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/prompt_registry.py +0 -0
  339. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/py.typed +0 -0
  340. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/redact.py +0 -0
  341. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/regression.py +0 -0
  342. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/runtime_policy.py +0 -0
  343. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sampling.py +0 -0
  344. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/schema.py +0 -0
  345. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/schemas/frameworks/frameworks.yaml +0 -0
  346. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/schemas/v1.0/schema.json +0 -0
  347. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/schemas/v2.0/schema.json +0 -0
  348. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/__init__.py +0 -0
  349. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/_base.py +0 -0
  350. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/_base.pyi +0 -0
  351. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/_exceptions.py +0 -0
  352. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/_types.py +0 -0
  353. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/alert.py +0 -0
  354. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/alert.pyi +0 -0
  355. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/audit.py +0 -0
  356. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/audit.pyi +0 -0
  357. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/cec.py +0 -0
  358. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/cec.pyi +0 -0
  359. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/config.py +0 -0
  360. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/config.pyi +0 -0
  361. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/dataset_scanner.py +0 -0
  362. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/enterprise.py +0 -0
  363. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/enterprise.pyi +0 -0
  364. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/explain.py +0 -0
  365. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/fallback.py +0 -0
  366. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/feedback.py +0 -0
  367. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/gate.py +0 -0
  368. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/gate.pyi +0 -0
  369. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/identity.py +0 -0
  370. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/identity.pyi +0 -0
  371. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/lineage.py +0 -0
  372. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/observe.py +0 -0
  373. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/observe.pyi +0 -0
  374. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/operator.py +0 -0
  375. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/pii.py +0 -0
  376. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/pii.pyi +0 -0
  377. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/pipelines.py +0 -0
  378. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/pipelines.pyi +0 -0
  379. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/policy.py +0 -0
  380. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/rag.py +0 -0
  381. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/rbac.py +0 -0
  382. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/registry.py +0 -0
  383. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/registry.pyi +0 -0
  384. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/scope.py +0 -0
  385. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/secrets.py +0 -0
  386. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/secrets.pyi +0 -0
  387. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/security.py +0 -0
  388. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/security.pyi +0 -0
  389. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/trust.py +0 -0
  390. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/trust.pyi +0 -0
  391. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/sdk/validate.py +0 -0
  392. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/secrets.py +0 -0
  393. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/signing.py +0 -0
  394. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/stats.py +0 -0
  395. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/stream.py +0 -0
  396. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/testing.py +0 -0
  397. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/testing_mocks.py +0 -0
  398. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/trace.py +0 -0
  399. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/types.py +0 -0
  400. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/ulid.py +0 -0
  401. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/validate.py +0 -0
  402. {spanforge-1.0.2 → spanforge-1.0.3}/src/spanforge/workflow.py +0 -0
  403. {spanforge-1.0.2 → spanforge-1.0.3}/test_agent.jsonl +0 -0
  404. {spanforge-1.0.2 → spanforge-1.0.3}/test_events.jsonl +0 -0
  405. {spanforge-1.0.2 → spanforge-1.0.3}/tests/__init__.py +0 -0
  406. {spanforge-1.0.2 → spanforge-1.0.3}/tests/chaos/README.md +0 -0
  407. {spanforge-1.0.2 → spanforge-1.0.3}/tests/chaos/test_service_unavailability.py +0 -0
  408. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/__init__.py +0 -0
  409. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/chain.json +0 -0
  410. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/compliance.json +0 -0
  411. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/key_security.json +0 -0
  412. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/migration.json +0 -0
  413. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/pii.json +0 -0
  414. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures/signing.json +0 -0
  415. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/fixtures.json +0 -0
  416. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/run_conformance.py +0 -0
  417. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conformance/test_conformance.py +0 -0
  418. {spanforge-1.0.2 → spanforge-1.0.3}/tests/conftest.py +0 -0
  419. {spanforge-1.0.2 → spanforge-1.0.3}/tests/fixtures/clean_dataset/data.jsonl +0 -0
  420. {spanforge-1.0.2 → spanforge-1.0.3}/tests/fixtures/no_consent_dataset/data.jsonl +0 -0
  421. {spanforge-1.0.2 → spanforge-1.0.3}/tests/fixtures/pii_dataset/data.jsonl +0 -0
  422. {spanforge-1.0.2 → spanforge-1.0.3}/tests/integration/__init__.py +0 -0
  423. {spanforge-1.0.2 → spanforge-1.0.3}/tests/integration/test_dx_integration.py +0 -0
  424. {spanforge-1.0.2 → spanforge-1.0.3}/tests/load/README.md +0 -0
  425. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_1e1_siem_langgraph.py +0 -0
  426. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_actor.py +0 -0
  427. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_alerts.py +0 -0
  428. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_ansi.py +0 -0
  429. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_auto.py +0 -0
  430. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_baseline.py +0 -0
  431. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_batch_exporter.py +0 -0
  432. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_benchmarks.py +0 -0
  433. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_budget_alert.py +0 -0
  434. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cache.py +0 -0
  435. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli.py +0 -0
  436. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_audit_module.py +0 -0
  437. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_compliance_dataset.py +0 -0
  438. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_compliance_module.py +0 -0
  439. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_config_1d1.py +0 -0
  440. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_cost_module.py +0 -0
  441. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_ops_module.py +0 -0
  442. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cli_phase11_module.py +0 -0
  443. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_compliance.py +0 -0
  444. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_compliance_mapping.py +0 -0
  445. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_config_interpolate.py +0 -0
  446. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_consent.py +0 -0
  447. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_consumer.py +0 -0
  448. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cost_event_emission.py +0 -0
  449. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_cost_tracker.py +0 -0
  450. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_costguard_gaps.py +0 -0
  451. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_coverage_gaps.py +0 -0
  452. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_coverage_supplement_1.py +0 -0
  453. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_coverage_supplement_2.py +0 -0
  454. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_coverage_supplement_3.py +0 -0
  455. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_coverage_supplement_4.py +0 -0
  456. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_dataset_scanner.py +0 -0
  457. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_deprecations.py +0 -0
  458. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_drift.py +0 -0
  459. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_e2e_cli.py +0 -0
  460. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_egress_and_normalizer.py +0 -0
  461. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_eval_behaviour_scorer.py +0 -0
  462. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_event.py +0 -0
  463. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_exceptions.py +0 -0
  464. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_explain.py +0 -0
  465. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_cloud.py +0 -0
  466. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_datadog.py +0 -0
  467. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_grafana.py +0 -0
  468. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_jsonl.py +0 -0
  469. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_otel_bridge.py +0 -0
  470. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_otlp.py +0 -0
  471. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_redis_backend.py +0 -0
  472. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_siem_splunk.py +0 -0
  473. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_siem_syslog.py +0 -0
  474. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_export_webhook.py +0 -0
  475. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_feedback.py +0 -0
  476. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_framework_mapper.py +0 -0
  477. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_gate_deep.py +0 -0
  478. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_governance.py +0 -0
  479. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_hitl.py +0 -0
  480. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_http.py +0 -0
  481. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_inspect.py +0 -0
  482. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_integration.py +0 -0
  483. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_integrations.py +0 -0
  484. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_io.py +0 -0
  485. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_lint.py +0 -0
  486. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_migrate.py +0 -0
  487. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_model_registry.py +0 -0
  488. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_models.py +0 -0
  489. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_namespaces.py +0 -0
  490. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_otlp_bridge.py +0 -0
  491. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase0_scale.py +0 -0
  492. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase10_features.py +0 -0
  493. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase10_trust.py +0 -0
  494. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase11_enterprise.py +0 -0
  495. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase11_security.py +0 -0
  496. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase12_dx.py +0 -0
  497. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase1_context_trace.py +0 -0
  498. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase2_observability.py +0 -0
  499. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase3_debug_sampling.py +0 -0
  500. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase4_agent_instrumentation.py +0 -0
  501. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase4_metrics_store.py +0 -0
  502. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase5_console_exporter.py +0 -0
  503. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase5_coverage.py +0 -0
  504. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase5_enterprise_integrations.py +0 -0
  505. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase5_hooks_crewai.py +0 -0
  506. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase6_enterprise_deployment_packaging.py +0 -0
  507. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase6_openai_integration.py +0 -0
  508. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_phase8_release_hardening.py +0 -0
  509. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_plugins.py +0 -0
  510. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_processor_coverage.py +0 -0
  511. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_prompt_registry.py +0 -0
  512. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_properties.py +0 -0
  513. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_public_root_lazy_imports.py +0 -0
  514. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_rag.py +0 -0
  515. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_redact.py +0 -0
  516. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_regression.py +0 -0
  517. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_repo_guardrails.py +0 -0
  518. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_rfc_namespaces.py +0 -0
  519. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_runtime_governance_phase0.py +0 -0
  520. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sampling_coverage.py +0 -0
  521. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_schema.py +0 -0
  522. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_config.py +0 -0
  523. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_coverage_boost.py +0 -0
  524. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_explain.py +0 -0
  525. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_exporters.py +0 -0
  526. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_final_coverage.py +0 -0
  527. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_gap_filler.py +0 -0
  528. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_openai_integration.py +0 -0
  529. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_phase7_integrations.py +0 -0
  530. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_pipelines_deep.py +0 -0
  531. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_precision_coverage.py +0 -0
  532. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_scope.py +0 -0
  533. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_span.py +0 -0
  534. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_stream.py +0 -0
  535. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_tracer.py +0 -0
  536. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_validate.py +0 -0
  537. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sdk_validation_coverage.py +0 -0
  538. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_server.py +0 -0
  539. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf11.py +0 -0
  540. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf12.py +0 -0
  541. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf13.py +0 -0
  542. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf14.py +0 -0
  543. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf15.py +0 -0
  544. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf16.py +0 -0
  545. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf9_config.py +0 -0
  546. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_alert.py +0 -0
  547. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_audit.py +0 -0
  548. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_cec.py +0 -0
  549. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_explain.py +0 -0
  550. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_gate.py +0 -0
  551. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_identity.py +0 -0
  552. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_lineage.py +0 -0
  553. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_observe.py +0 -0
  554. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_operator.py +0 -0
  555. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_pii.py +0 -0
  556. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_policy.py +0 -0
  557. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_policy_integration.py +0 -0
  558. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_policy_phase3.py +0 -0
  559. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_rag.py +0 -0
  560. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_rbac.py +0 -0
  561. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_scope.py +0 -0
  562. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_sf_secrets.py +0 -0
  563. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_signing.py +0 -0
  564. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_stats.py +0 -0
  565. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_stream.py +0 -0
  566. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_trace_decorator.py +0 -0
  567. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_trace_pytest_fixtures.py +0 -0
  568. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_types.py +0 -0
  569. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_ulid.py +0 -0
  570. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_validate.py +0 -0
  571. {spanforge-1.0.2 → spanforge-1.0.3}/tests/test_workflow.py +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 viswanathanstartup
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spanforge
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: SpanForge — AI lifecycle and governance platform (RFC-0001 SPANFORGE)
5
5
  Project-URL: Homepage, https://github.com/veerarag1973/spanforge
6
6
  Project-URL: Documentation, https://github.com/veerarag1973/spanforge/blob/main/docs/index.md
@@ -8,12 +8,12 @@ Project-URL: Source, https://github.com/veerarag1973/spanforge
8
8
  Project-URL: Bug Tracker, https://github.com/veerarag1973/spanforge/issues
9
9
  Project-URL: Changelog, https://github.com/veerarag1973/spanforge/blob/main/docs/changelog.md
10
10
  Author: viswanathanstartup
11
- License: PolyForm-Noncommercial-1.0.0
11
+ License: MIT
12
12
  License-File: LICENSE
13
13
  Keywords: agentic-ai,ai-compliance,ai-lifecycle,events,governance,llm,opentelemetry,schema,spanforge
14
14
  Classifier: Development Status :: 5 - Production/Stable
15
15
  Classifier: Intended Audience :: Developers
16
- Classifier: License :: Other/Proprietary License
16
+ Classifier: License :: OSI Approved :: MIT License
17
17
  Classifier: Programming Language :: Python :: 3
18
18
  Classifier: Programming Language :: Python :: 3.9
19
19
  Classifier: Programming Language :: Python :: 3.10
@@ -122,9 +122,8 @@ Description-Content-Type: text/markdown
122
122
  <img src="https://img.shields.io/badge/version-1.0.2-4c8cbf" alt="Version 1.0.2"/>
123
123
  <img src="https://img.shields.io/badge/dependencies-zero-brightgreen" alt="Zero dependencies"/>
124
124
  <a href="docs/index.md"><img src="https://img.shields.io/badge/docs-local-4c8cbf" alt="Documentation"/></a>
125
- <a href="LICENSE"><img src="https://img.shields.io/badge/license-PolyForm%20NC%201.0-blue" alt="PolyForm Noncommercial 1.0"/></a>
126
- <img src="https://img.shields.io/badge/free%20for-personal%20%7C%20research%20%7C%20open--source-brightgreen" alt="Free for personal, research, and open-source use"/>
127
- <a href="https://getspanforge.com/pricing"><img src="https://img.shields.io/badge/commercial%20use-license%20required-orange" alt="Commercial use requires a license"/></a>
125
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"/></a>
126
+ <img src="https://img.shields.io/badge/free%20for-any%20use-brightgreen" alt="Free for any use"/>
128
127
  </p>
129
128
 
130
129
  ---
@@ -143,13 +142,13 @@ You might think compliance is a later problem — something to worry about when
143
142
 
144
143
  - **You'll hit it sooner than you think.** The first B2B customer, the first SaaS sign-up from an EU user, the first healthcare or fintech pilot — they'll ask "how do you govern your AI?" If you have no answer, you lose the deal.
145
144
  - **Retrofitting is expensive.** Adding audit trails, PII scrubbing, and signed evidence chains to an existing system takes weeks. Adding them with spanforge from day one takes minutes.
146
- - **It's zero-cost to start.** The entire SDK is free for noncommercial use, zero dependencies, and works in-memory with no infrastructure. You don't pay anything until you need hosted storage.
145
+ - **It's zero-cost to start.** The entire SDK is MIT-licensed, zero dependencies, and works in-memory with no infrastructure. You don't pay anything until you need hosted storage.
147
146
  - **It de-risks you personally.** GDPR fines apply to individuals running services, not just corporations. PII redaction and tamper-proof logs are your protection too.
148
147
 
149
148
  In short: spanforge is the `logging` import you should have added on day one — except it also signs your audit trail and maps it to the regulations that will eventually matter to you.
150
149
 
151
150
  ```python
152
- pip install spanforge # free for noncommercial use, zero deps
151
+ pip install spanforge # MIT licensed, zero deps
153
152
  ```
154
153
 
155
154
  ```python
@@ -1539,14 +1538,12 @@ Contributions welcome — see the [Contributing Guide](docs/contributing.md). Al
1539
1538
 
1540
1539
  ## License
1541
1540
 
1542
- **[PolyForm Noncommercial License 1.0.0](LICENSE)**
1541
+ **[MIT License](LICENSE)**
1543
1542
 
1544
- - ✅ Free for personal use, research, education, open-source projects, and non-profit organisations.
1545
- - Commercial use (running as a paid service, internal business use, SaaS integration) requires a commercial license.
1543
+ - ✅ Free for any use — personal, research, education, open-source, and commercial.
1544
+ - No restrictions on distribution, modification, or sublicensing.
1546
1545
 
1547
- To obtain a commercial license: **sriram@getspanforge.com** | [getspanforge.com/pricing](https://getspanforge.com/pricing)
1548
-
1549
- > Enterprise features (SSO, air-gapped deployment, dedicated support, SLAs) are available in **SpanForge Enterprise** — a separate commercial product.
1546
+ > Enterprise features (SSO, air-gapped deployment, dedicated support, SLAs) are available in **SpanForge Enterprise** — contact **sriram@getspanforge.com** | [getspanforge.com/pricing](https://getspanforge.com/pricing).
1550
1547
 
1551
1548
  ---
1552
1549
 
@@ -1,6 +1,6 @@
1
1
  # spanforge Pricing
2
2
 
3
- spanforge is source-available software released under the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/). The core library is and always will be **free for noncommercial use**.
3
+ spanforge is open-source software released under the [MIT License](https://opensource.org/licenses/MIT). The core library is and always will be **free for any use**, including commercial.
4
4
 
5
5
  The paid tiers described below are for **hosted services, commercial support, and enterprise add-ons** built on top of the open-source library.
6
6
 
@@ -10,8 +10,8 @@ The paid tiers described below are for **hosted services, commercial support, an
10
10
 
11
11
  | | **Community** | **Cloud** | **Cloud Team** | **Compliance** |
12
12
  |---|---|---|---|---|
13
- | **Price** | Free (PolyForm NC) | $29 / month flat | $99 / month flat | $299 / month flat |
14
- | **License** | PolyForm NC 1.0 | PolyForm NC + Cloud ToS | PolyForm NC + Cloud ToS | Commercial License + Enterprise Agreement |
13
+ | **Price** | Free (MIT) | $29 / month flat | $99 / month flat | $299 / month flat |
14
+ | **License** | MIT | MIT + Cloud ToS | MIT + Cloud ToS | MIT + Enterprise Agreement |
15
15
  | **Core SDK** | ✅ All features | ✅ All features | ✅ All features | ✅ All features |
16
16
  | **HMAC signing** | ✅ | ✅ | ✅ | ✅ |
17
17
  | **PII redaction** | ✅ | ✅ | ✅ | ✅ |
@@ -41,8 +41,8 @@ The paid tiers described below are for **hosted services, commercial support, an
41
41
 
42
42
  ## Community (Free)
43
43
 
44
- - Full SDK under PolyForm Noncommercial License — free for personal, research, open-source, and noncommercial use
45
- - Commercial use requires a paid tier (Cloud, Cloud Team, or Compliance) or a separate commercial licence — contact [team@getspanforge.com](mailto:team@getspanforge.com)
44
+ - Full SDK under MIT License — free for any use including commercial
45
+ - Paid tiers are for hosted services, managed storage, compliance tooling, and enterprise support — contact [team@getspanforge.com](mailto:team@getspanforge.com)
46
46
  - 97-file test suite, 6,109+ tests, 90%+ coverage
47
47
  - Local SPA trace viewer (`spanforge serve` / `spanforge ui`)
48
48
  - GitHub Issues, GitHub Discussions, SECURITY.md responsible-disclosure
@@ -18,9 +18,8 @@
18
18
  <img src="https://img.shields.io/badge/version-1.0.2-4c8cbf" alt="Version 1.0.2"/>
19
19
  <img src="https://img.shields.io/badge/dependencies-zero-brightgreen" alt="Zero dependencies"/>
20
20
  <a href="docs/index.md"><img src="https://img.shields.io/badge/docs-local-4c8cbf" alt="Documentation"/></a>
21
- <a href="LICENSE"><img src="https://img.shields.io/badge/license-PolyForm%20NC%201.0-blue" alt="PolyForm Noncommercial 1.0"/></a>
22
- <img src="https://img.shields.io/badge/free%20for-personal%20%7C%20research%20%7C%20open--source-brightgreen" alt="Free for personal, research, and open-source use"/>
23
- <a href="https://getspanforge.com/pricing"><img src="https://img.shields.io/badge/commercial%20use-license%20required-orange" alt="Commercial use requires a license"/></a>
21
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"/></a>
22
+ <img src="https://img.shields.io/badge/free%20for-any%20use-brightgreen" alt="Free for any use"/>
24
23
  </p>
25
24
 
26
25
  ---
@@ -39,13 +38,13 @@ You might think compliance is a later problem — something to worry about when
39
38
 
40
39
  - **You'll hit it sooner than you think.** The first B2B customer, the first SaaS sign-up from an EU user, the first healthcare or fintech pilot — they'll ask "how do you govern your AI?" If you have no answer, you lose the deal.
41
40
  - **Retrofitting is expensive.** Adding audit trails, PII scrubbing, and signed evidence chains to an existing system takes weeks. Adding them with spanforge from day one takes minutes.
42
- - **It's zero-cost to start.** The entire SDK is free for noncommercial use, zero dependencies, and works in-memory with no infrastructure. You don't pay anything until you need hosted storage.
41
+ - **It's zero-cost to start.** The entire SDK is MIT-licensed, zero dependencies, and works in-memory with no infrastructure. You don't pay anything until you need hosted storage.
43
42
  - **It de-risks you personally.** GDPR fines apply to individuals running services, not just corporations. PII redaction and tamper-proof logs are your protection too.
44
43
 
45
44
  In short: spanforge is the `logging` import you should have added on day one — except it also signs your audit trail and maps it to the regulations that will eventually matter to you.
46
45
 
47
46
  ```python
48
- pip install spanforge # free for noncommercial use, zero deps
47
+ pip install spanforge # MIT licensed, zero deps
49
48
  ```
50
49
 
51
50
  ```python
@@ -1435,14 +1434,12 @@ Contributions welcome — see the [Contributing Guide](docs/contributing.md). Al
1435
1434
 
1436
1435
  ## License
1437
1436
 
1438
- **[PolyForm Noncommercial License 1.0.0](LICENSE)**
1437
+ **[MIT License](LICENSE)**
1439
1438
 
1440
- - ✅ Free for personal use, research, education, open-source projects, and non-profit organisations.
1441
- - Commercial use (running as a paid service, internal business use, SaaS integration) requires a commercial license.
1439
+ - ✅ Free for any use — personal, research, education, open-source, and commercial.
1440
+ - No restrictions on distribution, modification, or sublicensing.
1442
1441
 
1443
- To obtain a commercial license: **sriram@getspanforge.com** | [getspanforge.com/pricing](https://getspanforge.com/pricing)
1444
-
1445
- > Enterprise features (SSO, air-gapped deployment, dedicated support, SLAs) are available in **SpanForge Enterprise** — a separate commercial product.
1442
+ > Enterprise features (SSO, air-gapped deployment, dedicated support, SLAs) are available in **SpanForge Enterprise** — contact **sriram@getspanforge.com** | [getspanforge.com/pricing](https://getspanforge.com/pricing).
1446
1443
 
1447
1444
  ---
1448
1445
 
@@ -201,5 +201,5 @@ Before opening a PR, confirm:
201
201
 
202
202
  ## License
203
203
 
204
- spanforge is released under the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/). Contributions are accepted under the same license.
205
- By contributing you agree that your contributions will be licensed under the same terms.
204
+ spanforge is released under the [MIT License](https://opensource.org/licenses/MIT). Contributions are accepted under the same license.
205
+ By contributing you agree that your contributions will be licensed under the MIT License.
@@ -137,4 +137,4 @@ All changes to this RFC go through the RFC amendment process:
137
137
 
138
138
  ## License
139
139
 
140
- This RFC and the SPANFORGE schema are published under the [PolyForm Noncommercial License 1.0.0](../../LICENSE).
140
+ This RFC and the SPANFORGE schema are published under the [MIT License](../../LICENSE).
@@ -7,16 +7,16 @@ build-backend = "hatchling.build"
7
7
  # ---------------------------------------------------------------------------
8
8
  [project]
9
9
  name = "spanforge"
10
- version = "1.0.2"
10
+ version = "1.0.3"
11
11
  description = "SpanForge — AI lifecycle and governance platform (RFC-0001 SPANFORGE)"
12
12
  readme = "README.md"
13
- license = { text = "PolyForm-Noncommercial-1.0.0" }
13
+ license = { text = "MIT" }
14
14
  authors = [{ name = "viswanathanstartup" }]
15
15
  keywords = ["llm", "spanforge", "ai-compliance", "opentelemetry", "agentic-ai", "governance", "ai-lifecycle", "schema", "events"]
16
16
  classifiers = [
17
17
  "Development Status :: 5 - Production/Stable",
18
18
  "Intended Audience :: Developers",
19
- "License :: Other/Proprietary License",
19
+ "License :: OSI Approved :: MIT License",
20
20
  "Programming Language :: Python :: 3",
21
21
  "Programming Language :: Python :: 3.9",
22
22
  "Programming Language :: Python :: 3.10",
spanforge-1.0.2/LICENSE DELETED
@@ -1,128 +0,0 @@
1
- PolyForm Noncommercial License 1.0.0
2
-
3
- Copyright (c) 2026 viswanathanstartup
4
-
5
- Acceptance
6
-
7
- In order to get any license under these terms, you must agree to them as both
8
- strict obligations and conditions to all your licenses.
9
-
10
- Copyright License
11
-
12
- The licensor grants you a copyright license for the software to do everything
13
- you might do with the software that would otherwise infringe the licensor's
14
- copyright in it for any permitted purpose. However, you may only distribute
15
- the software according to Distribution License and make changes or new works
16
- based on the software according to Changes and New Works License.
17
-
18
- Distribution License
19
-
20
- The licensor grants you an additional copyright license to distribute copies
21
- of the software. Your license to distribute covers distributing the software
22
- with changes and new works permitted by Changes and New Works License.
23
-
24
- Notices
25
-
26
- You must ensure that anyone who gets a copy of any part of the software from
27
- you also gets a copy of these terms or the URL for them above, as well as
28
- copies of any plain-text lines beginning with "Required Notice:" that the
29
- licensor provided with the software. For example:
30
-
31
- Required Notice: Copyright (c) 2026 viswanathanstartup (https://getspanforge.com)
32
-
33
- Changes and New Works License
34
-
35
- The licensor grants you an additional copyright license to make changes and
36
- new works based on the software for any permitted purpose.
37
-
38
- Patent License
39
-
40
- The licensor grants you a patent license for the software that covers patent
41
- claims the licensor can license, or will be able to license, that you would
42
- infringe by using the software.
43
-
44
- Noncommercial Purposes
45
-
46
- Any noncommercial purpose is a permitted purpose.
47
-
48
- Personal Uses
49
-
50
- Personal use for research, experiment, and testing for the benefit of public
51
- knowledge, personal study, private entertainment, hobby projects, amateur
52
- pursuits, or religious observance, without any anticipated commercial
53
- application, is use for a permitted purpose.
54
-
55
- Noncommercial Organizations
56
-
57
- Use by any charitable organization, educational institution, public research
58
- organization, public safety or health organization, environmental protection
59
- organization, or government institution is use for a permitted purpose
60
- regardless of the source of funding or obligations resulting from the funding.
61
-
62
- Fair Use
63
-
64
- You may have "fair use" rights for the software under the law. These terms do
65
- not limit them.
66
-
67
- No Other Rights
68
-
69
- These terms do not allow you to sublicense or transfer any of your licenses to
70
- anyone else, or prevent the licensor from granting licenses to anyone else.
71
- These terms do not imply any other licenses.
72
-
73
- Patent Defense
74
-
75
- If you make any written claim that the software infringes or contributes to
76
- infringement of any patent, your patent license for the software granted under
77
- these terms ends immediately. If your employer makes such a claim, your patent
78
- license ends immediately for work on behalf of your employer.
79
-
80
- Violations
81
-
82
- The first time you are notified in writing that you have violated any of these
83
- terms, or done anything with the software not covered by your licenses, you
84
- may avoid losing your licenses by taking all practical steps to comply within
85
- 30 days after the notice. If you do not do so, your licenses end immediately.
86
-
87
- No Liability
88
-
89
- As far as the law allows, the software comes as is, without any warranty or
90
- condition, and the licensor will not be liable to you for any damages arising
91
- out of these terms or the use or nature of the software, under any kind of
92
- legal claim.
93
-
94
- Definitions
95
-
96
- The "licensor" is the individual or entity offering these terms.
97
-
98
- The "software" is the software the licensor makes available under these terms.
99
-
100
- "You" refers to the individual or entity agreeing to these terms.
101
-
102
- "Your company" is any legal entity, sole proprietorship, or other kind of
103
- organization that you work for, plus all organizations that have control over,
104
- are under the control of, or are under common control with that organization.
105
- "Control" means ownership of substantially all the assets of an entity, or the
106
- power to direct its management and legal commitments.
107
-
108
- "Your licenses" are all the licenses granted to you for the software under
109
- these terms.
110
-
111
- "Use" means anything you do with the software requiring one of your licenses.
112
-
113
- ---
114
-
115
- COMMERCIAL USE
116
-
117
- Use of this software for any commercial purpose — including but not limited to:
118
- - running this software as part of a paid product or service,
119
- - using this software to process data on behalf of a business,
120
- - integrating this software into a product offered to customers,
121
- - using this software internally at a for-profit company —
122
-
123
- requires a separate commercial license from the copyright holder.
124
-
125
- To obtain a commercial license, contact: sriram@getspanforge.com
126
- Commercial licensing details: https://getspanforge.com/pricing
127
-
128
- SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes