{"version":3,"file":"eve-runtime-Cfyy1tzp.mjs","names":[],"sources":["../src/eve/load-eve.ts","../src/eve/approval.ts","../src/eve/registry.ts","../src/eve/steps.ts","../src/eve/build.ts"],"sourcesContent":["import * as eveTools from 'eve/tools'\nimport * as eveApproval from 'eve/tools/approval'\n\n/**\n * Static ESM imports so bundlers (eve/Nitro/Vercel) can resolve `eve` when it is\n * compiled into the output rather than left as `node_modules/eve` at runtime.\n * Runtime `createRequire(\"eve/tools\")` fails in those targets.\n */\nexport type EveToolsModule = typeof import('eve/tools')\nexport type EveApprovalModule = typeof import('eve/tools/approval')\n\n/**\n * @deprecated Never thrown since eve moved to static ESM imports — a missing\n * `eve` package now fails at module resolution with the bundler/runtime's own\n * error. Kept only for backward compatibility of the public export; do not\n * match on it. Will be removed in the next major.\n */\nexport const MISSING_EVE_MESSAGE =\n  'The \"eve\" package is required to use @github-tools/sdk/eve. Install it with: pnpm add eve'\n\nexport function getEveTools(): EveToolsModule {\n  return eveTools\n}\n\nexport function getEveApprovalHelpers(): EveApprovalModule {\n  return eveApproval\n}\n","import type { Approval, ApprovalPolicy } from 'eve/tools/approval'\nimport type { GithubWriteToolName } from '../core/write-tools'\nimport { getEveApprovalHelpers } from './load-eve'\nimport type { EveApprovalConfig, EveApprovalValue } from './types'\n\n/**\n * `false` / `'never'` should omit the tool `approval` field entirely.\n * eve treats a missing `approval` like `never()`; attaching `never()` is\n * redundant and has caused approval UI noise on some channels.\n */\nexport function isEveApprovalDisabled(value: EveApprovalValue | undefined): boolean {\n  return value === false || value === 'never'\n}\n\nexport function mapEveApprovalValue(value: EveApprovalValue): ApprovalPolicy {\n  if (typeof value === 'function') return value\n  // Object-shaped eve `ApprovalConfiguration` — the request-time policy lives on `request`.\n  if (typeof value === 'object') return value.request\n\n  const { always, never, once } = getEveApprovalHelpers()\n\n  if (value === true || value === 'always') return always()\n  if (value === false || value === 'never') return never()\n  return once()\n}\n\nexport function resolveEveApproval(\n  toolName: GithubWriteToolName,\n  config: EveApprovalConfig | undefined,\n): ApprovalPolicy {\n  if (config === undefined) return getEveApprovalHelpers().always()\n  if (config === true) return getEveApprovalHelpers().always()\n  if (config === false) return getEveApprovalHelpers().never()\n\n  const value = config[toolName]\n  if (value === undefined) return getEveApprovalHelpers().always()\n\n  return mapEveApprovalValue(value)\n}\n\n/**\n * Approval to attach on a write tool, or `undefined` to omit the field.\n * Prefer this when building `defineTool` values so `false` / `'never'` do not\n * attach a redundant `never()` handler.\n */\nexport function resolveEveToolApproval(\n  toolName: GithubWriteToolName,\n  config: EveApprovalConfig | undefined,\n  override?: EveApprovalValue,\n): Approval | undefined {\n  const value = override !== undefined\n    ? override\n    : typeof config === 'object' && config !== null\n      ? config[toolName]\n      : config\n\n  if (value === undefined) return getEveApprovalHelpers().always()\n  if (isEveApprovalDisabled(value)) return undefined\n  // Pass policies and `ApprovalConfiguration` objects through unchanged so a\n  // response-time authorizer (`response`) survives onto `defineTool`.\n  if (typeof value === 'function' || typeof value === 'object') return value\n  return mapEveApprovalValue(value)\n}\n","import type { ToolModelOutput } from 'eve/tools'\nimport type { z } from 'zod'\nimport type { CommitIdentity } from '../types'\nimport { GITHUB_TOOL_CATALOG, isGithubWriteToolName } from '../core/catalog'\nimport { mergeContextArgs, softenContextSchema, type GithubToolsContext } from '../core/context'\nimport {\n  compareCommitsToModelOutput,\n  getCommitToModelOutput,\n  getFileContentToModelOutput,\n  getPullRequestContextToModelOutput,\n  getRepositoryTreeToModelOutput,\n  listPullRequestFilesToModelOutput,\n} from '../core/model-output'\nimport { stripRateLimit } from '../core/rate-limit'\nimport { resolveGithubToken, type GithubTokenInput } from '../core/token'\nimport type { GithubWriteToolName } from '../core/write-tools'\nimport { ALL_GITHUB_TOOL_NAMES, type GithubToolName } from '../core/tool-names'\nexport type { GithubToolName } from '../core/tool-names'\nexport { ALL_GITHUB_TOOL_NAMES } from '../core/tool-names'\n\nexport type ToolBuildContext = {\n  token: GithubTokenInput\n  context?: GithubToolsContext\n  author?: CommitIdentity\n  committer?: CommitIdentity\n  coAuthors?: CommitIdentity[]\n}\n\ntype ToolRegistryEntry = {\n  name: GithubToolName\n  writeTool?: GithubWriteToolName\n  description: string\n  inputSchema: z.ZodType\n  execute: (args: Record<string, unknown>) => Promise<unknown>\n  toModelOutput?: (output: unknown) => ToolModelOutput\n}\n\nfunction withToken<T extends Record<string, unknown>>(\n  core: (args: T & { token: string }) => Promise<unknown>,\n  ctx: ToolBuildContext,\n  extra?: Record<string, unknown>,\n) {\n  return async (input: Record<string, unknown>) =>\n    core({\n      token: await resolveGithubToken(ctx.token),\n      ...extra,\n      ...mergeContextArgs(input, ctx.context ?? {}),\n    } as T & { token: string })\n}\n\nfunction modelOutputAdapter(\n  fn: (options: { toolCallId: string, input: unknown, output: unknown }) => { type: 'json' | 'text', value: unknown },\n) {\n  return (output: unknown) => fn({ toolCallId: '', input: {}, output }) as ToolModelOutput\n}\n\nconst GITHUB_EVE_TOOL_MODEL_OUTPUT = {\n  getFileContent: modelOutputAdapter(getFileContentToModelOutput),\n  getRepositoryTree: modelOutputAdapter(getRepositoryTreeToModelOutput),\n  listPullRequestFiles: modelOutputAdapter(listPullRequestFilesToModelOutput),\n  getPullRequestContext: modelOutputAdapter(getPullRequestContextToModelOutput),\n  getCommit: modelOutputAdapter(getCommitToModelOutput),\n  compareCommits: modelOutputAdapter(compareCommitsToModelOutput),\n} satisfies Partial<Record<GithubToolName, (output: unknown) => ToolModelOutput>>\n\nconst EVE_TOOL_MODEL_OUTPUTS: Partial<Record<GithubToolName, (output: unknown) => ToolModelOutput>> = GITHUB_EVE_TOOL_MODEL_OUTPUT\n\n/** Whether a GitHub tool has a built-in eve `toModelOutput` projection. */\nexport function hasGithubEveToolModelOutput(name: GithubToolName): boolean {\n  return Object.hasOwn(GITHUB_EVE_TOOL_MODEL_OUTPUT, name)\n}\n\n/**\n * Apply the built-in eve `toModelOutput` projection for a tool.\n * Strips `rateLimit` so it never reaches the model. Tools without a dedicated\n * formatter get `{ type: 'json', value }` of the remaining payload.\n * Used by `@github-tools/eve-extension` so the callback only closes over a serializable tool name.\n */\nexport function formatGithubEveToolOutput(name: GithubToolName, output: unknown): ToolModelOutput {\n  const stripped = stripRateLimit(output)\n  // `runGithubToolStep` returns `{ error }` when execute throws. The per-tool\n  // formatters assume the success shape (e.g. `listPullRequestFilesToModelOutput`\n  // calls `.map` on the payload), so dispatching an error payload would throw a\n  // second time inside model-output formatting and re-break the tool loop.\n  if (isErrorPayload(stripped)) {\n    return { type: 'json', value: stripped }\n  }\n  const format = GITHUB_EVE_TOOL_MODEL_OUTPUT[name as keyof typeof GITHUB_EVE_TOOL_MODEL_OUTPUT]\n  if (!format) {\n    return { type: 'json', value: stripped }\n  }\n  return format(stripped)\n}\n\nfunction isErrorPayload(output: unknown): output is { error: string } {\n  return (\n    output != null\n    && typeof output === 'object'\n    && !Array.isArray(output)\n    && typeof (output as { error?: unknown }).error === 'string'\n  )\n}\n\nexport function createToolRegistry(ctx: ToolBuildContext): ToolRegistryEntry[] {\n  // Commit-identity options are session-level, not model inputs, so they ride\n  // alongside the token instead of living in the tool's input schema.\n  const commitExtras: Partial<Record<GithubToolName, Record<string, unknown>>> = {\n    createOrUpdateFile: { author: ctx.author, committer: ctx.committer, coAuthors: ctx.coAuthors },\n    mergePullRequest: { coAuthors: ctx.coAuthors },\n  }\n\n  const entries = ALL_GITHUB_TOOL_NAMES.map((name): ToolRegistryEntry => {\n    const descriptor = GITHUB_TOOL_CATALOG[name]\n    // Argument types vary per tool; `withToken` re-narrows at the dispatch boundary.\n    const core = descriptor.core as (args: Record<string, unknown> & { token: string }) => Promise<unknown>\n    const toModelOutput = EVE_TOOL_MODEL_OUTPUTS[name]\n    return {\n      name,\n      ...(isGithubWriteToolName(name) && { writeTool: name }),\n      description: descriptor.description,\n      inputSchema: descriptor.inputSchema,\n      execute: withToken(core, ctx, commitExtras[name]),\n      ...(toModelOutput && { toModelOutput }),\n    }\n  })\n\n  if (!ctx.context) return entries\n\n  return entries.map(entry => ({\n    ...entry,\n    inputSchema: softenContextSchema(entry.inputSchema, ctx.context!),\n  }))\n}\n","import { EvlogError, toModelErrorPayload } from '../core/errors'\nimport { resolveGithubToken } from '../core/token'\nimport { createToolRegistry, type GithubToolName, type ToolBuildContext } from './registry'\n\nasync function executeGithubToolStep(\n  name: GithubToolName,\n  input: Record<string, unknown>,\n  ctx: ToolBuildContext,\n) {\n  'use step'\n  const entry = createToolRegistry(ctx).find(tool => tool.name === name)\n  if (!entry) {\n    throw new Error(`Unknown GitHub tool: ${name}`)\n  }\n  return entry.execute(input)\n}\n\nexport async function runGithubToolStep(\n  name: GithubToolName,\n  input: Record<string, unknown>,\n  ctx: ToolBuildContext,\n) {\n  try {\n    // Resolve the token before entering the step so only a serializable string crosses the boundary.\n    const token = await resolveGithubToken(ctx.token)\n    return await executeGithubToolStep(name, input, { ...ctx, token })\n  } catch (error) {\n    // Eve's tool-loop logs thrown execute errors but does not always append a\n    // tool_result. Returning a payload keeps the Anthropic tool_use/tool_result pairing intact.\n    // Catalog errors keep their { code, why, fix, link } structure so the model can recover.\n    if (EvlogError.isEvlogError(error)) {\n      return { error: toModelErrorPayload(error) }\n    }\n    return { error: error instanceof Error ? error.message : String(error) }\n  }\n}\n","import type { ToolDefinition } from 'eve/tools'\nimport { resolvePresetTools, type CombinedPresetToolNames, type GithubToolPreset, type PresetToolName } from '../core/presets'\nimport { createGithubTokenResolver } from '../core/token'\nimport { isEveApprovalDisabled, mapEveApprovalValue, resolveEveToolApproval } from './approval'\nimport { getEveTools } from './load-eve'\nimport { ALL_GITHUB_TOOL_NAMES, createToolRegistry, formatGithubEveToolOutput, hasGithubEveToolModelOutput, type GithubToolName, type ToolBuildContext } from './registry'\nimport { runGithubToolStep } from './steps'\nimport type { EveGithubToolsOptions, EveToolFactoryOptions, EveToolOverrides } from './types'\n\ntype BuildOptions = EveGithubToolsOptions | (EveToolFactoryOptions & { preset?: EveGithubToolsOptions['preset'] })\ntype EveToolMap = Partial<Record<GithubToolName, ToolDefinition>>\n\nfunction resolveAllowedToolNames(\n  options: Pick<EveGithubToolsOptions, 'preset' | 'include' | 'exclude'>,\n): (name: GithubToolName) => boolean {\n  const presetAllowed = options.preset ? resolvePresetTools(options.preset) : null\n  const includeAllowed = options.include ? new Set(options.include) : null\n  const excluded = options.exclude ? new Set(options.exclude) : null\n\n  // `preset` and `include` compose as a union (add tools a preset is missing);\n  // `exclude` always subtracts from that combined set afterward.\n  const allowed = presetAllowed && includeAllowed\n    ? new Set([...presetAllowed, ...includeAllowed])\n    : presetAllowed ?? includeAllowed\n\n  return name => (!allowed || allowed.has(name)) && !excluded?.has(name)\n}\n\nfunction applyOverrides<T extends ToolDefinition>(\n  tool: T,\n  name: GithubToolName,\n  overrides?: EveToolOverrides,\n): T {\n  const override = overrides?.[name]\n  if (!override) return tool\n\n  const next: T = {\n    ...tool,\n    ...override.description !== undefined && { description: override.description },\n    ...override.toModelOutput !== undefined && { toModelOutput: override.toModelOutput },\n    ...override.outputSchema !== undefined && { outputSchema: override.outputSchema },\n  }\n\n  if (override.approval === undefined) return next\n  if (isEveApprovalDisabled(override.approval)) {\n    const rest = { ...next }\n    delete (rest as { approval?: unknown }).approval\n    return rest\n  }\n  // Preserve policies and `ApprovalConfiguration` objects as-is; only literals need mapping.\n  const approval = typeof override.approval === 'function' || typeof override.approval === 'object'\n    ? override.approval\n    : mapEveApprovalValue(override.approval)\n  return { ...next, approval }\n}\n\nexport function buildEveToolDefinition(\n  name: GithubToolName,\n  options: BuildOptions = {},\n): ToolDefinition {\n  const { defineTool } = getEveTools()\n  const ctx: ToolBuildContext = {\n    token: createGithubTokenResolver(options.token),\n    context: options.context,\n    author: options.author,\n    committer: options.committer,\n    coAuthors: options.coAuthors,\n  }\n\n  const entry = createToolRegistry(ctx).find(tool => tool.name === name)\n  if (!entry) {\n    throw new Error(`Unknown GitHub tool: ${name}`)\n  }\n\n  const approval = entry.writeTool\n    ? resolveEveToolApproval(entry.writeTool, options.requireApproval)\n    : undefined\n\n  // Annotated so defineTool resolves to its ToolDefinition overload — inference\n  // from the bare literal picks the background-tool overload on eve 0.45+.\n  const definition: ToolDefinition = {\n    description: entry.description,\n    inputSchema: entry.inputSchema,\n    ...(approval && { approval }),\n    toModelOutput: (output: unknown) => formatGithubEveToolOutput(name, output),\n    execute: async (input) => runGithubToolStep(name, input as Record<string, unknown>, ctx),\n  }\n\n  return applyOverrides(defineTool(definition), name, options.overrides)\n}\n\nexport function buildEveToolMap(options: EveGithubToolsOptions = {}): EveToolMap {\n  const { defineTool } = getEveTools()\n  const ctx: ToolBuildContext = {\n    token: createGithubTokenResolver(options.token),\n    context: options.context,\n    author: options.author,\n    committer: options.committer,\n    coAuthors: options.coAuthors,\n  }\n\n  const isAllowed = resolveAllowedToolNames(options)\n  const registry = createToolRegistry(ctx)\n  const tools = {} as EveToolMap\n\n  for (const entry of registry) {\n    if (!isAllowed(entry.name)) continue\n\n    const approval = entry.writeTool\n      ? resolveEveToolApproval(entry.writeTool, options.requireApproval)\n      : undefined\n\n    const definition: ToolDefinition = {\n      description: entry.description,\n      inputSchema: entry.inputSchema,\n      ...(approval && { approval }),\n      toModelOutput: (output: unknown) => formatGithubEveToolOutput(entry.name, output),\n      execute: async (input) => runGithubToolStep(entry.name, input as Record<string, unknown>, ctx),\n    }\n\n    tools[entry.name] = applyOverrides(defineTool(definition), entry.name, options.overrides)\n  }\n\n  return tools\n}\n\nexport function createEveGithubToolsDynamic(options: EveGithubToolsOptions = {}) {\n  const { defineDynamic } = getEveTools()\n\n  // TODO(eve-auth): resolve token from ctx.getToken('github') when eve-managed auth lands.\n  // Deferred — eve does not yet expose managed GitHub tokens on the session context.\n  return defineDynamic({\n    events: {\n      'step.started': async () => buildEveToolMap(options),\n    },\n  })\n}\n\nexport function listResolvedEveToolNames(options?: { preset?: undefined, include?: undefined, exclude?: undefined }): GithubToolName[]\nexport function listResolvedEveToolNames<P extends GithubToolPreset>(options: { preset: P, include?: undefined, exclude?: undefined }): PresetToolName<P>[]\nexport function listResolvedEveToolNames<P extends readonly GithubToolPreset[]>(options: { preset: P, include?: undefined, exclude?: undefined }): CombinedPresetToolNames<P>[]\nexport function listResolvedEveToolNames(options: Pick<EveGithubToolsOptions, 'preset' | 'include' | 'exclude'>): GithubToolName[]\nexport function listResolvedEveToolNames(options: Pick<EveGithubToolsOptions, 'preset' | 'include' | 'exclude'> = {}): GithubToolName[] {\n  const isAllowed = resolveAllowedToolNames(options)\n  return ALL_GITHUB_TOOL_NAMES.filter(isAllowed)\n}\n\n/**\n * Tool descriptors (no `execute`) for authored eve `defineTool` loops.\n * Prefer this when registering tools outside the SDK package so durable transforms can hoist inline execute.\n */\nexport function listEveToolDescriptors(options: EveGithubToolsOptions = {}) {\n  const ctx: ToolBuildContext = {\n    token: createGithubTokenResolver(options.token),\n    context: options.context,\n    author: options.author,\n    committer: options.committer,\n    coAuthors: options.coAuthors,\n  }\n\n  const isAllowed = resolveAllowedToolNames(options)\n  return createToolRegistry(ctx)\n    .filter(entry => isAllowed(entry.name))\n    .map(entry => ({\n      name: entry.name,\n      description: entry.description,\n      inputSchema: entry.inputSchema,\n      writeTool: entry.writeTool,\n      toModelOutput: entry.toModelOutput,\n    }))\n}\n\nexport { formatGithubEveToolOutput, hasGithubEveToolModelOutput }\n\n/**\n * Execute a GitHub tool by name with the given eve options (token/context/attribution).\n * Used by `@github-tools/eve-extension` so `execute` only closes over a serializable tool name.\n */\nexport async function executeGithubEveTool(\n  name: GithubToolName,\n  input: Record<string, unknown>,\n  options: EveGithubToolsOptions = {},\n) {\n  const ctx: ToolBuildContext = {\n    token: createGithubTokenResolver(options.token),\n    context: options.context,\n    author: options.author,\n    committer: options.committer,\n    coAuthors: options.coAuthors,\n  }\n  return runGithubToolStep(name, input, ctx)\n}\n"],"mappings":"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"}