fathom-rules 0.3.0__tar.gz → 0.3.2__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.
- fathom_rules-0.3.2/.codespellignore +19 -0
- fathom_rules-0.3.2/.github/FUNDING.yml +1 -0
- fathom_rules-0.3.2/.github/ISSUE_TEMPLATE/bug_report.yml +81 -0
- fathom_rules-0.3.2/.github/ISSUE_TEMPLATE/config.yml +8 -0
- fathom_rules-0.3.2/.github/ISSUE_TEMPLATE/feature_request.yml +44 -0
- fathom_rules-0.3.2/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- fathom_rules-0.3.2/.github/dependabot.yml +17 -0
- fathom_rules-0.3.2/.github/workflows/ci.yml +72 -0
- fathom_rules-0.3.2/.github/workflows/docs-deploy.yml +96 -0
- fathom_rules-0.3.2/.github/workflows/docs.yml +114 -0
- fathom_rules-0.3.2/.github/workflows/go-ci.yml +90 -0
- fathom_rules-0.3.2/.github/workflows/pypi-publish.yml +53 -0
- fathom_rules-0.3.2/.gitignore +82 -0
- fathom_rules-0.3.2/.lycheeignore +10 -0
- fathom_rules-0.3.2/.markdownlint.jsonc +9 -0
- fathom_rules-0.3.2/.pre-commit-config.yaml +23 -0
- fathom_rules-0.3.2/.python-version +1 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/CHANGELOG.md +36 -36
- fathom_rules-0.3.2/CONTRIBUTING.md +76 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/LICENSE +21 -21
- fathom_rules-0.3.2/Makefile +44 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/PKG-INFO +120 -27
- fathom_rules-0.3.2/README.md +209 -0
- fathom_rules-0.3.2/SECURITY.md +15 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/_prompts/audit.md +75 -75
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/_prompts/lint.md +50 -50
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/_prompts/update.md +57 -57
- fathom_rules-0.3.2/docs/architecture/decisions/adr-0001-fleet-env-audit.md +73 -0
- fathom_rules-0.3.2/docs/architecture/decisions/adr-0002-subscribechanges-reload.md +29 -0
- fathom_rules-0.3.2/docs/changelog.json +31 -0
- fathom_rules-0.3.2/docs/concepts/audit-attestation.md +308 -0
- fathom_rules-0.3.2/docs/concepts/five-primitives.md +242 -0
- fathom_rules-0.3.2/docs/concepts/index.md +16 -0
- fathom_rules-0.3.2/docs/concepts/not-in-v1.md +211 -0
- fathom_rules-0.3.2/docs/concepts/runtime-and-working-memory.md +245 -0
- fathom_rules-0.3.2/docs/concepts/yaml-compilation.md +287 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/getting-started.md +15 -12
- fathom_rules-0.3.2/docs/how-to/cli.md +170 -0
- fathom_rules-0.3.2/docs/how-to/embed-sdk.md +317 -0
- fathom_rules-0.3.2/docs/how-to/fastapi.md +153 -0
- fathom_rules-0.3.2/docs/how-to/hot-reload.md +304 -0
- fathom_rules-0.3.2/docs/how-to/index.md +17 -0
- fathom_rules-0.3.2/docs/how-to/load-rule-pack.md +150 -0
- fathom_rules-0.3.2/docs/how-to/register-function.md +107 -0
- fathom_rules-0.3.2/docs/how-to/release-signing.md +178 -0
- fathom_rules-0.3.2/docs/how-to/writing-rules.md +225 -0
- fathom_rules-0.3.2/docs/index.md +76 -0
- fathom_rules-0.3.2/docs/llms-full.txt +4552 -0
- fathom_rules-0.3.2/docs/llms.txt +46 -0
- fathom_rules-0.3.2/docs/reference/cli/bench.md +27 -0
- fathom_rules-0.3.2/docs/reference/cli/compile.md +26 -0
- fathom_rules-0.3.2/docs/reference/cli/index.md +21 -0
- fathom_rules-0.3.2/docs/reference/cli/info.md +24 -0
- fathom_rules-0.3.2/docs/reference/cli/repl.md +22 -0
- fathom_rules-0.3.2/docs/reference/cli/status.md +24 -0
- fathom_rules-0.3.2/docs/reference/cli/test.md +25 -0
- fathom_rules-0.3.2/docs/reference/cli/validate.md +24 -0
- fathom_rules-0.3.2/docs/reference/cli/verify-artifact.md +26 -0
- fathom_rules-0.3.2/docs/reference/go-sdk/fathom-go.md +1780 -0
- fathom_rules-0.3.2/docs/reference/go-sdk/index.md +16 -0
- fathom_rules-0.3.2/docs/reference/grpc/fathom.md +306 -0
- {fathom_rules-0.3.0/protos → fathom_rules-0.3.2/docs/reference/grpc}/fathom.proto +145 -124
- fathom_rules-0.3.2/docs/reference/grpc/index.md +19 -0
- fathom_rules-0.3.2/docs/reference/index.md +41 -0
- fathom_rules-0.3.2/docs/reference/mcp/assert_fact.md +38 -0
- fathom_rules-0.3.2/docs/reference/mcp/evaluate.md +24 -0
- fathom_rules-0.3.2/docs/reference/mcp/index.md +19 -0
- fathom_rules-0.3.2/docs/reference/mcp/manifest.json +97 -0
- fathom_rules-0.3.2/docs/reference/mcp/query.md +45 -0
- fathom_rules-0.3.2/docs/reference/mcp/retract.md +45 -0
- fathom_rules-0.3.2/docs/reference/planned-integrations.md +177 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/assertedfact.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/assertspec.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/compilationerror.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/engine.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/evaluationerror.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/evaluationresult.md +3 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/index.md +13 -0
- fathom_rules-0.3.2/docs/reference/python-sdk/validationerror.md +3 -0
- fathom_rules-0.3.2/docs/reference/release-signing-pubkey.minisig +2 -0
- fathom_rules-0.3.2/docs/reference/rest/fathom.postman_collection.json +1498 -0
- fathom_rules-0.3.2/docs/reference/rest/index.md +25 -0
- fathom_rules-0.3.2/docs/reference/rest/openapi.json +978 -0
- fathom_rules-0.3.2/docs/reference/rest/try.md +12 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/.gitkeep +0 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/cmmc.md +28 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/hipaa.md +25 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/index.md +16 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/nist-800-53.md +32 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/owasp-agentic.md +26 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/rule-packs.json +276 -0
- fathom_rules-0.3.2/docs/reference/rule-packs/ssvc.md +39 -0
- fathom_rules-0.3.2/docs/reference/tooling/vscode/.gitkeep +0 -0
- fathom_rules-0.3.2/docs/reference/tooling/vscode/fathom.code-snippets +64 -0
- fathom_rules-0.3.2/docs/reference/tooling/vscode/index.md +42 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/.gitkeep +0 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/classes/ConnectionError.md +230 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/classes/FathomClient.md +122 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/classes/FathomError.md +228 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/classes/PolicyViolation.md +228 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/classes/ValidationError.md +228 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/index.md +15 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/AssertFactRequest.md +39 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/AssertFactResponse.md +19 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/EvaluateRequest.md +39 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/EvaluateResponse.md +69 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/FactInput.md +29 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/FathomClientOptions.md +47 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/QueryRequest.md +39 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/QueryResponse.md +19 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/RetractRequest.md +39 -0
- fathom_rules-0.3.2/docs/reference/typescript-sdk/interfaces/RetractResponse.md +19 -0
- fathom_rules-0.3.2/docs/reference/yaml/fact.md +247 -0
- fathom_rules-0.3.2/docs/reference/yaml/function.md +227 -0
- fathom_rules-0.3.2/docs/reference/yaml/index.md +34 -0
- fathom_rules-0.3.2/docs/reference/yaml/module.md +158 -0
- fathom_rules-0.3.2/docs/reference/yaml/rule.md +271 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/.gitkeep +0 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/function.schema.json +62 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/hierarchy.schema.json +38 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/module.schema.json +25 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/rule.schema.json +257 -0
- fathom_rules-0.3.2/docs/reference/yaml/schemas/template.schema.json +118 -0
- fathom_rules-0.3.2/docs/reference/yaml/template.md +158 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-0-infra-completion.md +50 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-0-infra.md +1907 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-1-reference-completion.md +43 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-1-reference.md +2356 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-2-content-rewrite-completion.md +99 -0
- fathom_rules-0.3.2/docs/superpowers/plans/2026-04-15-dev-docs-wave-2-content-rewrite.md +1461 -0
- fathom_rules-0.3.2/docs/superpowers/specs/2026-04-15-dev-docs-wave-2-content-rewrite-design.md +219 -0
- fathom_rules-0.3.2/docs/superpowers/specs/2026-04-15-developer-docs-design.md +499 -0
- fathom_rules-0.3.2/docs/tutorials/hello-world.md +86 -0
- fathom_rules-0.3.2/docs/tutorials/index.md +16 -0
- fathom_rules-0.3.2/docs/tutorials/modules-and-salience.md +216 -0
- fathom_rules-0.3.2/docs/tutorials/working-memory.md +210 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/01-hello-allow-deny/README.md +45 -44
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/01-hello-allow-deny/main.py +67 -67
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/01-hello-allow-deny/modules/governance.yaml +6 -6
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/01-hello-allow-deny/rules/access.yaml +77 -76
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/01-hello-allow-deny/templates/access.yaml +23 -23
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/README.md +46 -45
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/main.py +81 -81
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/modules/rbac.yaml +11 -11
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/rules/denies.yaml +71 -71
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/rules/permits.yaml +45 -45
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/02-rbac-modules/templates/rbac.yaml +30 -30
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/README.md +64 -64
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/functions/clearance.yaml +5 -5
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/hierarchies/clearance.yaml +7 -7
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/main.py +122 -122
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/modules/blp.yaml +6 -6
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/rules/blp.yaml +139 -139
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/03-classification-blp/templates/blp.yaml +39 -39
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/04-temporal-anomaly/README.md +56 -56
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/04-temporal-anomaly/main.py +112 -112
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/04-temporal-anomaly/modules/anomaly.yaml +6 -6
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/04-temporal-anomaly/rules/anomaly.yaml +69 -69
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/04-temporal-anomaly/templates/auth.yaml +30 -30
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/README.md +123 -123
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/agent_demo.py +216 -216
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/main.py +117 -117
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/modules/guardrails.yaml +6 -6
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/rules/guardrails.yaml +133 -133
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/templates/tools.yaml +22 -22
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/05-langchain-guardrails/verify.py +118 -118
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/examples/README.md +64 -64
- fathom_rules-0.3.2/mkdocs.yml +152 -0
- fathom_rules-0.3.2/openapi.json +853 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/package.json +23 -23
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/pnpm-lock.yaml +1135 -1135
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/vite.config.ts +31 -31
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-go/Makefile +20 -5
- fathom_rules-0.3.2/packages/fathom-go/client.go +180 -0
- fathom_rules-0.3.2/packages/fathom-go/client_test.go +818 -0
- fathom_rules-0.3.2/packages/fathom-go/go.mod +18 -0
- fathom_rules-0.3.2/packages/fathom-go/go.sum +36 -0
- fathom_rules-0.3.2/packages/fathom-go/grpc_test.go +230 -0
- fathom_rules-0.3.2/packages/fathom-go/proto/fathom.pb.go +997 -0
- fathom_rules-0.3.2/packages/fathom-go/proto/fathom_grpc.pb.go +333 -0
- fathom_rules-0.3.2/packages/fathom-go/tools.go +9 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/package-lock.json +2160 -2160
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/package.json +36 -33
- fathom_rules-0.3.2/packages/fathom-ts/pnpm-lock.yaml +1770 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/src/client.ts +215 -196
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/src/errors.ts +77 -77
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/ApiError.ts +21 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/ApiRequestOptions.ts +13 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/ApiResult.ts +7 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/CancelablePromise.ts +126 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/OpenAPI.ts +56 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/core/request.ts +341 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/index.ts +7 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/schemas.gen.ts +318 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/services.gen.ts +222 -0
- fathom_rules-0.3.2/packages/fathom-ts/src/generated/types.gen.ts +322 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/src/index.ts +26 -24
- fathom_rules-0.3.2/packages/fathom-ts/test/client.test.ts +326 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/test/errors.test.ts +130 -130
- fathom_rules-0.3.2/protos/fathom.proto +145 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/pyproject.toml +198 -134
- fathom_rules-0.3.2/scripts/changelog_to_json.py +71 -0
- fathom_rules-0.3.2/scripts/check_doc_sources.py +90 -0
- fathom_rules-0.3.2/scripts/check_docstrings.py +29 -0
- fathom_rules-0.3.2/scripts/check_frontmatter.py +81 -0
- fathom_rules-0.3.2/scripts/check_sdk_coverage.py +46 -0
- fathom_rules-0.3.2/scripts/check_version_sync.py +38 -0
- fathom_rules-0.3.2/scripts/export_json_schemas.py +48 -0
- fathom_rules-0.3.2/scripts/export_openapi.py +21 -0
- fathom_rules-0.3.2/scripts/generate_cli_docs.py +120 -0
- fathom_rules-0.3.2/scripts/generate_go_sdk_docs.py +115 -0
- fathom_rules-0.3.2/scripts/generate_grpc_docs.py +52 -0
- fathom_rules-0.3.2/scripts/generate_llms_txt.py +72 -0
- fathom_rules-0.3.2/scripts/generate_mcp_manifest.py +121 -0
- fathom_rules-0.3.2/scripts/generate_postman_collection.py +155 -0
- fathom_rules-0.3.2/scripts/generate_python_sdk_docs.py +64 -0
- fathom_rules-0.3.2/scripts/generate_rule_pack_docs.py +163 -0
- fathom_rules-0.3.2/scripts/generate_ts_sdk_docs.py +176 -0
- fathom_rules-0.3.2/scripts/live-test.sh +420 -0
- fathom_rules-0.3.2/scripts/sign_release.sh +67 -0
- fathom_rules-0.3.2/scripts/verify_tutorial_snippets.py +114 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/__init__.py +18 -18
- fathom_rules-0.3.2/src/fathom/_data/release_pubkey.minisign +2 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/attestation.py +18 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/audit.py +76 -76
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/cli.py +754 -644
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/compiler.py +1182 -1186
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/engine.py +1144 -901
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/errors.py +108 -108
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/evaluator.py +159 -148
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/facts.py +346 -343
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/fleet.py +227 -226
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/fleet_pg.py +381 -381
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/fleet_redis.py +335 -335
- fathom_rules-0.3.2/src/fathom/integrations/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/integrations/auth.py +41 -43
- fathom_rules-0.3.2/src/fathom/integrations/crewai.py +145 -0
- fathom_rules-0.3.2/src/fathom/integrations/google_adk.py +155 -0
- fathom_rules-0.3.2/src/fathom/integrations/grpc_server.py +446 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/integrations/langchain.py +263 -263
- fathom_rules-0.3.2/src/fathom/integrations/openai_agents.py +152 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/integrations/paths.py +40 -44
- fathom_rules-0.3.2/src/fathom/integrations/rest.py +653 -0
- fathom_rules-0.3.2/src/fathom/integrations/ruleset_sig.py +33 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/metrics.py +187 -187
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/models.py +469 -327
- fathom_rules-0.3.2/src/fathom/proto/__init__.py +15 -0
- fathom_rules-0.3.2/src/fathom/proto/fathom_pb2.py +65 -0
- fathom_rules-0.3.2/src/fathom/proto/fathom_pb2.pyi +132 -0
- fathom_rules-0.3.2/src/fathom/proto/fathom_pb2_grpc.py +330 -0
- fathom_rules-0.3.2/src/fathom/py.typed +0 -0
- fathom_rules-0.3.2/src/fathom/release_sig.py +86 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/README.md +76 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/__init__.py +81 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/modules/ssvc_modules.yaml +5 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/references/SHA256SUMS +1 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/references/branches.yaml +126 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/references/cisa-ssvc-v2.0.3.pdf +0 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/rules/ssvc_rules.yaml +426 -0
- fathom_rules-0.3.2/src/fathom/rule_packs/ssvc/templates/ssvc_templates.yaml +20 -0
- fathom_rules-0.3.2/tests/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/conftest.py +200 -200
- fathom_rules-0.3.2/tests/integrations/__init__.py +0 -0
- fathom_rules-0.3.2/tests/integrations/test_grpc_reload.py +200 -0
- fathom_rules-0.3.2/tests/integrations/test_rest_reload.py +410 -0
- fathom_rules-0.3.2/tests/integrations/test_rest_status.py +157 -0
- fathom_rules-0.3.2/tests/phase_2/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/phase_2/test_compile_endpoint.py +132 -132
- fathom_rules-0.3.2/tests/rule_packs/__init__.py +0 -0
- fathom_rules-0.3.2/tests/rule_packs/test_ssvc_cisa.py +155 -0
- fathom_rules-0.3.2/tests/test_attestation_sign_event.py +52 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_audit.py +592 -592
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_auth.py +55 -55
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_cli.py +520 -520
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_cli_repl.py +54 -52
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_compiler_functions.py +5 -7
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_compiler_modules.py +7 -11
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_compiler_rules.py +1154 -1160
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_compiler_templates.py +11 -13
- fathom_rules-0.3.2/tests/test_crewai.py +209 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_engine.py +60 -60
- fathom_rules-0.3.2/tests/test_engine_reload.py +301 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_evaluator.py +857 -857
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_facts.py +1028 -1028
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_fleet.py +405 -405
- fathom_rules-0.3.2/tests/test_google_adk.py +246 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_grpc_auth.py +101 -109
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_integration.py +1150 -1067
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_metadata_roundtrip.py +100 -102
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_metrics.py +465 -464
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_models.py +156 -149
- fathom_rules-0.3.2/tests/test_openai_agents.py +231 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_paths.py +86 -86
- fathom_rules-0.3.2/tests/test_release_sig.py +159 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_rest.py +915 -662
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_rest_auth.py +75 -75
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_rest_editor.py +126 -118
- fathom_rules-0.3.2/tests/test_scripts/__init__.py +0 -0
- fathom_rules-0.3.2/tests/test_scripts/test_changelog_to_json.py +75 -0
- fathom_rules-0.3.2/tests/test_scripts/test_check_doc_sources.py +88 -0
- fathom_rules-0.3.2/tests/test_scripts/test_check_docstrings.py +56 -0
- fathom_rules-0.3.2/tests/test_scripts/test_check_frontmatter.py +115 -0
- fathom_rules-0.3.2/tests/test_scripts/test_check_version_sync.py +38 -0
- fathom_rules-0.3.2/tests/test_scripts/test_cli_docs_real.py +24 -0
- fathom_rules-0.3.2/tests/test_scripts/test_export_json_schemas.py +21 -0
- fathom_rules-0.3.2/tests/test_scripts/test_export_openapi.py +19 -0
- fathom_rules-0.3.2/tests/test_scripts/test_generate_llms_txt.py +46 -0
- fathom_rules-0.3.2/tests/test_scripts/test_go_sdk_docs.py +50 -0
- fathom_rules-0.3.2/tests/test_scripts/test_grpc_docs.py +44 -0
- fathom_rules-0.3.2/tests/test_scripts/test_mcp_manifest_real.py +34 -0
- fathom_rules-0.3.2/tests/test_scripts/test_postman.py +48 -0
- fathom_rules-0.3.2/tests/test_scripts/test_python_sdk_docs.py +23 -0
- fathom_rules-0.3.2/tests/test_scripts/test_rule_pack_docs_real.py +28 -0
- fathom_rules-0.3.2/tests/test_scripts/test_sdk_coverage.py +35 -0
- fathom_rules-0.3.2/tests/test_scripts/test_ts_sdk_docs.py +84 -0
- fathom_rules-0.3.2/tests/test_scripts/test_verify_tutorial_snippets.py +119 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_sdk.py +524 -527
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_sequence_detected.py +61 -62
- fathom_rules-0.3.0/.gitignore +0 -235
- fathom_rules-0.3.0/.python-version +0 -1
- fathom_rules-0.3.0/README.md +0 -138
- fathom_rules-0.3.0/design.md +0 -574
- fathom_rules-0.3.0/docs/_index.md +0 -60
- fathom_rules-0.3.0/docs/core/attestation.md +0 -111
- fathom_rules-0.3.0/docs/core/audit-log.md +0 -111
- fathom_rules-0.3.0/docs/core/backward-chaining.md +0 -65
- fathom_rules-0.3.0/docs/core/cool.md +0 -72
- fathom_rules-0.3.0/docs/core/fact-asserter.md +0 -117
- fathom_rules-0.3.0/docs/core/forward-chaining.md +0 -126
- fathom_rules-0.3.0/docs/core/message-handlers.md +0 -80
- fathom_rules-0.3.0/docs/core/primitives.md +0 -204
- fathom_rules-0.3.0/docs/core/runtime.md +0 -125
- fathom_rules-0.3.0/docs/core/working-memory.md +0 -195
- fathom_rules-0.3.0/docs/core/yaml-compiler.md +0 -137
- fathom_rules-0.3.0/docs/integration.md +0 -140
- fathom_rules-0.3.0/docs/integrations/crew-ai.md +0 -101
- fathom_rules-0.3.0/docs/integrations/go-sdk.md +0 -119
- fathom_rules-0.3.0/docs/integrations/google-adk.md +0 -100
- fathom_rules-0.3.0/docs/integrations/langchain.md +0 -92
- fathom_rules-0.3.0/docs/integrations/mcp.md +0 -98
- fathom_rules-0.3.0/docs/integrations/open-ai-agent-sdk.md +0 -99
- fathom_rules-0.3.0/docs/integrations/sidecar.md +0 -113
- fathom_rules-0.3.0/docs/integrations/typescript-sdk.md +0 -124
- fathom_rules-0.3.0/docs/rule-packs/cmmc.md +0 -197
- fathom_rules-0.3.0/docs/rule-packs/hipaa.md +0 -169
- fathom_rules-0.3.0/docs/rule-packs/nist-ai-rmf.md +0 -184
- fathom_rules-0.3.0/docs/rule-packs/owasp-agentic.md +0 -151
- fathom_rules-0.3.0/docs/writing-rules.md +0 -217
- fathom_rules-0.3.0/docs/yaml/yaml-facts.md +0 -153
- fathom_rules-0.3.0/docs/yaml/yaml-functions.md +0 -213
- fathom_rules-0.3.0/docs/yaml/yaml-modules.md +0 -226
- fathom_rules-0.3.0/docs/yaml/yaml-rule-language.md +0 -197
- fathom_rules-0.3.0/docs/yaml/yaml-templates.md +0 -193
- fathom_rules-0.3.0/mkdocs.yml +0 -93
- fathom_rules-0.3.0/packages/fathom-go/client.go +0 -189
- fathom_rules-0.3.0/packages/fathom-go/go.mod +0 -3
- fathom_rules-0.3.0/specs/.index/index-state.json +0 -35
- fathom_rules-0.3.0/specs/.index/index.md +0 -27
- fathom_rules-0.3.0/specs/phase-1/design.md +0 -1258
- fathom_rules-0.3.0/specs/phase-1/requirements.md +0 -499
- fathom_rules-0.3.0/specs/phase-1/research.md +0 -404
- fathom_rules-0.3.0/specs/phase-1/tasks.md +0 -1662
- fathom_rules-0.3.0/specs/phase-2/design.md +0 -1262
- fathom_rules-0.3.0/specs/phase-2/requirements.md +0 -623
- fathom_rules-0.3.0/specs/phase-2/research.md +0 -547
- fathom_rules-0.3.0/specs/phase-2/tasks.md +0 -1184
- fathom_rules-0.3.0/specs/rule-assertions/design.md +0 -765
- fathom_rules-0.3.0/specs/rule-assertions/requirements.md +0 -184
- fathom_rules-0.3.0/specs/rule-assertions/research.md +0 -349
- fathom_rules-0.3.0/specs/rule-assertions/tasks.md +0 -616
- fathom_rules-0.3.0/src/fathom/integrations/grpc_server.py +0 -229
- fathom_rules-0.3.0/src/fathom/integrations/rest.py +0 -285
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/Dockerfile +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/REVIEW.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/attestation.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/audit.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/compiler.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/engine.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/evaluator.md +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/docs/api/facts.md +0 -0
- /fathom_rules-0.3.0/docs/core/visual-editor.md → /fathom_rules-0.3.2/docs/reference/.gitkeep +0 -0
- /fathom_rules-0.3.0/docs/integrations/cli.md → /fathom_rules-0.3.2/docs/reference/cli/.gitkeep +0 -0
- /fathom_rules-0.3.0/docs/integrations/prometheus.md → /fathom_rules-0.3.2/docs/reference/go-sdk/.gitkeep +0 -0
- /fathom_rules-0.3.0/src/fathom/integrations/__init__.py → /fathom_rules-0.3.2/docs/reference/grpc/.gitkeep +0 -0
- /fathom_rules-0.3.0/src/fathom/py.typed → /fathom_rules-0.3.2/docs/reference/mcp/.gitkeep +0 -0
- /fathom_rules-0.3.0/tests/__init__.py → /fathom_rules-0.3.2/docs/reference/python-sdk/.gitkeep +0 -0
- /fathom_rules-0.3.0/tests/phase_2/__init__.py → /fathom_rules-0.3.2/docs/reference/rest/.gitkeep +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/index.html +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/App.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/api/fathom.ts +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/ClipsPreview.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/ConditionBuilder.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/RuleTree.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/TemplateBrowser.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/TestRunner.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/components/YamlEditor.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/src/main.tsx +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-editor/tsconfig.json +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/scripts/generate.sh +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/packages/fathom-ts/tsconfig.json +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/scripts/publish.sh +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/integrations/mcp_server.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/packs.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/_helpers.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/cmmc/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/cmmc/modules/cmmc_modules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/cmmc/rules/cmmc_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/cmmc/templates/cmmc_templates.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/hipaa/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/hipaa/modules/hipaa_modules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/hipaa/rules/hipaa_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/hipaa/templates/hipaa_templates.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/modules/nist_modules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/rules/ac_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/rules/au_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/rules/sc_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/nist_800_53/templates/nist_templates.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/owasp_agentic/__init__.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/owasp_agentic/modules/owasp_modules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/owasp_agentic/rules/owasp_rules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/rule_packs/owasp_agentic/templates/owasp_templates.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/src/fathom/yaml_utils.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/functions/classification.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/functions/temporal.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/hierarchies/classification.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/modules/modules.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/rules/access-control.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/fixtures/templates/agent.yaml +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_attestation.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_backward_chaining.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_classification_integration.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_classification_ops.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_cmmc_pack.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_hipaa_pack.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_langchain.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_mcp.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_nist_pack.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_owasp_pack.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_property_based.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_rest_metrics.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_temporal_integration.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_temporal_ops.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_temporal_property.py +0 -0
- {fathom_rules-0.3.0 → fathom_rules-0.3.2}/tests/test_working_memory.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
github: KrakenNet
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Report a bug in fathom-rules
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for reporting a bug! Please fill out the sections below.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: description
|
|
11
|
+
attributes:
|
|
12
|
+
label: Description
|
|
13
|
+
description: A clear description of the bug.
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: reproduction
|
|
18
|
+
attributes:
|
|
19
|
+
label: Steps to Reproduce
|
|
20
|
+
description: Minimal code or steps to reproduce the issue.
|
|
21
|
+
render: python
|
|
22
|
+
validations:
|
|
23
|
+
required: true
|
|
24
|
+
- type: textarea
|
|
25
|
+
id: expected
|
|
26
|
+
attributes:
|
|
27
|
+
label: Expected Behavior
|
|
28
|
+
description: What you expected to happen.
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: actual
|
|
33
|
+
attributes:
|
|
34
|
+
label: Actual Behavior
|
|
35
|
+
description: What actually happened. Include tracebacks if applicable.
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
- type: input
|
|
39
|
+
id: version
|
|
40
|
+
attributes:
|
|
41
|
+
label: Fathom Version
|
|
42
|
+
description: "Output of: python -c 'import fathom; print(fathom.__version__)'"
|
|
43
|
+
placeholder: "0.3.1"
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
- type: input
|
|
47
|
+
id: python-version
|
|
48
|
+
attributes:
|
|
49
|
+
label: Python Version
|
|
50
|
+
description: "Output of: python --version"
|
|
51
|
+
placeholder: "3.13.0"
|
|
52
|
+
validations:
|
|
53
|
+
required: true
|
|
54
|
+
- type: input
|
|
55
|
+
id: os
|
|
56
|
+
attributes:
|
|
57
|
+
label: Operating System
|
|
58
|
+
placeholder: "Ubuntu 24.04 / macOS 15 / Windows 11"
|
|
59
|
+
validations:
|
|
60
|
+
required: true
|
|
61
|
+
- type: dropdown
|
|
62
|
+
id: component
|
|
63
|
+
attributes:
|
|
64
|
+
label: Component
|
|
65
|
+
options:
|
|
66
|
+
- Core Engine
|
|
67
|
+
- YAML Compiler
|
|
68
|
+
- REST Server (FastAPI)
|
|
69
|
+
- gRPC Server
|
|
70
|
+
- MCP Server
|
|
71
|
+
- CLI
|
|
72
|
+
- Rule Pack (OWASP/NIST/HIPAA/CMMC)
|
|
73
|
+
- LangChain Integration
|
|
74
|
+
- CrewAI Integration
|
|
75
|
+
- OpenAI Agents Integration
|
|
76
|
+
- Google ADK Integration
|
|
77
|
+
- Attestation
|
|
78
|
+
- Fleet (Redis/Postgres)
|
|
79
|
+
- Other
|
|
80
|
+
validations:
|
|
81
|
+
required: true
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature or improvement
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for suggesting an improvement! Please describe the use case.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: problem
|
|
11
|
+
attributes:
|
|
12
|
+
label: Problem or Use Case
|
|
13
|
+
description: What problem does this solve? What use case does it enable?
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: solution
|
|
18
|
+
attributes:
|
|
19
|
+
label: Proposed Solution
|
|
20
|
+
description: How do you think this should work?
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: alternatives
|
|
25
|
+
attributes:
|
|
26
|
+
label: Alternatives Considered
|
|
27
|
+
description: Any alternative approaches you've considered.
|
|
28
|
+
- type: dropdown
|
|
29
|
+
id: component
|
|
30
|
+
attributes:
|
|
31
|
+
label: Component
|
|
32
|
+
options:
|
|
33
|
+
- Core Engine
|
|
34
|
+
- YAML Compiler
|
|
35
|
+
- REST Server (FastAPI)
|
|
36
|
+
- gRPC Server
|
|
37
|
+
- MCP Server
|
|
38
|
+
- CLI
|
|
39
|
+
- Rule Packs
|
|
40
|
+
- SDK (Python/Go/TypeScript)
|
|
41
|
+
- Documentation
|
|
42
|
+
- Other
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What does this PR do? Why? -->
|
|
4
|
+
|
|
5
|
+
## Changes
|
|
6
|
+
|
|
7
|
+
<!-- Bullet list of key changes -->
|
|
8
|
+
|
|
9
|
+
-
|
|
10
|
+
|
|
11
|
+
## Testing
|
|
12
|
+
|
|
13
|
+
<!-- How was this tested? -->
|
|
14
|
+
|
|
15
|
+
- [ ] `uv run pytest` passes
|
|
16
|
+
- [ ] `uv run ruff check src/ tests/` passes
|
|
17
|
+
- [ ] `uv run mypy src/` passes
|
|
18
|
+
- [ ] New tests added for new functionality
|
|
19
|
+
- [ ] Documentation updated (if applicable)
|
|
20
|
+
|
|
21
|
+
## Related Issues
|
|
22
|
+
|
|
23
|
+
<!-- Link related issues: Fixes #123, Relates to #456 -->
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: "pip"
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: "weekly"
|
|
7
|
+
labels:
|
|
8
|
+
- "dependencies"
|
|
9
|
+
open-pull-requests-limit: 10
|
|
10
|
+
|
|
11
|
+
- package-ecosystem: "github-actions"
|
|
12
|
+
directory: "/"
|
|
13
|
+
schedule:
|
|
14
|
+
interval: "weekly"
|
|
15
|
+
labels:
|
|
16
|
+
- "dependencies"
|
|
17
|
+
- "ci"
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ci-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest]
|
|
19
|
+
python-version: ["3.12", "3.13"]
|
|
20
|
+
include:
|
|
21
|
+
- os: windows-latest
|
|
22
|
+
python-version: "3.13"
|
|
23
|
+
- os: macos-latest
|
|
24
|
+
python-version: "3.13"
|
|
25
|
+
timeout-minutes: 15
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v3
|
|
31
|
+
with:
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: uv sync --all-extras
|
|
36
|
+
|
|
37
|
+
- name: Run tests with coverage
|
|
38
|
+
run: uv run pytest --cov=fathom --cov-report=xml --cov-report=term-missing -q
|
|
39
|
+
|
|
40
|
+
- name: Upload coverage
|
|
41
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
|
|
42
|
+
uses: codecov/codecov-action@v4
|
|
43
|
+
with:
|
|
44
|
+
files: coverage.xml
|
|
45
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
46
|
+
fail_ci_if_error: false
|
|
47
|
+
|
|
48
|
+
lint:
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
timeout-minutes: 10
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
|
|
54
|
+
- name: Install uv
|
|
55
|
+
uses: astral-sh/setup-uv@v3
|
|
56
|
+
with:
|
|
57
|
+
python-version: "3.13"
|
|
58
|
+
|
|
59
|
+
- name: Install dependencies
|
|
60
|
+
run: uv sync --all-extras
|
|
61
|
+
|
|
62
|
+
- name: Ruff check
|
|
63
|
+
run: uv run ruff check src/ tests/
|
|
64
|
+
|
|
65
|
+
- name: Ruff format check
|
|
66
|
+
run: uv run ruff format --check src/ tests/
|
|
67
|
+
|
|
68
|
+
- name: mypy
|
|
69
|
+
run: uv run mypy src/
|
|
70
|
+
|
|
71
|
+
- name: Version sync
|
|
72
|
+
run: uv run python scripts/check_version_sync.py
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
name: docs-deploy
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*.*.*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
version:
|
|
10
|
+
description: "mike version alias (e.g. 0.3 or latest)"
|
|
11
|
+
required: true
|
|
12
|
+
default: "latest"
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
deploy:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
timeout-minutes: 20
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
|
|
26
|
+
- name: Install uv
|
|
27
|
+
uses: astral-sh/setup-uv@v3
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.13"
|
|
30
|
+
|
|
31
|
+
- name: Install protoc
|
|
32
|
+
uses: arduino/setup-protoc@v3
|
|
33
|
+
with:
|
|
34
|
+
version: "27.3"
|
|
35
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
36
|
+
|
|
37
|
+
- name: Set up Go
|
|
38
|
+
uses: actions/setup-go@v5
|
|
39
|
+
with:
|
|
40
|
+
go-version: "1.24"
|
|
41
|
+
|
|
42
|
+
- name: Install protoc-gen-doc
|
|
43
|
+
run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1
|
|
44
|
+
|
|
45
|
+
- name: Install Node
|
|
46
|
+
uses: actions/setup-node@v4
|
|
47
|
+
with:
|
|
48
|
+
node-version: "20"
|
|
49
|
+
|
|
50
|
+
- name: Install pnpm
|
|
51
|
+
uses: pnpm/action-setup@v4
|
|
52
|
+
with:
|
|
53
|
+
version: 9
|
|
54
|
+
|
|
55
|
+
- name: Set up Python
|
|
56
|
+
uses: actions/setup-python@v5
|
|
57
|
+
with:
|
|
58
|
+
python-version: "3.13"
|
|
59
|
+
|
|
60
|
+
- name: Install Python deps
|
|
61
|
+
run: uv sync --extra docs --extra server --extra mcp
|
|
62
|
+
|
|
63
|
+
- name: Generate everything
|
|
64
|
+
run: |
|
|
65
|
+
make docs-gen
|
|
66
|
+
make docs-gen-foreign
|
|
67
|
+
|
|
68
|
+
- name: Configure git for mike
|
|
69
|
+
run: |
|
|
70
|
+
git config user.name "docs-bot"
|
|
71
|
+
git config user.email "docs-bot@users.noreply.github.com"
|
|
72
|
+
|
|
73
|
+
- name: Resolve version label
|
|
74
|
+
id: label
|
|
75
|
+
run: |
|
|
76
|
+
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
77
|
+
echo "version=${{ inputs.version }}" >> "$GITHUB_OUTPUT"
|
|
78
|
+
echo "alias=" >> "$GITHUB_OUTPUT"
|
|
79
|
+
else
|
|
80
|
+
TAG="${GITHUB_REF##refs/tags/}"
|
|
81
|
+
VER="${TAG#v}"
|
|
82
|
+
MM="$(echo "$VER" | awk -F. '{print $1"."$2}')"
|
|
83
|
+
echo "version=${MM}" >> "$GITHUB_OUTPUT"
|
|
84
|
+
echo "alias=latest" >> "$GITHUB_OUTPUT"
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
- name: Deploy via mike
|
|
88
|
+
run: |
|
|
89
|
+
if [ -n "${{ steps.label.outputs.alias }}" ]; then
|
|
90
|
+
uv run mike deploy --push --update-aliases \
|
|
91
|
+
"${{ steps.label.outputs.version }}" "${{ steps.label.outputs.alias }}"
|
|
92
|
+
uv run mike set-default --push "${{ steps.label.outputs.alias }}"
|
|
93
|
+
else
|
|
94
|
+
uv run mike deploy --push "${{ steps.label.outputs.version }}"
|
|
95
|
+
uv run mike set-default --push "${{ steps.label.outputs.version }}"
|
|
96
|
+
fi
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
name: docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths:
|
|
6
|
+
- "src/**"
|
|
7
|
+
- "docs/**"
|
|
8
|
+
- "packages/**"
|
|
9
|
+
- "protos/**"
|
|
10
|
+
- "CHANGELOG.md"
|
|
11
|
+
- "mkdocs.yml"
|
|
12
|
+
- "Makefile"
|
|
13
|
+
- "scripts/**"
|
|
14
|
+
- ".github/workflows/docs.yml"
|
|
15
|
+
push:
|
|
16
|
+
branches: [main]
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
docs:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 15
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Install uv
|
|
26
|
+
uses: astral-sh/setup-uv@v3
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.13"
|
|
29
|
+
|
|
30
|
+
- name: Install Python deps
|
|
31
|
+
run: uv sync --extra docs --extra server --extra mcp
|
|
32
|
+
|
|
33
|
+
# arduino/setup-protoc@v3 has an unfixed bug ("unable to get latest
|
|
34
|
+
# version", arduino/setup-protoc#108) that intermittently breaks CI
|
|
35
|
+
# even with an explicit version pin. Install protoc directly from
|
|
36
|
+
# the upstream release archive instead.
|
|
37
|
+
- name: Install protoc
|
|
38
|
+
run: |
|
|
39
|
+
set -euo pipefail
|
|
40
|
+
PROTOC_VERSION=27.3
|
|
41
|
+
curl -fsSL -o /tmp/protoc.zip \
|
|
42
|
+
"https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip"
|
|
43
|
+
sudo unzip -q -o /tmp/protoc.zip -d /usr/local
|
|
44
|
+
sudo chmod +x /usr/local/bin/protoc
|
|
45
|
+
protoc --version
|
|
46
|
+
|
|
47
|
+
- name: Set up Go
|
|
48
|
+
uses: actions/setup-go@v5
|
|
49
|
+
with:
|
|
50
|
+
go-version: "1.24"
|
|
51
|
+
|
|
52
|
+
- name: Install protoc-gen-doc
|
|
53
|
+
run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1
|
|
54
|
+
|
|
55
|
+
- name: Install Node
|
|
56
|
+
uses: actions/setup-node@v4
|
|
57
|
+
with:
|
|
58
|
+
node-version: "20"
|
|
59
|
+
|
|
60
|
+
- name: Install pnpm
|
|
61
|
+
uses: pnpm/action-setup@v4
|
|
62
|
+
with:
|
|
63
|
+
version: 9
|
|
64
|
+
|
|
65
|
+
- name: Version sync
|
|
66
|
+
run: uv run python scripts/check_version_sync.py
|
|
67
|
+
|
|
68
|
+
- name: Generate docs artifacts
|
|
69
|
+
run: make docs-gen
|
|
70
|
+
|
|
71
|
+
- name: Generate foreign-toolchain docs
|
|
72
|
+
run: make docs-gen-foreign
|
|
73
|
+
|
|
74
|
+
- name: Drift gate
|
|
75
|
+
run: |
|
|
76
|
+
if ! git diff --exit-code docs/reference docs/llms.txt docs/llms-full.txt docs/changelog.json; then
|
|
77
|
+
echo "::error::Generated docs artifacts are stale. Run 'make docs-gen && make docs-gen-foreign' and commit."
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
- name: Build (strict)
|
|
82
|
+
run: uv run mkdocs build --strict
|
|
83
|
+
|
|
84
|
+
- name: Docstring coverage
|
|
85
|
+
run: uv run python scripts/check_docstrings.py
|
|
86
|
+
|
|
87
|
+
- name: SDK coverage
|
|
88
|
+
run: uv run python scripts/check_sdk_coverage.py
|
|
89
|
+
|
|
90
|
+
- name: Doc source drift gate
|
|
91
|
+
run: uv run python scripts/check_doc_sources.py
|
|
92
|
+
|
|
93
|
+
- name: Tutorial snippet verification
|
|
94
|
+
run: uv run python scripts/verify_tutorial_snippets.py docs/tutorials
|
|
95
|
+
if: hashFiles('docs/tutorials/*.md') != ''
|
|
96
|
+
|
|
97
|
+
- name: Markdown lint
|
|
98
|
+
uses: DavidAnson/markdownlint-cli2-action@v16
|
|
99
|
+
with:
|
|
100
|
+
globs: |
|
|
101
|
+
docs/**/*.md
|
|
102
|
+
!docs/reference/**
|
|
103
|
+
!docs/llms*.txt
|
|
104
|
+
!docs/superpowers/**
|
|
105
|
+
!docs/_prompts/**
|
|
106
|
+
|
|
107
|
+
- name: Spelling
|
|
108
|
+
run: uv run codespell docs/ --skip "docs/reference/*,docs/llms*.txt,docs/changelog.json,docs/superpowers/*"
|
|
109
|
+
|
|
110
|
+
- name: Link check
|
|
111
|
+
uses: lycheeverse/lychee-action@v1
|
|
112
|
+
with:
|
|
113
|
+
args: --no-progress --exclude-path docs/superpowers docs/
|
|
114
|
+
fail: true
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: go-ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths:
|
|
6
|
+
- "protos/**"
|
|
7
|
+
- "packages/fathom-go/**"
|
|
8
|
+
- ".github/workflows/go-ci.yml"
|
|
9
|
+
push:
|
|
10
|
+
branches: [main]
|
|
11
|
+
paths:
|
|
12
|
+
- "protos/**"
|
|
13
|
+
- "packages/fathom-go/**"
|
|
14
|
+
- ".github/workflows/go-ci.yml"
|
|
15
|
+
workflow_dispatch: {}
|
|
16
|
+
|
|
17
|
+
concurrency:
|
|
18
|
+
group: go-ci-${{ github.ref }}
|
|
19
|
+
cancel-in-progress: true
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
test:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
timeout-minutes: 15
|
|
25
|
+
defaults:
|
|
26
|
+
run:
|
|
27
|
+
working-directory: packages/fathom-go
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
|
|
31
|
+
- name: Set up Go
|
|
32
|
+
uses: actions/setup-go@v5
|
|
33
|
+
with:
|
|
34
|
+
go-version: "1.24"
|
|
35
|
+
|
|
36
|
+
- name: Set up protoc
|
|
37
|
+
uses: arduino/setup-protoc@v3
|
|
38
|
+
with:
|
|
39
|
+
version: "25.3"
|
|
40
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
41
|
+
|
|
42
|
+
- name: Install protoc Go plugins
|
|
43
|
+
run: |
|
|
44
|
+
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
|
|
45
|
+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.6.1
|
|
46
|
+
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
|
|
47
|
+
|
|
48
|
+
- name: verify-grpc (drift check)
|
|
49
|
+
run: make verify-grpc
|
|
50
|
+
|
|
51
|
+
- name: go vet
|
|
52
|
+
run: go vet ./...
|
|
53
|
+
|
|
54
|
+
- name: go build
|
|
55
|
+
run: go build ./...
|
|
56
|
+
|
|
57
|
+
- name: go test
|
|
58
|
+
run: go test ./...
|
|
59
|
+
|
|
60
|
+
integration:
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
timeout-minutes: 20
|
|
63
|
+
needs: test
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v4
|
|
66
|
+
|
|
67
|
+
- name: Set up Go
|
|
68
|
+
uses: actions/setup-go@v5
|
|
69
|
+
with:
|
|
70
|
+
go-version: "1.24"
|
|
71
|
+
|
|
72
|
+
- name: Set up protoc
|
|
73
|
+
uses: arduino/setup-protoc@v3
|
|
74
|
+
with:
|
|
75
|
+
version: "25.3"
|
|
76
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
77
|
+
|
|
78
|
+
- name: Install uv
|
|
79
|
+
uses: astral-sh/setup-uv@v5
|
|
80
|
+
with:
|
|
81
|
+
python-version: "3.13"
|
|
82
|
+
|
|
83
|
+
- name: Install fathom (Python) for live gRPC server
|
|
84
|
+
run: |
|
|
85
|
+
uv sync --all-extras
|
|
86
|
+
uv pip install -e .
|
|
87
|
+
|
|
88
|
+
- name: go test (integration)
|
|
89
|
+
working-directory: packages/fathom-go
|
|
90
|
+
run: go test -tags integration ./...
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
name: pypi-publish
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
tags:
|
|
5
|
+
- "v*.*.*"
|
|
6
|
+
workflow_dispatch: {}
|
|
7
|
+
permissions:
|
|
8
|
+
id-token: write
|
|
9
|
+
contents: write
|
|
10
|
+
jobs:
|
|
11
|
+
publish:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
environment: pypi
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Install uv
|
|
18
|
+
uses: astral-sh/setup-uv@v3
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.13"
|
|
21
|
+
|
|
22
|
+
- name: Clean old artifacts
|
|
23
|
+
run: rm -rf dist/
|
|
24
|
+
|
|
25
|
+
- name: Build
|
|
26
|
+
run: uv build
|
|
27
|
+
|
|
28
|
+
- name: Install minisign
|
|
29
|
+
run: sudo apt-get update && sudo apt-get install -y minisign
|
|
30
|
+
|
|
31
|
+
- name: Write signing key
|
|
32
|
+
env:
|
|
33
|
+
MINISIGN_KEY_PRIMARY: ${{ secrets.MINISIGN_KEY_PRIMARY }}
|
|
34
|
+
run: |
|
|
35
|
+
set -euo pipefail
|
|
36
|
+
if [[ -z "${MINISIGN_KEY_PRIMARY}" ]]; then
|
|
37
|
+
echo "error: MINISIGN_KEY_PRIMARY secret is not set" >&2
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
printf '%s\n' "${MINISIGN_KEY_PRIMARY}" > /tmp/mini.key
|
|
41
|
+
chmod 600 /tmp/mini.key
|
|
42
|
+
|
|
43
|
+
- name: Sign and verify artifacts
|
|
44
|
+
run: bash scripts/sign_release.sh /tmp/mini.key docs/reference/release-signing-pubkey.minisig
|
|
45
|
+
|
|
46
|
+
- name: Publish to PyPI
|
|
47
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
48
|
+
|
|
49
|
+
- name: Upload signatures to GitHub release
|
|
50
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
51
|
+
env:
|
|
52
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
53
|
+
run: gh release upload "${GITHUB_REF_NAME}" dist/*.minisig
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# AI / Editor tooling
|
|
2
|
+
.claude
|
|
3
|
+
.vscode
|
|
4
|
+
.cursor
|
|
5
|
+
.worktrees
|
|
6
|
+
CLAUDE.md
|
|
7
|
+
|
|
8
|
+
# Specs / orchestration state
|
|
9
|
+
./specs/
|
|
10
|
+
specs/.current-spec
|
|
11
|
+
specs/.index/.work-indicators/
|
|
12
|
+
**/.tasks.lock
|
|
13
|
+
**/.progress.md
|
|
14
|
+
**/.ralph-state.json
|
|
15
|
+
**/.git-commit.lock
|
|
16
|
+
|
|
17
|
+
# Python bytecode
|
|
18
|
+
__pycache__/
|
|
19
|
+
*.py[codz]
|
|
20
|
+
*$py.class
|
|
21
|
+
*.so
|
|
22
|
+
|
|
23
|
+
# Distribution / packaging
|
|
24
|
+
build/
|
|
25
|
+
dist/
|
|
26
|
+
*.egg-info/
|
|
27
|
+
*.egg
|
|
28
|
+
.installed.cfg
|
|
29
|
+
MANIFEST
|
|
30
|
+
|
|
31
|
+
# Virtual environments
|
|
32
|
+
.venv
|
|
33
|
+
.env
|
|
34
|
+
.envrc
|
|
35
|
+
|
|
36
|
+
# uv
|
|
37
|
+
uv.lock
|
|
38
|
+
|
|
39
|
+
# Testing / coverage
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
coverage.xml
|
|
46
|
+
*.cover
|
|
47
|
+
*.py.cover
|
|
48
|
+
.hypothesis/
|
|
49
|
+
.pytest_cache/
|
|
50
|
+
|
|
51
|
+
# Type checkers / linters
|
|
52
|
+
.mypy_cache/
|
|
53
|
+
.dmypy.json
|
|
54
|
+
dmypy.json
|
|
55
|
+
.pytype/
|
|
56
|
+
.pyre/
|
|
57
|
+
.ruff_cache/
|
|
58
|
+
|
|
59
|
+
# mkdocs
|
|
60
|
+
/site
|
|
61
|
+
|
|
62
|
+
# Node / TypeScript
|
|
63
|
+
node_modules/
|
|
64
|
+
packages/*/node_modules
|
|
65
|
+
|
|
66
|
+
# Logs
|
|
67
|
+
*.log
|
|
68
|
+
|
|
69
|
+
# Docker
|
|
70
|
+
*.pid
|
|
71
|
+
|
|
72
|
+
# Secrets / tokens
|
|
73
|
+
.pypi-token
|
|
74
|
+
.pypirc
|
|
75
|
+
|
|
76
|
+
# OS files
|
|
77
|
+
.DS_Store
|
|
78
|
+
Thumbs.db
|
|
79
|
+
|
|
80
|
+
# Scratch / test artifacts
|
|
81
|
+
.live-test-*/
|
|
82
|
+
CLAUDE.md
|