@gotgenes/pi-permission-system 5.11.0 → 5.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/package.json +5 -5
- package/src/active-agent.ts +1 -1
- package/src/config-modal.ts +2 -2
- package/src/forwarded-permissions/polling.ts +1 -1
- package/src/forwarding-manager.ts +1 -1
- package/src/handlers/before-agent-start.ts +1 -1
- package/src/handlers/lifecycle.ts +1 -1
- package/src/handlers/permission-gate-handler.ts +1 -1
- package/src/index.ts +1 -1
- package/src/permission-event-rpc.ts +1 -1
- package/src/permission-prompter.ts +1 -1
- package/src/permission-session.ts +1 -1
- package/src/policy-loader.ts +1 -1
- package/src/runtime.ts +1 -1
- package/src/status.ts +1 -1
- package/src/subagent-context.ts +1 -1
- package/tests/active-agent.test.ts +1 -1
- package/tests/config-modal.test.ts +2 -2
- package/tests/forwarding-manager.test.ts +1 -1
- package/tests/handlers/before-agent-start.test.ts +3 -3
- package/tests/handlers/gates/skill-read.test.ts +2 -2
- package/tests/handlers/input-events.test.ts +1 -1
- package/tests/handlers/input.test.ts +1 -1
- package/tests/handlers/lifecycle.test.ts +1 -1
- package/tests/handlers/tool-call-events.test.ts +1 -1
- package/tests/handlers/tool-call.test.ts +3 -3
- package/tests/permission-event-rpc.test.ts +1 -1
- package/tests/permission-prompter.test.ts +1 -1
- package/tests/permission-session.test.ts +1 -1
- package/tests/runtime.test.ts +1 -1
- package/tests/subagent-context.test.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [5.11.1](https://github.com/gotgenes/pi-permission-system/compare/v5.11.0...v5.11.1) (2026-05-08)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
* **retro:** add retro notes for issue [#130](https://github.com/gotgenes/pi-permission-system/issues/130) ([e2ed7cb](https://github.com/gotgenes/pi-permission-system/commit/e2ed7cbbabe2dabf5689704c14b59fc662c1e7d4))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Miscellaneous Chores
|
|
17
|
+
|
|
18
|
+
* migrate @mariozechner/* deps to @earendil-works/* ([8908be1](https://github.com/gotgenes/pi-permission-system/commit/8908be17624a60ff3272b9e0e0a720a239de2de5))
|
|
19
|
+
|
|
8
20
|
## [5.11.0](https://github.com/gotgenes/pi-permission-system/compare/v5.10.0...v5.11.0) (2026-05-08)
|
|
9
21
|
|
|
10
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gotgenes/pi-permission-system",
|
|
3
|
-
"version": "5.11.
|
|
3
|
+
"version": "5.11.1",
|
|
4
4
|
"description": "Permission enforcement extension for the Pi coding agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@
|
|
52
|
-
"@
|
|
51
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
52
|
+
"@earendil-works/pi-tui": "*"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@biomejs/biome": "^2.4.13",
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
56
|
+
"@earendil-works/pi-coding-agent": "^0.74.0",
|
|
57
|
+
"@earendil-works/pi-tui": "^0.74.0",
|
|
58
58
|
"@types/node": "^25.6.0",
|
|
59
59
|
"markdownlint-cli2": "^0.22.1",
|
|
60
60
|
"typescript": "6.0.3",
|
package/src/active-agent.ts
CHANGED
package/src/config-modal.ts
CHANGED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
type ExtensionAPI,
|
|
3
3
|
type ExtensionCommandContext,
|
|
4
4
|
getSettingsListTheme,
|
|
5
|
-
} from "@
|
|
6
|
-
import { type SettingItem, SettingsList } from "@
|
|
5
|
+
} from "@earendil-works/pi-coding-agent";
|
|
6
|
+
import { type SettingItem, SettingsList } from "@earendil-works/pi-tui";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
DEFAULT_EXTENSION_CONFIG,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
|
|
3
3
|
import type { PermissionForwardingDeps } from "./forwarded-permissions/polling";
|
|
4
4
|
import { processForwardedPermissionRequests } from "./forwarded-permissions/polling";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
|
|
3
3
|
import type { PermissionSession } from "../permission-session";
|
|
4
4
|
import { PERMISSION_SYSTEM_STATUS_KEY } from "../status";
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionAPI } from "@
|
|
1
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { registerPermissionSystemCommand } from "./config-modal";
|
|
3
3
|
import { getGlobalConfigPath } from "./config-paths";
|
|
4
4
|
import type { PermissionForwardingDeps } from "./forwarded-permissions/polling";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the Pi event bus so other extensions can query our policy and forward
|
|
6
6
|
* permission prompts without importing this package.
|
|
7
7
|
*/
|
|
8
|
-
import type { ExtensionContext } from "@
|
|
8
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import type {
|
|
10
10
|
PermissionPromptDecision,
|
|
11
11
|
RequestPermissionOptions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import type { PermissionSystemExtensionConfig } from "./extension-config";
|
|
3
3
|
import type { ForwardedPermissionLogger } from "./forwarded-permissions/io";
|
|
4
4
|
import {
|
package/src/policy-loader.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { getAgentDir } from "@
|
|
3
|
+
import { getAgentDir } from "@earendil-works/pi-coding-agent";
|
|
4
4
|
|
|
5
5
|
import { extractFrontmatter, parseSimpleYamlMap, toRecord } from "./common";
|
|
6
6
|
import {
|
package/src/runtime.ts
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
type ExtensionCommandContext,
|
|
11
11
|
type ExtensionContext,
|
|
12
12
|
getAgentDir,
|
|
13
|
-
} from "@
|
|
13
|
+
} from "@earendil-works/pi-coding-agent";
|
|
14
14
|
|
|
15
15
|
import { loadAndMergeConfigs, loadUnifiedConfig } from "./config-loader";
|
|
16
16
|
import {
|
package/src/status.ts
CHANGED
package/src/subagent-context.ts
CHANGED
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
} from "../src/extension-config";
|
|
13
13
|
import type { Rule } from "../src/rule";
|
|
14
14
|
|
|
15
|
-
vi.mock("@
|
|
15
|
+
vi.mock("@earendil-works/pi-coding-agent", () => ({
|
|
16
16
|
getSettingsListTheme: () => ({}),
|
|
17
17
|
}));
|
|
18
18
|
|
|
19
|
-
vi.mock("@
|
|
19
|
+
vi.mock("@earendil-works/pi-tui", () => ({
|
|
20
20
|
SettingsList: class {
|
|
21
21
|
handleInput(): void {}
|
|
22
22
|
updateValue(): void {}
|
|
@@ -24,7 +24,7 @@ function makeCtx(overrides: { hasUI?: boolean; sessionId?: string } = {}) {
|
|
|
24
24
|
getSessionId: vi.fn().mockReturnValue(overrides.sessionId ?? "sess-1"),
|
|
25
25
|
},
|
|
26
26
|
cwd: "/project",
|
|
27
|
-
} as unknown as import("@
|
|
27
|
+
} as unknown as import("@earendil-works/pi-coding-agent").ExtensionContext;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function makeForwardingDeps() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { describe, expect, it, vi } from "vitest";
|
|
3
3
|
|
|
4
4
|
import {
|
|
@@ -10,9 +10,9 @@ import type { ToolRegistry } from "../../src/tool-registry";
|
|
|
10
10
|
import type { PermissionState } from "../../src/types";
|
|
11
11
|
|
|
12
12
|
// ── SDK stubs ──────────────────────────────────────────────────────────────
|
|
13
|
-
vi.mock("@
|
|
13
|
+
vi.mock("@earendil-works/pi-coding-agent", async (importOriginal) => {
|
|
14
14
|
const original =
|
|
15
|
-
await importOriginal<typeof import("@
|
|
15
|
+
await importOriginal<typeof import("@earendil-works/pi-coding-agent")>();
|
|
16
16
|
return {
|
|
17
17
|
...original,
|
|
18
18
|
isToolCallEventType: vi.fn().mockReturnValue(false),
|
|
@@ -6,9 +6,9 @@ import type { ToolCallContext } from "../../../src/handlers/gates/types";
|
|
|
6
6
|
import type { SkillPromptEntry } from "../../../src/skill-prompt-sanitizer";
|
|
7
7
|
|
|
8
8
|
// ── SDK stubs ──────────────────────────────────────────────────────────────
|
|
9
|
-
vi.mock("@
|
|
9
|
+
vi.mock("@earendil-works/pi-coding-agent", async (importOriginal) => {
|
|
10
10
|
const original =
|
|
11
|
-
await importOriginal<typeof import("@
|
|
11
|
+
await importOriginal<typeof import("@earendil-works/pi-coding-agent")>();
|
|
12
12
|
return { ...original };
|
|
13
13
|
});
|
|
14
14
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tests that handleInput emits permissions:decision events for skill input gates.
|
|
3
3
|
*/
|
|
4
|
-
import type { ExtensionContext } from "@
|
|
4
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
5
5
|
import { describe, expect, it, vi } from "vitest";
|
|
6
6
|
|
|
7
7
|
import { PermissionGateHandler } from "../../src/handlers/permission-gate-handler";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { describe, expect, it, vi } from "vitest";
|
|
3
3
|
import { SessionLifecycleHandler } from "../../src/handlers/lifecycle";
|
|
4
4
|
import type { PermissionSession } from "../../src/permission-session";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tests that handleToolCall emits permissions:decision events at every
|
|
3
3
|
* gate resolution and fast-path site.
|
|
4
4
|
*/
|
|
5
|
-
import type { ExtensionContext } from "@
|
|
5
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
6
6
|
import { describe, expect, it, vi } from "vitest";
|
|
7
7
|
|
|
8
8
|
import { PermissionGateHandler } from "../../src/handlers/permission-gate-handler";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { describe, expect, it, vi } from "vitest";
|
|
3
3
|
|
|
4
4
|
import {
|
|
@@ -10,9 +10,9 @@ import type { ToolRegistry } from "../../src/tool-registry";
|
|
|
10
10
|
import type { PermissionCheckResult, PermissionState } from "../../src/types";
|
|
11
11
|
|
|
12
12
|
// ── SDK stubs ──────────────────────────────────────────────────────────────
|
|
13
|
-
vi.mock("@
|
|
13
|
+
vi.mock("@earendil-works/pi-coding-agent", async (importOriginal) => {
|
|
14
14
|
const original =
|
|
15
|
-
await importOriginal<typeof import("@
|
|
15
|
+
await importOriginal<typeof import("@earendil-works/pi-coding-agent")>();
|
|
16
16
|
return { ...original };
|
|
17
17
|
});
|
|
18
18
|
|
|
@@ -13,7 +13,7 @@ vi.mock("../src/forwarded-permissions/polling", () => ({
|
|
|
13
13
|
|
|
14
14
|
// ── Imports (after mocks) ───────────────────────────────────────────────────
|
|
15
15
|
|
|
16
|
-
import type { ExtensionContext } from "@
|
|
16
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
17
17
|
import { DEFAULT_EXTENSION_CONFIG } from "../src/extension-config";
|
|
18
18
|
import type { PermissionPromptDecision } from "../src/permission-dialog";
|
|
19
19
|
import type { PromptPermissionDetails } from "../src/permission-prompter";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
3
|
|
|
4
4
|
// ── Module mocks (hoisted) ─────────────────────────────────────────────────
|
package/tests/runtime.test.ts
CHANGED
|
@@ -66,7 +66,7 @@ vi.mock("../src/session-rules", () => ({
|
|
|
66
66
|
deriveApprovalPattern: vi.fn(),
|
|
67
67
|
}));
|
|
68
68
|
|
|
69
|
-
import type { ExtensionContext } from "@
|
|
69
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
70
70
|
import {
|
|
71
71
|
getGlobalConfigPath,
|
|
72
72
|
getGlobalLogsDir,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtensionContext } from "@
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import { afterEach, describe, expect, test, vi } from "vitest";
|
|
3
3
|
import { SUBAGENT_ENV_HINT_KEYS } from "../src/permission-forwarding";
|
|
4
4
|
import {
|