locus-sdk 0.2.0b1__tar.gz
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.
- locus_sdk-0.2.0b1/.gitignore +265 -0
- locus_sdk-0.2.0b1/LICENSE +28 -0
- locus_sdk-0.2.0b1/LICENSE.txt +28 -0
- locus_sdk-0.2.0b1/PKG-INFO +443 -0
- locus_sdk-0.2.0b1/README.md +316 -0
- locus_sdk-0.2.0b1/THIRD_PARTY_LICENSES.txt +278 -0
- locus_sdk-0.2.0b1/pyproject.toml +631 -0
- locus_sdk-0.2.0b1/src/locus/__init__.py +241 -0
- locus_sdk-0.2.0b1/src/locus/a2a/__init__.py +99 -0
- locus_sdk-0.2.0b1/src/locus/a2a/protocol.py +1038 -0
- locus_sdk-0.2.0b1/src/locus/a2a/spec.py +402 -0
- locus_sdk-0.2.0b1/src/locus/agent/__init__.py +37 -0
- locus_sdk-0.2.0b1/src/locus/agent/agent.py +535 -0
- locus_sdk-0.2.0b1/src/locus/agent/composition.py +352 -0
- locus_sdk-0.2.0b1/src/locus/agent/config.py +578 -0
- locus_sdk-0.2.0b1/src/locus/agent/hook_orchestrator.py +151 -0
- locus_sdk-0.2.0b1/src/locus/agent/initializer.py +250 -0
- locus_sdk-0.2.0b1/src/locus/agent/result.py +339 -0
- locus_sdk-0.2.0b1/src/locus/agent/runtime_loop.py +1668 -0
- locus_sdk-0.2.0b1/src/locus/core/__init__.py +178 -0
- locus_sdk-0.2.0b1/src/locus/core/command.py +260 -0
- locus_sdk-0.2.0b1/src/locus/core/config.py +176 -0
- locus_sdk-0.2.0b1/src/locus/core/errors.py +207 -0
- locus_sdk-0.2.0b1/src/locus/core/events.py +259 -0
- locus_sdk-0.2.0b1/src/locus/core/interrupt.py +404 -0
- locus_sdk-0.2.0b1/src/locus/core/messages.py +151 -0
- locus_sdk-0.2.0b1/src/locus/core/protocols.py +348 -0
- locus_sdk-0.2.0b1/src/locus/core/reducers.py +466 -0
- locus_sdk-0.2.0b1/src/locus/core/send.py +325 -0
- locus_sdk-0.2.0b1/src/locus/core/state.py +379 -0
- locus_sdk-0.2.0b1/src/locus/core/structured.py +432 -0
- locus_sdk-0.2.0b1/src/locus/core/termination.py +237 -0
- locus_sdk-0.2.0b1/src/locus/core/warnings.py +41 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/__init__.py +137 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/backends/__init__.py +37 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/backends/filesystem.py +243 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/backends/protocol.py +123 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/backends/state.py +225 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/factory.py +219 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/memory.py +48 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/protocol.py +127 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/subagent.py +153 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/todos.py +122 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/tools/__init__.py +16 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/tools/filesystem.py +160 -0
- locus_sdk-0.2.0b1/src/locus/deepagent/workflow.py +642 -0
- locus_sdk-0.2.0b1/src/locus/evaluation/__init__.py +26 -0
- locus_sdk-0.2.0b1/src/locus/evaluation/framework.py +226 -0
- locus_sdk-0.2.0b1/src/locus/hooks/__init__.py +65 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/__init__.py +64 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/guardrails.py +765 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/logging.py +279 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/retry.py +130 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/steering.py +248 -0
- locus_sdk-0.2.0b1/src/locus/hooks/builtin/telemetry.py +393 -0
- locus_sdk-0.2.0b1/src/locus/hooks/events.py +86 -0
- locus_sdk-0.2.0b1/src/locus/hooks/plugin.py +137 -0
- locus_sdk-0.2.0b1/src/locus/hooks/provider.py +383 -0
- locus_sdk-0.2.0b1/src/locus/hooks/registry.py +387 -0
- locus_sdk-0.2.0b1/src/locus/integrations/__init__.py +18 -0
- locus_sdk-0.2.0b1/src/locus/integrations/fastmcp.py +723 -0
- locus_sdk-0.2.0b1/src/locus/integrations/osv.py +194 -0
- locus_sdk-0.2.0b1/src/locus/loop/__init__.py +54 -0
- locus_sdk-0.2.0b1/src/locus/loop/nodes.py +363 -0
- locus_sdk-0.2.0b1/src/locus/loop/react.py +279 -0
- locus_sdk-0.2.0b1/src/locus/loop/router.py +241 -0
- locus_sdk-0.2.0b1/src/locus/loop/runner.py +307 -0
- locus_sdk-0.2.0b1/src/locus/memory/__init__.py +115 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/__init__.py +81 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/adapters.py +649 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/file.py +288 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/http.py +301 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/memory.py +247 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/oci_bucket.py +607 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/opensearch.py +301 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/oracle.py +565 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/postgresql.py +454 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/redis.py +127 -0
- locus_sdk-0.2.0b1/src/locus/memory/backends/sqlite.py +206 -0
- locus_sdk-0.2.0b1/src/locus/memory/checkpointer.py +335 -0
- locus_sdk-0.2.0b1/src/locus/memory/compactor.py +329 -0
- locus_sdk-0.2.0b1/src/locus/memory/conversation.py +325 -0
- locus_sdk-0.2.0b1/src/locus/memory/delta.py +546 -0
- locus_sdk-0.2.0b1/src/locus/memory/manager.py +584 -0
- locus_sdk-0.2.0b1/src/locus/memory/registry.py +221 -0
- locus_sdk-0.2.0b1/src/locus/memory/store.py +935 -0
- locus_sdk-0.2.0b1/src/locus/models/__init__.py +99 -0
- locus_sdk-0.2.0b1/src/locus/models/auxiliary.py +56 -0
- locus_sdk-0.2.0b1/src/locus/models/base.py +114 -0
- locus_sdk-0.2.0b1/src/locus/models/caching.py +85 -0
- locus_sdk-0.2.0b1/src/locus/models/credentials.py +212 -0
- locus_sdk-0.2.0b1/src/locus/models/failover.py +787 -0
- locus_sdk-0.2.0b1/src/locus/models/metadata.py +357 -0
- locus_sdk-0.2.0b1/src/locus/models/native/__init__.py +22 -0
- locus_sdk-0.2.0b1/src/locus/models/native/anthropic.py +388 -0
- locus_sdk-0.2.0b1/src/locus/models/native/ollama.py +222 -0
- locus_sdk-0.2.0b1/src/locus/models/native/openai.py +487 -0
- locus_sdk-0.2.0b1/src/locus/models/pooled.py +212 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/__init__.py +18 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/__init__.py +397 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/_signing.py +137 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/base.py +130 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/client.py +271 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/models/__init__.py +14 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/models/cohere.py +263 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/models/generic.py +315 -0
- locus_sdk-0.2.0b1/src/locus/models/providers/oci/openai_compat.py +376 -0
- locus_sdk-0.2.0b1/src/locus/models/rate_limits.py +237 -0
- locus_sdk-0.2.0b1/src/locus/models/registry.py +154 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/__init__.py +134 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/functional.py +234 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/graph.py +1551 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/handoff.py +618 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/orchestrator.py +467 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/specialist.py +495 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/swarm.py +686 -0
- locus_sdk-0.2.0b1/src/locus/multiagent/visualize.py +139 -0
- locus_sdk-0.2.0b1/src/locus/observability/__init__.py +67 -0
- locus_sdk-0.2.0b1/src/locus/observability/agent_bridge.py +171 -0
- locus_sdk-0.2.0b1/src/locus/observability/bus_hook.py +175 -0
- locus_sdk-0.2.0b1/src/locus/observability/context.py +137 -0
- locus_sdk-0.2.0b1/src/locus/observability/emit.py +216 -0
- locus_sdk-0.2.0b1/src/locus/observability/event_bus.py +369 -0
- locus_sdk-0.2.0b1/src/locus/observability/router_events.py +188 -0
- locus_sdk-0.2.0b1/src/locus/playbooks/__init__.py +45 -0
- locus_sdk-0.2.0b1/src/locus/playbooks/enforcer.py +403 -0
- locus_sdk-0.2.0b1/src/locus/playbooks/hook.py +161 -0
- locus_sdk-0.2.0b1/src/locus/playbooks/loader.py +271 -0
- locus_sdk-0.2.0b1/src/locus/playbooks/models.py +202 -0
- locus_sdk-0.2.0b1/src/locus/providers/__init__.py +63 -0
- locus_sdk-0.2.0b1/src/locus/providers/image.py +113 -0
- locus_sdk-0.2.0b1/src/locus/providers/speech.py +171 -0
- locus_sdk-0.2.0b1/src/locus/providers/tools.py +217 -0
- locus_sdk-0.2.0b1/src/locus/providers/types.py +42 -0
- locus_sdk-0.2.0b1/src/locus/providers/web_fetch.py +194 -0
- locus_sdk-0.2.0b1/src/locus/providers/web_search.py +129 -0
- locus_sdk-0.2.0b1/src/locus/py.typed +0 -0
- locus_sdk-0.2.0b1/src/locus/rag/__init__.py +163 -0
- locus_sdk-0.2.0b1/src/locus/rag/embeddings/__init__.py +47 -0
- locus_sdk-0.2.0b1/src/locus/rag/embeddings/base.py +219 -0
- locus_sdk-0.2.0b1/src/locus/rag/embeddings/oci.py +397 -0
- locus_sdk-0.2.0b1/src/locus/rag/embeddings/openai.py +207 -0
- locus_sdk-0.2.0b1/src/locus/rag/multimodal.py +586 -0
- locus_sdk-0.2.0b1/src/locus/rag/retriever.py +562 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/__init__.py +84 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/base.py +266 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/chroma.py +428 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/memory.py +155 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/opensearch.py +396 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/oracle.py +533 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/pgvector.py +608 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/pinecone.py +405 -0
- locus_sdk-0.2.0b1/src/locus/rag/stores/qdrant.py +459 -0
- locus_sdk-0.2.0b1/src/locus/rag/tools.py +265 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/__init__.py +79 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/causal.py +727 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/grounding.py +677 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/gsar.py +392 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/gsar_evaluator.py +262 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/gsar_judge.py +336 -0
- locus_sdk-0.2.0b1/src/locus/reasoning/reflexion.py +515 -0
- locus_sdk-0.2.0b1/src/locus/router/__init__.py +111 -0
- locus_sdk-0.2.0b1/src/locus/router/capability.py +133 -0
- locus_sdk-0.2.0b1/src/locus/router/compiler.py +181 -0
- locus_sdk-0.2.0b1/src/locus/router/goal_frame.py +145 -0
- locus_sdk-0.2.0b1/src/locus/router/policy.py +103 -0
- locus_sdk-0.2.0b1/src/locus/router/protocol.py +646 -0
- locus_sdk-0.2.0b1/src/locus/router/runnable.py +234 -0
- locus_sdk-0.2.0b1/src/locus/router/runtime.py +129 -0
- locus_sdk-0.2.0b1/src/locus/router/skill_index.py +80 -0
- locus_sdk-0.2.0b1/src/locus/server/__init__.py +26 -0
- locus_sdk-0.2.0b1/src/locus/server/app.py +436 -0
- locus_sdk-0.2.0b1/src/locus/skills/__init__.py +37 -0
- locus_sdk-0.2.0b1/src/locus/skills/models.py +255 -0
- locus_sdk-0.2.0b1/src/locus/skills/plugin.py +207 -0
- locus_sdk-0.2.0b1/src/locus/streaming/__init__.py +49 -0
- locus_sdk-0.2.0b1/src/locus/streaming/console.py +373 -0
- locus_sdk-0.2.0b1/src/locus/streaming/handler.py +284 -0
- locus_sdk-0.2.0b1/src/locus/streaming/sse.py +443 -0
- locus_sdk-0.2.0b1/src/locus/streaming/structured.py +144 -0
- locus_sdk-0.2.0b1/src/locus/tools/__init__.py +25 -0
- locus_sdk-0.2.0b1/src/locus/tools/builtins.py +57 -0
- locus_sdk-0.2.0b1/src/locus/tools/context.py +69 -0
- locus_sdk-0.2.0b1/src/locus/tools/decorator.py +189 -0
- locus_sdk-0.2.0b1/src/locus/tools/executor.py +419 -0
- locus_sdk-0.2.0b1/src/locus/tools/path_safety.py +99 -0
- locus_sdk-0.2.0b1/src/locus/tools/registry.py +87 -0
- locus_sdk-0.2.0b1/src/locus/tools/result_storage.py +183 -0
- locus_sdk-0.2.0b1/src/locus/tools/schema.py +206 -0
- locus_sdk-0.2.0b1/src/locus/tools/url_safety.py +193 -0
- locus_sdk-0.2.0b1/src/locus/tools/watcher.py +304 -0
- locus_sdk-0.2.0b1/tests/__init__.py +5 -0
- locus_sdk-0.2.0b1/tests/_safe_math.py +56 -0
- locus_sdk-0.2.0b1/tests/integration/__init__.py +5 -0
- locus_sdk-0.2.0b1/tests/integration/conftest.py +369 -0
- locus_sdk-0.2.0b1/tests/integration/rag/__init__.py +5 -0
- locus_sdk-0.2.0b1/tests/integration/rag/conftest.py +146 -0
- locus_sdk-0.2.0b1/tests/integration/rag/test_oci_embeddings.py +185 -0
- locus_sdk-0.2.0b1/tests/integration/rag/test_opensearch_store.py +227 -0
- locus_sdk-0.2.0b1/tests/integration/rag/test_qdrant_store.py +254 -0
- locus_sdk-0.2.0b1/tests/integration/rag/test_rag_e2e.py +308 -0
- locus_sdk-0.2.0b1/tests/integration/test_a2a_live.py +260 -0
- locus_sdk-0.2.0b1/tests/integration/test_agent_gsar_live.py +117 -0
- locus_sdk-0.2.0b1/tests/integration/test_agent_integration.py +2135 -0
- locus_sdk-0.2.0b1/tests/integration/test_auxiliary_model_live.py +94 -0
- locus_sdk-0.2.0b1/tests/integration/test_checkpoint_backends.py +605 -0
- locus_sdk-0.2.0b1/tests/integration/test_checkpointer_adapters.py +627 -0
- locus_sdk-0.2.0b1/tests/integration/test_complex_agent.py +341 -0
- locus_sdk-0.2.0b1/tests/integration/test_comprehensive_agent.py +520 -0
- locus_sdk-0.2.0b1/tests/integration/test_fastmcp_integration.py +231 -0
- locus_sdk-0.2.0b1/tests/integration/test_gsar_live.py +570 -0
- locus_sdk-0.2.0b1/tests/integration/test_hermes_compactor_e2e.py +176 -0
- locus_sdk-0.2.0b1/tests/integration/test_hook_exports_live.py +99 -0
- locus_sdk-0.2.0b1/tests/integration/test_idempotent_models.py +201 -0
- locus_sdk-0.2.0b1/tests/integration/test_memory_manager_live.py +264 -0
- locus_sdk-0.2.0b1/tests/integration/test_models_integration.py +242 -0
- locus_sdk-0.2.0b1/tests/integration/test_new_vector_stores.py +218 -0
- locus_sdk-0.2.0b1/tests/integration/test_observability_emission_points.py +279 -0
- locus_sdk-0.2.0b1/tests/integration/test_observability_full_coverage.py +382 -0
- locus_sdk-0.2.0b1/tests/integration/test_observability_router_events.py +229 -0
- locus_sdk-0.2.0b1/tests/integration/test_oci_dac_live.py +146 -0
- locus_sdk-0.2.0b1/tests/integration/test_oci_graph_integration.py +524 -0
- locus_sdk-0.2.0b1/tests/integration/test_oci_integration.py +333 -0
- locus_sdk-0.2.0b1/tests/integration/test_oci_openai_compat_integration.py +144 -0
- locus_sdk-0.2.0b1/tests/integration/test_openai_anthropic_native.py +312 -0
- locus_sdk-0.2.0b1/tests/integration/test_oracle_rag.py +428 -0
- locus_sdk-0.2.0b1/tests/integration/test_playbook_enforcer_live.py +169 -0
- locus_sdk-0.2.0b1/tests/integration/test_providers_live.py +189 -0
- locus_sdk-0.2.0b1/tests/integration/test_rag_agent_e2e.py +284 -0
- locus_sdk-0.2.0b1/tests/integration/test_router_benchmark.py +944 -0
- locus_sdk-0.2.0b1/tests/integration/test_router_e2e.py +513 -0
- locus_sdk-0.2.0b1/tests/integration/test_security_hardening_integration.py +164 -0
- locus_sdk-0.2.0b1/tests/integration/test_server_threads_live.py +136 -0
- locus_sdk-0.2.0b1/tests/integration/test_structured_output_models.py +220 -0
- locus_sdk-0.2.0b1/tests/integration/test_structured_stream_live.py +137 -0
- locus_sdk-0.2.0b1/tests/integration/test_termination_models.py +281 -0
- locus_sdk-0.2.0b1/tests/integration/test_tutorials_13_21.py +893 -0
- locus_sdk-0.2.0b1/tests/integration/test_tutorials_22_24.py +523 -0
- locus_sdk-0.2.0b1/tests/integration/test_tutorials_all_live.py +104 -0
- locus_sdk-0.2.0b1/tests/integration/test_workbench_categories.py +156 -0
- locus_sdk-0.2.0b1/tests/integration/test_workbench_router_endpoints.py +233 -0
- locus_sdk-0.2.0b1/tests/integration/test_workbench_sse_stream.py +338 -0
- locus_sdk-0.2.0b1/tests/unit/__init__.py +5 -0
- locus_sdk-0.2.0b1/tests/unit/memory/__init__.py +0 -0
- locus_sdk-0.2.0b1/tests/unit/memory/test_memory_manager.py +468 -0
- locus_sdk-0.2.0b1/tests/unit/rag/__init__.py +5 -0
- locus_sdk-0.2.0b1/tests/unit/rag/test_embeddings.py +161 -0
- locus_sdk-0.2.0b1/tests/unit/rag/test_multimodal.py +254 -0
- locus_sdk-0.2.0b1/tests/unit/rag/test_retriever.py +254 -0
- locus_sdk-0.2.0b1/tests/unit/rag/test_stores.py +321 -0
- locus_sdk-0.2.0b1/tests/unit/test_a2a_protocol.py +635 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent.py +4838 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_auxiliary_model.py +181 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_config.py +297 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_facade_extended.py +115 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_gsar.py +380 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_idempotent.py +160 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_result.py +276 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_structured_output.py +241 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_termination.py +268 -0
- locus_sdk-0.2.0b1/tests/unit/test_agent_tool_result_store.py +176 -0
- locus_sdk-0.2.0b1/tests/unit/test_anthropic_full.py +439 -0
- locus_sdk-0.2.0b1/tests/unit/test_anthropic_prompt_caching.py +200 -0
- locus_sdk-0.2.0b1/tests/unit/test_auxiliary_model.py +66 -0
- locus_sdk-0.2.0b1/tests/unit/test_base_checkpointer.py +224 -0
- locus_sdk-0.2.0b1/tests/unit/test_checkpointer_registry.py +371 -0
- locus_sdk-0.2.0b1/tests/unit/test_command.py +205 -0
- locus_sdk-0.2.0b1/tests/unit/test_compactor.py +207 -0
- locus_sdk-0.2.0b1/tests/unit/test_console_handler.py +340 -0
- locus_sdk-0.2.0b1/tests/unit/test_conversation.py +128 -0
- locus_sdk-0.2.0b1/tests/unit/test_core_config.py +234 -0
- locus_sdk-0.2.0b1/tests/unit/test_core_warnings.py +60 -0
- locus_sdk-0.2.0b1/tests/unit/test_credential_pool.py +226 -0
- locus_sdk-0.2.0b1/tests/unit/test_deepagent.py +182 -0
- locus_sdk-0.2.0b1/tests/unit/test_deepagent_filesystem.py +388 -0
- locus_sdk-0.2.0b1/tests/unit/test_deepagent_filesystem_backend.py +234 -0
- locus_sdk-0.2.0b1/tests/unit/test_deepagent_slice2.py +219 -0
- locus_sdk-0.2.0b1/tests/unit/test_deepagent_slice3.py +198 -0
- locus_sdk-0.2.0b1/tests/unit/test_delta_checkpointer.py +394 -0
- locus_sdk-0.2.0b1/tests/unit/test_deploy_helm_chart.py +166 -0
- locus_sdk-0.2.0b1/tests/unit/test_embedding_capabilities.py +91 -0
- locus_sdk-0.2.0b1/tests/unit/test_enforcer.py +370 -0
- locus_sdk-0.2.0b1/tests/unit/test_errors.py +91 -0
- locus_sdk-0.2.0b1/tests/unit/test_failover.py +360 -0
- locus_sdk-0.2.0b1/tests/unit/test_failover_extended.py +411 -0
- locus_sdk-0.2.0b1/tests/unit/test_fastmcp.py +936 -0
- locus_sdk-0.2.0b1/tests/unit/test_fastmcp_extended.py +302 -0
- locus_sdk-0.2.0b1/tests/unit/test_file_checkpointer.py +380 -0
- locus_sdk-0.2.0b1/tests/unit/test_graph.py +1339 -0
- locus_sdk-0.2.0b1/tests/unit/test_graph_extended.py +450 -0
- locus_sdk-0.2.0b1/tests/unit/test_grounding.py +501 -0
- locus_sdk-0.2.0b1/tests/unit/test_gsar.py +498 -0
- locus_sdk-0.2.0b1/tests/unit/test_gsar_evaluator.py +330 -0
- locus_sdk-0.2.0b1/tests/unit/test_gsar_judge.py +235 -0
- locus_sdk-0.2.0b1/tests/unit/test_guardrails.py +646 -0
- locus_sdk-0.2.0b1/tests/unit/test_guardrails_output_filter.py +103 -0
- locus_sdk-0.2.0b1/tests/unit/test_handoff.py +504 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_caching_e2e.py +74 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_failover_pool.py +216 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_full_e2e.py +573 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_osv_e2e.py +70 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_path_safety_e2e.py +114 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_redaction_e2e.py +143 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_result_storage.py +141 -0
- locus_sdk-0.2.0b1/tests/unit/test_hermes_url_safety_e2e.py +133 -0
- locus_sdk-0.2.0b1/tests/unit/test_hook_orchestrator.py +169 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks.py +522 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_builtin.py +194 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_builtin_retry.py +152 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_builtin_steering.py +285 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_logging.py +204 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_plugin.py +145 -0
- locus_sdk-0.2.0b1/tests/unit/test_hooks_registry.py +261 -0
- locus_sdk-0.2.0b1/tests/unit/test_http_checkpointer.py +729 -0
- locus_sdk-0.2.0b1/tests/unit/test_idempotent_tools.py +185 -0
- locus_sdk-0.2.0b1/tests/unit/test_integrations_fastmcp.py +317 -0
- locus_sdk-0.2.0b1/tests/unit/test_integrations_fastmcp_full.py +379 -0
- locus_sdk-0.2.0b1/tests/unit/test_interrupt.py +216 -0
- locus_sdk-0.2.0b1/tests/unit/test_locus_init.py +174 -0
- locus_sdk-0.2.0b1/tests/unit/test_loop.py +1118 -0
- locus_sdk-0.2.0b1/tests/unit/test_loop_runner.py +255 -0
- locus_sdk-0.2.0b1/tests/unit/test_loop_runner_extended.py +294 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory.py +893 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_backends.py +207 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_backends_adapters.py +494 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_backends_postgresql.py +463 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_checkpointer.py +358 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_registry.py +645 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_registry_factories.py +131 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_store.py +780 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_store_namespaced_and_context.py +234 -0
- locus_sdk-0.2.0b1/tests/unit/test_memory_vector_store.py +363 -0
- locus_sdk-0.2.0b1/tests/unit/test_messages.py +162 -0
- locus_sdk-0.2.0b1/tests/unit/test_model_metadata.py +177 -0
- locus_sdk-0.2.0b1/tests/unit/test_model_registry.py +96 -0
- locus_sdk-0.2.0b1/tests/unit/test_models.py +490 -0
- locus_sdk-0.2.0b1/tests/unit/test_models_init.py +199 -0
- locus_sdk-0.2.0b1/tests/unit/test_models_native_ollama.py +322 -0
- locus_sdk-0.2.0b1/tests/unit/test_models_native_openai.py +638 -0
- locus_sdk-0.2.0b1/tests/unit/test_multiagent.py +1111 -0
- locus_sdk-0.2.0b1/tests/unit/test_multiagent_functional.py +265 -0
- locus_sdk-0.2.0b1/tests/unit/test_multiagent_visualize.py +259 -0
- locus_sdk-0.2.0b1/tests/unit/test_multimodal.py +571 -0
- locus_sdk-0.2.0b1/tests/unit/test_multiturn_checkpointer.py +137 -0
- locus_sdk-0.2.0b1/tests/unit/test_native_structured_output.py +132 -0
- locus_sdk-0.2.0b1/tests/unit/test_observability_bus_hook.py +290 -0
- locus_sdk-0.2.0b1/tests/unit/test_observability_context_and_emit.py +307 -0
- locus_sdk-0.2.0b1/tests/unit/test_observability_event_bus.py +281 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_base_provider.py +129 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_bucket_retry.py +102 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_client.py +307 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_cohere.py +364 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_dac.py +248 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_generic.py +509 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_model.py +324 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_openai_compat.py +335 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_openai_compat_helpers.py +160 -0
- locus_sdk-0.2.0b1/tests/unit/test_oci_signing.py +235 -0
- locus_sdk-0.2.0b1/tests/unit/test_openai_model.py +475 -0
- locus_sdk-0.2.0b1/tests/unit/test_orchestrator_parallel.py +177 -0
- locus_sdk-0.2.0b1/tests/unit/test_osv_check.py +226 -0
- locus_sdk-0.2.0b1/tests/unit/test_path_safety.py +123 -0
- locus_sdk-0.2.0b1/tests/unit/test_playbook_enforcer_hook.py +229 -0
- locus_sdk-0.2.0b1/tests/unit/test_playbook_loader.py +358 -0
- locus_sdk-0.2.0b1/tests/unit/test_playbook_models.py +315 -0
- locus_sdk-0.2.0b1/tests/unit/test_playbooks.py +206 -0
- locus_sdk-0.2.0b1/tests/unit/test_pooled_model.py +281 -0
- locus_sdk-0.2.0b1/tests/unit/test_prompt_caching.py +59 -0
- locus_sdk-0.2.0b1/tests/unit/test_providers.py +459 -0
- locus_sdk-0.2.0b1/tests/unit/test_providers_image_and_speech.py +178 -0
- locus_sdk-0.2.0b1/tests/unit/test_providers_tools.py +289 -0
- locus_sdk-0.2.0b1/tests/unit/test_providers_web.py +285 -0
- locus_sdk-0.2.0b1/tests/unit/test_public_imports.py +110 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_embeddings_init.py +54 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_embeddings_oci.py +346 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_init.py +140 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_multimodal.py +833 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_multimodal_full.py +526 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_retriever.py +905 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_stores_base.py +333 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_stores_chroma.py +661 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_stores_init.py +135 -0
- locus_sdk-0.2.0b1/tests/unit/test_rag_tools.py +254 -0
- locus_sdk-0.2.0b1/tests/unit/test_rate_limits.py +275 -0
- locus_sdk-0.2.0b1/tests/unit/test_reasoning.py +1147 -0
- locus_sdk-0.2.0b1/tests/unit/test_reasoning_extended.py +416 -0
- locus_sdk-0.2.0b1/tests/unit/test_redaction.py +207 -0
- locus_sdk-0.2.0b1/tests/unit/test_reducers.py +566 -0
- locus_sdk-0.2.0b1/tests/unit/test_research_workflow.py +652 -0
- locus_sdk-0.2.0b1/tests/unit/test_result_storage.py +172 -0
- locus_sdk-0.2.0b1/tests/unit/test_router.py +687 -0
- locus_sdk-0.2.0b1/tests/unit/test_router_compiled_shape.py +679 -0
- locus_sdk-0.2.0b1/tests/unit/test_runtime_loop_helpers.py +62 -0
- locus_sdk-0.2.0b1/tests/unit/test_security_hardening.py +414 -0
- locus_sdk-0.2.0b1/tests/unit/test_send.py +259 -0
- locus_sdk-0.2.0b1/tests/unit/test_server_app_full.py +388 -0
- locus_sdk-0.2.0b1/tests/unit/test_server_threads.py +247 -0
- locus_sdk-0.2.0b1/tests/unit/test_skills_models.py +267 -0
- locus_sdk-0.2.0b1/tests/unit/test_skills_plugin.py +273 -0
- locus_sdk-0.2.0b1/tests/unit/test_specialist.py +702 -0
- locus_sdk-0.2.0b1/tests/unit/test_sqlite_backend.py +236 -0
- locus_sdk-0.2.0b1/tests/unit/test_state.py +481 -0
- locus_sdk-0.2.0b1/tests/unit/test_stategraph_streaming.py +222 -0
- locus_sdk-0.2.0b1/tests/unit/test_storage_adapters.py +424 -0
- locus_sdk-0.2.0b1/tests/unit/test_storage_backend_adapter.py +627 -0
- locus_sdk-0.2.0b1/tests/unit/test_store.py +323 -0
- locus_sdk-0.2.0b1/tests/unit/test_streaming.py +912 -0
- locus_sdk-0.2.0b1/tests/unit/test_streaming_console.py +525 -0
- locus_sdk-0.2.0b1/tests/unit/test_streaming_extended.py +180 -0
- locus_sdk-0.2.0b1/tests/unit/test_structured.py +280 -0
- locus_sdk-0.2.0b1/tests/unit/test_structured_partial.py +230 -0
- locus_sdk-0.2.0b1/tests/unit/test_swarm.py +676 -0
- locus_sdk-0.2.0b1/tests/unit/test_swarm_capabilities.py +111 -0
- locus_sdk-0.2.0b1/tests/unit/test_telemetry_hook.py +322 -0
- locus_sdk-0.2.0b1/tests/unit/test_termination_extended.py +162 -0
- locus_sdk-0.2.0b1/tests/unit/test_tools.py +373 -0
- locus_sdk-0.2.0b1/tests/unit/test_tools_context.py +135 -0
- locus_sdk-0.2.0b1/tests/unit/test_tools_executor.py +382 -0
- locus_sdk-0.2.0b1/tests/unit/test_tools_schema.py +304 -0
- locus_sdk-0.2.0b1/tests/unit/test_tools_watcher.py +295 -0
- locus_sdk-0.2.0b1/tests/unit/test_url_safety.py +229 -0
- locus_sdk-0.2.0b1/tests/unit/test_vector_stores.py +208 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Local Testing (contains credentials - never commit)
|
|
3
|
+
# =============================================================================
|
|
4
|
+
TESTING_LOCAL.md
|
|
5
|
+
DEPENDENCY_VERSIONS.md
|
|
6
|
+
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Python
|
|
9
|
+
# =============================================================================
|
|
10
|
+
|
|
11
|
+
# Byte-compiled / optimized / DLL files
|
|
12
|
+
__pycache__/
|
|
13
|
+
*.py[cod]
|
|
14
|
+
*$py.class
|
|
15
|
+
|
|
16
|
+
# C extensions
|
|
17
|
+
*.so
|
|
18
|
+
|
|
19
|
+
# Distribution / packaging
|
|
20
|
+
.Python
|
|
21
|
+
build/
|
|
22
|
+
develop-eggs/
|
|
23
|
+
dist/
|
|
24
|
+
downloads/
|
|
25
|
+
eggs/
|
|
26
|
+
.eggs/
|
|
27
|
+
lib/
|
|
28
|
+
lib64/
|
|
29
|
+
parts/
|
|
30
|
+
sdist/
|
|
31
|
+
var/
|
|
32
|
+
wheels/
|
|
33
|
+
share/python-wheels/
|
|
34
|
+
*.egg-info/
|
|
35
|
+
.installed.cfg
|
|
36
|
+
*.egg
|
|
37
|
+
MANIFEST
|
|
38
|
+
|
|
39
|
+
# PyInstaller
|
|
40
|
+
*.manifest
|
|
41
|
+
*.spec
|
|
42
|
+
|
|
43
|
+
# Installer logs
|
|
44
|
+
pip-log.txt
|
|
45
|
+
pip-delete-this-directory.txt
|
|
46
|
+
|
|
47
|
+
# Unit test / coverage reports
|
|
48
|
+
htmlcov/
|
|
49
|
+
.tox/
|
|
50
|
+
.nox/
|
|
51
|
+
.coverage
|
|
52
|
+
.coverage.*
|
|
53
|
+
.cache
|
|
54
|
+
nosetests.xml
|
|
55
|
+
coverage.xml
|
|
56
|
+
coverage.json
|
|
57
|
+
*.cover
|
|
58
|
+
*.py,cover
|
|
59
|
+
.hypothesis/
|
|
60
|
+
.pytest_cache/
|
|
61
|
+
cover/
|
|
62
|
+
|
|
63
|
+
# Translations
|
|
64
|
+
*.mo
|
|
65
|
+
*.pot
|
|
66
|
+
|
|
67
|
+
# Environments
|
|
68
|
+
.env
|
|
69
|
+
.env.*
|
|
70
|
+
!.env.example
|
|
71
|
+
.venv
|
|
72
|
+
env/
|
|
73
|
+
venv/
|
|
74
|
+
ENV/
|
|
75
|
+
env.bak/
|
|
76
|
+
venv.bak/
|
|
77
|
+
|
|
78
|
+
# Spyder project settings
|
|
79
|
+
.spyderproject
|
|
80
|
+
.spyproject
|
|
81
|
+
|
|
82
|
+
# Rope project settings
|
|
83
|
+
.ropeproject
|
|
84
|
+
|
|
85
|
+
# mkdocs documentation
|
|
86
|
+
/site
|
|
87
|
+
|
|
88
|
+
# mypy
|
|
89
|
+
.mypy_cache/
|
|
90
|
+
.dmypy.json
|
|
91
|
+
dmypy.json
|
|
92
|
+
|
|
93
|
+
# Pyre type checker
|
|
94
|
+
.pyre/
|
|
95
|
+
|
|
96
|
+
# pytype static type analyzer
|
|
97
|
+
.pytype/
|
|
98
|
+
|
|
99
|
+
# Cython debug symbols
|
|
100
|
+
cython_debug/
|
|
101
|
+
|
|
102
|
+
# =============================================================================
|
|
103
|
+
# Hatch
|
|
104
|
+
# =============================================================================
|
|
105
|
+
.hatch/
|
|
106
|
+
|
|
107
|
+
# =============================================================================
|
|
108
|
+
# IDE / Editors
|
|
109
|
+
# =============================================================================
|
|
110
|
+
|
|
111
|
+
# VS Code
|
|
112
|
+
.vscode/
|
|
113
|
+
*.code-workspace
|
|
114
|
+
|
|
115
|
+
# PyCharm / IntelliJ
|
|
116
|
+
.idea/
|
|
117
|
+
*.iml
|
|
118
|
+
*.ipr
|
|
119
|
+
*.iws
|
|
120
|
+
out/
|
|
121
|
+
|
|
122
|
+
# Sublime Text
|
|
123
|
+
*.sublime-project
|
|
124
|
+
*.sublime-workspace
|
|
125
|
+
|
|
126
|
+
# Vim
|
|
127
|
+
*.swp
|
|
128
|
+
*.swo
|
|
129
|
+
*~
|
|
130
|
+
.vim/
|
|
131
|
+
|
|
132
|
+
# Emacs
|
|
133
|
+
*~
|
|
134
|
+
\#*\#
|
|
135
|
+
/.emacs.desktop
|
|
136
|
+
/.emacs.desktop.lock
|
|
137
|
+
*.elc
|
|
138
|
+
auto-save-list
|
|
139
|
+
tramp
|
|
140
|
+
.\#*
|
|
141
|
+
|
|
142
|
+
# =============================================================================
|
|
143
|
+
# OS Generated
|
|
144
|
+
# =============================================================================
|
|
145
|
+
|
|
146
|
+
# macOS
|
|
147
|
+
.DS_Store
|
|
148
|
+
.AppleDouble
|
|
149
|
+
.LSOverride
|
|
150
|
+
Icon
|
|
151
|
+
._*
|
|
152
|
+
.DocumentRevisions-V100
|
|
153
|
+
.fseventsd
|
|
154
|
+
.Spotlight-V100
|
|
155
|
+
.TemporaryItems
|
|
156
|
+
.Trashes
|
|
157
|
+
.VolumeIcon.icns
|
|
158
|
+
.com.apple.timemachine.donotpresent
|
|
159
|
+
.AppleDB
|
|
160
|
+
.AppleDesktop
|
|
161
|
+
Network Trash Folder
|
|
162
|
+
Temporary Items
|
|
163
|
+
.apdisk
|
|
164
|
+
|
|
165
|
+
# Windows
|
|
166
|
+
Thumbs.db
|
|
167
|
+
Thumbs.db:encryptable
|
|
168
|
+
ehthumbs.db
|
|
169
|
+
ehthumbs_vista.db
|
|
170
|
+
*.stackdump
|
|
171
|
+
[Dd]esktop.ini
|
|
172
|
+
$RECYCLE.BIN/
|
|
173
|
+
*.cab
|
|
174
|
+
*.msi
|
|
175
|
+
*.msix
|
|
176
|
+
*.msm
|
|
177
|
+
*.msp
|
|
178
|
+
*.lnk
|
|
179
|
+
|
|
180
|
+
# Linux
|
|
181
|
+
*~
|
|
182
|
+
.fuse_hidden*
|
|
183
|
+
.directory
|
|
184
|
+
.Trash-*
|
|
185
|
+
.nfs*
|
|
186
|
+
|
|
187
|
+
# =============================================================================
|
|
188
|
+
# Project Specific
|
|
189
|
+
# =============================================================================
|
|
190
|
+
|
|
191
|
+
# Local configuration
|
|
192
|
+
*.local.yaml
|
|
193
|
+
*.local.json
|
|
194
|
+
config.local.*
|
|
195
|
+
.secrets/
|
|
196
|
+
secrets/
|
|
197
|
+
|
|
198
|
+
# Logs
|
|
199
|
+
logs/
|
|
200
|
+
*.log
|
|
201
|
+
|
|
202
|
+
# Temporary files
|
|
203
|
+
tmp/
|
|
204
|
+
temp/
|
|
205
|
+
*.tmp
|
|
206
|
+
*.temp
|
|
207
|
+
|
|
208
|
+
# Data files (potentially large)
|
|
209
|
+
data/
|
|
210
|
+
*.db
|
|
211
|
+
*.sqlite
|
|
212
|
+
*.sqlite3
|
|
213
|
+
|
|
214
|
+
# Notebooks checkpoints
|
|
215
|
+
.ipynb_checkpoints/
|
|
216
|
+
|
|
217
|
+
# Documentation build
|
|
218
|
+
docs/_build/
|
|
219
|
+
|
|
220
|
+
# Benchmarks
|
|
221
|
+
.benchmarks/
|
|
222
|
+
|
|
223
|
+
# Profiling
|
|
224
|
+
*.prof
|
|
225
|
+
*.lprof
|
|
226
|
+
|
|
227
|
+
# Debug
|
|
228
|
+
.debug/
|
|
229
|
+
|
|
230
|
+
# Local config
|
|
231
|
+
.env
|
|
232
|
+
.env.local
|
|
233
|
+
config.local.yaml
|
|
234
|
+
config.local.yml
|
|
235
|
+
|
|
236
|
+
# Oracle wallet files
|
|
237
|
+
**/oracle_wallet/
|
|
238
|
+
*.wallet
|
|
239
|
+
cwallet.sso
|
|
240
|
+
ewallet.p12
|
|
241
|
+
ewallet.pem
|
|
242
|
+
tnsnames.ora
|
|
243
|
+
sqlnet.ora
|
|
244
|
+
ojdbc.properties
|
|
245
|
+
*.jks
|
|
246
|
+
|
|
247
|
+
# Local development scripts (not tracked)
|
|
248
|
+
scripts/local/
|
|
249
|
+
scripts/test_*.sh
|
|
250
|
+
|
|
251
|
+
# Development test files (not user-facing examples)
|
|
252
|
+
examples/test_*.py
|
|
253
|
+
examples/mcp_test_*.py
|
|
254
|
+
examples/start_and_test.sh
|
|
255
|
+
|
|
256
|
+
# Old tutorials directory (superseded by examples/tutorial_*.py)
|
|
257
|
+
/tutorials/
|
|
258
|
+
site/
|
|
259
|
+
.claude/
|
|
260
|
+
|
|
261
|
+
# Tutorial 49 audio output (regenerated each run).
|
|
262
|
+
examples/tutorial_49_response.mp3
|
|
263
|
+
examples/tutorial_50_question.wav
|
|
264
|
+
examples/tutorial_50_answer.wav
|
|
265
|
+
examples/tutorial_50_answer.mp3
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Copyright (c) 2025, 2026 Oracle and/or its affiliates.
|
|
2
|
+
|
|
3
|
+
The Universal Permissive License (UPL), Version 1.0
|
|
4
|
+
|
|
5
|
+
Subject to the condition set forth below, permission is hereby granted to any
|
|
6
|
+
person obtaining a copy of this software, associated documentation and/or data
|
|
7
|
+
(collectively the "Software"), free of charge and under any and all copyright
|
|
8
|
+
rights in the Software, and any and all patent rights owned or freely
|
|
9
|
+
licensable by each licensor hereunder covering either (i) the unmodified
|
|
10
|
+
Software as contributed to or provided by such licensor, or (ii) the Coverage
|
|
11
|
+
Obligations or modifications of such Software as made by anyone (collectively
|
|
12
|
+
the "Covered Obligations"), to deal in the Software without restriction,
|
|
13
|
+
including without limitation the rights to use, copy, modify, merge, publish,
|
|
14
|
+
distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
15
|
+
persons to whom the Software is furnished to do so, subject to the following
|
|
16
|
+
condition:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and either this complete permission notice or at a
|
|
19
|
+
minimum a reference to the UPL must be included in all copies or substantial
|
|
20
|
+
portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Copyright (c) 2025, 2026 Oracle and/or its affiliates.
|
|
2
|
+
|
|
3
|
+
The Universal Permissive License (UPL), Version 1.0
|
|
4
|
+
|
|
5
|
+
Subject to the condition set forth below, permission is hereby granted to any
|
|
6
|
+
person obtaining a copy of this software, associated documentation and/or data
|
|
7
|
+
(collectively the "Software"), free of charge and under any and all copyright
|
|
8
|
+
rights in the Software, and any and all patent rights owned or freely
|
|
9
|
+
licensable by each licensor hereunder covering either (i) the unmodified
|
|
10
|
+
Software as contributed to or provided by such licensor, or (ii) the Coverage
|
|
11
|
+
Obligations or modifications of such Software as made by anyone (collectively
|
|
12
|
+
the "Covered Obligations"), to deal in the Software without restriction,
|
|
13
|
+
including without limitation the rights to use, copy, modify, merge, publish,
|
|
14
|
+
distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
15
|
+
persons to whom the Software is furnished to do so, subject to the following
|
|
16
|
+
condition:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and either this complete permission notice or at a
|
|
19
|
+
minimum a reference to the UPL must be included in all copies or substantial
|
|
20
|
+
portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|