katalyst-plugin-context 0.2.1a15__tar.gz → 0.2.1a17__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.
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/PKG-INFO +1 -1
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/pyproject.toml +1 -1
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/cli.py +6 -1
- katalyst_plugin_context-0.2.1a17/tests/test_source_install.py +51 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/.gitignore +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/Justfile +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/adapters/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/adapters/runtime_graph.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/composition.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/context.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/graph.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/markdown.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/paths.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/policy.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/domain/settings.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/lint.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/mcp_tools.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/plugin.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/py.typed +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/rest.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/schema.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/katalyst_plugin_context/service.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/src/layer.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/conftest.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/context_support.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_context.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_cross_backend_edges.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_lint.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_shared_names.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_surfaces.py +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/.gitignore +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/Justfile +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/features/cli/52_kata_context.feature +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/features/cli/53_kata_context_budget_policy.feature +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/features/mcp/09_mcp_context.feature +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/areas/payments.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/checks/encrypt-card-data.scan-for-card-numbers.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/components/payments.checkout.web-api.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/decisions/async-events.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/decisions/pin-httpx.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/decisions/use-postgres.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/packages/httpx.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/rules/encrypt-card-data.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/rules/log-correlation-id.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/fixtures/context-catalogue/catalogue/services/payments.checkout.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/layer.yaml +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/package.json +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/playwright.config.ts +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/steps/context.ts +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/steps/steps.ts +0 -0
- {katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/tsconfig.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "katalyst-plugin-context"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.1a17"
|
|
4
4
|
description = "Katalyst context plugin — the right context from the taxonomy for an agent working on a node"
|
|
5
5
|
license = { text = "Proprietary" }
|
|
6
6
|
requires-python = ">=3.13,<3.14"
|
|
@@ -17,15 +17,20 @@ if TYPE_CHECKING:
|
|
|
17
17
|
def _service(ctx: CliContext, backend: str | None) -> ContextService:
|
|
18
18
|
from katalyst_taxonomy.config.backends import load_backends
|
|
19
19
|
from katalyst_taxonomy.config.routing import BackendAddressError
|
|
20
|
+
from katalyst_taxonomy.config.unavailable import NoStoreReadableError
|
|
20
21
|
from katalyst_taxonomy.engine.bridge import get_default_registry
|
|
21
22
|
|
|
22
23
|
from katalyst_plugin_context.composition import service_for
|
|
23
24
|
|
|
24
25
|
try:
|
|
25
26
|
backends = load_backends(None, profile=ctx.profile)
|
|
26
|
-
sources = backends.read_set(backend)
|
|
27
|
+
sources = backends.read_set(backend, partial=True)
|
|
28
|
+
left_out = () if backend else backends.unavailable_stores()
|
|
29
|
+
if left_out and not sources:
|
|
30
|
+
raise NoStoreReadableError(left_out, backends.profile_backends())
|
|
27
31
|
except (BackendAddressError, ValueError) as exc:
|
|
28
32
|
raise click.ClickException(str(exc)) from exc
|
|
33
|
+
ctx.note_unavailable(left_out)
|
|
29
34
|
return service_for(get_default_registry(), sources, profile=backends.profile)
|
|
30
35
|
|
|
31
36
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""A copy of the shipped context plugin installs from a source; its dependencies pass the gate."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import tomllib
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from katalyst_taxonomy.sources.plugin_sources import enforce_plugin_deps
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_the_declared_dependencies_are_ones_a_source_plugin_may_declare() -> None:
|
|
12
|
+
pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
13
|
+
declared = tomllib.loads(pyproject.read_text())["project"]["dependencies"]
|
|
14
|
+
enforce_plugin_deps(declared)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _copy_renamed(destination: Path) -> Path:
|
|
18
|
+
"""What a third party does: copy the shipped plugin and give the copy its own names.
|
|
19
|
+
|
|
20
|
+
The shipped package and plugin are installed here, and a source may not shadow either.
|
|
21
|
+
"""
|
|
22
|
+
shipped = Path(__file__).resolve().parents[1]
|
|
23
|
+
skipped = {"__pycache__", "tests", "xspec", ".venv"}
|
|
24
|
+
for source in sorted(shipped.rglob("*")):
|
|
25
|
+
relative = source.relative_to(shipped)
|
|
26
|
+
if source.is_dir() or skipped & set(relative.parts):
|
|
27
|
+
continue
|
|
28
|
+
target = destination / Path(
|
|
29
|
+
str(relative).replace("katalyst_plugin_context", "acme_ctx_plugin")
|
|
30
|
+
)
|
|
31
|
+
target.parent.mkdir(parents=True, exist_ok=True)
|
|
32
|
+
if source.suffix in {".py", ".toml"}:
|
|
33
|
+
text = source.read_text()
|
|
34
|
+
text = text.replace("katalyst_plugin_context", "acme_ctx_plugin")
|
|
35
|
+
text = text.replace("katalyst-plugin-context", "acme-ctx-plugin")
|
|
36
|
+
text = text.replace('"context"', '"acme-ctx"')
|
|
37
|
+
target.write_text(text)
|
|
38
|
+
else:
|
|
39
|
+
target.write_bytes(source.read_bytes())
|
|
40
|
+
return destination
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def test_a_copy_of_the_shipped_plugin_installs_from_a_file_source(tmp_path: Path) -> None:
|
|
44
|
+
from katalyst_taxonomy.services.plugin_install import PluginInstallService
|
|
45
|
+
|
|
46
|
+
source = _copy_renamed(tmp_path / "acme-ctx")
|
|
47
|
+
result = PluginInstallService(
|
|
48
|
+
config_file=tmp_path / "config.yaml", entry_point_names=lambda: frozenset()
|
|
49
|
+
).install(source.as_uri(), record=False)
|
|
50
|
+
assert result.name == "acme-ctx"
|
|
51
|
+
assert "agents" in result.capabilities
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/context_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_shared_names.py
RENAMED
|
File without changes
|
{katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/tests/test_surfaces.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/playwright.config.ts
RENAMED
|
File without changes
|
{katalyst_plugin_context-0.2.1a15 → katalyst_plugin_context-0.2.1a17}/xspec/steps/context.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|