kubiya-control-plane-api 0.9.15__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.
- control_plane_api/LICENSE +676 -0
- control_plane_api/README.md +350 -0
- control_plane_api/__init__.py +4 -0
- control_plane_api/__version__.py +8 -0
- control_plane_api/alembic/README +1 -0
- control_plane_api/alembic/env.py +121 -0
- control_plane_api/alembic/script.py.mako +28 -0
- control_plane_api/alembic/versions/2613c65c3dbe_initial_database_setup.py +32 -0
- control_plane_api/alembic/versions/2df520d4927d_merge_heads.py +28 -0
- control_plane_api/alembic/versions/43abf98d6a01_add_paused_status_to_executions.py +73 -0
- control_plane_api/alembic/versions/6289854264cb_merge_multiple_heads.py +28 -0
- control_plane_api/alembic/versions/6a4d4dc3d8dc_generate_execution_transitions.py +50 -0
- control_plane_api/alembic/versions/87d11cf0a783_add_disconnected_status_to_worker_.py +44 -0
- control_plane_api/alembic/versions/add_ephemeral_queue_support.py +85 -0
- control_plane_api/alembic/versions/add_model_type_to_llm_models.py +31 -0
- control_plane_api/alembic/versions/add_plan_executions_table.py +114 -0
- control_plane_api/alembic/versions/add_trace_span_tables.py +154 -0
- control_plane_api/alembic/versions/add_user_info_to_traces.py +36 -0
- control_plane_api/alembic/versions/adjusting_foreign_keys.py +32 -0
- control_plane_api/alembic/versions/b4983d976db2_initial_tables.py +1128 -0
- control_plane_api/alembic/versions/d181a3b40e71_rename_custom_metadata_to_metadata_in_.py +50 -0
- control_plane_api/alembic/versions/df9117888e82_add_missing_columns.py +82 -0
- control_plane_api/alembic/versions/f25de6ad895a_missing_migrations.py +34 -0
- control_plane_api/alembic/versions/f71305fb69b9_fix_ephemeral_queue_deletion_foreign_key.py +54 -0
- control_plane_api/alembic/versions/mark_local_exec_queues_as_ephemeral.py +68 -0
- control_plane_api/alembic.ini +148 -0
- control_plane_api/api/index.py +12 -0
- control_plane_api/app/__init__.py +11 -0
- control_plane_api/app/activities/__init__.py +20 -0
- control_plane_api/app/activities/agent_activities.py +384 -0
- control_plane_api/app/activities/plan_generation_activities.py +499 -0
- control_plane_api/app/activities/team_activities.py +424 -0
- control_plane_api/app/activities/temporal_cloud_activities.py +588 -0
- control_plane_api/app/config/__init__.py +35 -0
- control_plane_api/app/config/api_config.py +469 -0
- control_plane_api/app/config/config_loader.py +224 -0
- control_plane_api/app/config/model_pricing.py +323 -0
- control_plane_api/app/config/storage_config.py +159 -0
- control_plane_api/app/config.py +115 -0
- control_plane_api/app/controllers/__init__.py +0 -0
- control_plane_api/app/controllers/execution_environment_controller.py +1315 -0
- control_plane_api/app/database.py +135 -0
- control_plane_api/app/exceptions.py +408 -0
- control_plane_api/app/lib/__init__.py +11 -0
- control_plane_api/app/lib/environment.py +65 -0
- control_plane_api/app/lib/event_bus/__init__.py +17 -0
- control_plane_api/app/lib/event_bus/base.py +136 -0
- control_plane_api/app/lib/event_bus/manager.py +335 -0
- control_plane_api/app/lib/event_bus/providers/__init__.py +6 -0
- control_plane_api/app/lib/event_bus/providers/http_provider.py +166 -0
- control_plane_api/app/lib/event_bus/providers/nats_provider.py +324 -0
- control_plane_api/app/lib/event_bus/providers/redis_provider.py +233 -0
- control_plane_api/app/lib/event_bus/providers/websocket_provider.py +497 -0
- control_plane_api/app/lib/job_executor.py +330 -0
- control_plane_api/app/lib/kubiya_client.py +293 -0
- control_plane_api/app/lib/litellm_pricing.py +166 -0
- control_plane_api/app/lib/mcp_validation.py +163 -0
- control_plane_api/app/lib/nats/__init__.py +13 -0
- control_plane_api/app/lib/nats/credentials_manager.py +288 -0
- control_plane_api/app/lib/nats/listener.py +374 -0
- control_plane_api/app/lib/planning_prompt_builder.py +153 -0
- control_plane_api/app/lib/planning_tools/__init__.py +41 -0
- control_plane_api/app/lib/planning_tools/agents.py +409 -0
- control_plane_api/app/lib/planning_tools/agno_toolkit.py +836 -0
- control_plane_api/app/lib/planning_tools/base.py +119 -0
- control_plane_api/app/lib/planning_tools/cognitive_memory_tools.py +403 -0
- control_plane_api/app/lib/planning_tools/context_graph_tools.py +545 -0
- control_plane_api/app/lib/planning_tools/environments.py +218 -0
- control_plane_api/app/lib/planning_tools/knowledge.py +204 -0
- control_plane_api/app/lib/planning_tools/models.py +93 -0
- control_plane_api/app/lib/planning_tools/planning_service.py +646 -0
- control_plane_api/app/lib/planning_tools/resources.py +242 -0
- control_plane_api/app/lib/planning_tools/teams.py +334 -0
- control_plane_api/app/lib/policy_enforcer_client.py +1016 -0
- control_plane_api/app/lib/redis_client.py +803 -0
- control_plane_api/app/lib/sqlalchemy_utils.py +486 -0
- control_plane_api/app/lib/state_transition_tools/__init__.py +7 -0
- control_plane_api/app/lib/state_transition_tools/execution_context.py +388 -0
- control_plane_api/app/lib/storage/__init__.py +20 -0
- control_plane_api/app/lib/storage/base_provider.py +274 -0
- control_plane_api/app/lib/storage/provider_factory.py +157 -0
- control_plane_api/app/lib/storage/vercel_blob_provider.py +468 -0
- control_plane_api/app/lib/supabase.py +71 -0
- control_plane_api/app/lib/supabase_utils.py +138 -0
- control_plane_api/app/lib/task_planning/__init__.py +138 -0
- control_plane_api/app/lib/task_planning/agent_factory.py +308 -0
- control_plane_api/app/lib/task_planning/agents.py +389 -0
- control_plane_api/app/lib/task_planning/cache.py +218 -0
- control_plane_api/app/lib/task_planning/entity_resolver.py +273 -0
- control_plane_api/app/lib/task_planning/helpers.py +293 -0
- control_plane_api/app/lib/task_planning/hooks.py +474 -0
- control_plane_api/app/lib/task_planning/models.py +503 -0
- control_plane_api/app/lib/task_planning/plan_validator.py +166 -0
- control_plane_api/app/lib/task_planning/planning_workflow.py +2911 -0
- control_plane_api/app/lib/task_planning/runner.py +656 -0
- control_plane_api/app/lib/task_planning/streaming_hook.py +213 -0
- control_plane_api/app/lib/task_planning/workflow.py +424 -0
- control_plane_api/app/lib/templating/__init__.py +88 -0
- control_plane_api/app/lib/templating/compiler.py +278 -0
- control_plane_api/app/lib/templating/engine.py +178 -0
- control_plane_api/app/lib/templating/parsers/__init__.py +29 -0
- control_plane_api/app/lib/templating/parsers/base.py +96 -0
- control_plane_api/app/lib/templating/parsers/env.py +85 -0
- control_plane_api/app/lib/templating/parsers/graph.py +112 -0
- control_plane_api/app/lib/templating/parsers/secret.py +87 -0
- control_plane_api/app/lib/templating/parsers/simple.py +81 -0
- control_plane_api/app/lib/templating/resolver.py +366 -0
- control_plane_api/app/lib/templating/types.py +214 -0
- control_plane_api/app/lib/templating/validator.py +201 -0
- control_plane_api/app/lib/temporal_client.py +232 -0
- control_plane_api/app/lib/temporal_credentials_cache.py +178 -0
- control_plane_api/app/lib/temporal_credentials_service.py +203 -0
- control_plane_api/app/lib/validation/__init__.py +24 -0
- control_plane_api/app/lib/validation/runtime_validation.py +388 -0
- control_plane_api/app/main.py +531 -0
- control_plane_api/app/middleware/__init__.py +10 -0
- control_plane_api/app/middleware/auth.py +645 -0
- control_plane_api/app/middleware/exception_handler.py +267 -0
- control_plane_api/app/middleware/prometheus_middleware.py +173 -0
- control_plane_api/app/middleware/rate_limiting.py +384 -0
- control_plane_api/app/middleware/request_id.py +202 -0
- control_plane_api/app/models/__init__.py +40 -0
- control_plane_api/app/models/agent.py +90 -0
- control_plane_api/app/models/analytics.py +206 -0
- control_plane_api/app/models/associations.py +107 -0
- control_plane_api/app/models/auth_user.py +73 -0
- control_plane_api/app/models/context.py +161 -0
- control_plane_api/app/models/custom_integration.py +99 -0
- control_plane_api/app/models/environment.py +64 -0
- control_plane_api/app/models/execution.py +125 -0
- control_plane_api/app/models/execution_transition.py +50 -0
- control_plane_api/app/models/job.py +159 -0
- control_plane_api/app/models/llm_model.py +78 -0
- control_plane_api/app/models/orchestration.py +66 -0
- control_plane_api/app/models/plan_execution.py +102 -0
- control_plane_api/app/models/presence.py +49 -0
- control_plane_api/app/models/project.py +61 -0
- control_plane_api/app/models/project_management.py +85 -0
- control_plane_api/app/models/session.py +29 -0
- control_plane_api/app/models/skill.py +155 -0
- control_plane_api/app/models/system_tables.py +43 -0
- control_plane_api/app/models/task_planning.py +372 -0
- control_plane_api/app/models/team.py +86 -0
- control_plane_api/app/models/trace.py +257 -0
- control_plane_api/app/models/user_profile.py +54 -0
- control_plane_api/app/models/worker.py +221 -0
- control_plane_api/app/models/workflow.py +161 -0
- control_plane_api/app/models/workspace.py +50 -0
- control_plane_api/app/observability/__init__.py +177 -0
- control_plane_api/app/observability/context_logging.py +475 -0
- control_plane_api/app/observability/decorators.py +337 -0
- control_plane_api/app/observability/local_span_processor.py +702 -0
- control_plane_api/app/observability/metrics.py +303 -0
- control_plane_api/app/observability/middleware.py +246 -0
- control_plane_api/app/observability/optional.py +115 -0
- control_plane_api/app/observability/tracing.py +382 -0
- control_plane_api/app/policies/README.md +149 -0
- control_plane_api/app/policies/approved_users.rego +62 -0
- control_plane_api/app/policies/business_hours.rego +51 -0
- control_plane_api/app/policies/rate_limiting.rego +100 -0
- control_plane_api/app/policies/tool_enforcement/README.md +336 -0
- control_plane_api/app/policies/tool_enforcement/bash_command_validation.rego +71 -0
- control_plane_api/app/policies/tool_enforcement/business_hours_enforcement.rego +82 -0
- control_plane_api/app/policies/tool_enforcement/mcp_tool_allowlist.rego +58 -0
- control_plane_api/app/policies/tool_enforcement/production_safeguards.rego +80 -0
- control_plane_api/app/policies/tool_enforcement/role_based_tool_access.rego +44 -0
- control_plane_api/app/policies/tool_restrictions.rego +86 -0
- control_plane_api/app/routers/__init__.py +4 -0
- control_plane_api/app/routers/agents.py +382 -0
- control_plane_api/app/routers/agents_v2.py +1598 -0
- control_plane_api/app/routers/analytics.py +1310 -0
- control_plane_api/app/routers/auth.py +59 -0
- control_plane_api/app/routers/client_config.py +57 -0
- control_plane_api/app/routers/context_graph.py +561 -0
- control_plane_api/app/routers/context_manager.py +577 -0
- control_plane_api/app/routers/custom_integrations.py +490 -0
- control_plane_api/app/routers/enforcer.py +132 -0
- control_plane_api/app/routers/environment_context.py +252 -0
- control_plane_api/app/routers/environments.py +761 -0
- control_plane_api/app/routers/execution_environment.py +847 -0
- control_plane_api/app/routers/executions/__init__.py +28 -0
- control_plane_api/app/routers/executions/router.py +286 -0
- control_plane_api/app/routers/executions/services/__init__.py +22 -0
- control_plane_api/app/routers/executions/services/demo_worker_health.py +156 -0
- control_plane_api/app/routers/executions/services/status_service.py +420 -0
- control_plane_api/app/routers/executions/services/test_worker_health.py +480 -0
- control_plane_api/app/routers/executions/services/worker_health.py +514 -0
- control_plane_api/app/routers/executions/streaming/__init__.py +22 -0
- control_plane_api/app/routers/executions/streaming/deduplication.py +352 -0
- control_plane_api/app/routers/executions/streaming/event_buffer.py +353 -0
- control_plane_api/app/routers/executions/streaming/event_formatter.py +964 -0
- control_plane_api/app/routers/executions/streaming/history_loader.py +588 -0
- control_plane_api/app/routers/executions/streaming/live_source.py +693 -0
- control_plane_api/app/routers/executions/streaming/streamer.py +849 -0
- control_plane_api/app/routers/executions.py +4888 -0
- control_plane_api/app/routers/health.py +165 -0
- control_plane_api/app/routers/health_v2.py +394 -0
- control_plane_api/app/routers/integration_templates.py +496 -0
- control_plane_api/app/routers/integrations.py +287 -0
- control_plane_api/app/routers/jobs.py +1809 -0
- control_plane_api/app/routers/metrics.py +517 -0
- control_plane_api/app/routers/models.py +82 -0
- control_plane_api/app/routers/models_v2.py +628 -0
- control_plane_api/app/routers/plan_executions.py +1481 -0
- control_plane_api/app/routers/plan_generation_async.py +304 -0
- control_plane_api/app/routers/policies.py +669 -0
- control_plane_api/app/routers/presence.py +234 -0
- control_plane_api/app/routers/projects.py +987 -0
- control_plane_api/app/routers/runners.py +379 -0
- control_plane_api/app/routers/runtimes.py +172 -0
- control_plane_api/app/routers/secrets.py +171 -0
- control_plane_api/app/routers/skills.py +1010 -0
- control_plane_api/app/routers/skills_definitions.py +140 -0
- control_plane_api/app/routers/storage.py +456 -0
- control_plane_api/app/routers/task_planning.py +611 -0
- control_plane_api/app/routers/task_queues.py +650 -0
- control_plane_api/app/routers/team_context.py +274 -0
- control_plane_api/app/routers/teams.py +1747 -0
- control_plane_api/app/routers/templates.py +248 -0
- control_plane_api/app/routers/traces.py +571 -0
- control_plane_api/app/routers/websocket_client.py +479 -0
- control_plane_api/app/routers/websocket_executions_status.py +437 -0
- control_plane_api/app/routers/websocket_gateway.py +323 -0
- control_plane_api/app/routers/websocket_traces.py +576 -0
- control_plane_api/app/routers/worker_queues.py +2555 -0
- control_plane_api/app/routers/worker_websocket.py +419 -0
- control_plane_api/app/routers/workers.py +1004 -0
- control_plane_api/app/routers/workflows.py +204 -0
- control_plane_api/app/runtimes/__init__.py +6 -0
- control_plane_api/app/runtimes/validation.py +344 -0
- control_plane_api/app/schemas/__init__.py +1 -0
- control_plane_api/app/schemas/job_schemas.py +302 -0
- control_plane_api/app/schemas/mcp_schemas.py +311 -0
- control_plane_api/app/schemas/template_schemas.py +133 -0
- control_plane_api/app/schemas/trace_schemas.py +168 -0
- control_plane_api/app/schemas/worker_queue_observability_schemas.py +165 -0
- control_plane_api/app/services/__init__.py +1 -0
- control_plane_api/app/services/agno_planning_strategy.py +233 -0
- control_plane_api/app/services/agno_service.py +838 -0
- control_plane_api/app/services/claude_code_planning_service.py +203 -0
- control_plane_api/app/services/context_graph_client.py +224 -0
- control_plane_api/app/services/custom_integration_service.py +415 -0
- control_plane_api/app/services/integration_resolution_service.py +345 -0
- control_plane_api/app/services/litellm_service.py +394 -0
- control_plane_api/app/services/plan_generator.py +79 -0
- control_plane_api/app/services/planning_strategy.py +66 -0
- control_plane_api/app/services/planning_strategy_factory.py +118 -0
- control_plane_api/app/services/policy_service.py +615 -0
- control_plane_api/app/services/state_transition_service.py +755 -0
- control_plane_api/app/services/storage_service.py +593 -0
- control_plane_api/app/services/temporal_cloud_provisioning.py +150 -0
- control_plane_api/app/services/toolsets/context_graph_skill.py +432 -0
- control_plane_api/app/services/trace_retention.py +354 -0
- control_plane_api/app/services/worker_queue_metrics_service.py +190 -0
- control_plane_api/app/services/workflow_cancellation_manager.py +135 -0
- control_plane_api/app/services/workflow_operations_service.py +611 -0
- control_plane_api/app/skills/__init__.py +100 -0
- control_plane_api/app/skills/base.py +239 -0
- control_plane_api/app/skills/builtin/__init__.py +37 -0
- control_plane_api/app/skills/builtin/agent_communication/__init__.py +8 -0
- control_plane_api/app/skills/builtin/agent_communication/skill.py +246 -0
- control_plane_api/app/skills/builtin/code_ingestion/__init__.py +4 -0
- control_plane_api/app/skills/builtin/code_ingestion/skill.py +267 -0
- control_plane_api/app/skills/builtin/cognitive_memory/__init__.py +4 -0
- control_plane_api/app/skills/builtin/cognitive_memory/skill.py +174 -0
- control_plane_api/app/skills/builtin/contextual_awareness/__init__.py +4 -0
- control_plane_api/app/skills/builtin/contextual_awareness/skill.py +387 -0
- control_plane_api/app/skills/builtin/data_visualization/__init__.py +4 -0
- control_plane_api/app/skills/builtin/data_visualization/skill.py +154 -0
- control_plane_api/app/skills/builtin/docker/__init__.py +4 -0
- control_plane_api/app/skills/builtin/docker/skill.py +104 -0
- control_plane_api/app/skills/builtin/file_generation/__init__.py +4 -0
- control_plane_api/app/skills/builtin/file_generation/skill.py +94 -0
- control_plane_api/app/skills/builtin/file_system/__init__.py +4 -0
- control_plane_api/app/skills/builtin/file_system/skill.py +110 -0
- control_plane_api/app/skills/builtin/knowledge_api/__init__.py +5 -0
- control_plane_api/app/skills/builtin/knowledge_api/skill.py +124 -0
- control_plane_api/app/skills/builtin/python/__init__.py +4 -0
- control_plane_api/app/skills/builtin/python/skill.py +92 -0
- control_plane_api/app/skills/builtin/remote_filesystem/__init__.py +5 -0
- control_plane_api/app/skills/builtin/remote_filesystem/skill.py +170 -0
- control_plane_api/app/skills/builtin/shell/__init__.py +4 -0
- control_plane_api/app/skills/builtin/shell/skill.py +161 -0
- control_plane_api/app/skills/builtin/slack/__init__.py +3 -0
- control_plane_api/app/skills/builtin/slack/skill.py +302 -0
- control_plane_api/app/skills/builtin/workflow_executor/__init__.py +4 -0
- control_plane_api/app/skills/builtin/workflow_executor/skill.py +469 -0
- control_plane_api/app/skills/business_intelligence.py +189 -0
- control_plane_api/app/skills/config.py +63 -0
- control_plane_api/app/skills/loaders/__init__.py +14 -0
- control_plane_api/app/skills/loaders/base.py +73 -0
- control_plane_api/app/skills/loaders/filesystem_loader.py +199 -0
- control_plane_api/app/skills/registry.py +125 -0
- control_plane_api/app/utils/helpers.py +12 -0
- control_plane_api/app/utils/workflow_executor.py +354 -0
- control_plane_api/app/workflows/__init__.py +11 -0
- control_plane_api/app/workflows/agent_execution.py +520 -0
- control_plane_api/app/workflows/agent_execution_with_skills.py +223 -0
- control_plane_api/app/workflows/namespace_provisioning.py +326 -0
- control_plane_api/app/workflows/plan_generation.py +254 -0
- control_plane_api/app/workflows/team_execution.py +442 -0
- control_plane_api/scripts/seed_models.py +240 -0
- control_plane_api/scripts/validate_existing_tool_names.py +492 -0
- control_plane_api/shared/__init__.py +8 -0
- control_plane_api/shared/version.py +17 -0
- control_plane_api/test_deduplication.py +274 -0
- control_plane_api/test_executor_deduplication_e2e.py +309 -0
- control_plane_api/test_job_execution_e2e.py +283 -0
- control_plane_api/test_real_integration.py +193 -0
- control_plane_api/version.py +38 -0
- control_plane_api/worker/__init__.py +0 -0
- control_plane_api/worker/activities/__init__.py +0 -0
- control_plane_api/worker/activities/agent_activities.py +1585 -0
- control_plane_api/worker/activities/approval_activities.py +234 -0
- control_plane_api/worker/activities/job_activities.py +199 -0
- control_plane_api/worker/activities/runtime_activities.py +1167 -0
- control_plane_api/worker/activities/skill_activities.py +282 -0
- control_plane_api/worker/activities/team_activities.py +479 -0
- control_plane_api/worker/agent_runtime_server.py +370 -0
- control_plane_api/worker/binary_manager.py +333 -0
- control_plane_api/worker/config/__init__.py +31 -0
- control_plane_api/worker/config/worker_config.py +273 -0
- control_plane_api/worker/control_plane_client.py +1491 -0
- control_plane_api/worker/examples/analytics_integration_example.py +362 -0
- control_plane_api/worker/health_monitor.py +159 -0
- control_plane_api/worker/metrics.py +237 -0
- control_plane_api/worker/models/__init__.py +1 -0
- control_plane_api/worker/models/error_events.py +105 -0
- control_plane_api/worker/models/inputs.py +89 -0
- control_plane_api/worker/runtimes/__init__.py +35 -0
- control_plane_api/worker/runtimes/agent_runtime/runtime.py +485 -0
- control_plane_api/worker/runtimes/agno/__init__.py +34 -0
- control_plane_api/worker/runtimes/agno/config.py +248 -0
- control_plane_api/worker/runtimes/agno/hooks.py +385 -0
- control_plane_api/worker/runtimes/agno/mcp_builder.py +195 -0
- control_plane_api/worker/runtimes/agno/runtime.py +1063 -0
- control_plane_api/worker/runtimes/agno/utils.py +163 -0
- control_plane_api/worker/runtimes/base.py +979 -0
- control_plane_api/worker/runtimes/claude_code/__init__.py +38 -0
- control_plane_api/worker/runtimes/claude_code/cleanup.py +184 -0
- control_plane_api/worker/runtimes/claude_code/client_pool.py +529 -0
- control_plane_api/worker/runtimes/claude_code/config.py +829 -0
- control_plane_api/worker/runtimes/claude_code/hooks.py +482 -0
- control_plane_api/worker/runtimes/claude_code/litellm_proxy.py +1702 -0
- control_plane_api/worker/runtimes/claude_code/mcp_builder.py +467 -0
- control_plane_api/worker/runtimes/claude_code/mcp_discovery.py +558 -0
- control_plane_api/worker/runtimes/claude_code/runtime.py +1546 -0
- control_plane_api/worker/runtimes/claude_code/tool_mapper.py +403 -0
- control_plane_api/worker/runtimes/claude_code/utils.py +149 -0
- control_plane_api/worker/runtimes/factory.py +173 -0
- control_plane_api/worker/runtimes/model_utils.py +107 -0
- control_plane_api/worker/runtimes/validation.py +93 -0
- control_plane_api/worker/services/__init__.py +1 -0
- control_plane_api/worker/services/agent_communication_tools.py +908 -0
- control_plane_api/worker/services/agent_executor.py +485 -0
- control_plane_api/worker/services/agent_executor_v2.py +793 -0
- control_plane_api/worker/services/analytics_collector.py +457 -0
- control_plane_api/worker/services/analytics_service.py +464 -0
- control_plane_api/worker/services/approval_tools.py +310 -0
- control_plane_api/worker/services/approval_tools_agno.py +207 -0
- control_plane_api/worker/services/cancellation_manager.py +177 -0
- control_plane_api/worker/services/code_ingestion_tools.py +465 -0
- control_plane_api/worker/services/contextual_awareness_tools.py +405 -0
- control_plane_api/worker/services/data_visualization.py +834 -0
- control_plane_api/worker/services/event_publisher.py +531 -0
- control_plane_api/worker/services/jira_tools.py +257 -0
- control_plane_api/worker/services/remote_filesystem_tools.py +498 -0
- control_plane_api/worker/services/runtime_analytics.py +328 -0
- control_plane_api/worker/services/session_service.py +365 -0
- control_plane_api/worker/services/skill_context_enhancement.py +181 -0
- control_plane_api/worker/services/skill_factory.py +471 -0
- control_plane_api/worker/services/system_prompt_enhancement.py +410 -0
- control_plane_api/worker/services/team_executor.py +715 -0
- control_plane_api/worker/services/team_executor_v2.py +1866 -0
- control_plane_api/worker/services/tool_enforcement.py +254 -0
- control_plane_api/worker/services/workflow_executor/__init__.py +52 -0
- control_plane_api/worker/services/workflow_executor/event_processor.py +287 -0
- control_plane_api/worker/services/workflow_executor/event_publisher.py +210 -0
- control_plane_api/worker/services/workflow_executor/executors/__init__.py +15 -0
- control_plane_api/worker/services/workflow_executor/executors/base.py +270 -0
- control_plane_api/worker/services/workflow_executor/executors/json_executor.py +50 -0
- control_plane_api/worker/services/workflow_executor/executors/python_executor.py +50 -0
- control_plane_api/worker/services/workflow_executor/models.py +142 -0
- control_plane_api/worker/services/workflow_executor_tools.py +1748 -0
- control_plane_api/worker/skills/__init__.py +12 -0
- control_plane_api/worker/skills/builtin/context_graph_search/README.md +213 -0
- control_plane_api/worker/skills/builtin/context_graph_search/__init__.py +5 -0
- control_plane_api/worker/skills/builtin/context_graph_search/agno_impl.py +808 -0
- control_plane_api/worker/skills/builtin/context_graph_search/skill.yaml +67 -0
- control_plane_api/worker/skills/builtin/contextual_awareness/__init__.py +4 -0
- control_plane_api/worker/skills/builtin/contextual_awareness/agno_impl.py +62 -0
- control_plane_api/worker/skills/builtin/data_visualization/agno_impl.py +18 -0
- control_plane_api/worker/skills/builtin/data_visualization/skill.yaml +84 -0
- control_plane_api/worker/skills/builtin/docker/agno_impl.py +65 -0
- control_plane_api/worker/skills/builtin/docker/skill.yaml +60 -0
- control_plane_api/worker/skills/builtin/file_generation/agno_impl.py +47 -0
- control_plane_api/worker/skills/builtin/file_generation/skill.yaml +64 -0
- control_plane_api/worker/skills/builtin/file_system/agno_impl.py +32 -0
- control_plane_api/worker/skills/builtin/file_system/skill.yaml +54 -0
- control_plane_api/worker/skills/builtin/knowledge_api/__init__.py +4 -0
- control_plane_api/worker/skills/builtin/knowledge_api/agno_impl.py +50 -0
- control_plane_api/worker/skills/builtin/knowledge_api/skill.yaml +66 -0
- control_plane_api/worker/skills/builtin/python/agno_impl.py +25 -0
- control_plane_api/worker/skills/builtin/python/skill.yaml +60 -0
- control_plane_api/worker/skills/builtin/schema_fix_mixin.py +260 -0
- control_plane_api/worker/skills/builtin/shell/agno_impl.py +31 -0
- control_plane_api/worker/skills/builtin/shell/skill.yaml +60 -0
- control_plane_api/worker/skills/builtin/slack/__init__.py +3 -0
- control_plane_api/worker/skills/builtin/slack/agno_impl.py +1282 -0
- control_plane_api/worker/skills/builtin/slack/skill.yaml +276 -0
- control_plane_api/worker/skills/builtin/workflow_executor/agno_impl.py +62 -0
- control_plane_api/worker/skills/builtin/workflow_executor/skill.yaml +79 -0
- control_plane_api/worker/skills/loaders/__init__.py +5 -0
- control_plane_api/worker/skills/loaders/base.py +23 -0
- control_plane_api/worker/skills/loaders/filesystem_loader.py +357 -0
- control_plane_api/worker/skills/registry.py +208 -0
- control_plane_api/worker/tests/__init__.py +1 -0
- control_plane_api/worker/tests/conftest.py +12 -0
- control_plane_api/worker/tests/e2e/__init__.py +0 -0
- control_plane_api/worker/tests/e2e/test_context_graph_real_api.py +338 -0
- control_plane_api/worker/tests/e2e/test_context_graph_templates_e2e.py +523 -0
- control_plane_api/worker/tests/e2e/test_enforcement_e2e.py +344 -0
- control_plane_api/worker/tests/e2e/test_execution_flow.py +571 -0
- control_plane_api/worker/tests/e2e/test_single_execution_mode.py +656 -0
- control_plane_api/worker/tests/integration/__init__.py +0 -0
- control_plane_api/worker/tests/integration/test_builtin_skills_fixes.py +245 -0
- control_plane_api/worker/tests/integration/test_context_graph_search_integration.py +365 -0
- control_plane_api/worker/tests/integration/test_control_plane_integration.py +308 -0
- control_plane_api/worker/tests/integration/test_hook_enforcement_integration.py +579 -0
- control_plane_api/worker/tests/integration/test_scheduled_job_workflow.py +237 -0
- control_plane_api/worker/tests/integration/test_system_prompt_enhancement_integration.py +343 -0
- control_plane_api/worker/tests/unit/__init__.py +0 -0
- control_plane_api/worker/tests/unit/test_builtin_skill_autoload.py +396 -0
- control_plane_api/worker/tests/unit/test_context_graph_search.py +450 -0
- control_plane_api/worker/tests/unit/test_context_graph_templates.py +403 -0
- control_plane_api/worker/tests/unit/test_control_plane_client.py +401 -0
- control_plane_api/worker/tests/unit/test_control_plane_client_jobs.py +345 -0
- control_plane_api/worker/tests/unit/test_job_activities.py +353 -0
- control_plane_api/worker/tests/unit/test_skill_context_enhancement.py +321 -0
- control_plane_api/worker/tests/unit/test_system_prompt_enhancement.py +415 -0
- control_plane_api/worker/tests/unit/test_tool_enforcement.py +324 -0
- control_plane_api/worker/utils/__init__.py +1 -0
- control_plane_api/worker/utils/chunk_batcher.py +330 -0
- control_plane_api/worker/utils/environment.py +65 -0
- control_plane_api/worker/utils/error_publisher.py +260 -0
- control_plane_api/worker/utils/event_batcher.py +256 -0
- control_plane_api/worker/utils/logging_config.py +335 -0
- control_plane_api/worker/utils/logging_helper.py +326 -0
- control_plane_api/worker/utils/parameter_validator.py +120 -0
- control_plane_api/worker/utils/retry_utils.py +60 -0
- control_plane_api/worker/utils/streaming_utils.py +665 -0
- control_plane_api/worker/utils/tool_validation.py +332 -0
- control_plane_api/worker/utils/workspace_manager.py +163 -0
- control_plane_api/worker/websocket_client.py +393 -0
- control_plane_api/worker/worker.py +1297 -0
- control_plane_api/worker/workflows/__init__.py +0 -0
- control_plane_api/worker/workflows/agent_execution.py +909 -0
- control_plane_api/worker/workflows/scheduled_job_wrapper.py +332 -0
- control_plane_api/worker/workflows/team_execution.py +611 -0
- kubiya_control_plane_api-0.9.15.dist-info/METADATA +354 -0
- kubiya_control_plane_api-0.9.15.dist-info/RECORD +479 -0
- kubiya_control_plane_api-0.9.15.dist-info/WHEEL +5 -0
- kubiya_control_plane_api-0.9.15.dist-info/entry_points.txt +5 -0
- kubiya_control_plane_api-0.9.15.dist-info/licenses/LICENSE +676 -0
- kubiya_control_plane_api-0.9.15.dist-info/top_level.txt +3 -0
- scripts/__init__.py +1 -0
- scripts/migrations.py +39 -0
- scripts/seed_worker_queues.py +128 -0
- scripts/setup_agent_runtime.py +142 -0
- worker_internal/__init__.py +1 -0
- worker_internal/planner/__init__.py +1 -0
- worker_internal/planner/activities.py +1499 -0
- worker_internal/planner/agent_tools.py +197 -0
- worker_internal/planner/event_models.py +148 -0
- worker_internal/planner/event_publisher.py +67 -0
- worker_internal/planner/models.py +199 -0
- worker_internal/planner/retry_logic.py +134 -0
- worker_internal/planner/worker.py +300 -0
- worker_internal/planner/workflows.py +970 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: context-graph-search
|
|
5
|
+
version: 1.2.2
|
|
6
|
+
description: Complete memory system - store/recall memories, ingest knowledge, and search organizational context graph
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: Brain
|
|
9
|
+
icon_type: lucide
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: context_graph_search
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: ContextGraphSearchTools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code will use same implementation converted to MCP server
|
|
20
|
+
module: agno_impl
|
|
21
|
+
class: ContextGraphSearchTools
|
|
22
|
+
default:
|
|
23
|
+
module: agno_impl
|
|
24
|
+
class: ContextGraphSearchTools
|
|
25
|
+
|
|
26
|
+
pythonDependencies:
|
|
27
|
+
- httpx>=0.24.0
|
|
28
|
+
|
|
29
|
+
systemRequirements:
|
|
30
|
+
supportedOS: [linux, darwin, win32]
|
|
31
|
+
minPythonVersion: "3.10"
|
|
32
|
+
|
|
33
|
+
environmentVariables:
|
|
34
|
+
- name: CONTEXT_GRAPH_API_BASE
|
|
35
|
+
required: false
|
|
36
|
+
description: Context Graph API base URL (auto-fetched from control plane)
|
|
37
|
+
default: "https://context-graph-api.dev.kubiya.ai"
|
|
38
|
+
- name: KUBIYA_API_KEY
|
|
39
|
+
required: true
|
|
40
|
+
description: Kubiya API key for authentication
|
|
41
|
+
- name: KUBIYA_ORG_ID
|
|
42
|
+
required: false
|
|
43
|
+
description: Kubiya organization ID
|
|
44
|
+
- name: MEMORY_DATASET_NAME
|
|
45
|
+
required: false
|
|
46
|
+
description: Dataset name for memory scoping (defaults to "default")
|
|
47
|
+
default: "default"
|
|
48
|
+
|
|
49
|
+
configSchema:
|
|
50
|
+
type: object
|
|
51
|
+
properties:
|
|
52
|
+
api_base:
|
|
53
|
+
type: string
|
|
54
|
+
description: Context Graph API base URL (auto-fetched from control plane)
|
|
55
|
+
default: "https://context-graph-api.dev.kubiya.ai"
|
|
56
|
+
timeout:
|
|
57
|
+
type: integer
|
|
58
|
+
description: Request timeout in seconds
|
|
59
|
+
default: 30
|
|
60
|
+
minimum: 5
|
|
61
|
+
maximum: 120
|
|
62
|
+
default_limit:
|
|
63
|
+
type: integer
|
|
64
|
+
description: Default result limit for queries
|
|
65
|
+
default: 100
|
|
66
|
+
minimum: 1
|
|
67
|
+
maximum: 1000
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"""Contextual Awareness skill implementation for agno runtime."""
|
|
2
|
+
from control_plane_api.worker.services.contextual_awareness_tools import (
|
|
3
|
+
ContextualAwarenessTools as BaseContextualAwarenessTools
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ContextualAwarenessTools(BaseContextualAwarenessTools):
|
|
8
|
+
"""
|
|
9
|
+
Contextual Awareness tools using existing ContextualAwarenessTools.
|
|
10
|
+
|
|
11
|
+
Wraps the base contextual awareness implementation.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
predefined_nodes: list = None,
|
|
17
|
+
predefined_relationships: list = None,
|
|
18
|
+
allow_dynamic_search: bool = False,
|
|
19
|
+
allow_text_search: bool = True,
|
|
20
|
+
allow_subgraph_queries: bool = False,
|
|
21
|
+
allowed_integrations: list = None,
|
|
22
|
+
max_results: int = 100,
|
|
23
|
+
default_subgraph_depth: int = 1,
|
|
24
|
+
enable_caching: bool = True,
|
|
25
|
+
cache_ttl: int = 300,
|
|
26
|
+
control_plane_base_url: str = None,
|
|
27
|
+
kubiya_api_key: str = None,
|
|
28
|
+
**kwargs
|
|
29
|
+
):
|
|
30
|
+
"""
|
|
31
|
+
Initialize contextual awareness tools.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
predefined_nodes: List of predefined node filters
|
|
35
|
+
predefined_relationships: List of predefined relationship filters
|
|
36
|
+
allow_dynamic_search: Allow dynamic searches and custom Cypher queries
|
|
37
|
+
allow_text_search: Allow text-based searches
|
|
38
|
+
allow_subgraph_queries: Allow subgraph queries
|
|
39
|
+
allowed_integrations: List of allowed integrations (None = all)
|
|
40
|
+
max_results: Maximum results per query
|
|
41
|
+
default_subgraph_depth: Default subgraph traversal depth
|
|
42
|
+
enable_caching: Enable result caching
|
|
43
|
+
cache_ttl: Cache TTL in seconds
|
|
44
|
+
control_plane_base_url: Control Plane API base URL
|
|
45
|
+
kubiya_api_key: Kubiya API key for authentication
|
|
46
|
+
**kwargs: Additional configuration
|
|
47
|
+
"""
|
|
48
|
+
super().__init__(
|
|
49
|
+
predefined_nodes=predefined_nodes,
|
|
50
|
+
predefined_relationships=predefined_relationships,
|
|
51
|
+
allow_dynamic_search=allow_dynamic_search,
|
|
52
|
+
allow_text_search=allow_text_search,
|
|
53
|
+
allow_subgraph_queries=allow_subgraph_queries,
|
|
54
|
+
allowed_integrations=allowed_integrations,
|
|
55
|
+
max_results=max_results,
|
|
56
|
+
default_subgraph_depth=default_subgraph_depth,
|
|
57
|
+
enable_caching=enable_caching,
|
|
58
|
+
cache_ttl=cache_ttl,
|
|
59
|
+
control_plane_base_url=control_plane_base_url,
|
|
60
|
+
kubiya_api_key=kubiya_api_key,
|
|
61
|
+
**kwargs
|
|
62
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Data Visualization skill implementation for all runtimes."""
|
|
2
|
+
from control_plane_api.worker.services.data_visualization import DataVisualizationTools as BaseDataVisualizationTools
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DataVisualizationTools(BaseDataVisualizationTools):
|
|
6
|
+
"""
|
|
7
|
+
Data visualization and diagramming tools using Mermaid syntax.
|
|
8
|
+
|
|
9
|
+
This wrapper imports the full implementation from services.data_visualization
|
|
10
|
+
and makes it available as a builtin skill.
|
|
11
|
+
|
|
12
|
+
For agno runtime: Used directly as agno.tools.Toolkit
|
|
13
|
+
For claude_code runtime: Automatically converted to MCP server
|
|
14
|
+
|
|
15
|
+
The class already extends agno.tools.Toolkit and has all tools registered,
|
|
16
|
+
so no additional wrapper logic is needed.
|
|
17
|
+
"""
|
|
18
|
+
pass
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: data-visualization
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Create diagrams and visualizations using Mermaid syntax
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: BarChart3
|
|
9
|
+
icon_type: lucide
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: data_visualization
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: DataVisualizationTools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code will use same implementation converted to MCP server
|
|
20
|
+
# The agno Toolkit is automatically wrapped as an MCP server
|
|
21
|
+
module: agno_impl
|
|
22
|
+
class: DataVisualizationTools
|
|
23
|
+
default:
|
|
24
|
+
module: agno_impl
|
|
25
|
+
class: DataVisualizationTools
|
|
26
|
+
|
|
27
|
+
pythonDependencies:
|
|
28
|
+
- agno>=0.1.0
|
|
29
|
+
|
|
30
|
+
systemRequirements:
|
|
31
|
+
supportedOS: [linux, darwin, win32]
|
|
32
|
+
minPythonVersion: "3.10"
|
|
33
|
+
|
|
34
|
+
environmentVariables: []
|
|
35
|
+
|
|
36
|
+
configSchema:
|
|
37
|
+
type: object
|
|
38
|
+
properties:
|
|
39
|
+
enable_flowchart:
|
|
40
|
+
type: boolean
|
|
41
|
+
description: Enable flowchart diagrams
|
|
42
|
+
default: true
|
|
43
|
+
enable_sequence:
|
|
44
|
+
type: boolean
|
|
45
|
+
description: Enable sequence diagrams
|
|
46
|
+
default: true
|
|
47
|
+
enable_class_diagram:
|
|
48
|
+
type: boolean
|
|
49
|
+
description: Enable class diagrams
|
|
50
|
+
default: true
|
|
51
|
+
enable_er_diagram:
|
|
52
|
+
type: boolean
|
|
53
|
+
description: Enable ER diagrams
|
|
54
|
+
default: true
|
|
55
|
+
enable_gantt:
|
|
56
|
+
type: boolean
|
|
57
|
+
description: Enable Gantt charts
|
|
58
|
+
default: true
|
|
59
|
+
enable_pie_chart:
|
|
60
|
+
type: boolean
|
|
61
|
+
description: Enable pie charts
|
|
62
|
+
default: true
|
|
63
|
+
enable_state_diagram:
|
|
64
|
+
type: boolean
|
|
65
|
+
description: Enable state diagrams
|
|
66
|
+
default: true
|
|
67
|
+
enable_git_graph:
|
|
68
|
+
type: boolean
|
|
69
|
+
description: Enable git graphs
|
|
70
|
+
default: true
|
|
71
|
+
enable_user_journey:
|
|
72
|
+
type: boolean
|
|
73
|
+
description: Enable user journey diagrams
|
|
74
|
+
default: true
|
|
75
|
+
enable_quadrant_chart:
|
|
76
|
+
type: boolean
|
|
77
|
+
description: Enable quadrant charts
|
|
78
|
+
default: true
|
|
79
|
+
max_diagram_size:
|
|
80
|
+
type: integer
|
|
81
|
+
description: Maximum diagram size in characters
|
|
82
|
+
default: 50000
|
|
83
|
+
minimum: 1000
|
|
84
|
+
maximum: 100000
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""Docker skill implementation for agno runtime."""
|
|
2
|
+
from agno.tools import Toolkit
|
|
3
|
+
import docker
|
|
4
|
+
from control_plane_api.worker.skills.builtin.schema_fix_mixin import SchemaFixMixin
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class DockerTools(SchemaFixMixin, Toolkit):
|
|
8
|
+
"""
|
|
9
|
+
Docker management tools.
|
|
10
|
+
|
|
11
|
+
Provides Docker container, image, volume, and network management.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
enable_container_management: bool = True,
|
|
17
|
+
enable_image_management: bool = False,
|
|
18
|
+
enable_volume_management: bool = False,
|
|
19
|
+
enable_network_management: bool = False,
|
|
20
|
+
docker_host: str = "unix:///var/run/docker.sock",
|
|
21
|
+
**kwargs
|
|
22
|
+
):
|
|
23
|
+
"""
|
|
24
|
+
Initialize Docker tools.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
enable_container_management: Enable container operations
|
|
28
|
+
enable_image_management: Enable image operations
|
|
29
|
+
enable_volume_management: Enable volume operations
|
|
30
|
+
enable_network_management: Enable network operations
|
|
31
|
+
docker_host: Docker daemon socket
|
|
32
|
+
**kwargs: Additional configuration
|
|
33
|
+
"""
|
|
34
|
+
super().__init__(name="docker")
|
|
35
|
+
self.client = docker.DockerClient(base_url=docker_host)
|
|
36
|
+
self.enable_containers = enable_container_management
|
|
37
|
+
self.enable_images = enable_image_management
|
|
38
|
+
self.enable_volumes = enable_volume_management
|
|
39
|
+
self.enable_networks = enable_network_management
|
|
40
|
+
|
|
41
|
+
# Register functions based on enabled features
|
|
42
|
+
if self.enable_containers:
|
|
43
|
+
self.register(self.list_containers)
|
|
44
|
+
self.register(self.start_container)
|
|
45
|
+
self.register(self.stop_container)
|
|
46
|
+
|
|
47
|
+
# Fix: Rebuild function schemas with proper parameters
|
|
48
|
+
self._rebuild_function_schemas()
|
|
49
|
+
|
|
50
|
+
def list_containers(self, all: bool = False) -> str:
|
|
51
|
+
"""List Docker containers."""
|
|
52
|
+
containers = self.client.containers.list(all=all)
|
|
53
|
+
return "\\n".join([f"{c.id[:12]} {c.name} {c.status}" for c in containers])
|
|
54
|
+
|
|
55
|
+
def start_container(self, container_id: str) -> str:
|
|
56
|
+
"""Start a Docker container."""
|
|
57
|
+
container = self.client.containers.get(container_id)
|
|
58
|
+
container.start()
|
|
59
|
+
return f"Container {container_id} started"
|
|
60
|
+
|
|
61
|
+
def stop_container(self, container_id: str) -> str:
|
|
62
|
+
"""Stop a Docker container."""
|
|
63
|
+
container = self.client.containers.get(container_id)
|
|
64
|
+
container.stop()
|
|
65
|
+
return f"Container {container_id} stopped"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: docker
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Manage Docker containers, images, volumes, and networks
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: FaDocker
|
|
9
|
+
icon_type: react-icon
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: docker
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: DockerTools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code executes Docker commands via Bash tool
|
|
20
|
+
# Docker CLI commands run through shell
|
|
21
|
+
builtin: true
|
|
22
|
+
tools: ["Bash"]
|
|
23
|
+
default:
|
|
24
|
+
module: agno_impl
|
|
25
|
+
class: DockerTools
|
|
26
|
+
|
|
27
|
+
pythonDependencies:
|
|
28
|
+
- docker>=6.0.0
|
|
29
|
+
|
|
30
|
+
systemRequirements:
|
|
31
|
+
supportedOS: [linux, darwin, win32]
|
|
32
|
+
minPythonVersion: "3.10"
|
|
33
|
+
externalDependencies:
|
|
34
|
+
- Docker daemon must be running
|
|
35
|
+
|
|
36
|
+
environmentVariables: []
|
|
37
|
+
|
|
38
|
+
configSchema:
|
|
39
|
+
type: object
|
|
40
|
+
properties:
|
|
41
|
+
enable_container_management:
|
|
42
|
+
type: boolean
|
|
43
|
+
description: Enable container operations
|
|
44
|
+
default: true
|
|
45
|
+
enable_image_management:
|
|
46
|
+
type: boolean
|
|
47
|
+
description: Enable image operations
|
|
48
|
+
default: false
|
|
49
|
+
enable_volume_management:
|
|
50
|
+
type: boolean
|
|
51
|
+
description: Enable volume operations
|
|
52
|
+
default: false
|
|
53
|
+
enable_network_management:
|
|
54
|
+
type: boolean
|
|
55
|
+
description: Enable network operations
|
|
56
|
+
default: false
|
|
57
|
+
docker_host:
|
|
58
|
+
type: string
|
|
59
|
+
description: Docker daemon socket
|
|
60
|
+
default: "unix:///var/run/docker.sock"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""File Generation skill implementation for agno runtime."""
|
|
2
|
+
from agno.tools.file import FileTools
|
|
3
|
+
from control_plane_api.worker.skills.builtin.schema_fix_mixin import SchemaFixMixin
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class FileGenerationTools(SchemaFixMixin, FileTools):
|
|
7
|
+
"""
|
|
8
|
+
File generation tools using agno FileTools.
|
|
9
|
+
|
|
10
|
+
Provides file generation capabilities for various formats.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
enable_json_generation: bool = True,
|
|
16
|
+
enable_csv_generation: bool = True,
|
|
17
|
+
enable_pdf_generation: bool = True,
|
|
18
|
+
enable_txt_generation: bool = True,
|
|
19
|
+
output_directory: str = "",
|
|
20
|
+
max_file_size: int = 10,
|
|
21
|
+
**kwargs
|
|
22
|
+
):
|
|
23
|
+
"""
|
|
24
|
+
Initialize file generation tools.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
enable_json_generation: Enable JSON generation
|
|
28
|
+
enable_csv_generation: Enable CSV generation
|
|
29
|
+
enable_pdf_generation: Enable PDF generation
|
|
30
|
+
enable_txt_generation: Enable TXT generation
|
|
31
|
+
output_directory: Default output directory
|
|
32
|
+
max_file_size: Maximum file size in MB
|
|
33
|
+
**kwargs: Additional configuration
|
|
34
|
+
"""
|
|
35
|
+
from pathlib import Path
|
|
36
|
+
base_dir = Path(output_directory) if output_directory else Path.cwd()
|
|
37
|
+
super().__init__(base_dir=base_dir)
|
|
38
|
+
self.config = {
|
|
39
|
+
"enable_json": enable_json_generation,
|
|
40
|
+
"enable_csv": enable_csv_generation,
|
|
41
|
+
"enable_pdf": enable_pdf_generation,
|
|
42
|
+
"enable_txt": enable_txt_generation,
|
|
43
|
+
"max_size": max_file_size,
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# Fix: Rebuild function schemas with proper parameters
|
|
47
|
+
self._rebuild_function_schemas()
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: file-generator
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Generate and save files in various formats (JSON, CSV, PDF, TXT)
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: FileOutput
|
|
9
|
+
icon_type: lucide
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: file_generation
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: FileGenerationTools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code generates files via Write tool
|
|
20
|
+
# File generation handled by built-in Write tool
|
|
21
|
+
builtin: true
|
|
22
|
+
tools: ["Write"]
|
|
23
|
+
default:
|
|
24
|
+
module: agno_impl
|
|
25
|
+
class: FileGenerationTools
|
|
26
|
+
|
|
27
|
+
pythonDependencies:
|
|
28
|
+
- agno>=0.1.0
|
|
29
|
+
|
|
30
|
+
systemRequirements:
|
|
31
|
+
supportedOS: [linux, darwin, win32]
|
|
32
|
+
minPythonVersion: "3.10"
|
|
33
|
+
|
|
34
|
+
environmentVariables: []
|
|
35
|
+
|
|
36
|
+
configSchema:
|
|
37
|
+
type: object
|
|
38
|
+
properties:
|
|
39
|
+
enable_json_generation:
|
|
40
|
+
type: boolean
|
|
41
|
+
description: Enable JSON file generation
|
|
42
|
+
default: true
|
|
43
|
+
enable_csv_generation:
|
|
44
|
+
type: boolean
|
|
45
|
+
description: Enable CSV file generation
|
|
46
|
+
default: true
|
|
47
|
+
enable_pdf_generation:
|
|
48
|
+
type: boolean
|
|
49
|
+
description: Enable PDF file generation
|
|
50
|
+
default: true
|
|
51
|
+
enable_txt_generation:
|
|
52
|
+
type: boolean
|
|
53
|
+
description: Enable TXT file generation
|
|
54
|
+
default: true
|
|
55
|
+
output_directory:
|
|
56
|
+
type: string
|
|
57
|
+
description: Default output directory
|
|
58
|
+
default: ""
|
|
59
|
+
max_file_size:
|
|
60
|
+
type: integer
|
|
61
|
+
description: Maximum file size in MB
|
|
62
|
+
default: 10
|
|
63
|
+
minimum: 1
|
|
64
|
+
maximum: 100
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""File System skill implementation for agno runtime."""
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from agno.tools.file import FileTools
|
|
5
|
+
from control_plane_api.worker.skills.builtin.schema_fix_mixin import SchemaFixMixin
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FileSystemTools(SchemaFixMixin, FileTools):
|
|
9
|
+
"""
|
|
10
|
+
File system operations using agno FileTools.
|
|
11
|
+
|
|
12
|
+
Wraps agno's FileTools to provide file system access.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, base_directory: Optional[str] = None, **kwargs):
|
|
16
|
+
"""
|
|
17
|
+
Initialize file system tools.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
base_directory: Base directory for file operations.
|
|
21
|
+
If None and execution_id provided, uses .kubiya/workspaces/<execution-id>
|
|
22
|
+
If None and no execution_id, uses current working directory
|
|
23
|
+
If set explicitly, uses provided path (user override)
|
|
24
|
+
**kwargs: Additional configuration (read_only, max_file_size, etc.)
|
|
25
|
+
"""
|
|
26
|
+
# Agno's FileTools handles None as current directory
|
|
27
|
+
base_dir_path = Path(base_directory) if base_directory else None
|
|
28
|
+
super().__init__(base_dir=base_dir_path)
|
|
29
|
+
self.config = kwargs
|
|
30
|
+
|
|
31
|
+
# Fix: Rebuild function schemas with proper parameters
|
|
32
|
+
self._rebuild_function_schemas()
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: file-system
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Access and manipulate files on the local file system
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: Folder
|
|
9
|
+
icon_type: lucide
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: file_system
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: FileSystemTools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code has built-in file tools (Read, Write, Edit, Glob, Grep)
|
|
20
|
+
# No implementation needed - mapped via ClaudeCodeRuntime._map_skills_to_tools()
|
|
21
|
+
builtin: true
|
|
22
|
+
tools: ["Read", "Write", "Edit", "Glob", "Grep"]
|
|
23
|
+
default:
|
|
24
|
+
module: agno_impl
|
|
25
|
+
class: FileSystemTools
|
|
26
|
+
|
|
27
|
+
pythonDependencies:
|
|
28
|
+
- agno>=0.1.0
|
|
29
|
+
|
|
30
|
+
systemRequirements:
|
|
31
|
+
supportedOS: [linux, darwin, win32]
|
|
32
|
+
minPythonVersion: "3.10"
|
|
33
|
+
|
|
34
|
+
environmentVariables: []
|
|
35
|
+
|
|
36
|
+
configSchema:
|
|
37
|
+
type: object
|
|
38
|
+
properties:
|
|
39
|
+
base_directory:
|
|
40
|
+
type: string
|
|
41
|
+
description: Base directory for file operations
|
|
42
|
+
default: "/workspace"
|
|
43
|
+
read_only:
|
|
44
|
+
type: boolean
|
|
45
|
+
description: Restrict to read-only operations
|
|
46
|
+
default: false
|
|
47
|
+
max_file_size:
|
|
48
|
+
type: integer
|
|
49
|
+
description: Maximum file size in MB
|
|
50
|
+
default: 10
|
|
51
|
+
minimum: 1
|
|
52
|
+
maximum: 1000
|
|
53
|
+
required:
|
|
54
|
+
- base_directory
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Knowledge API skill implementation for all runtimes.
|
|
3
|
+
|
|
4
|
+
This skill imports the KnowledgeAPITools implementation from the kubiya SDK package.
|
|
5
|
+
It provides semantic search capabilities across the organization's knowledge base.
|
|
6
|
+
|
|
7
|
+
NOTE: This is an opt-in skill that must be explicitly associated with agents/teams.
|
|
8
|
+
It is NOT auto-included like context_graph_search.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from kubiya.tools import KnowledgeAPITools as SDKKnowledgeAPITools
|
|
13
|
+
|
|
14
|
+
class KnowledgeAPITools(SDKKnowledgeAPITools):
|
|
15
|
+
"""
|
|
16
|
+
Knowledge API tools for semantic search.
|
|
17
|
+
|
|
18
|
+
This wrapper imports the implementation from kubiya SDK and makes it
|
|
19
|
+
available as a builtin skill that can be associated with agents/teams.
|
|
20
|
+
|
|
21
|
+
For agno runtime: Used directly as agno.tools.Toolkit
|
|
22
|
+
For claude_code runtime: Automatically converted to MCP server
|
|
23
|
+
|
|
24
|
+
The SDK class already extends agno.tools.Toolkit and has all tools registered.
|
|
25
|
+
"""
|
|
26
|
+
pass
|
|
27
|
+
|
|
28
|
+
except ImportError as e:
|
|
29
|
+
# If kubiya SDK is not installed, provide a fallback that explains the issue
|
|
30
|
+
import structlog
|
|
31
|
+
from agno.tools import Toolkit
|
|
32
|
+
|
|
33
|
+
logger = structlog.get_logger()
|
|
34
|
+
|
|
35
|
+
class KnowledgeAPITools(Toolkit):
|
|
36
|
+
"""
|
|
37
|
+
Fallback implementation when kubiya SDK is not available.
|
|
38
|
+
|
|
39
|
+
This will raise an error during instantiation to guide users.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
def __init__(self, **kwargs):
|
|
43
|
+
super().__init__(name="knowledge_api")
|
|
44
|
+
error_msg = (
|
|
45
|
+
"KnowledgeAPITools requires kubiya SDK (kubiya>=2.0.3). "
|
|
46
|
+
f"Import error: {str(e)}. "
|
|
47
|
+
"Please ensure the kubiya SDK package is installed: pip install 'kubiya>=2.0.3'"
|
|
48
|
+
)
|
|
49
|
+
logger.error("knowledge_api_sdk_missing", error=error_msg, import_error=str(e))
|
|
50
|
+
raise ImportError(error_msg)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
apiVersion: kubiya.ai/v1
|
|
2
|
+
kind: Skill
|
|
3
|
+
metadata:
|
|
4
|
+
name: knowledge-api
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
description: Semantic search across organization's knowledge base
|
|
7
|
+
author: Kubiya
|
|
8
|
+
icon: Database
|
|
9
|
+
icon_type: lucide
|
|
10
|
+
|
|
11
|
+
spec:
|
|
12
|
+
type: knowledge_api
|
|
13
|
+
|
|
14
|
+
implementations:
|
|
15
|
+
agno:
|
|
16
|
+
module: agno_impl
|
|
17
|
+
class: KnowledgeAPITools
|
|
18
|
+
claude_code:
|
|
19
|
+
# Claude Code will use same implementation converted to MCP server
|
|
20
|
+
module: agno_impl
|
|
21
|
+
class: KnowledgeAPITools
|
|
22
|
+
default:
|
|
23
|
+
module: agno_impl
|
|
24
|
+
class: KnowledgeAPITools
|
|
25
|
+
|
|
26
|
+
pythonDependencies:
|
|
27
|
+
- kubiya>=2.0.3
|
|
28
|
+
|
|
29
|
+
systemRequirements:
|
|
30
|
+
supportedOS: [linux, darwin, win32]
|
|
31
|
+
minPythonVersion: "3.10"
|
|
32
|
+
|
|
33
|
+
environmentVariables:
|
|
34
|
+
- name: KUBIYA_API_KEY
|
|
35
|
+
required: true
|
|
36
|
+
description: Kubiya API key for authentication
|
|
37
|
+
- name: KUBIYA_ORCHESTRATOR_URL
|
|
38
|
+
required: false
|
|
39
|
+
description: Custom orchestrator URL
|
|
40
|
+
- name: KUBIYA_ORG_ID
|
|
41
|
+
required: false
|
|
42
|
+
description: Kubiya organization ID
|
|
43
|
+
- name: KUBIYA_USER_ID
|
|
44
|
+
required: false
|
|
45
|
+
description: Kubiya user ID
|
|
46
|
+
|
|
47
|
+
configSchema:
|
|
48
|
+
type: object
|
|
49
|
+
properties:
|
|
50
|
+
stream:
|
|
51
|
+
type: boolean
|
|
52
|
+
description: Use streaming mode for queries
|
|
53
|
+
default: true
|
|
54
|
+
auto_inject_user_context:
|
|
55
|
+
type: boolean
|
|
56
|
+
description: Automatically inject user_id and org_id
|
|
57
|
+
default: true
|
|
58
|
+
timeout:
|
|
59
|
+
type: integer
|
|
60
|
+
description: Request timeout in seconds
|
|
61
|
+
default: 60
|
|
62
|
+
minimum: 10
|
|
63
|
+
maximum: 300
|
|
64
|
+
orchestrator_url:
|
|
65
|
+
type: string
|
|
66
|
+
description: Custom orchestrator URL (optional)
|