pi-one-ui 0.1.1 → 0.2.0
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/README.md +66 -39
- package/extensions/{shell → app/commands}/settings-previews.ts +7 -7
- package/extensions/app/config/renderer.ts +13 -63
- package/extensions/app/config/shell.ts +24 -138
- package/extensions/app/config/store.ts +290 -0
- package/extensions/app/host/pi-extension-port.ts +25 -0
- package/extensions/app/host/pi-ui-port.ts +52 -0
- package/extensions/app/host/tui-capabilities.ts +27 -0
- package/extensions/app/overlay/input-router.ts +63 -0
- package/extensions/app/overlay/overlay-manager.ts +39 -0
- package/extensions/{shell → app/overlay}/selector-border.ts +3 -3
- package/extensions/app/overlay/selector-controller.ts +104 -0
- package/extensions/app/ownership/layout-registry.ts +65 -0
- package/extensions/app/ownership.ts +21 -7
- package/extensions/app/panel.ts +261 -140
- package/extensions/app/runtime/event-coordinator.ts +84 -0
- package/extensions/app/runtime/render-scheduler.ts +56 -0
- package/extensions/app/runtime/runtime-state.ts +83 -0
- package/extensions/app/runtime/tui-runtime.ts +546 -0
- package/extensions/features/{context.ts → context-inspector/index.ts} +30 -23
- package/extensions/features/{shell/flush-docked-bash.ts → flush-docked-bash.ts} +1 -4
- package/extensions/index.ts +2 -48
- package/extensions/layouts/context/index.ts +188 -0
- package/extensions/{shell → layouts/context/message}/user-message-styles.ts +2 -2
- package/extensions/{shell → layouts/context/message}/user-message.ts +2 -2
- package/extensions/{transcript → layouts/context}/renderer/compact-mode.ts +17 -13
- package/extensions/layouts/context/renderer/context-refresh.ts +79 -0
- package/extensions/{transcript → layouts/context}/renderer/default-mode.ts +3 -3
- package/extensions/{transcript → layouts/context}/renderer/index.ts +14 -14
- package/extensions/{transcript → layouts/context}/renderer/mouse/hover.ts +2 -2
- package/extensions/{transcript → layouts/context}/renderer/mouse/interaction.ts +26 -7
- package/extensions/{transcript → layouts/context}/renderer/mouse/layout.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/mouse/packets.ts +3 -3
- package/extensions/{transcript → layouts/context}/renderer/mouse/scroll.ts +12 -7
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-component.ts +2 -2
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-edit-render.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-highlight.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-layout.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-limits.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-palette.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-presentation.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-renderer.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-write-render.ts +1 -1
- package/extensions/{transcript → layouts/context}/renderer/tool/diff/index.ts +2 -2
- package/extensions/{transcript → layouts/context}/renderer/tool/grouping.ts +4 -4
- package/extensions/{transcript → layouts/context}/renderer/tool/message-display.ts +6 -4
- package/extensions/{transcript → layouts/context}/renderer/tool/names.ts +2 -2
- package/extensions/{transcript → layouts/context}/renderer/tool/result.ts +3 -3
- package/extensions/{features/agent-summary → layouts/context/summary}/core.ts +1 -1
- package/extensions/{features → layouts/context/thinking}/compact-thinking.ts +7 -7
- package/extensions/{shell → layouts/editor}/accent-rail-editor.ts +8 -8
- package/extensions/{shell → layouts/editor}/completion-menu.ts +3 -6
- package/extensions/layouts/editor/controller.ts +613 -0
- package/extensions/{shell → layouts/editor}/editor-metadata-format.ts +6 -3
- package/extensions/layouts/editor/factory.ts +159 -0
- package/extensions/layouts/editor/index.ts +16 -0
- package/extensions/{shell → layouts/editor}/minimalist-editor.ts +4 -4
- package/extensions/layouts/editor/ownership.ts +103 -0
- package/extensions/{shell → layouts/editor}/ui.ts +2 -2
- package/extensions/layouts/footer/controller.ts +392 -0
- package/extensions/layouts/footer/data.ts +41 -0
- package/extensions/{shell → layouts/footer}/extension-status.ts +2 -2
- package/extensions/{shell → layouts/footer}/footer-layout.ts +1 -1
- package/extensions/{shell → layouts/footer}/footer.ts +11 -8
- package/extensions/layouts/footer/index.ts +24 -0
- package/extensions/layouts/header/index.ts +5 -0
- package/extensions/{features/shell → layouts/header}/startup-header.ts +105 -19
- package/extensions/layouts/working-line/controller.ts +291 -0
- package/extensions/{shell → layouts/working-line}/interaction-summary.ts +3 -3
- package/extensions/{shell → layouts/working-line}/working-line-spinners.ts +1 -1
- package/extensions/{shell → layouts/working-line}/working-line.ts +4 -4
- package/extensions/{shell → services}/live-context.ts +29 -1
- package/extensions/services/project-refresh.ts +374 -0
- package/extensions/{shell → services}/project-state.ts +5 -5
- package/extensions/{shell/state.ts → services/session-state.ts} +75 -5
- package/extensions/{shell → shared}/format.ts +4 -4
- package/extensions/tools/component-tree.ts +6 -6
- package/package.json +4 -4
- package/extensions/shell/index.ts +0 -1659
- package/extensions/shell/project-refresh.ts +0 -130
- package/extensions/shell/settings-command.ts +0 -2144
- package/extensions/transcript/index.ts +0 -65
- package/extensions/transcript/renderer/transcript-refresh.ts +0 -79
- /package/extensions/{shell → app/ownership}/prototype-patch-registry.ts +0 -0
- /package/extensions/{shell → app/runtime}/session-lifecycle.ts +0 -0
- /package/extensions/features/{shell/aliases.ts → aliases.ts} +0 -0
- /package/extensions/features/{shell → legacy}/working-message.ts +0 -0
- /package/extensions/features/{reference → session-reference}/index.ts +0 -0
- /package/extensions/features/{reference → session-reference}/session.ts +0 -0
- /package/extensions/features/{reference/subagent.ts → subagent-autocomplete.ts} +0 -0
- /package/extensions/{shell → layouts/context/message}/user-message-osc.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/markdown-enhance.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/ATTRIBUTION.md +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/ansi-utils.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-header.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-inline.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-parse.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/diff-text.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/line-width-safety.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/shiki-highlight.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/diff/write-execution.ts +0 -0
- /package/extensions/{transcript → layouts/context}/renderer/tool/show-more-hint.ts +0 -0
- /package/extensions/{features/agent-summary → layouts/context/summary}/index.ts +0 -0
- /package/extensions/{shell → layouts/editor}/accent-rail-layout-patch.ts +0 -0
- /package/extensions/{shell → layouts/editor}/editor-transfer.ts +0 -0
- /package/extensions/{shell → layouts/footer}/footer-format.ts +0 -0
- /package/extensions/{shell → layouts/working-line}/working-line-messages.ts +0 -0
- /package/extensions/{shell/git.ts → services/git-data.ts} +0 -0
- /package/extensions/{shell/package-version.ts → services/package-data.ts} +0 -0
- /package/extensions/{shell/runtime.ts → services/runtime-data.ts} +0 -0
- /package/extensions/{shell → services}/telemetry.ts +0 -0
- /package/extensions/{shell → shared}/icons.ts +0 -0
- /package/extensions/{shell → shared}/style.ts +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
export type StopProjectRefreshInterval = () => void;
|
|
2
|
-
|
|
3
|
-
export type ScheduleProjectRefreshOptions = {
|
|
4
|
-
force?: boolean;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export type ProjectRefreshRun = {
|
|
8
|
-
isCurrent: () => boolean;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type ProjectRefreshScheduler<T> = {
|
|
12
|
-
schedule: (target: T, options?: ScheduleProjectRefreshOptions) => void;
|
|
13
|
-
invalidate: () => void;
|
|
14
|
-
stop: () => void;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export const PROJECT_REFRESH_THROTTLE_MS = 5_000;
|
|
18
|
-
|
|
19
|
-
export function startProjectRefreshInterval(
|
|
20
|
-
intervalMs: number,
|
|
21
|
-
refresh: () => void,
|
|
22
|
-
): StopProjectRefreshInterval {
|
|
23
|
-
if (intervalMs <= 0) return () => {};
|
|
24
|
-
|
|
25
|
-
const timer = setInterval(refresh, intervalMs);
|
|
26
|
-
timer.unref?.();
|
|
27
|
-
|
|
28
|
-
return () => clearInterval(timer);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function createProjectRefreshScheduler<T>(
|
|
32
|
-
refresh: (target: T, run: ProjectRefreshRun) => Promise<void>,
|
|
33
|
-
afterRefresh: () => void,
|
|
34
|
-
throttleMs = PROJECT_REFRESH_THROTTLE_MS,
|
|
35
|
-
): ProjectRefreshScheduler<T> {
|
|
36
|
-
let refreshInFlight = false;
|
|
37
|
-
let refreshPending = false;
|
|
38
|
-
let pendingForce = false;
|
|
39
|
-
let pendingTarget: T | undefined;
|
|
40
|
-
let delayedRefresh: ReturnType<typeof setTimeout> | undefined;
|
|
41
|
-
let lastRefreshStartedAt: number | undefined;
|
|
42
|
-
let generation = 0;
|
|
43
|
-
|
|
44
|
-
const clearDelayedRefresh = () => {
|
|
45
|
-
if (!delayedRefresh) return;
|
|
46
|
-
clearTimeout(delayedRefresh);
|
|
47
|
-
delayedRefresh = undefined;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const runRefresh = (
|
|
51
|
-
target: T,
|
|
52
|
-
options: ScheduleProjectRefreshOptions = {},
|
|
53
|
-
) => {
|
|
54
|
-
clearDelayedRefresh();
|
|
55
|
-
if (refreshInFlight) {
|
|
56
|
-
refreshPending = true;
|
|
57
|
-
pendingForce ||= options.force === true;
|
|
58
|
-
pendingTarget = target;
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const currentGeneration = generation;
|
|
63
|
-
const run: ProjectRefreshRun = {
|
|
64
|
-
isCurrent: () => currentGeneration === generation,
|
|
65
|
-
};
|
|
66
|
-
refreshInFlight = true;
|
|
67
|
-
lastRefreshStartedAt = Date.now();
|
|
68
|
-
void refresh(target, run)
|
|
69
|
-
.catch(() => undefined)
|
|
70
|
-
.finally(() => {
|
|
71
|
-
if (currentGeneration !== generation) return;
|
|
72
|
-
refreshInFlight = false;
|
|
73
|
-
afterRefresh();
|
|
74
|
-
if (refreshPending) {
|
|
75
|
-
refreshPending = false;
|
|
76
|
-
const nextForce = pendingForce;
|
|
77
|
-
pendingForce = false;
|
|
78
|
-
const nextTarget = pendingTarget ?? target;
|
|
79
|
-
pendingTarget = undefined;
|
|
80
|
-
schedule(nextTarget, { force: nextForce });
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const schedule = (target: T, options: ScheduleProjectRefreshOptions = {}) => {
|
|
86
|
-
if (
|
|
87
|
-
options.force ||
|
|
88
|
-
throttleMs <= 0 ||
|
|
89
|
-
lastRefreshStartedAt === undefined
|
|
90
|
-
) {
|
|
91
|
-
runRefresh(target, options);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const delayMs = Math.max(
|
|
96
|
-
0,
|
|
97
|
-
throttleMs - (Date.now() - lastRefreshStartedAt),
|
|
98
|
-
);
|
|
99
|
-
if (delayMs === 0) {
|
|
100
|
-
runRefresh(target);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
pendingTarget = target;
|
|
105
|
-
if (delayedRefresh) return;
|
|
106
|
-
delayedRefresh = setTimeout(() => {
|
|
107
|
-
delayedRefresh = undefined;
|
|
108
|
-
const nextTarget = pendingTarget ?? target;
|
|
109
|
-
pendingTarget = undefined;
|
|
110
|
-
runRefresh(nextTarget);
|
|
111
|
-
}, delayMs);
|
|
112
|
-
delayedRefresh.unref?.();
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const invalidate = () => {
|
|
116
|
-
generation += 1;
|
|
117
|
-
clearDelayedRefresh();
|
|
118
|
-
refreshInFlight = false;
|
|
119
|
-
refreshPending = false;
|
|
120
|
-
pendingForce = false;
|
|
121
|
-
pendingTarget = undefined;
|
|
122
|
-
lastRefreshStartedAt = undefined;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
return {
|
|
126
|
-
schedule,
|
|
127
|
-
invalidate,
|
|
128
|
-
stop: invalidate,
|
|
129
|
-
};
|
|
130
|
-
}
|