MCPcopy Index your code
hub / github.com/anomalyco/opencode / context

Function context

packages/opencode/src/session/tools.ts:56–87  ·  view source on GitHub ↗
(args: Record<string, unknown>, options: ToolExecutionOptions)

Source from the content-addressed store, hash-verified

54 const truncate = yield* Truncate.Service
55
56 const context = (args: Record<string, unknown>, options: ToolExecutionOptions): Tool.Context => ({
57 sessionID: input.session.id,
58 abort: options.abortSignal!,
59 messageID: input.processor.message.id,
60 callID: options.toolCallId,
61 extra: { model: input.model, bypassAgentCheck: input.bypassAgentCheck, promptOps: input.promptOps },
62 agent: input.agent.name,
63 messages: input.messages,
64 metadata: (val) =>
65 input.processor.updateToolCall(options.toolCallId, (match) => {
66 if (!["running", "pending"].includes(match.state.status)) return match
67 return {
68 ...match,
69 state: {
70 title: val.title,
71 metadata: val.metadata,
72 status: "running",
73 input: args,
74 time: { start: Date.now() },
75 },
76 }
77 }),
78 ask: (req) =>
79 permission
80 .ask({
81 ...req,
82 sessionID: input.session.id,
83 tool: { messageID: input.processor.message.id, callID: options.toolCallId },
84 ruleset: Permission.merge(input.agent.permission, input.session.permission ?? []),
85 })
86 .pipe(Effect.orDie),
87 })
88
89 for (const item of yield* registry.tools({
90 modelID: ModelV2.ID.make(input.model.api.id),

Callers 2

executeFunction · 0.70
tools.tsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected