nextcloud-agent 2.3.1__tar.gz → 2.3.2__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.
Files changed (60) hide show
  1. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/PKG-INFO +11 -11
  2. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/README.md +7 -7
  3. nextcloud_agent-2.3.2/nextcloud_agent/__init__.py +1 -0
  4. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/mcp_server.py +1 -1
  5. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/PKG-INFO +11 -11
  6. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/SOURCES.txt +1 -0
  7. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/requires.txt +3 -3
  8. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/pyproject.toml +4 -4
  9. nextcloud_agent-2.3.2/tests/test_default_content_surfaces.py +43 -0
  10. nextcloud_agent-2.3.1/nextcloud_agent/__init__.py +0 -1
  11. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/LICENSE +0 -0
  12. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/__main__.py +0 -0
  13. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/__init__.py +0 -0
  14. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_base.py +0 -0
  15. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_calendar.py +0 -0
  16. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_contacts.py +0 -0
  17. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/api_client_files.py +0 -0
  18. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api/xml_security.py +0 -0
  19. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/api_client.py +0 -0
  20. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/auth.py +0 -0
  21. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/__init__.py +0 -0
  22. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/mcp_source_presets.json +0 -0
  23. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/connectors/tool_schema_fingerprints.json +0 -0
  24. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/kg_ingest.py +0 -0
  25. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/mcp_config.json +0 -0
  26. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/__init__.py +0 -0
  27. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/certification.json +0 -0
  28. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/fixtures/records.json +0 -0
  29. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/mappings/source.yaml +0 -0
  30. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/migrations/manifest.json +0 -0
  31. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/nextcloud.ttl +0 -0
  32. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/ontology/shapes/connector.shacl.ttl +0 -0
  33. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/prompts/__init__.py +0 -0
  34. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/prompts/file_steward.json +0 -0
  35. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/__init__.py +0 -0
  36. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md +0 -0
  37. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml +0 -0
  38. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +0 -0
  39. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -0
  40. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md +0 -0
  41. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +0 -0
  42. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md +0 -0
  43. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/SKILL.md +0 -0
  44. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md +0 -0
  45. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
  46. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/entry_points.txt +0 -0
  47. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/nextcloud_agent.egg-info/top_level.txt +0 -0
  48. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/scripts/security_sanitizer.py +0 -0
  49. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/scripts/verify_api_integration.py +0 -0
  50. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/setup.cfg +0 -0
  51. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/conftest.py +0 -0
  52. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_api_client.py +0 -0
  53. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_auth.py +0 -0
  54. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_cli_server.py +0 -0
  55. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_fleet_name.py +0 -0
  56. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_init.py +0 -0
  57. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_init_dynamics.py +0 -0
  58. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_kg_ingest.py +0 -0
  59. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_mcp_server.py +0 -0
  60. {nextcloud_agent-2.3.1 → nextcloud_agent-2.3.2}/tests/test_xml_security.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextcloud-agent
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Nextcloud MCP Server for Agentic AI!
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -12,16 +12,16 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=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.3.14
15
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18
16
16
  Requires-Dist: requests>=2.34.2
17
17
  Requires-Dist: defusedxml>=0.7.1
18
18
  Requires-Dist: python-dateutil>=2.9.0.post0
19
19
  Requires-Dist: icalendar>=7.3.0
20
20
  Requires-Dist: vobject>=0.9.9
21
21
  Provides-Extra: mcp
22
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.14; extra == "mcp"
22
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "mcp"
23
23
  Provides-Extra: all
24
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.14; extra == "all"
24
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "all"
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
27
27
  Requires-Dist: pytest>=9.1.1; extra == "test"
@@ -51,7 +51,7 @@ Dynamic: license-file
51
51
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
52
52
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
53
53
 
54
- *Version: 2.3.1*
54
+ *Version: 2.3.2*
55
55
 
56
56
  > **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
57
57
  > interfaces, and guidance for provisioning the backing Nextcloud instance are
@@ -353,7 +353,7 @@ services:
353
353
  max-file: "3"
354
354
 
355
355
  nextcloud-agent-agent:
356
- image: knucklessg1/nextcloud-agent:2.3.1
356
+ image: knucklessg1/nextcloud-agent:2.3.2
357
357
  container_name: nextcloud-agent-agent
358
358
  hostname: nextcloud-agent-agent
359
359
  restart: always
@@ -524,15 +524,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
524
524
  | Image tag | Build target | Contents | Entrypoint |
525
525
  |-----------|--------------|----------|------------|
526
526
  | `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
527
- | `knucklessg1/nextcloud-agent:2.3.1` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
527
+ | `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
528
528
 
529
529
  ```bash
530
530
  docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
531
- docker build --target agent -t knucklessg1/nextcloud-agent:2.3.1 docker/ # agent runtime
531
+ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
532
532
  ```
533
533
 
534
534
  `docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
535
- agent (`:2.3.1`) with a co-located `:mcp` sidecar.
535
+ agent (`:2.3.2`) with a co-located `:mcp` sidecar.
536
536
 
537
537
  ### Knowledge-graph database (`epistemic-graph`)
538
538
 
@@ -596,7 +596,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
596
596
  |------|---------|
597
597
  | Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
598
598
  | Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
599
- | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.1` via docker-compose / swarm / podman / podman-compose / kubernetes |
599
+ | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
600
600
  | Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
601
601
 
602
602
  Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
@@ -617,7 +617,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
617
617
  |------|---------|
618
618
  | Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
619
619
  | Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
620
- | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.1` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
620
+ | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
621
621
 
622
622
  The repository embeds no deployment profile, credential value, certificate path, or
623
623
  environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
@@ -20,7 +20,7 @@
20
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
21
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
22
22
 
23
- *Version: 2.3.1*
23
+ *Version: 2.3.2*
24
24
 
25
25
  > **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
26
26
  > interfaces, and guidance for provisioning the backing Nextcloud instance are
@@ -322,7 +322,7 @@ services:
322
322
  max-file: "3"
323
323
 
324
324
  nextcloud-agent-agent:
325
- image: knucklessg1/nextcloud-agent:2.3.1
325
+ image: knucklessg1/nextcloud-agent:2.3.2
326
326
  container_name: nextcloud-agent-agent
327
327
  hostname: nextcloud-agent-agent
328
328
  restart: always
@@ -493,15 +493,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
493
493
  | Image tag | Build target | Contents | Entrypoint |
494
494
  |-----------|--------------|----------|------------|
495
495
  | `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
496
- | `knucklessg1/nextcloud-agent:2.3.1` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
496
+ | `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
497
497
 
498
498
  ```bash
499
499
  docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
500
- docker build --target agent -t knucklessg1/nextcloud-agent:2.3.1 docker/ # agent runtime
500
+ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
501
501
  ```
502
502
 
503
503
  `docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
504
- agent (`:2.3.1`) with a co-located `:mcp` sidecar.
504
+ agent (`:2.3.2`) with a co-located `:mcp` sidecar.
505
505
 
506
506
  ### Knowledge-graph database (`epistemic-graph`)
507
507
 
@@ -565,7 +565,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
565
565
  |------|---------|
566
566
  | Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
567
567
  | Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
568
- | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.1` via docker-compose / swarm / podman / podman-compose / kubernetes |
568
+ | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
569
569
  | Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
570
570
 
571
571
  Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
@@ -586,7 +586,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
586
586
  |------|---------|
587
587
  | Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
588
588
  | Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
589
- | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.1` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
589
+ | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
590
590
 
591
591
  The repository embeds no deployment profile, credential value, certificate path, or
592
592
  environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
@@ -0,0 +1 @@
1
+ __version__ = "2.3.2"
@@ -34,7 +34,7 @@ from starlette.responses import JSONResponse
34
34
  from nextcloud_agent.api_client import NextcloudAPI
35
35
  from nextcloud_agent.auth import get_client
36
36
 
37
- __version__ = "2.3.1"
37
+ __version__ = "2.3.2"
38
38
 
39
39
  logger = get_logger(name="nextcloud-agent")
40
40
  logger.setLevel(logging.INFO)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextcloud-agent
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Nextcloud MCP Server for Agentic AI!
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -12,16 +12,16 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=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.3.14
15
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18
16
16
  Requires-Dist: requests>=2.34.2
17
17
  Requires-Dist: defusedxml>=0.7.1
18
18
  Requires-Dist: python-dateutil>=2.9.0.post0
19
19
  Requires-Dist: icalendar>=7.3.0
20
20
  Requires-Dist: vobject>=0.9.9
21
21
  Provides-Extra: mcp
22
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.14; extra == "mcp"
22
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "mcp"
23
23
  Provides-Extra: all
24
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.14; extra == "all"
24
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.18; extra == "all"
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
27
27
  Requires-Dist: pytest>=9.1.1; extra == "test"
@@ -51,7 +51,7 @@ Dynamic: license-file
51
51
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/nextcloud-agent)
52
52
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/nextcloud-agent)
53
53
 
54
- *Version: 2.3.1*
54
+ *Version: 2.3.2*
55
55
 
56
56
  > **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
57
57
  > interfaces, and guidance for provisioning the backing Nextcloud instance are
@@ -353,7 +353,7 @@ services:
353
353
  max-file: "3"
354
354
 
355
355
  nextcloud-agent-agent:
356
- image: knucklessg1/nextcloud-agent:2.3.1
356
+ image: knucklessg1/nextcloud-agent:2.3.2
357
357
  container_name: nextcloud-agent-agent
358
358
  hostname: nextcloud-agent-agent
359
359
  restart: always
@@ -524,15 +524,15 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
524
524
  | Image tag | Build target | Contents | Entrypoint |
525
525
  |-----------|--------------|----------|------------|
526
526
  | `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `epistemic-graph[full]`; no model-orchestration stack | `nextcloud-mcp` |
527
- | `knucklessg1/nextcloud-agent:2.3.1` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
527
+ | `knucklessg1/nextcloud-agent:2.3.2` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `epistemic-graph[full]` | `nextcloud-agent` |
528
528
 
529
529
  ```bash
530
530
  docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
531
- docker build --target agent -t knucklessg1/nextcloud-agent:2.3.1 docker/ # agent runtime
531
+ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.2 docker/ # agent runtime
532
532
  ```
533
533
 
534
534
  `docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
535
- agent (`:2.3.1`) with a co-located `:mcp` sidecar.
535
+ agent (`:2.3.2`) with a co-located `:mcp` sidecar.
536
536
 
537
537
  ### Knowledge-graph database (`epistemic-graph`)
538
538
 
@@ -596,7 +596,7 @@ to just this package. Ask your agent to **"deploy `nextcloud-agent` with agent-o
596
596
  |------|---------|
597
597
  | Bare-metal, prod (PyPI) | `uvx nextcloud-mcp` · or `uv tool install nextcloud-agent` |
598
598
  | Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
599
- | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.1` via docker-compose / swarm / podman / podman-compose / kubernetes |
599
+ | Container, prod | deploy `knucklessg1/nextcloud-agent:2.3.2` via docker-compose / swarm / podman / podman-compose / kubernetes |
600
600
  | Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
601
601
 
602
602
  Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
@@ -617,7 +617,7 @@ to **"deploy `nextcloud-agent` with agent-connector-sdk-deployment"**.
617
617
  |------|---------|
618
618
  | Installed package | `uv tool install "nextcloud-agent[mcp]"`, then run `nextcloud-mcp` |
619
619
  | Editable source | `uv pip install -e ".[agent]"`, then run `nextcloud-mcp` |
620
- | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.1` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
620
+ | Immutable container | deploy `knucklessg1/nextcloud-agent:2.3.2` (or a pinned `@sha256:<digest>`) through the operator-selected orchestrator |
621
621
 
622
622
  The repository embeds no deployment profile, credential value, certificate path, or
623
623
  environment-specific endpoint. Supply those at runtime through `AgentConfig` and the
@@ -48,6 +48,7 @@ tests/conftest.py
48
48
  tests/test_api_client.py
49
49
  tests/test_auth.py
50
50
  tests/test_cli_server.py
51
+ tests/test_default_content_surfaces.py
51
52
  tests/test_fleet_name.py
52
53
  tests/test_init.py
53
54
  tests/test_init_dynamics.py
@@ -1,4 +1,4 @@
1
- agent-connector-sdk[mcp]<1.0.0,>=0.3.14
1
+ agent-connector-sdk[mcp]<1.0.0,>=0.3.18
2
2
  requests>=2.34.2
3
3
  defusedxml>=0.7.1
4
4
  python-dateutil>=2.9.0.post0
@@ -6,10 +6,10 @@ icalendar>=7.3.0
6
6
  vobject>=0.9.9
7
7
 
8
8
  [all]
9
- agent-connector-sdk[mcp]<1.0.0,>=0.3.14
9
+ agent-connector-sdk[mcp]<1.0.0,>=0.3.18
10
10
 
11
11
  [mcp]
12
- agent-connector-sdk[mcp]<1.0.0,>=0.3.14
12
+ agent-connector-sdk[mcp]<1.0.0,>=0.3.18
13
13
 
14
14
  [test]
15
15
  pytest-xdist>=3.8.0
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "nextcloud-agent"
7
- version = "2.3.1"
7
+ version = "2.3.2"
8
8
  description = "Nextcloud MCP Server for Agentic AI!"
9
9
  readme = "README.md"
10
10
  classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
11
11
  requires-python = ">=3.12"
12
- dependencies = [ "agent-connector-sdk[mcp]>=0.3.14,<1.0.0", "requests>=2.34.2", "defusedxml>=0.7.1", "python-dateutil>=2.9.0.post0", "icalendar>=7.3.0", "vobject>=0.9.9",]
12
+ dependencies = [ "agent-connector-sdk[mcp]>=0.3.18,<1.0.0", "requests>=2.34.2", "defusedxml>=0.7.1", "python-dateutil>=2.9.0.post0", "icalendar>=7.3.0", "vobject>=0.9.9",]
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
  nextcloud-mcp = "nextcloud_agent.mcp_server:mcp_server"
22
22
 
23
23
  [project.optional-dependencies]
24
- mcp = [ "agent-connector-sdk[mcp]>=0.3.14,<1.0.0",]
25
- all = [ "agent-connector-sdk[mcp]>=0.3.14,<1.0.0",]
24
+ mcp = [ "agent-connector-sdk[mcp]>=0.3.18,<1.0.0",]
25
+ all = [ "agent-connector-sdk[mcp]>=0.3.18,<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,43 @@
1
+ """CONN-NEXTCLOUD-AGENT-CONNECTOR-CONTENT-R001: the server lists its packaged skills, ontology and prompts by default."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import asyncio
6
+ import importlib
7
+ from pathlib import Path
8
+
9
+ import pytest
10
+ from fastmcp import Client
11
+
12
+ PACKAGE = "nextcloud_agent"
13
+ ROOT = Path(list(importlib.import_module(PACKAGE).__path__)[0])
14
+
15
+ pytestmark = pytest.mark.spec("CONN-NEXTCLOUD-AGENT-CONNECTOR-CONTENT-R001")
16
+
17
+
18
+ def _server():
19
+ namespace = {"__name__": PACKAGE + ".mcp_server"}
20
+ exec(
21
+ "from agent_connector_sdk.mcp.server import create_mcp_server\n"
22
+ "result = create_mcp_server('nextcloud-mcp', version='0', command_args=[])",
23
+ namespace,
24
+ )
25
+ return namespace["result"][1]
26
+
27
+
28
+ async def _listings():
29
+ async with Client(_server()) as client:
30
+ resources = {str(r.uri) for r in await client.list_resources()}
31
+ prompts = {p.name for p in await client.list_prompts()}
32
+ return resources, prompts
33
+
34
+
35
+ def test_default_content_surfaces() -> None:
36
+ resources, prompts = asyncio.run(_listings())
37
+ if list(ROOT.glob("skills/*/SKILL.md")):
38
+ assert any(u.startswith("skill://") for u in resources)
39
+ if list(ROOT.glob("ontology/*.ttl")):
40
+ assert any(u.startswith("ontology://nextcloud-mcp/") for u in resources)
41
+ for path in ROOT.glob("prompts/*.json"):
42
+ if not path.name.startswith("_"):
43
+ assert path.stem in prompts
@@ -1 +0,0 @@
1
- __version__ = "2.3.1"
File without changes