@tangle-network/agent-runtime 0.103.1 → 0.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/agent.d.ts +1 -1
- package/dist/agent.js +5 -5
- package/dist/analyst-loop.d.ts +1 -1
- package/dist/{chunk-TUSOOIDV.js → chunk-2QJSNOGK.js} +2 -2
- package/dist/{chunk-ZOYN3JR5.js → chunk-2UABGGUB.js} +3 -3
- package/dist/{chunk-6WZZXQV5.js → chunk-2X65HYMI.js} +1 -1
- package/dist/chunk-2X65HYMI.js.map +1 -0
- package/dist/{chunk-AAN2MB2X.js → chunk-3PPVCS75.js} +3 -3
- package/dist/chunk-3PPVCS75.js.map +1 -0
- package/dist/{chunk-EAQ5YRRY.js → chunk-5HNDYWUT.js} +39 -22
- package/dist/chunk-5HNDYWUT.js.map +1 -0
- package/dist/{chunk-3LJF5XSE.js → chunk-ATDFUJYI.js} +6 -6
- package/dist/chunk-ATDFUJYI.js.map +1 -0
- package/dist/{chunk-LFM4JBRW.js → chunk-FJI3EXU3.js} +46 -5
- package/dist/chunk-FJI3EXU3.js.map +1 -0
- package/dist/{chunk-5AITUUHO.js → chunk-HAO4CXHP.js} +2 -2
- package/dist/{chunk-M6MD6JBS.js → chunk-KRBFHMV6.js} +429 -1
- package/dist/chunk-KRBFHMV6.js.map +1 -0
- package/dist/{chunk-AYU35OTU.js → chunk-PZZKQVQV.js} +1 -1
- package/dist/chunk-PZZKQVQV.js.map +1 -0
- package/dist/{chunk-QYCKIV6C.js → chunk-STJEHM5F.js} +2 -2
- package/dist/{completion-gate-DLINnrkM.d.ts → completion-gate-Bv47cOnn.d.ts} +2 -2
- package/dist/{coordination-DTehA977.d.ts → coordination-CxtzMxSM.d.ts} +27 -27
- package/dist/environment-provider.d.ts +18 -7
- package/dist/environment-provider.js +3 -1
- package/dist/{improve-B40dRu0X.d.ts → improve--2A0gK1-.d.ts} +10 -4
- package/dist/index.d.ts +13 -13
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/intelligence.d.ts +46 -9
- package/dist/intelligence.js +117 -20
- package/dist/intelligence.js.map +1 -1
- package/dist/knowledge.d.ts +5 -5
- package/dist/knowledge.js +7 -7
- package/dist/{loop-runner-bin-DhIXsLAd.d.ts → loop-runner-bin-DUOGtvOl.d.ts} +3 -3
- package/dist/loop-runner-bin.d.ts +5 -5
- package/dist/loop-runner-bin.js +6 -6
- package/dist/loops.d.ts +66 -41
- package/dist/loops.js +9 -5
- package/dist/mcp/bin.js +4 -4
- package/dist/mcp/index.d.ts +6 -6
- package/dist/mcp/index.js +10 -10
- package/dist/mcp/index.js.map +1 -1
- package/dist/primeintellect/index.d.ts +1 -1
- package/dist/primeintellect/index.js.map +1 -1
- package/dist/profiles.d.ts +6 -6
- package/dist/profiles.js.map +1 -1
- package/dist/{structural-rollout-BFPIy3iw.d.ts → structural-rollout-C4mabf87.d.ts} +3 -3
- package/dist/{supervise-Cp8bNcJi.d.ts → supervise-7q9F5brx.d.ts} +3 -3
- package/dist/testing.js +8 -8
- package/dist/testing.js.map +1 -1
- package/dist/{types-DK11_O4L.d.ts → types-BCoemcXU.d.ts} +4 -4
- package/dist/{types-lZTE_LBd.d.ts → types-CvNwMzQt.d.ts} +4 -4
- package/dist/{worktree-fanout-DiiJWjJO.d.ts → worktree-fanout-WsOzt8qu.d.ts} +5 -5
- package/package.json +3 -3
- package/dist/chunk-3LJF5XSE.js.map +0 -1
- package/dist/chunk-6WZZXQV5.js.map +0 -1
- package/dist/chunk-AAN2MB2X.js.map +0 -1
- package/dist/chunk-AYU35OTU.js.map +0 -1
- package/dist/chunk-EAQ5YRRY.js.map +0 -1
- package/dist/chunk-LFM4JBRW.js.map +0 -1
- package/dist/chunk-M6MD6JBS.js.map +0 -1
- /package/dist/{chunk-TUSOOIDV.js.map → chunk-2QJSNOGK.js.map} +0 -0
- /package/dist/{chunk-ZOYN3JR5.js.map → chunk-2UABGGUB.js.map} +0 -0
- /package/dist/{chunk-5AITUUHO.js.map → chunk-HAO4CXHP.js.map} +0 -0
- /package/dist/{chunk-QYCKIV6C.js.map → chunk-STJEHM5F.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runtime/environment-provider.ts"],"sourcesContent":["import type {\n AgentProfile,\n AgentProfileValidationResult,\n InputPart,\n TokenUsage,\n} from '@tangle-network/agent-interface'\nimport type {\n AgentEnvironment,\n AgentEnvironmentCapabilities,\n AgentEnvironmentEvent,\n AgentEnvironmentProvider,\n AgentEnvironmentQuery,\n AgentEnvironmentStatus,\n AgentEnvironmentSummary,\n AgentProfileRef,\n AgentSession,\n AgentSessionRef,\n AgentSessionStatus,\n AgentTurnInput,\n AgentTurnResult,\n CheckpointRef,\n CheckpointRequest,\n CreateAgentEnvironmentInput,\n ExecRequest,\n ExecResult,\n ForkRequest,\n PlacementInfo,\n ResourceRequest,\n} from '@tangle-network/agent-interface/environment-provider'\nimport type {\n BackendType,\n CreateSandboxOptions,\n PromptOptions,\n PromptResult,\n SandboxEvent,\n ExecResult as SandboxExecResult,\n SandboxInstance,\n} from '@tangle-network/sandbox'\nimport type {\n Executor,\n ExecutorContext,\n ExecutorFactory,\n ExecutorResult,\n Runtime,\n Spend,\n UsageEvent,\n} from './supervise/types'\nimport type { LoopSandboxPlacement, SandboxClient } from './types'\nimport { zeroTokenUsage } from './util'\n\n// Keep this file loadable from the lean `./environment-provider` export without agent-eval installed.\nclass ValidationError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options)\n this.name = 'ValidationError'\n }\n}\n\nexport type {\n AgentEnvironment,\n AgentEnvironmentCapabilities,\n AgentEnvironmentEvent,\n AgentEnvironmentProvider,\n AgentEnvironmentQuery,\n AgentEnvironmentStatus,\n AgentEnvironmentSummary,\n AgentProfileRef,\n AgentSession,\n AgentSessionRef,\n AgentSessionStatus,\n AgentTurnInput,\n AgentTurnResult,\n CheckpointRef,\n CheckpointRequest,\n CreateAgentEnvironmentInput,\n ExecRequest,\n ExecResult,\n ForkRequest,\n PlacementInfo,\n ResourceRequest,\n WorkspaceRequest,\n} from '@tangle-network/agent-interface/environment-provider'\n\n/** Provider object or registry name accepted by runtime provider adapters.\n * @experimental */\nexport type AgentEnvironmentProviderRef = AgentEnvironmentProvider | string\n\n/** In-memory registry for named `AgentEnvironmentProvider` instances.\n * @experimental */\nexport interface AgentEnvironmentProviderRegistry {\n register(provider: AgentEnvironmentProvider, options?: { replace?: boolean }): void\n has(name: string): boolean\n get(name: string): AgentEnvironmentProvider | undefined\n require(name: string): AgentEnvironmentProvider\n names(): string[]\n providers(): AgentEnvironmentProvider[]\n capabilities(name: string): Promise<AgentEnvironmentCapabilities>\n}\n\n/** Create a registry that resolves provider names to concrete provider instances.\n * @experimental */\nexport function createAgentEnvironmentProviderRegistry(\n providers: Iterable<AgentEnvironmentProvider> = [],\n): AgentEnvironmentProviderRegistry {\n const entries = new Map<string, AgentEnvironmentProvider>()\n\n const registry: AgentEnvironmentProviderRegistry = {\n register(provider, options = {}): void {\n if (!provider.name) {\n throw new ValidationError('agent environment provider registry: provider.name required')\n }\n if (!options.replace && entries.has(provider.name)) {\n throw new ValidationError(\n `agent environment provider registry: provider \"${provider.name}\" already registered`,\n )\n }\n entries.set(provider.name, provider)\n },\n has(name): boolean {\n return entries.has(name)\n },\n get(name): AgentEnvironmentProvider | undefined {\n return entries.get(name)\n },\n require(name): AgentEnvironmentProvider {\n const provider = entries.get(name)\n if (!provider) {\n const available = Array.from(entries.keys()).sort()\n const suffix = available.length > 0 ? `; available: ${available.join(', ')}` : ''\n throw new ValidationError(\n `agent environment provider registry: provider \"${name}\" is not registered${suffix}`,\n )\n }\n return provider\n },\n names(): string[] {\n return Array.from(entries.keys()).sort()\n },\n providers(): AgentEnvironmentProvider[] {\n return registry.names().map((name) => registry.require(name))\n },\n async capabilities(name): Promise<AgentEnvironmentCapabilities> {\n return registry.require(name).capabilities()\n },\n }\n\n for (const provider of providers) registry.register(provider)\n return registry\n}\n\n/** Resolve a provider instance or registry name, failing loudly when a name is unknown.\n * @experimental */\nexport function resolveAgentEnvironmentProvider(\n provider: AgentEnvironmentProviderRef,\n registry?: AgentEnvironmentProviderRegistry,\n): AgentEnvironmentProvider {\n if (typeof provider !== 'string') return provider\n if (!registry) {\n throw new ValidationError(\n `agent environment provider \"${provider}\" requires an AgentEnvironmentProviderRegistry`,\n )\n }\n return registry.require(provider)\n}\n\n/** Options for exposing an `AgentEnvironmentProvider` through the legacy sandbox client port.\n * @experimental */\nexport interface ProviderAsSandboxClientOptions {\n defaults?: Partial<CreateAgentEnvironmentInput>\n requireTerminalEvent?: boolean\n mapCreateOptions?: (\n options: CreateSandboxOptions | undefined,\n ) => Partial<CreateAgentEnvironmentInput>\n}\n\n/** Adapt a neutral environment provider to the `SandboxClient` interface used by existing loop paths.\n * @experimental */\nexport function providerAsSandboxClient(\n provider: AgentEnvironmentProvider,\n options: ProviderAsSandboxClientOptions = {},\n): SandboxClient {\n return {\n async create(createOptions?: CreateSandboxOptions): Promise<SandboxInstance> {\n const mapped = {\n ...(options.defaults ?? {}),\n ...createInputFromSandboxOptions(createOptions),\n ...(options.mapCreateOptions?.(createOptions) ?? {}),\n }\n if (mapped.profile === undefined) {\n throw new ValidationError(\n `providerAsSandboxClient(${provider.name}): profile required in defaults or CreateSandboxOptions.backend.profile`,\n )\n }\n const environment = await provider.create(mapped as CreateAgentEnvironmentInput)\n return environmentAsSandboxInstance(environment, {\n requireTerminalEvent: options.requireTerminalEvent ?? true,\n })\n },\n }\n}\n\n/** Options for wrapping the current Tangle sandbox client as an environment provider.\n * @experimental */\nexport interface SandboxClientProviderOptions {\n name?: string\n defaultBackend?: BackendType\n capabilities?:\n | AgentEnvironmentCapabilities\n | (() => AgentEnvironmentCapabilities | Promise<AgentEnvironmentCapabilities>)\n validateProfile?: (\n profile: AgentProfileRef,\n ) => AgentProfileValidationResult | Promise<AgentProfileValidationResult>\n mapCreateInput?: (input: CreateAgentEnvironmentInput) => CreateSandboxOptions\n}\n\n/** Adapt a `SandboxClient` into the shared `AgentEnvironmentProvider` contract.\n * @experimental */\nexport function sandboxClientAsProvider(\n client: SandboxClient,\n options: SandboxClientProviderOptions = {},\n): AgentEnvironmentProvider {\n const providerName = options.name ?? 'tangle-sandbox'\n return {\n name: providerName,\n capabilities: async () => {\n if (options.capabilities) {\n return typeof options.capabilities === 'function'\n ? options.capabilities()\n : options.capabilities\n }\n return defaultTangleSandboxCapabilities()\n },\n ...(options.validateProfile ? { validateProfile: options.validateProfile } : {}),\n async create(input: CreateAgentEnvironmentInput): Promise<AgentEnvironment> {\n const createOptions =\n options.mapCreateInput?.(input) ??\n sandboxOptionsFromCreateInput(input, options.defaultBackend ?? 'opencode')\n const box = await client.create(createOptions)\n return sandboxInstanceAsEnvironment(box, providerName, client)\n },\n ...(hasGet(client)\n ? {\n async get(id: string): Promise<AgentEnvironment | null> {\n const box = await client.get(id)\n return box ? sandboxInstanceAsEnvironment(box, providerName, client) : null\n },\n }\n : {}),\n ...(hasList(client)\n ? {\n async list(query?: AgentEnvironmentQuery): Promise<AgentEnvironmentSummary[]> {\n const boxes = await client.list(query?.providerOptions)\n return boxes.map((box) => ({\n id: String(box.id),\n provider: providerName,\n name: typeof box.name === 'string' ? box.name : undefined,\n status: statusFromUnknown(readBoxStatus(box)),\n metadata: readBoxMetadata(box),\n }))\n },\n }\n : {}),\n }\n}\n\n/** Options for running a provider as a supervise-mode executor.\n * @experimental */\nexport interface ProviderExecutorOptions {\n defaults?: Partial<CreateAgentEnvironmentInput>\n runtime?: Runtime\n destroyOnSettle?: boolean\n requireTerminalEvent?: boolean\n taskToTurn?: (task: unknown, specProfile: AgentProfile) => AgentTurnInput\n}\n\n/** Adapt an environment provider into an `ExecutorFactory` for `createExecutor`.\n * @experimental */\nexport function providerAsExecutor(\n provider: AgentEnvironmentProvider,\n options: ProviderExecutorOptions = {},\n): ExecutorFactory<unknown> {\n return (spec, ctx) => createProviderExecutor(provider, spec.profile, ctx, options)\n}\n\nfunction createProviderExecutor(\n provider: AgentEnvironmentProvider,\n profile: AgentProfile,\n ctx: ExecutorContext,\n options: ProviderExecutorOptions,\n): Executor<unknown> {\n const controller = new AbortController()\n const abortIfSignalled = () => {\n if (ctx.signal.aborted) controller.abort()\n }\n abortIfSignalled()\n if (!ctx.signal.aborted) ctx.signal.addEventListener('abort', abortIfSignalled, { once: true })\n\n let environment: AgentEnvironment | undefined\n let artifact: ExecutorResult<unknown> | undefined\n\n return {\n runtime: options.runtime ?? (provider.name as Runtime),\n execute(task, signal): AsyncIterable<UsageEvent> {\n return streamProviderExecutor({\n provider,\n profile,\n task,\n signal,\n controller,\n options,\n onEnvironment: (env) => {\n environment = env\n },\n onArtifact: (next) => {\n artifact = next\n },\n })\n },\n async teardown(_grace): Promise<{ destroyed: boolean }> {\n controller.abort()\n await environment?.destroy?.()\n return { destroyed: true }\n },\n resultArtifact(): ExecutorResult<unknown> {\n if (!artifact) {\n throw new ValidationError(\n `providerAsExecutor(${provider.name}): resultArtifact() read before stream drained`,\n )\n }\n return artifact\n },\n }\n}\n\ninterface StreamProviderExecutorArgs {\n provider: AgentEnvironmentProvider\n profile: AgentProfile\n task: unknown\n signal: AbortSignal\n controller: AbortController\n options: ProviderExecutorOptions\n onEnvironment: (environment: AgentEnvironment) => void\n onArtifact: (artifact: ExecutorResult<unknown>) => void\n}\n\nasync function* streamProviderExecutor(\n args: StreamProviderExecutorArgs,\n): AsyncIterable<UsageEvent> {\n const started = Date.now()\n const linked = mergeAbortSignals(args.signal, args.controller.signal)\n const environment = await args.provider.create({\n ...(args.options.defaults ?? {}),\n profile: args.profile,\n signal: linked,\n })\n args.onEnvironment(environment)\n\n const turn =\n args.options.taskToTurn?.(args.task, args.profile) ?? taskToTurnInput(args.task, linked)\n const events: AgentEnvironmentEvent[] = []\n const tokens = zeroTokenUsage()\n let usd = 0\n let text = ''\n let terminal = false\n try {\n for await (const event of environment.stream({ ...turn, signal: linked })) {\n events.push(event)\n text += textFromEnvironmentEvent(event)\n const usage = usageFromEnvironmentEvent(event)\n if (usage.input || usage.output) {\n tokens.input += usage.input\n tokens.output += usage.output\n yield { kind: 'tokens', input: usage.input, output: usage.output }\n }\n if (usage.usd) {\n usd += usage.usd\n yield { kind: 'cost', usd: usage.usd }\n }\n if (isTerminalEnvironmentEvent(event)) terminal = true\n }\n if ((args.options.requireTerminalEvent ?? true) && !terminal) {\n throw new ValidationError(\n `providerAsExecutor(${args.provider.name}): stream ended without a terminal result/done/status event`,\n )\n }\n yield { kind: 'iteration' }\n const result = resultFromEvents(events, text)\n const spent: Spend = {\n iterations: 1,\n tokens,\n usd,\n ms: Date.now() - started,\n }\n args.onArtifact({\n outRef: contentRef(`provider:${args.provider.name}`, result),\n out: result,\n spent,\n })\n } finally {\n if (args.options.destroyOnSettle ?? true) await environment.destroy?.()\n }\n}\n\nfunction createInputFromSandboxOptions(\n options: CreateSandboxOptions | undefined,\n): Partial<CreateAgentEnvironmentInput> {\n const profile = options?.backend?.profile as AgentProfileRef | undefined\n const backend = options?.backend?.type\n return {\n ...(profile !== undefined ? { profile } : {}),\n ...(backend ? { backend } : {}),\n workspace: {\n ...(options?.environment ? { environment: options.environment } : {}),\n ...(options?.image ? { image: options.image } : {}),\n ...(options?.git?.url ? { repoUrl: options.git.url } : {}),\n ...(options?.git?.ref ? { gitRef: options.git.ref } : {}),\n },\n ...(options?.resources ? { resources: options.resources as ResourceRequest } : {}),\n ...(options?.env ? { env: options.env } : {}),\n ...(options?.secrets ? { secrets: options.secrets } : {}),\n ...(options?.metadata ? { metadata: options.metadata } : {}),\n ...(options?.name ? { name: options.name } : {}),\n ...(options?.idempotencyKey ? { idempotencyKey: options.idempotencyKey } : {}),\n providerOptions: { sandboxCreateOptions: options ?? {} },\n }\n}\n\nfunction sandboxOptionsFromCreateInput(\n input: CreateAgentEnvironmentInput,\n defaultBackend: BackendType,\n): CreateSandboxOptions {\n const backendType = (input.backend ?? defaultBackend) as BackendType\n const workspace = input.workspace ?? {}\n const providerOptions = input.providerOptions?.sandboxCreateOptions\n const base =\n providerOptions && typeof providerOptions === 'object'\n ? ({ ...(providerOptions as CreateSandboxOptions) } as CreateSandboxOptions)\n : ({} satisfies CreateSandboxOptions)\n return {\n ...base,\n ...(workspace.environment ? { environment: workspace.environment } : {}),\n ...(workspace.image ? { image: workspace.image } : {}),\n ...(workspace.repoUrl ? { git: { url: workspace.repoUrl, ref: workspace.gitRef } } : {}),\n ...(input.resources ? { resources: input.resources as CreateSandboxOptions['resources'] } : {}),\n ...(input.env ? { env: input.env } : {}),\n ...(Array.isArray(input.secrets) ? { secrets: input.secrets } : {}),\n ...(input.metadata ? { metadata: input.metadata } : {}),\n ...(input.name ? { name: input.name } : {}),\n ...(input.idempotencyKey ? { idempotencyKey: input.idempotencyKey } : {}),\n backend: {\n ...(base.backend ?? {}),\n type: backendType,\n profile: input.profile,\n },\n }\n}\n\nfunction environmentAsSandboxInstance(\n environment: AgentEnvironment,\n options: { requireTerminalEvent: boolean },\n): SandboxInstance {\n const box = {\n id: environment.id,\n name: environment.name,\n status: 'running',\n async refresh(): Promise<void> {\n await environment.refresh?.()\n },\n async *streamPrompt(\n message: string | InputPart[],\n promptOptions?: PromptOptions,\n ): AsyncGenerator<SandboxEvent> {\n let terminal = false\n const input = turnInputFromPrompt(message, promptOptions)\n for await (const event of environment.stream(input)) {\n if (isTerminalEnvironmentEvent(event)) terminal = true\n const usageEvent = usageSandboxEvent(event)\n if (usageEvent) yield usageEvent\n yield sandboxEventFromEnvironmentEvent(event)\n }\n if (options.requireTerminalEvent && !terminal) {\n throw new ValidationError(\n `providerAsSandboxClient(${environment.provider}): stream ended without a terminal result/done/status event`,\n )\n }\n },\n async prompt(\n message: string | InputPart[],\n promptOptions?: PromptOptions,\n ): Promise<PromptResult> {\n const events: AgentEnvironmentEvent[] = []\n let text = ''\n let usage: TokenUsage | undefined\n let terminal = false\n for await (const event of environment.stream(turnInputFromPrompt(message, promptOptions))) {\n events.push(event)\n if (isTerminalEnvironmentEvent(event)) terminal = true\n text += textFromEnvironmentEvent(event)\n usage = mergeTokenUsage(usage, event.usage)\n }\n if (options.requireTerminalEvent && !terminal) {\n throw new ValidationError(\n `providerAsSandboxClient(${environment.provider}): prompt ended without a terminal result/done/status event`,\n )\n }\n return promptResultCompat(\n {\n response: resultFromEvents(events, text).content,\n success: true,\n durationMs: 0,\n ...(usage ? { usage } : {}),\n },\n 'success',\n )\n },\n ...(environment.dispatch\n ? {\n async dispatchPrompt(message: string | InputPart[], promptOptions?: PromptOptions) {\n const session = await environment.dispatch?.(\n turnInputFromPrompt(message, promptOptions),\n )\n if (!session)\n throw new ValidationError('providerAsSandboxClient: dispatch returned no session')\n return sandboxDispatchResultFromSessionRef(session)\n },\n }\n : {}),\n ...(environment.session\n ? {\n session(id: string) {\n return sessionAsSandboxSession(environment.session?.(id))\n },\n }\n : {}),\n ...(environment.read ? { read: environment.read.bind(environment) } : {}),\n ...(environment.write ? { write: environment.write.bind(environment) } : {}),\n ...(environment.exec\n ? {\n exec: environment.exec.bind(environment),\n }\n : {}),\n ...(environment.checkpoint\n ? {\n async checkpoint(checkpointOptions?: CheckpointRequest) {\n const checkpoint = await environment.checkpoint?.(checkpointOptions)\n return { checkpointId: checkpoint?.id, id: checkpoint?.id }\n },\n }\n : {}),\n ...(environment.fork\n ? {\n async fork(checkpointId: string, forkOptions?: ForkRequest) {\n const forked = await environment.fork?.({ id: checkpointId }, forkOptions)\n if (!forked)\n throw new ValidationError('providerAsSandboxClient: fork returned no environment')\n return environmentAsSandboxInstance(forked, options)\n },\n }\n : {}),\n async delete(): Promise<void> {\n await environment.destroy?.()\n },\n }\n return box as unknown as SandboxInstance\n}\n\nfunction sandboxInstanceAsEnvironment(\n box: SandboxInstance,\n providerName: string,\n client: SandboxClient,\n): AgentEnvironment {\n const environment: AgentEnvironment = {\n id: String(box.id),\n provider: providerName,\n ...(typeof box.name === 'string' ? { name: box.name } : {}),\n async status(): Promise<AgentEnvironmentStatus> {\n await maybeRefresh(box)\n return statusFromUnknown(readBoxStatus(box))\n },\n async *stream(input: AgentTurnInput): AsyncIterable<AgentEnvironmentEvent> {\n for await (const event of box.streamPrompt(\n promptFromTurnInput(input),\n promptOptionsFromTurnInput(input),\n )) {\n yield environmentEventFromSandboxEvent(event)\n }\n },\n ...(hasDispatchPrompt(box)\n ? {\n async dispatch(input: AgentTurnInput): Promise<AgentSessionRef> {\n const dispatched = await box.dispatchPrompt(\n promptFromTurnInput(input),\n promptOptionsFromTurnInput(input),\n )\n return sessionRefFromSandboxDispatch(dispatched, providerName)\n },\n }\n : {}),\n ...(hasSession(box)\n ? {\n session(id: string): AgentSession {\n return sandboxSessionAsAgentSession(box.session(id))\n },\n }\n : {}),\n ...(hasRead(box) ? { read: box.read.bind(box) } : {}),\n ...(hasWrite(box) ? { write: box.write.bind(box) } : {}),\n ...(hasExec(box)\n ? {\n async exec(command: string, options?: ExecRequest): Promise<ExecResult> {\n return execResultFromSandboxExecResult(await box.exec(command, options as never))\n },\n }\n : {}),\n async checkpoint(options?: CheckpointRequest): Promise<CheckpointRef> {\n const result = await box.snapshot({\n ...(options?.name ? { tags: [options.name] } : {}),\n })\n return {\n id: result.snapshotId,\n provider: providerName,\n ...(options?.metadata ? { metadata: options.metadata } : {}),\n }\n },\n async fork(checkpoint: CheckpointRef, options?: ForkRequest): Promise<AgentEnvironment> {\n const forked = await client.create({\n fromSnapshot: checkpoint.id,\n fromSandboxId: String(box.id),\n ...(options?.name ? { name: options.name } : {}),\n ...(options?.metadata ? { metadata: options.metadata } : {}),\n })\n return sandboxInstanceAsEnvironment(forked, providerName, client)\n },\n async placement(): Promise<PlacementInfo> {\n return placementInfoFromLoopPlacement(client.describePlacement?.(box), box)\n },\n async refresh(): Promise<void> {\n await maybeRefresh(box)\n },\n async destroy(): Promise<void> {\n await destroyBox(box)\n },\n }\n return environment\n}\n\nfunction sandboxSessionAsAgentSession(session: SandboxSessionLike): AgentSession {\n return {\n id: session.id,\n async status(): Promise<AgentSessionStatus | null> {\n const status = await session.status()\n if (!status) return null\n return sessionStatusFromUnknown((status as { status?: unknown }).status)\n },\n async *events(options?: {\n since?: string\n signal?: AbortSignal\n }): AsyncIterable<AgentEnvironmentEvent> {\n for await (const event of session.events(options))\n yield environmentEventFromSandboxEvent(event)\n },\n async result(): Promise<AgentTurnResult> {\n return agentTurnResultFromPromptResult(await session.result())\n },\n async prompt(input: AgentTurnInput): Promise<AgentTurnResult> {\n return agentTurnResultFromPromptResult(\n await session.prompt(promptFromTurnInput(input), promptOptionsFromTurnInput(input)),\n )\n },\n cancel(): Promise<void> {\n return session.cancel()\n },\n }\n}\n\nfunction sessionAsSandboxSession(session: AgentSession | undefined): unknown {\n if (!session) throw new ValidationError('providerAsSandboxClient: session(id) returned undefined')\n return {\n id: session.id,\n status: session.status.bind(session),\n async *events(options?: {\n since?: string\n signal?: AbortSignal\n }): AsyncGenerator<SandboxEvent> {\n for await (const event of session.events(options))\n yield sandboxEventFromEnvironmentEvent(event)\n },\n async result(): Promise<PromptResult> {\n return promptResultFromAgentTurnResult(await session.result())\n },\n async prompt(message: string | InputPart[], options?: PromptOptions): Promise<PromptResult> {\n return promptResultFromAgentTurnResult(\n await session.prompt(turnInputFromPrompt(message, options)),\n )\n },\n cancel: session.cancel.bind(session),\n }\n}\n\nfunction environmentEventFromSandboxEvent(event: SandboxEvent): AgentEnvironmentEvent {\n const data =\n event.data && typeof event.data === 'object'\n ? (event.data as Record<string, unknown>)\n : ({} as Record<string, unknown>)\n return {\n type: String(event.type),\n data,\n ...(event.id ? { id: event.id } : {}),\n usage: tokenUsageFromData(data),\n providerEvent: event,\n }\n}\n\nfunction sandboxEventFromEnvironmentEvent(event: AgentEnvironmentEvent): SandboxEvent {\n return {\n type: event.type,\n data: {\n ...event.data,\n ...(event.usage ? { usage: tokenUsageData(event.usage) } : {}),\n },\n ...(event.id ? { id: event.id } : {}),\n }\n}\n\nfunction usageSandboxEvent(event: AgentEnvironmentEvent): SandboxEvent | undefined {\n if (!event.usage || isUsageType(event.type)) return undefined\n const usage = tokenUsageData(event.usage)\n if (\n usage.inputTokens === undefined &&\n usage.outputTokens === undefined &&\n usage.totalCostUsd === undefined\n ) {\n return undefined\n }\n return { type: 'llm_call', data: usage }\n}\n\nfunction tokenUsageData(usage: TokenUsage): Record<string, number | undefined> {\n return {\n inputTokens: usage.inputTokens,\n outputTokens: usage.outputTokens,\n totalCostUsd: usage.cost,\n }\n}\n\nfunction turnInputFromPrompt(\n message: string | InputPart[],\n options?: PromptOptions,\n): AgentTurnInput {\n return {\n ...(typeof message === 'string' ? { prompt: message } : { parts: message }),\n ...(options?.sessionId ? { sessionId: options.sessionId } : {}),\n ...(options?.model ? { model: options.model } : {}),\n ...(options?.timeoutMs ? { timeoutMs: options.timeoutMs } : {}),\n ...(options?.executionId ? { executionId: options.executionId } : {}),\n ...(options?.lastEventId ? { lastEventId: options.lastEventId } : {}),\n ...(options?.turnId ? { turnId: options.turnId } : {}),\n ...(options?.detach !== undefined ? { detach: options.detach } : {}),\n ...(options?.context ? { context: options.context } : {}),\n ...(options?.signal ? { signal: options.signal } : {}),\n ...(options?.backend ? { providerOptions: { backend: options.backend } } : {}),\n }\n}\n\nfunction promptFromTurnInput(input: AgentTurnInput): string | InputPart[] {\n if (input.parts) return input.parts\n return input.prompt ?? ''\n}\n\nfunction promptOptionsFromTurnInput(input: AgentTurnInput): PromptOptions {\n return {\n ...(input.sessionId ? { sessionId: input.sessionId } : {}),\n ...(input.model ? { model: input.model } : {}),\n ...(input.timeoutMs ? { timeoutMs: input.timeoutMs } : {}),\n ...(input.context ? { context: input.context } : {}),\n ...(input.signal ? { signal: input.signal } : {}),\n ...(input.executionId ? { executionId: input.executionId } : {}),\n ...(input.lastEventId ? { lastEventId: input.lastEventId } : {}),\n ...(input.turnId ? { turnId: input.turnId } : {}),\n ...(input.detach !== undefined ? { detach: input.detach } : {}),\n }\n}\n\nfunction taskToTurnInput(task: unknown, signal: AbortSignal): AgentTurnInput {\n return { prompt: taskToPrompt(task), signal }\n}\n\nfunction taskToPrompt(task: unknown): string {\n if (typeof task === 'string') return task\n if (task && typeof task === 'object') {\n const record = task as Record<string, unknown>\n for (const key of ['prompt', 'content', 'task', 'message']) {\n if (typeof record[key] === 'string') return record[key]\n }\n }\n return JSON.stringify(task)\n}\n\nfunction resultFromEvents(\n events: AgentEnvironmentEvent[],\n fallbackText: string,\n): { content: string; events: AgentEnvironmentEvent[] } {\n for (let i = events.length - 1; i >= 0; i -= 1) {\n const event = events[i]\n const text = event ? resultTextFromData(event.data) : undefined\n if (text !== undefined) return { content: text, events }\n }\n return { content: fallbackText, events }\n}\n\nfunction textFromEnvironmentEvent(event: AgentEnvironmentEvent): string {\n if (\n typeof event.normalized === 'object' &&\n event.normalized &&\n event.normalized.type === 'message.part.updated'\n ) {\n return typeof event.normalized.delta === 'string' ? event.normalized.delta : ''\n }\n const data = event.data\n for (const key of ['delta', 'chunk', 'content', 'text']) {\n if (typeof data[key] === 'string' && !isTerminalEnvironmentEvent(event)) return data[key]\n }\n return ''\n}\n\nfunction resultTextFromData(data: Record<string, unknown>): string | undefined {\n for (const key of ['finalText', 'text', 'response', 'resultSummary', 'content']) {\n if (typeof data[key] === 'string') return data[key]\n }\n return undefined\n}\n\nfunction isTerminalEnvironmentEvent(event: AgentEnvironmentEvent): boolean {\n if (event.type === 'result' || event.type === 'done' || event.type === 'final') return true\n if (event.type.endsWith('.completed') || event.type.endsWith('.failed')) return true\n if (event.type === 'status') {\n const status = event.data.status\n return status === 'completed' || status === 'failed' || status === 'cancelled'\n }\n return false\n}\n\nfunction isUsageType(type: string): boolean {\n return type === 'llm_call' || type === 'usage' || type === 'cost.usage'\n}\n\nfunction usageFromEnvironmentEvent(event: AgentEnvironmentEvent): {\n input: number\n output: number\n usd: number\n} {\n const usage = event.usage ?? tokenUsageFromData(event.data)\n return {\n input: finiteNumber(usage?.inputTokens) ?? 0,\n output: finiteNumber(usage?.outputTokens) ?? 0,\n usd:\n finiteNumber(usage?.cost) ??\n finiteNumber(event.data.costUsd) ??\n finiteNumber(event.data.totalCostUsd) ??\n 0,\n }\n}\n\nfunction tokenUsageFromData(data: Record<string, unknown>): TokenUsage | undefined {\n const usageRecord =\n data.usage && typeof data.usage === 'object'\n ? (data.usage as Record<string, unknown>)\n : data.tokenUsage && typeof data.tokenUsage === 'object'\n ? (data.tokenUsage as Record<string, unknown>)\n : data\n const inputTokens =\n finiteNumber(usageRecord.inputTokens) ??\n finiteNumber(usageRecord.tokensIn) ??\n finiteNumber(usageRecord.prompt_tokens)\n const outputTokens =\n finiteNumber(usageRecord.outputTokens) ??\n finiteNumber(usageRecord.tokensOut) ??\n finiteNumber(usageRecord.completion_tokens)\n const cost =\n finiteNumber(usageRecord.cost) ??\n finiteNumber(usageRecord.costUsd) ??\n finiteNumber(usageRecord.totalCostUsd) ??\n finiteNumber(data.costUsd) ??\n finiteNumber(data.totalCostUsd)\n if (inputTokens === undefined && outputTokens === undefined && cost === undefined)\n return undefined\n return {\n inputTokens: inputTokens ?? 0,\n outputTokens: outputTokens ?? 0,\n ...(cost !== undefined ? { cost } : {}),\n }\n}\n\nfunction mergeTokenUsage(\n left: TokenUsage | undefined,\n right: TokenUsage | undefined,\n): TokenUsage | undefined {\n if (!left) return right\n if (!right) return left\n return {\n inputTokens: left.inputTokens + right.inputTokens,\n outputTokens: left.outputTokens + right.outputTokens,\n ...(left.cost !== undefined || right.cost !== undefined\n ? { cost: (left.cost ?? 0) + (right.cost ?? 0) }\n : {}),\n }\n}\n\nfunction finiteNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined\n}\n\ntype PromptResultCompatInput = {\n response?: string\n success: boolean\n error?: string\n traceId?: string\n durationMs: number\n usage?: PromptResult['usage']\n}\n\nfunction promptResultCompat(\n input: PromptResultCompatInput,\n status: 'success' | 'failed',\n): PromptResult {\n // sandbox 0.8 omitted `status`; sandbox 0.9 requires it. Emit it at runtime\n // while keeping this adapter type-checkable across the supported peer range.\n return { ...input, status } as unknown as PromptResult\n}\n\nfunction promptResultFromAgentTurnResult(result: AgentTurnResult): PromptResult {\n return promptResultCompat(\n {\n response: result.text,\n success: result.success,\n durationMs: 0,\n ...(result.error ? { error: result.error } : {}),\n ...(result.usage ? { usage: result.usage } : {}),\n },\n result.success ? 'success' : 'failed',\n )\n}\n\nfunction agentTurnResultFromPromptResult(result: PromptResult): AgentTurnResult {\n const record = result as unknown as Record<string, unknown>\n const text =\n typeof record.response === 'string'\n ? record.response\n : typeof record.text === 'string'\n ? record.text\n : typeof record.finalText === 'string'\n ? record.finalText\n : ''\n const success = typeof record.success === 'boolean' ? record.success : true\n return {\n text,\n success,\n ...(typeof record.error === 'string' ? { error: record.error } : {}),\n usage: tokenUsageFromData(record),\n }\n}\n\nfunction sandboxDispatchResultFromSessionRef(session: AgentSessionRef): Record<string, unknown> {\n const hasStatus = session.metadata && Object.hasOwn(session.metadata, 'status')\n const status = hasStatus ? sessionStatusFromUnknown(session.metadata?.status) : 'running'\n return {\n sessionId: session.id,\n status,\n alreadyExisted: session.metadata?.alreadyExisted === true,\n }\n}\n\nfunction sessionRefFromSandboxDispatch(dispatched: unknown, providerName: string): AgentSessionRef {\n const record =\n dispatched && typeof dispatched === 'object'\n ? (dispatched as Record<string, unknown>)\n : undefined\n const id = record?.sessionId ?? record?.id\n if (typeof id !== 'string' || id.length === 0) {\n throw new ValidationError('sandboxClientAsProvider: dispatch returned no session id')\n }\n if (!record) {\n throw new ValidationError('sandboxClientAsProvider: dispatch returned no session record')\n }\n return {\n id,\n provider: providerName,\n metadata: {\n ...(record.status ? { status: record.status } : {}),\n ...(record.alreadyExisted !== undefined ? { alreadyExisted: record.alreadyExisted } : {}),\n },\n }\n}\n\nfunction execResultFromSandboxExecResult(result: SandboxExecResult): ExecResult {\n const record = result as unknown as Record<string, unknown>\n const exitCode = finiteNumber(record.exitCode) ?? finiteNumber(record.code)\n if (exitCode === undefined) {\n throw new ValidationError('sandboxClientAsProvider: exec returned no exit code')\n }\n return {\n exitCode,\n stdout: typeof record.stdout === 'string' ? record.stdout : '',\n stderr: typeof record.stderr === 'string' ? record.stderr : '',\n }\n}\n\nfunction statusFromUnknown(status: unknown): AgentEnvironmentStatus {\n if (status === 'pending' || status === 'provisioning' || status === 'running') return status\n if (status === 'stopped' || status === 'failed' || status === 'expired') return status\n if (status === 'completed') return 'stopped'\n if (status === 'cancelled') return 'stopped'\n return 'unknown'\n}\n\nfunction sessionStatusFromUnknown(status: unknown): AgentSessionStatus | null {\n if (status === 'completed' || status === 'cancelled') return status\n return statusFromUnknown(status)\n}\n\nfunction readBoxStatus(box: SandboxInstance): unknown {\n return (box as unknown as { status?: unknown }).status\n}\n\nfunction readBoxMetadata(box: SandboxInstance): Record<string, unknown> | undefined {\n const metadata = (box as unknown as { metadata?: unknown }).metadata\n return metadata && typeof metadata === 'object'\n ? (metadata as Record<string, unknown>)\n : undefined\n}\n\nasync function maybeRefresh(box: SandboxInstance): Promise<void> {\n const refresh = (box as unknown as { refresh?: () => Promise<void> }).refresh\n if (typeof refresh === 'function') await refresh.call(box)\n}\n\nasync function destroyBox(box: SandboxInstance): Promise<void> {\n const deleteBox = (box as unknown as { delete?: () => Promise<void> }).delete\n if (typeof deleteBox === 'function') await deleteBox.call(box)\n}\n\nfunction placementInfoFromLoopPlacement(\n placement: LoopSandboxPlacement | undefined,\n box: SandboxInstance,\n): PlacementInfo {\n if (!placement) return { kind: 'sandbox', sandboxId: String(box.id) }\n return {\n kind: placement.kind === 'fleet' ? 'fleet' : 'sandbox',\n ...(placement.sandboxId ? { sandboxId: placement.sandboxId } : { sandboxId: String(box.id) }),\n ...(placement.fleetId ? { fleetId: placement.fleetId } : {}),\n ...(placement.machineId ? { machineId: placement.machineId } : {}),\n }\n}\n\nfunction defaultTangleSandboxCapabilities(): AgentEnvironmentCapabilities {\n return {\n profile: {\n namedProfiles: true,\n systemPrompt: true,\n instructions: true,\n tools: true,\n permissions: true,\n mcp: true,\n subagents: true,\n resources: {\n files: true,\n instructions: true,\n tools: true,\n skills: true,\n agents: true,\n commands: true,\n },\n hooks: true,\n modes: true,\n runtimeUpdate: true,\n validation: true,\n },\n streaming: { live: true, replay: true, detach: true, turnIdempotency: true },\n sessions: { continue: true, list: true, messages: true },\n workspace: { read: true, write: true, exec: true, git: true, upload: true, download: true },\n branching: { checkpoint: true, fork: true },\n placement: true,\n usage: true,\n confidential: true,\n }\n}\n\nfunction mergeAbortSignals(a: AbortSignal, b: AbortSignal): AbortSignal {\n const controller = new AbortController()\n const abort = () => controller.abort()\n if (a.aborted || b.aborted) controller.abort()\n else {\n a.addEventListener('abort', abort, { once: true })\n b.addEventListener('abort', abort, { once: true })\n }\n return controller.signal\n}\n\nfunction contentRef(prefix: string, value: unknown): string {\n let str: string\n try {\n str = JSON.stringify(value) ?? String(value)\n } catch {\n str = String(value)\n }\n let hash = 0x811c9dc5\n for (let i = 0; i < str.length; i += 1) {\n hash ^= str.charCodeAt(i)\n hash = Math.imul(hash, 0x01000193)\n }\n return `${prefix}:${(hash >>> 0).toString(16).padStart(8, '0')}`\n}\n\nfunction hasGet(\n client: SandboxClient,\n): client is SandboxClient & { get(id: string): Promise<SandboxInstance | null> } {\n return typeof (client as { get?: unknown }).get === 'function'\n}\n\nfunction hasList(\n client: SandboxClient,\n): client is SandboxClient & { list(options?: unknown): Promise<SandboxInstance[]> } {\n return typeof (client as { list?: unknown }).list === 'function'\n}\n\nfunction hasDispatchPrompt(box: SandboxInstance): box is SandboxInstance & {\n dispatchPrompt(message: string | InputPart[], options?: PromptOptions): Promise<unknown>\n} {\n return typeof (box as { dispatchPrompt?: unknown }).dispatchPrompt === 'function'\n}\n\nfunction hasSession(\n box: SandboxInstance,\n): box is SandboxInstance & { session(id: string): SandboxSessionLike } {\n return typeof (box as { session?: unknown }).session === 'function'\n}\n\nfunction hasRead(box: SandboxInstance): box is SandboxInstance & {\n read(path: string, options?: { sessionId?: string }): Promise<string>\n} {\n return typeof (box as { read?: unknown }).read === 'function'\n}\n\nfunction hasWrite(\n box: SandboxInstance,\n): box is SandboxInstance & { write(path: string, content: string): Promise<void> } {\n return typeof (box as { write?: unknown }).write === 'function'\n}\n\nfunction hasExec(box: SandboxInstance): box is SandboxInstance & {\n exec(command: string, options?: unknown): Promise<SandboxExecResult>\n} {\n return typeof (box as { exec?: unknown }).exec === 'function'\n}\n\ninterface SandboxSessionLike {\n readonly id: string\n status(): Promise<unknown | null>\n events(options?: { since?: string; signal?: AbortSignal }): AsyncIterable<SandboxEvent>\n result(): Promise<PromptResult>\n prompt(message: string | InputPart[], options?: PromptOptions): Promise<PromptResult>\n cancel(): Promise<void>\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|