katalyst-plugin-context 0.2.1a18__tar.gz → 0.2.1a20__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.1a18 → katalyst_plugin_context-0.2.1a20}/PKG-INFO +1 -1
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/pyproject.toml +1 -1
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/features/cli/52_kata_context.feature +12 -12
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/features/cli/53_kata_context_budget_policy.feature +4 -4
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/features/mcp/09_mcp_context.feature +2 -2
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/.gitignore +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/Justfile +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/adapters/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/adapters/runtime_graph.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/cli.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/composition.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/__init__.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/context.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/graph.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/markdown.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/paths.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/policy.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/domain/settings.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/lint.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/mcp_tools.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/plugin.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/py.typed +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/rest.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/schema.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/katalyst_plugin_context/service.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/src/layer.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/conftest.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/context_support.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_context.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_cross_backend_edges.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_lint.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_shared_names.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_source_install.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_surfaces.py +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/.gitignore +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/Justfile +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/features/cli/54_kata_context_plugin_turned_off.feature +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/areas/payments.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/checks/encrypt-card-data.scan-for-card-numbers.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/components/payments.checkout.web-api.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/decisions/async-events.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/decisions/pin-httpx.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/decisions/use-postgres.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/packages/httpx.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/rules/encrypt-card-data.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/rules/log-correlation-id.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/fixtures/context-catalogue/catalogue/services/payments.checkout.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/layer.yaml +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/package.json +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/playwright.config.ts +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/steps/context.ts +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/steps/steps.ts +0 -0
- {katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/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.1a20"
|
|
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"
|
|
@@ -30,7 +30,7 @@ Feature: Kata CLI - Context: what an agent working on a node gets
|
|
|
30
30
|
And the output should contain "# Context: component `filesystem:payments.checkout.web-api`"
|
|
31
31
|
And the output should contain "Ancestors: service `filesystem:payments.checkout` ← area `filesystem:payments`"
|
|
32
32
|
And the output should contain "- `USES_PACKAGE:out` → package ×1"
|
|
33
|
-
And the output should contain "- `
|
|
33
|
+
And the output should contain "- `FOLLOWS_DECISION:out` → decision ×1 — inherited from `filesystem:payments.checkout`"
|
|
34
34
|
And the output should contain "- `FOLLOWS_RULE:out` → rule ×1 — inherited from `filesystem:payments`"
|
|
35
35
|
And the output should contain "- **governance** (always included): Governing decisions and rules — 5 item(s)"
|
|
36
36
|
And the output should contain "- **package-decisions**: Decisions on the packages it uses — 1 item(s)"
|
|
@@ -248,27 +248,27 @@ Feature: Kata CLI - Context: what an agent working on a node gets
|
|
|
248
248
|
# ─────────────────────────────────────────────────────────────
|
|
249
249
|
|
|
250
250
|
Scenario: An item reached by two routes prints its shortest route and counts the other
|
|
251
|
-
When I run "kata tax relate filesystem:payments.checkout.web-api
|
|
251
|
+
When I run "kata tax relate filesystem:payments.checkout.web-api FOLLOWS_DECISION filesystem:pin-httpx"
|
|
252
252
|
Then the command should succeed
|
|
253
|
-
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/
|
|
253
|
+
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/FOLLOWS_DECISION:out --detail summary"
|
|
254
254
|
Then the command should succeed
|
|
255
|
-
And the output should contain "why: ─
|
|
256
|
-
And the output should not contain "package filesystem:httpx ─
|
|
255
|
+
And the output should contain "why: ─FOLLOWS_DECISION→ (+1 more route)"
|
|
256
|
+
And the output should not contain "package filesystem:httpx ─FOLLOWS_DECISION→"
|
|
257
257
|
|
|
258
258
|
Scenario: At full detail the markdown lists every route
|
|
259
|
-
When I run "kata tax relate filesystem:payments.checkout.web-api
|
|
259
|
+
When I run "kata tax relate filesystem:payments.checkout.web-api FOLLOWS_DECISION filesystem:pin-httpx"
|
|
260
260
|
Then the command should succeed
|
|
261
|
-
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/
|
|
261
|
+
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/FOLLOWS_DECISION:out --detail full"
|
|
262
262
|
Then the command should succeed
|
|
263
|
-
And the output should contain "why: ─
|
|
264
|
-
And the output should contain "why: ─USES_PACKAGE→ package filesystem:httpx ─
|
|
263
|
+
And the output should contain "why: ─FOLLOWS_DECISION→"
|
|
264
|
+
And the output should contain "why: ─USES_PACKAGE→ package filesystem:httpx ─FOLLOWS_DECISION→"
|
|
265
265
|
And the output should not contain "more route"
|
|
266
266
|
|
|
267
267
|
Scenario: The JSON keeps every route, the shortest first
|
|
268
|
-
When I run "kata tax relate filesystem:payments.checkout.web-api
|
|
268
|
+
When I run "kata tax relate filesystem:payments.checkout.web-api FOLLOWS_DECISION filesystem:pin-httpx"
|
|
269
269
|
Then the command should succeed
|
|
270
|
-
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/
|
|
270
|
+
When I run "kata tax context filesystem:payments.checkout.web-api --path USES_PACKAGE:out/FOLLOWS_DECISION:out --detail summary --format json"
|
|
271
271
|
Then the command should succeed
|
|
272
272
|
And the JSON output at "$.items[?(@.qualifiedName=='filesystem:pin-httpx')].why[*]" should have 2 items
|
|
273
|
-
And the JSON output at "$.items[?(@.qualifiedName=='filesystem:pin-httpx')].why[0].path" should equal "
|
|
273
|
+
And the JSON output at "$.items[?(@.qualifiedName=='filesystem:pin-httpx')].why[0].path" should equal "FOLLOWS_DECISION:out"
|
|
274
274
|
|
|
@@ -33,7 +33,7 @@ Feature: Kata CLI - Context: the budget, profile policy, and lint of the policy
|
|
|
33
33
|
And the JSON output at "$.truncated.cut[*].qualifiedNames[*]" should contain "filesystem:log-correlation-id"
|
|
34
34
|
And the JSON output at "$.truncated.cut[*].qualifiedNames[*]" should contain "filesystem:encrypt-card-data.scan-for-card-numbers"
|
|
35
35
|
And the JSON output at "$.truncated.cut[*].qualifiedNames[*]" should not contain "filesystem:encrypt-card-data"
|
|
36
|
-
And the JSON output at "$.truncated.hint.budget" should equal "
|
|
36
|
+
And the JSON output at "$.truncated.hint.budget" should equal "272"
|
|
37
37
|
|
|
38
38
|
Scenario: The markdown names what the budget cut, and how to get it
|
|
39
39
|
When I run "kata tax context filesystem:payments.checkout.web-api --budget 100"
|
|
@@ -41,7 +41,7 @@ Feature: Kata CLI - Context: the budget, profile policy, and lint of the policy
|
|
|
41
41
|
And the output should contain "⛔ blocking · **Encrypt card data** `filesystem:encrypt-card-data`"
|
|
42
42
|
And the output should contain "## Cut by the budget (100 tokens;"
|
|
43
43
|
And the output should contain "view governance, `FOLLOWS_RULE:out`: 1 cut — `filesystem:log-correlation-id`"
|
|
44
|
-
And the output should contain "More: ask again with budget
|
|
44
|
+
And the output should contain "More: ask again with budget 272."
|
|
45
45
|
|
|
46
46
|
Scenario: The budget returns the same items over JSON and over markdown
|
|
47
47
|
When I run "kata tax context filesystem:payments.checkout.web-api --budget 100 --format json"
|
|
@@ -51,7 +51,7 @@ Feature: Kata CLI - Context: the budget, profile policy, and lint of the policy
|
|
|
51
51
|
And the context output should show the recorded item names
|
|
52
52
|
|
|
53
53
|
Scenario: Asking again with the hinted budget returns everything
|
|
54
|
-
When I run "kata tax context filesystem:payments.checkout.web-api --budget
|
|
54
|
+
When I run "kata tax context filesystem:payments.checkout.web-api --budget 272 --format json"
|
|
55
55
|
Then the command should succeed
|
|
56
56
|
And the JSON output at "$.items[*]" should have 5 items
|
|
57
57
|
And the JSON output at "$.truncated" should be null
|
|
@@ -80,7 +80,7 @@ Feature: Kata CLI - Context: the budget, profile policy, and lint of the policy
|
|
|
80
80
|
And the JSON output at "$.items[*].qualifiedName" should not contain "filesystem:pin-httpx"
|
|
81
81
|
And the JSON output at "$.policy.layers" should contain "profile:reviewer"
|
|
82
82
|
And the JSON output at "$.policy.notes[*].text" should contain "view 'governance' path 'FOLLOWS_RULE:out/CHILD_OF:in:check' is hidden by profile:reviewer"
|
|
83
|
-
And the JSON output at "$.policy.notes[*].text" should contain "view 'package-decisions' path 'USES_PACKAGE:out/
|
|
83
|
+
And the JSON output at "$.policy.notes[*].text" should contain "view 'package-decisions' path 'USES_PACKAGE:out/FOLLOWS_DECISION:out' is hidden by profile:reviewer"
|
|
84
84
|
And the JSON output at "$.policy.clamped[?(@.control=='detail')].requested" should equal "full"
|
|
85
85
|
And the JSON output at "$.policy.clamped[?(@.control=='detail')].effective" should equal "summary"
|
|
86
86
|
And the JSON output at "$.policy.clamped[?(@.control=='detail')].limitedBy" should equal "profile:reviewer"
|
|
@@ -32,7 +32,7 @@ Feature: MCP Server - Context: taxonomy_context_map and taxonomy_context
|
|
|
32
32
|
And the JSON result at "$.data.views[?(@.name=='governance')].always" should equal "true"
|
|
33
33
|
And the JSON result at "$.data.views[?(@.name=='package-decisions')].always" should equal "false"
|
|
34
34
|
And the JSON result at "$.data.relationships[*].path" should contain "USES_PACKAGE:out"
|
|
35
|
-
And the JSON result at "$.data.options.steps" should contain "
|
|
35
|
+
And the JSON result at "$.data.options.steps" should contain "FOLLOWS_DECISION:out"
|
|
36
36
|
And the JSON result at "$.data.always.items[*].qualifiedName" should contain "filesystem:encrypt-card-data"
|
|
37
37
|
|
|
38
38
|
@smoke
|
|
@@ -132,7 +132,7 @@ Feature: MCP Server - Context: taxonomy_context_map and taxonomy_context
|
|
|
132
132
|
And the JSON result at "$.data.items[*].qualifiedName" should not include the value "filesystem:pin-httpx"
|
|
133
133
|
And the JSON result at "$.data.items[*].qualifiedName" should not include the value "filesystem:encrypt-card-data.scan-for-card-numbers"
|
|
134
134
|
And the JSON result at "$.data.policy.layers" should contain "profile:reviewer"
|
|
135
|
-
And the JSON result at "$.data.policy.notes[*].text" should contain "view 'package-decisions' path 'USES_PACKAGE:out/
|
|
135
|
+
And the JSON result at "$.data.policy.notes[*].text" should contain "view 'package-decisions' path 'USES_PACKAGE:out/FOLLOWS_DECISION:out' is hidden by profile:reviewer"
|
|
136
136
|
And the JSON result at "$.data.policy.clamped[?(@.control=='detail')].effective" should equal "summary"
|
|
137
137
|
|
|
138
138
|
Scenario: An FQTN that two kinds share is refused, with the names that disambiguate it
|
|
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
|
|
File without changes
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/context_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_shared_names.py
RENAMED
|
File without changes
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/tests/test_source_install.py
RENAMED
|
File without changes
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/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
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/playwright.config.ts
RENAMED
|
File without changes
|
{katalyst_plugin_context-0.2.1a18 → katalyst_plugin_context-0.2.1a20}/xspec/steps/context.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|