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

Method process

packages/opencode/src/acp/permission.ts:51–89  ·  view source on GitHub ↗
(event: PermissionEvent)

Source from the content-addressed store, hash-verified

49 }
50
51 private async process(event: PermissionEvent) {
52 const permission = event.properties
53 const session = await Effect.runPromise(this.input.session.tryGet(permission.sessionID))
54 if (!session) return
55
56 if (!this.input.connection.requestPermission) {
57 await this.reply(permission.id, "reject", session.cwd)
58 return
59 }
60
61 const result = await this.input.connection
62 .requestPermission({
63 sessionId: permission.sessionID,
64 toolCall: await permissionToolCall({
65 toolCallId: permission.tool?.callID ?? permission.id,
66 toolName: permission.permission,
67 input: permission.metadata,
68 }),
69 options: permissionOptions,
70 })
71 .catch(async () => {
72 await this.reply(permission.id, "reject", session.cwd)
73 return undefined
74 })
75
76 if (!result) return
77
78 const reply = selectedReply(result)
79 if (reply !== "once" && reply !== "always") {
80 await this.reply(permission.id, "reject", session.cwd)
81 return
82 }
83
84 if (permission.permission === "edit") {
85 await this.writeProposedEdit(session.id, permission.metadata).catch(() => {})
86 }
87
88 await this.reply(permission.id, reply, session.cwd)
89 }
90
91 private async reply(requestID: string, reply: Reply, directory: string) {
92 await this.input.sdk.permission.reply({

Callers 5

handleMethod · 0.95
compaction.test.tsFile · 0.80
prompt.tsFile · 0.80
compaction.tsFile · 0.80

Calls 4

replyMethod · 0.95
writeProposedEditMethod · 0.95
permissionToolCallFunction · 0.85
selectedReplyFunction · 0.85

Tested by

no test coverage detected