pi-one-ui 0.7.0 → 0.7.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 +25 -1
- package/README.en.md +19 -6
- package/README.md +19 -6
- package/extensions/app/config/context.ts +42 -0
- package/extensions/app/config/editor.ts +80 -0
- package/extensions/app/config/footer.ts +291 -0
- package/extensions/app/config/panel.ts +1 -5
- package/extensions/app/config/renderer.ts +1 -6
- package/extensions/app/config/shell.ts +358 -1435
- package/extensions/app/config/store.ts +22 -1
- package/extensions/app/config/values.ts +33 -0
- package/extensions/app/config/working-line.ts +100 -0
- package/extensions/app/overlay/input-router.ts +56 -32
- package/extensions/app/overlay/overlay-manager.ts +183 -21
- package/extensions/app/runtime/event-coordinator.ts +90 -42
- package/extensions/{features → app/runtime}/flush-docked-bash.ts +12 -2
- package/extensions/app/runtime/render-scheduler.ts +35 -31
- package/extensions/app/runtime/tui-runtime.ts +315 -312
- package/extensions/app/settings/controller.ts +202 -0
- package/extensions/app/settings/panel.ts +81 -0
- package/extensions/app/settings/presets.ts +43 -0
- package/extensions/features/context-inspector/index.ts +83 -662
- package/extensions/layouts/context/index.ts +58 -161
- package/extensions/layouts/context/message/user-message.ts +1 -1
- package/extensions/layouts/context/renderer/index.ts +31 -13
- package/extensions/layouts/context/renderer/mouse/interaction.ts +29 -14
- package/extensions/layouts/editor/controller.ts +9 -18
- package/extensions/layouts/editor/factory.ts +3 -3
- package/extensions/layouts/footer/controller.ts +30 -19
- package/extensions/layouts/footer/footer.ts +2 -2
- package/extensions/layouts/overlay/context-inspector.ts +497 -0
- package/extensions/{app → layouts}/overlay/selector-border.ts +5 -5
- package/extensions/{app → layouts}/overlay/selector-controller.ts +1 -1
- package/extensions/layouts/overlay/settings-panel.ts +359 -0
- package/extensions/{app/commands → layouts/overlay}/settings-previews.ts +4 -4
- package/extensions/layouts/working-line/controller.ts +3 -29
- package/extensions/layouts/working-line/working-line.ts +17 -114
- package/extensions/shared/working-line-text.ts +108 -0
- package/package.json +1 -1
- package/extensions/app/host/pi-extension-port.ts +0 -25
- package/extensions/app/host/pi-ui-port.ts +0 -52
- package/extensions/app/host/tui-capabilities.ts +0 -27
- package/extensions/app/ownership/layout-registry.ts +0 -65
- package/extensions/app/ownership.ts +0 -32
- package/extensions/app/panel.ts +0 -770
- package/extensions/app/presets.ts +0 -35
- package/extensions/app/runtime/runtime-state.ts +0 -83
- /package/extensions/{layouts/working-line → app/config}/working-line-messages.ts +0 -0
- /package/extensions/app/{ownership → runtime}/prototype-patch-registry.ts +0 -0
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { updateConfig as updateRendererConfig } from "./config/renderer.ts";
|
|
2
|
-
import {
|
|
3
|
-
saveEditorComponentPatch,
|
|
4
|
-
saveFooterComponentPatch,
|
|
5
|
-
saveUserMessagesComponentPatch,
|
|
6
|
-
saveWorkingLineComponentPatch,
|
|
7
|
-
} from "./config/shell.ts";
|
|
8
|
-
|
|
9
|
-
export type Preset = "balanced" | "compact" | "native";
|
|
10
|
-
|
|
11
|
-
export const PRESET_VALUES: Preset[] = ["balanced", "compact", "native"];
|
|
12
|
-
|
|
13
|
-
export function isPreset(value: string): value is Preset {
|
|
14
|
-
return PRESET_VALUES.includes(value as Preset);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/** Apply only ownership-related values; detailed options remain user-editable. */
|
|
18
|
-
export function applyPreset(preset: Preset): void {
|
|
19
|
-
if (preset === "native") {
|
|
20
|
-
saveEditorComponentPatch({ style: "off" });
|
|
21
|
-
saveUserMessagesComponentPatch({ enabled: false });
|
|
22
|
-
saveWorkingLineComponentPatch({ enabled: false });
|
|
23
|
-
saveFooterComponentPatch({ style: "native" });
|
|
24
|
-
updateRendererConfig({ mode: "off" });
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
saveEditorComponentPatch({ style: "on" });
|
|
29
|
-
saveUserMessagesComponentPatch({ enabled: true });
|
|
30
|
-
saveWorkingLineComponentPatch({ enabled: true });
|
|
31
|
-
saveFooterComponentPatch({ style: "starship" });
|
|
32
|
-
updateRendererConfig({
|
|
33
|
-
mode: preset === "compact" ? "compact" : "on",
|
|
34
|
-
});
|
|
35
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
export type RuntimePhase = "idle" | "active";
|
|
2
|
-
|
|
3
|
-
export type RuntimeState = Readonly<{
|
|
4
|
-
phase: RuntimePhase;
|
|
5
|
-
generation: number;
|
|
6
|
-
mode?: string;
|
|
7
|
-
}>;
|
|
8
|
-
|
|
9
|
-
export type RuntimeStateListener = (state: RuntimeState) => void;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Stores session-level runtime state while Pi keeps ownership of context data.
|
|
13
|
-
*/
|
|
14
|
-
export class RuntimeStateStore {
|
|
15
|
-
private currentState: RuntimeState = { phase: "idle", generation: 0 };
|
|
16
|
-
private readonly listeners = new Set<RuntimeStateListener>();
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Returns the latest immutable runtime state snapshot.
|
|
20
|
-
*/
|
|
21
|
-
snapshot(): RuntimeState {
|
|
22
|
-
return this.currentState;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Starts a new runtime generation.
|
|
27
|
-
*
|
|
28
|
-
* @returns The generation token owned by the new session.
|
|
29
|
-
*/
|
|
30
|
-
start(mode?: string): number {
|
|
31
|
-
const generation = this.currentState.generation + 1;
|
|
32
|
-
this.currentState = { phase: "active", generation, mode };
|
|
33
|
-
this.notify();
|
|
34
|
-
return generation;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Stops the current generation unless a newer generation is active.
|
|
39
|
-
*
|
|
40
|
-
* @param generation Optional token used to reject stale shutdown callbacks.
|
|
41
|
-
*/
|
|
42
|
-
shutdown(generation?: number): void {
|
|
43
|
-
if (
|
|
44
|
-
generation !== undefined &&
|
|
45
|
-
generation !== this.currentState.generation
|
|
46
|
-
) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
this.currentState = {
|
|
50
|
-
phase: "idle",
|
|
51
|
-
generation: this.currentState.generation,
|
|
52
|
-
};
|
|
53
|
-
this.notify();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Reports whether a generation token still owns the active runtime.
|
|
58
|
-
*/
|
|
59
|
-
isCurrent(generation: number): boolean {
|
|
60
|
-
return (
|
|
61
|
-
this.currentState.phase === "active" &&
|
|
62
|
-
this.currentState.generation === generation
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Subscribes to runtime state transitions.
|
|
68
|
-
*
|
|
69
|
-
* @returns A function that removes the listener.
|
|
70
|
-
*/
|
|
71
|
-
subscribe(listener: RuntimeStateListener): () => void {
|
|
72
|
-
this.listeners.add(listener);
|
|
73
|
-
return () => this.listeners.delete(listener);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Notifies listeners using the current state snapshot.
|
|
78
|
-
*/
|
|
79
|
-
private notify(): void {
|
|
80
|
-
const snapshot = this.snapshot();
|
|
81
|
-
for (const listener of this.listeners) listener(snapshot);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
File without changes
|
|
File without changes
|