refactor(permission): remove async facade exports (#22342)
This commit is contained in:
@@ -2,7 +2,6 @@ import { Bus } from "@/bus"
|
|||||||
import { BusEvent } from "@/bus/bus-event"
|
import { BusEvent } from "@/bus/bus-event"
|
||||||
import { Config } from "@/config/config"
|
import { Config } from "@/config/config"
|
||||||
import { InstanceState } from "@/effect/instance-state"
|
import { InstanceState } from "@/effect/instance-state"
|
||||||
import { makeRuntime } from "@/effect/run-service"
|
|
||||||
import { ProjectID } from "@/project/schema"
|
import { ProjectID } from "@/project/schema"
|
||||||
import { Instance } from "@/project/instance"
|
import { Instance } from "@/project/instance"
|
||||||
import { MessageID, SessionID } from "@/session/schema"
|
import { MessageID, SessionID } from "@/session/schema"
|
||||||
@@ -308,18 +307,4 @@ export namespace Permission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const defaultLayer = layer.pipe(Layer.provide(Bus.layer))
|
export const defaultLayer = layer.pipe(Layer.provide(Bus.layer))
|
||||||
|
|
||||||
export const { runPromise } = makeRuntime(Service, defaultLayer)
|
|
||||||
|
|
||||||
export async function ask(input: z.infer<typeof AskInput>) {
|
|
||||||
return runPromise((s) => s.ask(input))
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function reply(input: z.infer<typeof ReplyInput>) {
|
|
||||||
return runPromise((s) => s.reply(input))
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function list() {
|
|
||||||
return runPromise((s) => s.list())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { Hono } from "hono"
|
import { Hono } from "hono"
|
||||||
import { describeRoute, validator, resolver } from "hono-openapi"
|
import { describeRoute, validator, resolver } from "hono-openapi"
|
||||||
import z from "zod"
|
import z from "zod"
|
||||||
|
import { AppRuntime } from "@/effect/app-runtime"
|
||||||
import { Permission } from "@/permission"
|
import { Permission } from "@/permission"
|
||||||
import { PermissionID } from "@/permission/schema"
|
import { PermissionID } from "@/permission/schema"
|
||||||
import { errors } from "../error"
|
import { errors } from "../error"
|
||||||
@@ -36,11 +37,15 @@ export const PermissionRoutes = lazy(() =>
|
|||||||
async (c) => {
|
async (c) => {
|
||||||
const params = c.req.valid("param")
|
const params = c.req.valid("param")
|
||||||
const json = c.req.valid("json")
|
const json = c.req.valid("json")
|
||||||
await Permission.reply({
|
await AppRuntime.runPromise(
|
||||||
requestID: params.requestID,
|
Permission.Service.use((svc) =>
|
||||||
reply: json.reply,
|
svc.reply({
|
||||||
message: json.message,
|
requestID: params.requestID,
|
||||||
})
|
reply: json.reply,
|
||||||
|
message: json.message,
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
)
|
||||||
return c.json(true)
|
return c.json(true)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -62,7 +67,7 @@ export const PermissionRoutes = lazy(() =>
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
async (c) => {
|
async (c) => {
|
||||||
const permissions = await Permission.list()
|
const permissions = await AppRuntime.runPromise(Permission.Service.use((svc) => svc.list()))
|
||||||
return c.json(permissions)
|
return c.json(permissions)
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1070,10 +1070,14 @@ export const SessionRoutes = lazy(() =>
|
|||||||
validator("json", z.object({ response: Permission.Reply })),
|
validator("json", z.object({ response: Permission.Reply })),
|
||||||
async (c) => {
|
async (c) => {
|
||||||
const params = c.req.valid("param")
|
const params = c.req.valid("param")
|
||||||
Permission.reply({
|
await AppRuntime.runPromise(
|
||||||
requestID: params.permissionID,
|
Permission.Service.use((svc) =>
|
||||||
reply: c.req.valid("json").response,
|
svc.reply({
|
||||||
})
|
requestID: params.permissionID,
|
||||||
|
reply: c.req.valid("json").response,
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
)
|
||||||
return c.json(true)
|
return c.json(true)
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import { Wildcard } from "@/util/wildcard"
|
|||||||
import { SessionID } from "@/session/schema"
|
import { SessionID } from "@/session/schema"
|
||||||
import { Auth } from "@/auth"
|
import { Auth } from "@/auth"
|
||||||
import { Installation } from "@/installation"
|
import { Installation } from "@/installation"
|
||||||
|
import { AppRuntime } from "@/effect/app-runtime"
|
||||||
|
|
||||||
export namespace LLM {
|
export namespace LLM {
|
||||||
const log = Log.create({ service: "llm" })
|
const log = Log.create({ service: "llm" })
|
||||||
@@ -305,15 +306,19 @@ export namespace LLM {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
const uniquePatterns = [...new Set(toolPatterns)] as string[]
|
const uniquePatterns = [...new Set(toolPatterns)] as string[]
|
||||||
await Permission.ask({
|
await AppRuntime.runPromise(
|
||||||
id,
|
Permission.Service.use((svc) =>
|
||||||
sessionID: SessionID.make(input.sessionID),
|
svc.ask({
|
||||||
permission: "workflow_tool_approval",
|
id,
|
||||||
patterns: uniquePatterns,
|
sessionID: SessionID.make(input.sessionID),
|
||||||
metadata: { tools: approvalTools },
|
permission: "workflow_tool_approval",
|
||||||
always: uniquePatterns,
|
patterns: uniquePatterns,
|
||||||
ruleset: [],
|
metadata: { tools: approvalTools },
|
||||||
})
|
always: uniquePatterns,
|
||||||
|
ruleset: [],
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
)
|
||||||
for (const name of uniqueNames) approvedToolsForSession.add(name)
|
for (const name of uniqueNames) approvedToolsForSession.add(name)
|
||||||
workflowModel.sessionPreapprovedTools = [...(workflowModel.sessionPreapprovedTools ?? []), ...uniqueNames]
|
workflowModel.sessionPreapprovedTools = [...(workflowModel.sessionPreapprovedTools ?? []), ...uniqueNames]
|
||||||
return { approved: true }
|
return { approved: true }
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user