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,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.
|