epistemic-graph 0.24.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.
Files changed (91) hide show
  1. epistemic_graph-0.24.0/.bumpversion.cfg +16 -0
  2. epistemic_graph-0.24.0/.codespellignore +28 -0
  3. epistemic_graph-0.24.0/.env.example +9 -0
  4. epistemic_graph-0.24.0/.gitattributes +197 -0
  5. epistemic_graph-0.24.0/.github/workflows/pages.yml +14 -0
  6. epistemic_graph-0.24.0/.github/workflows/pipeline.yml +20 -0
  7. epistemic_graph-0.24.0/.gitignore +91 -0
  8. epistemic_graph-0.24.0/.pre-commit-config.yaml +110 -0
  9. epistemic_graph-0.24.0/.specify/reports/code_enhancement_report.md +335 -0
  10. epistemic_graph-0.24.0/.specify/reports/epistemic-graph/results.json +2109 -0
  11. epistemic_graph-0.24.0/.specify/reports/generated_c4.md +17 -0
  12. epistemic_graph-0.24.0/.specify/reports/summary.json +32 -0
  13. epistemic_graph-0.24.0/.specify/specs/code-enhancement-20260529/spec.json +222 -0
  14. epistemic_graph-0.24.0/.specify/specs/code-enhancement-20260529/spec.md +54 -0
  15. epistemic_graph-0.24.0/.specify/specs/code-enhancement-20260529/tasks.json +392 -0
  16. epistemic_graph-0.24.0/.specify/specs/code-enhancement-20260529/tasks.md +65 -0
  17. epistemic_graph-0.24.0/.vulture_ignore +2 -0
  18. epistemic_graph-0.24.0/AGENTS.md +163 -0
  19. epistemic_graph-0.24.0/CHANGELOG.md +17 -0
  20. epistemic_graph-0.24.0/CLAUDE.md +10 -0
  21. epistemic_graph-0.24.0/Cargo.lock +2013 -0
  22. epistemic_graph-0.24.0/Cargo.toml +89 -0
  23. epistemic_graph-0.24.0/LICENSE +21 -0
  24. epistemic_graph-0.24.0/PKG-INFO +228 -0
  25. epistemic_graph-0.24.0/README.md +193 -0
  26. epistemic_graph-0.24.0/build.rs +7 -0
  27. epistemic_graph-0.24.0/docker/Dockerfile +27 -0
  28. epistemic_graph-0.24.0/docker/compose.yml +10 -0
  29. epistemic_graph-0.24.0/docs/RUST_COMPUTE_GUIDE.md +192 -0
  30. epistemic_graph-0.24.0/docs/benchmarks.md +39 -0
  31. epistemic_graph-0.24.0/docs/concepts.md +29 -0
  32. epistemic_graph-0.24.0/docs/index.md +10 -0
  33. epistemic_graph-0.24.0/docs/overview.md +66 -0
  34. epistemic_graph-0.24.0/docs/service_mode.md +194 -0
  35. epistemic_graph-0.24.0/epistemic_graph/__init__.py +4 -0
  36. epistemic_graph-0.24.0/epistemic_graph/cli.py +221 -0
  37. epistemic_graph-0.24.0/epistemic_graph/client.py +803 -0
  38. epistemic_graph-0.24.0/epistemic_graph/parser.py +162 -0
  39. epistemic_graph-0.24.0/epistemic_graph/pool.py +161 -0
  40. epistemic_graph-0.24.0/epistemic_graph/py.typed +1 -0
  41. epistemic_graph-0.24.0/epistemic_graph/quant.py +140 -0
  42. epistemic_graph-0.24.0/pyproject.toml +74 -0
  43. epistemic_graph-0.24.0/pytest.ini +4 -0
  44. epistemic_graph-0.24.0/requirements.txt +10 -0
  45. epistemic_graph-0.24.0/scripts/bench_transport.py +93 -0
  46. epistemic_graph-0.24.0/scripts/check_no_pyo3.sh +38 -0
  47. epistemic_graph-0.24.0/scripts/run_shards.sh +52 -0
  48. epistemic_graph-0.24.0/scripts/security_sanitizer.py +160 -0
  49. epistemic_graph-0.24.0/src/algorithms.rs +1101 -0
  50. epistemic_graph-0.24.0/src/ast/mod.rs +9 -0
  51. epistemic_graph-0.24.0/src/ast/parser.rs +410 -0
  52. epistemic_graph-0.24.0/src/ast/symbol.rs +141 -0
  53. epistemic_graph-0.24.0/src/channels.rs +336 -0
  54. epistemic_graph-0.24.0/src/compute/distillation.rs +176 -0
  55. epistemic_graph-0.24.0/src/compute/hypergraph.rs +113 -0
  56. epistemic_graph-0.24.0/src/compute/mod.rs +10 -0
  57. epistemic_graph-0.24.0/src/compute/semantic.rs +198 -0
  58. epistemic_graph-0.24.0/src/compute/spectral.rs +294 -0
  59. epistemic_graph-0.24.0/src/datascience/mod.rs +6 -0
  60. epistemic_graph-0.24.0/src/datascience/primitives.rs +500 -0
  61. epistemic_graph-0.24.0/src/event_bus.rs +79 -0
  62. epistemic_graph-0.24.0/src/execution/mod.rs +1 -0
  63. epistemic_graph-0.24.0/src/execution/orchestrator.rs +104 -0
  64. epistemic_graph-0.24.0/src/finance/exchange.rs +270 -0
  65. epistemic_graph-0.24.0/src/finance/mod.rs +11 -0
  66. epistemic_graph-0.24.0/src/finance/optimizer.rs +540 -0
  67. epistemic_graph-0.24.0/src/finance/regime.rs +293 -0
  68. epistemic_graph-0.24.0/src/finance/risk.rs +269 -0
  69. epistemic_graph-0.24.0/src/finance/signals.rs +226 -0
  70. epistemic_graph-0.24.0/src/graph.rs +825 -0
  71. epistemic_graph-0.24.0/src/isolation.rs +250 -0
  72. epistemic_graph-0.24.0/src/lib.rs +33 -0
  73. epistemic_graph-0.24.0/src/main.rs +155 -0
  74. epistemic_graph-0.24.0/src/parser/mod.rs +7 -0
  75. epistemic_graph-0.24.0/src/parser/tree_sitter.rs +507 -0
  76. epistemic_graph-0.24.0/src/protocol.rs +511 -0
  77. epistemic_graph-0.24.0/src/reasoning.rs +436 -0
  78. epistemic_graph-0.24.0/src/registry.rs +146 -0
  79. epistemic_graph-0.24.0/src/server.rs +828 -0
  80. epistemic_graph-0.24.0/src/types.rs +323 -0
  81. epistemic_graph-0.24.0/tests/conftest.py +63 -0
  82. epistemic_graph-0.24.0/tests/test_concept_parity.py +29 -0
  83. epistemic_graph-0.24.0/tests/test_epistemic_graph.py +270 -0
  84. epistemic_graph-0.24.0/tests/test_init_dynamics.py +25 -0
  85. epistemic_graph-0.24.0/tests/test_msgpack.rs +9 -0
  86. epistemic_graph-0.24.0/tests/test_no_pyo3_and_quant.py +95 -0
  87. epistemic_graph-0.24.0/tests/test_protocol.py +121 -0
  88. epistemic_graph-0.24.0/tests/test_service_layer.py +242 -0
  89. epistemic_graph-0.24.0/tests/test_startup.py +11 -0
  90. epistemic_graph-0.24.0/tests/test_transport.py +110 -0
  91. epistemic_graph-0.24.0/uv.lock +515 -0
@@ -0,0 +1,16 @@
1
+ [bumpversion]
2
+ current_version = 0.24.0
3
+ commit = True
4
+ tag = True
5
+
6
+ [bumpversion:file:pyproject.toml]
7
+ search = version = "{current_version}"
8
+ replace = version = "{new_version}"
9
+
10
+ [bumpversion:file:Cargo.toml]
11
+ search = version = "{current_version}"
12
+ replace = version = "{new_version}"
13
+
14
+ [bumpversion:file:README.md]
15
+ search = version-{current_version}-blue
16
+ replace = version-{new_version}-blue
@@ -0,0 +1,28 @@
1
+ # Codespell ignore words
2
+ ans
3
+ linar
4
+ nam
5
+ tread
6
+ ot
7
+ petgraph
8
+ toposort
9
+ pyo3
10
+ pymethods
11
+ pyclass
12
+ pymodule
13
+ cdylib
14
+ stable_graph
15
+ bfs
16
+ dfs
17
+ dijkstra
18
+ maturin
19
+ tomllib
20
+ bumpversion
21
+ bump2version
22
+ hadolint
23
+ vulture
24
+ codespell
25
+ pre-commit
26
+ epistemic
27
+ epistemic-graph
28
+ epistemic_graph
@@ -0,0 +1,9 @@
1
+ # epistemic-graph environment configuration
2
+ PYTHONPATH=.
3
+
4
+ # Runtime environment settings
5
+ GRAPH_SERVICE_AUTH_SECRET=changeme
6
+ GRAPH_SERVICE_SOCKET=/tmp/epistemic_graph.sock
7
+ XDG_RUNTIME_DIR=/tmp
8
+ PATH=/usr/local/bin:/usr/bin:/bin
9
+ UID=1000
@@ -0,0 +1,197 @@
1
+ # Auto detect
2
+ ## Handle line endings automatically for files detected as
3
+ ## text and leave all files detected as binary untouched.
4
+ ## This will handle all files NOT defined below.
5
+ * text=auto
6
+
7
+ # Source code
8
+ *.bash text eol=lf
9
+ *.bat text eol=crlf
10
+ *.cmd text eol=crlf
11
+ *.coffee text
12
+ *.css text diff=css
13
+ *.htm text diff=html
14
+ *.html text diff=html
15
+ *.inc text
16
+ *.ini text
17
+ *.js text
18
+ *.json text
19
+ *.jsx text
20
+ *.less text
21
+ *.ls text
22
+ *.map text -diff
23
+ *.od text
24
+ *.onlydata text
25
+ *.php text diff=php
26
+ *.pl text
27
+ *.ps1 text eol=crlf
28
+ *.py text diff=python
29
+ *.rb text diff=ruby
30
+ *.rs text diff=rust
31
+ *.sass text
32
+ *.scm text
33
+ *.scss text diff=css
34
+ *.sh text eol=lf
35
+ .husky/* text eol=lf
36
+ *.sql text
37
+ *.styl text
38
+ *.tag text
39
+ *.ts text
40
+ *.tsx text
41
+ *.xml text
42
+ *.xhtml text diff=html
43
+
44
+ # Docker
45
+ Dockerfile text
46
+
47
+ # Documentation
48
+ *.ipynb text
49
+ *.markdown text diff=markdown
50
+ *.md text diff=markdown
51
+ *.mdwn text diff=markdown
52
+ *.mdown text diff=markdown
53
+ *.mkd text diff=markdown
54
+ *.mkdn text diff=markdown
55
+ *.mdtxt text
56
+ *.mdtext text
57
+ *.txt text
58
+ AUTHORS text
59
+ CHANGELOG text
60
+ CHANGES text
61
+ CONTRIBUTING text
62
+ COPYING text
63
+ copyright text
64
+ *COPYRIGHT* text
65
+ INSTALL text
66
+ license text
67
+ LICENSE text
68
+ NEWS text
69
+ readme text
70
+ *README* text
71
+ TODO text
72
+
73
+ # Templates
74
+ *.dot text
75
+ *.ejs text
76
+ *.erb text
77
+ *.haml text
78
+ *.handlebars text
79
+ *.hbs text
80
+ *.hbt text
81
+ *.jade text
82
+ *.latte text
83
+ *.mustache text
84
+ *.njk text
85
+ *.phtml text
86
+ *.svelte text
87
+ *.tmpl text
88
+ *.tpl text
89
+ *.twig text
90
+ *.vue text
91
+
92
+ # Configs
93
+ *.cnf text
94
+ *.conf text
95
+ *.config text
96
+ .editorconfig text
97
+ .env text
98
+ .gitattributes text
99
+ .gitconfig text
100
+ .htaccess text
101
+ *.lock text -diff
102
+ package.json text eol=lf
103
+ package-lock.json text eol=lf -diff
104
+ pnpm-lock.yaml text eol=lf -diff
105
+ .prettierrc text
106
+ yarn.lock text -diff
107
+ *.toml text
108
+ *.yaml text
109
+ *.yml text
110
+ browserslist text
111
+ Makefile text
112
+ makefile text
113
+
114
+ # Heroku
115
+ Procfile text
116
+
117
+ # Graphics
118
+ *.ai binary
119
+ *.bmp binary
120
+ *.eps binary
121
+ *.gif binary
122
+ *.gifv binary
123
+ *.ico binary
124
+ *.jng binary
125
+ *.jp2 binary
126
+ *.jpg binary
127
+ *.jpeg binary
128
+ *.jpx binary
129
+ *.jxr binary
130
+ *.pdf binary
131
+ *.png binary
132
+ *.psb binary
133
+ *.psd binary
134
+ # SVG treated as an asset (binary) by default.
135
+ *.svg text
136
+ # If you want to treat it as binary,
137
+ # use the following line instead.
138
+ # *.svg binary
139
+ *.svgz binary
140
+ *.tif binary
141
+ *.tiff binary
142
+ *.wbmp binary
143
+ *.webp binary
144
+
145
+ # Audio
146
+ *.kar binary
147
+ *.m4a binary
148
+ *.mid binary
149
+ *.midi binary
150
+ *.mp3 binary
151
+ *.ogg binary
152
+ *.ra binary
153
+
154
+ # Video
155
+ *.3gpp binary
156
+ *.3gp binary
157
+ *.as binary
158
+ *.asf binary
159
+ *.asx binary
160
+ *.avi binary
161
+ *.fla binary
162
+ *.flv binary
163
+ *.m4v binary
164
+ *.mng binary
165
+ *.mov binary
166
+ *.mp4 binary
167
+ *.mpeg binary
168
+ *.mpg binary
169
+ *.ogv binary
170
+ *.swc binary
171
+ *.swf binary
172
+ *.webm binary
173
+
174
+ # Archives
175
+ *.7z binary
176
+ *.gz binary
177
+ *.jar binary
178
+ *.rar binary
179
+ *.tar binary
180
+ *.zip binary
181
+
182
+ # Fonts
183
+ *.ttf binary
184
+ *.eot binary
185
+ *.otf binary
186
+ *.woff binary
187
+ *.woff2 binary
188
+
189
+ # Executables
190
+ *.exe binary
191
+ *.pyc binary
192
+
193
+ # RC files (like .babelrc or .eslintrc)
194
+ *.*rc text
195
+
196
+ # Ignore files (like .npmignore or .gitignore)
197
+ *.*ignore text
@@ -0,0 +1,14 @@
1
+ name: Deploy GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - 'docs/**'
9
+ - 'mkdocs.yml'
10
+ - 'README.md'
11
+
12
+ jobs:
13
+ publish-pages:
14
+ uses: Knuckles-Team/pipelines/.github/workflows/pages_pipeline.yml@main
@@ -0,0 +1,20 @@
1
+ name: Build|Upload|Release Python Package
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'main'
7
+
8
+ jobs:
9
+ publish-pypi:
10
+ uses: Knuckles-Team/pipelines/.github/workflows/maturin_pipeline.yml@main
11
+ secrets:
12
+ PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
13
+ publish-docker:
14
+ needs: publish-pypi
15
+ uses: Knuckles-Team/pipelines/.github/workflows/container_pipeline.yml@main
16
+ secrets:
17
+ DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }}
18
+ DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
19
+ DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
20
+ DOCKER_REPOSITORY: ${{ secrets.DOCKER_REPOSITORY }}
@@ -0,0 +1,91 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ /.ruff_cache/
7
+
8
+ # C extensions
9
+ *.so
10
+ *.pyd
11
+
12
+ # Distribution / packaging
13
+ .Python
14
+ build/
15
+ develop-eggs/
16
+ dist/
17
+ eggs/
18
+ .eggs/
19
+ lib/
20
+ lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ pip-wheel-metadata/
26
+ share/python-wheels/
27
+ *.egg-info/
28
+ .installed.cfg
29
+ *.egg
30
+ MANIFEST
31
+
32
+ # Unit test / coverage reports
33
+ htmlcov/
34
+ .tox/
35
+ .nox/
36
+ .coverage
37
+ .coverage.*
38
+ .cache
39
+ nosetests.xml
40
+ coverage.xml
41
+ *.cover
42
+ *.py,cover
43
+ .hypothesis/
44
+ .pytest_cache/
45
+
46
+ # Environments
47
+ .env
48
+ .venv
49
+ env/
50
+ venv/
51
+ ENV/
52
+ env.bak/
53
+ venv.bak/
54
+
55
+ # mypy
56
+ .mypy_cache/
57
+ .dmypy.json
58
+ dmypy.json
59
+
60
+ # Rust target directory and backups
61
+ target/
62
+ debug/
63
+ **/*.rs.bk
64
+ *.pdb
65
+ **/mutants.out*/
66
+ .idea/
67
+
68
+ # Model-generated transient scripts at root level
69
+ /test_*.py
70
+ /fix_*.py
71
+ /debug_*.py
72
+ /scratch_*.py
73
+ /temp_*.py
74
+
75
+ # Transient logs, traces, patch files, and test outputs
76
+ *.orig
77
+ *.rej
78
+ *.patch
79
+ *.log
80
+ *output*.txt
81
+ *errors*.txt
82
+ failed_tests.txt
83
+ trace.txt
84
+
85
+ # AI agent scratch (do not commit) — keep repo roots pristine
86
+ .agent/
87
+ .agents/
88
+ .agent_data/
89
+ .tmp/
90
+ .pytest_tmp/
91
+ .hypothesis/
@@ -0,0 +1,110 @@
1
+ default_language_version:
2
+ python: python3
3
+ exclude: 'dotnet|node_modules|target'
4
+ ci:
5
+ autofix_prs: true
6
+ autoupdate_commit_msg: '[pre-commit.ci] pre-commit suggestions'
7
+ autoupdate_schedule: 'monthly'
8
+
9
+ repos:
10
+ - repo: https://github.com/pre-commit/pre-commit-hooks
11
+ rev: v6.0.0
12
+ hooks:
13
+ - id: check-added-large-files
14
+ args: ["--maxkb=2000"]
15
+ exclude: '.*\.db$'
16
+ - id: check-ast
17
+ exclude: ^(tests/|test/|scripts/|script/)
18
+ - id: check-yaml
19
+ args: ["--unsafe"]
20
+ - id: check-toml
21
+ - id: check-json
22
+ - id: fix-byte-order-marker
23
+ exclude: .gitignore
24
+ - id: check-merge-conflict
25
+ - id: detect-private-key
26
+ - id: trailing-whitespace
27
+ - id: end-of-file-fixer
28
+ - repo: https://github.com/astral-sh/ruff-pre-commit
29
+ rev: v0.15.12
30
+ hooks:
31
+ - id: ruff-check
32
+ args: ["--fix", "--ignore=E402,B008,E501"]
33
+ exclude: ^(tests/|test/|scripts/|script/)
34
+ - id: ruff-format
35
+ exclude: ^(tests/|test/|scripts/|script/)
36
+ - repo: https://github.com/pre-commit/mirrors-mypy
37
+ rev: v1.20.2
38
+ hooks:
39
+ - id: mypy
40
+ additional_dependencies: [pydantic, types-PyYAML, types-requests, types-setuptools]
41
+ args: ["--ignore-missing-imports"]
42
+ - repo: https://github.com/jendrikseipp/vulture
43
+ rev: v2.16
44
+ hooks:
45
+ - id: vulture
46
+ pass_filenames: false
47
+ args: [".", "--min-confidence", "95", "--exclude", "node_modules,dotnet,.venv,venv,node_modules,.git,build,dist,target"]
48
+ require_serial: true
49
+ - repo: https://github.com/codespell-project/codespell
50
+ rev: v2.4.2
51
+ hooks:
52
+ - id: codespell
53
+ args: ["-L", "ans,linar,nam,tread,ot,", "--ignore-words=.codespellignore"]
54
+ exclude: ^(tests/|test/|scripts/|script/|.*lock.*|Cargo.lock|\.specify/)
55
+ - repo: https://github.com/PyCQA/bandit
56
+ rev: 1.9.4
57
+ hooks:
58
+ - id: bandit
59
+ args: ["--skip", "B101,B404,B603"]
60
+ exclude: ^(tests/|test/|scripts/|script/|__tests__/)
61
+ - repo: https://github.com/astral-sh/uv-pre-commit
62
+ rev: 0.11.8
63
+ hooks:
64
+ - id: uv-lock
65
+ - repo: local
66
+ hooks:
67
+ - id: check-stubs
68
+ name: Check for Active Stubs and TODOs
69
+ entry: python3 /home/apps/workspace/agent-packages/agent-utilities/scripts/check_stubs.py
70
+ language: system
71
+ types: [python]
72
+ - id: check-sprawl
73
+ name: Guardrail — anti-sprawl
74
+ entry: python3 /home/apps/workspace/agent-packages/agent-utilities/scripts/check_sprawl.py
75
+ language: system
76
+ args: ["."]
77
+ pass_filenames: false
78
+ always_run: true
79
+ - id: check-bumpversion
80
+ name: validate bumpversion config
81
+ entry: |-
82
+ bash -c 'if [ -f ".bumpversion.cfg" ]; then bump2version patch --dry-run --allow-dirty; fi'
83
+ language: system
84
+ pass_filenames: false
85
+ always_run: true
86
+ - repo: local
87
+ hooks:
88
+ - id: cargo-test
89
+ name: cargo test
90
+ entry: bash -c 'if [ -f "Cargo.toml" ]; then cargo test --quiet; fi'
91
+ language: system
92
+ pass_filenames: false
93
+ always_run: true
94
+ - repo: local
95
+ hooks:
96
+ - id: pytest
97
+ name: pytest
98
+ entry: bash -c 'test_target="tests"; for d in tests/unit test/unit tests test; do if [ -d "$d" ]; then test_target="$d"; break; fi; done; if [ -f uv.lock ]; then uv run --all-extras pytest "$test_target" -q --tb=short -m "not slow" --timeout=60; else pytest "$test_target" -q --tb=short -m "not slow" --timeout=60; fi'
99
+ language: system
100
+ types: [python]
101
+ pass_filenames: false
102
+ always_run: true
103
+ - repo: local
104
+ hooks:
105
+ - id: security-sanitizer
106
+ name: Security and Garbage Sanitizer
107
+ entry: python scripts/security_sanitizer.py
108
+ language: python
109
+ pass_filenames: false
110
+ always_run: true