{
  "name": "@forge-sdk/core",
  "language": "typescript",
  "version": "0.1.0",
  "description": "Core types, model interface, telemetry, and configuration for the Forge SDK",
  "manifest": "forge-ts/packages/forge-core/package.json",
  "manifestSha256": "110319b053e40c1dfae0f293c0f7b20be296589d59cc7889017272f4fb7ea97f",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/typescript/core",
  "features": {},
  "files": [
    {
      "path": "forge-ts/packages/forge-core/src/brew-builder.ts",
      "sha256": "654c196ba5cfd998cdb8b6bc81f870edc679469236818e08264ce34f42b1283c",
      "artifactSha256": "f4a25de94d8061f4e55092101f2ea0cec0ee765f4a3704af507304449c9b22f3",
      "url": "/reference/source/forge-ts/packages/forge-core/src/brew-builder.ts.txt",
      "declarations": [
        {
          "name": "BrewBuilder",
          "line": 49,
          "signature": "export class BrewBuilder {\n  constructor(id: string, version: string);\n  addNode(nodeId: string, kind: BrewNodeKind): this;\n  addEdge(from: string, to: string, edgeKind: BrewEdgeKind): this;\n  setEntry(nodeId: string): this;\n  setExit(nodeId: string): this;\n  withTopology(topology: ModelTopology): this;\n  withMetadata(nodeId: string, key: string, value: string): this;\n  build(): Brew;\n}",
          "documentation": ""
        },
        {
          "name": "topologicalSort",
          "line": 264,
          "signature": "export function topologicalSort(\n  nodes: ReadonlyMap<NodeId, BrewNode>,\n  edges: readonly BrewEdge[],\n): NodeId[];",
          "documentation": "Performs Kahn's algorithm for topological sort on the brew graph.\n\nOnly DataFlow and ControlFlow edges participate in cycle detection.\nErrorFlow edges are excluded because they may form intentional cycles."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/brew-resolver.ts",
      "sha256": "8b5bb8dcdb77beeb7af87ae638087572cdd0bb71db527a9673f2c54a7758daab",
      "artifactSha256": "76bde26d5a12dcc5afaced563712df609baaf9668ce08f208ec04eeeeb8c9150",
      "url": "/reference/source/forge-ts/packages/forge-core/src/brew-resolver.ts.txt",
      "declarations": [
        {
          "name": "BrewEnvironment",
          "line": 35,
          "signature": "export interface BrewEnvironment {\n  /** Registered model providers, keyed by their `namespace:model` string. */\n  readonly providers: ReadonlyMap<string, string>;\n  /** Registered tool names available in this environment. */\n  readonly tools: ReadonlySet<string>;\n  /** Connected MCP server identifiers (URIs or aliases). */\n  readonly mcpServers: ReadonlySet<string>;\n  /** Web capabilities available in this environment. */\n  readonly webCapabilities: ReadonlySet<string>;\n}",
          "documentation": "The runtime environment against which a brew is resolved.\n\nCaptures the available providers, tools, MCP servers, and web capabilities\nat a specific point in time."
        },
        {
          "name": "export const BrewResolutionErrorKind = {",
          "line": 53,
          "signature": "export const BrewResolutionErrorKind /* type inferred in source */;",
          "documentation": "The kind of resolution error encountered for a specific node."
        },
        {
          "name": "BrewResolutionErrorKind",
          "line": 67,
          "signature": "export type BrewResolutionErrorKind =\n  (typeof BrewResolutionErrorKind)[keyof typeof BrewResolutionErrorKind];",
          "documentation": "Resolution error kind type."
        },
        {
          "name": "BrewResolutionError",
          "line": 73,
          "signature": "export interface BrewResolutionError {\n  /** The node that failed resolution. */\n  readonly nodeId: NodeId;\n  /** What went wrong. */\n  readonly errorKind: BrewResolutionErrorKind;\n}",
          "documentation": "A resolution error for a specific node in the brew graph."
        },
        {
          "name": "ResolvedBrewPlan",
          "line": 90,
          "signature": "export interface ResolvedBrewPlan {\n  /** Deterministic plan identifier (hash of brew_id + version + env hash). */\n  readonly planId: string;\n  /** The original brew identifier. */\n  readonly brewId: BrewId;\n  /** The original brew version. */\n  readonly brewVersion: BrewVersion;\n  /** ISO 8601 timestamp of when resolution was performed. */\n  readonly resolvedAt: string;\n  /** The resolved node execution order (topological sort). */\n  readonly executionOrder: readonly NodeId[];\n  /** The edges from the original brew. */\n  readonly edges: readonly BrewEdge[];\n  /** The entry nodes. */\n  readonly entryNodes: readonly NodeId[];\n  /** The exit nodes. */\n  readonly exitNodes: readonly NodeId[];\n}",
          "documentation": "A frozen, validated brew plan ready for durable execution.\n\nCreating a `ResolvedBrewPlan` certifies that all symbolic references\nhave been checked against a live environment."
        },
        {
          "name": "resolve",
          "line": 132,
          "signature": "export function resolve(\n  brew: Brew,\n  env: BrewEnvironment,\n): ResolvedBrewPlan;",
          "documentation": "Resolves a brew against a runtime environment.\n\nValidates every symbolic reference in the brew against the environment.\nCollects all errors before returning. Returns either a `ResolvedBrewPlan`\nor an array of all resolution errors found."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/brew.ts",
      "sha256": "1808014702a023eb526a0173992a656f64a9e66c8ff42c7856b98204a6b849b7",
      "artifactSha256": "994f76a0039df47dc5643f109f594e3fb8635bba663f518965bad548019eef88",
      "url": "/reference/source/forge-ts/packages/forge-core/src/brew.ts.txt",
      "declarations": [
        {
          "name": "BrewId",
          "line": 39,
          "signature": "export type BrewId = string;",
          "documentation": "Opaque identifier for a brew definition.\n\nBrew IDs are freeform strings chosen by the author. They are used to\nreference brews in sub-brew composition and the brew registry."
        },
        {
          "name": "NodeId",
          "line": 52,
          "signature": "export type NodeId = string;",
          "documentation": "Opaque identifier for a node within a brew graph.\n\nNode IDs are unique within a single brew. They are freeform strings\nchosen by the brew author."
        },
        {
          "name": "BrewVersion",
          "line": 64,
          "signature": "export type BrewVersion = string;",
          "documentation": "Semantic version string for a brew definition.\n\nVersion strings are freeform (no semver parsing is enforced at this layer)."
        },
        {
          "name": "JoinMode",
          "line": 75,
          "signature": "export type JoinMode =\n  | { readonly type: 'await_all' }\n  | { readonly type: 'first_success' }\n  | { readonly type: 'first_n'; readonly n: number };",
          "documentation": "Strategy for joining results from parallel fork branches.\n\nDetermines when a `ParallelFork` node is considered complete."
        },
        {
          "name": "joinAwaitAll",
          "line": 81,
          "signature": "export function joinAwaitAll(): JoinMode;",
          "documentation": "Helper: await all parallel branches."
        },
        {
          "name": "joinFirstSuccess",
          "line": 86,
          "signature": "export function joinFirstSuccess(): JoinMode;",
          "documentation": "Helper: return on first successful branch."
        },
        {
          "name": "joinFirstN",
          "line": 91,
          "signature": "export function joinFirstN(n: number): JoinMode;",
          "documentation": "Helper: return when N branches complete."
        },
        {
          "name": "BrewNodeKind",
          "line": 107,
          "signature": "export type BrewNodeKind =\n  | {\n      readonly type: 'agent_step';\n      readonly provider: string;\n      readonly systemPrompt?: string;\n      readonly maxSteps: number;\n    }\n  | {\n      readonly type: 'tool_invocation';\n      readonly toolId: string;\n      readonly tier: ToolTier;\n    }\n  | {\n      readonly type: 'mcp_call';\n      readonly serverId: string;\n      readonly toolName: string;\n    }\n  | {\n      readonly type: 'web_operation';\n      readonly operation: string;\n    }\n  | {\n      readonly type: 'conditional_branch';\n      readonly conditionExpr: string;\n      readonly trueTarget: NodeId;\n      readonly falseTarget: NodeId;\n    }\n  | {\n      readonly type: 'parallel_fork';\n      readonly branches: readonly NodeId[];\n      readonly joinMode: JoinMode;\n    }\n  | {\n      readonly type: 'sub_brew_ref';\n      readonly brewId: BrewId;\n    }\n  | {\n      readonly type: 'human_checkpoint';\n      readonly prompt: string;\n      readonly timeoutMs?: number;\n    };",
          "documentation": "The execution semantics of a node in the brew graph.\n\nEach variant describes what kind of work a node performs. Uses discriminated\nunion on the `type` field matching Rust's `#[serde(tag = \"type\")]`.\n\nANVIL Spec SS7.1-7.2."
        },
        {
          "name": "BrewNode",
          "line": 155,
          "signature": "export interface BrewNode {\n  /** Stable identifier within this brew. */\n  readonly id: NodeId;\n  /** The node's execution semantics. */\n  readonly kind: BrewNodeKind;\n  /** Arbitrary key-value metadata for tooling and visualization. */\n  readonly metadata: Readonly<Record<string, string>>;\n}",
          "documentation": ""
        },
        {
          "name": "export const BrewEdgeKind = {",
          "line": 177,
          "signature": "export const BrewEdgeKind /* type inferred in source */;",
          "documentation": "The semantics of a directed edge in the brew graph.\n\n| Kind | Semantics |\n|------|-----------|\n| `data_flow` | Output of source feeds as input to target |\n| `control_flow` | Target executes after source completes |\n| `error_flow` | Target executes when source fails |"
        },
        {
          "name": "BrewEdgeKind",
          "line": 187,
          "signature": "export type BrewEdgeKind = (typeof BrewEdgeKind)[keyof typeof BrewEdgeKind];",
          "documentation": "Edge kind type."
        },
        {
          "name": "BrewEdge",
          "line": 192,
          "signature": "export interface BrewEdge {\n  /** Source node. */\n  readonly from: NodeId;\n  /** Target node. */\n  readonly to: NodeId;\n  /** Edge semantics. */\n  readonly kind: BrewEdgeKind;\n}",
          "documentation": "A directed edge in the brew graph connecting two nodes."
        },
        {
          "name": "Brew",
          "line": 215,
          "signature": "export interface Brew {\n  /** Unique identifier for this brew definition. */\n  readonly id: BrewId;\n  /** Semantic version of this brew definition. */\n  readonly version: BrewVersion;\n  /** The graph's nodes, keyed by stable node ID. */\n  readonly nodes: ReadonlyMap<NodeId, BrewNode>;\n  /** The graph's edges, sorted by (from, to, kind) for determinism. */\n  readonly edges: readonly BrewEdge[];\n  /** Designated entry nodes. Execution begins at these nodes. */\n  readonly entryNodes: readonly NodeId[];\n  /** Designated exit nodes. Execution terminates when all exit nodes complete. */\n  readonly exitNodes: readonly NodeId[];\n  /** Optional model topology for this brew. */\n  readonly topology?: ModelTopology;\n}",
          "documentation": "A composable execution graph of typed nodes and typed edges.\n\nA `Brew` is a mutable, dynamic structure carrying symbolic references\nthat have not yet been validated against a live environment. To execute\na Brew durably, it must first be frozen into a `ResolvedBrewPlan` via\n`resolve`.\n\nANVIL Spec SS7.2 -- Workflows."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/config.ts",
      "sha256": "26569e5ce37fddb2427911d10d8d8bfa292e6b034842575337741be1a4fab676",
      "artifactSha256": "eb3fc520c2397889a6f5eb12471a316b01e2af655e5fea6634dee27026e1551c",
      "url": "/reference/source/forge-ts/packages/forge-core/src/config.ts.txt",
      "declarations": [
        {
          "name": "GenerateOptions",
          "line": 29,
          "signature": "export interface GenerateOptions {\n  /** Sampling temperature (0.0 = deterministic, 2.0 = maximum randomness). */\n  readonly temperature?: number;\n  /** Maximum tokens to generate. */\n  readonly maxTokens?: number;\n  /** Top-p (nucleus) sampling threshold. */\n  readonly topP?: number;\n  /** Stop sequences -- generation stops when any of these are produced. */\n  readonly stopSequences?: readonly string[];\n  /** Frequency penalty (-2.0 to 2.0). */\n  readonly frequencyPenalty?: number;\n  /** Presence penalty (-2.0 to 2.0). */\n  readonly presencePenalty?: number;\n  /** Seed for deterministic generation (if supported by provider). */\n  readonly seed?: number;\n  /** JSON schema for structured output enforcement. */\n  readonly outputSchema?: JsonSchema;\n}",
          "documentation": "Options for text generation calls.\n\nControls model behavior during inference. All fields are optional;\nproviders use sensible defaults when not specified."
        },
        {
          "name": "defaultGenerateOptions",
          "line": 58,
          "signature": "export function defaultGenerateOptions(): GenerateOptions;",
          "documentation": "Creates a default GenerateOptions with no values set."
        },
        {
          "name": "EmbedOptions",
          "line": 70,
          "signature": "export interface EmbedOptions {\n  /** The embedding model to use (if different from default). */\n  readonly model?: string;\n  /** Dimensionality of the output embeddings (if configurable). */\n  readonly dimensions?: number;\n}",
          "documentation": "Options for embedding calls."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/error.ts",
      "sha256": "10f7068014710f8ba2036c3b1cee64434c29414611affb6346ce5049b42ef325",
      "artifactSha256": "1dfd2d2d120bc69e8b2d8a5a3d424021702d2e81fac1f396733e2744a89c6f1e",
      "url": "/reference/source/forge-ts/packages/forge-core/src/error.ts.txt",
      "declarations": [
        {
          "name": "export const ForgeErrorCode = {",
          "line": 21,
          "signature": "export const ForgeErrorCode /* type inferred in source */;",
          "documentation": "Forge SDK error types.\n\nAll errors in the Forge SDK are typed and actionable. Error messages include\nenough context for the developer to diagnose the issue without reading source code.\n\nEach Forge package defines its own error class. `ForgeError` is the top-level\naggregate used by `@forge-sdk/sdk`.\n\nANVIL Spec section 14.2 -- all errors are typed, loggable, and carry enough\ncontext for audit trail entries.\nError code enumeration for typed error matching.\n\nError codes enable programmatic handling without string matching on messages."
        },
        {
          "name": "ForgeErrorCode",
          "line": 44,
          "signature": "export type ForgeErrorCode = (typeof ForgeErrorCode)[keyof typeof ForgeErrorCode];",
          "documentation": "Error code type."
        },
        {
          "name": "ForgeError",
          "line": 63,
          "signature": "export class ForgeError extends Error {\n  public readonly code: ForgeErrorCode;\n  constructor(code: ForgeErrorCode, message: string);\n  static providerNotFound(providerRef: string): ForgeError;\n  static invalidProviderRef(input: string): ForgeError;\n  static schemaValidation(path: string, reason: string): ForgeError;\n  static invalidLifecycleTransition(from: string, to: string, reason: string): ForgeError;\n  static toolInvocationDenied(\n    toolName: string,\n    agentDid: string,\n    requiredCapability: string,\n    actId: string\n  ): ForgeError;\n  static toolExecutionFailed(toolName: string, reason: string): ForgeError;\n  static missingConfig(field: string, hint: string): ForgeError;\n  static stopConditionReached(reason: string, steps: number, tokens: number): ForgeError;\n  static unsupportedOperation(model: string, operation: string): ForgeError;\n  static providerUnavailable(providerRef: string, reason: string): ForgeError;\n  static providerAuthenticationFailed(providerRef: string, reason: string): ForgeError;\n  static capabilityUnsupported(providerRef: string, capability: string): ForgeError;\n  static providerNegotiationFailed(providerRef: string, reason: string): ForgeError;\n  static providerSessionExpired(providerRef: string, sessionId: string): ForgeError;\n  static providerInterruptUnsupported(providerRef: string): ForgeError;\n  static providerResumeUnsupported(providerRef: string): ForgeError;\n  static internal(message: string): ForgeError;\n}",
          "documentation": "Base error class for the Forge SDK.\n\nEvery variant includes actionable context: what failed, why, and what the\ndeveloper should check. No generic \"something went wrong\" messages."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/index.ts",
      "sha256": "cbdd0a4336c0c446a2132525b01d6d0681fca3439f7ad2f9169b646fc6630c35",
      "artifactSha256": "83dc30641dd9e5f0c85acac72252137d0c8332a0298195300a0d21e6f4161a9a",
      "url": "/reference/source/forge-ts/packages/forge-core/src/index.ts.txt",
      "declarations": [
        {
          "name": "export {",
          "line": 13,
          "signature": "export {\n  Role,\n  type TextPart,\n  type ImagePart,\n  type ToolCallPart,\n  type ToolResultPart,\n  type MessagePart,\n  type ModelMessage,\n  textPart,\n  imagePart,\n  toolCallPart,\n  toolResultPart,\n  isToolCall,\n  isToolResult,\n  createMessage,\n  createTextMessage,\n  getToolCalls,\n  getTextContent,\n} from './message.js';",
          "documentation": ""
        },
        {
          "name": "export { type LanguageModel } from './model.js';",
          "line": 34,
          "signature": "export { type LanguageModel } from './model.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 37,
          "signature": "export {\n  FinishReason,\n  type Usage,\n  type GenerateResult,\n  type TextDeltaChunk,\n  type ToolCallDeltaChunk,\n  type DoneChunk,\n  type StreamChunk,\n  zeroUsage,\n  addUsage,\n  isComplete,\n  isToolCallFinish,\n  textDeltaChunk,\n  doneChunk,\n  isTextDelta,\n  isDone,\n  chunkText,\n} from './output.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 57,
          "signature": "export {\n  ToolTier,\n  type ToolDefinition,\n  type ToolCall,\n  type ToolResult,\n  type ToolApproval,\n  ToolApprovalDecision,\n  ToolDefinitionBuilder,\n  buildToolDefinition,\n  requiresAuthorization,\n  approve,\n  deny,\n  modify,\n} from './tool.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 73,
          "signature": "export {\n  type GenerateOptions,\n  type EmbedOptions,\n  defaultGenerateOptions,\n} from './config.js';",
          "documentation": ""
        },
        {
          "name": "export { JsonSchema, SchemaType } from './schema.js';",
          "line": 80,
          "signature": "export { JsonSchema, SchemaType } from './schema.js';",
          "documentation": ""
        },
        {
          "name": "export { ForgeError, ForgeErrorCode } from './error.js';",
          "line": 83,
          "signature": "export { ForgeError, ForgeErrorCode } from './error.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 86,
          "signature": "export {\n  ForgeSpan,\n  ForgeEvent,\n  SpanStatus,\n  type SpanStatusType,\n  type SpanAttribute,\n  type TelemetryEmitter,\n  NoopEmitter,\n  RecordingEmitter,\n} from './telemetry.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 98,
          "signature": "export {\n  type AgentDid,\n  Timestamp,\n  createAgentDid,\n  trustedAgentDid,\n} from './types.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 106,
          "signature": "export {\n  ProviderRef,\n  ProviderRegistry,\n  type ProviderMetadata,\n  RuntimeCapability,\n  ProviderRuntimeCapabilities,\n  type ProviderNegotiationRequest,\n  type ProviderNegotiationResult,\n  ProviderSessionState,\n  type ProviderUsageSummary,\n  type ProviderSessionEvent,\n} from './provider.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 119,
          "signature": "export {\n  ProviderFamily,\n  AuthStrategy,\n  type ProviderPreset,\n  type ProviderEnvironment,\n  type ProviderExecutionRequest,\n  type ProviderInstallOptions,\n  approvedCodingProviderPresets,\n  approvedDirectProviderPresets,\n  approvedGatewayProviderPresets,\n  registerOfficialCodingProviders,\n  registerDefaultCoreDirectProviders,\n  registerOpenAiModel,\n  registerAnthropicModel,\n  registerGoogleModel,\n  registerXaiModel,\n  registerDeepSeekModel,\n  registerMistralModel,\n  registerCohereModel,\n  registerGroqModel,\n  registerMoonshotModel,\n  registerZaiModel,\n  registerMiniMaxModel,\n  registerOpenRouterModel,\n  registerBedrockModel,\n  registerVertexAiModel,\n  registerMicrosoftFoundryModel,\n  registerFoundryModel,\n  unavailableProviderResult,\n} from './provider-families.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 151,
          "signature": "export {\n  DEFAULT_ROLE,\n  CostPreference,\n  LatencyPreference,\n  type ModelSlot,\n  ModelTopology,\n  TopologyBuilder,\n} from './topology.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 161,
          "signature": "export {\n  TaskMode,\n  taskModeAsRoleName,\n  ExecutionTopology,\n  type RoutingContext,\n  defaultRoutingContext,\n  type ModelCapabilities,\n  defaultModelCapabilities,\n  type ResolvedRoute,\n  type ModelRouter,\n  DefaultModelRouter,\n} from './routing.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 175,
          "signature": "export {\n  type BrewId,\n  type NodeId,\n  type BrewVersion,\n  type JoinMode,\n  joinAwaitAll,\n  joinFirstSuccess,\n  joinFirstN,\n  type BrewNodeKind,\n  type BrewNode,\n  BrewEdgeKind,\n  type BrewEdge,\n  type Brew,\n} from './brew.js';",
          "documentation": ""
        },
        {
          "name": "export { BrewBuilder, topologicalSort } from './brew-builder.js';",
          "line": 191,
          "signature": "export { BrewBuilder, topologicalSort } from './brew-builder.js';",
          "documentation": ""
        },
        {
          "name": "export {",
          "line": 194,
          "signature": "export {\n  type BrewEnvironment,\n  BrewResolutionErrorKind,\n  type BrewResolutionError,\n  type ResolvedBrewPlan,\n  resolve,\n} from './brew-resolver.js';",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/message.ts",
      "sha256": "7d44394ef531c2ec2bec273b651b8b82a98919738cebe4f9f5b27c3dfa75304b",
      "artifactSha256": "a516c4552311cfbd56437fba1abcee8c76e18a2e6045d4af10fc5829a09c2426",
      "url": "/reference/source/forge-ts/packages/forge-core/src/message.ts.txt",
      "declarations": [
        {
          "name": "export const Role = {",
          "line": 21,
          "signature": "export const Role /* type inferred in source */;",
          "documentation": "Message types for LLM communication.\n\nMessages represent the conversation history between users, assistants, and tools.\nThey form the input and output of every inference call.\n\nANVIL Spec section 6.1 -- Cognitive Interface defines the message format that\nall ANVIL-compliant runtimes must support.\nThe role of a message participant.\n\nFour roles are defined: System (runtime instructions), User (human input),\nAssistant (model output), and Tool (tool execution results).\n\nANVIL Spec section 6.1"
        },
        {
          "name": "Role",
          "line": 33,
          "signature": "export type Role = (typeof Role)[keyof typeof Role];",
          "documentation": "The role of a message participant."
        },
        {
          "name": "TextPart",
          "line": 43,
          "signature": "export interface TextPart {\n  readonly type: 'text';\n  /** The text content. */\n  readonly text: string;\n}",
          "documentation": "A text content part within a message."
        },
        {
          "name": "ImagePart",
          "line": 57,
          "signature": "export interface ImagePart {\n  readonly type: 'image';\n  /** Base64-encoded image data, or a URL. */\n  readonly data: string;\n  /** MIME type (e.g., \"image/png\"). */\n  readonly mediaType: string;\n}",
          "documentation": "An image content part within a message."
        },
        {
          "name": "ToolCallPart",
          "line": 78,
          "signature": "export interface ToolCallPart {\n  readonly type: 'tool_call';\n  /** Unique identifier for this tool call. */\n  readonly id: string;\n  /** The tool name. */\n  readonly name: string;\n  /** JSON arguments for the tool. */\n  readonly arguments: unknown;\n}",
          "documentation": "A tool call request from the model."
        },
        {
          "name": "ToolResultPart",
          "line": 102,
          "signature": "export interface ToolResultPart {\n  readonly type: 'tool_result';\n  /** The tool call ID this result corresponds to. */\n  readonly toolCallId: string;\n  /** The tool name. */\n  readonly name: string;\n  /** The result content (typically stringified). */\n  readonly content: string;\n  /** Whether the tool execution resulted in an error. */\n  readonly isError: boolean;\n}",
          "documentation": "A result from a tool execution."
        },
        {
          "name": "MessagePart",
          "line": 120,
          "signature": "export type MessagePart = TextPart | ImagePart | ToolCallPart | ToolResultPart;",
          "documentation": "A single part of a message, supporting multi-modal content.\n\nMessages can contain text, images, tool calls, and tool results.\nThis allows a single assistant message to contain both text and tool calls."
        },
        {
          "name": "textPart",
          "line": 133,
          "signature": "export function textPart(text: string): TextPart;",
          "documentation": "Creates a text message part."
        },
        {
          "name": "imagePart",
          "line": 149,
          "signature": "export function imagePart(data: string, mediaType: string): ImagePart;",
          "documentation": "Creates an image message part."
        },
        {
          "name": "toolCallPart",
          "line": 166,
          "signature": "export function toolCallPart(id: string, name: string, args: unknown): ToolCallPart;",
          "documentation": "Creates a tool call message part."
        },
        {
          "name": "toolResultPart",
          "line": 184,
          "signature": "export function toolResultPart(\n  toolCallId: string,\n  name: string,\n  content: string,\n  isError: boolean\n): ToolResultPart;",
          "documentation": "Creates a tool result message part."
        },
        {
          "name": "isToolCall",
          "line": 199,
          "signature": "export function isToolCall(part: MessagePart): part is ToolCallPart;",
          "documentation": "Returns `true` if the part is a tool call."
        },
        {
          "name": "isToolResult",
          "line": 209,
          "signature": "export function isToolResult(part: MessagePart): part is ToolResultPart;",
          "documentation": "Returns `true` if the part is a tool result."
        },
        {
          "name": "ModelMessage",
          "line": 224,
          "signature": "export interface ModelMessage {\n  /** The message participant role. */\n  readonly role: Role;\n  /** One or more content parts. */\n  readonly parts: readonly MessagePart[];\n}",
          "documentation": "A message in a conversation, consisting of a role and content parts."
        },
        {
          "name": "createMessage",
          "line": 243,
          "signature": "export function createMessage(role: Role, parts: MessagePart[]): ModelMessage;",
          "documentation": "Creates a new model message with the given role and parts."
        },
        {
          "name": "createTextMessage",
          "line": 259,
          "signature": "export function createTextMessage(role: Role, text: string): ModelMessage;",
          "documentation": "Creates a simple text message."
        },
        {
          "name": "getToolCalls",
          "line": 274,
          "signature": "export function getToolCalls(message: ModelMessage): readonly ToolCallPart[];",
          "documentation": "Extracts all tool calls from a message."
        },
        {
          "name": "getTextContent",
          "line": 289,
          "signature": "export function getTextContent(message: ModelMessage): string;",
          "documentation": "Returns the concatenated text content of all text parts in a message."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/model.ts",
      "sha256": "6503238e749226b0e2f6c8cd9d2f85cfa286e5eaba656bb776d7fd3dcff75944",
      "artifactSha256": "e7be4bf34591032a159f897075870a5afc2393f94b5d014776f115ebb15d0893",
      "url": "/reference/source/forge-ts/packages/forge-core/src/model.ts.txt",
      "declarations": [
        {
          "name": "LanguageModel",
          "line": 46,
          "signature": "export interface LanguageModel {\n  /** The model identifier (e.g., \"gpt-4o\", \"claude-sonnet-4-5-20250929\"). */\n  readonly modelId: string;\n\n  /** The provider namespace (e.g., \"openai\", \"anthropic\"). */\n  readonly provider: string;\n\n  /** Whether this model supports tool calling. */\n  readonly supportsToolCalling: boolean;\n\n  /** Whether this model supports structured output (JSON mode). */\n  readonly supportsStructuredOutput: boolean;\n\n  /** Whether this model supports image input. */\n  readonly supportsImageInput: boolean;\n\n  /** Whether this model supports streaming. */\n  readonly supportsStreaming: boolean;\n\n  /**\n   * Generates a complete response from the model.\n   *\n   * @param messages - The conversation history.\n   * @param tools - Available tool definitions for this inference call.\n   * @param options - Generation options (temperature, max_tokens, etc.).\n   * @returns A GenerateResult containing the model's response, usage statistics,\n   *   and finish reason.\n   * @throws {ForgeError} If the provider call fails, times out, or returns\n   *   an invalid response.\n   */\n  generate(\n    messages: readonly ModelMessage[],\n    tools: readonly ToolDefinition[],\n    options: GenerateOptions\n  ): Promise<GenerateResult>;\n\n  /**\n   * Streams a response from the model as chunks.\n   *\n   * @param messages - The conversation history.\n   * @param tools - Available tool definitions for this inference call.\n   * @param options - Generation options.\n   * @returns An async generator of StreamChunk values. Callers should process\n   *   chunks as they arrive for real-time output.\n   * @throws {ForgeError} If the provider call fails.\n   */\n  stream(\n    messages: readonly ModelMessage[],\n    tools: readonly ToolDefinition[],\n    options: GenerateOptions\n  ): AsyncGenerator<StreamChunk>;\n}",
          "documentation": "The core language model interface.\n\nEvery LLM provider implements this interface. The interface is intentionally\nminimal: `generate` for synchronous (buffered) inference and `stream` for\nstreaming.\n\nANVIL Spec section 6.1: The cognitive interface defines:\n- `infer()` -- full response (maps to `generate`)\n- `infer_stream()` -- streaming response (maps to `stream`)\n- `model_info()` -- capabilities metadata (maps to `modelId`, `supports*`)"
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/official-providers.ts",
      "sha256": "914b558924e7f1ec25b661eed984a60e77f61e4b0cd3a9159b64194e97421902",
      "artifactSha256": "04ccb7da08cb55ef6e1d73d798798c4d96dd02407f89f9e336783ab7d78862cf",
      "url": "/reference/source/forge-ts/packages/forge-core/src/official-providers.ts.txt",
      "declarations": [
        {
          "name": "ProviderFamily",
          "line": 45,
          "signature": "export enum ProviderFamily {\n  CodingProduct = 'coding_product',\n  DirectModel = 'direct_model',\n  Gateway = 'gateway',\n}",
          "documentation": ""
        },
        {
          "name": "AuthStrategy",
          "line": 51,
          "signature": "export enum AuthStrategy {\n  ApiKey = 'api_key',\n  AccessToken = 'access_token',\n  BrowserAccountLogin = 'browser_account_login',\n  CloudCredentials = 'cloud_credentials',\n}",
          "documentation": ""
        },
        {
          "name": "ProviderPreset",
          "line": 58,
          "signature": "export interface ProviderPreset {\n  readonly namespace: string;\n  readonly family: ProviderFamily;\n  readonly authStrategy: AuthStrategy;\n}",
          "documentation": ""
        },
        {
          "name": "approvedCodingProviderPresets",
          "line": 254,
          "signature": "export function approvedCodingProviderPresets(): readonly ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "approvedDirectProviderPresets",
          "line": 284,
          "signature": "export function approvedDirectProviderPresets(): readonly ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "approvedGatewayProviderPresets",
          "line": 304,
          "signature": "export function approvedGatewayProviderPresets(): readonly ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "registerOfficialCodingProviders",
          "line": 334,
          "signature": "export function registerOfficialCodingProviders(registry: ProviderRegistry): void;",
          "documentation": ""
        },
        {
          "name": "registerDefaultCoreDirectProviders",
          "line": 386,
          "signature": "export function registerDefaultCoreDirectProviders(registry: ProviderRegistry): readonly string[];",
          "documentation": ""
        },
        {
          "name": "registerOpenAiModel",
          "line": 416,
          "signature": "export function registerOpenAiModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerAnthropicModel",
          "line": 427,
          "signature": "export function registerAnthropicModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerGoogleModel",
          "line": 433,
          "signature": "export function registerGoogleModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerXAiModel",
          "line": 439,
          "signature": "export function registerXAiModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerDeepseekModel",
          "line": 450,
          "signature": "export function registerDeepseekModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerMistralModel",
          "line": 461,
          "signature": "export function registerMistralModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerCohereModel",
          "line": 472,
          "signature": "export function registerCohereModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerGroqModel",
          "line": 483,
          "signature": "export function registerGroqModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerMoonshotModel",
          "line": 494,
          "signature": "export function registerMoonshotModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerZaiModel",
          "line": 505,
          "signature": "export function registerZaiModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerMiniMaxModel",
          "line": 516,
          "signature": "export function registerMiniMaxModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerOpenRouterModel",
          "line": 527,
          "signature": "export function registerOpenRouterModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerBedrockModel",
          "line": 538,
          "signature": "export function registerBedrockModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerVertexAiModel",
          "line": 558,
          "signature": "export function registerVertexAiModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        },
        {
          "name": "registerMicrosoftFoundryModel",
          "line": 579,
          "signature": "export function registerMicrosoftFoundryModel(\n  registry: ProviderRegistry,\n  modelId: string\n): string;",
          "documentation": ""
        },
        {
          "name": "registerFoundryModel",
          "line": 604,
          "signature": "export function registerFoundryModel(registry: ProviderRegistry, modelId: string): string;",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/output.ts",
      "sha256": "b06ca74110c0dcddd0c0737a1543dc77d4957c82cffa2e3ea9d0de63e9f33178",
      "artifactSha256": "d7297767271a0aeaa60c455ae2029f2b6093a3aa7b7af52db43067b38d5242de",
      "url": "/reference/source/forge-ts/packages/forge-core/src/output.ts.txt",
      "declarations": [
        {
          "name": "export const FinishReason = {",
          "line": 22,
          "signature": "export const FinishReason /* type inferred in source */;",
          "documentation": "The reason generation stopped."
        },
        {
          "name": "FinishReason",
          "line": 38,
          "signature": "export type FinishReason = (typeof FinishReason)[keyof typeof FinishReason];",
          "documentation": "The reason generation stopped."
        },
        {
          "name": "isComplete",
          "line": 46,
          "signature": "export function isComplete(reason: FinishReason): boolean;",
          "documentation": "Returns `true` if generation completed normally (Stop or StopSequence)."
        },
        {
          "name": "isToolCallFinish",
          "line": 56,
          "signature": "export function isToolCallFinish(reason: FinishReason): boolean;",
          "documentation": "Returns `true` if the model wants to call tools."
        },
        {
          "name": "Usage",
          "line": 68,
          "signature": "export interface Usage {\n  /** Tokens consumed by the input prompt. */\n  readonly promptTokens: number;\n  /** Tokens generated in the response. */\n  readonly completionTokens: number;\n  /** Total tokens (prompt + completion). */\n  readonly totalTokens: number;\n}",
          "documentation": "Token usage statistics from an inference call."
        },
        {
          "name": "zeroUsage",
          "line": 82,
          "signature": "export function zeroUsage(): Usage;",
          "documentation": "Creates a zero-usage instance."
        },
        {
          "name": "addUsage",
          "line": 98,
          "signature": "export function addUsage(a: Usage, b: Usage): Usage;",
          "documentation": "Adds two usage statistics together."
        },
        {
          "name": "GenerateResult",
          "line": 121,
          "signature": "export interface GenerateResult {\n  /** The model's response message. */\n  readonly message: ModelMessage;\n  /** Why generation stopped. */\n  readonly finishReason: FinishReason;\n  /** Token usage statistics. */\n  readonly usage: Usage;\n}",
          "documentation": "The result of a text generation call.\n\nContains the model's response message, the reason generation stopped,\nand token usage statistics."
        },
        {
          "name": "TextDeltaChunk",
          "line": 133,
          "signature": "export interface TextDeltaChunk {\n  readonly type: 'text_delta';\n  /** The text fragment. */\n  readonly text: string;\n}",
          "documentation": "A text content delta within a stream."
        },
        {
          "name": "ToolCallDeltaChunk",
          "line": 142,
          "signature": "export interface ToolCallDeltaChunk {\n  readonly type: 'tool_call_delta';\n  /** The tool call index (for parallel tool calls). */\n  readonly index: number;\n  /** The tool call ID (may be empty until fully received). */\n  readonly id: string;\n  /** The tool name (may be empty until fully received). */\n  readonly name: string;\n  /** Partial JSON arguments. */\n  readonly argumentsDelta: string;\n}",
          "documentation": "A tool call delta (streaming tool arguments)."
        },
        {
          "name": "DoneChunk",
          "line": 157,
          "signature": "export interface DoneChunk {\n  readonly type: 'done';\n  /** Why generation stopped. */\n  readonly finishReason: FinishReason;\n  /** Final usage statistics. */\n  readonly usage: Usage;\n}",
          "documentation": "The stream has finished."
        },
        {
          "name": "StreamChunk",
          "line": 171,
          "signature": "export type StreamChunk = TextDeltaChunk | ToolCallDeltaChunk | DoneChunk;",
          "documentation": "A chunk from a streaming response.\n\nDuring streaming, the model produces a series of chunks that together\nform the complete response."
        },
        {
          "name": "textDeltaChunk",
          "line": 179,
          "signature": "export function textDeltaChunk(text: string): TextDeltaChunk;",
          "documentation": "Creates a text delta chunk."
        },
        {
          "name": "doneChunk",
          "line": 190,
          "signature": "export function doneChunk(finishReason: FinishReason, usage: Usage): DoneChunk;",
          "documentation": "Creates a done chunk."
        },
        {
          "name": "isTextDelta",
          "line": 200,
          "signature": "export function isTextDelta(chunk: StreamChunk): chunk is TextDeltaChunk;",
          "documentation": "Returns `true` if this is a text delta chunk."
        },
        {
          "name": "isDone",
          "line": 210,
          "signature": "export function isDone(chunk: StreamChunk): chunk is DoneChunk;",
          "documentation": "Returns `true` if this is the final chunk."
        },
        {
          "name": "chunkText",
          "line": 220,
          "signature": "export function chunkText(chunk: StreamChunk): string | undefined;",
          "documentation": "Extracts the text from a text delta, if applicable."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/provider-families.ts",
      "sha256": "342c0dfc4a8cb07359424f9c0837d32e337b71a11e29d678e57725e41270d13e",
      "artifactSha256": "bbbe3fdb55f0a3d6ea3a7ac7f38cb59cd94300a19777063fbd727424dc0b27f4",
      "url": "/reference/source/forge-ts/packages/forge-core/src/provider-families.ts.txt",
      "declarations": [
        {
          "name": "export const ProviderFamily = {",
          "line": 50,
          "signature": "export const ProviderFamily /* type inferred in source */;",
          "documentation": ""
        },
        {
          "name": "ProviderFamily",
          "line": 56,
          "signature": "export type ProviderFamily = (typeof ProviderFamily)[keyof typeof ProviderFamily];",
          "documentation": ""
        },
        {
          "name": "export const AuthStrategy = {",
          "line": 58,
          "signature": "export const AuthStrategy /* type inferred in source */;",
          "documentation": ""
        },
        {
          "name": "AuthStrategy",
          "line": 65,
          "signature": "export type AuthStrategy = (typeof AuthStrategy)[keyof typeof AuthStrategy];",
          "documentation": ""
        },
        {
          "name": "ProviderPreset",
          "line": 67,
          "signature": "export interface ProviderPreset {\n  readonly namespace: string;\n  readonly family: ProviderFamily;\n  readonly authStrategy: AuthStrategy;\n}",
          "documentation": ""
        },
        {
          "name": "ProviderEnvironment",
          "line": 73,
          "signature": "export type ProviderEnvironment = Readonly<Record<string, string | undefined>>;",
          "documentation": ""
        },
        {
          "name": "ProviderExecutionRequest",
          "line": 75,
          "signature": "export interface ProviderExecutionRequest {\n  readonly providerRef: string;\n  readonly namespace: string;\n  readonly modelId: string;\n  readonly family: ProviderFamily;\n  readonly authStrategy: AuthStrategy;\n  readonly credential: string;\n  readonly baseUrl?: string;\n  readonly messages: readonly ModelMessage[];\n  readonly tools: readonly ToolDefinition[];\n  readonly options: GenerateOptions;\n}",
          "documentation": ""
        },
        {
          "name": "ProviderInstallOptions",
          "line": 88,
          "signature": "export interface ProviderInstallOptions {\n  readonly env?: ProviderEnvironment;\n  readonly generate?: (\n    request: ProviderExecutionRequest\n  ) => Promise<GenerateResult>;\n  readonly stream?: (\n    request: ProviderExecutionRequest\n  ) => AsyncGenerator<StreamChunk>;\n}",
          "documentation": ""
        },
        {
          "name": "approvedCodingProviderPresets",
          "line": 115,
          "signature": "export function approvedCodingProviderPresets(): ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "approvedDirectProviderPresets",
          "line": 145,
          "signature": "export function approvedDirectProviderPresets(): ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "approvedGatewayProviderPresets",
          "line": 165,
          "signature": "export function approvedGatewayProviderPresets(): ProviderPreset[];",
          "documentation": ""
        },
        {
          "name": "registerOfficialCodingProviders",
          "line": 195,
          "signature": "export function registerOfficialCodingProviders(\n  registry: ProviderRegistry,\n  options: ProviderInstallOptions = {}\n): void;",
          "documentation": ""
        },
        {
          "name": "registerDefaultCoreDirectProviders",
          "line": 322,
          "signature": "export function registerDefaultCoreDirectProviders(\n  registry: ProviderRegistry,\n  options: ProviderInstallOptions = {}\n): string[];",
          "documentation": ""
        },
        {
          "name": "registerOpenAiModel",
          "line": 333,
          "signature": "export function registerOpenAiModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerAnthropicModel",
          "line": 350,
          "signature": "export function registerAnthropicModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerGoogleModel",
          "line": 371,
          "signature": "export function registerGoogleModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerXaiModel",
          "line": 392,
          "signature": "export function registerXaiModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerDeepSeekModel",
          "line": 409,
          "signature": "export function registerDeepSeekModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerMistralModel",
          "line": 426,
          "signature": "export function registerMistralModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerCohereModel",
          "line": 443,
          "signature": "export function registerCohereModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerGroqModel",
          "line": 460,
          "signature": "export function registerGroqModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerMoonshotModel",
          "line": 477,
          "signature": "export function registerMoonshotModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerZaiModel",
          "line": 494,
          "signature": "export function registerZaiModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerMiniMaxModel",
          "line": 511,
          "signature": "export function registerMiniMaxModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerOpenRouterModel",
          "line": 528,
          "signature": "export function registerOpenRouterModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerBedrockModel",
          "line": 545,
          "signature": "export function registerBedrockModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerVertexAiModel",
          "line": 566,
          "signature": "export function registerVertexAiModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerMicrosoftFoundryModel",
          "line": 587,
          "signature": "export function registerMicrosoftFoundryModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "registerFoundryModel",
          "line": 608,
          "signature": "export function registerFoundryModel(\n  registry: ProviderRegistry,\n  modelId: string,\n  options: ProviderInstallOptions = {}\n): string;",
          "documentation": ""
        },
        {
          "name": "unavailableProviderResult",
          "line": 1116,
          "signature": "export function unavailableProviderResult(providerRef: string): GenerateResult;",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/provider.ts",
      "sha256": "23f7404f594990af9783d145f03d01eb785c909bdc91913739bd6c65f32d5fe1",
      "artifactSha256": "833e138d48e121144c1b9a885ca8ea89716dab81c2cad3793cf3079de5a38c0f",
      "url": "/reference/source/forge-ts/packages/forge-core/src/provider.ts.txt",
      "declarations": [
        {
          "name": "ProviderRef",
          "line": 27,
          "signature": "export class ProviderRef {\n  readonly namespace: string;\n  readonly model: string;\n  readonly full: string;\n  static parse(input: string): ProviderRef;\n  toString(): string;\n  toJSON(): { namespace: string; model: string; full: string };\n}",
          "documentation": "A parsed provider reference in `namespace:model` format."
        },
        {
          "name": "ProviderMetadata",
          "line": 88,
          "signature": "export interface ProviderMetadata {\n  /** Human-readable name. */\n  readonly name: string;\n  /** Provider namespace (e.g., \"openai\"). */\n  readonly namespace: string;\n  /** Whether the provider supports tool calling. */\n  readonly supportsToolCalling: boolean;\n  /** Whether the provider supports structured output. */\n  readonly supportsStructuredOutput: boolean;\n  /** Whether the provider supports streaming. */\n  readonly supportsStreaming: boolean;\n  /** Whether the provider supports image input. */\n  readonly supportsImageInput: boolean;\n  /** Provider-session runtime capabilities for coding-style integrations. */\n  readonly runtimeCapabilities: ProviderRuntimeCapabilities;\n}",
          "documentation": "Metadata about a registered provider."
        },
        {
          "name": "RuntimeCapability",
          "line": 108,
          "signature": "export enum RuntimeCapability {\n  ToolCalls = 'tool_calls',\n  DelegatedAgents = 'delegated_agents',\n  TerminalSession = 'terminal_session',\n  StructuredPatch = 'structured_patch',\n  Attachments = 'attachments',\n  Interrupts = 'interrupts',\n  ResumeSession = 'resume_session',\n  ApprovalCheckpoints = 'approval_checkpoints',\n  UsageStreaming = 'usage_streaming',\n  TranscriptExport = 'transcript_export',\n}",
          "documentation": "Advanced provider runtime capabilities beyond the mandatory baseline."
        },
        {
          "name": "ProviderRuntimeCapabilities",
          "line": 124,
          "signature": "export class ProviderRuntimeCapabilities {\n  readonly baselineContract: boolean;\n  readonly capabilities: readonly RuntimeCapability[];\n  constructor(\n    baselineContract = false,\n    capabilities: readonly RuntimeCapability[] = []\n  );\n  static baseline(): ProviderRuntimeCapabilities;\n  withCapability(capability: RuntimeCapability): ProviderRuntimeCapabilities;\n  supports(capability: RuntimeCapability): boolean;\n}",
          "documentation": "Runtime capability descriptor for a provider."
        },
        {
          "name": "ProviderNegotiationRequest",
          "line": 152,
          "signature": "export interface ProviderNegotiationRequest {\n  readonly providerRef: string;\n  readonly requireBaselineContract: boolean;\n  readonly requiredCapabilities: readonly RuntimeCapability[];\n}",
          "documentation": ""
        },
        {
          "name": "ProviderNegotiationResult",
          "line": 158,
          "signature": "export interface ProviderNegotiationResult {\n  readonly providerRef: string;\n  readonly baselineContract: boolean;\n  readonly negotiatedCapabilities: readonly RuntimeCapability[];\n}",
          "documentation": ""
        },
        {
          "name": "ProviderSessionState",
          "line": 164,
          "signature": "export enum ProviderSessionState {\n  Created = 'created',\n  Ready = 'ready',\n  Running = 'running',\n  Interrupted = 'interrupted',\n  Completed = 'completed',\n  Cancelled = 'cancelled',\n  Failed = 'failed',\n  Expired = 'expired',\n  Closed = 'closed',\n}",
          "documentation": ""
        },
        {
          "name": "ProviderUsageSummary",
          "line": 176,
          "signature": "export interface ProviderUsageSummary {\n  readonly inputTokens: number;\n  readonly outputTokens: number;\n  readonly totalTokens: number;\n}",
          "documentation": ""
        },
        {
          "name": "ProviderSessionEvent",
          "line": 182,
          "signature": "export interface ProviderSessionEvent {\n  readonly sessionId: string;\n  readonly state: ProviderSessionState;\n  readonly message?: string;\n  readonly usage?: ProviderUsageSummary;\n}",
          "documentation": ""
        },
        {
          "name": "ProviderRegistry",
          "line": 203,
          "signature": "export class ProviderRegistry {\n  register(providerRef: string, model: LanguageModel): void;\n  registerWithRuntime(\n    providerRef: string,\n    model: LanguageModel,\n    runtimeCapabilities: ProviderRuntimeCapabilities\n  ): void;\n  get(providerRef: string): LanguageModel | undefined;\n  require(providerRef: string): LanguageModel;\n  metadata(providerRef: string): ProviderMetadata | undefined;\n  negotiate(request: ProviderNegotiationRequest): ProviderNegotiationResult;\n  list(): string[];\n  get size(): number;\n  get isEmpty(): boolean;\n}",
          "documentation": "Registry of language model providers.\n\nMaps ProviderRef strings to concrete LanguageModel implementations.\nAgents look up models through this registry rather than constructing\nprovider instances directly."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/routing.ts",
      "sha256": "c38e318ccfffcb016d8bad82b59dd5ec5b34bf990035e529ccde98465d270530",
      "artifactSha256": "6843dc36b231ece3de1a56830aa9364e2a00e0605103847d76f7df9dbdab7ed9",
      "url": "/reference/source/forge-ts/packages/forge-core/src/routing.ts.txt",
      "declarations": [
        {
          "name": "export const TaskMode = {",
          "line": 28,
          "signature": "export const TaskMode /* type inferred in source */;",
          "documentation": "The phase of work a model call serves.\n\nTask modes represent the different phases of agent work. The model\nrouter uses the task mode to select an appropriate model slot."
        },
        {
          "name": "TaskMode",
          "line": 40,
          "signature": "export type TaskMode = (typeof TaskMode)[keyof typeof TaskMode];",
          "documentation": "Task mode type."
        },
        {
          "name": "taskModeAsRoleName",
          "line": 50,
          "signature": "export function taskModeAsRoleName(mode: TaskMode): string;",
          "documentation": "Returns the role name string corresponding to a task mode.\n\nUsed by the router to match task modes to slot role names."
        },
        {
          "name": "export const ExecutionTopology = {",
          "line": 60,
          "signature": "export const ExecutionTopology /* type inferred in source */;",
          "documentation": "How the current model call fits into a larger execution pattern.\n\nExecution topology describes the concurrency pattern surrounding the\ncurrent inference call. This can guide model selection."
        },
        {
          "name": "ExecutionTopology",
          "line": 72,
          "signature": "export type ExecutionTopology = (typeof ExecutionTopology)[keyof typeof ExecutionTopology];",
          "documentation": "Execution topology type."
        },
        {
          "name": "RoutingContext",
          "line": 80,
          "signature": "export interface RoutingContext {\n  /** The domain classification for this call (e.g., \"code\", \"math\"). */\n  readonly domain?: string;\n  /** The task mode for this call. */\n  readonly taskMode?: TaskMode;\n  /** The execution topology for this call. */\n  readonly executionTopology?: ExecutionTopology;\n  /** Tool capabilities required for the model selected by this route. */\n  readonly toolRequirements?: readonly string[];\n  /** Explicit role override. When set, the router returns that slot directly. */\n  readonly roleOverride?: string;\n}",
          "documentation": ""
        },
        {
          "name": "defaultRoutingContext",
          "line": 96,
          "signature": "export function defaultRoutingContext(): RoutingContext;",
          "documentation": "Default routing context with no fields set."
        },
        {
          "name": "ModelCapabilities",
          "line": 105,
          "signature": "export interface ModelCapabilities {\n  readonly textGeneration: boolean;\n  readonly toolCalling: boolean;\n}",
          "documentation": "Model capabilities of a resolved route.\n\nDefault values assume basic text generation and tool calling."
        },
        {
          "name": "defaultModelCapabilities",
          "line": 113,
          "signature": "export function defaultModelCapabilities(): ModelCapabilities;",
          "documentation": "Default model capabilities."
        },
        {
          "name": "ResolvedRoute",
          "line": 122,
          "signature": "export interface ResolvedRoute {\n  /** The role name of the selected slot. */\n  readonly slotRole: string;\n  /** The specific `ProviderRef` to use (primary or one of the fallbacks). */\n  readonly provider: ProviderRef;\n  /** The model capabilities of the selected provider. */\n  readonly modelCapabilities: ModelCapabilities;\n  /** Whether a fallback model was selected instead of the primary. */\n  readonly fallbackUsed: boolean;\n}",
          "documentation": ""
        },
        {
          "name": "ModelRouter",
          "line": 141,
          "signature": "export interface ModelRouter {\n  /** Returns the name of this routing strategy (for telemetry and debugging). */\n  name(): string;\n\n  /**\n   * Selects a slot from the topology.\n   *\n   * @param context - The routing context describing the current task.\n   * @param topology - The model topology to select from.\n   * @returns A `ResolvedRoute` identifying the selected slot and provider.\n   * @throws {ForgeError} If routing fails.\n   */\n  route(context: RoutingContext, topology: ModelTopology): ResolvedRoute;\n}",
          "documentation": "Selects a model slot from a topology given a routing context.\n\nImplementations range from trivial (always return default) to\nsophisticated (heuristic classification, budget-aware optimization).\n\nANVIL Spec SS6.2 -- Provider Abstraction."
        },
        {
          "name": "DefaultModelRouter",
          "line": 176,
          "signature": "export class DefaultModelRouter implements ModelRouter {\n  name(): string;\n  route(context: RoutingContext, topology: ModelTopology): ResolvedRoute;\n}",
          "documentation": "The default model router shipped with Forge.\n\nImplements a cascading match strategy:\n\n1. If `context.roleOverride` is set, return that slot directly.\n2. If the topology has a slot whose role matches `context.domain`, return it.\n3. If the topology has a slot whose role matches `context.taskMode`, return it.\n4. Otherwise, return the \"default\" slot."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/schema.ts",
      "sha256": "e8587842c3c0f99372a44df698ad9b07d1cd2185b457a8d52cea0144b0ec2c24",
      "artifactSha256": "d2285647a4b8f9a57f996b1e2b88fcc6f0233ce509865a35f784ef568dee3b54",
      "url": "/reference/source/forge-ts/packages/forge-core/src/schema.ts.txt",
      "declarations": [
        {
          "name": "export const SchemaType = {",
          "line": 18,
          "signature": "export const SchemaType /* type inferred in source */;",
          "documentation": "The primitive JSON Schema types."
        },
        {
          "name": "SchemaType",
          "line": 29,
          "signature": "export type SchemaType = (typeof SchemaType)[keyof typeof SchemaType];",
          "documentation": "The primitive JSON Schema types."
        },
        {
          "name": "JsonSchema",
          "line": 45,
          "signature": "export class JsonSchema {\n  readonly type: SchemaType;\n  descriptionText?: string;\n  propertiesMap?: Map<string, JsonSchema>;\n  requiredFields?: string[];\n  additionalPropertiesAllowed?: boolean;\n  itemsSchema?: JsonSchema;\n  enumValuesList?: unknown[];\n  minimumValue?: number;\n  maximumValue?: number;\n  minLengthValue?: number;\n  maxLengthValue?: number;\n  static string(): JsonSchema;\n  static number(): JsonSchema;\n  static integer(): JsonSchema;\n  static boolean(): JsonSchema;\n  static array(): JsonSchema;\n  static object(): JsonSchema;\n  static null(): JsonSchema;\n  description(desc: string): this;\n  property(name: string, schema: JsonSchema): this;\n  required(name: string): this;\n  items(schema: JsonSchema): this;\n  enumValues(values: unknown[]): this;\n  minimum(min: number): this;\n  maximum(max: number): this;\n  minLength(len: number): this;\n  maxLength(len: number): this;\n  additionalProperties(allowed: boolean): this;\n  validate(value: unknown): void;\n  toJSON(): Record<string, unknown>;\n}",
          "documentation": "A JSON Schema definition for tool parameters and structured output."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/telemetry.ts",
      "sha256": "730d3f938c8e5d8d2a23c3ea536d3eccde6913c1c30fed24b2a955b77327b976",
      "artifactSha256": "b7ed7d68e8160adaff270613978c7c4a2563a4def263663217d8e4852696e3f4",
      "url": "/reference/source/forge-ts/packages/forge-core/src/telemetry.ts.txt",
      "declarations": [
        {
          "name": "export const SpanStatus = {",
          "line": 19,
          "signature": "export const SpanStatus /* type inferred in source */;",
          "documentation": "Span status following OpenTelemetry conventions."
        },
        {
          "name": "SpanStatusType",
          "line": 29,
          "signature": "export type SpanStatusType = (typeof SpanStatus)[keyof typeof SpanStatus];",
          "documentation": "Span status type."
        },
        {
          "name": "SpanAttribute",
          "line": 32,
          "signature": "export type SpanAttribute = string | number | boolean;",
          "documentation": "An attribute value for spans and events."
        },
        {
          "name": "ForgeSpan",
          "line": 47,
          "signature": "export class ForgeSpan {\n  readonly name: string;\n  readonly startTime: Timestamp;\n  endTime: Timestamp | null;\n  readonly attributes: Map<string, SpanAttribute>;\n  status: SpanStatusType;\n  statusMessage: string | null;\n  parentId: string | null;\n  readonly spanId: string;\n  constructor(name: string);\n  setAttribute(key: string, value: SpanAttribute): void;\n  end(): void;\n  endWithError(message: string): void;\n  withParent(parentId: string): this;\n}",
          "documentation": "A telemetry span representing a unit of work.\n\nSpans follow OpenTelemetry semantics: they have a name, start/end times,\nattributes, and optional parent span ID for distributed tracing."
        },
        {
          "name": "ForgeEvent",
          "line": 128,
          "signature": "export class ForgeEvent {\n  readonly name: string;\n  readonly timestamp: Timestamp;\n  readonly attributes: Map<string, SpanAttribute>;\n  constructor(name: string);\n  setAttribute(key: string, value: SpanAttribute): void;\n}",
          "documentation": "A telemetry event (a point-in-time annotation within a span).\n\nEvents record significant moments: tool invocations, lifecycle transitions,\nerror occurrences, etc."
        },
        {
          "name": "TelemetryEmitter",
          "line": 171,
          "signature": "export interface TelemetryEmitter {\n  /** Emits a completed span. */\n  emitSpan(span: ForgeSpan): void;\n  /** Emits an event. */\n  emitEvent(event: ForgeEvent): void;\n}",
          "documentation": "Interface for emitting telemetry data.\n\nImplementations can send spans and events to OpenTelemetry collectors,\nlog files, or in-memory buffers for testing."
        },
        {
          "name": "NoopEmitter",
          "line": 183,
          "signature": "export class NoopEmitter implements TelemetryEmitter {\n  emitSpan(_span: ForgeSpan): void;\n  emitEvent(_event: ForgeEvent): void;\n}",
          "documentation": "A no-op telemetry emitter that discards all data.\n\nUsed as the default when no telemetry collector is configured."
        },
        {
          "name": "RecordingEmitter",
          "line": 204,
          "signature": "export class RecordingEmitter implements TelemetryEmitter {\n  readonly spans: ForgeSpan[];\n  readonly events: ForgeEvent[];\n  emitSpan(span: ForgeSpan): void;\n  emitEvent(event: ForgeEvent): void;\n}",
          "documentation": "A recording telemetry emitter that captures spans and events in memory.\n\nUseful for testing and debugging."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/tool.ts",
      "sha256": "d3eaca580e16e96ef69258de0045ed2a06de6f2afe19fe0eb8d5b24c67af338d",
      "artifactSha256": "927af17399215db8d5727cab1a6d910098ae53425b0b1d6a71bab1affe3d2cf2",
      "url": "/reference/source/forge-ts/packages/forge-core/src/tool.ts.txt",
      "declarations": [
        {
          "name": "export const ToolTier = {",
          "line": 29,
          "signature": "export const ToolTier /* type inferred in source */;",
          "documentation": "Tool tier classification per ANVIL Spec section 8.1.\n\nThe three tiers determine where a tool executes, how it is discovered,\nand what authorization is required.\n\n| Tier | Name | Location | Auth |\n|------|------|----------|------|\n| 1 | Platform | Inside sandbox | Always available |\n| 2 | External | Outside sandbox | Arsenal ACT required |\n| 3 | Embedded | Inside WASM module | Module-scoped |\n\nNote: `Host` is retained as an alias for backward compatibility. New code\nshould use `External`."
        },
        {
          "name": "ToolTier",
          "line": 49,
          "signature": "export type ToolTier = (typeof ToolTier)[keyof typeof ToolTier];",
          "documentation": "Tool tier classification."
        },
        {
          "name": "requiresAuthorization",
          "line": 69,
          "signature": "export function requiresAuthorization(tier: ToolTier): boolean;",
          "documentation": "Returns `true` if this tier requires Arsenal ACT authorization.\n\nOnly Tier 2 (External/Host) tools require ACT checks. Platform tools are\nalways available, and embedded tools are sandbox-confined.\n\nAccepts both `'external'` and `'host'` for backward compatibility."
        },
        {
          "name": "ToolDefinition",
          "line": 91,
          "signature": "export interface ToolDefinition {\n  /** Unique tool name. */\n  readonly name: string;\n  /** Human-readable description shown to the model. */\n  readonly description: string;\n  /** JSON Schema defining the tool's parameters. */\n  readonly parameters: JsonSchema;\n  /** Tier classification (Platform/External/Embedded). */\n  readonly tier: ToolTier;\n}",
          "documentation": "Definition of a tool that an agent can invoke.\n\nANVIL Spec section 8.2: Every tool has a unique name, human-readable\ndescription, a JSON Schema for its parameters, and a tier classification."
        },
        {
          "name": "buildToolDefinition",
          "line": 117,
          "signature": "export function buildToolDefinition(name: string): ToolDefinitionBuilder;",
          "documentation": "Creates a ToolDefinition using a builder pattern."
        },
        {
          "name": "ToolDefinitionBuilder",
          "line": 126,
          "signature": "export class ToolDefinitionBuilder {\n  constructor(name: string);\n  description(desc: string): this;\n  parameters(schema: JsonSchema): this;\n  tier(tier: ToolTier): this;\n  build(): ToolDefinition;\n}",
          "documentation": "Builder for ToolDefinition.\n\nProvides a fluent API for constructing tool definitions step by step."
        },
        {
          "name": "ToolCall",
          "line": 192,
          "signature": "export interface ToolCall {\n  /** Unique identifier for this call (used to match with results). */\n  readonly id: string;\n  /** The tool name being invoked. */\n  readonly name: string;\n  /** JSON arguments for the tool. */\n  readonly arguments: unknown;\n}",
          "documentation": "A tool invocation request from the model.\n\nGenerated by the model during inference when it decides to call a tool."
        },
        {
          "name": "ToolResult",
          "line": 206,
          "signature": "export interface ToolResult {\n  /** The tool call ID this result corresponds to. */\n  readonly toolCallId: string;\n  /** The tool name. */\n  readonly name: string;\n  /** The result content (stringified). */\n  readonly content: string;\n  /** Whether the tool execution resulted in an error. */\n  readonly isError: boolean;\n}",
          "documentation": "The result of a tool execution.\n\nReturned to the model as context for the next inference step."
        },
        {
          "name": "export const ToolApprovalDecision = {",
          "line": 226,
          "signature": "export const ToolApprovalDecision /* type inferred in source */;",
          "documentation": "Tool approval decision.\n\nBefore executing a tool, the approval handler decides whether to proceed.\nThis enables human-in-the-loop and policy-based tool gating.\n\nANVIL Spec section 8.6: The approval step is mandatory in the tool\nexecution lifecycle."
        },
        {
          "name": "ToolApprovalDecision",
          "line": 236,
          "signature": "export type ToolApprovalDecision =\n  (typeof ToolApprovalDecision)[keyof typeof ToolApprovalDecision];",
          "documentation": "Tool approval decision type."
        },
        {
          "name": "ToolApproval",
          "line": 245,
          "signature": "export type ToolApproval =\n  | { readonly decision: 'approve' }\n  | { readonly decision: 'deny'; readonly reason: string }\n  | { readonly decision: 'modify'; readonly arguments: unknown };",
          "documentation": "A tool approval result.\n\nReturned by the approval handler to indicate whether a tool call should\nproceed, be denied, or be modified."
        },
        {
          "name": "approve",
          "line": 255,
          "signature": "export function approve(): ToolApproval;",
          "documentation": "Creates an \"approve\" approval."
        },
        {
          "name": "deny",
          "line": 265,
          "signature": "export function deny(reason: string): ToolApproval;",
          "documentation": "Creates a \"deny\" approval."
        },
        {
          "name": "modify",
          "line": 275,
          "signature": "export function modify(args: unknown): ToolApproval;",
          "documentation": "Creates a \"modify\" approval."
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/topology.ts",
      "sha256": "539a27285463b50e4b2859fd2c189d0e17fd1ab193658138cecba9185cb621b3",
      "artifactSha256": "e1270ba3323eb88a8f13bb4f97cd613af1d5663354a6d70ed195e59d0d17130e",
      "url": "/reference/source/forge-ts/packages/forge-core/src/topology.ts.txt",
      "declarations": [
        {
          "name": "export const DEFAULT_ROLE = 'default';",
          "line": 27,
          "signature": "export const DEFAULT_ROLE /* type inferred in source */;",
          "documentation": "The default role name that every topology must contain."
        },
        {
          "name": "export const CostPreference = {",
          "line": 35,
          "signature": "export const CostPreference /* type inferred in source */;",
          "documentation": "Cost preference for a model slot.\n\nGuides the router's cost-sensitivity when selecting among multiple\neligible slots or fallback candidates."
        },
        {
          "name": "CostPreference",
          "line": 45,
          "signature": "export type CostPreference = (typeof CostPreference)[keyof typeof CostPreference];",
          "documentation": "Cost preference type."
        },
        {
          "name": "export const LatencyPreference = {",
          "line": 53,
          "signature": "export const LatencyPreference /* type inferred in source */;",
          "documentation": "Latency preference for a model slot.\n\nGuides the router's latency-sensitivity when selecting among multiple\neligible slots or fallback candidates."
        },
        {
          "name": "LatencyPreference",
          "line": 63,
          "signature": "export type LatencyPreference = (typeof LatencyPreference)[keyof typeof LatencyPreference];",
          "documentation": "Latency preference type."
        },
        {
          "name": "ModelSlot",
          "line": 75,
          "signature": "export interface ModelSlot {\n  /** The role name for this slot (e.g., \"planner\", \"coder\", \"default\"). */\n  readonly role: string;\n  /** Primary model for this slot. */\n  readonly primary: ProviderRef;\n  /** Ordered fallback models. Tried in sequence when the primary is unavailable. */\n  readonly fallbacks: readonly ProviderRef[];\n  /** Runtime capabilities required for this slot. */\n  readonly requiredCapabilities: readonly RuntimeCapability[];\n  /** Optional cost preference for the router. */\n  readonly costPreference?: CostPreference;\n  /** Optional latency preference for the router. */\n  readonly latencyPreference?: LatencyPreference;\n  /**\n   * Optional Arsenal scope narrowing applied when this slot is selected.\n   * If set, the agent's ACT is intersected with these scopes before\n   * the model call. The intersection can only narrow, never widen.\n   */\n  readonly arsenalScopeNarrowing?: readonly string[];\n}",
          "documentation": "A named model assignment within a topology.\n\nEach slot represents a role that a model fills (e.g., \"planner\",\n\"coder\", \"classifier\"). The slot carries the primary model reference,\nan ordered fallback list, capability requirements, and optional\nArsenal scope narrowing.\n\nANVIL Spec SS6.2 -- Provider Abstraction."
        },
        {
          "name": "ModelTopology",
          "line": 114,
          "signature": "export class ModelTopology {\n  constructor(\n    name: string,\n    slots: Map<string, ModelSlot>,\n    defaultRole: string,\n  );\n  static single(providerRef: ProviderRef): ModelTopology;\n  static builder(): TopologyBuilder;\n  name(): string;\n  defaultRole(): string;\n  defaultSlot(): ModelSlot;\n  slotForRole(role: string): ModelSlot;\n  slots(): ReadonlyMap<string, ModelSlot>;\n  allProviderRefs(): readonly ProviderRef[];\n  hasRole(role: string): boolean;\n  slotCount(): number;\n  toJSON(): Record<string, unknown>;\n}",
          "documentation": ""
        },
        {
          "name": "TopologyBuilder",
          "line": 325,
          "signature": "export class TopologyBuilder {\n  name(name: string): this;\n  slot(role: string, primary: ProviderRef): this;\n  withFallback(role: string, fallback: ProviderRef): this;\n  withRequiredCapability(role: string, cap: RuntimeCapability): this;\n  withCostPreference(role: string, pref: CostPreference): this;\n  withLatencyPreference(role: string, pref: LatencyPreference): this;\n  withScopeNarrowing(role: string, scopes: string[]): this;\n  build(): ModelTopology;\n}",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-ts/packages/forge-core/src/types.ts",
      "sha256": "f643380727ad89e5ff68efd1be9b1c24ae96d9bec515becfda44eb97f5cb92e2",
      "artifactSha256": "cea86b55d1dcdb29ca04ae1ed2ba0ba9c20e1f1d330d46b8f1ec454278c63074",
      "url": "/reference/source/forge-ts/packages/forge-core/src/types.ts.txt",
      "declarations": [
        {
          "name": "AgentDid",
          "line": 23,
          "signature": "export type AgentDid = string & { readonly __brand: 'AgentDid' };",
          "documentation": "Common types used across the Forge SDK.\n\nThese types provide type safety and domain-specific validation for values\nthat would otherwise be bare strings or integers.\nA DID (Decentralized Identifier) representing an agent's identity.\n\nFormat: `did:oas:<namespace>:<kind>:<identifier>`"
        },
        {
          "name": "createAgentDid",
          "line": 43,
          "signature": "export function createAgentDid(did: string): AgentDid | null;",
          "documentation": "Creates a new AgentDid from a DID string.\n\nValidates that the string matches the `did:oas:*` format with at least\n5 colon-separated segments."
        },
        {
          "name": "trustedAgentDid",
          "line": 59,
          "signature": "export function trustedAgentDid(did: string): AgentDid;",
          "documentation": "Creates an AgentDid without validation.\n\nThe caller must ensure the string is a valid OAS DID. This is provided\nfor interop with the OAS SDK which already validates DIDs."
        },
        {
          "name": "Timestamp",
          "line": 74,
          "signature": "export class Timestamp {\n  static now(): Timestamp;\n  static fromISO(s: string): Timestamp | null;\n  static fromDate(date: Date): Timestamp;\n  toISO(): string;\n  toDate(): Date;\n  toEpochMs(): number;\n  toString(): string;\n  toJSON(): string;\n  isAtOrAfter(other: Timestamp): boolean;\n}",
          "documentation": "A UTC timestamp used throughout the Forge SDK.\n\nWraps an ISO 8601 date-time string with Forge-specific construction helpers."
        }
      ]
    }
  ]
}
