fable-engine 1.3.3__tar.gz → 1.3.4__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 (158) hide show
  1. {fable_engine-1.3.3/fable_engine.egg-info → fable_engine-1.3.4}/PKG-INFO +5 -5
  2. {fable_engine-1.3.3 → fable_engine-1.3.4}/README.md +4 -4
  3. {fable_engine-1.3.3 → fable_engine-1.3.4}/docs/stop-ai-agents-writing-too-early.md +4 -4
  4. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/base.py +1 -1
  5. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/server.py +1 -1
  6. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/session.py +1 -1
  7. {fable_engine-1.3.3 → fable_engine-1.3.4/fable_engine.egg-info}/PKG-INFO +5 -5
  8. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/__init__.py +1 -1
  9. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/manifest.py +1 -0
  10. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/resources.json +1 -0
  11. {fable_engine-1.3.3 → fable_engine-1.3.4}/pyproject.toml +1 -1
  12. {fable_engine-1.3.3 → fable_engine-1.3.4}/setup.py +1 -1
  13. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_packaging_runtime.py +14 -0
  14. {fable_engine-1.3.3 → fable_engine-1.3.4}/LICENSE +0 -0
  15. {fable_engine-1.3.3 → fable_engine-1.3.4}/MANIFEST.in +0 -0
  16. {fable_engine-1.3.3 → fable_engine-1.3.4}/docs/fable-v1-v2-migration.md +0 -0
  17. {fable_engine-1.3.3 → fable_engine-1.3.4}/docs/fable-v2-architecture.md +0 -0
  18. {fable_engine-1.3.3 → fable_engine-1.3.4}/docs/system3-architecture.md +0 -0
  19. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_compressor.py +0 -0
  20. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/__init__.py +0 -0
  21. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/__init__.py +0 -0
  22. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/cas.py +0 -0
  23. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/deliberation.py +0 -0
  24. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/fleet.py +0 -0
  25. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/lifecycle.py +0 -0
  26. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/scrapers.py +0 -0
  27. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/actions/system3.py +0 -0
  28. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/browser.py +0 -0
  29. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/cas.py +0 -0
  30. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/fable_session.json +0 -0
  31. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/guards.py +0 -0
  32. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/schema.py +0 -0
  33. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/__init__.py +0 -0
  34. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/arxiv.py +0 -0
  35. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/github.py +0 -0
  36. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/reddit.py +0 -0
  37. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/web.py +0 -0
  38. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/x.py +0 -0
  39. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/scrapers/youtube.py +0 -0
  40. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/test_server.py +0 -0
  41. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine/updater.py +0 -0
  42. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine.egg-info/SOURCES.txt +0 -0
  43. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine.egg-info/dependency_links.txt +0 -0
  44. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine.egg-info/entry_points.txt +0 -0
  45. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_engine.egg-info/top_level.txt +0 -0
  46. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/__main__.py +0 -0
  47. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/adapters.py +0 -0
  48. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/installer.py +0 -0
  49. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/launcher.py +0 -0
  50. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/safety.py +0 -0
  51. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode/skill_bundle.py +0 -0
  52. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_mode_entry.py +0 -0
  53. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/__init__.py +0 -0
  54. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/adapters.py +0 -0
  55. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/__init__.py +0 -0
  56. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/ast_tools.py +0 -0
  57. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/compute.py +0 -0
  58. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/design_engine.py +0 -0
  59. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/diagnostics.py +0 -0
  60. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/fleet_dispatcher.py +0 -0
  61. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/mock_auditor.py +0 -0
  62. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/mutation.py +0 -0
  63. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/property_oracle.py +0 -0
  64. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/receipt_attestor.py +0 -0
  65. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/red_team_swarm.py +0 -0
  66. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/test_harness.py +0 -0
  67. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/vector_engine.py +0 -0
  68. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/visual.py +0 -0
  69. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/coder_fleet/workspace.py +0 -0
  70. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/cortical/__init__.py +0 -0
  71. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/cortical/plasticity_engine.py +0 -0
  72. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/execution_broker.py +0 -0
  73. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/proof_engine.py +0 -0
  74. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/protocol.py +0 -0
  75. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/runtime.py +0 -0
  76. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/__init__.py +0 -0
  77. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/causal.py +0 -0
  78. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/dialectical.py +0 -0
  79. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/evolution.py +0 -0
  80. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/executive.py +0 -0
  81. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/free_energy.py +0 -0
  82. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/hyperbolic.py +0 -0
  83. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/induction.py +0 -0
  84. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/kripke.py +0 -0
  85. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/system3/oracle.py +0 -0
  86. {fable_engine-1.3.3 → fable_engine-1.3.4}/fable_v2/verifiers.py +0 -0
  87. {fable_engine-1.3.3 → fable_engine-1.3.4}/rules/AGENTS.md +0 -0
  88. {fable_engine-1.3.3 → fable_engine-1.3.4}/rules/GEMINI.md +0 -0
  89. {fable_engine-1.3.3 → fable_engine-1.3.4}/rules/fable-mode.md +0 -0
  90. {fable_engine-1.3.3 → fable_engine-1.3.4}/setup.cfg +0 -0
  91. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/SKILL.md +0 -0
  92. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/concurrency.md +0 -0
  93. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/design_3d.md +0 -0
  94. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/frontend_design.md +0 -0
  95. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/process.md +0 -0
  96. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/python.md +0 -0
  97. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/research.md +0 -0
  98. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/rust.md +0 -0
  99. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/security.md +0 -0
  100. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/synaptic_matrix.json +0 -0
  101. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/system.md +0 -0
  102. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/cortex/target.md +0 -0
  103. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/autonomous-agentic-migration.md +0 -0
  104. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/breakthrough-algorithm-synthesis.md +0 -0
  105. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/deepthink-analysis-proof.md +0 -0
  106. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/distributed-system-design.md +0 -0
  107. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/swe-bench-pro-debugging.md +0 -0
  108. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/examples/weak_model_ollama_setup.md +0 -0
  109. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/aaa-threejs-game-engine.md +0 -0
  110. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/adversarial-code-review-swarm.md +0 -0
  111. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/agentic-execution.md +0 -0
  112. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/anti-slop-frontend-architecture.md +0 -0
  113. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/architectural-blueprinting.md +0 -0
  114. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/cinematic-design-engine.md +0 -0
  115. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/cognitive-protocol.md +0 -0
  116. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/deepthink-mode.md +0 -0
  117. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/design-tokens-and-typographies.md +0 -0
  118. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/goal-rubric-and-pipeline-automation.md +0 -0
  119. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/hebbian-cortical-plasticity.md +0 -0
  120. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/innovation-engine.md +0 -0
  121. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/interleaved-verification.md +0 -0
  122. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/model-velocity-calibration.md +0 -0
  123. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/prompt-scaffolds.md +0 -0
  124. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/proof-architecture.md +0 -0
  125. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/svg-craft-and-vector-design.md +0 -0
  126. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/system2-session-engine.md +0 -0
  127. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/system3-meta-cognition.md +0 -0
  128. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/visual-imagination-engine.md +0 -0
  129. {fable_engine-1.3.3 → fable_engine-1.3.4}/skills/fable-mode/references/weak-model-frontier-uplift.md +0 -0
  130. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/__init__.py +0 -0
  131. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_anti_loop_circuit_breaker.py +0 -0
  132. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_auto_updater.py +0 -0
  133. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_coder_fleet.py +0 -0
  134. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_delegation_compiler.py +0 -0
  135. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_descriptor_boundaries.py +0 -0
  136. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_design_engine.py +0 -0
  137. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_epistemic_evidence_validator.py +0 -0
  138. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_execution_broker.py +0 -0
  139. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_fable_v2.py +0 -0
  140. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_fleet_transitions.py +0 -0
  141. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_fsm_redteam_evolution.py +0 -0
  142. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_goal_rubric_and_pipeline.py +0 -0
  143. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_hebbian_plasticity.py +0 -0
  144. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_proof_engine.py +0 -0
  145. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_red_team_swarm.py +0 -0
  146. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_redteam_remediation.py +0 -0
  147. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_registration_transaction.py +0 -0
  148. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_requested_regressions.py +0 -0
  149. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_scrapers.py +0 -0
  150. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_server_actions.py +0 -0
  151. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_server_frontier_actions.py +0 -0
  152. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_server_protocol.py +0 -0
  153. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_skill_distribution.py +0 -0
  154. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_stealth_browser.py +0 -0
  155. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_system3.py +0 -0
  156. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_system3_deep_integration.py +0 -0
  157. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_system3_frontier.py +0 -0
  158. {fable_engine-1.3.3 → fable_engine-1.3.4}/tests/test_vector_engine.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: fable-engine
3
- Version: 1.3.3
3
+ Version: 1.3.4
4
4
  Summary: Independent deterministic System 2 cognitive engine and mechanical time-lock MCP server
5
5
  Author: REX-codebase
6
6
  License: MIT License
@@ -116,7 +116,7 @@ pip install fable-engine
116
116
 
117
117
  Or install the MCP server in your editor:
118
118
 
119
- [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.3%22%2C%22fable-engine%22%5D%7D)
119
+ [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.4%22%2C%22fable-engine%22%5D%7D)
120
120
  [![Add to Cursor](https://img.shields.io/badge/Cursor-Add_MCP_server-black)](cursor://anysphere.cursor-deeplink/mcp/install?name=fable-engine&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJmYWJsZS1lbmdpbmU9PTEuMy4zIiwiZmFibGUtZW5naW5lIl19)
121
121
 
122
122
  These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They do not install a standalone editor extension. Both use `uvx`, which downloads and runs the pinned PyPI release in an isolated environment.
@@ -124,13 +124,13 @@ These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They
124
124
  Point your agent at the MCP server manually:
125
125
 
126
126
  ```jsonc
127
- // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.3 fable-engine
127
+ // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.4 fable-engine
128
128
  // Cursor: ~/.cursor/mcp.json
129
129
  {
130
130
  "mcpServers": {
131
131
  "fable-engine": {
132
132
  "command": "uvx",
133
- "args": ["--from", "fable-engine==1.3.3", "fable-engine"]
133
+ "args": ["--from", "fable-engine==1.3.4", "fable-engine"]
134
134
  }
135
135
  }
136
136
  }
@@ -152,7 +152,7 @@ The complete skill tree ships inside the wheel. To install it into your
152
152
  project's skills directory (the cross-client `.agents/skills/` convention):
153
153
 
154
154
  ```bash
155
- uvx --from fable-engine==1.3.3 fable-mode install-skill --yes
155
+ uvx --from fable-engine==1.3.4 fable-mode install-skill --yes
156
156
  ```
157
157
 
158
158
  This copies the skill to `.agents/skills/fable-mode`. Preview first with
@@ -73,7 +73,7 @@ pip install fable-engine
73
73
 
74
74
  Or install the MCP server in your editor:
75
75
 
76
- [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.3%22%2C%22fable-engine%22%5D%7D)
76
+ [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.4%22%2C%22fable-engine%22%5D%7D)
77
77
  [![Add to Cursor](https://img.shields.io/badge/Cursor-Add_MCP_server-black)](cursor://anysphere.cursor-deeplink/mcp/install?name=fable-engine&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJmYWJsZS1lbmdpbmU9PTEuMy4zIiwiZmFibGUtZW5naW5lIl19)
78
78
 
79
79
  These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They do not install a standalone editor extension. Both use `uvx`, which downloads and runs the pinned PyPI release in an isolated environment.
@@ -81,13 +81,13 @@ These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They
81
81
  Point your agent at the MCP server manually:
82
82
 
83
83
  ```jsonc
84
- // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.3 fable-engine
84
+ // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.4 fable-engine
85
85
  // Cursor: ~/.cursor/mcp.json
86
86
  {
87
87
  "mcpServers": {
88
88
  "fable-engine": {
89
89
  "command": "uvx",
90
- "args": ["--from", "fable-engine==1.3.3", "fable-engine"]
90
+ "args": ["--from", "fable-engine==1.3.4", "fable-engine"]
91
91
  }
92
92
  }
93
93
  }
@@ -109,7 +109,7 @@ The complete skill tree ships inside the wheel. To install it into your
109
109
  project's skills directory (the cross-client `.agents/skills/` convention):
110
110
 
111
111
  ```bash
112
- uvx --from fable-engine==1.3.3 fable-mode install-skill --yes
112
+ uvx --from fable-engine==1.3.4 fable-mode install-skill --yes
113
113
  ```
114
114
 
115
115
  This copies the skill to `.agents/skills/fable-mode`. Preview first with
@@ -18,13 +18,13 @@ Fable Mode separates research from authority. A session begins with execution lo
18
18
  Install [uv](https://docs.astral.sh/uv/getting-started/installation/) so your MCP client can run the package without changing your global Python environment.
19
19
 
20
20
  ```bash
21
- uvx --from fable-engine==1.3.3 fable-engine
21
+ uvx --from fable-engine==1.3.4 fable-engine
22
22
  ```
23
23
 
24
24
  For Claude Code:
25
25
 
26
26
  ```bash
27
- claude mcp add fable-engine -- uvx --from fable-engine==1.3.3 fable-engine
27
+ claude mcp add fable-engine -- uvx --from fable-engine==1.3.4 fable-engine
28
28
  ```
29
29
 
30
30
  For an MCP client that uses JSON configuration:
@@ -34,7 +34,7 @@ For an MCP client that uses JSON configuration:
34
34
  "mcpServers": {
35
35
  "fable-engine": {
36
36
  "command": "uvx",
37
- "args": ["--from", "fable-engine==1.3.3", "fable-engine"]
37
+ "args": ["--from", "fable-engine==1.3.4", "fable-engine"]
38
38
  }
39
39
  }
40
40
  }
@@ -68,7 +68,7 @@ It is not a guarantee of correct code. It makes the path to write access explici
68
68
  The package has no runtime dependencies. You can confirm the pinned release and inspect its MCP initialization response in an isolated environment before adding it to an editor or agent:
69
69
 
70
70
  ```bash
71
- uvx --from fable-engine==1.3.3 fable-engine
71
+ uvx --from fable-engine==1.3.4 fable-engine
72
72
  ```
73
73
 
74
74
  The server communicates over standard input and output. MCP clients start and manage that process for you after configuration.
@@ -25,7 +25,7 @@ from typing import Any, Dict, List, Optional, Tuple
25
25
 
26
26
  logger = logging.getLogger("fable-engine.scrapers.base")
27
27
 
28
- USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 FableResearch/1.3.3"
28
+ USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 FableResearch/1.3.4"
29
29
 
30
30
  MAX_RETRY_DELAY_SECONDS = 10.0
31
31
 
@@ -237,7 +237,7 @@ def main():
237
237
  },
238
238
  "serverInfo": {
239
239
  "name": "fable-engine",
240
- "version": "1.3.3"
240
+ "version": "1.3.4"
241
241
  }
242
242
  }
243
243
  })
@@ -1530,7 +1530,7 @@ class FableSession:
1530
1530
  def to_dict(self) -> Dict[str, Any]:
1531
1531
  """Serializes session to dictionary."""
1532
1532
  return {
1533
- "version": "1.3.3",
1533
+ "version": "1.3.4",
1534
1534
  "session_name": self.session_name,
1535
1535
  "session_id": self.session_id,
1536
1536
  "objective": self.objective,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: fable-engine
3
- Version: 1.3.3
3
+ Version: 1.3.4
4
4
  Summary: Independent deterministic System 2 cognitive engine and mechanical time-lock MCP server
5
5
  Author: REX-codebase
6
6
  License: MIT License
@@ -116,7 +116,7 @@ pip install fable-engine
116
116
 
117
117
  Or install the MCP server in your editor:
118
118
 
119
- [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.3%22%2C%22fable-engine%22%5D%7D)
119
+ [![Install MCP server in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_server-007ACC?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22fable-engine%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22fable-engine%3D%3D1.3.4%22%2C%22fable-engine%22%5D%7D)
120
120
  [![Add to Cursor](https://img.shields.io/badge/Cursor-Add_MCP_server-black)](cursor://anysphere.cursor-deeplink/mcp/install?name=fable-engine&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJmYWJsZS1lbmdpbmU9PTEuMy4zIiwiZmFibGUtZW5naW5lIl19)
121
121
 
122
122
  These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They do not install a standalone editor extension. Both use `uvx`, which downloads and runs the pinned PyPI release in an isolated environment.
@@ -124,13 +124,13 @@ These links configure Fable Engine for AI agents in VS Code Chat or Cursor. They
124
124
  Point your agent at the MCP server manually:
125
125
 
126
126
  ```jsonc
127
- // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.3 fable-engine
127
+ // Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.4 fable-engine
128
128
  // Cursor: ~/.cursor/mcp.json
129
129
  {
130
130
  "mcpServers": {
131
131
  "fable-engine": {
132
132
  "command": "uvx",
133
- "args": ["--from", "fable-engine==1.3.3", "fable-engine"]
133
+ "args": ["--from", "fable-engine==1.3.4", "fable-engine"]
134
134
  }
135
135
  }
136
136
  }
@@ -152,7 +152,7 @@ The complete skill tree ships inside the wheel. To install it into your
152
152
  project's skills directory (the cross-client `.agents/skills/` convention):
153
153
 
154
154
  ```bash
155
- uvx --from fable-engine==1.3.3 fable-mode install-skill --yes
155
+ uvx --from fable-engine==1.3.4 fable-mode install-skill --yes
156
156
  ```
157
157
 
158
158
  This copies the skill to `.agents/skills/fable-mode`. Preview first with
@@ -1,3 +1,3 @@
1
1
  """Fable Mode portable runtime and transactional installer."""
2
2
 
3
- __version__ = "1.3.3"
3
+ __version__ = "1.3.4"
@@ -15,6 +15,7 @@ ALLOWED_FILES: tuple[str, ...] = (
15
15
  "fable_mode/launcher.py",
16
16
  "fable_mode/manifest.py",
17
17
  "fable_mode/safety.py",
18
+ "fable_mode/skill_bundle.py",
18
19
  "fable_mode/resources.json",
19
20
  "fable_engine/__init__.py",
20
21
  "fable_engine/browser.py",
@@ -8,6 +8,7 @@
8
8
  "fable_mode/launcher.py",
9
9
  "fable_mode/manifest.py",
10
10
  "fable_mode/safety.py",
11
+ "fable_mode/skill_bundle.py",
11
12
  "fable_mode/resources.json",
12
13
  "fable_engine/__init__.py",
13
14
  "fable_engine/browser.py",
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fable-engine"
7
- version = "1.3.3"
7
+ version = "1.3.4"
8
8
  description = "Independent deterministic System 2 cognitive engine and mechanical time-lock MCP server"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "REX-codebase" }]
@@ -40,7 +40,7 @@ class build_py(_build_py):
40
40
 
41
41
  setup(
42
42
  name="fable-engine",
43
- version="1.3.3",
43
+ version="1.3.4",
44
44
  description="Independent deterministic System 2 cognitive engine and mechanical time-lock MCP server",
45
45
  long_description=README,
46
46
  long_description_content_type="text/markdown",
@@ -113,6 +113,20 @@ class PackagingSecurityTests(unittest.TestCase):
113
113
  def test_frozen_like_mcp_smoke(self):
114
114
  result = Installer(self.root / "i").install(); result.transaction.commit()
115
115
  self.assertEqual(result.executable_argv[-1], "serve")
116
+ copied_runtime = result.install_dir / "runtime"
117
+ self.assertTrue(
118
+ (copied_runtime / "fable_mode" / "skill_bundle.py").is_file(),
119
+ "portable install omitted a module imported by fable_mode.launcher",
120
+ )
121
+ probe = subprocess.run(
122
+ result.executable_argv[:-1] + ["--version"],
123
+ cwd=self.root,
124
+ capture_output=True,
125
+ text=True,
126
+ env={**os.environ, "PYTHONPATH": "", "FABLE_DISABLE_AUTO_UPDATE": "1"},
127
+ )
128
+ self.assertEqual(probe.returncode, 0, probe.stderr)
129
+ self.assertEqual(probe.stdout.strip(), __version__)
116
130
  smoke_ok, smoke_detail = _smoke(result.executable_argv, self.root / "data")
117
131
  self.assertTrue(smoke_ok, smoke_detail)
118
132
 
File without changes
File without changes
File without changes