Get an agent manifest
Its latest version.
applicationKeyAuthorizationBearer <token>An application key of the Tenant (PUT /v1/tenant/keys/{keyId}), or Studio's key, derived from the admin key. With Nylorun-Subject and Nylorun-Scopes, it acts for that person, narrowed to those scopes. Never accepted from a browser (Origin).
name*stringThe agent manifest's name, such as triage
Nylorun-Protocol*stringThe protocol version, 18
Nylorun-Subject?stringThe person an application key acts for
Nylorun-Scopes?stringThe subject's space-separated scopes; required with a subject
The latest version
application/json- response
name*stringversion*integer0 < valuehash*stringmanifest*savedBy*createdAt*stringagents*integer0 <= valuesource?import { createClient } from "@nylorun/agents";const client = await createClient();const manifest = await client.agentManifests.get("assistant");{ "name": "string", "version": 1, "hash": "string", "manifest": { "manifestSchemaVersion": 8, "name": "string", "description": "string", "metadata": { "property1": null, "property2": null }, "harness": { "kind": "workflow", "id": "string", "inputSchema": { "property1": null, "property2": null }, "outputSchema": { "property1": null, "property2": null }, "root": { "agent": "string", "id": "string" }, "agents": { "property1": { "kind": "workflow", "workflowSchemaVersion": 3, "id": "string", "name": "string", "description": "string", "metadata": { "property1": null, "property2": null }, "inputSchema": { "property1": null, "property2": null }, "outputSchema": { "property1": null, "property2": null }, "sandbox": { "image": "string", "network": { "preset": "none", "allow": [ "string" ] }, "resources": { "cpus": 1, "memory": "string" }, "idle": "string" }, "root": { "agent": "string", "id": "string" }, "agents": { "property1": {}, "property2": {} } }, "property2": { "kind": "workflow", "workflowSchemaVersion": 3, "id": "string", "name": "string", "description": "string", "metadata": { "property1": null, "property2": null }, "inputSchema": { "property1": null, "property2": null }, "outputSchema": { "property1": null, "property2": null }, "sandbox": { "image": "string", "network": { "preset": "none", "allow": [ "string" ] }, "resources": { "cpus": 1, "memory": "string" }, "idle": "string" }, "root": { "agent": "string", "id": "string" }, "agents": { "property1": {}, "property2": {} } } }, "plugins": [ { "name": "string", "version": "string" } ], "loop": { "property1": null, "property2": null } }, "runtime": { "kind": "virtual", "image": "string", "resources": { "cpus": 1, "memory": "string" }, "storage": "string", "network": { "allowedHosts": [ "string" ] }, "lifecycle": { "idle": "string", "deleteAfter": "string" }, "setup": [ { "command": "string", "cwd": "string", "timeout": "string" } ], "files": [ { "artifactId": "string", "version": 1, "path": "string" } ], "limits": { "artifacts": { "fileBytes": 1, "totalBytes": 1 }, "skills": { "totalBytes": 1 }, "disk": { "versionBytes": 1, "versionEntries": 1 } }, "secrets": { "property1": { "type": "environment_secret", "allowedHosts": [ "string" ], "inject": { "header": "string", "format": "string" }, "required": true, "description": "string" }, "property2": { "type": "environment_secret", "allowedHosts": [ "string" ], "inject": { "header": "string", "format": "string" }, "required": true, "description": "string" } }, "triggers": { "property1": { "schedule": "string", "timezone": "string", "at": "2019-08-24T14:15:22Z", "webhook": "standard-webhooks", "session": "string", "prompt": "string" }, "property2": { "schedule": "string", "timezone": "string", "at": "2019-08-24T14:15:22Z", "webhook": "standard-webhooks", "session": "string", "prompt": "string" } }, "selfWake": true } }, "savedBy": { "actor": "string" }, "createdAt": "string", "agents": 0, "source": { "compiler": "string", "files": 0, "bytes": 0 }}Save an agent manifest PUT
Saves the manifest as its next version, or answers the latest unchanged when nothing differs. Every Agent that tracks the manifest moves to the new version: at once, at its pod's next start for a runtime change a pod applies only when it starts, or once a required secret the version adds is set; a pinned one stays, and so does one whose kind, harness or storage the version changes (`agents_behind`). The Runtime checks the harness and runtime sections against each other: a custom harness needs a pod with an image, every credential the harness names is a declared slot of the right type, and the runtime's kind gives the loop the sandbox it needs; every gap is named in one `422 manifest_inconsistent` (`details.gaps`). `If-Match: <version>` refuses the save with `412 manifest_changed` when the latest version is no longer the one you read (`0` for a manifest that does not exist yet). With `?dryRun=true` the answer is the plan: the changes by section, every reason a save would be refused (`errors`, the gaps first), warnings, the Agents it would move (`moves`) and how many stay on older versions (`behind`); nothing is saved. Clients compose the authoring files and drop their `$schema` before they send one document. With `Content-Type: application/vnd.nylorun.folder+json` the body is an agent folder by hash instead (feature `agent-folders`): every file uploaded first with `PUT /v1/files/sha256:<hex>`, the Runtime compiles it with `@nylorun/core/folder`, a folder that does not compile is `422 folder_invalid` (`details.diagnostics`, each with its file, line and column), and the version keeps the folder as its source; the plan adds the compiled `manifest`, the compiler's `diagnostics` and `compiler`.
Delete an agent manifest DELETE
Deletes every version. Refused while any Agent was made from one (`409 manifest_in_use`).