fable-engine 1.3.1__py3-none-any.whl

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 (104) hide show
  1. fable_compressor.py +356 -0
  2. fable_engine/__init__.py +1 -0
  3. fable_engine/actions/__init__.py +291 -0
  4. fable_engine/actions/cas.py +182 -0
  5. fable_engine/actions/deliberation.py +523 -0
  6. fable_engine/actions/fleet.py +807 -0
  7. fable_engine/actions/lifecycle.py +298 -0
  8. fable_engine/actions/scrapers.py +116 -0
  9. fable_engine/actions/system3.py +815 -0
  10. fable_engine/browser.py +824 -0
  11. fable_engine/cas.py +974 -0
  12. fable_engine/fable_session.json +510 -0
  13. fable_engine/guards.py +283 -0
  14. fable_engine/schema.py +714 -0
  15. fable_engine/scrapers/__init__.py +32 -0
  16. fable_engine/scrapers/arxiv.py +115 -0
  17. fable_engine/scrapers/base.py +386 -0
  18. fable_engine/scrapers/github.py +129 -0
  19. fable_engine/scrapers/reddit.py +154 -0
  20. fable_engine/scrapers/web.py +120 -0
  21. fable_engine/scrapers/x.py +125 -0
  22. fable_engine/scrapers/youtube.py +132 -0
  23. fable_engine/server.py +414 -0
  24. fable_engine/session.py +1819 -0
  25. fable_engine/test_server.py +1362 -0
  26. fable_engine/updater.py +541 -0
  27. fable_engine-1.3.1.dist-info/LICENSE +22 -0
  28. fable_engine-1.3.1.dist-info/METADATA +173 -0
  29. fable_engine-1.3.1.dist-info/RECORD +104 -0
  30. fable_engine-1.3.1.dist-info/WHEEL +5 -0
  31. fable_engine-1.3.1.dist-info/entry_points.txt +5 -0
  32. fable_engine-1.3.1.dist-info/top_level.txt +6 -0
  33. fable_mode/__init__.py +3 -0
  34. fable_mode/__main__.py +4 -0
  35. fable_mode/adapters.py +1014 -0
  36. fable_mode/installer.py +553 -0
  37. fable_mode/launcher.py +437 -0
  38. fable_mode/manifest.py +142 -0
  39. fable_mode/resources.json +114 -0
  40. fable_mode/safety.py +103 -0
  41. fable_mode_entry.py +10 -0
  42. fable_v2/__init__.py +146 -0
  43. fable_v2/adapters.py +151 -0
  44. fable_v2/coder_fleet/__init__.py +100 -0
  45. fable_v2/coder_fleet/ast_tools.py +158 -0
  46. fable_v2/coder_fleet/compute.py +199 -0
  47. fable_v2/coder_fleet/design_engine.py +1316 -0
  48. fable_v2/coder_fleet/diagnostics.py +293 -0
  49. fable_v2/coder_fleet/fleet_dispatcher.py +214 -0
  50. fable_v2/coder_fleet/mock_auditor.py +306 -0
  51. fable_v2/coder_fleet/mutation.py +216 -0
  52. fable_v2/coder_fleet/property_oracle.py +260 -0
  53. fable_v2/coder_fleet/receipt_attestor.py +122 -0
  54. fable_v2/coder_fleet/red_team_swarm.py +908 -0
  55. fable_v2/coder_fleet/test_harness.py +198 -0
  56. fable_v2/coder_fleet/vector_engine.py +1287 -0
  57. fable_v2/coder_fleet/visual.py +357 -0
  58. fable_v2/coder_fleet/workspace.py +153 -0
  59. fable_v2/cortical/__init__.py +20 -0
  60. fable_v2/cortical/plasticity_engine.py +992 -0
  61. fable_v2/execution_broker.py +811 -0
  62. fable_v2/proof_engine.py +1141 -0
  63. fable_v2/protocol.py +485 -0
  64. fable_v2/runtime.py +1010 -0
  65. fable_v2/system3/__init__.py +204 -0
  66. fable_v2/system3/causal.py +558 -0
  67. fable_v2/system3/dialectical.py +577 -0
  68. fable_v2/system3/evolution.py +503 -0
  69. fable_v2/system3/executive.py +338 -0
  70. fable_v2/system3/free_energy.py +479 -0
  71. fable_v2/system3/hyperbolic.py +555 -0
  72. fable_v2/system3/induction.py +336 -0
  73. fable_v2/system3/kripke.py +548 -0
  74. fable_v2/system3/oracle.py +745 -0
  75. fable_v2/verifiers.py +72 -0
  76. tests/__init__.py +1 -0
  77. tests/test_anti_loop_circuit_breaker.py +64 -0
  78. tests/test_auto_updater.py +407 -0
  79. tests/test_coder_fleet.py +535 -0
  80. tests/test_delegation_compiler.py +54 -0
  81. tests/test_descriptor_boundaries.py +126 -0
  82. tests/test_design_engine.py +603 -0
  83. tests/test_epistemic_evidence_validator.py +66 -0
  84. tests/test_execution_broker.py +233 -0
  85. tests/test_fable_v2.py +406 -0
  86. tests/test_fleet_transitions.py +116 -0
  87. tests/test_fsm_redteam_evolution.py +406 -0
  88. tests/test_goal_rubric_and_pipeline.py +367 -0
  89. tests/test_hebbian_plasticity.py +585 -0
  90. tests/test_packaging_runtime.py +194 -0
  91. tests/test_proof_engine.py +259 -0
  92. tests/test_red_team_swarm.py +645 -0
  93. tests/test_redteam_remediation.py +169 -0
  94. tests/test_registration_transaction.py +375 -0
  95. tests/test_requested_regressions.py +467 -0
  96. tests/test_scrapers.py +370 -0
  97. tests/test_server_actions.py +93 -0
  98. tests/test_server_frontier_actions.py +269 -0
  99. tests/test_server_protocol.py +88 -0
  100. tests/test_stealth_browser.py +970 -0
  101. tests/test_system3.py +381 -0
  102. tests/test_system3_deep_integration.py +385 -0
  103. tests/test_system3_frontier.py +436 -0
  104. tests/test_vector_engine.py +608 -0
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.2
2
+ Name: fable-engine
3
+ Version: 1.3.1
4
+ Summary: Independent deterministic System 2 cognitive engine and mechanical time-lock MCP server
5
+ Author: REX-codebase
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 REX-codebase contributors
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+
29
+ Project-URL: Homepage, https://github.com/REX-codebase/fable-mode
30
+ Project-URL: Repository, https://github.com/REX-codebase/fable-mode
31
+ Project-URL: Issues, https://github.com/REX-codebase/fable-mode/issues
32
+ Keywords: mcp,ai-agents,coding-agents,verification,red-team,llm-tools
33
+ Classifier: Programming Language :: Python :: 3
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: License :: OSI Approved :: MIT License
38
+ Classifier: Operating System :: OS Independent
39
+ Requires-Python: >=3.10
40
+ Description-Content-Type: text/markdown
41
+ License-File: LICENSE
42
+ Dynamic: requires-python
43
+
44
+ <div align="center">
45
+
46
+ <br/>
47
+
48
+ <img src="./assets/logo-light-mode.svg" width="120" alt="Fable Mode"/>
49
+
50
+ # Fable Mode
51
+
52
+ **Agents that think before they write.**
53
+
54
+ <br/>
55
+
56
+ <a href="https://github.com/REX-codebase/fable-mode"><img src="https://img.shields.io/badge/python-3.10%2B-black" alt="Python 3.10+"/></a>
57
+ &nbsp;
58
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-black" alt="MIT"/></a>
59
+ &nbsp;
60
+ <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/protocol-MCP-black" alt="MCP"/></a>
61
+ &nbsp;
62
+ <img src="https://img.shields.io/badge/dependencies-0-black" alt="Zero Dependencies"/>
63
+ &nbsp;
64
+ <img src="https://img.shields.io/badge/tests-473%20passing-black" alt="473 tests passing"/>
65
+
66
+ <br/><br/>
67
+
68
+ </div>
69
+
70
+ ---
71
+
72
+ <br/>
73
+
74
+ Fable Mode is an open-source control plane for AI coding agents.
75
+
76
+ It makes an agent deliberate, produce evidence, and survive adversarial review
77
+ **before** it earns permission to write to your workspace. The gates are
78
+ mechanical, not prompt advice: no timer, no proof, no write access.
79
+
80
+ <br/>
81
+
82
+ <div align="center">
83
+ <img src="./assets/flow-simple.svg" width="720" alt="Think → Prove → Attack → Write"/>
84
+ </div>
85
+
86
+ <div align="center">
87
+ <video src="https://github.com/REX-codebase/fable-mode/raw/main/assets/launch-film.mp4" width="720" controls muted loop playsinline></video>
88
+ </div>
89
+
90
+ <br/>
91
+
92
+ ### See it work
93
+
94
+ A session starts locked. Confidence does not unlock it.
95
+
96
+ ```text
97
+ >>> session = create_session('demo-refactor', budget='2 min')
98
+ state=INIT execution_locked=True can_execute_code=False
99
+
100
+ >>> session.unlock_execution('the plan looks fine, let me write code now')
101
+ PermissionError: HARD TIME-LOCK VIOLATION: Execution unlock rejected!
102
+ The immutable 2.0m authority budget has not elapsed yet
103
+ (Remaining: 1m 59s / 120.0s).
104
+ ```
105
+
106
+ The same gates guard every phase: evidence receipts for claims, a five-vector
107
+ red-team swarm for code, and a sealed record of what was verified.
108
+
109
+ <br/>
110
+
111
+ ### Install
112
+
113
+ ```bash
114
+ pip install fable-engine
115
+ ```
116
+
117
+ Point your agent at the MCP server:
118
+
119
+ ```jsonc
120
+ // Claude Code: claude mcp add fable-engine -- python -m fable_engine.server
121
+ // Cursor: ~/.cursor/mcp.json
122
+ {
123
+ "mcpServers": {
124
+ "fable-engine": {
125
+ "command": "python",
126
+ "args": ["-m", "fable_engine.server"]
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ Python 3.10+, zero runtime dependencies. PyPI package publishing is in progress.
133
+
134
+ <br/>
135
+
136
+ ### How it works
137
+
138
+ 1. **Think** — Time-locked deliberation. The agent cannot write until the timer ends.
139
+ 2. **Prove** — Claims need real evidence (tool receipts, hashes, invariants).
140
+ 3. **Attack** — A red-team swarm tries to break the code.
141
+ 4. **Write** — Only then is the workspace unlocked.
142
+
143
+ <br/>
144
+
145
+ ### What it is not
146
+
147
+ - Not a claim of flawless code. It is a checkable workflow, not a guarantee.
148
+ - Not a bigger prompt. The locks are enforced by the engine, not by wording.
149
+ - Not a framework lock-in. It speaks MCP and runs beside your current agent.
150
+
151
+ <br/>
152
+
153
+ ### Docs
154
+
155
+ - [V1 → V2 migration](./docs/fable-v1-v2-migration.md)
156
+ - [V2 architecture](./docs/fable-v2-architecture.md)
157
+ - [System 3 (experimental)](./docs/system3-architecture.md)
158
+
159
+ <br/>
160
+
161
+ ### Contributing
162
+
163
+ Issues and pull requests are welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md).
164
+
165
+ <br/>
166
+
167
+ ---
168
+
169
+ <div align="center">
170
+
171
+ <sub>MIT License · Built by REX</sub>
172
+
173
+ </div>
@@ -0,0 +1,104 @@
1
+ fable_compressor.py,sha256=gz3Kzvvh_-Lr2xCoA3v6hpRiXbhoWQG5lWVUgeFIv3Q,14262
2
+ fable_mode_entry.py,sha256=U3Ss5NP_RzXPbVmnpg1QTWpYft2XL88CxqhYpoc7W6c,366
3
+ fable_engine/__init__.py,sha256=GjZW52UPvlIgYm8fLHCuPhHAQm1lzPG8G0rwq4nXcdk,45
4
+ fable_engine/browser.py,sha256=zHI0xVx518euOF7ycynmNHGrZFdZYoTIrHSct6P7oYw,32703
5
+ fable_engine/cas.py,sha256=NN3eY9y1_dDusJKsdTP_P3gpRZcRPxDNW2ir4qOZ-dw,38465
6
+ fable_engine/fable_session.json,sha256=c_2Cd4I1AcjFzYGIPpO2RAp8wXSKCnuW2YLf3oFMVtQ,20128
7
+ fable_engine/guards.py,sha256=XK0cjh0ny788xVgm_e1iWOglmJnFvWbNusNg-XZnvvg,12694
8
+ fable_engine/schema.py,sha256=L_8cqupZTYzu5Pa7ySGC3QLTPMlVXwuxbQqKCBKJC34,31930
9
+ fable_engine/server.py,sha256=2bh6Q4rqyoGWYHoClWN3hyFlXpW-uTxykNropFzvs9E,15520
10
+ fable_engine/session.py,sha256=gU9C7TMtMNYDuJiD8ahHNVtoIQQ7TzQxITUBo6TAst4,88449
11
+ fable_engine/test_server.py,sha256=tAq6_y6UhR6FDR7HGud4dXmtmeZlF_Hi_zv8I-znm7k,59305
12
+ fable_engine/updater.py,sha256=cgYUKhx0QkJZOisQVZbj3Dw4GmzhiRYugaJe_2iLu8w,22782
13
+ fable_engine/actions/__init__.py,sha256=z7bzRtped_WyiBcMBTB3aYyh0yV4n7VO0GOkGdzZoG8,13620
14
+ fable_engine/actions/cas.py,sha256=idCVHkdDGrlYAmNQC-GGNdnhKHQ6iMdD_TLzvu3wlBA,8134
15
+ fable_engine/actions/deliberation.py,sha256=24mr-zm5sBM4_8OhpEmt7QA_IqBYMeHPJresAq8Zpro,26076
16
+ fable_engine/actions/fleet.py,sha256=i72lyW1DItul1E5fsB-W5Iymi3aXTBsQmhcbRYiGsdw,37486
17
+ fable_engine/actions/lifecycle.py,sha256=X2HdWHPrSSIlG1l---xY6sDvu16y1wrDN_eVMKv9dqU,14590
18
+ fable_engine/actions/scrapers.py,sha256=c7rk8bMn4_GscIaNZxq1P50lXqwvHrbBZB8O4Kvkras,4498
19
+ fable_engine/actions/system3.py,sha256=NCmyaKGF0Sv9YlcBnUgtKxZDsC7bIPG_y4CB78XkYT8,38358
20
+ fable_engine/scrapers/__init__.py,sha256=yTMAN3iztgAt4HQalcztSXkfcy2G5AWWTB_rYlZBNDw,975
21
+ fable_engine/scrapers/arxiv.py,sha256=HKeeSiLg9J5r04ar1h3wEv8TRIBGVth8MQkwprfd_6g,4782
22
+ fable_engine/scrapers/base.py,sha256=QaXmWI5UsY85L0WSdYvVEoPzYAxaUVjMtVQXGWogh8M,14816
23
+ fable_engine/scrapers/github.py,sha256=0F9h97Bz2VxyutYIV5plAC6_f_lST606pH0zWlKLkrk,5419
24
+ fable_engine/scrapers/reddit.py,sha256=60B7w3rws82kkBzTNh8NOFFpc8JvbMhYqzLvNkXW7pM,6807
25
+ fable_engine/scrapers/web.py,sha256=MV_lYAXwPGvDqfivBYWpsLq2AXTtP3qL2WgRZP2Y2Ps,5096
26
+ fable_engine/scrapers/x.py,sha256=xTMwKbnIyQwPdY_fnjqVEiF3i7MjIHlM1QUTgVxnNFo,5133
27
+ fable_engine/scrapers/youtube.py,sha256=mLAa1B6plcyhT3lxJMVpuSCUcPduPdaPmSqmPWUjk8w,5960
28
+ fable_mode/__init__.py,sha256=USx4Aht3kmFL7dm5ZDng41gK4-qwYDluJakXCiYuTnE,86
29
+ fable_mode/__main__.py,sha256=lJZNY3HAtWH7Tw3GyvLIytlZODYM0-0ibN4WM7MW2VU,84
30
+ fable_mode/adapters.py,sha256=t8lVulppGlp6-pWR_6ACh8B5mbrkCg7-jrumpK-M5IA,50614
31
+ fable_mode/installer.py,sha256=vVho9M6s5R6hX04N1IWjOACax4CKkF2ow36UPxDxu50,27560
32
+ fable_mode/launcher.py,sha256=YySaQFb17t4XbrwuqB4YljR2ZXyxXyDDI-NZsmI_XU8,19782
33
+ fable_mode/manifest.py,sha256=ll8Jl_nPPKoBMsV7UxH35F3q4khHz0ykd_N_GHTXqu8,6112
34
+ fable_mode/resources.json,sha256=1V8bNeX9JKHgpvIwREE0jBmoJqLlo6LJVmqIZ3ngN2w,4709
35
+ fable_mode/safety.py,sha256=EpxxghK3_6FLGZ5dnwoGa6iSkXIUNV7oxiZQeZqlX5s,4407
36
+ fable_v2/__init__.py,sha256=tJnGFtZ5TzqG9SH_CGxwgrotCplJb_6OhDEsFqthLOc,4404
37
+ fable_v2/adapters.py,sha256=5A3S_CKhxBM0cs0g1rXnzRYERLQAGODtWSUf0W2l4BI,6315
38
+ fable_v2/execution_broker.py,sha256=-g8LIz59n60I7HwlZeYfV_7JTHmpwq0HEILOnoTlB8A,36384
39
+ fable_v2/proof_engine.py,sha256=OhhZey3oBX_g0SCd2qoripC2CTh_nxUeY9nofxXO8zs,49121
40
+ fable_v2/protocol.py,sha256=LXbq2Ed9tUBMLeTunN6ra621x8NN46nfbnr_-En6fCI,17272
41
+ fable_v2/runtime.py,sha256=6YyC5bu3cMZpOqS422LoG5Kt9U-0RGA2IW8_73qw_vw,49368
42
+ fable_v2/verifiers.py,sha256=yC7oT5r33kVILojyJLBW3jgqCgB8U88iQxXlXucHWII,2592
43
+ fable_v2/coder_fleet/__init__.py,sha256=Q3vmq_PG_uCkFuhSwJwOD-Nn_VnTMv6P-PJZcAJAJv0,3395
44
+ fable_v2/coder_fleet/ast_tools.py,sha256=sUBTyvCTfm3X68jLCwF28DlRWXVpc9yGbqdt6xaM06M,6046
45
+ fable_v2/coder_fleet/compute.py,sha256=XRH80ooDeHQtXDqkKcRG-sccrOPSE8urz_C9FcZPlY0,7973
46
+ fable_v2/coder_fleet/design_engine.py,sha256=A9_Uw9pWBNhlDnYpJW3AYMtLqhvGijZFl7Ok-QHiiOY,67436
47
+ fable_v2/coder_fleet/diagnostics.py,sha256=RzUUtrfaHwHmzA0yE994qjTE57fSzE3m5CuUHLLPPK8,12006
48
+ fable_v2/coder_fleet/fleet_dispatcher.py,sha256=wifjRLKUV-aupqT3wzGA242Aj17oCZjWV2flhOiwgYU,10844
49
+ fable_v2/coder_fleet/mock_auditor.py,sha256=og17hoIRBqY0v7VFoaHk8VOBlNI1hN2GkwsodTOQqPc,13883
50
+ fable_v2/coder_fleet/mutation.py,sha256=RjMBYXOervRowQCw3i_YclEb3Ck80-fkWSTEsTH94Bg,9435
51
+ fable_v2/coder_fleet/property_oracle.py,sha256=0CGmApuQLF-6Bwf76HHqkOWi_eSc_B9lDAZAqktAoMY,7926
52
+ fable_v2/coder_fleet/receipt_attestor.py,sha256=tgi_U4gEV_zBFtgjVz4cBGrLlhXl7J8cB1_Klnzj5_I,4364
53
+ fable_v2/coder_fleet/red_team_swarm.py,sha256=FQeqCBLvsdKaSL3cPq3YWBVhMnicuBmLERs_xQDFvg8,40822
54
+ fable_v2/coder_fleet/test_harness.py,sha256=ZtqxzweURafuUnTXKAXH0z6LsIIC9U_3C1S4Xfl9AUg,6542
55
+ fable_v2/coder_fleet/vector_engine.py,sha256=FYdVY_0qlGEpvCNOIJGea4o75tFw2_gpXdSoQ2kd6yI,50562
56
+ fable_v2/coder_fleet/visual.py,sha256=5yMXMdwoF4kvcTEkM2BC42rJdm7EfMUO9G2ko9HKXpY,13716
57
+ fable_v2/coder_fleet/workspace.py,sha256=6MK_EcJDhux0R6yKRdQtTJ7_sCUu85AfTHK920Cv_jw,5864
58
+ fable_v2/cortical/__init__.py,sha256=ofEAhUOHfWqUSDU_jmnMy_1g-km6quRM0XUkO1IIJvo,509
59
+ fable_v2/cortical/plasticity_engine.py,sha256=swAEiipamCd6WPP3kossy8QdtBGEVH7tMBZovpEgBcw,43854
60
+ fable_v2/system3/__init__.py,sha256=fUd4BbjBjx2HbuIBCD2MHftKPYZ3SuEYavmpKyqk9HI,3945
61
+ fable_v2/system3/causal.py,sha256=0fiBe8P3wdJT1x0J7BChG39bb5-i8oxNTskssh6kex4,21365
62
+ fable_v2/system3/dialectical.py,sha256=Wnoc0PC7nyyt5m99SIUpbb-Sjr5BGyoPEsBoYFvEiVo,28214
63
+ fable_v2/system3/evolution.py,sha256=EuGZY77KW5JqrYDTwyGgvGTWIlvXosXWXE-9U-RtXRk,21170
64
+ fable_v2/system3/executive.py,sha256=4lAp2YbvnTpPQU_JykQUNHT8VLCl8Enss3ULn_kdhOQ,15196
65
+ fable_v2/system3/free_energy.py,sha256=1ePDp0gg0u2RfT1HiAgXT7GNaTbBoepU1fJXYVbMvfA,18134
66
+ fable_v2/system3/hyperbolic.py,sha256=EhBYlz_MpfgnWr-73PBi2pGn1f0rkghvClhdG2myADc,21620
67
+ fable_v2/system3/induction.py,sha256=J6T2QqgdgOVdh6s2zvbAmkOchZkOKTSiP4-xxmf3vyQ,15319
68
+ fable_v2/system3/kripke.py,sha256=duD1zbchMUIAudahQYDckUhq3IUavcasGlTvNTJhRKw,20138
69
+ fable_v2/system3/oracle.py,sha256=RxyVcWh4LQZ3AJvD4EE66kDqjG4kdGJAZlrXFwgJeBE,31788
70
+ tests/__init__.py,sha256=ADzAWQ0daVSlHLnuvDAjl9OCVFNIyGxcc5__Z-SqWJE,35
71
+ tests/test_anti_loop_circuit_breaker.py,sha256=uYMgx7XSF_mO6mNUtxI94Qc2s-rmLkr8elgRqHGQkv4,2412
72
+ tests/test_auto_updater.py,sha256=aiGdOpB1fpAdh21NzFsEYksgfnrhgQH1MNxetGZNlWo,17841
73
+ tests/test_coder_fleet.py,sha256=5OOB13KSHlK2SbT4lBoVoB6t8YRu5PhoSoWPIBy7zVQ,21704
74
+ tests/test_delegation_compiler.py,sha256=tv7admagKLgTnlrEsWcgKZ0iartvAuFQjESkNGaga6E,2282
75
+ tests/test_descriptor_boundaries.py,sha256=wMvM6SWFEYajD-rcVjpCqE3advXINHZTAnrxDMSphfU,5004
76
+ tests/test_design_engine.py,sha256=HihtoICCRurEpcMYR5hka51LZVOZtLK3nmDuIu7aKEU,26903
77
+ tests/test_epistemic_evidence_validator.py,sha256=vNU9amnFKhjepW3Bys8vFcePBIw7kfSEgMmWkJCFVF8,2517
78
+ tests/test_execution_broker.py,sha256=_ccgvjcWbb6ZBQOmHFeLmMRKx7JmyTzG8qVpvJKuc5Y,10325
79
+ tests/test_fable_v2.py,sha256=DLb0ZTqobrvhO5fHFZkV8S0WFWimuezg1Mio_8y22KA,18421
80
+ tests/test_fleet_transitions.py,sha256=XS07Wzgv0IsmovQH7XYVjTCvpdlvChb4BLqFzPAxjxQ,4895
81
+ tests/test_fsm_redteam_evolution.py,sha256=TfXwDh5gbLvrzBLJiT4IwJ0FZa_3On8Y1LPURa7_-2E,18663
82
+ tests/test_goal_rubric_and_pipeline.py,sha256=ee0FDHfo19CsNC1qu-YL7Krvfc-BzxbozkCe8lKwZFw,15428
83
+ tests/test_hebbian_plasticity.py,sha256=wTF6_WcD8S13ySewNLdMVrLC8X-xMgX0l_DvzaxN4X8,28428
84
+ tests/test_packaging_runtime.py,sha256=V7O-I6oY_g2XzP4o8A1dhUm9AL8WFjsVnOo5pqA3Q5k,10639
85
+ tests/test_proof_engine.py,sha256=9vz9R5iFL8Ay2XUDEIBOPo3qzueOHN1z2AzG6dAvC2o,9525
86
+ tests/test_red_team_swarm.py,sha256=aKfbg4TRs6CpNhK34MjTmiUJUAR4_CRjhSy6wLJUIoE,27751
87
+ tests/test_redteam_remediation.py,sha256=oSmGgXNrvquD8xwCFZ0AC73P65bZQPHvN_0rSw1qVzI,8731
88
+ tests/test_registration_transaction.py,sha256=Euqrz63jrw4K0VLzC8BIVaCRV33pMJGdor6ugl7aC3Q,18380
89
+ tests/test_requested_regressions.py,sha256=6B3MjL8ejOIWO0XxONMetu4e09iaBis4HTxEbCYMH4U,21253
90
+ tests/test_scrapers.py,sha256=qK0Q0iiQKqYU_SX5OMVz8Z0Q_EajoMdAx7bY4eVxamI,15092
91
+ tests/test_server_actions.py,sha256=2juJOoMFJ6m7NVdvwOO6yAsrJAb7Wx4AUe-6caUap-8,3428
92
+ tests/test_server_frontier_actions.py,sha256=lLbrdEgis0h60dXAPz9udcIvV7Q7MykIYWWiPSWDxkg,10122
93
+ tests/test_server_protocol.py,sha256=l8mk59f_-UZ_x2Y_u_GbwYi6qG89JQ9t6TDJ49EhCOQ,3807
94
+ tests/test_stealth_browser.py,sha256=hHxiFze-pdL3tS4IXbDqX34ieVlxByRgTWQ81Ld-8dU,40817
95
+ tests/test_system3.py,sha256=i2X-pv-tnJFCJjpu-sD3o4NyvCO_7KwkzSgicAJqqBA,15463
96
+ tests/test_system3_deep_integration.py,sha256=y7am2yVXPUfB-L0u21fECAxpHWctlLU4ujs32xL4Knc,15387
97
+ tests/test_system3_frontier.py,sha256=c4nyP0TjYpMScHCB5um_pE7Yw5VSSNjkDswjDdW16iQ,17155
98
+ tests/test_vector_engine.py,sha256=KAvuMbN55ScH8HfjdvQAqMTtJINH-PupKiOthwDgmzY,25431
99
+ fable_engine-1.3.1.dist-info/LICENSE,sha256=cIb-NnMTmxKz3jAqfQu_kRf3Yb_HnZpCkP8EWwuv47A,1083
100
+ fable_engine-1.3.1.dist-info/METADATA,sha256=U1M5oxIzxn0BwFUEttUrnUyxyVgPAxeerHbMQc_v37k,5446
101
+ fable_engine-1.3.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
102
+ fable_engine-1.3.1.dist-info/entry_points.txt,sha256=KiD6kha_pSCcC1Rt00jynLTKEaPCRpiCKZLx9hhpeP0,181
103
+ fable_engine-1.3.1.dist-info/top_level.txt,sha256=ZjYKYCaxGWDLrJ7mwv-cu8A52sICW2B1Dk0dYnwEZxQ,73
104
+ fable_engine-1.3.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ fable-engine = fable_engine.server:main
3
+ fable-mode = fable_mode.launcher:main
4
+ fable-v1 = fable_engine.server:main
5
+ fable-v2-broker = fable_v2.execution_broker:main
@@ -0,0 +1,6 @@
1
+ fable_compressor
2
+ fable_engine
3
+ fable_mode
4
+ fable_mode_entry
5
+ fable_v2
6
+ tests
fable_mode/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """Fable Mode portable runtime and transactional installer."""
2
+
3
+ __version__ = "1.3.0"
fable_mode/__main__.py ADDED
@@ -0,0 +1,4 @@
1
+ from .launcher import main
2
+
3
+ if __name__ == "__main__":
4
+ raise SystemExit(main())