chore: generate

This commit is contained in:
opencode-agent[bot]
2026-06-02 01:34:11 +00:00
parent 9b815bcbd2
commit 8dc2ffd48f
11 changed files with 945 additions and 455 deletions

View File

@@ -16,7 +16,9 @@ export default {
CONSTRAINT \`fk_permission_project_id_project_id_fk\` FOREIGN KEY (\`project_id\`) REFERENCES \`project\`(\`id\`) ON DELETE CASCADE
);
`)
yield* tx.run(`CREATE UNIQUE INDEX \`permission_project_action_resource_idx\` ON \`permission\` (\`project_id\`,\`action\`,\`resource\`);`)
yield* tx.run(
`CREATE UNIQUE INDEX \`permission_project_action_resource_idx\` ON \`permission\` (\`project_id\`,\`action\`,\`resource\`);`,
)
})
},
} satisfies DatabaseMigration.Migration

View File

@@ -254,7 +254,11 @@ export const layer = Layer.effect(
}
if (input.reply === "always" && existing.request.save?.length) {
yield* saved.add({ projectID: location.project.id, action: existing.request.action, resources: existing.request.save })
yield* saved.add({
projectID: location.project.id,
action: existing.request.action,
resources: existing.request.save,
})
}
yield* Deferred.succeed(existing.deferred, undefined)
if (input.reply !== "always" || !existing.request.save?.length) return
@@ -269,7 +273,9 @@ export const layer = Layer.effect(
if (denied(input, rules)) continue
const effective = [...rules, ...rememberedRules]
if (
!item.request.resources.every((resource) => evaluate(item.request.action, resource, effective).effect === "allow")
!item.request.resources.every(
(resource) => evaluate(item.request.action, resource, effective).effect === "allow",
)
)
continue
pending.delete(id)

View File

@@ -54,14 +54,23 @@ export const layer = Layer.effect(
.where(input?.projectID ? eq(PermissionTable.project_id, input.projectID) : undefined)
.all()
.pipe(Effect.orDie)
return rows.map((row): Info => ({ id: row.id, projectID: row.project_id, action: row.action, resource: row.resource }))
return rows.map(
(row): Info => ({ id: row.id, projectID: row.project_id, action: row.action, resource: row.resource }),
)
})
const add = Effect.fn("PermissionSaved.add")(function* (input: AddInput) {
if (!input.resources.length) return
yield* db
.insert(PermissionTable)
.values(input.resources.map((resource) => ({ id: ID.create(), project_id: input.projectID, action: input.action, resource })))
.values(
input.resources.map((resource) => ({
id: ID.create(),
project_id: input.projectID,
action: input.action,
resource,
})),
)
.onConflictDoNothing()
.run()
.pipe(Effect.orDie)

View File

@@ -158,9 +158,7 @@ export const Plugin = PluginV2.define({
item.description =
"General-purpose agent for researching complex questions and executing multi-step tasks. Use this agent to execute multiple units of work in parallel."
item.mode = "subagent"
item.permissions.push(
...PermissionV2.merge(defaults, [{ action: "todowrite", resource: "*", effect: "deny" }]),
)
item.permissions.push(...PermissionV2.merge(defaults, [{ action: "todowrite", resource: "*", effect: "deny" }]))
})
editor.update(AgentV2.ID.make("explore"), (item) => {