timbal 2.4.0__tar.gz → 2.4.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 (263) hide show
  1. {timbal-2.4.0 → timbal-2.4.2}/PKG-INFO +1 -1
  2. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/_version.py +2 -2
  3. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/__main__.py +69 -0
  4. timbal-2.4.2/python/timbal/codegen/library.py +841 -0
  5. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/__init__.py +11 -0
  6. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/agent.py +95 -2
  7. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/memory_compaction.py +258 -13
  8. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/tool.py +12 -1
  9. timbal-2.4.2/python/timbal/core/tool_result_offload.py +392 -0
  10. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/__init__.py +2 -1
  11. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/tool_result.py +4 -0
  12. {timbal-2.4.0 → timbal-2.4.2}/.gitignore +0 -0
  13. {timbal-2.4.0 → timbal-2.4.2}/LICENSE +0 -0
  14. {timbal-2.4.0 → timbal-2.4.2}/README.md +0 -0
  15. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/chat-completions.mdx +0 -0
  16. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/create-from-workforce.mdx +0 -0
  17. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/jobs/cancel.mdx +0 -0
  18. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/jobs/create.mdx +0 -0
  19. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/jobs/get.mdx +0 -0
  20. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/jobs/list.mdx +0 -0
  21. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/jobs/retry.mdx +0 -0
  22. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/link.mdx +0 -0
  23. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/list-context-vars.mdx +0 -0
  24. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/list-policies.mdx +0 -0
  25. {timbal-2.4.0 → timbal-2.4.2}/docs/api-reference/ace/unlink.mdx +0 -0
  26. {timbal-2.4.0 → timbal-2.4.2}/pyproject.toml +0 -0
  27. {timbal-2.4.0 → timbal-2.4.2}/pyrightconfig.json +0 -0
  28. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/__init__.py +0 -0
  29. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/_slots.py +0 -0
  30. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/__init__.py +0 -0
  31. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/cli_utils.py +0 -0
  32. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/cst_utils.py +0 -0
  33. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/flow.py +0 -0
  34. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/format.py +0 -0
  35. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/model_discovery.py +0 -0
  36. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/test.py +0 -0
  37. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/tool_discovery.py +0 -0
  38. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/__init__.py +0 -0
  39. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/add_edge.py +0 -0
  40. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/add_mcp.py +0 -0
  41. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/add_step.py +0 -0
  42. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/add_tool.py +0 -0
  43. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/remove_edge.py +0 -0
  44. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/remove_step.py +0 -0
  45. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/remove_tool.py +0 -0
  46. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/set_config.py +0 -0
  47. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/set_param.py +0 -0
  48. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/codegen/transformers/set_position.py +0 -0
  49. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/__init__.py +0 -0
  50. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/base.py +0 -0
  51. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/__init__.py +0 -0
  52. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/anthropic.py +0 -0
  53. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/default.py +0 -0
  54. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/message.py +0 -0
  55. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/openai.py +0 -0
  56. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/string.py +0 -0
  57. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/impl/timbal.py +0 -0
  58. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/collectors/registry.py +0 -0
  59. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/fallback_model.py +0 -0
  60. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/__init__.py +0 -0
  61. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/chat_completions.py +0 -0
  62. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/clients.py +0 -0
  63. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/messages.py +0 -0
  64. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/registry.py +0 -0
  65. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/responses.py +0 -0
  66. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/retry.py +0 -0
  67. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/llm/router.py +0 -0
  68. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/mcp.py +0 -0
  69. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/models.py +0 -0
  70. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/provider_errors.py +0 -0
  71. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/runnable.py +0 -0
  72. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/skill.py +0 -0
  73. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/test_model.py +0 -0
  74. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/tool_set.py +0 -0
  75. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/core/workflow.py +0 -0
  76. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/errors.py +0 -0
  77. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/__init__.py +0 -0
  78. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/cli.py +0 -0
  79. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/display.py +0 -0
  80. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/agent.py +0 -0
  81. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_examples.yaml +0 -0
  82. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_flow_validators.yaml +0 -0
  83. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_negations.yaml +0 -0
  84. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_parallel.yaml +0 -0
  85. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_subagent.yaml +0 -0
  86. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/eval_transforms.yaml +0 -0
  87. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/fixtures/test_invalid_validator.yaml +0 -0
  88. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/models.py +0 -0
  89. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/reporters.py +0 -0
  90. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/runner.py +0 -0
  91. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/utils.py +0 -0
  92. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/__init__.py +0 -0
  93. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/_spans.py +0 -0
  94. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/base.py +0 -0
  95. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/comparison_base.py +0 -0
  96. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/contains.py +0 -0
  97. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/contains_all.py +0 -0
  98. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/contains_any.py +0 -0
  99. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/context.py +0 -0
  100. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/email.py +0 -0
  101. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/ends_with.py +0 -0
  102. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/eq.py +0 -0
  103. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/gt.py +0 -0
  104. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/gte.py +0 -0
  105. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/json.py +0 -0
  106. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/language.py +0 -0
  107. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/length.py +0 -0
  108. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/llm_base.py +0 -0
  109. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/lt.py +0 -0
  110. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/lte.py +0 -0
  111. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/max_length.py +0 -0
  112. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/min_length.py +0 -0
  113. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/not_null.py +0 -0
  114. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/parallel.py +0 -0
  115. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/pattern.py +0 -0
  116. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/prompt.py +0 -0
  117. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/semantic.py +0 -0
  118. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/seq.py +0 -0
  119. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/starts_with.py +0 -0
  120. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/evals/validators/type.py +0 -0
  121. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/logs.py +0 -0
  122. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/models.yaml +0 -0
  123. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/__init__.py +0 -0
  124. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/integrations.py +0 -0
  125. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/knowledge_bases/__init__.py +0 -0
  126. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/knowledge_bases/query.py +0 -0
  127. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/tool_proxy.py +0 -0
  128. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/types.py +0 -0
  129. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/platform/utils.py +0 -0
  130. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/__init__.py +0 -0
  131. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/__main__.py +0 -0
  132. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/http.py +0 -0
  133. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/jobs.py +0 -0
  134. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/playground.py +0 -0
  135. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/recording_upload.py +0 -0
  136. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/rtc.py +0 -0
  137. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/single_session.py +0 -0
  138. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/telephony.py +0 -0
  139. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/voice.html +0 -0
  140. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/server/voice.py +0 -0
  141. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/__init__.py +0 -0
  142. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/config.py +0 -0
  143. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/config_loader.py +0 -0
  144. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/context.py +0 -0
  145. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/dependency_analyzer.py +0 -0
  146. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/__init__.py +0 -0
  147. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/exporters/__init__.py +0 -0
  148. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/exporters/otel.py +0 -0
  149. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/__init__.py +0 -0
  150. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/base.py +0 -0
  151. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/in_memory.py +0 -0
  152. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/jsonl.py +0 -0
  153. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/platform.py +0 -0
  154. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/providers/sqlite.py +0 -0
  155. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/span.py +0 -0
  156. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/state/tracing/trace.py +0 -0
  157. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/__init__.py +0 -0
  158. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/_creds.py +0 -0
  159. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/aircall.py +0 -0
  160. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/asana.py +0 -0
  161. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/bash.py +0 -0
  162. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/cala.py +0 -0
  163. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/cloudflare.py +0 -0
  164. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/connectif.py +0 -0
  165. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/covermanager.py +0 -0
  166. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/dynamics_business_central.py +0 -0
  167. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/dynamics_sales.py +0 -0
  168. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/edit.py +0 -0
  169. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/elasticsearch.py +0 -0
  170. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/elevenlabs.py +0 -0
  171. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/excel.py +0 -0
  172. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/fal.py +0 -0
  173. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/fathom.py +0 -0
  174. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/firecrawl.py +0 -0
  175. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/gemini_images.py +0 -0
  176. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/gmail.py +0 -0
  177. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_analytics.py +0 -0
  178. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_business.py +0 -0
  179. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_calendar.py +0 -0
  180. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_docs.py +0 -0
  181. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_drive.py +0 -0
  182. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_maps.py +0 -0
  183. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_merchant_center.py +0 -0
  184. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_search_console.py +0 -0
  185. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/google_sheets.py +0 -0
  186. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/happy_scribe.py +0 -0
  187. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/higgsfield.py +0 -0
  188. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/hubspot.py +0 -0
  189. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/interaction.py +0 -0
  190. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/jira.py +0 -0
  191. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/klaviyo.py +0 -0
  192. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/knowledge_base.py +0 -0
  193. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/krea.py +0 -0
  194. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/lancedb.py +0 -0
  195. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/linkedin.py +0 -0
  196. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/mongodb.py +0 -0
  197. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/netsuite.py +0 -0
  198. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/onedrive.py +0 -0
  199. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/outlook.py +0 -0
  200. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/parallel.py +0 -0
  201. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/pinecone.py +0 -0
  202. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/powerbi.py +0 -0
  203. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/quiver_ai.py +0 -0
  204. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/read.py +0 -0
  205. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/replicate.py +0 -0
  206. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/resend.py +0 -0
  207. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/salesforce.py +0 -0
  208. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/scraperapi.py +0 -0
  209. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/sharepoint.py +0 -0
  210. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/shopify.py +0 -0
  211. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/slack.py +0 -0
  212. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/stripe.py +0 -0
  213. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/tavily.py +0 -0
  214. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/web_search.py +0 -0
  215. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/write.py +0 -0
  216. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/xai.py +0 -0
  217. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/zendesk.py +0 -0
  218. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/tools/zoho_crm.py +0 -0
  219. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/__init__.py +0 -0
  220. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/approval.py +0 -0
  221. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/base.py +0 -0
  222. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/custom.py +0 -0
  223. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/file.py +0 -0
  224. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/text.py +0 -0
  225. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/thinking.py +0 -0
  226. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/content/tool_use.py +0 -0
  227. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/__init__.py +0 -0
  228. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/approval.py +0 -0
  229. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/base.py +0 -0
  230. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/delta.py +0 -0
  231. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/interaction.py +0 -0
  232. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/output.py +0 -0
  233. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/events/start.py +0 -0
  234. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/file.py +0 -0
  235. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/message.py +0 -0
  236. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/types/run_status.py +0 -0
  237. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/__init__.py +0 -0
  238. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/import_spec.py +0 -0
  239. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/model.py +0 -0
  240. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/net.py +0 -0
  241. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/schema.py +0 -0
  242. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/utils/serialization.py +0 -0
  243. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/__init__.py +0 -0
  244. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/_whisper_features.py +0 -0
  245. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/ambience.py +0 -0
  246. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/config.py +0 -0
  247. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/deepgram.py +0 -0
  248. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/elevenlabs.py +0 -0
  249. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/endpointing.py +0 -0
  250. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/eou.py +0 -0
  251. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/events.py +0 -0
  252. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/metrics.py +0 -0
  253. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/namo.py +0 -0
  254. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/playback.py +0 -0
  255. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/providers.py +0 -0
  256. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/realtime.py +0 -0
  257. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/recording.py +0 -0
  258. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/session.py +0 -0
  259. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/smart_turn.py +0 -0
  260. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/telephony.py +0 -0
  261. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/turn_detection.py +0 -0
  262. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/vad.py +0 -0
  263. {timbal-2.4.0 → timbal-2.4.2}/python/timbal/voice/webrtc.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: timbal
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Simple, performant, battle-tested framework for building reliable AI applications
5
5
  Project-URL: Source, https://github.com/timbal-ai/timbal
6
6
  Author-email: Timbal <team@timbal.ai>
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2.4.0'
22
- __version_tuple__ = version_tuple = (2, 4, 0)
21
+ __version__ = version = '2.4.2'
22
+ __version_tuple__ = version_tuple = (2, 4, 2)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -95,6 +95,50 @@ def main() -> None:
95
95
  # Test run operation
96
96
  from timbal.codegen.cli_utils import arg_input
97
97
 
98
+ # Org tool library operations
99
+ extract_tool_parser = subparsers.add_parser(
100
+ "extract-tool",
101
+ help="Extract a custom tool as a portable module + manifest (JSON to stdout).",
102
+ )
103
+ extract_tool_parser.add_argument(
104
+ "--tool", required=True, help="Runtime name (or variable name) of the tool to extract."
105
+ )
106
+ extract_tool_parser.add_argument(
107
+ "--step", default=None, help="Workflow step whose tools list contains the tool."
108
+ )
109
+
110
+ add_library_tool_parser = subparsers.add_parser(
111
+ "add-library-tool",
112
+ help="Vendor an org library tool module into the workspace and wire it into the tools list.",
113
+ )
114
+ add_library_tool_parser.add_argument(
115
+ "--tool", required=True, help="Library tool name (also used for the vendored module filename)."
116
+ )
117
+ add_library_tool_parser.add_argument(
118
+ "--source",
119
+ required=True,
120
+ type=arg_input,
121
+ help="Library tool module source. Use '@path' to read from file or '-' to read from stdin.",
122
+ )
123
+ add_library_tool_parser.add_argument(
124
+ "--binding",
125
+ default=None,
126
+ help="Importable symbol exported by the module. Inferred from the source when omitted.",
127
+ )
128
+ add_library_tool_parser.add_argument(
129
+ "--provenance",
130
+ default=None,
131
+ help="Provenance marker '<name>@<rev>' written as a '# timbal-tool:' header in the vendored file.",
132
+ )
133
+ add_library_tool_parser.add_argument(
134
+ "--step", default=None, help="Target step name within a Workflow."
135
+ )
136
+ add_library_tool_parser.add_argument(
137
+ "--force",
138
+ action="store_true",
139
+ help="Overwrite an existing vendored module whose content differs (a local fork or another revision).",
140
+ )
141
+
98
142
  test_parser = subparsers.add_parser("test", help="Execute a single test run of the workspace entry point.")
99
143
  test_parser.add_argument(
100
144
  "--input",
@@ -265,6 +309,31 @@ def main() -> None:
265
309
  print(format_compact(flow))
266
310
  return
267
311
 
312
+ if operation == "extract-tool":
313
+ from timbal.codegen.library import extract_tool
314
+
315
+ try:
316
+ result = extract_tool(workspace_path, args.tool, step=args.step)
317
+ except (FileNotFoundError, ValueError) as e:
318
+ print(f"error: {e}", file=sys.stderr)
319
+ sys.exit(1)
320
+ print(json.dumps(result, indent=2))
321
+ return
322
+
323
+ if operation == "add-library-tool":
324
+ from timbal.codegen.library import run_add_library_tool
325
+
326
+ try:
327
+ result = run_add_library_tool(workspace_path, args)
328
+ except (FileNotFoundError, ValueError) as e:
329
+ print(f"error: {e}", file=sys.stderr)
330
+ sys.exit(1)
331
+ if result.get("dry_run"):
332
+ print(result["source"])
333
+ else:
334
+ print(json.dumps(result))
335
+ return
336
+
268
337
  if operation == "test":
269
338
  import asyncio
270
339
  import os