nextcloud-agent 3.0.0__tar.gz → 3.1.0__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.
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/PKG-INFO +13 -13
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/README.md +11 -11
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/kg_ingest.py +1 -1
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/__init__.py +1 -1
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/certification.json +3 -3
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/nextcloud.ttl +27 -26
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/shapes/connector.shacl.ttl +2 -2
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/PKG-INFO +13 -13
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/SOURCES.txt +1 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/requires.txt +1 -1
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/pyproject.toml +2 -2
- nextcloud_agent-3.1.0/tests/test_scion_sdk_0_10_imports.py +59 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/LICENSE +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/__init__.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/__main__.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/__init__.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_activity.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_admin.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_base.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_calendar.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_contacts.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_deck.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_files.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_notes.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_office.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_shares.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/api_client_talk.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api/xml_security.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/api_client.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/auth.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/connector_contracts.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/connector_sources.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/mcp_config.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/fixtures/records.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/mappings/source.yaml +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/migrations/manifest.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/asset_publisher.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/file_steward.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/office_coordinator.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/operator.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/project_coordinator.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/workspace_admin.json +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-activity/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-admin/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-agent-development/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-calendar/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-contacts/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-deck/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-notes/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-office/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-publish-asset/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-shares/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-talk/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-tasks/SKILL.md +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/entry_points.txt +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/top_level.txt +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/setup.cfg +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/conftest.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_api_client.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_auth.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_business_surface.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_content_surface.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_files_webdav.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_fleet_name.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_init.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_init_dynamics.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_kg_ingest.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_mcp_server.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_publication_workflow.py +0 -0
- {nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/tests/test_xml_security.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Repository Maintainers <maintainers@knuckles.team>
|
|
6
6
|
License: MIT
|
|
@@ -12,7 +12,7 @@ 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: scion-sdk[mcp]<0.
|
|
15
|
+
Requires-Dist: scion-sdk[mcp]<0.12,>=0.11.0
|
|
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
|
|
@@ -257,8 +257,8 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
|
|
|
257
257
|
<!-- MCP-CONFIG-EXAMPLES:START -->
|
|
258
258
|
|
|
259
259
|
> **Install the connector-focused `[mcp]` extra.** Examples use `nextcloud-agent[mcp]` to add
|
|
260
|
-
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required
|
|
261
|
-
> still carries `
|
|
260
|
+
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required Meristem core
|
|
261
|
+
> still carries `medulla[full]`. The `[agent-runtime]` extra additionally
|
|
262
262
|
> enables model orchestration.
|
|
263
263
|
|
|
264
264
|
#### stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)
|
|
@@ -589,8 +589,8 @@ Pick the extra that matches what the operator want to run:
|
|
|
589
589
|
|
|
590
590
|
| Extra | Installs | Use when |
|
|
591
591
|
|-------|----------|----------|
|
|
592
|
-
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `
|
|
593
|
-
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `
|
|
592
|
+
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `medulla[full]`) | The operator only run the **MCP server** (smallest install / image) |
|
|
593
|
+
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `medulla[full]`) | The operator run the **integrated agent** |
|
|
594
594
|
| `nextcloud-agent[all]` | Everything (`mcp` + `agent` + `logfire`) | Development / both surfaces |
|
|
595
595
|
|
|
596
596
|
```bash
|
|
@@ -610,8 +610,8 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
610
610
|
|
|
611
611
|
| Image tag | Build target | Contents | Entrypoint |
|
|
612
612
|
|-----------|--------------|----------|------------|
|
|
613
|
-
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `
|
|
614
|
-
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `
|
|
613
|
+
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `medulla[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
614
|
+
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `medulla[full]` | `nextcloud-agent` |
|
|
615
615
|
|
|
616
616
|
```bash
|
|
617
617
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
@@ -621,16 +621,16 @@ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.3 docker/ # age
|
|
|
621
621
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
622
622
|
agent (`:2.3.3`) with a co-located `:mcp` sidecar.
|
|
623
623
|
|
|
624
|
-
### Knowledge-graph database (`
|
|
624
|
+
### Knowledge-graph database (`medulla`)
|
|
625
625
|
|
|
626
|
-
Both `[mcp]` and `[agent]` carry the **
|
|
627
|
-
|
|
626
|
+
Both `[mcp]` and `[agent]` carry the **medulla** engine through the required
|
|
627
|
+
Meristem core dependency (`medulla[full]`). The `[mcp]` extra keeps
|
|
628
628
|
the server connector-focused; `[agent]` also enables model orchestration. Local
|
|
629
629
|
deployments can use the bundled engine. For production — or to share one knowledge graph
|
|
630
|
-
across multiple agents — run **
|
|
630
|
+
across multiple agents — run **medulla as its own database container** and point the
|
|
631
631
|
agent at it instead of embedding it. Deployment recipes (single-node + Raft HA), connection
|
|
632
632
|
config, and the full database architecture (with diagrams) are documented in the
|
|
633
|
-
[
|
|
633
|
+
[medulla deployment guide](https://knuckles-team.github.io/medulla/deployment/).
|
|
634
634
|
|
|
635
635
|
---
|
|
636
636
|
|
|
@@ -230,8 +230,8 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
|
|
|
230
230
|
<!-- MCP-CONFIG-EXAMPLES:START -->
|
|
231
231
|
|
|
232
232
|
> **Install the connector-focused `[mcp]` extra.** Examples use `nextcloud-agent[mcp]` to add
|
|
233
|
-
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required
|
|
234
|
-
> still carries `
|
|
233
|
+
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required Meristem core
|
|
234
|
+
> still carries `medulla[full]`. The `[agent-runtime]` extra additionally
|
|
235
235
|
> enables model orchestration.
|
|
236
236
|
|
|
237
237
|
#### stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)
|
|
@@ -562,8 +562,8 @@ Pick the extra that matches what the operator want to run:
|
|
|
562
562
|
|
|
563
563
|
| Extra | Installs | Use when |
|
|
564
564
|
|-------|----------|----------|
|
|
565
|
-
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `
|
|
566
|
-
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `
|
|
565
|
+
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `medulla[full]`) | The operator only run the **MCP server** (smallest install / image) |
|
|
566
|
+
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `medulla[full]`) | The operator run the **integrated agent** |
|
|
567
567
|
| `nextcloud-agent[all]` | Everything (`mcp` + `agent` + `logfire`) | Development / both surfaces |
|
|
568
568
|
|
|
569
569
|
```bash
|
|
@@ -583,8 +583,8 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
583
583
|
|
|
584
584
|
| Image tag | Build target | Contents | Entrypoint |
|
|
585
585
|
|-----------|--------------|----------|------------|
|
|
586
|
-
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `
|
|
587
|
-
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `
|
|
586
|
+
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `medulla[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
587
|
+
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `medulla[full]` | `nextcloud-agent` |
|
|
588
588
|
|
|
589
589
|
```bash
|
|
590
590
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
@@ -594,16 +594,16 @@ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.3 docker/ # age
|
|
|
594
594
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
595
595
|
agent (`:2.3.3`) with a co-located `:mcp` sidecar.
|
|
596
596
|
|
|
597
|
-
### Knowledge-graph database (`
|
|
597
|
+
### Knowledge-graph database (`medulla`)
|
|
598
598
|
|
|
599
|
-
Both `[mcp]` and `[agent]` carry the **
|
|
600
|
-
|
|
599
|
+
Both `[mcp]` and `[agent]` carry the **medulla** engine through the required
|
|
600
|
+
Meristem core dependency (`medulla[full]`). The `[mcp]` extra keeps
|
|
601
601
|
the server connector-focused; `[agent]` also enables model orchestration. Local
|
|
602
602
|
deployments can use the bundled engine. For production — or to share one knowledge graph
|
|
603
|
-
across multiple agents — run **
|
|
603
|
+
across multiple agents — run **medulla as its own database container** and point the
|
|
604
604
|
agent at it instead of embedding it. Deployment recipes (single-node + Raft HA), connection
|
|
605
605
|
config, and the full database architecture (with diagrams) are documented in the
|
|
606
|
-
[
|
|
606
|
+
[medulla deployment guide](https://knuckles-team.github.io/medulla/deployment/).
|
|
607
607
|
|
|
608
608
|
---
|
|
609
609
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Native
|
|
1
|
+
"""Native medulla ingestion for Nextcloud structure (typed graph nodes).
|
|
2
2
|
|
|
3
3
|
CONCEPT:AU-KG.ingest.enterprise-source-extractor. The structure-node twin of
|
|
4
4
|
``kg_media`` (which stores the raw file blobs + extracted documents): this module maps
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Nextcloud ontology contribution (CONCEPT:AU-KG.ontology.federation-provider-leg).
|
|
2
2
|
|
|
3
3
|
Data-only subpackage: it carries ``nextcloud.ttl`` (the ``owl:Ontology``
|
|
4
|
-
``
|
|
4
|
+
``https://knuckles-team.github.io/ontology/connector/nextcloud`` module) which the Arbora hub federates in via
|
|
5
5
|
the ``scion_sdk.ontology_providers`` entry-point. It holds no business logic
|
|
6
6
|
and no heavy imports so the hub can resolve it cheaply.
|
|
7
7
|
"""
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"nextcloud_agent/ontology/fixtures/records.json": "aeff7048eae4bc5068dcd2070ad0f0e02b1de63bf9fd5dbecf6a51c5ebd26dc7",
|
|
5
5
|
"nextcloud_agent/ontology/mappings/source.yaml": "eeeed948b2ff1edccd43b208d7e2989cb6b957c3169d6e6bbd9f32b6861f28ed",
|
|
6
6
|
"nextcloud_agent/ontology/migrations/manifest.json": "25716b991f14c59cc202177dfa6d410b396e18a5c9accc92238e5433825535e7",
|
|
7
|
-
"nextcloud_agent/ontology/nextcloud.ttl": "
|
|
8
|
-
"nextcloud_agent/ontology/shapes/connector.shacl.ttl": "
|
|
7
|
+
"nextcloud_agent/ontology/nextcloud.ttl": "b627988ebe9193c605de6e7589f5dae66fcbb7e351ee0b67dd2b4fa01505d363",
|
|
8
|
+
"nextcloud_agent/ontology/shapes/connector.shacl.ttl": "1162e60aee95e52a34faedd702423d4ba62fe4df9a3c65906c0bd366d74e1b7c"
|
|
9
9
|
},
|
|
10
10
|
"checks": {
|
|
11
11
|
"declared_tool_schema": "passed",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"signer": "UNSIGNED-PREVIEW",
|
|
30
30
|
"signing_public_key": "",
|
|
31
31
|
"status": "source-validated",
|
|
32
|
-
"validated_at": "2026-11-
|
|
32
|
+
"validated_at": "2026-11-13T00:17:54Z"
|
|
33
33
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
@prefix : <
|
|
1
|
+
@prefix : <https://knuckles-team.github.io/ontology/connector/nextcloud#> .
|
|
2
|
+
@prefix core: <https://knuckles-team.github.io/ontology/core#> .
|
|
2
3
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
3
4
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
4
5
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
@@ -12,7 +13,7 @@
|
|
|
12
13
|
# roles are declared once in connector_contracts.py; the SDK serves them as the
|
|
13
14
|
# connector's surface ontology, typed by classes that extend core.
|
|
14
15
|
|
|
15
|
-
<
|
|
16
|
+
<https://knuckles-team.github.io/ontology/connector/nextcloud> a owl:Ontology ;
|
|
16
17
|
rdfs:label "Nextcloud Ontology" ;
|
|
17
18
|
rdfs:comment """Nextcloud collaboration model: files, versions, shares, calendars,
|
|
18
19
|
events, tasks, contacts, Talk, Deck, notes, office documents, activity and
|
|
@@ -24,89 +25,89 @@
|
|
|
24
25
|
:Share a owl:Class ;
|
|
25
26
|
rdfs:label "Nextcloud Share" ;
|
|
26
27
|
rdfs:comment "A sharing grant on a file or folder: user, group, Talk, email or public link." ;
|
|
27
|
-
rdfs:subClassOf :FileShare .
|
|
28
|
+
rdfs:subClassOf core:FileShare .
|
|
28
29
|
|
|
29
30
|
:FileVersion a owl:Class ;
|
|
30
31
|
rdfs:label "File Version" ;
|
|
31
32
|
rdfs:comment "A stored earlier content of a Nextcloud file, restorable." ;
|
|
32
|
-
rdfs:subClassOf :File .
|
|
33
|
+
rdfs:subClassOf core:File .
|
|
33
34
|
|
|
34
35
|
:TrashItem a owl:Class ;
|
|
35
36
|
rdfs:label "Trash Item" ;
|
|
36
37
|
rdfs:comment "A deleted file or folder held in the trash bin, restorable." ;
|
|
37
|
-
rdfs:subClassOf :File .
|
|
38
|
+
rdfs:subClassOf core:File .
|
|
38
39
|
|
|
39
40
|
:OfficeDocument a owl:Class ;
|
|
40
41
|
rdfs:label "Office Document" ;
|
|
41
42
|
rdfs:comment "A document, spreadsheet, presentation, diagram or markdown file edited collaboratively." ;
|
|
42
|
-
rdfs:subClassOf :Document .
|
|
43
|
+
rdfs:subClassOf core:Document .
|
|
43
44
|
|
|
44
45
|
:NextcloudCalendar a owl:Class ;
|
|
45
46
|
rdfs:label "Nextcloud Calendar" ;
|
|
46
47
|
rdfs:comment "A CalDAV calendar holding events and, when task-capable, tasks." ;
|
|
47
|
-
rdfs:subClassOf :Collection .
|
|
48
|
+
rdfs:subClassOf core:Collection .
|
|
48
49
|
|
|
49
50
|
:AddressBook a owl:Class ;
|
|
50
51
|
rdfs:label "Address Book" ;
|
|
51
52
|
rdfs:comment "A CardDAV address book of contact cards." ;
|
|
52
|
-
rdfs:subClassOf :Collection .
|
|
53
|
+
rdfs:subClassOf core:Collection .
|
|
53
54
|
|
|
54
55
|
:ContactCard a owl:Class ;
|
|
55
56
|
rdfs:label "Contact Card" ;
|
|
56
57
|
rdfs:comment "One vCard: a person's or organization's name, emails, phones and organization." ;
|
|
57
|
-
rdfs:subClassOf :Document .
|
|
58
|
+
rdfs:subClassOf core:Document .
|
|
58
59
|
|
|
59
60
|
:TalkConversation a owl:Class ;
|
|
60
61
|
rdfs:label "Talk Conversation" ;
|
|
61
62
|
rdfs:comment "A Nextcloud Talk conversation: private group, public or one-to-one." ;
|
|
62
|
-
rdfs:subClassOf :MessageChannel .
|
|
63
|
+
rdfs:subClassOf core:MessageChannel .
|
|
63
64
|
|
|
64
65
|
:TalkMessage a owl:Class ;
|
|
65
66
|
rdfs:label "Talk Message" ;
|
|
66
67
|
rdfs:comment "One chat message in a Talk conversation." ;
|
|
67
|
-
rdfs:subClassOf :ChatMessage .
|
|
68
|
+
rdfs:subClassOf core:ChatMessage .
|
|
68
69
|
|
|
69
70
|
:DeckBoard a owl:Class ;
|
|
70
71
|
rdfs:label "Deck Board" ;
|
|
71
72
|
rdfs:comment "A Deck kanban board." ;
|
|
72
|
-
rdfs:subClassOf :Collection .
|
|
73
|
+
rdfs:subClassOf core:Collection .
|
|
73
74
|
|
|
74
75
|
:DeckStack a owl:Class ;
|
|
75
76
|
rdfs:label "Deck Stack" ;
|
|
76
77
|
rdfs:comment "One column of a Deck board." ;
|
|
77
|
-
rdfs:subClassOf :Collection .
|
|
78
|
+
rdfs:subClassOf core:Collection .
|
|
78
79
|
|
|
79
80
|
:DeckCard a owl:Class ;
|
|
80
81
|
rdfs:label "Deck Card" ;
|
|
81
82
|
rdfs:comment "One card of work on a Deck board." ;
|
|
82
|
-
rdfs:subClassOf :Task .
|
|
83
|
+
rdfs:subClassOf core:Task .
|
|
83
84
|
|
|
84
85
|
:NextcloudNote a owl:Class ;
|
|
85
86
|
rdfs:label "Nextcloud Note" ;
|
|
86
87
|
rdfs:comment "A markdown note of the Notes app." ;
|
|
87
|
-
rdfs:subClassOf :Document .
|
|
88
|
+
rdfs:subClassOf core:Document .
|
|
88
89
|
|
|
89
90
|
:ActivityEvent a owl:Class ;
|
|
90
91
|
rdfs:label "Activity Event" ;
|
|
91
92
|
rdfs:comment "One entry of the activity stream: who changed what and when." ;
|
|
92
|
-
rdfs:subClassOf :Event .
|
|
93
|
+
rdfs:subClassOf core:Event .
|
|
93
94
|
|
|
94
95
|
:NextcloudNotification a owl:Class ;
|
|
95
96
|
rdfs:label "Nextcloud Notification" ;
|
|
96
97
|
rdfs:comment "One notification addressed to the account." ;
|
|
97
|
-
rdfs:subClassOf :Event .
|
|
98
|
+
rdfs:subClassOf core:Event .
|
|
98
99
|
|
|
99
100
|
:NextcloudApp a owl:Class ;
|
|
100
101
|
rdfs:label "Nextcloud App" ;
|
|
101
102
|
rdfs:comment "An installed Nextcloud app (Talk, Deck, Office and others)." ;
|
|
102
|
-
rdfs:subClassOf :Application .
|
|
103
|
+
rdfs:subClassOf core:Application .
|
|
103
104
|
|
|
104
105
|
# --- links and fields ---
|
|
105
106
|
|
|
106
107
|
:inFolder a owl:ObjectProperty ;
|
|
107
108
|
rdfs:label "in folder" ;
|
|
108
109
|
rdfs:comment "Links a File or subfolder to the Folder that contains it." ;
|
|
109
|
-
rdfs:range :Folder .
|
|
110
|
+
rdfs:range core:Folder .
|
|
110
111
|
|
|
111
112
|
:sharedWith a owl:ObjectProperty ;
|
|
112
113
|
rdfs:label "shared with" ;
|
|
@@ -121,20 +122,20 @@
|
|
|
121
122
|
:hasBlob a owl:ObjectProperty ;
|
|
122
123
|
rdfs:label "has blob" ;
|
|
123
124
|
rdfs:comment "Links a File to the federated :AssetOccurrence holding its raw content-addressed bytes." ;
|
|
124
|
-
rdfs:domain :File ;
|
|
125
|
-
rdfs:range :AssetOccurrence .
|
|
125
|
+
rdfs:domain core:File ;
|
|
126
|
+
rdfs:range core:AssetOccurrence .
|
|
126
127
|
|
|
127
128
|
:hasDocument a owl:ObjectProperty ;
|
|
128
129
|
rdfs:label "has document" ;
|
|
129
130
|
rdfs:comment "Links a File to the federated :Document carrying its extracted, searchable text." ;
|
|
130
|
-
rdfs:domain :File ;
|
|
131
|
-
rdfs:range :Document .
|
|
131
|
+
rdfs:domain core:File ;
|
|
132
|
+
rdfs:range core:Document .
|
|
132
133
|
|
|
133
134
|
:versionOf a owl:ObjectProperty ;
|
|
134
135
|
rdfs:label "version of" ;
|
|
135
136
|
rdfs:comment "Links a FileVersion to the File it is an earlier content of." ;
|
|
136
137
|
rdfs:domain :FileVersion ;
|
|
137
|
-
rdfs:range :File .
|
|
138
|
+
rdfs:range core:File .
|
|
138
139
|
|
|
139
140
|
:inCalendar a owl:ObjectProperty ;
|
|
140
141
|
rdfs:label "in calendar" ;
|
|
@@ -160,13 +161,13 @@
|
|
|
160
161
|
:mimeType a owl:DatatypeProperty ;
|
|
161
162
|
rdfs:label "mime type" ;
|
|
162
163
|
rdfs:comment "MIME content type of a File." ;
|
|
163
|
-
rdfs:domain :File ;
|
|
164
|
+
rdfs:domain core:File ;
|
|
164
165
|
rdfs:range xsd:string .
|
|
165
166
|
|
|
166
167
|
:sizeBytes a owl:DatatypeProperty ;
|
|
167
168
|
rdfs:label "size bytes" ;
|
|
168
169
|
rdfs:comment "Size of a File in bytes." ;
|
|
169
|
-
rdfs:domain :File ;
|
|
170
|
+
rdfs:domain core:File ;
|
|
170
171
|
rdfs:range xsd:integer .
|
|
171
172
|
|
|
172
173
|
:modifiedAt a owl:DatatypeProperty ;
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/shapes/connector.shacl.ttl
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@prefix : <
|
|
2
|
-
@prefix shape: <
|
|
1
|
+
@prefix : <https://knuckles-team.github.io/ontology/core#> .
|
|
2
|
+
@prefix shape: <https://knuckles-team.github.io/ontology/connector/nextcloud-shapes#> .
|
|
3
3
|
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
4
4
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextcloud-agent
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: Nextcloud MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Repository Maintainers <maintainers@knuckles.team>
|
|
6
6
|
License: MIT
|
|
@@ -12,7 +12,7 @@ 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: scion-sdk[mcp]<0.
|
|
15
|
+
Requires-Dist: scion-sdk[mcp]<0.12,>=0.11.0
|
|
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
|
|
@@ -257,8 +257,8 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
|
|
|
257
257
|
<!-- MCP-CONFIG-EXAMPLES:START -->
|
|
258
258
|
|
|
259
259
|
> **Install the connector-focused `[mcp]` extra.** Examples use `nextcloud-agent[mcp]` to add
|
|
260
|
-
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required
|
|
261
|
-
> still carries `
|
|
260
|
+
> FastMCP / FastAPI through `scion-sdk[mcp]`; the required Meristem core
|
|
261
|
+
> still carries `medulla[full]`. The `[agent-runtime]` extra additionally
|
|
262
262
|
> enables model orchestration.
|
|
263
263
|
|
|
264
264
|
#### stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)
|
|
@@ -589,8 +589,8 @@ Pick the extra that matches what the operator want to run:
|
|
|
589
589
|
|
|
590
590
|
| Extra | Installs | Use when |
|
|
591
591
|
|-------|----------|----------|
|
|
592
|
-
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `
|
|
593
|
-
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `
|
|
592
|
+
| `nextcloud-agent[mcp]` | Connector-focused MCP server (`scion-sdk[mcp]` — FastMCP/FastAPI + `medulla[full]`) | The operator only run the **MCP server** (smallest install / image) |
|
|
593
|
+
| `nextcloud-agent[agent]` | Agent runtime (`scion-sdk[agent-runtime,logfire]` — model orchestration + `medulla[full]`) | The operator run the **integrated agent** |
|
|
594
594
|
| `nextcloud-agent[all]` | Everything (`mcp` + `agent` + `logfire`) | Development / both surfaces |
|
|
595
595
|
|
|
596
596
|
```bash
|
|
@@ -610,8 +610,8 @@ One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `
|
|
|
610
610
|
|
|
611
611
|
| Image tag | Build target | Contents | Entrypoint |
|
|
612
612
|
|-----------|--------------|----------|------------|
|
|
613
|
-
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `
|
|
614
|
-
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `
|
|
613
|
+
| `knucklessg1/nextcloud-agent:mcp` | `--target mcp` | `nextcloud-agent[mcp]` — **connector-focused**, includes `medulla[full]`; no model-orchestration stack | `nextcloud-mcp` |
|
|
614
|
+
| `knucklessg1/nextcloud-agent:2.3.3` | `--target agent` (default) | `nextcloud-agent[agent]` — **agent runtime**, model orchestration + `medulla[full]` | `nextcloud-agent` |
|
|
615
615
|
|
|
616
616
|
```bash
|
|
617
617
|
docker build --target mcp -t knucklessg1/nextcloud-agent:mcp docker/ # connector-focused MCP server
|
|
@@ -621,16 +621,16 @@ docker build --target agent -t knucklessg1/nextcloud-agent:2.3.3 docker/ # age
|
|
|
621
621
|
`docker/mcp.compose.yml` runs the connector-focused `:mcp` server; `docker/agent.compose.yml` runs the
|
|
622
622
|
agent (`:2.3.3`) with a co-located `:mcp` sidecar.
|
|
623
623
|
|
|
624
|
-
### Knowledge-graph database (`
|
|
624
|
+
### Knowledge-graph database (`medulla`)
|
|
625
625
|
|
|
626
|
-
Both `[mcp]` and `[agent]` carry the **
|
|
627
|
-
|
|
626
|
+
Both `[mcp]` and `[agent]` carry the **medulla** engine through the required
|
|
627
|
+
Meristem core dependency (`medulla[full]`). The `[mcp]` extra keeps
|
|
628
628
|
the server connector-focused; `[agent]` also enables model orchestration. Local
|
|
629
629
|
deployments can use the bundled engine. For production — or to share one knowledge graph
|
|
630
|
-
across multiple agents — run **
|
|
630
|
+
across multiple agents — run **medulla as its own database container** and point the
|
|
631
631
|
agent at it instead of embedding it. Deployment recipes (single-node + Raft HA), connection
|
|
632
632
|
config, and the full database architecture (with diagrams) are documented in the
|
|
633
|
-
[
|
|
633
|
+
[medulla deployment guide](https://knuckles-team.github.io/medulla/deployment/).
|
|
634
634
|
|
|
635
635
|
---
|
|
636
636
|
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nextcloud-agent"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.1.0"
|
|
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 = [ "scion-sdk[mcp]>=0.
|
|
12
|
+
dependencies = [ "scion-sdk[mcp]>=0.11.0,<0.12", "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 = "Repository Maintainers"
|
|
15
15
|
email = "maintainers@knuckles.team"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""Every scion_sdk import in this repository resolves on the pinned SDK release."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import ast
|
|
6
|
+
import importlib
|
|
7
|
+
import importlib.util
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
|
|
10
|
+
ROOT = Path(__file__).resolve().parent.parent
|
|
11
|
+
SKIP = {".git", ".venv", "venv", "node_modules", "build", "dist", ".tox", "__pycache__"}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _python_files() -> list[Path]:
|
|
15
|
+
return [
|
|
16
|
+
p
|
|
17
|
+
for p in ROOT.rglob("*.py")
|
|
18
|
+
if not (set(p.relative_to(ROOT).parts) & SKIP)
|
|
19
|
+
and not any(part.startswith(".") for part in p.relative_to(ROOT).parts)
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _is_sdk(name: str | None) -> bool:
|
|
24
|
+
return bool(name) and (name == "scion_sdk" or name.startswith("scion_sdk."))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_every_scion_sdk_import_resolves_on_the_pinned_release() -> None:
|
|
28
|
+
missing: list[str] = []
|
|
29
|
+
for path in _python_files():
|
|
30
|
+
tree = ast.parse(path.read_text(encoding="utf-8"))
|
|
31
|
+
rel = path.relative_to(ROOT)
|
|
32
|
+
for node in ast.walk(tree):
|
|
33
|
+
if isinstance(node, ast.Import):
|
|
34
|
+
for alias in node.names:
|
|
35
|
+
if (
|
|
36
|
+
_is_sdk(alias.name)
|
|
37
|
+
and importlib.util.find_spec(alias.name) is None
|
|
38
|
+
):
|
|
39
|
+
missing.append(f"{rel}:{node.lineno} {alias.name}")
|
|
40
|
+
elif (
|
|
41
|
+
isinstance(node, ast.ImportFrom)
|
|
42
|
+
and node.level == 0
|
|
43
|
+
and _is_sdk(node.module)
|
|
44
|
+
):
|
|
45
|
+
if importlib.util.find_spec(node.module) is None:
|
|
46
|
+
missing.append(f"{rel}:{node.lineno} {node.module}")
|
|
47
|
+
continue
|
|
48
|
+
module = importlib.import_module(node.module)
|
|
49
|
+
for alias in node.names:
|
|
50
|
+
if alias.name == "*" or hasattr(module, alias.name):
|
|
51
|
+
continue
|
|
52
|
+
if importlib.util.find_spec(f"{node.module}.{alias.name}") is None:
|
|
53
|
+
missing.append(
|
|
54
|
+
f"{rel}:{node.lineno} {node.module}.{alias.name}"
|
|
55
|
+
)
|
|
56
|
+
assert not missing, (
|
|
57
|
+
"scion_sdk names that do not exist on the pinned release:\n"
|
|
58
|
+
+ "\n".join(missing)
|
|
59
|
+
)
|
|
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
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/fixtures/records.json
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/mappings/source.yaml
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/ontology/migrations/manifest.json
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/asset_publisher.json
RENAMED
|
File without changes
|
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/office_coordinator.json
RENAMED
|
File without changes
|
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/project_coordinator.json
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/prompts/workspace_admin.json
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-activity/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-admin/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-calendar/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-contacts/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-deck/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-files/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-notes/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-office/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-shares/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-talk/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent/skills/nextcloud-tasks/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-3.0.0 → nextcloud_agent-3.1.0}/nextcloud_agent.egg-info/dependency_links.txt
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
|