You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dotnet test tests/ManagedCode.FileContext.Tests/ManagedCode.FileContext.Tests.csproj --configuration Release --no-build
15
+
dotnet test tests/ManagedCode.FileContext.Tests/ManagedCode.FileContext.Tests.csproj --configuration Release --no-build /p:CollectCoverage=true
16
16
```
17
17
18
18
4. Explain public API, dependency, configuration, and security changes in the pull request.
19
19
20
-
Keep product code provider-neutral: concrete storage providers and LlmTck belong in tests or host applications. Do not commit credentials, generated test artifacts, or packages. NuGet publication is performed only by the repository release workflow.
20
+
The test command enforces at least 95% total line coverage for product code. Keep product code provider-neutral: concrete storage providers and LlmTck belong in tests or host applications. Do not commit credentials, generated test artifacts, or packages. NuGet publication is performed only by the repository release workflow.
Storage-backed file tools and Markdown knowledge-graph context for Microsoft Agent Framework.
8
+
Bounded, provider-neutral file tools and Markdown knowledge-graph context for Microsoft Agent Framework.
9
9
10
10
`ManagedCode.FileContext` turns any [`ManagedCode.Storage.Core.IStorage`](https://github.com/managedcode/Storage) implementation into an Agent Framework file context. An agent can read, list, grep, create, edit, and delete files through the framework's standard `file_access_*` tools; use bounded line-range and metadata tools for large files; and build/search/export a linked-data graph from Markdown through [`ManagedCode.MarkdownLd.Kb`](https://github.com/managedcode/markdown-ld-kb).
Add one concrete ManagedCode.Storage provider to the host application. For a local filesystem:
@@ -185,15 +185,17 @@ Product code references only `ManagedCode.Storage.Core`; it does not depend on a
185
185
186
186
## Tests
187
187
188
-
The test suite uses real filesystem storage. The tool-loop integration test starts a real ManagedCode.LlmTck HTTP server, returns an OpenAI-compatible `file_access_read` call, lets Agent Framework invoke the storage-backed tool, verifies the tool result was sent back to the model endpoint, and then receives the final response. No live model or API key is required.
188
+
The integration-first test suite uses a unique real filesystem root per test. LlmTck HTTP replays invoke every advertised `file_access_*` and `file_context_*` tool through the actual Agent Framework function loop, then assert the resulting file content or structured tool result. A sparse 1 GiB file scenario verifies bounded range reads, allocation limits, and fail-fast handling for an oversized single line. No live model or API key is required.
189
189
190
190
```bash
191
191
dotnet restore ManagedCode.FileContext.slnx
192
192
dotnet format ManagedCode.FileContext.slnx --verify-no-changes
dotnet test tests/ManagedCode.FileContext.Tests/ManagedCode.FileContext.Tests.csproj --configuration Release
194
+
dotnet test tests/ManagedCode.FileContext.Tests/ManagedCode.FileContext.Tests.csproj --configuration Release /p:CollectCoverage=true
195
195
```
196
196
197
+
The coverage command enforces at least 95% line coverage for the product assembly and writes an OpenCover report under the test project's `TestResults/coverage` directory.
198
+
197
199
## Documentation
198
200
199
201
-[Architecture](docs/Architecture.md)
@@ -205,7 +207,7 @@ dotnet test tests/ManagedCode.FileContext.Tests/ManagedCode.FileContext.Tests.cs
205
207
206
208
## Release policy
207
209
208
-
The package version is defined in `Directory.Build.props`. Pull requests and `main` run the required `build-and-test` workflow. NuGet publication is allowed only from the tag-driven GitHub Actions release workflow, and a tag such as `v0.0.1` must exactly match the evaluated package version. The repository intentionally provides no local publish script.
210
+
The package version is defined in `Directory.Build.props`. Pull requests and `main` run the required `build-and-test` workflow. NuGet publication is allowed only from the tag-driven GitHub Actions release workflow, and a tag such as `v0.0.2` must exactly match the evaluated package version. The repository intentionally provides no local publish script.
0 commit comments