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.
- gatewaysdk/__init__.py +540 -0
- gatewaysdk/adapter/__init__.py +15 -0
- gatewaysdk/adapter/base.py +94 -0
- gatewaysdk/adapter/messages.py +270 -0
- gatewaysdk/adapter/triplet.py +1026 -0
- gatewaysdk/algorithm/__init__.py +39 -0
- gatewaysdk/algorithm/apo/__init__.py +5 -0
- gatewaysdk/algorithm/apo/apo.py +898 -0
- gatewaysdk/algorithm/apo/prompts/apply_edit_variant01.poml +22 -0
- gatewaysdk/algorithm/apo/prompts/apply_edit_variant02.poml +18 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant01.poml +18 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant02.poml +16 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant03.poml +107 -0
- gatewaysdk/algorithm/base.py +262 -0
- gatewaysdk/algorithm/decorator.py +264 -0
- gatewaysdk/algorithm/evals/__init__.py +7 -0
- gatewaysdk/algorithm/evals/evals.py +217 -0
- gatewaysdk/algorithm/fast.py +250 -0
- gatewaysdk/algorithm/gepa/__init__.py +61 -0
- gatewaysdk/algorithm/gepa/adapter.py +495 -0
- gatewaysdk/algorithm/gepa/gepa.py +570 -0
- gatewaysdk/algorithm/gepa/lib/__init__.py +18 -0
- gatewaysdk/algorithm/gepa/lib/adapters/README.md +12 -0
- gatewaysdk/algorithm/gepa/lib/adapters/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/README.md +341 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/__init__.py +1 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/anymaths_adapter.py +174 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/requirements.txt +1 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/README.md +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/default_adapter.py +209 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/README.md +7 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/dspy_adapter.py +307 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/README.md +99 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py +137 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/full_program_adapter.py +268 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/GEPA_RAG.md +621 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/__init__.py +56 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/evaluation_metrics.py +226 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/generic_rag_adapter.py +496 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/rag_pipeline.py +238 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_store_interface.py +212 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/__init__.py +2 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/chroma_store.py +196 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/lancedb_store.py +422 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/milvus_store.py +409 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/qdrant_store.py +368 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/weaviate_store.py +418 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/README.md +552 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/__init__.py +37 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_adapter.py +699 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_client.py +364 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/README.md +9 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/terminal_bench_adapter.py +217 -0
- gatewaysdk/algorithm/gepa/lib/api.py +382 -0
- gatewaysdk/algorithm/gepa/lib/core/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/core/adapter.py +180 -0
- gatewaysdk/algorithm/gepa/lib/core/data_loader.py +74 -0
- gatewaysdk/algorithm/gepa/lib/core/engine.py +379 -0
- gatewaysdk/algorithm/gepa/lib/core/result.py +233 -0
- gatewaysdk/algorithm/gepa/lib/core/state.py +636 -0
- gatewaysdk/algorithm/gepa/lib/examples/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/examples/aime.py +24 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/eval_default.py +111 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/instruction_prompt.txt +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/optimal_prompt.txt +24 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/train_anymaths.py +177 -0
- gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/arc_agi.ipynb +25705 -0
- gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/example.ipynb +348 -0
- gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/__init__.py +4 -0
- gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/mcp_optimization_example.py +456 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/RAG_GUIDE.md +613 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/__init__.py +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/rag_optimization.py +820 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/requirements-rag.txt +29 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/instruction_prompt.txt +16 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/terminus.txt +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/train_terminus.py +161 -0
- gatewaysdk/algorithm/gepa/lib/gepa_utils.py +117 -0
- gatewaysdk/algorithm/gepa/lib/logging/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/logging/experiment_tracker.py +187 -0
- gatewaysdk/algorithm/gepa/lib/logging/logger.py +75 -0
- gatewaysdk/algorithm/gepa/lib/logging/utils.py +103 -0
- gatewaysdk/algorithm/gepa/lib/proposer/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/proposer/base.py +31 -0
- gatewaysdk/algorithm/gepa/lib/proposer/merge.py +357 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/base.py +49 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/reflective_mutation.py +176 -0
- gatewaysdk/algorithm/gepa/lib/py.typed +0 -0
- gatewaysdk/algorithm/gepa/lib/strategies/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/strategies/batch_sampler.py +77 -0
- gatewaysdk/algorithm/gepa/lib/strategies/candidate_selector.py +50 -0
- gatewaysdk/algorithm/gepa/lib/strategies/component_selector.py +36 -0
- gatewaysdk/algorithm/gepa/lib/strategies/eval_policy.py +64 -0
- gatewaysdk/algorithm/gepa/lib/strategies/instruction_proposal.py +126 -0
- gatewaysdk/algorithm/gepa/lib/utils/__init__.py +10 -0
- gatewaysdk/algorithm/gepa/lib/utils/stop_condition.py +196 -0
- gatewaysdk/algorithm/gepa/tracing.py +105 -0
- gatewaysdk/algorithm/utils.py +177 -0
- gatewaysdk/algorithm/verl/__init__.py +5 -0
- gatewaysdk/algorithm/verl/interface.py +202 -0
- gatewaysdk/automations.py +111 -0
- gatewaysdk/benchmark_hub/README.md +88 -0
- gatewaysdk/benchmark_hub/__init__.py +119 -0
- gatewaysdk/benchmark_hub/_archive.py +189 -0
- gatewaysdk/benchmark_hub/_tar.py +6 -0
- gatewaysdk/benchmark_hub/client.py +992 -0
- gatewaysdk/benchmark_hub/dispatch_shard.py +34 -0
- gatewaysdk/benchmark_hub/eval_config.py +20 -0
- gatewaysdk/benchmark_hub/evals.py +351 -0
- gatewaysdk/benchmark_hub/harbor_adapter.py +673 -0
- gatewaysdk/benchmark_hub/path_utils.py +81 -0
- gatewaysdk/benchmark_hub/save_utils.py +101 -0
- gatewaysdk/benchmark_hub/verifiers_adapter.py +327 -0
- gatewaysdk/benchmark_hub/versioning.py +72 -0
- gatewaysdk/build.py +515 -0
- gatewaysdk/cli/__init__.py +58 -0
- gatewaysdk/cli/agent_runner.py +132 -0
- gatewaysdk/cli/http_client.py +115 -0
- gatewaysdk/cli/platform.py +4086 -0
- gatewaysdk/cli/prometheus.py +115 -0
- gatewaysdk/cli/release_gate.py +215 -0
- gatewaysdk/cli/store.py +131 -0
- gatewaysdk/cli/vllm.py +29 -0
- gatewaysdk/client.py +406 -0
- gatewaysdk/config.py +348 -0
- gatewaysdk/connectors/__init__.py +25 -0
- gatewaysdk/connectors/client.py +203 -0
- gatewaysdk/connectors/skill.py +25 -0
- gatewaysdk/connectors/template.py +106 -0
- gatewaysdk/context.py +606 -0
- gatewaysdk/emitter/__init__.py +43 -0
- gatewaysdk/emitter/annotation.py +370 -0
- gatewaysdk/emitter/exception.py +54 -0
- gatewaysdk/emitter/message.py +61 -0
- gatewaysdk/emitter/object.py +117 -0
- gatewaysdk/emitter/reward.py +320 -0
- gatewaysdk/env_var.py +156 -0
- gatewaysdk/environment/__init__.py +108 -0
- gatewaysdk/environment/_bundle.py +281 -0
- gatewaysdk/environment/_harbor.py +276 -0
- gatewaysdk/environment/_materialize.py +97 -0
- gatewaysdk/environment/_tar.py +33 -0
- gatewaysdk/environment/_world.py +346 -0
- gatewaysdk/environment/core.py +527 -0
- gatewaysdk/environment/errors.py +58 -0
- gatewaysdk/environment/runtime.py +150 -0
- gatewaysdk/environment/schema/__init__.py +35 -0
- gatewaysdk/environment/schema/__main__.py +225 -0
- gatewaysdk/environment/schema/_slack_fidelity.py +116 -0
- gatewaysdk/environment/schema/_slack_scenario.py +183 -0
- gatewaysdk/environment/schema/api.py +1628 -0
- gatewaysdk/environment/schema/batch.py +755 -0
- gatewaysdk/environment/schema/compiler.py +615 -0
- gatewaysdk/environment/schema/conform.py +428 -0
- gatewaysdk/environment/schema/connector.py +777 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/handlers.py +17 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/parity.json +28 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/provenance.json +233 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/scope.toml +112 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/world.json +1380 -0
- gatewaysdk/environment/schema/connectors/base.json +28 -0
- gatewaysdk/environment/schema/connectors/custom/handlers.py +18 -0
- gatewaysdk/environment/schema/connectors/custom/world.json +123 -0
- gatewaysdk/environment/schema/connectors/github/handlers.py +81 -0
- gatewaysdk/environment/schema/connectors/github/parity.json +37 -0
- gatewaysdk/environment/schema/connectors/github/provenance.json +134 -0
- gatewaysdk/environment/schema/connectors/github/scope.toml +158 -0
- gatewaysdk/environment/schema/connectors/github/world.json +5869 -0
- gatewaysdk/environment/schema/connectors/google-calendar/handlers.py +23 -0
- gatewaysdk/environment/schema/connectors/google-calendar/world.json +209 -0
- gatewaysdk/environment/schema/connectors/google-drive/handlers.py +18 -0
- gatewaysdk/environment/schema/connectors/google-drive/world.json +286 -0
- gatewaysdk/environment/schema/connectors/jamf/handlers.py +34 -0
- gatewaysdk/environment/schema/connectors/jamf/parity.json +49 -0
- gatewaysdk/environment/schema/connectors/jamf/provenance.json +181 -0
- gatewaysdk/environment/schema/connectors/jamf/scope.toml +128 -0
- gatewaysdk/environment/schema/connectors/jamf/world.json +2218 -0
- gatewaysdk/environment/schema/connectors/jira/handlers.py +28 -0
- gatewaysdk/environment/schema/connectors/jira/world.json +389 -0
- gatewaysdk/environment/schema/connectors/kandji/handlers.py +38 -0
- gatewaysdk/environment/schema/connectors/kandji/parity.json +29 -0
- gatewaysdk/environment/schema/connectors/kandji/provenance.json +152 -0
- gatewaysdk/environment/schema/connectors/kandji/scope.toml +120 -0
- gatewaysdk/environment/schema/connectors/kandji/world.json +765 -0
- gatewaysdk/environment/schema/connectors/linear/handlers.py +20 -0
- gatewaysdk/environment/schema/connectors/linear/world.json +363 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/fidelity.json +45 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/handlers.py +1 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/provenance.json +851 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/scope.md +231 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/teams-types.json +1710 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/world.json +858 -0
- gatewaysdk/environment/schema/connectors/netsuite/handlers.py +32 -0
- gatewaysdk/environment/schema/connectors/netsuite/parity.json +50 -0
- gatewaysdk/environment/schema/connectors/netsuite/provenance.json +137 -0
- gatewaysdk/environment/schema/connectors/netsuite/scope.toml +78 -0
- gatewaysdk/environment/schema/connectors/netsuite/world.json +16243 -0
- gatewaysdk/environment/schema/connectors/salesforce/handlers.py +806 -0
- gatewaysdk/environment/schema/connectors/salesforce/parity.json +46 -0
- gatewaysdk/environment/schema/connectors/salesforce/provenance.json +143 -0
- gatewaysdk/environment/schema/connectors/salesforce/scope.toml +174 -0
- gatewaysdk/environment/schema/connectors/salesforce/world.json +4695 -0
- gatewaysdk/environment/schema/connectors/slack/MODEL.md +236 -0
- gatewaysdk/environment/schema/connectors/slack/capabilities.json +1039 -0
- gatewaysdk/environment/schema/connectors/slack/handlers.py +762 -0
- gatewaysdk/environment/schema/connectors/slack/parity.json +65 -0
- gatewaysdk/environment/schema/connectors/slack/provenance.json +294 -0
- gatewaysdk/environment/schema/connectors/slack/scope.toml +44 -0
- gatewaysdk/environment/schema/connectors/slack/world.json +4993 -0
- gatewaysdk/environment/schema/connectors/workday/handlers.py +75 -0
- gatewaysdk/environment/schema/connectors/workday/parity.json +36 -0
- gatewaysdk/environment/schema/connectors/workday/provenance.json +179 -0
- gatewaysdk/environment/schema/connectors/workday/scope.toml +180 -0
- gatewaysdk/environment/schema/connectors/workday/world.json +806 -0
- gatewaysdk/environment/schema/data.py +593 -0
- gatewaysdk/environment/schema/extract.py +263 -0
- gatewaysdk/environment/schema/host.py +2437 -0
- gatewaysdk/environment/schema/host_surfaces.py +275 -0
- gatewaysdk/environment/schema/platform.py +1272 -0
- gatewaysdk/environment/schema/scaffold.py +250 -0
- gatewaysdk/environment/schema/skill.py +118 -0
- gatewaysdk/environment/schema/skills/agents/connector-template-author.md +202 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/CONNECTORS.md +331 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/CONVENTIONS.md +100 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/SKILL.md +313 -0
- gatewaysdk/environment/schema/skills/world-data-ingestion/ROWS.md +223 -0
- gatewaysdk/environment/schema/skills/world-data-ingestion/SKILL.md +293 -0
- gatewaysdk/environment/schema/skills/worlds-getting-started/SKILL.md +390 -0
- gatewaysdk/environment/schema/slack.py +757 -0
- gatewaysdk/environment/schema/snapshot.py +479 -0
- gatewaysdk/environment/schema/store.py +904 -0
- gatewaysdk/environment/schema/tasks.py +525 -0
- gatewaysdk/environment/schema/tools_world.py +322 -0
- gatewaysdk/environment/schema/validation.py +577 -0
- gatewaysdk/environment/schema/worker.py +78 -0
- gatewaysdk/environment/schema/workers.py +500 -0
- gatewaysdk/environment/schema/world_tests.py +336 -0
- gatewaysdk/environments/__init__.py +24 -0
- gatewaysdk/environments/client.py +486 -0
- gatewaysdk/environments/types.py +318 -0
- gatewaysdk/execution/__init__.py +15 -0
- gatewaysdk/execution/base.py +64 -0
- gatewaysdk/execution/client_server.py +443 -0
- gatewaysdk/execution/events.py +69 -0
- gatewaysdk/execution/inter_process.py +16 -0
- gatewaysdk/execution/shared_memory.py +282 -0
- gatewaysdk/experiments/__init__.py +90 -0
- gatewaysdk/experiments/assignment.py +177 -0
- gatewaysdk/experiments/client.py +877 -0
- gatewaysdk/experiments/exposure.py +222 -0
- gatewaysdk/experiments/types.py +81 -0
- gatewaysdk/importers/__init__.py +49 -0
- gatewaysdk/importers/_normalize.py +91 -0
- gatewaysdk/importers/builder.py +173 -0
- gatewaysdk/importers/client.py +95 -0
- gatewaysdk/importers/langsmith.py +196 -0
- gatewaysdk/importers/recipes.py +249 -0
- gatewaysdk/instrumentation/__init__.py +300 -0
- gatewaysdk/instrumentation/agentops.py +314 -0
- gatewaysdk/instrumentation/agentops_langchain.py +45 -0
- gatewaysdk/instrumentation/base.py +119 -0
- gatewaysdk/instrumentation/litellm.py +83 -0
- gatewaysdk/instrumentation/registry.py +273 -0
- gatewaysdk/instrumentation/vllm.py +81 -0
- gatewaysdk/instrumentation/weave.py +500 -0
- gatewaysdk/integrations/__init__.py +15 -0
- gatewaysdk/integrations/gateway/__init__.py +11 -0
- gatewaysdk/integrations/gateway/client.py +171 -0
- gatewaysdk/integrations/tool_access.py +549 -0
- gatewaysdk/litagent/__init__.py +11 -0
- gatewaysdk/litagent/decorator.py +536 -0
- gatewaysdk/litagent/litagent.py +252 -0
- gatewaysdk/llm_proxy.py +1742 -0
- gatewaysdk/logging.py +370 -0
- gatewaysdk/memory.py +278 -0
- gatewaysdk/personas.py +186 -0
- gatewaysdk/platform/__init__.py +17 -0
- gatewaysdk/platform/builder.py +221 -0
- gatewaysdk/platform/compatibility.py +67 -0
- gatewaysdk/platform/manifest.py +185 -0
- gatewaysdk/platform/orchestrator.py +901 -0
- gatewaysdk/platform/registry.py +122 -0
- gatewaysdk/platform/worker.py +864 -0
- gatewaysdk/replay/__init__.py +1032 -0
- gatewaysdk/replay/pytest.py +56 -0
- gatewaysdk/reward.py +7 -0
- gatewaysdk/run.py +1781 -0
- gatewaysdk/runner/__init__.py +11 -0
- gatewaysdk/runner/agent.py +878 -0
- gatewaysdk/runner/base.py +182 -0
- gatewaysdk/runner/legacy.py +309 -0
- gatewaysdk/security.py +700 -0
- gatewaysdk/semconv.py +170 -0
- gatewaysdk/server.py +399 -0
- gatewaysdk/sessions.py +282 -0
- gatewaysdk/store/__init__.py +45 -0
- gatewaysdk/store/base.py +908 -0
- gatewaysdk/store/client_server.py +2093 -0
- gatewaysdk/store/collection/__init__.py +30 -0
- gatewaysdk/store/collection/base.py +587 -0
- gatewaysdk/store/collection/memory.py +970 -0
- gatewaysdk/store/collection/mongo.py +1412 -0
- gatewaysdk/store/collection_based.py +1823 -0
- gatewaysdk/store/gateway.py +983 -0
- gatewaysdk/store/gateway_listener.py +465 -0
- gatewaysdk/store/listener.py +58 -0
- gatewaysdk/store/memory.py +396 -0
- gatewaysdk/store/mongo.py +165 -0
- gatewaysdk/store/redis_stream.py +517 -0
- gatewaysdk/store/sqlite.py +3 -0
- gatewaysdk/store/threading.py +370 -0
- gatewaysdk/store/utils.py +142 -0
- gatewaysdk/tracer/__init__.py +14 -0
- gatewaysdk/tracer/base.py +286 -0
- gatewaysdk/tracer/dummy.py +106 -0
- gatewaysdk/tracer/otel.py +559 -0
- gatewaysdk/tracing/__init__.py +110 -0
- gatewaysdk/tracing/api.py +808 -0
- gatewaysdk/tracing/attributes.py +9 -0
- gatewaysdk/tracing/context.py +272 -0
- gatewaysdk/tracing/exporters/__init__.py +10 -0
- gatewaysdk/tracing/exporters/gateway.py +228 -0
- gatewaysdk/tracing/identity.py +288 -0
- gatewaysdk/tracing/init.py +620 -0
- gatewaysdk/tracing/instrumentors/__init__.py +15 -0
- gatewaysdk/tracing/instrumentors/claude_agent_sdk.py +766 -0
- gatewaysdk/tracing/instrumentors/instrumentation_principles.md +294 -0
- gatewaysdk/tracing/instrumentors/registry.py +352 -0
- gatewaysdk/tracing/mapping.py +729 -0
- gatewaysdk/tracing/processors.py +393 -0
- gatewaysdk/tracing/push.py +617 -0
- gatewaysdk/tracing/push_models.py +247 -0
- gatewaysdk/tracing/semconv.py +294 -0
- gatewaysdk/tracing/span_builder.py +356 -0
- gatewaysdk/trainer/__init__.py +6 -0
- gatewaysdk/trainer/init_utils.py +263 -0
- gatewaysdk/trainer/legacy.py +359 -0
- gatewaysdk/trainer/registry.py +12 -0
- gatewaysdk/trainer/trainer.py +638 -0
- gatewaysdk/types/__init__.py +63 -0
- gatewaysdk/types/core.py +556 -0
- gatewaysdk/types/resources.py +204 -0
- gatewaysdk/types/tracer.py +515 -0
- gatewaysdk/types/tracing.py +162 -0
- gatewaysdk/users.py +251 -0
- gatewaysdk/utils/__init__.py +1 -0
- gatewaysdk/utils/id.py +18 -0
- gatewaysdk/utils/metrics.py +1025 -0
- gatewaysdk/utils/otel.py +550 -0
- gatewaysdk/utils/otlp.py +556 -0
- gatewaysdk/utils/redact.py +22 -0
- gatewaysdk/utils/server_launcher.py +1045 -0
- gatewaysdk/utils/system_snapshot.py +90 -0
- gatewaysdk/verl/__init__.py +8 -0
- gatewaysdk/verl/__main__.py +6 -0
- gatewaysdk/verl/async_server.py +46 -0
- gatewaysdk/verl/config.yaml +27 -0
- gatewaysdk/verl/daemon.py +1154 -0
- gatewaysdk/verl/dataset.py +44 -0
- gatewaysdk/verl/entrypoint.py +248 -0
- gatewaysdk/verl/trainer.py +549 -0
- gatewaysdk/world_browser.py +748 -0
- gatewaysdk/world_data.py +453 -0
- gatewaysdk/world_sessions.py +978 -0
- gatewaysdk/world_tasks.py +285 -0
- gatewaysdk/world_tools.py +115 -0
- gatewaysdk/worlds.py +639 -0
- gatewaysdk-0.3.2.dist-info/METADATA +236 -0
- gatewaysdk-0.3.2.dist-info/RECORD +376 -0
- gatewaysdk-0.3.2.dist-info/WHEEL +4 -0
- gatewaysdk-0.3.2.dist-info/entry_points.txt +5 -0
- 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
|
+
}
|