tactus 0.31.0__tar.gz → 0.31.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.
Files changed (593) hide show
  1. {tactus-0.31.0 → tactus-0.31.2}/.github/workflows/release.yml +11 -5
  2. {tactus-0.31.0 → tactus-0.31.2}/CHANGELOG.md +16 -0
  3. {tactus-0.31.0 → tactus-0.31.2}/PKG-INFO +1 -1
  4. {tactus-0.31.0 → tactus-0.31.2}/pyproject.toml +1 -1
  5. {tactus-0.31.0 → tactus-0.31.2}/tactus/__init__.py +1 -1
  6. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/backend/tactus_backend.spec +5 -0
  7. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/package-lock.json +48 -16
  8. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/package.json +1 -1
  9. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/package-lock.json +166 -25
  10. {tactus-0.31.0 → tactus-0.31.2}/.claude/agents.md +0 -0
  11. {tactus-0.31.0 → tactus-0.31.2}/.gitignore +0 -0
  12. {tactus-0.31.0 → tactus-0.31.2}/.tactus/config.yml.example +0 -0
  13. {tactus-0.31.0 → tactus-0.31.2}/AGENTS.md +0 -0
  14. {tactus-0.31.0 → tactus-0.31.2}/IMPLEMENTATION.md +0 -0
  15. {tactus-0.31.0 → tactus-0.31.2}/LICENSE +0 -0
  16. {tactus-0.31.0 → tactus-0.31.2}/Makefile +0 -0
  17. {tactus-0.31.0 → tactus-0.31.2}/README.md +0 -0
  18. {tactus-0.31.0 → tactus-0.31.2}/SPECIFICATION.md +0 -0
  19. {tactus-0.31.0 → tactus-0.31.2}/TECHNICAL_DEBT.md +0 -0
  20. {tactus-0.31.0 → tactus-0.31.2}/behave.ini +0 -0
  21. {tactus-0.31.0 → tactus-0.31.2}/docs/AGENTS.md +0 -0
  22. {tactus-0.31.0 → tactus-0.31.2}/docs/BDD_TESTING.md +0 -0
  23. {tactus-0.31.0 → tactus-0.31.2}/docs/CONFIGURATION.md +0 -0
  24. {tactus-0.31.0 → tactus-0.31.2}/docs/DURABILITY.md +0 -0
  25. {tactus-0.31.0 → tactus-0.31.2}/docs/FILE_IO.md +0 -0
  26. {tactus-0.31.0 → tactus-0.31.2}/docs/SANDBOXING.md +0 -0
  27. {tactus-0.31.0 → tactus-0.31.2}/docs/STREAMING.md +0 -0
  28. {tactus-0.31.0 → tactus-0.31.2}/docs/TOOLS.md +0 -0
  29. {tactus-0.31.0 → tactus-0.31.2}/docs/TOOL_ROADMAP.md +0 -0
  30. {tactus-0.31.0 → tactus-0.31.2}/docs/development-mode.md +0 -0
  31. {tactus-0.31.0 → tactus-0.31.2}/examples/.tactus/config.yml +0 -0
  32. {tactus-0.31.0 → tactus-0.31.2}/examples/01-basics-hello-world.tac +0 -0
  33. {tactus-0.31.0 → tactus-0.31.2}/examples/02-basics-simple-logic.tac +0 -0
  34. {tactus-0.31.0 → tactus-0.31.2}/examples/03-basics-parameters.tac +0 -0
  35. {tactus-0.31.0 → tactus-0.31.2}/examples/04-basics-simple-agent.tac +0 -0
  36. {tactus-0.31.0 → tactus-0.31.2}/examples/05-basics-multi-model.tac +0 -0
  37. {tactus-0.31.0 → tactus-0.31.2}/examples/06-basics-streaming.tac +0 -0
  38. {tactus-0.31.0 → tactus-0.31.2}/examples/07-basics-bedrock.tac +0 -0
  39. {tactus-0.31.0 → tactus-0.31.2}/examples/08-basics-models.tac +0 -0
  40. {tactus-0.31.0 → tactus-0.31.2}/examples/09-basics-google-gemini.tac +0 -0
  41. {tactus-0.31.0 → tactus-0.31.2}/examples/10-feature-state.tac +0 -0
  42. {tactus-0.31.0 → tactus-0.31.2}/examples/11-feature-message-history.tac +0 -0
  43. {tactus-0.31.0 → tactus-0.31.2}/examples/12-feature-structured-output.tac +0 -0
  44. {tactus-0.31.0 → tactus-0.31.2}/examples/13-feature-session.tac +0 -0
  45. {tactus-0.31.0 → tactus-0.31.2}/examples/14-feature-per-turn-tools-simple.tac +0 -0
  46. {tactus-0.31.0 → tactus-0.31.2}/examples/14-feature-per-turn-tools.tac +0 -0
  47. {tactus-0.31.0 → tactus-0.31.2}/examples/15-feature-local-tools.tac +0 -0
  48. {tactus-0.31.0 → tactus-0.31.2}/examples/16-feature-toolsets-advanced.tac +0 -0
  49. {tactus-0.31.0 → tactus-0.31.2}/examples/17-feature-toolsets-dsl.tac +0 -0
  50. {tactus-0.31.0 → tactus-0.31.2}/examples/18-feature-lua-tools-individual.tac +0 -0
  51. {tactus-0.31.0 → tactus-0.31.2}/examples/18-feature-lua-tools-inline.tac +0 -0
  52. {tactus-0.31.0 → tactus-0.31.2}/examples/18-feature-lua-tools-toolset.tac +0 -0
  53. {tactus-0.31.0 → tactus-0.31.2}/examples/19-feature-direct-tool-calls.tac +0 -0
  54. {tactus-0.31.0 → tactus-0.31.2}/examples/20-bdd-complete.tac +0 -0
  55. {tactus-0.31.0 → tactus-0.31.2}/examples/21-bdd-passing.tac +0 -0
  56. {tactus-0.31.0 → tactus-0.31.2}/examples/22-bdd-fuzzy-matching.tac +0 -0
  57. {tactus-0.31.0 → tactus-0.31.2}/examples/30-eval-simple.tac +0 -0
  58. {tactus-0.31.0 → tactus-0.31.2}/examples/31-eval-demo.tac +0 -0
  59. {tactus-0.31.0 → tactus-0.31.2}/examples/32-eval-success-rate.tac +0 -0
  60. {tactus-0.31.0 → tactus-0.31.2}/examples/33-eval-thresholds.tac +0 -0
  61. {tactus-0.31.0 → tactus-0.31.2}/examples/34-eval-dataset.jsonl +0 -0
  62. {tactus-0.31.0 → tactus-0.31.2}/examples/34-eval-dataset.tac +0 -0
  63. {tactus-0.31.0 → tactus-0.31.2}/examples/35-eval-trace.tac +0 -0
  64. {tactus-0.31.0 → tactus-0.31.2}/examples/36-eval-advanced.tac +0 -0
  65. {tactus-0.31.0 → tactus-0.31.2}/examples/37-eval-comprehensive.tac +0 -0
  66. {tactus-0.31.0 → tactus-0.31.2}/examples/39-model-simple.tac +0 -0
  67. {tactus-0.31.0 → tactus-0.31.2}/examples/40-mcp-test.tac +0 -0
  68. {tactus-0.31.0 → tactus-0.31.2}/examples/40-model-text-classifier.tac +0 -0
  69. {tactus-0.31.0 → tactus-0.31.2}/examples/41-mcp-simple.tac +0 -0
  70. {tactus-0.31.0 → tactus-0.31.2}/examples/41-model-pytorch.tac +0 -0
  71. {tactus-0.31.0 → tactus-0.31.2}/examples/43-sub-procedure-simple.tac +0 -0
  72. {tactus-0.31.0 → tactus-0.31.2}/examples/44-sub-procedure-composition.tac +0 -0
  73. {tactus-0.31.0 → tactus-0.31.2}/examples/45-sub-procedure-recursive.tac +0 -0
  74. {tactus-0.31.0 → tactus-0.31.2}/examples/46-checkpoint-explicit.tac +0 -0
  75. {tactus-0.31.0 → tactus-0.31.2}/examples/47-checkpoint-expensive-ops.tac +0 -0
  76. {tactus-0.31.0 → tactus-0.31.2}/examples/48-script-mode-simple.tac +0 -0
  77. {tactus-0.31.0 → tactus-0.31.2}/examples/50-inputs-showcase.tac +0 -0
  78. {tactus-0.31.0 → tactus-0.31.2}/examples/51-inputs-calculator.tac +0 -0
  79. {tactus-0.31.0 → tactus-0.31.2}/examples/52-file-io-basics.tac +0 -0
  80. {tactus-0.31.0 → tactus-0.31.2}/examples/53-tsv-file-io.tac +0 -0
  81. {tactus-0.31.0 → tactus-0.31.2}/examples/54-json-file-io.tac +0 -0
  82. {tactus-0.31.0 → tactus-0.31.2}/examples/55-parquet-file-io.tac +0 -0
  83. {tactus-0.31.0 → tactus-0.31.2}/examples/56-hdf5-file-io.tac +0 -0
  84. {tactus-0.31.0 → tactus-0.31.2}/examples/57-excel-file-io.tac +0 -0
  85. {tactus-0.31.0 → tactus-0.31.2}/examples/58-text-file-io.tac +0 -0
  86. {tactus-0.31.0 → tactus-0.31.2}/examples/60-tool-sources.tac +0 -0
  87. {tactus-0.31.0 → tactus-0.31.2}/examples/61-inline-toolset-lua.tac +0 -0
  88. {tactus-0.31.0 → tactus-0.31.2}/examples/62-mcp-toolset-by-server.tac +0 -0
  89. {tactus-0.31.0 → tactus-0.31.2}/examples/63-toolset-import-from-file.tac +0 -0
  90. {tactus-0.31.0 → tactus-0.31.2}/examples/64-require-modules.tac +0 -0
  91. {tactus-0.31.0 → tactus-0.31.2}/examples/65-optional-state-demo.tac +0 -0
  92. {tactus-0.31.0 → tactus-0.31.2}/examples/66-host-tools-via-broker.tac +0 -0
  93. {tactus-0.31.0 → tactus-0.31.2}/examples/67-host-tool-source.tac +0 -0
  94. {tactus-0.31.0 → tactus-0.31.2}/examples/70-mocking-static.tac +0 -0
  95. {tactus-0.31.0 → tactus-0.31.2}/examples/71-mocking-temporal.tac +0 -0
  96. {tactus-0.31.0 → tactus-0.31.2}/examples/72-mocking-conditional.tac +0 -0
  97. {tactus-0.31.0 → tactus-0.31.2}/examples/99-misc-test-loading.tac +0 -0
  98. {tactus-0.31.0 → tactus-0.31.2}/examples/README.md +0 -0
  99. {tactus-0.31.0 → tactus-0.31.2}/examples/app_config.ini +0 -0
  100. {tactus-0.31.0 → tactus-0.31.2}/examples/data/sample.csv +0 -0
  101. {tactus-0.31.0 → tactus-0.31.2}/examples/demo_output.json +0 -0
  102. {tactus-0.31.0 → tactus-0.31.2}/examples/helpers/math_module.tac +0 -0
  103. {tactus-0.31.0 → tactus-0.31.2}/examples/helpers/product.tac +0 -0
  104. {tactus-0.31.0 → tactus-0.31.2}/examples/helpers/string_module.tac +0 -0
  105. {tactus-0.31.0 → tactus-0.31.2}/examples/helpers/sum.tac +0 -0
  106. {tactus-0.31.0 → tactus-0.31.2}/examples/helpers/text_tools.tac +0 -0
  107. {tactus-0.31.0 → tactus-0.31.2}/examples/inventory_summary.tsv +0 -0
  108. {tactus-0.31.0 → tactus-0.31.2}/examples/mock-config.json +0 -0
  109. {tactus-0.31.0 → tactus-0.31.2}/examples/models/README.md +0 -0
  110. {tactus-0.31.0 → tactus-0.31.2}/examples/models/create_sentiment_model.py +0 -0
  111. {tactus-0.31.0 → tactus-0.31.2}/examples/output_summary.txt +0 -0
  112. {tactus-0.31.0 → tactus-0.31.2}/examples/test-raw-module.tac +0 -0
  113. {tactus-0.31.0 → tactus-0.31.2}/examples/test-raw-streaming.tac +0 -0
  114. {tactus-0.31.0 → tactus-0.31.2}/examples/tools/calculations.py +0 -0
  115. {tactus-0.31.0 → tactus-0.31.2}/examples/tools/data_analysis.py +0 -0
  116. {tactus-0.31.0 → tactus-0.31.2}/examples/tools/search.py +0 -0
  117. {tactus-0.31.0 → tactus-0.31.2}/examples/with_dependencies/README.md +0 -0
  118. {tactus-0.31.0 → tactus-0.31.2}/examples/with_dependencies/simple_http_test.tac +0 -0
  119. {tactus-0.31.0 → tactus-0.31.2}/examples/with_dependencies/time_lookup.tac +0 -0
  120. {tactus-0.31.0 → tactus-0.31.2}/features/01_state_management.feature +0 -0
  121. {tactus-0.31.0 → tactus-0.31.2}/features/02_checkpointing.feature +0 -0
  122. {tactus-0.31.0 → tactus-0.31.2}/features/03_human_in_the_loop.feature +0 -0
  123. {tactus-0.31.0 → tactus-0.31.2}/features/04_control_flow.feature +0 -0
  124. {tactus-0.31.0 → tactus-0.31.2}/features/05_tool_integration.feature +0 -0
  125. {tactus-0.31.0 → tactus-0.31.2}/features/06_retry_logic.feature +0 -0
  126. {tactus-0.31.0 → tactus-0.31.2}/features/07_file_operations.feature +0 -0
  127. {tactus-0.31.0 → tactus-0.31.2}/features/08_agent_primitives.feature +0 -0
  128. {tactus-0.31.0 → tactus-0.31.2}/features/09_workflow_execution.feature +0 -0
  129. {tactus-0.31.0 → tactus-0.31.2}/features/10_lua_integration.feature +0 -0
  130. {tactus-0.31.0 → tactus-0.31.2}/features/11_storage_backends.feature +0 -0
  131. {tactus-0.31.0 → tactus-0.31.2}/features/12_json_operations.feature +0 -0
  132. {tactus-0.31.0 → tactus-0.31.2}/features/13_logging.feature +0 -0
  133. {tactus-0.31.0 → tactus-0.31.2}/features/15_procedure_calls.feature +0 -0
  134. {tactus-0.31.0 → tactus-0.31.2}/features/16_session_management.feature +0 -0
  135. {tactus-0.31.0 → tactus-0.31.2}/features/17_lua_dsl_validation.feature +0 -0
  136. {tactus-0.31.0 → tactus-0.31.2}/features/18_example_procedures.feature +0 -0
  137. {tactus-0.31.0 → tactus-0.31.2}/features/19_ide_server.feature +0 -0
  138. {tactus-0.31.0 → tactus-0.31.2}/features/20_parameters.feature +0 -0
  139. {tactus-0.31.0 → tactus-0.31.2}/features/21_outputs.feature +0 -0
  140. {tactus-0.31.0 → tactus-0.31.2}/features/23_prompts.feature +0 -0
  141. {tactus-0.31.0 → tactus-0.31.2}/features/24_bdd_specifications.feature +0 -0
  142. {tactus-0.31.0 → tactus-0.31.2}/features/25_bdd_custom_steps.feature +0 -0
  143. {tactus-0.31.0 → tactus-0.31.2}/features/26_bdd_evaluation.feature +0 -0
  144. {tactus-0.31.0 → tactus-0.31.2}/features/27_default_settings.feature +0 -0
  145. {tactus-0.31.0 → tactus-0.31.2}/features/28_custom_prompts.feature +0 -0
  146. {tactus-0.31.0 → tactus-0.31.2}/features/29_execution_settings.feature +0 -0
  147. {tactus-0.31.0 → tactus-0.31.2}/features/30_session_filters.feature +0 -0
  148. {tactus-0.31.0 → tactus-0.31.2}/features/31_matchers.feature +0 -0
  149. {tactus-0.31.0 → tactus-0.31.2}/features/32_result_object.feature +0 -0
  150. {tactus-0.31.0 → tactus-0.31.2}/features/33_output_type.feature +0 -0
  151. {tactus-0.31.0 → tactus-0.31.2}/features/42_model_primitive.feature +0 -0
  152. {tactus-0.31.0 → tactus-0.31.2}/features/43_sub_procedure_checkpointing.feature +0 -0
  153. {tactus-0.31.0 → tactus-0.31.2}/features/46_explicit_checkpoint.feature +0 -0
  154. {tactus-0.31.0 → tactus-0.31.2}/features/48_script_mode.feature +0 -0
  155. {tactus-0.31.0 → tactus-0.31.2}/features/51_dspy_lm_config.feature +0 -0
  156. {tactus-0.31.0 → tactus-0.31.2}/features/52_dspy_signature.feature +0 -0
  157. {tactus-0.31.0 → tactus-0.31.2}/features/53_dspy_module.feature +0 -0
  158. {tactus-0.31.0 → tactus-0.31.2}/features/54_dspy_history.feature +0 -0
  159. {tactus-0.31.0 → tactus-0.31.2}/features/55_dspy_prediction.feature +0 -0
  160. {tactus-0.31.0 → tactus-0.31.2}/features/56_dspy_agent.feature +0 -0
  161. {tactus-0.31.0 → tactus-0.31.2}/features/57_chat_assistant.feature +0 -0
  162. {tactus-0.31.0 → tactus-0.31.2}/features/60_formatting.feature +0 -0
  163. {tactus-0.31.0 → tactus-0.31.2}/features/documentation/IDE_SERVER_BEHAVIOR.md +0 -0
  164. {tactus-0.31.0 → tactus-0.31.2}/features/documentation/Lua DSL/README.md +0 -0
  165. {tactus-0.31.0 → tactus-0.31.2}/features/environment.py +0 -0
  166. {tactus-0.31.0 → tactus-0.31.2}/features/steps/agent_primitives_steps.py +0 -0
  167. {tactus-0.31.0 → tactus-0.31.2}/features/steps/chat_assistant_steps.py +0 -0
  168. {tactus-0.31.0 → tactus-0.31.2}/features/steps/checkpointing_steps.py +0 -0
  169. {tactus-0.31.0 → tactus-0.31.2}/features/steps/control_flow_steps.py +0 -0
  170. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_agent_steps.py +0 -0
  171. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_history_steps.py +0 -0
  172. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_lm_steps.py +0 -0
  173. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_module_steps.py +0 -0
  174. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_prediction_steps.py +0 -0
  175. {tactus-0.31.0 → tactus-0.31.2}/features/steps/dspy_signature_steps.py +0 -0
  176. {tactus-0.31.0 → tactus-0.31.2}/features/steps/example_procedures_steps.py +0 -0
  177. {tactus-0.31.0 → tactus-0.31.2}/features/steps/file_operations_steps.py +0 -0
  178. {tactus-0.31.0 → tactus-0.31.2}/features/steps/formatting_steps.py +0 -0
  179. {tactus-0.31.0 → tactus-0.31.2}/features/steps/human_in_the_loop_steps.py +0 -0
  180. {tactus-0.31.0 → tactus-0.31.2}/features/steps/ide_server_steps.py +0 -0
  181. {tactus-0.31.0 → tactus-0.31.2}/features/steps/json_operations_steps.py +0 -0
  182. {tactus-0.31.0 → tactus-0.31.2}/features/steps/logging_steps.py +0 -0
  183. {tactus-0.31.0 → tactus-0.31.2}/features/steps/lua_dsl_validation_steps.py +0 -0
  184. {tactus-0.31.0 → tactus-0.31.2}/features/steps/lua_integration_steps.py +0 -0
  185. {tactus-0.31.0 → tactus-0.31.2}/features/steps/mocking_steps.py +0 -0
  186. {tactus-0.31.0 → tactus-0.31.2}/features/steps/procedure_calls_steps.py +0 -0
  187. {tactus-0.31.0 → tactus-0.31.2}/features/steps/result_and_output_steps.py +0 -0
  188. {tactus-0.31.0 → tactus-0.31.2}/features/steps/retry_logic_steps.py +0 -0
  189. {tactus-0.31.0 → tactus-0.31.2}/features/steps/session_management_steps.py +0 -0
  190. {tactus-0.31.0 → tactus-0.31.2}/features/steps/state_management_steps.py +0 -0
  191. {tactus-0.31.0 → tactus-0.31.2}/features/steps/storage_backend_steps.py +0 -0
  192. {tactus-0.31.0 → tactus-0.31.2}/features/steps/support/__init__.py +0 -0
  193. {tactus-0.31.0 → tactus-0.31.2}/features/steps/support/harnesses.py +0 -0
  194. {tactus-0.31.0 → tactus-0.31.2}/features/steps/tool_integration_steps.py +0 -0
  195. {tactus-0.31.0 → tactus-0.31.2}/features/steps/workflow_execution_steps.py +0 -0
  196. {tactus-0.31.0 → tactus-0.31.2}/planning/BROKER_AND_TOOL_RUNNERS.md +0 -0
  197. {tactus-0.31.0 → tactus-0.31.2}/planning/FORMATTER.md +0 -0
  198. {tactus-0.31.0 → tactus-0.31.2}/scripts/audit_examples_mocking.py +0 -0
  199. {tactus-0.31.0 → tactus-0.31.2}/scripts/convert_examples.py +0 -0
  200. {tactus-0.31.0 → tactus-0.31.2}/scripts/run_precommit_suite.sh +0 -0
  201. {tactus-0.31.0 → tactus-0.31.2}/scripts/timeout.py +0 -0
  202. {tactus-0.31.0 → tactus-0.31.2}/start-web-ide.sh +0 -0
  203. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/__init__.py +0 -0
  204. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/broker_log.py +0 -0
  205. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/cli_hitl.py +0 -0
  206. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/cli_log.py +0 -0
  207. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/cost_collector_log.py +0 -0
  208. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/file_storage.py +0 -0
  209. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/http_callback_log.py +0 -0
  210. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/ide_log.py +0 -0
  211. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/lua_tools.py +0 -0
  212. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/mcp.py +0 -0
  213. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/mcp_manager.py +0 -0
  214. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/memory.py +0 -0
  215. {tactus-0.31.0 → tactus-0.31.2}/tactus/adapters/plugins.py +0 -0
  216. {tactus-0.31.0 → tactus-0.31.2}/tactus/backends/http_backend.py +0 -0
  217. {tactus-0.31.0 → tactus-0.31.2}/tactus/backends/model_backend.py +0 -0
  218. {tactus-0.31.0 → tactus-0.31.2}/tactus/backends/pytorch_backend.py +0 -0
  219. {tactus-0.31.0 → tactus-0.31.2}/tactus/broker/__init__.py +0 -0
  220. {tactus-0.31.0 → tactus-0.31.2}/tactus/broker/client.py +0 -0
  221. {tactus-0.31.0 → tactus-0.31.2}/tactus/broker/protocol.py +0 -0
  222. {tactus-0.31.0 → tactus-0.31.2}/tactus/broker/server.py +0 -0
  223. {tactus-0.31.0 → tactus-0.31.2}/tactus/broker/stdio.py +0 -0
  224. {tactus-0.31.0 → tactus-0.31.2}/tactus/cli/__init__.py +0 -0
  225. {tactus-0.31.0 → tactus-0.31.2}/tactus/cli/app.py +0 -0
  226. {tactus-0.31.0 → tactus-0.31.2}/tactus/cli/commands/__init__.py +0 -0
  227. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/__init__.py +0 -0
  228. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/config_manager.py +0 -0
  229. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/dependencies/__init__.py +0 -0
  230. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/dependencies/registry.py +0 -0
  231. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/dsl_stubs.py +0 -0
  232. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/exceptions.py +0 -0
  233. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/execution_context.py +0 -0
  234. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/lua_sandbox.py +0 -0
  235. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/message_history_manager.py +0 -0
  236. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/mocking.py +0 -0
  237. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/output_validator.py +0 -0
  238. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/registry.py +0 -0
  239. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/runtime.py +0 -0
  240. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/template_resolver.py +0 -0
  241. {tactus-0.31.0 → tactus-0.31.2}/tactus/core/yaml_parser.py +0 -0
  242. {tactus-0.31.0 → tactus-0.31.2}/tactus/docker/Dockerfile +0 -0
  243. {tactus-0.31.0 → tactus-0.31.2}/tactus/docker/entrypoint.sh +0 -0
  244. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/__init__.py +0 -0
  245. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/agent.py +0 -0
  246. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/broker_lm.py +0 -0
  247. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/config.py +0 -0
  248. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/history.py +0 -0
  249. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/module.py +0 -0
  250. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/prediction.py +0 -0
  251. {tactus-0.31.0 → tactus-0.31.2}/tactus/dspy/signature.py +0 -0
  252. {tactus-0.31.0 → tactus-0.31.2}/tactus/formatting/__init__.py +0 -0
  253. {tactus-0.31.0 → tactus-0.31.2}/tactus/formatting/formatter.py +0 -0
  254. {tactus-0.31.0 → tactus-0.31.2}/tactus/ide/__init__.py +0 -0
  255. {tactus-0.31.0 → tactus-0.31.2}/tactus/ide/coding_assistant.py +0 -0
  256. {tactus-0.31.0 → tactus-0.31.2}/tactus/ide/server.py +0 -0
  257. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/__init__.py +0 -0
  258. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/control.py +0 -0
  259. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/file.py +0 -0
  260. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/handles.py +0 -0
  261. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/host.py +0 -0
  262. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/human.py +0 -0
  263. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/json.py +0 -0
  264. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/log.py +0 -0
  265. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/message_history.py +0 -0
  266. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/model.py +0 -0
  267. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/procedure.py +0 -0
  268. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/procedure_callable.py +0 -0
  269. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/retry.py +0 -0
  270. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/session.py +0 -0
  271. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/state.py +0 -0
  272. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/step.py +0 -0
  273. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/system.py +0 -0
  274. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/tool.py +0 -0
  275. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/tool_handle.py +0 -0
  276. {tactus-0.31.0 → tactus-0.31.2}/tactus/primitives/toolset.py +0 -0
  277. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/__init__.py +0 -0
  278. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/chat_recorder.py +0 -0
  279. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/config.py +0 -0
  280. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/cost.py +0 -0
  281. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/hitl.py +0 -0
  282. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/log_handler.py +0 -0
  283. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/models.py +0 -0
  284. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/result.py +0 -0
  285. {tactus-0.31.0 → tactus-0.31.2}/tactus/protocols/storage.py +0 -0
  286. {tactus-0.31.0 → tactus-0.31.2}/tactus/providers/__init__.py +0 -0
  287. {tactus-0.31.0 → tactus-0.31.2}/tactus/providers/base.py +0 -0
  288. {tactus-0.31.0 → tactus-0.31.2}/tactus/providers/bedrock.py +0 -0
  289. {tactus-0.31.0 → tactus-0.31.2}/tactus/providers/google.py +0 -0
  290. {tactus-0.31.0 → tactus-0.31.2}/tactus/providers/openai.py +0 -0
  291. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/__init__.py +0 -0
  292. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/config.py +0 -0
  293. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/container_runner.py +0 -0
  294. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/docker_manager.py +0 -0
  295. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/entrypoint.py +0 -0
  296. {tactus-0.31.0 → tactus-0.31.2}/tactus/sandbox/protocol.py +0 -0
  297. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/__init__.py +0 -0
  298. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/__init__.py +0 -0
  299. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/csv.py +0 -0
  300. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/excel.py +0 -0
  301. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/file.py +0 -0
  302. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/fs.py +0 -0
  303. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/hdf5.py +0 -0
  304. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/json.py +0 -0
  305. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/parquet.py +0 -0
  306. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/io/tsv.py +0 -0
  307. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/loader.py +0 -0
  308. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/tac/tactus/tools/done.tac +0 -0
  309. {tactus-0.31.0 → tactus-0.31.2}/tactus/stdlib/tac/tactus/tools/log.tac +0 -0
  310. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/README.md +0 -0
  311. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/__init__.py +0 -0
  312. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/behave_integration.py +0 -0
  313. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/context.py +0 -0
  314. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/eval_models.py +0 -0
  315. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/evaluation_runner.py +0 -0
  316. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/evaluators.py +0 -0
  317. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/events.py +0 -0
  318. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/gherkin_parser.py +0 -0
  319. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/mock_agent.py +0 -0
  320. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/mock_dependencies.py +0 -0
  321. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/mock_hitl.py +0 -0
  322. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/mock_registry.py +0 -0
  323. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/mock_tools.py +0 -0
  324. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/models.py +0 -0
  325. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/pydantic_eval_runner.py +0 -0
  326. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/steps/__init__.py +0 -0
  327. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/steps/builtin.py +0 -0
  328. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/steps/custom.py +0 -0
  329. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/steps/registry.py +0 -0
  330. {tactus-0.31.0 → tactus-0.31.2}/tactus/testing/test_runner.py +0 -0
  331. {tactus-0.31.0 → tactus-0.31.2}/tactus/tracing/__init__.py +0 -0
  332. {tactus-0.31.0 → tactus-0.31.2}/tactus/tracing/trace_manager.py +0 -0
  333. {tactus-0.31.0 → tactus-0.31.2}/tactus/utils/__init__.py +0 -0
  334. {tactus-0.31.0 → tactus-0.31.2}/tactus/utils/cost_calculator.py +0 -0
  335. {tactus-0.31.0 → tactus-0.31.2}/tactus/utils/model_pricing.py +0 -0
  336. {tactus-0.31.0 → tactus-0.31.2}/tactus/utils/safe_file_library.py +0 -0
  337. {tactus-0.31.0 → tactus-0.31.2}/tactus/utils/safe_libraries.py +0 -0
  338. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/LuaLexerBase.py +0 -0
  339. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/LuaParserBase.py +0 -0
  340. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/README.md +0 -0
  341. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/__init__.py +0 -0
  342. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/error_listener.py +0 -0
  343. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaLexer.interp +0 -0
  344. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaLexer.py +0 -0
  345. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaLexer.tokens +0 -0
  346. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaLexerBase.py +0 -0
  347. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaParser.interp +0 -0
  348. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaParser.py +0 -0
  349. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaParser.tokens +0 -0
  350. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaParserBase.py +0 -0
  351. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/LuaParserVisitor.py +0 -0
  352. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/generated/__init__.py +0 -0
  353. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/grammar/LuaLexer.g4 +0 -0
  354. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/grammar/LuaParser.g4 +0 -0
  355. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/semantic_visitor.py +0 -0
  356. {tactus-0.31.0 → tactus-0.31.2}/tactus/validation/validator.py +0 -0
  357. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/.gitignore +0 -0
  358. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/BUILD_GUIDE.md +0 -0
  359. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/ELECTRON_INTEGRATION.md +0 -0
  360. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/README.md +0 -0
  361. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/RUN_ELECTRON.md +0 -0
  362. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/SETUP_COMPLETE.md +0 -0
  363. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/backend/hook-lupa.py +0 -0
  364. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/preload/preload.ts +0 -0
  365. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/preload/tsconfig.json +0 -0
  366. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/rebuild-and-test.sh +0 -0
  367. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/resources/app-icon.icns +0 -0
  368. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/resources/app-icon.ico +0 -0
  369. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/resources/app-icon.png +0 -0
  370. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/scripts/build-backend.js +0 -0
  371. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/scripts/build-frontend.js +0 -0
  372. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/scripts/generate-icons.sh +0 -0
  373. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/src/backend-manager.ts +0 -0
  374. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/src/main.ts +0 -0
  375. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/src/menu.ts +0 -0
  376. {tactus-0.31.0 → tactus-0.31.2}/tactus-desktop/tsconfig.json +0 -0
  377. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/ARCHITECTURE.md +0 -0
  378. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/CHANGELOG.md +0 -0
  379. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/DEV_MODE.md +0 -0
  380. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/QUICK_START.md +0 -0
  381. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/README.md +0 -0
  382. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/RESTART_INSTRUCTIONS.md +0 -0
  383. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/TROUBLESHOOTING.md +0 -0
  384. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/README.md +0 -0
  385. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/assistant_service.py +0 -0
  386. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/assistant_tools.py +0 -0
  387. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/chat_server.py +0 -0
  388. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/config_server.py +0 -0
  389. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/events.py +0 -0
  390. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/logging_capture.py +0 -0
  391. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/lsp_server.py +0 -0
  392. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/requirements.txt +0 -0
  393. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/tactus_lsp_handler.py +0 -0
  394. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/test_lsp_server.py +0 -0
  395. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/backend/text_editor_tool.py +0 -0
  396. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/dev.sh +0 -0
  397. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/.storybook/main.ts +0 -0
  398. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/.storybook/preview.ts +0 -0
  399. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/.storybook/vitest.setup.ts +0 -0
  400. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/README.md +0 -0
  401. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/demo.ts +0 -0
  402. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/index.html +0 -0
  403. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/jest.config.js +0 -0
  404. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/package.json +0 -0
  405. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/postcss.config.js +0 -0
  406. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/App.tsx +0 -0
  407. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/Editor.tsx +0 -0
  408. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/LSPClient.ts +0 -0
  409. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/LSPClientHTTP.ts +0 -0
  410. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/TactusLanguage.ts +0 -0
  411. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/commands/registry.ts +0 -0
  412. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/AboutDialog.tsx +0 -0
  413. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ChatSidebar.tsx +0 -0
  414. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/CheckpointSummary.tsx +0 -0
  415. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/CollapsibleRun.tsx +0 -0
  416. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/Duration.stories.tsx +0 -0
  417. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/Duration.tsx +0 -0
  418. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/FileTree.stories.tsx +0 -0
  419. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/FileTree.tsx +0 -0
  420. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/MessageFeed.tsx +0 -0
  421. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/PreferencesView.tsx +0 -0
  422. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureInputsDisplay.stories.tsx +0 -0
  423. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureInputsDisplay.tsx +0 -0
  424. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureInputsModal.stories.tsx +0 -0
  425. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureInputsModal.tsx +0 -0
  426. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureTab.stories.tsx +0 -0
  427. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ProcedureTab.tsx +0 -0
  428. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ResizeHandle.tsx +0 -0
  429. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ResultsSidebar.stories.tsx +0 -0
  430. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ResultsSidebar.tsx +0 -0
  431. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/TestOptionsModal.tsx +0 -0
  432. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/Timestamp.stories.tsx +0 -0
  433. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/Timestamp.tsx +0 -0
  434. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/TopMenuBar.stories.tsx +0 -0
  435. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/chat/ChatInterface.tsx +0 -0
  436. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/chat/MessageInput.tsx +0 -0
  437. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/chat/MessageList.tsx +0 -0
  438. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/CheckpointDetails.stories.tsx +0 -0
  439. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/CheckpointDetails.tsx +0 -0
  440. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/CheckpointList.stories.tsx +0 -0
  441. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/CheckpointList.tsx +0 -0
  442. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/DebuggerPanel.stories.tsx +0 -0
  443. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/DebuggerPanel.tsx +0 -0
  444. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/RunSelector.stories.tsx +0 -0
  445. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/RunSelector.tsx +0 -0
  446. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/StatisticsPanel.stories.tsx +0 -0
  447. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/debugger/StatisticsPanel.tsx +0 -0
  448. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/AgentStreamingComponent.tsx +0 -0
  449. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/BaseEventComponent.tsx +0 -0
  450. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/CheckpointEventComponent.tsx +0 -0
  451. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/CollapsibleTestScenario.tsx +0 -0
  452. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ContainerStatusEventComponent.tsx +0 -0
  453. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/CostEventComponent.stories.tsx +0 -0
  454. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/CostEventComponent.tsx +0 -0
  455. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/EvaluationEventComponent.stories.tsx +0 -0
  456. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/EvaluationEventComponent.tsx +0 -0
  457. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/EventRenderer.tsx +0 -0
  458. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ExecutionEventComponent.stories.tsx +0 -0
  459. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ExecutionEventComponent.tsx +0 -0
  460. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ExecutionSummaryEventComponent.stories.tsx +0 -0
  461. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ExecutionSummaryEventComponent.tsx +0 -0
  462. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/LoadingEventComponent.stories.tsx +0 -0
  463. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/LoadingEventComponent.tsx +0 -0
  464. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/LogCluster.tsx +0 -0
  465. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/LogEventComponent.stories.tsx +0 -0
  466. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/LogEventComponent.tsx +0 -0
  467. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/OutputEventComponent.stories.tsx +0 -0
  468. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/OutputEventComponent.tsx +0 -0
  469. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/TestEventComponent.stories.tsx +0 -0
  470. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/TestEventComponent.tsx +0 -0
  471. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/TestProgressContainer.tsx +0 -0
  472. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ToolCallEventComponent.tsx +0 -0
  473. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ValidationEventComponent.stories.tsx +0 -0
  474. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/events/ValidationEventComponent.tsx +0 -0
  475. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/AgentsSection.tsx +0 -0
  476. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/EvaluationsSection.tsx +0 -0
  477. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/MetadataSections.stories.tsx +0 -0
  478. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/OutputsSection.tsx +0 -0
  479. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/ParametersSection.tsx +0 -0
  480. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/SpecificationsSection.tsx +0 -0
  481. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/StagesSection.tsx +0 -0
  482. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/metadata/ToolsSection.tsx +0 -0
  483. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/preferences/ConfigFieldView.tsx +0 -0
  484. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/preferences/SourceBadge.tsx +0 -0
  485. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/preferences/YamlCodeEditor.tsx +0 -0
  486. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/scenarios/EvaluateScenarios.stories.tsx +0 -0
  487. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/scenarios/RunScenarios.stories.tsx +0 -0
  488. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/scenarios/TestScenarios.stories.tsx +0 -0
  489. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/scenarios/ValidationScenarios.stories.tsx +0 -0
  490. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/theme-provider.tsx +0 -0
  491. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/ai/conversation.tsx +0 -0
  492. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/ai/message.tsx +0 -0
  493. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/ai/prompt-input.tsx +0 -0
  494. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/badge.tsx +0 -0
  495. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/button.tsx +0 -0
  496. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/dialog.tsx +0 -0
  497. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  498. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/input.tsx +0 -0
  499. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/label.tsx +0 -0
  500. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/logo.stories.tsx +0 -0
  501. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/logo.tsx +0 -0
  502. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/menubar.tsx +0 -0
  503. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/scroll-area.tsx +0 -0
  504. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/select.tsx +0 -0
  505. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/separator.tsx +0 -0
  506. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/switch.tsx +0 -0
  507. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/tabs.tsx +0 -0
  508. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/components/ui/tooltip.tsx +0 -0
  509. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/hooks/useChatSSE.ts +0 -0
  510. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/hooks/useEventStream.ts +0 -0
  511. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/hooks/useTracing.ts +0 -0
  512. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/index.css +0 -0
  513. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/lib/utils.ts +0 -0
  514. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/main.tsx +0 -0
  515. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/types/events.ts +0 -0
  516. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/types/metadata.ts +0 -0
  517. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/types/preferences.ts +0 -0
  518. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/types/results.ts +0 -0
  519. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/types/tracing.ts +0 -0
  520. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/utils/yamlSync.ts +0 -0
  521. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/validation/TactusValidator.ts +0 -0
  522. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/validation/generated/LuaParser.interp +0 -0
  523. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/validation/generated/LuaParser.tokens +0 -0
  524. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/validation/types.ts +0 -0
  525. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/src/vite-env.d.ts +0 -0
  526. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/tailwind.config.js +0 -0
  527. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/tsconfig.json +0 -0
  528. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/tsconfig.node.json +0 -0
  529. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/vite.config.ts +0 -0
  530. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/frontend/vitest.shims.d.ts +0 -0
  531. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/package.json +0 -0
  532. {tactus-0.31.0 → tactus-0.31.2}/tactus-ide/start-dev.sh +0 -0
  533. {tactus-0.31.0 → tactus-0.31.2}/test-ci.sh +0 -0
  534. {tactus-0.31.0 → tactus-0.31.2}/tests/__init__.py +0 -0
  535. {tactus-0.31.0 → tactus-0.31.2}/tests/adapters/__init__.py +0 -0
  536. {tactus-0.31.0 → tactus-0.31.2}/tests/adapters/test_lua_tools_adapter.py +0 -0
  537. {tactus-0.31.0 → tactus-0.31.2}/tests/adapters/test_plugins.py +0 -0
  538. {tactus-0.31.0 → tactus-0.31.2}/tests/broker/test_broker_host_tool_source.py +0 -0
  539. {tactus-0.31.0 → tactus-0.31.2}/tests/broker/test_broker_integration.py +0 -0
  540. {tactus-0.31.0 → tactus-0.31.2}/tests/broker/test_broker_tcp_integration.py +0 -0
  541. {tactus-0.31.0 → tactus-0.31.2}/tests/broker/test_broker_tcp_unit.py +0 -0
  542. {tactus-0.31.0 → tactus-0.31.2}/tests/broker/test_brokered_lm_unit.py +0 -0
  543. {tactus-0.31.0 → tactus-0.31.2}/tests/cli/__init__.py +0 -0
  544. {tactus-0.31.0 → tactus-0.31.2}/tests/cli/test_cli.py +0 -0
  545. {tactus-0.31.0 → tactus-0.31.2}/tests/cli/test_cli_inputs.py +0 -0
  546. {tactus-0.31.0 → tactus-0.31.2}/tests/conftest.py +0 -0
  547. {tactus-0.31.0 → tactus-0.31.2}/tests/core/__init__.py +0 -0
  548. {tactus-0.31.0 → tactus-0.31.2}/tests/core/test_config_manager.py +0 -0
  549. {tactus-0.31.0 → tactus-0.31.2}/tests/core/test_determinism_safety.py +0 -0
  550. {tactus-0.31.0 → tactus-0.31.2}/tests/core/test_lua_sandbox_security.py +0 -0
  551. {tactus-0.31.0 → tactus-0.31.2}/tests/core/test_runtime_inputs.py +0 -0
  552. {tactus-0.31.0 → tactus-0.31.2}/tests/core/test_script_mode.py +0 -0
  553. {tactus-0.31.0 → tactus-0.31.2}/tests/dspy/__init__.py +0 -0
  554. {tactus-0.31.0 → tactus-0.31.2}/tests/dspy/test_mock_field_normalization.py +0 -0
  555. {tactus-0.31.0 → tactus-0.31.2}/tests/dspy/test_module_parameter.py +0 -0
  556. {tactus-0.31.0 → tactus-0.31.2}/tests/dspy/test_prediction_messages.py +0 -0
  557. {tactus-0.31.0 → tactus-0.31.2}/tests/dspy/test_streaming.py +0 -0
  558. {tactus-0.31.0 → tactus-0.31.2}/tests/fixtures/__init__.py +0 -0
  559. {tactus-0.31.0 → tactus-0.31.2}/tests/fixtures/brave_search_mcp_server.py +0 -0
  560. {tactus-0.31.0 → tactus-0.31.2}/tests/fixtures/filesystem_mcp_server.py +0 -0
  561. {tactus-0.31.0 → tactus-0.31.2}/tests/fixtures/test_mcp_server.py +0 -0
  562. {tactus-0.31.0 → tactus-0.31.2}/tests/integration/test_named_procedures.py +0 -0
  563. {tactus-0.31.0 → tactus-0.31.2}/tests/mocks/__init__.py +0 -0
  564. {tactus-0.31.0 → tactus-0.31.2}/tests/mocks/llm_mocks.py +0 -0
  565. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_checkpoint_primitive.py +0 -0
  566. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_host_primitive.py +0 -0
  567. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_retry_primitive.py +0 -0
  568. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_state_primitive.py +0 -0
  569. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_system_alert.py +0 -0
  570. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_tool_primitive.py +0 -0
  571. {tactus-0.31.0 → tactus-0.31.2}/tests/primitives/test_toolset_dsl.py +0 -0
  572. {tactus-0.31.0 → tactus-0.31.2}/tests/sandbox/test_container_runner.py +0 -0
  573. {tactus-0.31.0 → tactus-0.31.2}/tests/sandbox/test_docker_sandbox_smoke.py +0 -0
  574. {tactus-0.31.0 → tactus-0.31.2}/tests/stdlib/__init__.py +0 -0
  575. {tactus-0.31.0 → tactus-0.31.2}/tests/stdlib/test_loader.py +0 -0
  576. {tactus-0.31.0 → tactus-0.31.2}/tests/stdlib/test_require_python.py +0 -0
  577. {tactus-0.31.0 → tactus-0.31.2}/tests/test_checkpoints_integration.py +0 -0
  578. {tactus-0.31.0 → tactus-0.31.2}/tests/test_formatter.py +0 -0
  579. {tactus-0.31.0 → tactus-0.31.2}/tests/test_mcp_integration.py +0 -0
  580. {tactus-0.31.0 → tactus-0.31.2}/tests/test_tracing.py +0 -0
  581. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/__init__.py +0 -0
  582. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/conftest.py +0 -0
  583. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_all_examples.py +0 -0
  584. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_e2e.py +0 -0
  585. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_gherkin_parser.py +0 -0
  586. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_integration.py +0 -0
  587. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_models.py +0 -0
  588. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_runtime_integration.py +0 -0
  589. {tactus-0.31.0 → tactus-0.31.2}/tests/testing/test_step_registry.py +0 -0
  590. {tactus-0.31.0 → tactus-0.31.2}/tests/utils/__init__.py +0 -0
  591. {tactus-0.31.0 → tactus-0.31.2}/tests/utils/test_safe_file_library.py +0 -0
  592. {tactus-0.31.0 → tactus-0.31.2}/tests/validation/__init__.py +0 -0
  593. {tactus-0.31.0 → tactus-0.31.2}/tests/validation/test_tool_curried_syntax_disallowed.py +0 -0
@@ -157,30 +157,36 @@ jobs:
157
157
  - name: Package Application (macOS)
158
158
  if: matrix.os == 'macos-latest'
159
159
  working-directory: ./tactus-desktop
160
- run: npm run package:mac
160
+ run: npx electron-builder --mac
161
161
 
162
162
  - name: Package Application (Windows)
163
163
  if: matrix.os == 'windows-latest'
164
164
  working-directory: ./tactus-desktop
165
- run: npm run package:win
165
+ run: npx electron-builder --win
166
166
 
167
167
  - name: Package Application (Linux)
168
168
  if: matrix.os == 'ubuntu-latest'
169
169
  working-directory: ./tactus-desktop
170
- run: npm run package:linux
170
+ run: npx electron-builder --linux
171
171
 
172
172
  - name: Upload Desktop Artifacts to GitHub Artifacts
173
173
  uses: actions/upload-artifact@v4
174
174
  with:
175
175
  name: desktop-${{ matrix.os }}
176
- path: tactus-desktop/dist-electron/*
176
+ path: |
177
+ tactus-desktop/dist-electron/*.dmg
178
+ tactus-desktop/dist-electron/*.exe
179
+ tactus-desktop/dist-electron/*.AppImage
177
180
 
178
181
  - name: Attach Desktop Builds to Release
179
182
  if: success()
180
183
  uses: softprops/action-gh-release@v1
181
184
  with:
182
185
  tag_name: ${{ steps.get_version.outputs.tag }}
183
- files: tactus-desktop/dist-electron/*
186
+ files: |
187
+ tactus-desktop/dist-electron/*.dmg
188
+ tactus-desktop/dist-electron/*.exe
189
+ tactus-desktop/dist-electron/*.AppImage
184
190
  fail_on_unmatched_files: false
185
191
  env:
186
192
  GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
@@ -2,6 +2,22 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.31.2 (2026-01-16)
6
+
7
+ ### Bug Fixes
8
+
9
+ - Include litellm tokenizers and data files in PyInstaller bundle
10
+ ([`b770f35`](https://github.com/AnthusAI/Tactus/commit/b770f35d79d097505b3022c53eb54e92383e037c))
11
+
12
+
13
+ ## v0.31.1 (2026-01-15)
14
+
15
+ ### Bug Fixes
16
+
17
+ - Only upload installer files (dmg/exe/AppImage) to release, not entire dist-electron directory
18
+ ([`424e9e2`](https://github.com/AnthusAI/Tactus/commit/424e9e267be1972e1a2eed5d8c06961cc74e4c26))
19
+
20
+
5
21
  ## v0.31.0 (2026-01-15)
6
22
 
7
23
  ### Chores
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tactus
3
- Version: 0.31.0
3
+ Version: 0.31.2
4
4
  Summary: Tactus: Lua-based DSL for agentic workflows
5
5
  Project-URL: Homepage, https://github.com/AnthusAI/Tactus
6
6
  Project-URL: Documentation, https://github.com/AnthusAI/Tactus/tree/main/docs
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "tactus"
7
- version = "0.31.0"
7
+ version = "0.31.2"
8
8
  description = "Tactus: Lua-based DSL for agentic workflows"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -5,7 +5,7 @@ Tactus provides a declarative workflow engine for AI agents with pluggable
5
5
  backends for storage, HITL, and chat recording.
6
6
  """
7
7
 
8
- __version__ = "0.31.0"
8
+ __version__ = "0.31.2"
9
9
 
10
10
  # Core exports
11
11
  from tactus.core.runtime import TactusRuntime
@@ -14,6 +14,7 @@ project_root = os.path.abspath(os.path.join(SPECPATH, '..', '..'))
14
14
  tactus_modules = collect_submodules('tactus')
15
15
  flask_modules = collect_submodules('flask')
16
16
  antlr_modules = collect_submodules('antlr4')
17
+ litellm_modules = collect_submodules('litellm')
17
18
 
18
19
  # Collect data files
19
20
  tactus_datas = collect_data_files('tactus', include_py_files=True)
@@ -21,6 +22,7 @@ antlr_datas = collect_data_files('antlr4')
21
22
  lupa_datas = collect_data_files('lupa', include_py_files=True)
22
23
  behave_datas = collect_data_files('behave')
23
24
  gherkin_datas = collect_data_files('gherkin')
25
+ litellm_datas = collect_data_files('litellm')
24
26
 
25
27
  # Manually collect lupa native libraries
26
28
  # collect_dynamic_libs doesn't find them, so we do it explicitly
@@ -38,6 +40,7 @@ a = Analysis(
38
40
  *lupa_datas,
39
41
  *behave_datas,
40
42
  *gherkin_datas,
43
+ *litellm_datas,
41
44
  *copy_metadata('genai_prices'),
42
45
  *copy_metadata('pydantic_ai_slim'),
43
46
  *copy_metadata('pydantic_ai'),
@@ -51,6 +54,8 @@ a = Analysis(
51
54
  *tactus_modules,
52
55
  *flask_modules,
53
56
  *antlr_modules,
57
+ *litellm_modules,
58
+ 'litellm.litellm_core_utils.tokenizers',
54
59
  'lupa',
55
60
  'flask_cors',
56
61
  'pydantic',
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "tactus-desktop",
3
- "version": "0.1.0",
3
+ "version": "0.28.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "tactus-desktop",
9
- "version": "0.1.0",
9
+ "version": "0.28.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "electron-log": "^5.0.1"
@@ -689,7 +689,6 @@
689
689
  "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
690
690
  "dev": true,
691
691
  "license": "MIT",
692
- "peer": true,
693
692
  "dependencies": {
694
693
  "fast-deep-equal": "^3.1.1",
695
694
  "fast-json-stable-stringify": "^2.0.0",
@@ -844,6 +843,7 @@
844
843
  "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==",
845
844
  "dev": true,
846
845
  "license": "MIT",
846
+ "peer": true,
847
847
  "dependencies": {
848
848
  "archiver-utils": "^2.1.0",
849
849
  "async": "^3.2.4",
@@ -863,6 +863,7 @@
863
863
  "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
864
864
  "dev": true,
865
865
  "license": "MIT",
866
+ "peer": true,
866
867
  "dependencies": {
867
868
  "glob": "^7.1.4",
868
869
  "graceful-fs": "^4.2.0",
@@ -885,6 +886,7 @@
885
886
  "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
886
887
  "dev": true,
887
888
  "license": "MIT",
889
+ "peer": true,
888
890
  "dependencies": {
889
891
  "core-util-is": "~1.0.0",
890
892
  "inherits": "~2.0.3",
@@ -900,7 +902,8 @@
900
902
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
901
903
  "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
902
904
  "dev": true,
903
- "license": "MIT"
905
+ "license": "MIT",
906
+ "peer": true
904
907
  },
905
908
  "node_modules/archiver-utils/node_modules/string_decoder": {
906
909
  "version": "1.1.1",
@@ -908,6 +911,7 @@
908
911
  "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
909
912
  "dev": true,
910
913
  "license": "MIT",
914
+ "peer": true,
911
915
  "dependencies": {
912
916
  "safe-buffer": "~5.1.0"
913
917
  }
@@ -1009,6 +1013,7 @@
1009
1013
  "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
1010
1014
  "dev": true,
1011
1015
  "license": "MIT",
1016
+ "peer": true,
1012
1017
  "dependencies": {
1013
1018
  "buffer": "^5.5.0",
1014
1019
  "inherits": "^2.0.4",
@@ -1381,6 +1386,7 @@
1381
1386
  "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==",
1382
1387
  "dev": true,
1383
1388
  "license": "MIT",
1389
+ "peer": true,
1384
1390
  "dependencies": {
1385
1391
  "buffer-crc32": "^0.2.13",
1386
1392
  "crc32-stream": "^4.0.2",
@@ -1480,6 +1486,7 @@
1480
1486
  "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
1481
1487
  "dev": true,
1482
1488
  "license": "Apache-2.0",
1489
+ "peer": true,
1483
1490
  "bin": {
1484
1491
  "crc32": "bin/crc32.njs"
1485
1492
  },
@@ -1493,6 +1500,7 @@
1493
1500
  "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==",
1494
1501
  "dev": true,
1495
1502
  "license": "MIT",
1503
+ "peer": true,
1496
1504
  "dependencies": {
1497
1505
  "crc-32": "^1.2.0",
1498
1506
  "readable-stream": "^3.4.0"
@@ -1688,7 +1696,6 @@
1688
1696
  "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==",
1689
1697
  "dev": true,
1690
1698
  "license": "MIT",
1691
- "peer": true,
1692
1699
  "dependencies": {
1693
1700
  "app-builder-lib": "24.13.3",
1694
1701
  "builder-util": "24.13.1",
@@ -1873,6 +1880,7 @@
1873
1880
  "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==",
1874
1881
  "dev": true,
1875
1882
  "license": "MIT",
1883
+ "peer": true,
1876
1884
  "dependencies": {
1877
1885
  "app-builder-lib": "24.13.3",
1878
1886
  "archiver": "^5.3.1",
@@ -1886,6 +1894,7 @@
1886
1894
  "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
1887
1895
  "dev": true,
1888
1896
  "license": "MIT",
1897
+ "peer": true,
1889
1898
  "dependencies": {
1890
1899
  "graceful-fs": "^4.2.0",
1891
1900
  "jsonfile": "^6.0.1",
@@ -1901,6 +1910,7 @@
1901
1910
  "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
1902
1911
  "dev": true,
1903
1912
  "license": "MIT",
1913
+ "peer": true,
1904
1914
  "dependencies": {
1905
1915
  "universalify": "^2.0.0"
1906
1916
  },
@@ -1914,6 +1924,7 @@
1914
1924
  "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
1915
1925
  "dev": true,
1916
1926
  "license": "MIT",
1927
+ "peer": true,
1917
1928
  "engines": {
1918
1929
  "node": ">= 10.0.0"
1919
1930
  }
@@ -2256,7 +2267,8 @@
2256
2267
  "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
2257
2268
  "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
2258
2269
  "dev": true,
2259
- "license": "MIT"
2270
+ "license": "MIT",
2271
+ "peer": true
2260
2272
  },
2261
2273
  "node_modules/fs-extra": {
2262
2274
  "version": "8.1.0",
@@ -2752,7 +2764,8 @@
2752
2764
  "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2753
2765
  "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
2754
2766
  "dev": true,
2755
- "license": "MIT"
2767
+ "license": "MIT",
2768
+ "peer": true
2756
2769
  },
2757
2770
  "node_modules/isbinaryfile": {
2758
2771
  "version": "5.0.7",
@@ -2889,6 +2902,7 @@
2889
2902
  "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
2890
2903
  "dev": true,
2891
2904
  "license": "MIT",
2905
+ "peer": true,
2892
2906
  "dependencies": {
2893
2907
  "readable-stream": "^2.0.5"
2894
2908
  },
@@ -2902,6 +2916,7 @@
2902
2916
  "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
2903
2917
  "dev": true,
2904
2918
  "license": "MIT",
2919
+ "peer": true,
2905
2920
  "dependencies": {
2906
2921
  "core-util-is": "~1.0.0",
2907
2922
  "inherits": "~2.0.3",
@@ -2917,7 +2932,8 @@
2917
2932
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2918
2933
  "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2919
2934
  "dev": true,
2920
- "license": "MIT"
2935
+ "license": "MIT",
2936
+ "peer": true
2921
2937
  },
2922
2938
  "node_modules/lazystream/node_modules/string_decoder": {
2923
2939
  "version": "1.1.1",
@@ -2925,6 +2941,7 @@
2925
2941
  "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2926
2942
  "dev": true,
2927
2943
  "license": "MIT",
2944
+ "peer": true,
2928
2945
  "dependencies": {
2929
2946
  "safe-buffer": "~5.1.0"
2930
2947
  }
@@ -2941,35 +2958,40 @@
2941
2958
  "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
2942
2959
  "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
2943
2960
  "dev": true,
2944
- "license": "MIT"
2961
+ "license": "MIT",
2962
+ "peer": true
2945
2963
  },
2946
2964
  "node_modules/lodash.difference": {
2947
2965
  "version": "4.5.0",
2948
2966
  "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
2949
2967
  "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
2950
2968
  "dev": true,
2951
- "license": "MIT"
2969
+ "license": "MIT",
2970
+ "peer": true
2952
2971
  },
2953
2972
  "node_modules/lodash.flatten": {
2954
2973
  "version": "4.4.0",
2955
2974
  "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
2956
2975
  "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
2957
2976
  "dev": true,
2958
- "license": "MIT"
2977
+ "license": "MIT",
2978
+ "peer": true
2959
2979
  },
2960
2980
  "node_modules/lodash.isplainobject": {
2961
2981
  "version": "4.0.6",
2962
2982
  "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
2963
2983
  "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
2964
2984
  "dev": true,
2965
- "license": "MIT"
2985
+ "license": "MIT",
2986
+ "peer": true
2966
2987
  },
2967
2988
  "node_modules/lodash.union": {
2968
2989
  "version": "4.6.0",
2969
2990
  "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
2970
2991
  "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
2971
2992
  "dev": true,
2972
- "license": "MIT"
2993
+ "license": "MIT",
2994
+ "peer": true
2973
2995
  },
2974
2996
  "node_modules/lowercase-keys": {
2975
2997
  "version": "2.0.0",
@@ -3158,6 +3180,7 @@
3158
3180
  "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
3159
3181
  "dev": true,
3160
3182
  "license": "MIT",
3183
+ "peer": true,
3161
3184
  "engines": {
3162
3185
  "node": ">=0.10.0"
3163
3186
  }
@@ -3291,7 +3314,8 @@
3291
3314
  "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
3292
3315
  "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
3293
3316
  "dev": true,
3294
- "license": "MIT"
3317
+ "license": "MIT",
3318
+ "peer": true
3295
3319
  },
3296
3320
  "node_modules/progress": {
3297
3321
  "version": "2.0.3",
@@ -3375,6 +3399,7 @@
3375
3399
  "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
3376
3400
  "dev": true,
3377
3401
  "license": "MIT",
3402
+ "peer": true,
3378
3403
  "dependencies": {
3379
3404
  "inherits": "^2.0.3",
3380
3405
  "string_decoder": "^1.1.1",
@@ -3390,6 +3415,7 @@
3390
3415
  "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
3391
3416
  "dev": true,
3392
3417
  "license": "Apache-2.0",
3418
+ "peer": true,
3393
3419
  "dependencies": {
3394
3420
  "minimatch": "^5.1.0"
3395
3421
  }
@@ -3472,7 +3498,8 @@
3472
3498
  "url": "https://feross.org/support"
3473
3499
  }
3474
3500
  ],
3475
- "license": "MIT"
3501
+ "license": "MIT",
3502
+ "peer": true
3476
3503
  },
3477
3504
  "node_modules/safer-buffer": {
3478
3505
  "version": "2.1.2",
@@ -3668,6 +3695,7 @@
3668
3695
  "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
3669
3696
  "dev": true,
3670
3697
  "license": "MIT",
3698
+ "peer": true,
3671
3699
  "dependencies": {
3672
3700
  "safe-buffer": "~5.2.0"
3673
3701
  }
@@ -3780,6 +3808,7 @@
3780
3808
  "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
3781
3809
  "dev": true,
3782
3810
  "license": "MIT",
3811
+ "peer": true,
3783
3812
  "dependencies": {
3784
3813
  "bl": "^4.0.3",
3785
3814
  "end-of-stream": "^1.4.1",
@@ -3937,7 +3966,8 @@
3937
3966
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3938
3967
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
3939
3968
  "dev": true,
3940
- "license": "MIT"
3969
+ "license": "MIT",
3970
+ "peer": true
3941
3971
  },
3942
3972
  "node_modules/verror": {
3943
3973
  "version": "1.10.1",
@@ -4088,6 +4118,7 @@
4088
4118
  "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==",
4089
4119
  "dev": true,
4090
4120
  "license": "MIT",
4121
+ "peer": true,
4091
4122
  "dependencies": {
4092
4123
  "archiver-utils": "^3.0.4",
4093
4124
  "compress-commons": "^4.1.2",
@@ -4103,6 +4134,7 @@
4103
4134
  "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==",
4104
4135
  "dev": true,
4105
4136
  "license": "MIT",
4137
+ "peer": true,
4106
4138
  "dependencies": {
4107
4139
  "glob": "^7.2.3",
4108
4140
  "graceful-fs": "^4.2.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tactus-desktop",
3
- "version": "0.1.0",
3
+ "version": "0.28.0",
4
4
  "description": "Tactus IDE - Desktop Application",
5
5
  "type": "module",
6
6
  "main": "dist/src/main.js",