/** * Artifact Tools — agent-facing surface over the artifact store. * * Three tools, consolidated along the source/destination axis so the model's * mental picture stays "read and write": * * - `write_artifact` — store bytes from exactly one of three sources: * content (inline, model-authored — the only path where bytes * transit the context window) * fromFile (worker-local path → streamed; zero payload tokens) * fromArtifact (server-side copy from another session, with optional * SHA-256 precondition) * - `read_artifact` — fetch metadata (`metaOnly`), stream to a worker-local * file (`toFile`), or return content inline (utf-8 or base64, bounded). * - `list_artifacts` — discovery, with full provenance metadata. * * Every result carries { sha256, sizeBytes, contentType, isBinary, * artifactLink, … } so provenance verification never requires a transfer. * * DESIGN RULE (born from the 2026-07-12 Diagon Alley incident): the model is * a control plane, not a wire. Payloads that already exist as bytes must move * via `fromFile` / `fromArtifact` / `toFile`, never by being reproduced as * model tokens. Inline reads are size-guarded for the same reason. * * @module * @internal */ import type { Tool } from "@github/copilot-sdk"; import type { ArtifactStore } from "./session-store.js"; /** * Create the artifact tools bound to the given store. The store can be Azure * Blob (SessionBlobStore) or local filesystem (FilesystemArtifactStore); the * `sessionId` for writes is injected via the session context. */ export declare function createArtifactTools(opts: { blobStore: ArtifactStore; }): Tool[]; //# sourceMappingURL=artifact-tools.d.ts.map