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,23 @@
1
+ """Google Calendar world tools; every mutation goes through the schema store."""
2
+
3
+ from gateway_env import store, tool
4
+
5
+
6
+ @tool(name="list_events")
7
+ def list_events(calendar_id):
8
+ return [e for e in store.list("calendar_events") if e["calendar_id"] == calendar_id]
9
+
10
+
11
+ @tool(name="create_event")
12
+ def create_event(event):
13
+ return store.insert("calendar_events", event, source={"record": "tool.create_event"})
14
+
15
+
16
+ @tool(name="cancel_event")
17
+ def cancel_event(calendar_id, id):
18
+ return store.update(
19
+ "calendar_events",
20
+ {"calendar_id": calendar_id, "id": id},
21
+ {"status": "cancelled"},
22
+ source={"record": "tool.cancel_event"},
23
+ )
@@ -0,0 +1,209 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:gateway:connector:google-calendar",
4
+ "$defs": {
5
+ "Calendar": {
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "$ref": "base.json#/$defs/Id"
10
+ },
11
+ "summary": {
12
+ "$ref": "base.json#/$defs/Label"
13
+ },
14
+ "time_zone": {
15
+ "$ref": "base.json#/$defs/Label"
16
+ },
17
+ "owner_email": {
18
+ "$ref": "base.json#/$defs/Email"
19
+ }
20
+ },
21
+ "required": [
22
+ "id",
23
+ "summary",
24
+ "time_zone",
25
+ "owner_email"
26
+ ],
27
+ "additionalProperties": false
28
+ },
29
+ "Event": {
30
+ "type": "object",
31
+ "properties": {
32
+ "calendar_id": {
33
+ "$ref": "base.json#/$defs/Id"
34
+ },
35
+ "id": {
36
+ "$ref": "base.json#/$defs/Id"
37
+ },
38
+ "summary": {
39
+ "$ref": "base.json#/$defs/Label"
40
+ },
41
+ "description": {
42
+ "anyOf": [
43
+ {
44
+ "$ref": "base.json#/$defs/Text"
45
+ },
46
+ {
47
+ "type": "null"
48
+ }
49
+ ]
50
+ },
51
+ "start": {
52
+ "$ref": "base.json#/$defs/Timestamp"
53
+ },
54
+ "end": {
55
+ "$ref": "base.json#/$defs/Timestamp"
56
+ },
57
+ "status": {
58
+ "type": "string",
59
+ "enum": [
60
+ "confirmed",
61
+ "tentative",
62
+ "cancelled"
63
+ ]
64
+ },
65
+ "organizer_email": {
66
+ "$ref": "base.json#/$defs/Email"
67
+ },
68
+ "attendees": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "properties": {
73
+ "email": {
74
+ "$ref": "base.json#/$defs/Email"
75
+ },
76
+ "response": {
77
+ "type": "string",
78
+ "enum": [
79
+ "needsAction",
80
+ "accepted",
81
+ "declined",
82
+ "tentative"
83
+ ]
84
+ }
85
+ },
86
+ "required": [
87
+ "email",
88
+ "response"
89
+ ],
90
+ "additionalProperties": false
91
+ }
92
+ }
93
+ },
94
+ "required": [
95
+ "calendar_id",
96
+ "id",
97
+ "summary",
98
+ "start",
99
+ "end",
100
+ "status",
101
+ "organizer_email",
102
+ "attendees"
103
+ ],
104
+ "additionalProperties": false
105
+ }
106
+ },
107
+ "x-gateway": {
108
+ "version": 1,
109
+ "domain_version": "1.0.0",
110
+ "package": {
111
+ "id": "gateway-connector-google-calendar",
112
+ "version": "1.0.0"
113
+ },
114
+ "entities": {
115
+ "calendar_calendars": {
116
+ "schema": {
117
+ "$ref": "#/$defs/Calendar"
118
+ },
119
+ "primary_key": [
120
+ "id"
121
+ ],
122
+ "unique": [],
123
+ "relationships": []
124
+ },
125
+ "calendar_events": {
126
+ "schema": {
127
+ "$ref": "#/$defs/Event"
128
+ },
129
+ "primary_key": [
130
+ "calendar_id",
131
+ "id"
132
+ ],
133
+ "unique": [],
134
+ "relationships": [
135
+ {
136
+ "fields": [
137
+ "calendar_id"
138
+ ],
139
+ "target": "calendar_calendars",
140
+ "on_delete": "restrict"
141
+ }
142
+ ]
143
+ }
144
+ },
145
+ "tools": {
146
+ "list_events": {
147
+ "input": {
148
+ "type": "object",
149
+ "properties": {
150
+ "calendar_id": {
151
+ "$ref": "base.json#/$defs/Id"
152
+ }
153
+ },
154
+ "required": [
155
+ "calendar_id"
156
+ ],
157
+ "additionalProperties": false
158
+ },
159
+ "output": {
160
+ "type": "array",
161
+ "items": {
162
+ "$ref": "#/$defs/Event"
163
+ }
164
+ },
165
+ "description": "Events on one calendar."
166
+ },
167
+ "create_event": {
168
+ "input": {
169
+ "type": "object",
170
+ "properties": {
171
+ "event": {
172
+ "$ref": "#/$defs/Event"
173
+ }
174
+ },
175
+ "required": [
176
+ "event"
177
+ ],
178
+ "additionalProperties": false
179
+ },
180
+ "output": {
181
+ "$ref": "#/$defs/Event"
182
+ },
183
+ "description": "Create an event on an existing calendar."
184
+ },
185
+ "cancel_event": {
186
+ "input": {
187
+ "type": "object",
188
+ "properties": {
189
+ "calendar_id": {
190
+ "$ref": "base.json#/$defs/Id"
191
+ },
192
+ "id": {
193
+ "$ref": "base.json#/$defs/Id"
194
+ }
195
+ },
196
+ "required": [
197
+ "calendar_id",
198
+ "id"
199
+ ],
200
+ "additionalProperties": false
201
+ },
202
+ "output": {
203
+ "$ref": "#/$defs/Event"
204
+ },
205
+ "description": "Mark an event cancelled; the row is kept for history."
206
+ }
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,18 @@
1
+ """Google Drive world tools; every mutation goes through the schema store."""
2
+
3
+ from gateway_env import store, tool
4
+
5
+
6
+ @tool(name="list_files")
7
+ def list_files(folder_id=None):
8
+ return [f for f in store.list("drive_files") if f.get("folder_id") == folder_id]
9
+
10
+
11
+ @tool(name="get_file")
12
+ def get_file(id):
13
+ return store.get("drive_files", {"id": id})
14
+
15
+
16
+ @tool(name="share_file")
17
+ def share_file(permission):
18
+ return store.insert("drive_permissions", permission, source={"record": "tool.share_file"})
@@ -0,0 +1,286 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:gateway:connector:google-drive",
4
+ "$defs": {
5
+ "Folder": {
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "$ref": "base.json#/$defs/Id"
10
+ },
11
+ "parent_id": {
12
+ "type": [
13
+ "string",
14
+ "null"
15
+ ],
16
+ "minLength": 1,
17
+ "maxLength": 128
18
+ },
19
+ "name": {
20
+ "$ref": "base.json#/$defs/Label"
21
+ },
22
+ "owner_email": {
23
+ "$ref": "base.json#/$defs/Email"
24
+ }
25
+ },
26
+ "required": [
27
+ "id",
28
+ "name",
29
+ "owner_email"
30
+ ],
31
+ "additionalProperties": false
32
+ },
33
+ "File": {
34
+ "type": "object",
35
+ "properties": {
36
+ "id": {
37
+ "$ref": "base.json#/$defs/Id"
38
+ },
39
+ "folder_id": {
40
+ "type": [
41
+ "string",
42
+ "null"
43
+ ],
44
+ "minLength": 1,
45
+ "maxLength": 128
46
+ },
47
+ "name": {
48
+ "$ref": "base.json#/$defs/Label"
49
+ },
50
+ "mime_type": {
51
+ "$ref": "base.json#/$defs/Label"
52
+ },
53
+ "size": {
54
+ "type": "integer",
55
+ "minimum": 0
56
+ },
57
+ "owner_email": {
58
+ "$ref": "base.json#/$defs/Email"
59
+ },
60
+ "modified_at": {
61
+ "$ref": "base.json#/$defs/Timestamp"
62
+ },
63
+ "trashed": {
64
+ "type": "boolean"
65
+ }
66
+ },
67
+ "required": [
68
+ "id",
69
+ "name",
70
+ "mime_type",
71
+ "size",
72
+ "owner_email",
73
+ "modified_at",
74
+ "trashed"
75
+ ],
76
+ "additionalProperties": false
77
+ },
78
+ "Permission": {
79
+ "type": "object",
80
+ "properties": {
81
+ "file_id": {
82
+ "$ref": "base.json#/$defs/Id"
83
+ },
84
+ "principal": {
85
+ "$ref": "base.json#/$defs/Email"
86
+ },
87
+ "role": {
88
+ "type": "string",
89
+ "enum": [
90
+ "reader",
91
+ "commenter",
92
+ "writer",
93
+ "owner"
94
+ ]
95
+ }
96
+ },
97
+ "required": [
98
+ "file_id",
99
+ "principal",
100
+ "role"
101
+ ],
102
+ "additionalProperties": false
103
+ },
104
+ "Revision": {
105
+ "type": "object",
106
+ "properties": {
107
+ "id": {
108
+ "$ref": "base.json#/$defs/Id"
109
+ },
110
+ "file_id": {
111
+ "$ref": "base.json#/$defs/Id"
112
+ },
113
+ "modified_at": {
114
+ "$ref": "base.json#/$defs/Timestamp"
115
+ },
116
+ "size": {
117
+ "type": "integer",
118
+ "minimum": 0
119
+ },
120
+ "author_email": {
121
+ "$ref": "base.json#/$defs/Email"
122
+ }
123
+ },
124
+ "required": [
125
+ "id",
126
+ "file_id",
127
+ "modified_at",
128
+ "size",
129
+ "author_email"
130
+ ],
131
+ "additionalProperties": false
132
+ }
133
+ },
134
+ "x-gateway": {
135
+ "version": 1,
136
+ "domain_version": "1.0.0",
137
+ "package": {
138
+ "id": "gateway-connector-google-drive",
139
+ "version": "1.0.0"
140
+ },
141
+ "entities": {
142
+ "drive_folders": {
143
+ "schema": {
144
+ "$ref": "#/$defs/Folder"
145
+ },
146
+ "primary_key": [
147
+ "id"
148
+ ],
149
+ "unique": [],
150
+ "relationships": [
151
+ {
152
+ "fields": [
153
+ "parent_id"
154
+ ],
155
+ "target": "drive_folders",
156
+ "on_delete": "restrict"
157
+ }
158
+ ]
159
+ },
160
+ "drive_files": {
161
+ "schema": {
162
+ "$ref": "#/$defs/File"
163
+ },
164
+ "primary_key": [
165
+ "id"
166
+ ],
167
+ "unique": [],
168
+ "relationships": [
169
+ {
170
+ "fields": [
171
+ "folder_id"
172
+ ],
173
+ "target": "drive_folders",
174
+ "on_delete": "restrict"
175
+ }
176
+ ]
177
+ },
178
+ "drive_permissions": {
179
+ "schema": {
180
+ "$ref": "#/$defs/Permission"
181
+ },
182
+ "primary_key": [
183
+ "file_id",
184
+ "principal"
185
+ ],
186
+ "unique": [],
187
+ "relationships": [
188
+ {
189
+ "fields": [
190
+ "file_id"
191
+ ],
192
+ "target": "drive_files",
193
+ "on_delete": "restrict"
194
+ }
195
+ ]
196
+ },
197
+ "drive_revisions": {
198
+ "schema": {
199
+ "$ref": "#/$defs/Revision"
200
+ },
201
+ "primary_key": [
202
+ "id"
203
+ ],
204
+ "unique": [],
205
+ "relationships": [
206
+ {
207
+ "fields": [
208
+ "file_id"
209
+ ],
210
+ "target": "drive_files",
211
+ "on_delete": "restrict"
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ "tools": {
217
+ "list_files": {
218
+ "input": {
219
+ "type": "object",
220
+ "properties": {
221
+ "folder_id": {
222
+ "type": [
223
+ "string",
224
+ "null"
225
+ ],
226
+ "minLength": 1,
227
+ "maxLength": 128
228
+ }
229
+ },
230
+ "required": [],
231
+ "additionalProperties": false
232
+ },
233
+ "output": {
234
+ "type": "array",
235
+ "items": {
236
+ "$ref": "#/$defs/File"
237
+ }
238
+ },
239
+ "description": "Files in a folder; null lists the root."
240
+ },
241
+ "get_file": {
242
+ "input": {
243
+ "type": "object",
244
+ "properties": {
245
+ "id": {
246
+ "$ref": "base.json#/$defs/Id"
247
+ }
248
+ },
249
+ "required": [
250
+ "id"
251
+ ],
252
+ "additionalProperties": false
253
+ },
254
+ "output": {
255
+ "anyOf": [
256
+ {
257
+ "$ref": "#/$defs/File"
258
+ },
259
+ {
260
+ "type": "null"
261
+ }
262
+ ]
263
+ },
264
+ "description": "One file's metadata, or null."
265
+ },
266
+ "share_file": {
267
+ "input": {
268
+ "type": "object",
269
+ "properties": {
270
+ "permission": {
271
+ "$ref": "#/$defs/Permission"
272
+ }
273
+ },
274
+ "required": [
275
+ "permission"
276
+ ],
277
+ "additionalProperties": false
278
+ },
279
+ "output": {
280
+ "$ref": "#/$defs/Permission"
281
+ },
282
+ "description": "Grant a principal a role on an existing file."
283
+ }
284
+ }
285
+ }
286
+ }
@@ -0,0 +1,34 @@
1
+ """Jamf Pro world tools; every mutation goes through the schema store.
2
+
3
+ Errors carry the status and description the pinned Jamf Pro API spec documents
4
+ for the endpoint each tool mirrors, in the shape of ``ApiError``'s single cause.
5
+ Jamf does not publish the ``code`` values, so none is invented here.
6
+ """
7
+
8
+ from gateway_env import store, tool
9
+
10
+
11
+ @tool(name="list_computers")
12
+ def list_computers():
13
+ return store.list("jamf_computers")
14
+
15
+
16
+ @tool(name="get_computer")
17
+ def get_computer(id):
18
+ computer = store.get("jamf_computers", {"id": id})
19
+ if computer is None:
20
+ raise ValueError("404: Specified computer object does not exist.")
21
+ return computer
22
+
23
+
24
+ @tool(name="list_policies")
25
+ def list_policies():
26
+ return store.list("jamf_policies")
27
+
28
+
29
+ @tool(name="create_computer_group")
30
+ def create_computer_group(group):
31
+ taken = any(g["name"] == group["name"] for g in store.list("jamf_computer_groups"))
32
+ if taken:
33
+ raise ValueError("422: Duplicate group name.")
34
+ return store.insert("jamf_computer_groups", group, source={"record": "tool.create_computer_group"})
@@ -0,0 +1,49 @@
1
+ {
2
+ "version": 1,
3
+ "connector": "jamf",
4
+ "status": "subset",
5
+ "world_tools": [
6
+ "create_computer_group",
7
+ "get_computer",
8
+ "list_computers",
9
+ "list_policies"
10
+ ],
11
+ "registration": {
12
+ "mode": "remote_mcp",
13
+ "provider": "user_configured",
14
+ "managed_tool_allowlist": []
15
+ },
16
+ "surfaces": [
17
+ {
18
+ "name": "Jamf Developer MCP",
19
+ "kind": "official_hosted_mcp",
20
+ "auth": "none for documentation tools",
21
+ "manifest_validation": "credentialed",
22
+ "supported_world_tools": [],
23
+ "limitations": [
24
+ "The tools expose Jamf API specifications, not tenant data operations."
25
+ ],
26
+ "evidence": [
27
+ "https://developer.jamf.com/developer-guide/docs/mcp",
28
+ "https://developer.jamf.com/mcp"
29
+ ]
30
+ },
31
+ {
32
+ "name": "Jamf MCP Hub",
33
+ "kind": "open_source_remote_mcp",
34
+ "auth": "Jamf tenant URL, API client ID, and API client secret",
35
+ "manifest_validation": "public_catalog",
36
+ "supported_world_tools": [
37
+ "create_computer_group",
38
+ "get_computer",
39
+ "list_computers",
40
+ "list_policies"
41
+ ],
42
+ "limitations": [
43
+ "Tool names and response contracts do not exactly match the schema world.",
44
+ "Gateway configures a remote server; tenant credentials remain in the Hub."
45
+ ],
46
+ "evidence": ["https://github.com/Jamf-Concepts/mcp-hub"]
47
+ }
48
+ ]
49
+ }