cfa-kernel 0.1.0__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.
- cfa_kernel-0.1.0/.gitattributes +1 -0
- cfa_kernel-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
- cfa_kernel-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
- cfa_kernel-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +30 -0
- cfa_kernel-0.1.0/.github/workflows/ci.yml +37 -0
- cfa_kernel-0.1.0/.github/workflows/deploy-docs.yml +36 -0
- cfa_kernel-0.1.0/.github/workflows/deploy-pypi.yml +24 -0
- cfa_kernel-0.1.0/.github/workflows/governance.yml +34 -0
- cfa_kernel-0.1.0/.gitignore +70 -0
- cfa_kernel-0.1.0/.uv-cache/.gitignore +1 -0
- cfa_kernel-0.1.0/.uv-cache/.lock +0 -0
- cfa_kernel-0.1.0/.uv-cache/CACHEDIR.TAG +1 -0
- cfa_kernel-0.1.0/.uv-cache/sdists-v9/.gitignore +0 -0
- cfa_kernel-0.1.0/CFA_IMPLEMENTATION_PLAN.md +780 -0
- cfa_kernel-0.1.0/CFA_MARKET_RESEARCH_2026.md +404 -0
- cfa_kernel-0.1.0/CODE_OF_CONDUCT.md +57 -0
- cfa_kernel-0.1.0/CONTRIBUTING.md +131 -0
- cfa_kernel-0.1.0/LICENSE +21 -0
- cfa_kernel-0.1.0/MANUAL_TESTING_GUIDE.md +693 -0
- cfa_kernel-0.1.0/PKG-INFO +32 -0
- cfa_kernel-0.1.0/README.md +285 -0
- cfa_kernel-0.1.0/SECURITY.md +39 -0
- cfa_kernel-0.1.0/examples/fiscal_governance.yaml +96 -0
- cfa_kernel-0.1.0/examples/full_pipeline.py +42 -0
- cfa_kernel-0.1.0/examples/llm_systematizer.py +79 -0
- cfa_kernel-0.1.0/examples/runtime_gate.py +90 -0
- cfa_kernel-0.1.0/examples/standalone_governance.py +98 -0
- cfa_kernel-0.1.0/examples/standalone_lifecycle.py +97 -0
- cfa_kernel-0.1.0/examples/standalone_resolution.py +74 -0
- cfa_kernel-0.1.0/integrations/airflow-governance-gate/README.md +134 -0
- cfa_kernel-0.1.0/integrations/airflow-governance-gate/dags/cfa_governance_gate_demo.py +79 -0
- cfa_kernel-0.1.0/integrations/airflow-governance-gate/requirements.txt +7 -0
- cfa_kernel-0.1.0/integrations/airflow-governance-gate/src/governance_gate.py +101 -0
- cfa_kernel-0.1.0/mcp.json +11 -0
- cfa_kernel-0.1.0/policies/compliance-strict-v1.yaml +79 -0
- cfa_kernel-0.1.0/policies/finops-strict-v1.yaml +59 -0
- cfa_kernel-0.1.0/policies/prod-v1.yaml +81 -0
- cfa_kernel-0.1.0/pyproject.toml +70 -0
- cfa_kernel-0.1.0/src/cfa/__init__.py +39 -0
- cfa_kernel-0.1.0/src/cfa/_lazy.py +39 -0
- cfa_kernel-0.1.0/src/cfa/adapters/__init__.py +104 -0
- cfa_kernel-0.1.0/src/cfa/adapters/autogen.py +19 -0
- cfa_kernel-0.1.0/src/cfa/adapters/crewai.py +19 -0
- cfa_kernel-0.1.0/src/cfa/adapters/dspy.py +19 -0
- cfa_kernel-0.1.0/src/cfa/adapters/langgraph.py +19 -0
- cfa_kernel-0.1.0/src/cfa/adapters/openai_agents.py +19 -0
- cfa_kernel-0.1.0/src/cfa/audit/__init__.py +15 -0
- cfa_kernel-0.1.0/src/cfa/audit/context.py +205 -0
- cfa_kernel-0.1.0/src/cfa/audit/hashing.py +41 -0
- cfa_kernel-0.1.0/src/cfa/audit/trail.py +194 -0
- cfa_kernel-0.1.0/src/cfa/backends/__init__.py +132 -0
- cfa_kernel-0.1.0/src/cfa/backends/dbt.py +338 -0
- cfa_kernel-0.1.0/src/cfa/backends/pyspark.py +240 -0
- cfa_kernel-0.1.0/src/cfa/backends/sql.py +270 -0
- cfa_kernel-0.1.0/src/cfa/behavior/__init__.py +49 -0
- cfa_kernel-0.1.0/src/cfa/behavior/llm.py +244 -0
- cfa_kernel-0.1.0/src/cfa/behavior/spec.py +235 -0
- cfa_kernel-0.1.0/src/cfa/behavior/systematizer.py +222 -0
- cfa_kernel-0.1.0/src/cfa/cli/__init__.py +296 -0
- cfa_kernel-0.1.0/src/cfa/cli/__main__.py +6 -0
- cfa_kernel-0.1.0/src/cfa/cli/_helpers.py +109 -0
- cfa_kernel-0.1.0/src/cfa/cli/core/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/cli/core/evaluate.py +72 -0
- cfa_kernel-0.1.0/src/cfa/cli/core/validate.py +29 -0
- cfa_kernel-0.1.0/src/cfa/cli/formatters.py +280 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/audit.py +65 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/catalog.py +28 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/policy.py +119 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/rules.py +42 -0
- cfa_kernel-0.1.0/src/cfa/cli/governance/signature.py +31 -0
- cfa_kernel-0.1.0/src/cfa/cli/infrastructure/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/cli/infrastructure/backend_list.py +24 -0
- cfa_kernel-0.1.0/src/cfa/cli/infrastructure/storage.py +87 -0
- cfa_kernel-0.1.0/src/cfa/cli/project/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/cli/project/init.py +73 -0
- cfa_kernel-0.1.0/src/cfa/cli/project/lifecycle.py +92 -0
- cfa_kernel-0.1.0/src/cfa/cli/project/status.py +75 -0
- cfa_kernel-0.1.0/src/cfa/cli/project/taxonomy.py +38 -0
- cfa_kernel-0.1.0/src/cfa/cli/reporting/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/cli/reporting/report.py +109 -0
- cfa_kernel-0.1.0/src/cfa/cli/reporting/serve.py +43 -0
- cfa_kernel-0.1.0/src/cfa/config.py +103 -0
- cfa_kernel-0.1.0/src/cfa/core/__init__.py +19 -0
- cfa_kernel-0.1.0/src/cfa/core/codegen.py +65 -0
- cfa_kernel-0.1.0/src/cfa/core/conditions.py +129 -0
- cfa_kernel-0.1.0/src/cfa/core/kernel.py +224 -0
- cfa_kernel-0.1.0/src/cfa/core/phases/__init__.py +0 -0
- cfa_kernel-0.1.0/src/cfa/core/phases/runner.py +477 -0
- cfa_kernel-0.1.0/src/cfa/core/planner.py +290 -0
- cfa_kernel-0.1.0/src/cfa/execution/__init__.py +12 -0
- cfa_kernel-0.1.0/src/cfa/execution/partial.py +339 -0
- cfa_kernel-0.1.0/src/cfa/execution/state_projection.py +216 -0
- cfa_kernel-0.1.0/src/cfa/governance/__init__.py +76 -0
- cfa_kernel-0.1.0/src/cfa/lifecycle/__init__.py +51 -0
- cfa_kernel-0.1.0/src/cfa/mcp/__init__.py +347 -0
- cfa_kernel-0.1.0/src/cfa/mcp/__main__.py +4 -0
- cfa_kernel-0.1.0/src/cfa/normalizer/__init__.py +15 -0
- cfa_kernel-0.1.0/src/cfa/normalizer/base.py +441 -0
- cfa_kernel-0.1.0/src/cfa/normalizer/llm.py +426 -0
- cfa_kernel-0.1.0/src/cfa/observability/__init__.py +14 -0
- cfa_kernel-0.1.0/src/cfa/observability/indices.py +177 -0
- cfa_kernel-0.1.0/src/cfa/observability/metrics.py +91 -0
- cfa_kernel-0.1.0/src/cfa/observability/notify.py +79 -0
- cfa_kernel-0.1.0/src/cfa/observability/otel.py +81 -0
- cfa_kernel-0.1.0/src/cfa/observability/promotion.py +367 -0
- cfa_kernel-0.1.0/src/cfa/policy/__init__.py +12 -0
- cfa_kernel-0.1.0/src/cfa/policy/bundle.py +317 -0
- cfa_kernel-0.1.0/src/cfa/policy/catalog.py +117 -0
- cfa_kernel-0.1.0/src/cfa/policy/engine.py +306 -0
- cfa_kernel-0.1.0/src/cfa/reporting/__init__.py +42 -0
- cfa_kernel-0.1.0/src/cfa/reporting/charts.py +223 -0
- cfa_kernel-0.1.0/src/cfa/reporting/engine.py +456 -0
- cfa_kernel-0.1.0/src/cfa/resolution/__init__.py +62 -0
- cfa_kernel-0.1.0/src/cfa/runtime/__init__.py +13 -0
- cfa_kernel-0.1.0/src/cfa/runtime/gate.py +287 -0
- cfa_kernel-0.1.0/src/cfa/sandbox/__init__.py +189 -0
- cfa_kernel-0.1.0/src/cfa/sandbox/executor.py +92 -0
- cfa_kernel-0.1.0/src/cfa/sandbox/mock.py +89 -0
- cfa_kernel-0.1.0/src/cfa/sandbox/panic.py +52 -0
- cfa_kernel-0.1.0/src/cfa/storage/__init__.py +591 -0
- cfa_kernel-0.1.0/src/cfa/testing/__init__.py +60 -0
- cfa_kernel-0.1.0/src/cfa/testing/asserts.py +77 -0
- cfa_kernel-0.1.0/src/cfa/testing/evaluate.py +168 -0
- cfa_kernel-0.1.0/src/cfa/testing/fixtures.py +89 -0
- cfa_kernel-0.1.0/src/cfa/testing/markers.py +36 -0
- cfa_kernel-0.1.0/src/cfa/types.py +489 -0
- cfa_kernel-0.1.0/src/cfa/validation/__init__.py +14 -0
- cfa_kernel-0.1.0/src/cfa/validation/runtime.py +285 -0
- cfa_kernel-0.1.0/src/cfa/validation/signature.py +146 -0
- cfa_kernel-0.1.0/src/cfa/validation/static.py +252 -0
- cfa_kernel-0.1.0/tests/conftest.py +98 -0
- cfa_kernel-0.1.0/tests/test_adapters.py +88 -0
- cfa_kernel-0.1.0/tests/test_airflow_governance_gate.py +76 -0
- cfa_kernel-0.1.0/tests/test_audit_persistent.py +143 -0
- cfa_kernel-0.1.0/tests/test_behavior.py +355 -0
- cfa_kernel-0.1.0/tests/test_behavior_llm.py +217 -0
- cfa_kernel-0.1.0/tests/test_catalog.py +49 -0
- cfa_kernel-0.1.0/tests/test_cli_validation.py +391 -0
- cfa_kernel-0.1.0/tests/test_codegen.py +79 -0
- cfa_kernel-0.1.0/tests/test_config.py +74 -0
- cfa_kernel-0.1.0/tests/test_context.py +39 -0
- cfa_kernel-0.1.0/tests/test_context_persistent.py +131 -0
- cfa_kernel-0.1.0/tests/test_dbt_backend.py +144 -0
- cfa_kernel-0.1.0/tests/test_hashing.py +43 -0
- cfa_kernel-0.1.0/tests/test_indices.py +191 -0
- cfa_kernel-0.1.0/tests/test_integration.py +288 -0
- cfa_kernel-0.1.0/tests/test_intensive.py +505 -0
- cfa_kernel-0.1.0/tests/test_kernel.py +161 -0
- cfa_kernel-0.1.0/tests/test_mcp.py +133 -0
- cfa_kernel-0.1.0/tests/test_metrics.py +51 -0
- cfa_kernel-0.1.0/tests/test_normalizer.py +189 -0
- cfa_kernel-0.1.0/tests/test_normalizer_llm.py +320 -0
- cfa_kernel-0.1.0/tests/test_notify.py +21 -0
- cfa_kernel-0.1.0/tests/test_otel.py +13 -0
- cfa_kernel-0.1.0/tests/test_partial_execution.py +201 -0
- cfa_kernel-0.1.0/tests/test_planner.py +152 -0
- cfa_kernel-0.1.0/tests/test_policy.py +95 -0
- cfa_kernel-0.1.0/tests/test_policy_bundle.py +85 -0
- cfa_kernel-0.1.0/tests/test_promotion.py +232 -0
- cfa_kernel-0.1.0/tests/test_reporting.py +159 -0
- cfa_kernel-0.1.0/tests/test_runtime.py +257 -0
- cfa_kernel-0.1.0/tests/test_runtime_validation.py +130 -0
- cfa_kernel-0.1.0/tests/test_sandbox.py +116 -0
- cfa_kernel-0.1.0/tests/test_serialization.py +113 -0
- cfa_kernel-0.1.0/tests/test_signature.py +40 -0
- cfa_kernel-0.1.0/tests/test_sql_backend.py +132 -0
- cfa_kernel-0.1.0/tests/test_state_projection.py +174 -0
- cfa_kernel-0.1.0/tests/test_static_validation.py +198 -0
- cfa_kernel-0.1.0/tests/test_storage.py +179 -0
- cfa_kernel-0.1.0/tests/test_testing.py +297 -0
- cfa_kernel-0.1.0/tests/test_types.py +121 -0
- cfa_kernel-0.1.0/tests/test_user_journeys.py +577 -0
- cfa_kernel-0.1.0/website/.gitignore +20 -0
- cfa_kernel-0.1.0/website/README.md +41 -0
- cfa_kernel-0.1.0/website/blog/2019-05-28-first-blog-post.mdx +12 -0
- cfa_kernel-0.1.0/website/blog/2019-05-29-long-blog-post.mdx +44 -0
- cfa_kernel-0.1.0/website/blog/2021-08-01-mdx-blog-post.mdx +24 -0
- cfa_kernel-0.1.0/website/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- cfa_kernel-0.1.0/website/blog/2021-08-26-welcome/index.mdx +29 -0
- cfa_kernel-0.1.0/website/blog/authors.yml +25 -0
- cfa_kernel-0.1.0/website/blog/tags.yml +19 -0
- cfa_kernel-0.1.0/website/docs/api.md +184 -0
- cfa_kernel-0.1.0/website/docs/architecture-notes.md +97 -0
- cfa_kernel-0.1.0/website/docs/backends.md +158 -0
- cfa_kernel-0.1.0/website/docs/behavior-spec.md +64 -0
- cfa_kernel-0.1.0/website/docs/cli.md +152 -0
- cfa_kernel-0.1.0/website/docs/faq.md +75 -0
- cfa_kernel-0.1.0/website/docs/getting-started.md +173 -0
- cfa_kernel-0.1.0/website/docs/guide.md +299 -0
- cfa_kernel-0.1.0/website/docs/integrations/airflow.md +164 -0
- cfa_kernel-0.1.0/website/docs/integrations/langgraph.md +145 -0
- cfa_kernel-0.1.0/website/docs/integrations/openai-agents.md +143 -0
- cfa_kernel-0.1.0/website/docs/intro.md +107 -0
- cfa_kernel-0.1.0/website/docs/mcp-server.md +86 -0
- cfa_kernel-0.1.0/website/docs/policy-bundles.md +94 -0
- cfa_kernel-0.1.0/website/docs/reporting.md +82 -0
- cfa_kernel-0.1.0/website/docs/whitepaper.md +204 -0
- cfa_kernel-0.1.0/website/docusaurus.config.ts +118 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/code.json +329 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/api.md +170 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/architecture-notes.md +35 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/backends.md +131 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/behavior-spec.md +45 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/cli.md +151 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/faq.md +52 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started.md +173 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/guide.md +39 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/integrations/airflow.md +42 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/integrations/langgraph.md +28 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/integrations/openai-agents.md +20 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.md +106 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/mcp-server.md +49 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/policy-bundles.md +62 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/reporting.md +53 -0
- cfa_kernel-0.1.0/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/whitepaper.md +58 -0
- cfa_kernel-0.1.0/website/package-lock.json +19459 -0
- cfa_kernel-0.1.0/website/package.json +49 -0
- cfa_kernel-0.1.0/website/sidebars.ts +26 -0
- cfa_kernel-0.1.0/website/src/components/HomepageFeatures/index.tsx +71 -0
- cfa_kernel-0.1.0/website/src/components/HomepageFeatures/styles.module.css +11 -0
- cfa_kernel-0.1.0/website/src/css/custom.css +69 -0
- cfa_kernel-0.1.0/website/src/pages/index.module.css +23 -0
- cfa_kernel-0.1.0/website/src/pages/index.tsx +104 -0
- cfa_kernel-0.1.0/website/src/pages/markdown-page.mdx +7 -0
- cfa_kernel-0.1.0/website/static/.nojekyll +0 -0
- cfa_kernel-0.1.0/website/static/img/favicon.ico +0 -0
- cfa_kernel-0.1.0/website/static/img/logo.svg +1 -0
- cfa_kernel-0.1.0/website/static/img/undraw_docusaurus_mountain.svg +171 -0
- cfa_kernel-0.1.0/website/static/img/undraw_docusaurus_react.svg +170 -0
- cfa_kernel-0.1.0/website/static/img/undraw_docusaurus_tree.svg +40 -0
- cfa_kernel-0.1.0/website/tsconfig.json +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report an implementation bug or behavioral regression
|
|
4
|
+
title: "[Bug] "
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
Describe the bug clearly.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
- [ ] Runtime implementation
|
|
16
|
+
- [ ] Architecture/documentation mismatch
|
|
17
|
+
- [ ] Tests
|
|
18
|
+
- [ ] Packaging / CI
|
|
19
|
+
|
|
20
|
+
## Steps to Reproduce
|
|
21
|
+
|
|
22
|
+
1.
|
|
23
|
+
2.
|
|
24
|
+
3.
|
|
25
|
+
|
|
26
|
+
## Expected Behavior
|
|
27
|
+
|
|
28
|
+
Describe what should happen.
|
|
29
|
+
|
|
30
|
+
## Actual Behavior
|
|
31
|
+
|
|
32
|
+
Describe what happened instead.
|
|
33
|
+
|
|
34
|
+
## Environment
|
|
35
|
+
|
|
36
|
+
- OS:
|
|
37
|
+
- Python version:
|
|
38
|
+
- Branch / commit:
|
|
39
|
+
|
|
40
|
+
## Additional Context
|
|
41
|
+
|
|
42
|
+
Include logs, stack traces, or code snippets if relevant.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Propose a new capability, extension point, or architectural improvement
|
|
4
|
+
title: "[Feature] "
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
Describe the proposal briefly.
|
|
12
|
+
|
|
13
|
+
## Type
|
|
14
|
+
|
|
15
|
+
- [ ] Architecture change
|
|
16
|
+
- [ ] Implementation feature
|
|
17
|
+
- [ ] Runtime adapter
|
|
18
|
+
- [ ] Documentation
|
|
19
|
+
- [ ] Tooling / CI
|
|
20
|
+
|
|
21
|
+
## Problem
|
|
22
|
+
|
|
23
|
+
What problem does this solve?
|
|
24
|
+
|
|
25
|
+
## Proposed Solution
|
|
26
|
+
|
|
27
|
+
Describe the intended change.
|
|
28
|
+
|
|
29
|
+
## Alternatives Considered
|
|
30
|
+
|
|
31
|
+
List alternatives if you evaluated them.
|
|
32
|
+
|
|
33
|
+
## Additional Context
|
|
34
|
+
|
|
35
|
+
Add links, examples, or prior discussion if relevant.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
Describe the change in 2-5 lines.
|
|
4
|
+
|
|
5
|
+
## Type of Change
|
|
6
|
+
|
|
7
|
+
- [ ] Bug fix
|
|
8
|
+
- [ ] Feature
|
|
9
|
+
- [ ] Refactor
|
|
10
|
+
- [ ] Documentation
|
|
11
|
+
- [ ] Test coverage
|
|
12
|
+
- [ ] CI / tooling
|
|
13
|
+
|
|
14
|
+
## Architecture Impact
|
|
15
|
+
|
|
16
|
+
- [ ] No architectural impact
|
|
17
|
+
- [ ] Affects CFA runtime behavior
|
|
18
|
+
- [ ] Affects architectural contract or terminology
|
|
19
|
+
|
|
20
|
+
If there is architectural impact, describe it briefly.
|
|
21
|
+
|
|
22
|
+
## Validation
|
|
23
|
+
|
|
24
|
+
- [ ] `pytest -q`
|
|
25
|
+
- [ ] Docs updated if needed
|
|
26
|
+
- [ ] Examples updated if needed
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
Anything reviewers should pay close attention to.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.11"
|
|
20
|
+
- name: Install ruff
|
|
21
|
+
run: pip install ruff
|
|
22
|
+
- name: Lint
|
|
23
|
+
run: ruff check src/ tests/
|
|
24
|
+
|
|
25
|
+
test:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.11"
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: |
|
|
34
|
+
python -m pip install --upgrade pip
|
|
35
|
+
pip install -e ".[dev]"
|
|
36
|
+
- name: Run tests with coverage
|
|
37
|
+
run: python -m pytest -q --cov=cfa --cov-report=term-missing
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Deploy Docusaurus to GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'website/**'
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
deploy:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
defaults:
|
|
17
|
+
run:
|
|
18
|
+
working-directory: website
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
- uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: 20
|
|
24
|
+
cache: npm
|
|
25
|
+
cache-dependency-path: website/package-lock.json
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
- name: Build site
|
|
29
|
+
run: npm run build
|
|
30
|
+
- name: Deploy to GitHub Pages
|
|
31
|
+
uses: peaceiris/actions-gh-pages@v4
|
|
32
|
+
with:
|
|
33
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
34
|
+
publish_dir: website/build
|
|
35
|
+
publish_branch: gh-pages
|
|
36
|
+
force_orphan: true
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
id-token: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
pypi:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.11"
|
|
19
|
+
- name: Build package
|
|
20
|
+
run: |
|
|
21
|
+
pip install hatch
|
|
22
|
+
hatch build
|
|
23
|
+
- name: Publish to PyPI
|
|
24
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: CFA Governance Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
governance:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: '3.11'
|
|
16
|
+
- name: Install CFA
|
|
17
|
+
run: pip install -e ".[dev]"
|
|
18
|
+
- name: Evaluate safe intent
|
|
19
|
+
run: cfa evaluate "Join NFe with Clientes and persist to Silver" --exit-code
|
|
20
|
+
- name: Evaluate with compliance bundle
|
|
21
|
+
run: cfa evaluate "Join NFe with Clientes persist Silver" --policy-bundle policies/compliance-strict-v1.yaml --format summary
|
|
22
|
+
- name: List rules
|
|
23
|
+
run: cfa rules list
|
|
24
|
+
- name: List backends
|
|
25
|
+
run: cfa backend list
|
|
26
|
+
- name: Generate compliance report
|
|
27
|
+
if: always()
|
|
28
|
+
run: cfa report compliance --policy-bundle compliance-strict-v1.0 --output cfa_compliance_report.html
|
|
29
|
+
- name: Upload report
|
|
30
|
+
if: always()
|
|
31
|
+
uses: actions/upload-artifact@v4
|
|
32
|
+
with:
|
|
33
|
+
name: cfa-compliance-report
|
|
34
|
+
path: cfa_compliance_report.html
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Python bytecode and caches
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Test and tooling caches
|
|
7
|
+
.pytest_cache/
|
|
8
|
+
.mypy_cache/
|
|
9
|
+
.ruff_cache/
|
|
10
|
+
.coverage
|
|
11
|
+
.coverage.*
|
|
12
|
+
htmlcov/
|
|
13
|
+
|
|
14
|
+
# Virtual environments
|
|
15
|
+
.venv/
|
|
16
|
+
venv/
|
|
17
|
+
env/
|
|
18
|
+
ENV/
|
|
19
|
+
|
|
20
|
+
# Build artifacts
|
|
21
|
+
build/
|
|
22
|
+
dist/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.eggs/
|
|
25
|
+
|
|
26
|
+
# IDE and editor files
|
|
27
|
+
.vscode/
|
|
28
|
+
.idea/
|
|
29
|
+
*.swp
|
|
30
|
+
*.swo
|
|
31
|
+
|
|
32
|
+
# OS artifacts
|
|
33
|
+
.DS_Store
|
|
34
|
+
Thumbs.db
|
|
35
|
+
|
|
36
|
+
# Local logs and temp files
|
|
37
|
+
*.log
|
|
38
|
+
tmp/
|
|
39
|
+
temp/
|
|
40
|
+
|
|
41
|
+
# Binary artifacts
|
|
42
|
+
*.zip
|
|
43
|
+
*.exe
|
|
44
|
+
*.png
|
|
45
|
+
*.jpg
|
|
46
|
+
*.gif
|
|
47
|
+
|
|
48
|
+
# Draft documents
|
|
49
|
+
*draft*
|
|
50
|
+
*DRAFT*
|
|
51
|
+
CFA_DEVELOPMENT_PLAN.md
|
|
52
|
+
CFA_TECHNICAL_ANALYSIS_2026.md
|
|
53
|
+
|
|
54
|
+
# Runtime data (generated by CLI)
|
|
55
|
+
.cfa/
|
|
56
|
+
*.jsonl
|
|
57
|
+
context_state.json
|
|
58
|
+
|
|
59
|
+
# Docusaurus
|
|
60
|
+
website/node_modules/
|
|
61
|
+
website/build/
|
|
62
|
+
website/.docusaurus/
|
|
63
|
+
|
|
64
|
+
# Claude AI config
|
|
65
|
+
.claude/
|
|
66
|
+
|
|
67
|
+
# Test artifacts
|
|
68
|
+
cfa_test_results_*/
|
|
69
|
+
test_battery.py
|
|
70
|
+
uv.lock
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Signature: 8a477f597d28d172789f06886806bc55
|
|
File without changes
|