plane-agent 2.3.7__tar.gz → 2.3.9__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.
- {plane_agent-2.3.7/plane_agent.egg-info → plane_agent-2.3.9}/PKG-INFO +5 -5
- {plane_agent-2.3.7 → plane_agent-2.3.9}/README.md +1 -1
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/connector_sources.py +33 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9/plane_agent.egg-info}/PKG-INFO +5 -5
- plane_agent-2.3.9/plane_agent.egg-info/requires.txt +14 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/pyproject.toml +4 -4
- plane_agent-2.3.9/requirements.txt +1 -0
- plane_agent-2.3.9/tests/test_ingest_sources.py +65 -0
- plane_agent-2.3.7/plane_agent.egg-info/requires.txt +0 -14
- plane_agent-2.3.7/requirements.txt +0 -1
- plane_agent-2.3.7/tests/test_ingest_sources.py +0 -27
- {plane_agent-2.3.7 → plane_agent-2.3.9}/LICENSE +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/MANIFEST.in +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/__main__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_base.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_cycles.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_epics.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_initiatives.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_intake.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_milestones.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_modules_states.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_projects.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_work_items.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api/api_client_workspace.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/api_client.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/auth.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/connectors/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/kg_ingest.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/mcp_config.json +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/mcp_server.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/certification.json +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/fixtures/records.json +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/mappings/source.yaml +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/migrations/manifest.json +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/plane.ttl +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/ontology/shapes/connector.shacl.ttl +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/plane_models.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/prompts/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/prompts/project_tracking_specialist.json +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/__init__.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-agent-operations/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-agent-operations/agents/openai.yaml +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-agent-operations/references/catalog.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-create-work-item-guided/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-create-work-item-guided/WORKFLOW.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-create-work-item-guided/references/property-discovery.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-cycle-planning/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-cycle-planning/WORKFLOW.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-kg-ingestion/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-kg-ingestion/WORKFLOW.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-my-priority-queue/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-my-priority-queue/WORKFLOW.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-my-priority-queue/references/filter-recipes.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-my-priority-queue/scripts/rank_items.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-work-item-tracking/SKILL.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-work-item-tracking/WORKFLOW.md +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent.egg-info/SOURCES.txt +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent.egg-info/dependency_links.txt +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent.egg-info/entry_points.txt +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent.egg-info/top_level.txt +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/scripts/security_sanitizer.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/scripts/verify_api_integration.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/setup.cfg +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/conftest.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_action_discovery.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_coverage_gap_fillers.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_cq_paths.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_default_content_surfaces.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_init.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_init_dynamics.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_kg_ingest.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_ontology_parent_link.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_rank_items.py +0 -0
- {plane_agent-2.3.7 → plane_agent-2.3.9}/tests/test_startup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plane-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9
|
|
4
4
|
Summary: Plane MCP Agent
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,12 +12,12 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: <3.15,>=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3
|
|
16
16
|
Requires-Dist: requests>=2.34.2
|
|
17
17
|
Provides-Extra: mcp
|
|
18
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
18
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3; extra == "mcp"
|
|
19
19
|
Provides-Extra: all
|
|
20
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
20
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3; extra == "all"
|
|
21
21
|
Provides-Extra: test
|
|
22
22
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
23
23
|
Requires-Dist: pytest>=9.1.1; extra == "test"
|
|
@@ -47,7 +47,7 @@ Dynamic: license-file
|
|
|
47
47
|

|
|
48
48
|

|
|
49
49
|
|
|
50
|
-
*Version: 2.3.
|
|
50
|
+
*Version: 2.3.9*
|
|
51
51
|
|
|
52
52
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
53
53
|
> interfaces, and guidance for provisioning a self-hosted Plane instance are
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|

|
|
21
21
|

|
|
22
22
|
|
|
23
|
-
*Version: 2.3.
|
|
23
|
+
*Version: 2.3.9*
|
|
24
24
|
|
|
25
25
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
26
26
|
> interfaces, and guidance for provisioning a self-hosted Plane instance are
|
|
@@ -28,6 +28,39 @@ SOURCES = (
|
|
|
28
28
|
text_field="description",
|
|
29
29
|
title_field="name",
|
|
30
30
|
),
|
|
31
|
+
source_meta(
|
|
32
|
+
tool="plane_list_work_items",
|
|
33
|
+
source_id="work-items",
|
|
34
|
+
record_type="Issue",
|
|
35
|
+
id_field="id",
|
|
36
|
+
cursor_field="updated_at",
|
|
37
|
+
description="Plane work items of every project in the workspace.",
|
|
38
|
+
for_each={"source": "projects", "argument": "project_id", "field": "id"},
|
|
39
|
+
preset={
|
|
40
|
+
"doc_type": "work_item",
|
|
41
|
+
"params_style": "args",
|
|
42
|
+
},
|
|
43
|
+
records_path="data.results",
|
|
44
|
+
server="plane-mcp",
|
|
45
|
+
text_field="description_html",
|
|
46
|
+
title_field="name",
|
|
47
|
+
),
|
|
48
|
+
source_meta(
|
|
49
|
+
tool="plane_list_states",
|
|
50
|
+
source_id="project-states",
|
|
51
|
+
record_type="ProjectState",
|
|
52
|
+
id_field="id",
|
|
53
|
+
cursor_field="updated_at",
|
|
54
|
+
description="Workflow states of every project; resolves the state id of a work item to its name.",
|
|
55
|
+
for_each={"source": "projects", "argument": "project_id", "field": "id"},
|
|
56
|
+
preset={
|
|
57
|
+
"doc_type": "project_state",
|
|
58
|
+
"params_style": "args",
|
|
59
|
+
},
|
|
60
|
+
records_path="data",
|
|
61
|
+
server="plane-mcp",
|
|
62
|
+
title_field="name",
|
|
63
|
+
),
|
|
31
64
|
)
|
|
32
65
|
|
|
33
66
|
SCHEMA_MAPPINGS = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plane-agent
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9
|
|
4
4
|
Summary: Plane MCP Agent
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,12 +12,12 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: <3.15,>=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3
|
|
16
16
|
Requires-Dist: requests>=2.34.2
|
|
17
17
|
Provides-Extra: mcp
|
|
18
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
18
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3; extra == "mcp"
|
|
19
19
|
Provides-Extra: all
|
|
20
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.
|
|
20
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.3; extra == "all"
|
|
21
21
|
Provides-Extra: test
|
|
22
22
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
23
23
|
Requires-Dist: pytest>=9.1.1; extra == "test"
|
|
@@ -47,7 +47,7 @@ Dynamic: license-file
|
|
|
47
47
|

|
|
48
48
|

|
|
49
49
|
|
|
50
|
-
*Version: 2.3.
|
|
50
|
+
*Version: 2.3.9*
|
|
51
51
|
|
|
52
52
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
53
53
|
> interfaces, and guidance for provisioning a self-hosted Plane instance are
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.3
|
|
2
|
+
requests>=2.34.2
|
|
3
|
+
|
|
4
|
+
[all]
|
|
5
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.3
|
|
6
|
+
|
|
7
|
+
[mcp]
|
|
8
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.3
|
|
9
|
+
|
|
10
|
+
[test]
|
|
11
|
+
pytest-xdist>=3.8.0
|
|
12
|
+
pytest>=9.1.1
|
|
13
|
+
pytest-asyncio>=1.4.0
|
|
14
|
+
pytest-cov>=7.1.0
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "plane-agent"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.9"
|
|
8
8
|
description = "Plane MCP Agent"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
classifiers = [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
|
|
11
11
|
requires-python = ">=3.12, <3.15"
|
|
12
|
-
dependencies = [ "agent-connector-sdk[mcp]>=0.4.
|
|
12
|
+
dependencies = [ "agent-connector-sdk[mcp]>=0.4.3,<1.0.0", "requests>=2.34.2",]
|
|
13
13
|
[[project.authors]]
|
|
14
14
|
name = "Project Maintainers"
|
|
15
15
|
email = "maintainers@users.noreply.github.com"
|
|
@@ -21,8 +21,8 @@ text = "MIT"
|
|
|
21
21
|
plane-mcp = "plane_agent.mcp_server:mcp_server"
|
|
22
22
|
|
|
23
23
|
[project.optional-dependencies]
|
|
24
|
-
mcp = [ "agent-connector-sdk[mcp]>=0.4.
|
|
25
|
-
all = [ "agent-connector-sdk[mcp]>=0.4.
|
|
24
|
+
mcp = [ "agent-connector-sdk[mcp]>=0.4.3,<1.0.0",]
|
|
25
|
+
all = [ "agent-connector-sdk[mcp]>=0.4.3,<1.0.0",]
|
|
26
26
|
test = [
|
|
27
27
|
"pytest-xdist>=3.8.0", "pytest>=9.1.1", "pytest-asyncio>=1.4.0", "pytest-cov>=7.1.0",]
|
|
28
28
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agent-connector-sdk[mcp]>=0.4.3,<1.0.0
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""The packaged ingestible-source declaration (CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
import pytest
|
|
8
|
+
from plane_agent.connector_sources import declaration as declared_sources
|
|
9
|
+
from agent_connector_sdk.mcp.tool_surface import operation_prefix
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.mark.spec("CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003")
|
|
16
|
+
def test_declares_ingestible_sources() -> None:
|
|
17
|
+
declaration = declared_sources()
|
|
18
|
+
assert declaration is not None
|
|
19
|
+
assert declaration.connector == "plane-mcp"
|
|
20
|
+
prefix = operation_prefix("plane-agent")
|
|
21
|
+
expected = {
|
|
22
|
+
"projects": ("SoftwareProject", f"{prefix}_list_projects"),
|
|
23
|
+
"work-items": ("Issue", f"{prefix}_list_work_items"),
|
|
24
|
+
"project-states": ("ProjectState", f"{prefix}_list_states"),
|
|
25
|
+
}
|
|
26
|
+
assert [s.source_id for s in declaration.sources] == list(expected)
|
|
27
|
+
for source in declaration.sources:
|
|
28
|
+
record_type, tool = expected[source.source_id]
|
|
29
|
+
assert source.record_type == record_type
|
|
30
|
+
assert source.tools == (tool,)
|
|
31
|
+
# The engine admits a record only under the pack mapping of its type.
|
|
32
|
+
assert record_type in declaration.schema_mappings
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@pytest.mark.spec("CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003")
|
|
36
|
+
def test_work_items_fan_out_per_project_and_map_to_issue_state() -> None:
|
|
37
|
+
declaration = declared_sources()
|
|
38
|
+
for source_id in ("work-items", "project-states"):
|
|
39
|
+
source = declaration.source(source_id)
|
|
40
|
+
assert source is not None and source.for_each is not None
|
|
41
|
+
assert source.for_each.source == "projects"
|
|
42
|
+
assert (source.for_each.argument, source.for_each.field) == (
|
|
43
|
+
"project_id",
|
|
44
|
+
"id",
|
|
45
|
+
)
|
|
46
|
+
work_items = declaration.source("work-items")
|
|
47
|
+
assert work_items is not None
|
|
48
|
+
assert (work_items.id_field, work_items.title_field) == ("id", "name")
|
|
49
|
+
assert work_items.records_path == "data.results"
|
|
50
|
+
mapping = declaration.schema_mappings["Issue"]
|
|
51
|
+
assert mapping.ontology_class == "WorkItem"
|
|
52
|
+
assert "state" in mapping.fields
|
|
53
|
+
ontology = (REPO_ROOT / "plane_agent" / "ontology" / "plane.ttl").read_text()
|
|
54
|
+
assert "Issue" in ontology and "state" in ontology
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pytest.mark.spec("CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003")
|
|
58
|
+
def test_sources_name_read_only_tools() -> None:
|
|
59
|
+
source_text = (REPO_ROOT / "plane_agent" / "mcp_server.py").read_text()
|
|
60
|
+
declaration = declared_sources()
|
|
61
|
+
for source in declaration.sources:
|
|
62
|
+
assert not any(
|
|
63
|
+
verb in tool for tool in source.tools for verb in ("create", "update", "delete")
|
|
64
|
+
)
|
|
65
|
+
assert "list_work_items" in source_text and "list_states" in source_text
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.4.0
|
|
2
|
-
requests>=2.34.2
|
|
3
|
-
|
|
4
|
-
[all]
|
|
5
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.4.0
|
|
6
|
-
|
|
7
|
-
[mcp]
|
|
8
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.4.0
|
|
9
|
-
|
|
10
|
-
[test]
|
|
11
|
-
pytest-xdist>=3.8.0
|
|
12
|
-
pytest>=9.1.1
|
|
13
|
-
pytest-asyncio>=1.4.0
|
|
14
|
-
pytest-cov>=7.1.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
agent-connector-sdk[mcp]>=0.4.0,<1.0.0
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"""The packaged ingestible-source declaration (CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003)."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
|
|
7
|
-
import pytest
|
|
8
|
-
from plane_agent.connector_sources import declaration as declared_sources
|
|
9
|
-
from agent_connector_sdk.mcp.tool_surface import operation_prefix
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@pytest.mark.spec("CONN-PLANE-AGENT-CONNECTOR-CONTENT-R003")
|
|
16
|
-
def test_declares_ingestible_sources() -> None:
|
|
17
|
-
declaration = declared_sources()
|
|
18
|
-
assert declaration is not None
|
|
19
|
-
assert declaration.connector == "plane-mcp"
|
|
20
|
-
source = declaration.source("projects")
|
|
21
|
-
assert source is not None and source.record_type == "SoftwareProject"
|
|
22
|
-
prefix = operation_prefix("plane-agent")
|
|
23
|
-
assert source.tools == (f"{prefix}_list_projects",)
|
|
24
|
-
# The engine admits a record only under the pack mapping of its type.
|
|
25
|
-
assert source.record_type in declared_sources().schema_mappings
|
|
26
|
-
# Work items are project-scoped, so only the projects source is declared.
|
|
27
|
-
assert [s.source_id for s in declaration.sources] == ["projects"]
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/prompts/project_tracking_specialist.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-agent-operations/agents/openai.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-create-work-item-guided/SKILL.md
RENAMED
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-create-work-item-guided/WORKFLOW.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-my-priority-queue/WORKFLOW.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-work-item-tracking/SKILL.md
RENAMED
|
File without changes
|
{plane_agent-2.3.7 → plane_agent-2.3.9}/plane_agent/skills/plane-work-item-tracking/WORKFLOW.md
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
|
|
File without changes
|