killeros 2.1.30 → 2.1.31

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.
@@ -1,47 +1,47 @@
1
- type CodexFastStateListener = () => void;
2
-
3
- interface CodexFastState {
4
- enabled: boolean;
5
- listeners: Set<CodexFastStateListener>;
6
- }
7
-
8
- declare global {
9
- var __killerosCodexFastState: unknown;
10
- }
11
-
12
- // Accepts process-global state only when it is safe to reuse across extension versions.
13
- function isCodexFastState(value: unknown): value is CodexFastState {
14
- return typeof value === "object" && value !== null
15
- && "enabled" in value && typeof value.enabled === "boolean"
16
- && "listeners" in value && value.listeners instanceof Set
17
- && [...value.listeners].every((listener) => typeof listener === "function");
18
- }
19
-
20
- const savedState = globalThis.__killerosCodexFastState;
21
- const state: CodexFastState = isCodexFastState(savedState) ? savedState : {
22
- enabled: typeof savedState === "object" && savedState !== null
23
- && "enabled" in savedState && savedState.enabled === true,
24
- listeners: new Set<CodexFastStateListener>(),
25
- };
26
- globalThis.__killerosCodexFastState = state;
27
-
28
- export function isCodexFastEnabled(): boolean {
29
- return state.enabled;
30
- }
31
-
32
- export function toggleCodexFast(): boolean {
33
- state.enabled = !state.enabled;
34
- for (const listener of [...state.listeners]) listener();
35
- return state.enabled;
36
- }
37
-
38
- export function subscribeCodexFast(listener: CodexFastStateListener): () => void {
39
- state.listeners.add(listener);
40
- return () => state.listeners.delete(listener);
41
- }
42
-
43
- /** Test-only reset for the process-global state between isolated harnesses. */
44
- export function resetCodexFastState(): void {
45
- state.enabled = false;
46
- state.listeners.clear();
47
- }
1
+ type CodexFastStateListener = () => void;
2
+
3
+ interface CodexFastState {
4
+ enabled: boolean;
5
+ listeners: Set<CodexFastStateListener>;
6
+ }
7
+
8
+ declare global {
9
+ var __killerosCodexFastState: unknown;
10
+ }
11
+
12
+ // Accepts process-global state only when it is safe to reuse across extension versions.
13
+ function isCodexFastState(value: unknown): value is CodexFastState {
14
+ return typeof value === "object" && value !== null
15
+ && "enabled" in value && typeof value.enabled === "boolean"
16
+ && "listeners" in value && value.listeners instanceof Set
17
+ && [...value.listeners].every((listener) => typeof listener === "function");
18
+ }
19
+
20
+ const savedState = globalThis.__killerosCodexFastState;
21
+ const state: CodexFastState = isCodexFastState(savedState) ? savedState : {
22
+ enabled: typeof savedState === "object" && savedState !== null
23
+ && "enabled" in savedState && savedState.enabled === true,
24
+ listeners: new Set<CodexFastStateListener>(),
25
+ };
26
+ globalThis.__killerosCodexFastState = state;
27
+
28
+ export function isCodexFastEnabled(): boolean {
29
+ return state.enabled;
30
+ }
31
+
32
+ export function toggleCodexFast(): boolean {
33
+ state.enabled = !state.enabled;
34
+ for (const listener of [...state.listeners]) listener();
35
+ return state.enabled;
36
+ }
37
+
38
+ export function subscribeCodexFast(listener: CodexFastStateListener): () => void {
39
+ state.listeners.add(listener);
40
+ return () => state.listeners.delete(listener);
41
+ }
42
+
43
+ /** Test-only reset for the process-global state between isolated harnesses. */
44
+ export function resetCodexFastState(): void {
45
+ state.enabled = false;
46
+ state.listeners.clear();
47
+ }
@@ -1,36 +1,36 @@
1
- import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- import { isCodexFastEnabled, toggleCodexFast } from "./codex-fast-state.ts";
3
-
4
- const CODEX_PROVIDER = "openai-codex";
5
- type RequestPayload = Record<string, unknown>;
6
-
7
- function isRequestPayload(value: unknown): value is RequestPayload {
8
- return typeof value === "object" && value !== null && !Array.isArray(value);
9
- }
10
-
11
- export function registerCodexFastMode(pi: ExtensionAPI): void {
12
- pi.registerCommand("codex-fast", {
13
- description: "Toggle or report Codex fast mode",
14
- handler: async (args, ctx) => {
15
- const trimmed = args.trim();
16
- if (trimmed === "status") {
17
- ctx.ui.notify(`Codex fast mode: ${isCodexFastEnabled() ? "enabled" : "disabled"}`, "info");
18
- return;
19
- }
20
- if (trimmed) {
21
- ctx.ui.notify("Usage: /codex-fast [status]", "error");
22
- return;
23
- }
24
-
25
- const enabled = toggleCodexFast();
26
- ctx.ui.notify(`Fast ${enabled ? "enabled" : "disabled"}`, "info");
27
- },
28
- });
29
-
30
- pi.on("before_provider_request", (event, ctx) => {
31
- if (!isCodexFastEnabled() || ctx.model?.provider !== CODEX_PROVIDER || !isRequestPayload(event.payload)) {
32
- return event.payload;
33
- }
34
- return { ...event.payload, service_tier: "priority" };
35
- });
36
- }
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ import { isCodexFastEnabled, toggleCodexFast } from "./codex-fast-state.ts";
3
+
4
+ const CODEX_PROVIDER = "openai-codex";
5
+ type RequestPayload = Record<string, unknown>;
6
+
7
+ function isRequestPayload(value: unknown): value is RequestPayload {
8
+ return typeof value === "object" && value !== null && !Array.isArray(value);
9
+ }
10
+
11
+ export function registerCodexFastMode(pi: ExtensionAPI): void {
12
+ pi.registerCommand("codex-fast", {
13
+ description: "Toggle or report Codex fast mode",
14
+ handler: async (args, ctx) => {
15
+ const trimmed = args.trim();
16
+ if (trimmed === "status") {
17
+ ctx.ui.notify(`Codex fast mode: ${isCodexFastEnabled() ? "enabled" : "disabled"}`, "info");
18
+ return;
19
+ }
20
+ if (trimmed) {
21
+ ctx.ui.notify("Usage: /codex-fast [status]", "error");
22
+ return;
23
+ }
24
+
25
+ const enabled = toggleCodexFast();
26
+ ctx.ui.notify(`Fast ${enabled ? "enabled" : "disabled"}`, "info");
27
+ },
28
+ });
29
+
30
+ pi.on("before_provider_request", (event, ctx) => {
31
+ if (!isCodexFastEnabled() || ctx.model?.provider !== CODEX_PROVIDER || !isRequestPayload(event.payload)) {
32
+ return event.payload;
33
+ }
34
+ return { ...event.payload, service_tier: "priority" };
35
+ });
36
+ }