gatewaysdk 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. gatewaysdk/__init__.py +540 -0
  2. gatewaysdk/adapter/__init__.py +15 -0
  3. gatewaysdk/adapter/base.py +94 -0
  4. gatewaysdk/adapter/messages.py +270 -0
  5. gatewaysdk/adapter/triplet.py +1026 -0
  6. gatewaysdk/algorithm/__init__.py +39 -0
  7. gatewaysdk/algorithm/apo/__init__.py +5 -0
  8. gatewaysdk/algorithm/apo/apo.py +898 -0
  9. gatewaysdk/algorithm/apo/prompts/apply_edit_variant01.poml +22 -0
  10. gatewaysdk/algorithm/apo/prompts/apply_edit_variant02.poml +18 -0
  11. gatewaysdk/algorithm/apo/prompts/text_gradient_variant01.poml +18 -0
  12. gatewaysdk/algorithm/apo/prompts/text_gradient_variant02.poml +16 -0
  13. gatewaysdk/algorithm/apo/prompts/text_gradient_variant03.poml +107 -0
  14. gatewaysdk/algorithm/base.py +262 -0
  15. gatewaysdk/algorithm/decorator.py +264 -0
  16. gatewaysdk/algorithm/evals/__init__.py +7 -0
  17. gatewaysdk/algorithm/evals/evals.py +217 -0
  18. gatewaysdk/algorithm/fast.py +250 -0
  19. gatewaysdk/algorithm/gepa/__init__.py +61 -0
  20. gatewaysdk/algorithm/gepa/adapter.py +495 -0
  21. gatewaysdk/algorithm/gepa/gepa.py +570 -0
  22. gatewaysdk/algorithm/gepa/lib/__init__.py +18 -0
  23. gatewaysdk/algorithm/gepa/lib/adapters/README.md +12 -0
  24. gatewaysdk/algorithm/gepa/lib/adapters/__init__.py +0 -0
  25. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/README.md +341 -0
  26. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/__init__.py +1 -0
  27. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/anymaths_adapter.py +174 -0
  28. gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/requirements.txt +1 -0
  29. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/README.md +0 -0
  30. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/__init__.py +0 -0
  31. gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/default_adapter.py +209 -0
  32. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/README.md +7 -0
  33. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/__init__.py +0 -0
  34. gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/dspy_adapter.py +307 -0
  35. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/README.md +99 -0
  36. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py +137 -0
  37. gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/full_program_adapter.py +268 -0
  38. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/GEPA_RAG.md +621 -0
  39. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/__init__.py +56 -0
  40. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/evaluation_metrics.py +226 -0
  41. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/generic_rag_adapter.py +496 -0
  42. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/rag_pipeline.py +238 -0
  43. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_store_interface.py +212 -0
  44. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/__init__.py +2 -0
  45. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/chroma_store.py +196 -0
  46. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/lancedb_store.py +422 -0
  47. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/milvus_store.py +409 -0
  48. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/qdrant_store.py +368 -0
  49. gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/weaviate_store.py +418 -0
  50. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/README.md +552 -0
  51. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/__init__.py +37 -0
  52. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_adapter.py +699 -0
  53. gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_client.py +364 -0
  54. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/README.md +9 -0
  55. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/__init__.py +0 -0
  56. gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/terminal_bench_adapter.py +217 -0
  57. gatewaysdk/algorithm/gepa/lib/api.py +382 -0
  58. gatewaysdk/algorithm/gepa/lib/core/__init__.py +0 -0
  59. gatewaysdk/algorithm/gepa/lib/core/adapter.py +180 -0
  60. gatewaysdk/algorithm/gepa/lib/core/data_loader.py +74 -0
  61. gatewaysdk/algorithm/gepa/lib/core/engine.py +379 -0
  62. gatewaysdk/algorithm/gepa/lib/core/result.py +233 -0
  63. gatewaysdk/algorithm/gepa/lib/core/state.py +636 -0
  64. gatewaysdk/algorithm/gepa/lib/examples/__init__.py +0 -0
  65. gatewaysdk/algorithm/gepa/lib/examples/aime.py +24 -0
  66. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/eval_default.py +111 -0
  67. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/instruction_prompt.txt +9 -0
  68. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/optimal_prompt.txt +24 -0
  69. gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/train_anymaths.py +177 -0
  70. gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/arc_agi.ipynb +25705 -0
  71. gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/example.ipynb +348 -0
  72. gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/__init__.py +4 -0
  73. gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/mcp_optimization_example.py +456 -0
  74. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/RAG_GUIDE.md +613 -0
  75. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/__init__.py +9 -0
  76. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/rag_optimization.py +820 -0
  77. gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/requirements-rag.txt +29 -0
  78. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/instruction_prompt.txt +16 -0
  79. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/terminus.txt +9 -0
  80. gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/train_terminus.py +161 -0
  81. gatewaysdk/algorithm/gepa/lib/gepa_utils.py +117 -0
  82. gatewaysdk/algorithm/gepa/lib/logging/__init__.py +0 -0
  83. gatewaysdk/algorithm/gepa/lib/logging/experiment_tracker.py +187 -0
  84. gatewaysdk/algorithm/gepa/lib/logging/logger.py +75 -0
  85. gatewaysdk/algorithm/gepa/lib/logging/utils.py +103 -0
  86. gatewaysdk/algorithm/gepa/lib/proposer/__init__.py +0 -0
  87. gatewaysdk/algorithm/gepa/lib/proposer/base.py +31 -0
  88. gatewaysdk/algorithm/gepa/lib/proposer/merge.py +357 -0
  89. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/__init__.py +0 -0
  90. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/base.py +49 -0
  91. gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/reflective_mutation.py +176 -0
  92. gatewaysdk/algorithm/gepa/lib/py.typed +0 -0
  93. gatewaysdk/algorithm/gepa/lib/strategies/__init__.py +0 -0
  94. gatewaysdk/algorithm/gepa/lib/strategies/batch_sampler.py +77 -0
  95. gatewaysdk/algorithm/gepa/lib/strategies/candidate_selector.py +50 -0
  96. gatewaysdk/algorithm/gepa/lib/strategies/component_selector.py +36 -0
  97. gatewaysdk/algorithm/gepa/lib/strategies/eval_policy.py +64 -0
  98. gatewaysdk/algorithm/gepa/lib/strategies/instruction_proposal.py +126 -0
  99. gatewaysdk/algorithm/gepa/lib/utils/__init__.py +10 -0
  100. gatewaysdk/algorithm/gepa/lib/utils/stop_condition.py +196 -0
  101. gatewaysdk/algorithm/gepa/tracing.py +105 -0
  102. gatewaysdk/algorithm/utils.py +177 -0
  103. gatewaysdk/algorithm/verl/__init__.py +5 -0
  104. gatewaysdk/algorithm/verl/interface.py +202 -0
  105. gatewaysdk/automations.py +111 -0
  106. gatewaysdk/benchmark_hub/README.md +88 -0
  107. gatewaysdk/benchmark_hub/__init__.py +119 -0
  108. gatewaysdk/benchmark_hub/_archive.py +189 -0
  109. gatewaysdk/benchmark_hub/_tar.py +6 -0
  110. gatewaysdk/benchmark_hub/client.py +992 -0
  111. gatewaysdk/benchmark_hub/dispatch_shard.py +34 -0
  112. gatewaysdk/benchmark_hub/eval_config.py +20 -0
  113. gatewaysdk/benchmark_hub/evals.py +351 -0
  114. gatewaysdk/benchmark_hub/harbor_adapter.py +673 -0
  115. gatewaysdk/benchmark_hub/path_utils.py +81 -0
  116. gatewaysdk/benchmark_hub/save_utils.py +101 -0
  117. gatewaysdk/benchmark_hub/verifiers_adapter.py +327 -0
  118. gatewaysdk/benchmark_hub/versioning.py +72 -0
  119. gatewaysdk/build.py +515 -0
  120. gatewaysdk/cli/__init__.py +58 -0
  121. gatewaysdk/cli/agent_runner.py +132 -0
  122. gatewaysdk/cli/http_client.py +115 -0
  123. gatewaysdk/cli/platform.py +4086 -0
  124. gatewaysdk/cli/prometheus.py +115 -0
  125. gatewaysdk/cli/release_gate.py +215 -0
  126. gatewaysdk/cli/store.py +131 -0
  127. gatewaysdk/cli/vllm.py +29 -0
  128. gatewaysdk/client.py +406 -0
  129. gatewaysdk/config.py +348 -0
  130. gatewaysdk/connectors/__init__.py +25 -0
  131. gatewaysdk/connectors/client.py +203 -0
  132. gatewaysdk/connectors/skill.py +25 -0
  133. gatewaysdk/connectors/template.py +106 -0
  134. gatewaysdk/context.py +606 -0
  135. gatewaysdk/emitter/__init__.py +43 -0
  136. gatewaysdk/emitter/annotation.py +370 -0
  137. gatewaysdk/emitter/exception.py +54 -0
  138. gatewaysdk/emitter/message.py +61 -0
  139. gatewaysdk/emitter/object.py +117 -0
  140. gatewaysdk/emitter/reward.py +320 -0
  141. gatewaysdk/env_var.py +156 -0
  142. gatewaysdk/environment/__init__.py +108 -0
  143. gatewaysdk/environment/_bundle.py +281 -0
  144. gatewaysdk/environment/_harbor.py +276 -0
  145. gatewaysdk/environment/_materialize.py +97 -0
  146. gatewaysdk/environment/_tar.py +33 -0
  147. gatewaysdk/environment/_world.py +346 -0
  148. gatewaysdk/environment/core.py +527 -0
  149. gatewaysdk/environment/errors.py +58 -0
  150. gatewaysdk/environment/runtime.py +150 -0
  151. gatewaysdk/environment/schema/__init__.py +35 -0
  152. gatewaysdk/environment/schema/__main__.py +225 -0
  153. gatewaysdk/environment/schema/_slack_fidelity.py +116 -0
  154. gatewaysdk/environment/schema/_slack_scenario.py +183 -0
  155. gatewaysdk/environment/schema/api.py +1628 -0
  156. gatewaysdk/environment/schema/batch.py +755 -0
  157. gatewaysdk/environment/schema/compiler.py +615 -0
  158. gatewaysdk/environment/schema/conform.py +428 -0
  159. gatewaysdk/environment/schema/connector.py +777 -0
  160. gatewaysdk/environment/schema/connectors/apple-business-manager/handlers.py +17 -0
  161. gatewaysdk/environment/schema/connectors/apple-business-manager/parity.json +28 -0
  162. gatewaysdk/environment/schema/connectors/apple-business-manager/provenance.json +233 -0
  163. gatewaysdk/environment/schema/connectors/apple-business-manager/scope.toml +112 -0
  164. gatewaysdk/environment/schema/connectors/apple-business-manager/world.json +1380 -0
  165. gatewaysdk/environment/schema/connectors/base.json +28 -0
  166. gatewaysdk/environment/schema/connectors/custom/handlers.py +18 -0
  167. gatewaysdk/environment/schema/connectors/custom/world.json +123 -0
  168. gatewaysdk/environment/schema/connectors/github/handlers.py +81 -0
  169. gatewaysdk/environment/schema/connectors/github/parity.json +37 -0
  170. gatewaysdk/environment/schema/connectors/github/provenance.json +134 -0
  171. gatewaysdk/environment/schema/connectors/github/scope.toml +158 -0
  172. gatewaysdk/environment/schema/connectors/github/world.json +5869 -0
  173. gatewaysdk/environment/schema/connectors/google-calendar/handlers.py +23 -0
  174. gatewaysdk/environment/schema/connectors/google-calendar/world.json +209 -0
  175. gatewaysdk/environment/schema/connectors/google-drive/handlers.py +18 -0
  176. gatewaysdk/environment/schema/connectors/google-drive/world.json +286 -0
  177. gatewaysdk/environment/schema/connectors/jamf/handlers.py +34 -0
  178. gatewaysdk/environment/schema/connectors/jamf/parity.json +49 -0
  179. gatewaysdk/environment/schema/connectors/jamf/provenance.json +181 -0
  180. gatewaysdk/environment/schema/connectors/jamf/scope.toml +128 -0
  181. gatewaysdk/environment/schema/connectors/jamf/world.json +2218 -0
  182. gatewaysdk/environment/schema/connectors/jira/handlers.py +28 -0
  183. gatewaysdk/environment/schema/connectors/jira/world.json +389 -0
  184. gatewaysdk/environment/schema/connectors/kandji/handlers.py +38 -0
  185. gatewaysdk/environment/schema/connectors/kandji/parity.json +29 -0
  186. gatewaysdk/environment/schema/connectors/kandji/provenance.json +152 -0
  187. gatewaysdk/environment/schema/connectors/kandji/scope.toml +120 -0
  188. gatewaysdk/environment/schema/connectors/kandji/world.json +765 -0
  189. gatewaysdk/environment/schema/connectors/linear/handlers.py +20 -0
  190. gatewaysdk/environment/schema/connectors/linear/world.json +363 -0
  191. gatewaysdk/environment/schema/connectors/microsoft-teams/fidelity.json +45 -0
  192. gatewaysdk/environment/schema/connectors/microsoft-teams/handlers.py +1 -0
  193. gatewaysdk/environment/schema/connectors/microsoft-teams/provenance.json +851 -0
  194. gatewaysdk/environment/schema/connectors/microsoft-teams/scope.md +231 -0
  195. gatewaysdk/environment/schema/connectors/microsoft-teams/teams-types.json +1710 -0
  196. gatewaysdk/environment/schema/connectors/microsoft-teams/world.json +858 -0
  197. gatewaysdk/environment/schema/connectors/netsuite/handlers.py +32 -0
  198. gatewaysdk/environment/schema/connectors/netsuite/parity.json +50 -0
  199. gatewaysdk/environment/schema/connectors/netsuite/provenance.json +137 -0
  200. gatewaysdk/environment/schema/connectors/netsuite/scope.toml +78 -0
  201. gatewaysdk/environment/schema/connectors/netsuite/world.json +16243 -0
  202. gatewaysdk/environment/schema/connectors/salesforce/handlers.py +806 -0
  203. gatewaysdk/environment/schema/connectors/salesforce/parity.json +46 -0
  204. gatewaysdk/environment/schema/connectors/salesforce/provenance.json +143 -0
  205. gatewaysdk/environment/schema/connectors/salesforce/scope.toml +174 -0
  206. gatewaysdk/environment/schema/connectors/salesforce/world.json +4695 -0
  207. gatewaysdk/environment/schema/connectors/slack/MODEL.md +236 -0
  208. gatewaysdk/environment/schema/connectors/slack/capabilities.json +1039 -0
  209. gatewaysdk/environment/schema/connectors/slack/handlers.py +762 -0
  210. gatewaysdk/environment/schema/connectors/slack/parity.json +65 -0
  211. gatewaysdk/environment/schema/connectors/slack/provenance.json +294 -0
  212. gatewaysdk/environment/schema/connectors/slack/scope.toml +44 -0
  213. gatewaysdk/environment/schema/connectors/slack/world.json +4993 -0
  214. gatewaysdk/environment/schema/connectors/workday/handlers.py +75 -0
  215. gatewaysdk/environment/schema/connectors/workday/parity.json +36 -0
  216. gatewaysdk/environment/schema/connectors/workday/provenance.json +179 -0
  217. gatewaysdk/environment/schema/connectors/workday/scope.toml +180 -0
  218. gatewaysdk/environment/schema/connectors/workday/world.json +806 -0
  219. gatewaysdk/environment/schema/data.py +593 -0
  220. gatewaysdk/environment/schema/extract.py +263 -0
  221. gatewaysdk/environment/schema/host.py +2437 -0
  222. gatewaysdk/environment/schema/host_surfaces.py +275 -0
  223. gatewaysdk/environment/schema/platform.py +1272 -0
  224. gatewaysdk/environment/schema/scaffold.py +250 -0
  225. gatewaysdk/environment/schema/skill.py +118 -0
  226. gatewaysdk/environment/schema/skills/agents/connector-template-author.md +202 -0
  227. gatewaysdk/environment/schema/skills/connector-schema-authoring/CONNECTORS.md +331 -0
  228. gatewaysdk/environment/schema/skills/connector-schema-authoring/CONVENTIONS.md +100 -0
  229. gatewaysdk/environment/schema/skills/connector-schema-authoring/SKILL.md +313 -0
  230. gatewaysdk/environment/schema/skills/world-data-ingestion/ROWS.md +223 -0
  231. gatewaysdk/environment/schema/skills/world-data-ingestion/SKILL.md +293 -0
  232. gatewaysdk/environment/schema/skills/worlds-getting-started/SKILL.md +390 -0
  233. gatewaysdk/environment/schema/slack.py +757 -0
  234. gatewaysdk/environment/schema/snapshot.py +479 -0
  235. gatewaysdk/environment/schema/store.py +904 -0
  236. gatewaysdk/environment/schema/tasks.py +525 -0
  237. gatewaysdk/environment/schema/tools_world.py +322 -0
  238. gatewaysdk/environment/schema/validation.py +577 -0
  239. gatewaysdk/environment/schema/worker.py +78 -0
  240. gatewaysdk/environment/schema/workers.py +500 -0
  241. gatewaysdk/environment/schema/world_tests.py +336 -0
  242. gatewaysdk/environments/__init__.py +24 -0
  243. gatewaysdk/environments/client.py +486 -0
  244. gatewaysdk/environments/types.py +318 -0
  245. gatewaysdk/execution/__init__.py +15 -0
  246. gatewaysdk/execution/base.py +64 -0
  247. gatewaysdk/execution/client_server.py +443 -0
  248. gatewaysdk/execution/events.py +69 -0
  249. gatewaysdk/execution/inter_process.py +16 -0
  250. gatewaysdk/execution/shared_memory.py +282 -0
  251. gatewaysdk/experiments/__init__.py +90 -0
  252. gatewaysdk/experiments/assignment.py +177 -0
  253. gatewaysdk/experiments/client.py +877 -0
  254. gatewaysdk/experiments/exposure.py +222 -0
  255. gatewaysdk/experiments/types.py +81 -0
  256. gatewaysdk/importers/__init__.py +49 -0
  257. gatewaysdk/importers/_normalize.py +91 -0
  258. gatewaysdk/importers/builder.py +173 -0
  259. gatewaysdk/importers/client.py +95 -0
  260. gatewaysdk/importers/langsmith.py +196 -0
  261. gatewaysdk/importers/recipes.py +249 -0
  262. gatewaysdk/instrumentation/__init__.py +300 -0
  263. gatewaysdk/instrumentation/agentops.py +314 -0
  264. gatewaysdk/instrumentation/agentops_langchain.py +45 -0
  265. gatewaysdk/instrumentation/base.py +119 -0
  266. gatewaysdk/instrumentation/litellm.py +83 -0
  267. gatewaysdk/instrumentation/registry.py +273 -0
  268. gatewaysdk/instrumentation/vllm.py +81 -0
  269. gatewaysdk/instrumentation/weave.py +500 -0
  270. gatewaysdk/integrations/__init__.py +15 -0
  271. gatewaysdk/integrations/gateway/__init__.py +11 -0
  272. gatewaysdk/integrations/gateway/client.py +171 -0
  273. gatewaysdk/integrations/tool_access.py +549 -0
  274. gatewaysdk/litagent/__init__.py +11 -0
  275. gatewaysdk/litagent/decorator.py +536 -0
  276. gatewaysdk/litagent/litagent.py +252 -0
  277. gatewaysdk/llm_proxy.py +1742 -0
  278. gatewaysdk/logging.py +370 -0
  279. gatewaysdk/memory.py +278 -0
  280. gatewaysdk/personas.py +186 -0
  281. gatewaysdk/platform/__init__.py +17 -0
  282. gatewaysdk/platform/builder.py +221 -0
  283. gatewaysdk/platform/compatibility.py +67 -0
  284. gatewaysdk/platform/manifest.py +185 -0
  285. gatewaysdk/platform/orchestrator.py +901 -0
  286. gatewaysdk/platform/registry.py +122 -0
  287. gatewaysdk/platform/worker.py +864 -0
  288. gatewaysdk/replay/__init__.py +1032 -0
  289. gatewaysdk/replay/pytest.py +56 -0
  290. gatewaysdk/reward.py +7 -0
  291. gatewaysdk/run.py +1781 -0
  292. gatewaysdk/runner/__init__.py +11 -0
  293. gatewaysdk/runner/agent.py +878 -0
  294. gatewaysdk/runner/base.py +182 -0
  295. gatewaysdk/runner/legacy.py +309 -0
  296. gatewaysdk/security.py +700 -0
  297. gatewaysdk/semconv.py +170 -0
  298. gatewaysdk/server.py +399 -0
  299. gatewaysdk/sessions.py +282 -0
  300. gatewaysdk/store/__init__.py +45 -0
  301. gatewaysdk/store/base.py +908 -0
  302. gatewaysdk/store/client_server.py +2093 -0
  303. gatewaysdk/store/collection/__init__.py +30 -0
  304. gatewaysdk/store/collection/base.py +587 -0
  305. gatewaysdk/store/collection/memory.py +970 -0
  306. gatewaysdk/store/collection/mongo.py +1412 -0
  307. gatewaysdk/store/collection_based.py +1823 -0
  308. gatewaysdk/store/gateway.py +983 -0
  309. gatewaysdk/store/gateway_listener.py +465 -0
  310. gatewaysdk/store/listener.py +58 -0
  311. gatewaysdk/store/memory.py +396 -0
  312. gatewaysdk/store/mongo.py +165 -0
  313. gatewaysdk/store/redis_stream.py +517 -0
  314. gatewaysdk/store/sqlite.py +3 -0
  315. gatewaysdk/store/threading.py +370 -0
  316. gatewaysdk/store/utils.py +142 -0
  317. gatewaysdk/tracer/__init__.py +14 -0
  318. gatewaysdk/tracer/base.py +286 -0
  319. gatewaysdk/tracer/dummy.py +106 -0
  320. gatewaysdk/tracer/otel.py +559 -0
  321. gatewaysdk/tracing/__init__.py +110 -0
  322. gatewaysdk/tracing/api.py +808 -0
  323. gatewaysdk/tracing/attributes.py +9 -0
  324. gatewaysdk/tracing/context.py +272 -0
  325. gatewaysdk/tracing/exporters/__init__.py +10 -0
  326. gatewaysdk/tracing/exporters/gateway.py +228 -0
  327. gatewaysdk/tracing/identity.py +288 -0
  328. gatewaysdk/tracing/init.py +620 -0
  329. gatewaysdk/tracing/instrumentors/__init__.py +15 -0
  330. gatewaysdk/tracing/instrumentors/claude_agent_sdk.py +766 -0
  331. gatewaysdk/tracing/instrumentors/instrumentation_principles.md +294 -0
  332. gatewaysdk/tracing/instrumentors/registry.py +352 -0
  333. gatewaysdk/tracing/mapping.py +729 -0
  334. gatewaysdk/tracing/processors.py +393 -0
  335. gatewaysdk/tracing/push.py +617 -0
  336. gatewaysdk/tracing/push_models.py +247 -0
  337. gatewaysdk/tracing/semconv.py +294 -0
  338. gatewaysdk/tracing/span_builder.py +356 -0
  339. gatewaysdk/trainer/__init__.py +6 -0
  340. gatewaysdk/trainer/init_utils.py +263 -0
  341. gatewaysdk/trainer/legacy.py +359 -0
  342. gatewaysdk/trainer/registry.py +12 -0
  343. gatewaysdk/trainer/trainer.py +638 -0
  344. gatewaysdk/types/__init__.py +63 -0
  345. gatewaysdk/types/core.py +556 -0
  346. gatewaysdk/types/resources.py +204 -0
  347. gatewaysdk/types/tracer.py +515 -0
  348. gatewaysdk/types/tracing.py +162 -0
  349. gatewaysdk/users.py +251 -0
  350. gatewaysdk/utils/__init__.py +1 -0
  351. gatewaysdk/utils/id.py +18 -0
  352. gatewaysdk/utils/metrics.py +1025 -0
  353. gatewaysdk/utils/otel.py +550 -0
  354. gatewaysdk/utils/otlp.py +556 -0
  355. gatewaysdk/utils/redact.py +22 -0
  356. gatewaysdk/utils/server_launcher.py +1045 -0
  357. gatewaysdk/utils/system_snapshot.py +90 -0
  358. gatewaysdk/verl/__init__.py +8 -0
  359. gatewaysdk/verl/__main__.py +6 -0
  360. gatewaysdk/verl/async_server.py +46 -0
  361. gatewaysdk/verl/config.yaml +27 -0
  362. gatewaysdk/verl/daemon.py +1154 -0
  363. gatewaysdk/verl/dataset.py +44 -0
  364. gatewaysdk/verl/entrypoint.py +248 -0
  365. gatewaysdk/verl/trainer.py +549 -0
  366. gatewaysdk/world_browser.py +748 -0
  367. gatewaysdk/world_data.py +453 -0
  368. gatewaysdk/world_sessions.py +978 -0
  369. gatewaysdk/world_tasks.py +285 -0
  370. gatewaysdk/world_tools.py +115 -0
  371. gatewaysdk/worlds.py +639 -0
  372. gatewaysdk-0.3.2.dist-info/METADATA +236 -0
  373. gatewaysdk-0.3.2.dist-info/RECORD +376 -0
  374. gatewaysdk-0.3.2.dist-info/WHEEL +4 -0
  375. gatewaysdk-0.3.2.dist-info/entry_points.txt +5 -0
  376. gatewaysdk-0.3.2.dist-info/licenses/LICENSE +19 -0
@@ -0,0 +1,236 @@
1
+ # Slack collaboration domain v2
2
+
3
+ This finite collaboration model now includes a Slack-shaped executable subset through
4
+ Gateway hosted mock-tools. Synthetic fixtures are invented; no live fidelity is
5
+ claimed. Official Slack documentation takes precedence over the pinned emulator
6
+ reference. [capabilities.json](capabilities.json) classifies every entity and tool.
7
+ Its authoring format shares entity/operation defaults; initialization and publication
8
+ expand those defaults into self-contained version-1 capability entries.
9
+
10
+ [world.json](world.json) defines the contract. [scope.toml](scope.toml) bounds it;
11
+ [provenance.json](provenance.json) pins sources. These metadata files and this guide
12
+ are not compiler dependencies or lock inputs. The schema hash identifies
13
+ the template before initialization customizes its package ID.
14
+
15
+ ## Use
16
+
17
+ With the SDK installed, initialize an empty world:
18
+
19
+ ```sh
20
+ python -m gatewaysdk.environment.schema init ./slack-world --connector slack
21
+ python -m gatewaysdk.environment.schema check ./slack-world
22
+ ```
23
+
24
+ From the Gateway repository root, generate an example in a new or empty directory:
25
+
26
+ ```sh
27
+ python samples/schema-worlds/rebuild_slack.py /tmp/slack-example
28
+ python -m gatewaysdk.environment.schema check /tmp/slack-example
29
+ ```
30
+
31
+ The builder compiles the SDK template and maps authored
32
+ `samples/schema-worlds/slack/data/records.json` into its initial batch. The source
33
+ fixture directory is not runnable. Use `describe` for inventory.
34
+
35
+ ## Identity and normalization
36
+
37
+ `workspace_id` means the containing modeled workspace, not an actor's home team.
38
+ Vendor team/enterprise fields retain their meanings; remote references need no
39
+ fabricated workspace rows. Object roots use vendor `id`. Emulator row IDs,
40
+ persistence bookkeeping and lookup indexes do not become domain constraints.
41
+
42
+ Messages use `(workspace_id, channel_id, ts)`. Timestamp bytes are identity:
43
+ numerically equivalent spellings remain distinct keys. Unix seconds use integers;
44
+ conversation `updated` uses milliseconds. `list_messages` compares decimal strings
45
+ without floats and breaks numeric ties using original bytes. The domain
46
+ accepts any nonempty timestamp string, while that helper rejects malformed decimals.
47
+
48
+ Structural associations require complete local targets. Historical authors,
49
+ editors, uploaders, reaction actors and remote identities remain typed observations:
50
+ materializing them does not require inventing users, bots, apps or memberships.
51
+ Viewer state, recipients, presence, group membership and view ownership require
52
+ local users. The narrower `post_message` helper accepts a top-level human text
53
+ message from a current member; this is not a universal rule for imported messages.
54
+
55
+ `slack_message_threads` is the only persistent thread authority. Reconstruct a
56
+ reply's `thread_ts` from its association's `parent_ts`. Top-level messages need no
57
+ association. A parent's self marker can be inferred from replies; its presence
58
+ on a reply-less projection is lost. Scheduled/ephemeral thread associations
59
+ point to persistent messages in the same containing workspace and conversation.
60
+ No root-only, depth or cycle restrictions are enforced.
61
+
62
+ Reaction/reply/member counts and file-share statistics are observations,
63
+ independent of local rows or actor samples. User-group `user_count` allows strings
64
+ and integers because the official example and field table disagree; string
65
+ numeric syntax is not enforced.
66
+
67
+ Profile fields, group memberships and view `values[block_id][action_id]` become
68
+ keyed rows. Optional `fields_state`, `users_state` and `values_state` markers
69
+ preserve absent/null/observed distinctions: `present` with no children can mean
70
+ an empty collection. Markers do not enforce completeness or consistency.
71
+
72
+ ## Rich content and files
73
+
74
+ Entity roots are closed; known rich-content envelopes are typed. Selected nested
75
+ vendor objects remain open to preserve future blocks, elements, metadata and view
76
+ state. This does not validate every Block Kit shape or conditional requirement.
77
+ `request_options` separates emulator-retained request settings from returned message
78
+ data. Nonrecursive `message` and `previous_message` preserve lifecycle observations
79
+ without creating another authority for thread, file or reaction relationships.
80
+
81
+ Structured connector capture applies a narrower explicit projection before mapping.
82
+ Known block/text/attachment fields and common nested rich-text fields survive;
83
+ unknown field names are reported without their arbitrary values. Capture allows up
84
+ to 50 blocks, 100 attachments and 1,000 child items, with structural depth eight
85
+ and 10,000 input nodes per message's rich content. Content URLs remain inert strings;
86
+ private file URLs, credentials and arbitrary message metadata are excluded. The
87
+ canonical contract still rejects invalid projected values, including null message
88
+ author IDs; missing, null, false, zero and empty values remain distinct where allowed.
89
+
90
+ `slack_files` owns full metadata; `mode`, `mimetype` and `size` are required for
91
+ that canonical shape, not every Slack projection. Missing metadata must not be
92
+ invented. Mode remains an open string rather than the emulator's restricted enum.
93
+ File URLs are metadata; no file bytes are fetched or stored.
94
+
95
+ `slack_message_files` records attachment occurrences; `slack_file_shares` adds
96
+ observations to them. Share `ts` becomes `message_ts`; `observed_thread_ts` is
97
+ not another thread authority. `slack_file_channel_observations` records
98
+ `channels/groups/ims` without implying an available share message. Local targets
99
+ remain required; counts and privacy flags need not agree with these observations.
100
+
101
+ Unavailable-file variants preserve identity and an access discriminator without
102
+ inventing a full file. Redundant `mode=file_access` plus
103
+ `file_access=check_file_info` and empty/zero metadata sentinels normalize to one
104
+ discriminator; their original distinctions are lost. Ephemeral messages have
105
+ separate full-file associations and nested unavailable references. Full/unavailable
106
+ occurrence exclusivity and position uniqueness are not enforced across rows.
107
+
108
+ Official `initial_comment` is an uploader-comment observation; the emulator's
109
+ upload-request string is separate `upload_initial_comment`. Standalone legacy
110
+ file comments and file/file-comment pins are excluded; pins target messages only.
111
+
112
+ ## Limits and compatibility
113
+
114
+ Views/navigation IDs are snapshots, without state-to-block checks, modal stacks,
115
+ trigger expiry, hash concurrency or conditional title/submit rules. Scheduled
116
+ messages never publish themselves. Ephemeral snapshots are not persistent history
117
+ or a delivery guarantee. App metadata excludes connection/installation lifecycle.
118
+
119
+ The compiler/store enforce declared types, closed roots, immutable keys, complete
120
+ foreign keys and restrict deletion. Delete dependents explicitly with their parents
121
+ in an atomic batch. Rejections roll back state and lineage. Flag consistency,
122
+ actor XOR, permissions and count equality are not enforced. Embedded metadata does
123
+ not implement the adjacent Slack product/admin domains excluded in `scope.toml`.
124
+
125
+ The domain version is **2.0.0**, mapping version **1**, and executable package
126
+ **2.1.1**. The cleanup preserves all 34 entity contracts and resolved tool input/output
127
+ shapes; shared schema references and metadata defaults reduce repeated authoring.
128
+ The `slack` slug and
129
+ `urn:gateway:connector:slack` stay stable. V1 synthetic message IDs, RFC3339 fields,
130
+ mandatory local user authors and single-channel files are not migrated. V1 batches
131
+ and persisted worlds need their original bundle or an explicit reconstruction;
132
+ recompiling v2 is not a state migration. Persisted state must match its compiled lock.
133
+ Package 2.1.0 worlds retain their original bytes and behavior. New initialization
134
+ uses the current package; refresh requires its exact trusted template digest and
135
+ rejects an older or changed pin. No published version is rewritten automatically.
136
+
137
+ ## Executable bundle and fixed principal
138
+
139
+ `build_slack_bundle(path, evidence=None)` initializes and validates a populated world.
140
+ Omitting evidence uses an invented release workspace with users, public/private/DM
141
+ conversations, memberships, a discussion/thread, rich content, reactions and files.
142
+ `gateway worlds schema init --connector slack` still creates an empty contract.
143
+ The separate exhaustive `records.json` fixture graph covers all 34 entity shapes.
144
+
145
+ The build writes a bundle-owned `tools/slack-principal.json`. Slack-shaped tools do
146
+ not accept arbitrary actor/workspace inputs; compatibility fixture helpers enforce
147
+ the same principal when this file exists. Private conversations require membership;
148
+ local writes require membership and reject archived/frozen/read-only conversations.
149
+ This is a bounded permission model, not Slack OAuth or a complete scope simulator.
150
+
151
+ Reads project canonical associations into Slack message envelopes. History returns
152
+ newest first and excludes ordinary thread replies; replies return root plus children
153
+ oldest first. Timestamp boundaries compare exact fractions. Query-bound cursors are
154
+ local offset tokens, not Slack cursor bytes; mutation between pages has no snapshot
155
+ guarantee. New message timestamps use a deterministic logical clock. Text-only edits
156
+ clear blocks; omitted attachments remain. Reaction operations mutate the current
157
+ actor's membership and increment/decrement observed counts without fabricating a
158
+ complete actor sample. Deleting a message removes its own dependent associations.
159
+ Deleting a root with dependent threads returns `unsupported_thread_root_delete`.
160
+
161
+ Paginated history, replies, users and conversations select raw rows before assembling
162
+ their responses. Each read call lazily groups needed associations from the supported
163
+ store API once per entity. File discovery reuses those groups while evaluating
164
+ visibility and total counts. These maps are local to one read; no cache survives a
165
+ mutation, reset or refresh. Exact ordering, cursor scope and sampled counts remain unchanged.
166
+
167
+ File tools expose metadata and existing message associations, without downloads or
168
+ uploads. Pins have list/add/remove behavior; bookmarks, user groups and presence are
169
+ read-only observed projections. Scheduled/ephemeral messages, apps/bots, viewer
170
+ snapshots and views do not imply delivery, administration or interactive behavior.
171
+ Consult the capability inventory for each family's precise classification.
172
+ Join/leave, pins, bookmarks, user groups and presence remain exposed; cleanup does
173
+ not remove optional operations or turn unsupported snapshots into executable features.
174
+
175
+ ## Evidence mapping and refresh
176
+
177
+ The versioned mapper consumes `gateway-slack-evidence/1` envelopes containing
178
+ workspace/principal identity and successful Slack response observations. Each has
179
+ method/context/data plus a stable evidence reference and lowercase SHA-256 digest;
180
+ a top-level source is accepted for single-artifact envelopes. Capture verifies bytes
181
+ and authorization; the mapper performs no network requests and accepts no tokens.
182
+
183
+ The mapper normalizes profiles, viewer state, threads, reaction samples, full and
184
+ unavailable files, observed shares, pins, groups and bookmarks through one atomic
185
+ store batch. Missing structural targets or full-file requirements reject the batch.
186
+ Historical actor IDs are retained without fabricated users. Overlapping observations
187
+ merge in capture order; later explicitly observed fields win. Nested projected object
188
+ fields merge recursively, while explicit null/empty scalar/list values remain values.
189
+ Partial API pages never authorize removal of unobserved keyed rows. Explicit nested
190
+ profile field maps, message attachment arrays, empty reaction arrays and is_member=false
191
+ observations generate source-backed removals for those exact associations. Full-to-
192
+ unavailable file transitions replace the attachment reference while retaining prior
193
+ file metadata as historical state. Group membership arrays remain observed samples.
194
+
195
+ `refresh_slack_bundle(path, evidence, batch_id=...)` is for an isolated copy used to
196
+ build a new version. It reconstructs validated state and lineage, then appends a
197
+ sorted `data/batches/*.json` artifact after atomic validation. The original initial
198
+ batch remains untouched. Exact retries are no-ops; reusing an ID for different bytes
199
+ rejects. Principal/workspace changes reject. Missing messages, empty history pages,
200
+ access loss and complete-page claims do not prune. Explicit `message.deleted`
201
+ observations may remove an existing message and its own associations; unresolved
202
+ thread dependents still reject atomically. Running session mutations are not merged
203
+ into connector refreshes: the parent version snapshot is the refresh base, and newly
204
+ observed fields supersede previous imported fields there. Mapping version changes
205
+ require explicit package/update review; no automatic migration is provided.
206
+
207
+ `fidelity.json` binds package, domain target, exact lock and source hash, reports
208
+ coverage/unknown fields, and leaves live replay skipped with a null score. Builds
209
+ are `synthetic` without live evidence and `subset` with captured evidence until real
210
+ comparison supports a higher label. Schema and store checks are mandatory; fidelity
211
+ reports are advisory. Synthetic goldens live under the sample's `goldens/` directory.
212
+ The authored capability inventory is the single source for `platform_capture` and
213
+ `capture_methods`. A vendor `capture_source` identifies a possible source, not proof
214
+ that the hosted pipeline requests it. Observed mutation counts and invented fixture
215
+ counts remain separate from collection policy.
216
+
217
+ ## Semantic scenario
218
+
219
+ Populated builds with a writable observed root include `scenario.json` and
220
+ `tasks.json`, plus `handoff_complete.sql`. The synthetic task requires discovering the release
221
+ conversation, reading its thread/checklist, posting the intended reply and adding
222
+ the correct reaction. The verifier checks the bound actor and exact target, preserves
223
+ baseline observations and rejects unrelated extra rows. A no-op scores zero; the
224
+ included discovery/read/write oracle scores one. Reset restores the baseline. A live
225
+ capture lacking an eligible root reports the scenario unavailable rather than
226
+ inventing one. Refresh regenerates the scenario against its newly validated state.
227
+
228
+ `schema/_slack_scenario.py` generates one read-only VALUES relation per populated
229
+ entity and bounded EXCEPT/count comparisons. SQL expression depth does not grow
230
+ with one predicate per baseline row. The grader checks exact baseline payloads,
231
+ the intended reply and acknowledgement, and their expected counter changes; edits,
232
+ deletions and extra rows cannot satisfy preservation by matching counts alone.
233
+ Synthetic tests exercise actual materialized worlds with 2,048 and 9,056 records,
234
+ including oracle/reset/reopen and refresh of an isolated copy without changing the
235
+ original version. See `tests/environment/test_schema_slack_scale.py`; these checks
236
+ establish local execution, not live Slack fidelity.