nextcloud-agent 2.3.4__tar.gz → 2.3.5__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-2.3.4 → nextcloud_agent-2.3.5}/PKG-INFO +1 -1
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/certification.json +1 -1
- nextcloud_agent-2.3.5/nextcloud_agent/skills/nextcloud-agent-development/SKILL.md +123 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/PKG-INFO +1 -1
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/SOURCES.txt +2 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/pyproject.toml +1 -1
- nextcloud_agent-2.3.5/tests/test_publication_workflow.py +89 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/LICENSE +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/README.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/__init__.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/__main__.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/__init__.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/api_client_base.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/api_client_calendar.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/api_client_contacts.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/api_client_files.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api/xml_security.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/api_client.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/auth.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/connector_sources.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/kg_ingest.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/mcp_config.json +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/mcp_server.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/__init__.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/fixtures/records.json +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/mappings/source.yaml +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/migrations/manifest.json +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/nextcloud.ttl +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/shapes/connector.shacl.ttl +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/prompts/file_steward.json +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-files/SKILL.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-shares/SKILL.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/dependency_links.txt +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/entry_points.txt +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/requires.txt +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent.egg-info/top_level.txt +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/setup.cfg +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/conftest.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_api_client.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_auth.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_fleet_name.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_init.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_init_dynamics.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_kg_ingest.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_mcp_server.py +0 -0
- {nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/tests/test_xml_security.py +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nextcloud-agent-development
|
|
3
|
+
skill_type: skill
|
|
4
|
+
description: >-
|
|
5
|
+
Develop and verify nextcloud-agent as a connector-owned package while preserving
|
|
6
|
+
its SDK Connector wiring, action-routed MCP tools, Nextcloud authentication and
|
|
7
|
+
TLS boundary, packaged content, and source-backed spec-delivery publication.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Nextcloud Agent Development
|
|
11
|
+
|
|
12
|
+
Use this skill for changes to the `nextcloud-agent` connector. The package owns
|
|
13
|
+
Nextcloud API calls, mappings, MCP tools, and connector content; it does not own
|
|
14
|
+
the connector SDK, Arbora admission, the shared Pages renderer, or Pipelines
|
|
15
|
+
hooks.
|
|
16
|
+
|
|
17
|
+
## Repository map and runtime boundary
|
|
18
|
+
|
|
19
|
+
- `nextcloud_agent/__init__.py` creates the SDK `Connector` with `NextcloudAPI`,
|
|
20
|
+
`get_client`, and `nextcloud_agent.mcp_server` as its tool module. Preserve this
|
|
21
|
+
wiring when changing a client or tool.
|
|
22
|
+
- `nextcloud_agent/mcp_server.py` registers the condensed action-routed tools
|
|
23
|
+
`nextcloud_files`, `nextcloud_user`, `nextcloud_sharing`, `nextcloud_calendar`,
|
|
24
|
+
and `nextcloud_contacts`. Their action lists and client calls are the runtime
|
|
25
|
+
contract; the domain clients live under `nextcloud_agent/api/` and are composed
|
|
26
|
+
by `nextcloud_agent/api/__init__.py`.
|
|
27
|
+
- `nextcloud_agent/auth.py` reads `NEXTCLOUD_URL`, `NEXTCLOUD_USERNAME`, and
|
|
28
|
+
`NEXTCLOUD_PASSWORD` through the SDK setting boundary. The API client resolves
|
|
29
|
+
the named `nextcloud` TLS profile through the SDK and configures a verified,
|
|
30
|
+
same-origin requests session; preserve that transport boundary and its cleanup.
|
|
31
|
+
- `nextcloud_agent/ontology/`, `nextcloud_agent/prompts/`, and
|
|
32
|
+
`nextcloud_agent/skills/` contain connector content. The package-data table in
|
|
33
|
+
`pyproject.toml` declares those trees plus `agent_data/**` and `connectors/**`;
|
|
34
|
+
inspect a built wheel when changing packaged content.
|
|
35
|
+
- The current `pyproject.toml` declares `nextcloud-mcp` as its console script and
|
|
36
|
+
`nextcloud-mcp` as its connector identity. Older README, AGENTS, and deployment
|
|
37
|
+
examples mention a `nextcloud-agent` console script and `agent_server.py`, but
|
|
38
|
+
those are not declared or present in this source tree. Do not invent that
|
|
39
|
+
runtime or rewrite it as part of a Pages/skill change.
|
|
40
|
+
|
|
41
|
+
## Rapid delivery: the 5-minute contract
|
|
42
|
+
|
|
43
|
+
1. Read the owning `specs/` row and this repository's `AGENTS.md` before editing.
|
|
44
|
+
2. Inspect the active client/tool path and focused tests before changing API
|
|
45
|
+
behavior, auth, ontology content, or packaged skills.
|
|
46
|
+
3. Prefer the smallest connector-owned change. Preserve action names, parameter
|
|
47
|
+
schemas, SDK `Connector` wiring, Nextcloud credentials, TLS verification,
|
|
48
|
+
same-origin checks, and package-data declarations unless the owning requirement
|
|
49
|
+
changes them.
|
|
50
|
+
4. Run focused tests through the narrow test-slot wrapper, then run the repository
|
|
51
|
+
pre-commit and pre-push gates without bypasses.
|
|
52
|
+
5. For public packaged content, bump the patch version and refresh `uv.lock`
|
|
53
|
+
together; inspect the built wheel for the new skill.
|
|
54
|
+
6. Treat Pages as a separate proof: after the exact main SHA has a successful
|
|
55
|
+
Pages run, check `/spec-delivery/`, its `index.html`, and `snapshot.json` over
|
|
56
|
+
HTTPS and record the revision from the snapshot.
|
|
57
|
+
|
|
58
|
+
## Focused development commands
|
|
59
|
+
|
|
60
|
+
From the repository root:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
uv sync --locked
|
|
64
|
+
|
|
65
|
+
/var/tmp/arbora-delivery/scale/run-narrow-test-slot.sh \
|
|
66
|
+
uv run --locked --extra test pytest -q \
|
|
67
|
+
tests/test_init.py \
|
|
68
|
+
tests/test_init_dynamics.py \
|
|
69
|
+
tests/test_auth.py \
|
|
70
|
+
tests/test_api_client.py \
|
|
71
|
+
tests/test_mcp_server.py \
|
|
72
|
+
tests/test_kg_ingest.py \
|
|
73
|
+
tests/test_xml_security.py \
|
|
74
|
+
tests/test_fleet_name.py \
|
|
75
|
+
tests/test_publication_workflow.py
|
|
76
|
+
|
|
77
|
+
uvx pre-commit run --all-files
|
|
78
|
+
uvx pre-commit run --all-files --hook-stage pre-push
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
These checks cover SDK server construction, runtime entry points, action
|
|
82
|
+
dispatch, authentication, XML security, ingestion, fleet identity, and the
|
|
83
|
+
Pages/release contract. Do not replace them with a live Nextcloud call or a
|
|
84
|
+
credential-bearing test.
|
|
85
|
+
|
|
86
|
+
## Pages and package publication
|
|
87
|
+
|
|
88
|
+
`.github/workflows/pages.yml` is the one Pages caller. It invokes the shared
|
|
89
|
+
Pipelines `pages_pipeline.yml@main` with `content_source: docs` and the version 1
|
|
90
|
+
`.github/spec-dashboard.json` source declaration for `specs/*/status.json`.
|
|
91
|
+
Keep manual dispatch and the docs/spec/config/workflow path filters. The old direct
|
|
92
|
+
`mkdocs gh-deploy` publisher must not be restored because it would compete with the
|
|
93
|
+
shared dashboard build.
|
|
94
|
+
|
|
95
|
+
After a merge, verify the exact main SHA in the successful Pages run and probe:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
curl -fsSI https://knuckles-team.github.io/nextcloud-agent/
|
|
99
|
+
curl -fsSI https://knuckles-team.github.io/nextcloud-agent/spec-delivery/
|
|
100
|
+
curl -fsSI https://knuckles-team.github.io/nextcloud-agent/spec-delivery/index.html
|
|
101
|
+
curl -fsS https://knuckles-team.github.io/nextcloud-agent/spec-delivery/snapshot.json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Keep `.github/workflows/pipeline.yml` on the shared `connector: true` and
|
|
105
|
+
`render_connector: true` flags. Central generation owns generated connector
|
|
106
|
+
manifests and release container artifacts; preserve this package's existing
|
|
107
|
+
runtime, auth, and port semantics and inspect generated output before making
|
|
108
|
+
claims.
|
|
109
|
+
|
|
110
|
+
## Change discipline
|
|
111
|
+
|
|
112
|
+
- Keep Nextcloud API calls, request models, ontology mappings, MCP schemas, and
|
|
113
|
+
ingestion declarations under this repository's `CONN-NEXTCLOUD-AGENT-*` boundary.
|
|
114
|
+
SDK transport and central renderer behavior belong to their owner repositories.
|
|
115
|
+
- Use `NEXTCLOUD_URL`, `NEXTCLOUD_USERNAME`, and `NEXTCLOUD_PASSWORD` only in
|
|
116
|
+
injected runtime configuration; never print or commit their values. Preserve
|
|
117
|
+
TLS certificate verification, same-origin checks, and the SDK-resolved named
|
|
118
|
+
profile path.
|
|
119
|
+
- For mutations, inspect current state first, require operator approval where the
|
|
120
|
+
existing connector procedure calls for it, and verify the result. Keep KG
|
|
121
|
+
ingestion opt-in and preserve its provenance/tenant contract.
|
|
122
|
+
- Keep generated status changes and central promotion with the Pipelines/status
|
|
123
|
+
owner. Do not claim Pages or public package results from a local build.
|
|
@@ -29,6 +29,7 @@ nextcloud_agent/ontology/mappings/source.yaml
|
|
|
29
29
|
nextcloud_agent/ontology/migrations/manifest.json
|
|
30
30
|
nextcloud_agent/ontology/shapes/connector.shacl.ttl
|
|
31
31
|
nextcloud_agent/prompts/file_steward.json
|
|
32
|
+
nextcloud_agent/skills/nextcloud-agent-development/SKILL.md
|
|
32
33
|
nextcloud_agent/skills/nextcloud-agent-operations/SKILL.md
|
|
33
34
|
nextcloud_agent/skills/nextcloud-agent-operations/agents/openai.yaml
|
|
34
35
|
nextcloud_agent/skills/nextcloud-agent-operations/references/catalog.md
|
|
@@ -46,4 +47,5 @@ tests/test_init.py
|
|
|
46
47
|
tests/test_init_dynamics.py
|
|
47
48
|
tests/test_kg_ingest.py
|
|
48
49
|
tests/test_mcp_server.py
|
|
50
|
+
tests/test_publication_workflow.py
|
|
49
51
|
tests/test_xml_security.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nextcloud-agent"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.5"
|
|
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",]
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"""Keep the connector's shared Pages and publication contracts explicit."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import tomllib
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
import yaml
|
|
8
|
+
|
|
9
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _workflow(name: str):
|
|
13
|
+
return yaml.safe_load((ROOT / ".github/workflows" / name).read_text())
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _actions_on(workflow):
|
|
17
|
+
# PyYAML's YAML 1.1 reader represents the Actions ``on`` key as True.
|
|
18
|
+
return workflow["on"] if "on" in workflow else workflow[True]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_pages_publishes_spec_dashboard_and_supports_manual_refresh():
|
|
22
|
+
workflow = _workflow("pages.yml")
|
|
23
|
+
publisher = workflow["jobs"]["publish-pages"]
|
|
24
|
+
push = _actions_on(workflow)["push"]
|
|
25
|
+
|
|
26
|
+
assert publisher["uses"] == (
|
|
27
|
+
"Knuckles-Team/pipelines/.github/workflows/pages_pipeline.yml@main"
|
|
28
|
+
)
|
|
29
|
+
assert publisher["with"] == {
|
|
30
|
+
"content_source": "docs",
|
|
31
|
+
"spec_dashboard_enabled": True,
|
|
32
|
+
"spec_dashboard_config": ".github/spec-dashboard.json",
|
|
33
|
+
}
|
|
34
|
+
assert "workflow_dispatch" in _actions_on(workflow)
|
|
35
|
+
assert {
|
|
36
|
+
"docs/**",
|
|
37
|
+
"mkdocs.yml",
|
|
38
|
+
"README.md",
|
|
39
|
+
"specs/**",
|
|
40
|
+
".github/spec-dashboard.json",
|
|
41
|
+
".github/workflows/pages.yml",
|
|
42
|
+
} <= set(push["paths"])
|
|
43
|
+
|
|
44
|
+
config = json.loads((ROOT / ".github/spec-dashboard.json").read_text())
|
|
45
|
+
assert config == {
|
|
46
|
+
"version": 1,
|
|
47
|
+
"sources": [{"glob": "specs/*/status.json", "kind": "spec"}],
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def test_single_pages_publisher_and_release_flags_remain_canonical():
|
|
52
|
+
assert not (ROOT / ".github/workflows/docs.yml").exists()
|
|
53
|
+
|
|
54
|
+
jobs = _workflow("pipeline.yml")["jobs"]
|
|
55
|
+
assert jobs["publish-pypi"]["uses"] == (
|
|
56
|
+
"Knuckles-Team/pipelines/.github/workflows/python_pipeline.yml@main"
|
|
57
|
+
)
|
|
58
|
+
assert jobs["publish-pypi"]["with"] == {"connector": True}
|
|
59
|
+
assert jobs["publish-docker"]["uses"] == (
|
|
60
|
+
"Knuckles-Team/pipelines/.github/workflows/container_pipeline.yml@main"
|
|
61
|
+
)
|
|
62
|
+
assert jobs["publish-docker"]["with"] == {"render_connector": True}
|
|
63
|
+
assert jobs["publish-docker"]["needs"] == "publish-pypi"
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_development_skill_and_runtime_entrypoints_match_source_tree():
|
|
67
|
+
skill = ROOT / "nextcloud_agent/skills/nextcloud-agent-development/SKILL.md"
|
|
68
|
+
content = skill.read_text()
|
|
69
|
+
|
|
70
|
+
assert "name: nextcloud-agent-development" in content
|
|
71
|
+
assert "## Rapid delivery: the 5-minute contract" in content
|
|
72
|
+
for path in (
|
|
73
|
+
"nextcloud_agent/__init__.py",
|
|
74
|
+
"nextcloud_agent/auth.py",
|
|
75
|
+
"nextcloud_agent/mcp_server.py",
|
|
76
|
+
"nextcloud_agent/api_client.py",
|
|
77
|
+
"nextcloud_agent/api/api_client_base.py",
|
|
78
|
+
"tests/test_auth.py",
|
|
79
|
+
"tests/test_mcp_server.py",
|
|
80
|
+
"nextcloud_agent/skills/nextcloud-files/SKILL.md",
|
|
81
|
+
"nextcloud_agent/ontology/nextcloud.ttl",
|
|
82
|
+
):
|
|
83
|
+
assert (ROOT / path).exists(), path
|
|
84
|
+
|
|
85
|
+
project = tomllib.loads((ROOT / "pyproject.toml").read_text())["project"]
|
|
86
|
+
assert project["scripts"]["nextcloud-mcp"] == "agent_connector_sdk.cli:serve"
|
|
87
|
+
assert project["entry-points"]["agent_connector_sdk.connector"]["nextcloud-mcp"] == (
|
|
88
|
+
"nextcloud_agent:connector"
|
|
89
|
+
)
|
|
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-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/fixtures/records.json
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/mappings/source.yaml
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/migrations/manifest.json
RENAMED
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/ontology/shapes/connector.shacl.ttl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-files/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-files/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-ingest/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-ingest/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-shares/SKILL.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/nextcloud_agent/skills/nextcloud-shares/WORKFLOW.md
RENAMED
|
File without changes
|
{nextcloud_agent-2.3.4 → nextcloud_agent-2.3.5}/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
|