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
When you bring up a hub and workers, by default we will use the [resource-secretary](https://github.com/converged-computing/resource-secretary) library to create real and/or mock providers to add to it. If you do not have this installed it will still come up, but without these tools for the agent. In addition, you can add your own catalogs of tools for your hierarchy. Add them to the mcpserver.yaml. Here is a simple example:
279
+
280
+
```yaml
281
+
tools:
282
+
- path: flux_mcp.validate.flux_validate_jobspec
283
+
- path: hpc_mcp.filesystem.filesystem_write_file
284
+
catalogs:
285
+
- path: snakemake_agent.catalog.SnakemakeCatalog
286
+
name: snakemake
287
+
```
288
+
289
+
A catalog is a provider that is not probed for automatically, and they can be provisioned by the library here (as the example above) or externally. They typically are not probed for because the user should request using it. As an example, snakemake is going to clone snakemake-wrappers, which is a system change even if just writing to a temporary directory. You would never want to do that automatically.
290
+
291
+
Adding this catalog will expose interfaces for your worker to provide Snakemake functions, more specifically wrappers, to use. If you want to implement a catalog, you can make a basic class with `probe` that needs to return True/False to determine if it should be used, and then appropriate functions you want to expose. We support the following decorators for the Worker Secretary Agent:
292
+
293
+
- `workflow_tool`: A tool intended for use when the workflow agent is running a workflow
294
+
- `dispatch_tool`: revealed when a secretary agent is deciding to dispatch work.
295
+
- `secretary_tool`: revealed when a secretary agent is negotiating (e.g., "Can I satisfy this request?")
296
+
275
297
### Mocking a Hub
276
298
277
299
If you are doing experiments, you can bring up a hub the same way:
@@ -430,6 +452,7 @@ Here are a few design choices (subject to change, of course). I am starting with
430
452
- [ ] need way to "pass forward" an error from a worker that, for example, API key not set.
431
453
- [ ] I want to have the equivalent of a satisfy endpoint, checking for the negotiate but not dispatch.
432
454
- [ ] I also want an equivalent "just submit to this cluster" endpoint.
455
+
- [ ] likely we want an ability to one off disabling probing or specific providers
tar --wildcards -xf v5.4.5.tar.gz --strip 1 "*/data"
9
+
```
10
+
11
+
Setup your conda:
12
+
13
+
```bash
14
+
conda config --add channels defaults
15
+
conda config --add channels bioconda
16
+
conda config --add channels conda-forge
17
+
conda config --set channel_priority strict
18
+
pip install snakemake-wrapper-utils
19
+
```
20
+
21
+
Export envars so the snakemake catalog tools know EXACTLY where the data is (read only) and where to write (should be an empty directory for read/write)
0 commit comments