e4399e11d51144582018d50f28d70f8248b0b638

Author
TheEdgeOfRage <git@theedgeofrage.com>
Committer
TheEdgeOfRage <git@theedgeofrage.com>
Date

Message

Prefix policy engine commands

Diff

This diff is truncated to protect this page.

 1diff --git a/AGENTS.md b/AGENTS.md
 2index f924103851d0791d1ea5945ca711f4d3ae7d3415..d62d5524f857314d2ee819d3bef363a36da97863 100644
 3--- a/AGENTS.md
 4+++ b/AGENTS.md
 5@@ -19,7 +19,7 @@ Pi evaluates session Bash overrides and static permissions before deterministic
 6 
 7 OpenCode converts each `permission.asked` pattern to a policy request. It has no Pi prechecks.
 8 
 9diff --git a/README.md b/README.md
10index 3c992544adeacaca6b25bf7fbda1c1c5a7389775..4ef9afe4399f2350ca93ec2313f82ad628843ff8 100644
11--- a/README.md
12+++ b/README.md
13@@ -95,7 +95,7 @@ Pi uses root-level `tools` and `externalDirectories` maps. Any tool name can be
14 
15 ## Pi behavior
16 
17diff --git a/src/pi/index.ts b/src/pi/index.ts
18index ddeb06fe0c5ab6c2a6b2721276dea3d42d724f9d..80186211b297c79877ebfd42d3de8f9975a25626 100644
19--- a/src/pi/index.ts
20+++ b/src/pi/index.ts
21@@ -116,14 +116,14 @@ export default function policyEngine(pi: ExtensionAPI) {
22     )
23   })
24 
25-  pi.registerCommand("allow-bash", {
26+  pi.registerCommand("pe-allow-bash", {
27     description: "Temporarily allow Bash commands that match a regular expression",
28     handler: async (args, ctx) => {
29       const source = args.trim()
30       if (!source) {
31         const status = sessionBashAllowOverride
32           ? `Temporary Bash allow override: /${sessionBashAllowOverride.source}/`
33-          : "No temporary Bash allow override. Use /allow-bash <regular expression>."
34+          : "No temporary Bash allow override. Use /pe-allow-bash <regular expression>."
35         ctx.ui.notify(status, "info")
36         return
37       }
38@@ -154,7 +154,7 @@ export default function policyEngine(pi: ExtensionAPI) {
39     },
40   })
41 
42-  pi.registerCommand("skip-permissions", {
43+  pi.registerCommand("pe-skip-permissions", {
44     description: "Temporarily skip LLM permission checks",
45     handler: async (args, ctx) => {
46       if (args.trim() === "clear") {
47@@ -163,7 +163,7 @@ export default function policyEngine(pi: ExtensionAPI) {
48         return
49       }
50       skipPermissions = true
51-      ctx.ui.notify("LLM permission checks disabled until this extension reloads. Use /skip-permissions clear to re-enable them.", "warning")
52+      ctx.ui.notify("LLM permission checks disabled until this extension reloads. Use /pe-skip-permissions clear to re-enable them.", "warning")
53     },
54   })
55 
56diff --git a/test/pi/extension.test.ts b/test/pi/extension.test.ts
57index acbd364ff2a3ad9cf06f30a57156a99870400096..4db1204c76fa4381b885d4adae4e45e010cf13c7 100644
58--- a/test/pi/extension.test.ts
59+++ b/test/pi/extension.test.ts
60@@ -42,8 +42,8 @@ function loadExtension() {
61       if (event === "session_start") sessionStart = callback as SessionStartHandler
62     },
63     registerCommand(name: string, command: { handler: CommandHandler }) {
64-      if (name === "allow-bash") allowBash = command.handler
65-      if (name === "skip-permissions") skipPermissions = command.handler
66+      if (name === "pe-allow-bash") allowBash = command.handler
67+      if (name === "pe-skip-permissions") skipPermissions = command.handler
68     },
69     appendEntry(customType: string, data: unknown) {
70       entries.push({ customType, data })