@timurproko/a1 0.2.2 → 0.2.3-dev.655
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/dist/app/session-shell/session-shell.js +9 -2
- package/dist/composition/owned-ui.js +3 -3
- package/dist/contracts/owned-ui/model.d.ts +5 -0
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +114 -126
- package/dist/integrations/pi/components/resources/builtin-themes.js +145 -157
- package/dist/integrations/pi/components/shell-footer-status.js +12 -8
- package/dist/integrations/pi/components/shell-presenters-info.js +1 -1
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +1 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +1 -2
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +2 -2
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +1 -1
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/pi-logo.d.ts +2 -0
- package/dist/integrations/pi/components/upstream/components/pi-logo.js +21 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +13 -6
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +16 -0
- package/dist/integrations/pi/components/upstream/components/themed-text.js +28 -0
- package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/thinking-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +25 -3
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.js +5 -3
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
- package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
- package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/system-theme.d.ts +60 -0
- package/dist/integrations/pi/components/upstream/theme/system-theme.js +695 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +6 -2
- package/dist/integrations/pi/components/upstream/theme/theme.js +22 -7
- package/dist/integrations/pi/engine/adapter.js +6 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +10 -0
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- package/dist/integrations/pi/engine/session-integration.d.ts +2 -2
- package/dist/integrations/pi/engine/session-integration.js +1 -1
- package/dist/integrations/pi/engine/settings-bridge.d.ts +1 -1
- package/dist/integrations/pi/engine/settings-bridge.js +9 -0
- package/dist/integrations/pi/engine/settings-port.js +4 -1
- package/dist/integrations/pi/engine/workflows.d.ts +2 -1
- package/dist/integrations/pi/engine/workflows.js +1 -0
- package/dist/integrations/pi/startup-public.js +1925 -1309
- package/dist/integrations/pi/startup-public.manifest.json +1611 -929
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +5 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +2 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +1 -1
- package/dist/native/darwin-arm64/manifest.json +3 -3
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/manifest.json +3 -3
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/manifest.json +3 -3
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/runtime-payload-inventory.json +40622 -27400
- package/docs/architecture/toolchain.md +1 -1
- package/docs/ci-release-runbook.md +19 -11
- package/package.json +3 -3
|
@@ -1,167 +1,155 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.
|
|
3
|
-
*
|
|
4
|
-
* Upstream
|
|
2
|
+
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.99.2 (MIT),
|
|
3
|
+
* commit 005af57d88ee23b33778f343a9595b32e67ff788.
|
|
4
|
+
* Upstream dark.json SHA-256: c11a588b714d35300293079b425fb09a3693d4b2d453585d211b08163c648b75
|
|
5
|
+
* Upstream light.json SHA-256: f590c51c2bc8b238891efd0e983473ed2e2a6487b6692cc1d4b2845165e703f7
|
|
5
6
|
* Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
|
|
6
7
|
*/
|
|
7
8
|
export const BUILTIN_THEME_RESOURCES = Object.freeze({
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
dark: {
|
|
10
|
+
name: "dark",
|
|
11
|
+
appearance: "dark",
|
|
12
|
+
vars: {
|
|
13
|
+
text: "okhsl(234 3% 89%)",
|
|
14
|
+
muted: "okhsl(229 6% 67%)",
|
|
15
|
+
violet: "okhsl(295 50% 67%)",
|
|
16
|
+
blue: "okhsl(232 54% 67%)",
|
|
17
|
+
green: "okhsl(159 59% 67%)",
|
|
18
|
+
red: "okhsl(20 72% 67%)",
|
|
19
|
+
yellow: "okhsl(83 88% 67%)",
|
|
20
|
+
blueBg: "okhsl(233 41% 24%)",
|
|
21
|
+
},
|
|
22
|
+
colors: {
|
|
23
|
+
accent: "violet",
|
|
24
|
+
border: "okhsl(231 57% 65%)",
|
|
25
|
+
borderAccent: "okhsl(295 53% 64%)",
|
|
26
|
+
borderMuted: "okhsl(229 8% 53%)",
|
|
27
|
+
success: "green",
|
|
28
|
+
error: "red",
|
|
29
|
+
warning: "yellow",
|
|
30
|
+
muted: "muted",
|
|
31
|
+
dim: "okhsl(229 8% 56%)",
|
|
32
|
+
text: "text",
|
|
33
|
+
thinkingText: "okhsl(226 7% 65%)",
|
|
34
|
+
selectedBg: "blueBg",
|
|
35
|
+
scrollbarTrack: "okhsl(237 7% 33%)",
|
|
36
|
+
scrollbarThumb: "okhsl(232 7% 65%)",
|
|
37
|
+
searchMatchBg: "okhsl(53 51% 24%)",
|
|
38
|
+
searchMatchText: "muted",
|
|
39
|
+
userMessageBg: "blueBg",
|
|
40
|
+
userMessageText: "text",
|
|
41
|
+
customMessageBg: "okhsl(295 42% 24%)",
|
|
42
|
+
customMessageText: "muted",
|
|
43
|
+
customMessageLabel: "violet",
|
|
44
|
+
toolPendingBg: "okhsl(229 5% 24%)",
|
|
45
|
+
toolSuccessBg: "okhsl(158 46% 25%)",
|
|
46
|
+
toolErrorBg: "okhsl(19 54% 25%)",
|
|
47
|
+
toolTitle: "text",
|
|
48
|
+
toolOutput: "muted",
|
|
49
|
+
mdHeading: "yellow",
|
|
50
|
+
mdLink: "blue",
|
|
51
|
+
mdLinkUrl: "muted",
|
|
52
|
+
mdCode: "violet",
|
|
53
|
+
mdCodeBlock: "green",
|
|
54
|
+
mdCodeBlockBorder: "muted",
|
|
55
|
+
mdQuote: "muted",
|
|
56
|
+
mdQuoteBorder: "muted",
|
|
57
|
+
mdHr: "muted",
|
|
58
|
+
mdListBullet: "violet",
|
|
59
|
+
toolDiffAdded: "green",
|
|
60
|
+
toolDiffRemoved: "red",
|
|
61
|
+
toolDiffContext: "muted",
|
|
62
|
+
syntaxComment: "muted",
|
|
63
|
+
syntaxKeyword: "blue",
|
|
64
|
+
syntaxFunction: "yellow",
|
|
65
|
+
syntaxVariable: "okhsl(202 58% 67%)",
|
|
66
|
+
syntaxString: "okhsl(52 67% 67%)",
|
|
67
|
+
syntaxNumber: "green",
|
|
68
|
+
syntaxType: "violet",
|
|
69
|
+
syntaxOperator: "muted",
|
|
70
|
+
syntaxPunctuation: "muted",
|
|
71
|
+
thinkingOff: "okhsl(229 8% 49%)",
|
|
72
|
+
thinkingMinimal: "okhsl(232 20% 52%)",
|
|
73
|
+
thinkingLow: "okhsl(232 45% 54%)",
|
|
74
|
+
thinkingMedium: "okhsl(263 59% 56%)",
|
|
75
|
+
thinkingHigh: "okhsl(295 73% 59%)",
|
|
76
|
+
thinkingXhigh: "okhsl(337 81% 61%)",
|
|
77
|
+
thinkingMax: "okhsl(20 99% 63%)",
|
|
78
|
+
bashMode: "okhsl(159 64% 65%)",
|
|
27
79
|
},
|
|
28
|
-
"colors": {
|
|
29
|
-
"accent": "accent",
|
|
30
|
-
"border": "blue",
|
|
31
|
-
"borderAccent": "cyan",
|
|
32
|
-
"borderMuted": "darkGray",
|
|
33
|
-
"success": "green",
|
|
34
|
-
"error": "red",
|
|
35
|
-
"warning": "yellow",
|
|
36
|
-
"muted": "gray",
|
|
37
|
-
"dim": "dimGray",
|
|
38
|
-
"text": "text",
|
|
39
|
-
"thinkingText": "gray",
|
|
40
|
-
"selectedBg": "selectedBg",
|
|
41
|
-
"scrollbarTrack": "darkGray",
|
|
42
|
-
"scrollbarThumb": "text",
|
|
43
|
-
"searchMatchBg": "selectedBg",
|
|
44
|
-
"searchMatchText": "text",
|
|
45
|
-
"userMessageBg": "userMsgBg",
|
|
46
|
-
"userMessageText": "text",
|
|
47
|
-
"customMessageBg": "customMsgBg",
|
|
48
|
-
"customMessageText": "text",
|
|
49
|
-
"customMessageLabel": "#9575cd",
|
|
50
|
-
"toolPendingBg": "toolPendingBg",
|
|
51
|
-
"toolSuccessBg": "toolSuccessBg",
|
|
52
|
-
"toolErrorBg": "toolErrorBg",
|
|
53
|
-
"toolTitle": "text",
|
|
54
|
-
"toolOutput": "gray",
|
|
55
|
-
"mdHeading": "#f0c674",
|
|
56
|
-
"mdLink": "#81a2be",
|
|
57
|
-
"mdLinkUrl": "dimGray",
|
|
58
|
-
"mdCode": "accent",
|
|
59
|
-
"mdCodeBlock": "green",
|
|
60
|
-
"mdCodeBlockBorder": "gray",
|
|
61
|
-
"mdQuote": "gray",
|
|
62
|
-
"mdQuoteBorder": "gray",
|
|
63
|
-
"mdHr": "gray",
|
|
64
|
-
"mdListBullet": "accent",
|
|
65
|
-
"toolDiffAdded": "green",
|
|
66
|
-
"toolDiffRemoved": "red",
|
|
67
|
-
"toolDiffContext": "gray",
|
|
68
|
-
"syntaxComment": "#6A9955",
|
|
69
|
-
"syntaxKeyword": "#569CD6",
|
|
70
|
-
"syntaxFunction": "#DCDCAA",
|
|
71
|
-
"syntaxVariable": "#9CDCFE",
|
|
72
|
-
"syntaxString": "#CE9178",
|
|
73
|
-
"syntaxNumber": "#B5CEA8",
|
|
74
|
-
"syntaxType": "#4EC9B0",
|
|
75
|
-
"syntaxOperator": "#D4D4D4",
|
|
76
|
-
"syntaxPunctuation": "#D4D4D4",
|
|
77
|
-
"thinkingOff": "darkGray",
|
|
78
|
-
"thinkingMinimal": "#6e6e6e",
|
|
79
|
-
"thinkingLow": "#5f87af",
|
|
80
|
-
"thinkingMedium": "#81a2be",
|
|
81
|
-
"thinkingHigh": "#b294bb",
|
|
82
|
-
"thinkingXhigh": "#d183e8",
|
|
83
|
-
"thinkingMax": "#ff5fff",
|
|
84
|
-
"bashMode": "green"
|
|
85
|
-
}
|
|
86
80
|
},
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
81
|
+
light: {
|
|
82
|
+
name: "light",
|
|
83
|
+
appearance: "light",
|
|
84
|
+
vars: {
|
|
85
|
+
text: "okhsl(225 5% 27%)",
|
|
86
|
+
muted: "okhsl(229 8% 47%)",
|
|
87
|
+
violet: "okhsl(295 60% 46%)",
|
|
88
|
+
blue: "okhsl(231 68% 47%)",
|
|
89
|
+
green: "okhsl(159 75% 46%)",
|
|
90
|
+
red: "okhsl(20 91% 47%)",
|
|
91
|
+
yellow: "okhsl(83 99% 47%)",
|
|
92
|
+
blueBg: "okhsl(235 19% 91%)",
|
|
93
|
+
},
|
|
94
|
+
colors: {
|
|
95
|
+
accent: "violet",
|
|
96
|
+
border: "okhsl(231 67% 55%)",
|
|
97
|
+
borderAccent: "okhsl(295 59% 55%)",
|
|
98
|
+
borderMuted: "okhsl(235 7% 66%)",
|
|
99
|
+
success: "green",
|
|
100
|
+
error: "red",
|
|
101
|
+
warning: "yellow",
|
|
102
|
+
muted: "muted",
|
|
103
|
+
dim: "okhsl(229 7% 59%)",
|
|
104
|
+
text: "text",
|
|
105
|
+
thinkingText: "okhsl(234 8% 55%)",
|
|
106
|
+
selectedBg: "blueBg",
|
|
107
|
+
scrollbarTrack: "okhsl(248 3% 90%)",
|
|
108
|
+
scrollbarThumb: "okhsl(226 7% 65%)",
|
|
109
|
+
searchMatchBg: "okhsl(56 22% 91%)",
|
|
110
|
+
searchMatchText: "muted",
|
|
111
|
+
userMessageBg: "blueBg",
|
|
112
|
+
userMessageText: "text",
|
|
113
|
+
customMessageBg: "okhsl(295 25% 91%)",
|
|
114
|
+
customMessageText: "muted",
|
|
115
|
+
customMessageLabel: "violet",
|
|
116
|
+
toolPendingBg: "okhsl(248 3% 91%)",
|
|
117
|
+
toolSuccessBg: "okhsl(156 21% 91%)",
|
|
118
|
+
toolErrorBg: "okhsl(24 23% 91%)",
|
|
119
|
+
toolTitle: "text",
|
|
120
|
+
toolOutput: "muted",
|
|
121
|
+
mdHeading: "yellow",
|
|
122
|
+
mdLink: "blue",
|
|
123
|
+
mdLinkUrl: "muted",
|
|
124
|
+
mdCode: "violet",
|
|
125
|
+
mdCodeBlock: "green",
|
|
126
|
+
mdCodeBlockBorder: "muted",
|
|
127
|
+
mdQuote: "muted",
|
|
128
|
+
mdQuoteBorder: "muted",
|
|
129
|
+
mdHr: "muted",
|
|
130
|
+
mdListBullet: "violet",
|
|
131
|
+
toolDiffAdded: "green",
|
|
132
|
+
toolDiffRemoved: "red",
|
|
133
|
+
toolDiffContext: "muted",
|
|
134
|
+
syntaxComment: "muted",
|
|
135
|
+
syntaxKeyword: "blue",
|
|
136
|
+
syntaxFunction: "yellow",
|
|
137
|
+
syntaxVariable: "okhsl(203 73% 46%)",
|
|
138
|
+
syntaxString: "okhsl(52 84% 46%)",
|
|
139
|
+
syntaxNumber: "green",
|
|
140
|
+
syntaxType: "violet",
|
|
141
|
+
syntaxOperator: "muted",
|
|
142
|
+
syntaxPunctuation: "muted",
|
|
143
|
+
thinkingOff: "okhsl(223 5% 80%)",
|
|
144
|
+
thinkingMinimal: "okhsl(229 14% 78%)",
|
|
145
|
+
thinkingLow: "okhsl(232 33% 76%)",
|
|
146
|
+
thinkingMedium: "okhsl(264 48% 74%)",
|
|
147
|
+
thinkingHigh: "okhsl(295 62% 72%)",
|
|
148
|
+
thinkingXhigh: "okhsl(337 74% 70%)",
|
|
149
|
+
thinkingMax: "okhsl(20 98% 68%)",
|
|
150
|
+
bashMode: "okhsl(159 74% 55%)",
|
|
105
151
|
},
|
|
106
|
-
|
|
107
|
-
"accent": "teal",
|
|
108
|
-
"border": "blue",
|
|
109
|
-
"borderAccent": "teal",
|
|
110
|
-
"borderMuted": "lightGray",
|
|
111
|
-
"success": "green",
|
|
112
|
-
"error": "red",
|
|
113
|
-
"warning": "yellow",
|
|
114
|
-
"muted": "mediumGray",
|
|
115
|
-
"dim": "dimGray",
|
|
116
|
-
"text": "text",
|
|
117
|
-
"thinkingText": "mediumGray",
|
|
118
|
-
"selectedBg": "selectedBg",
|
|
119
|
-
"scrollbarTrack": "lightGray",
|
|
120
|
-
"scrollbarThumb": "text",
|
|
121
|
-
"searchMatchBg": "selectedBg",
|
|
122
|
-
"searchMatchText": "text",
|
|
123
|
-
"userMessageBg": "userMsgBg",
|
|
124
|
-
"userMessageText": "text",
|
|
125
|
-
"customMessageBg": "customMsgBg",
|
|
126
|
-
"customMessageText": "text",
|
|
127
|
-
"customMessageLabel": "#7e57c2",
|
|
128
|
-
"toolPendingBg": "toolPendingBg",
|
|
129
|
-
"toolSuccessBg": "toolSuccessBg",
|
|
130
|
-
"toolErrorBg": "toolErrorBg",
|
|
131
|
-
"toolTitle": "text",
|
|
132
|
-
"toolOutput": "mediumGray",
|
|
133
|
-
"mdHeading": "yellow",
|
|
134
|
-
"mdLink": "blue",
|
|
135
|
-
"mdLinkUrl": "dimGray",
|
|
136
|
-
"mdCode": "teal",
|
|
137
|
-
"mdCodeBlock": "green",
|
|
138
|
-
"mdCodeBlockBorder": "mediumGray",
|
|
139
|
-
"mdQuote": "mediumGray",
|
|
140
|
-
"mdQuoteBorder": "mediumGray",
|
|
141
|
-
"mdHr": "mediumGray",
|
|
142
|
-
"mdListBullet": "green",
|
|
143
|
-
"toolDiffAdded": "green",
|
|
144
|
-
"toolDiffRemoved": "red",
|
|
145
|
-
"toolDiffContext": "mediumGray",
|
|
146
|
-
"syntaxComment": "#008000",
|
|
147
|
-
"syntaxKeyword": "#0000FF",
|
|
148
|
-
"syntaxFunction": "#795E26",
|
|
149
|
-
"syntaxVariable": "#001080",
|
|
150
|
-
"syntaxString": "#A31515",
|
|
151
|
-
"syntaxNumber": "#098658",
|
|
152
|
-
"syntaxType": "#267F99",
|
|
153
|
-
"syntaxOperator": "#000000",
|
|
154
|
-
"syntaxPunctuation": "#000000",
|
|
155
|
-
"thinkingOff": "lightGray",
|
|
156
|
-
"thinkingMinimal": "#767676",
|
|
157
|
-
"thinkingLow": "blue",
|
|
158
|
-
"thinkingMedium": "teal",
|
|
159
|
-
"thinkingHigh": "#875f87",
|
|
160
|
-
"thinkingXhigh": "#8b008b",
|
|
161
|
-
"thinkingMax": "#af005f",
|
|
162
|
-
"bashMode": "green"
|
|
163
|
-
}
|
|
164
|
-
}
|
|
152
|
+
},
|
|
165
153
|
});
|
|
166
154
|
export function isBuiltinThemeName(name) {
|
|
167
155
|
return Object.hasOwn(BUILTIN_THEME_RESOURCES, name);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { rawKeyHint, VERSION } from "../startup-public.js";
|
|
2
2
|
import { Spacer, Text, } from "@earendil-works/pi-tui";
|
|
3
3
|
import { SessionFooter } from "./upstream/components/session-footer.js";
|
|
4
|
+
import { piLogoLines } from "./upstream/components/pi-logo.js";
|
|
5
|
+
import { ThemedText } from "./upstream/components/themed-text.js";
|
|
4
6
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
5
7
|
import { StatusIndicator, WorkingStatusIndicator } from "./upstream/components/status-indicator.js";
|
|
6
8
|
import { protectPiPromptChipPresentation } from "./prompt-chip-presentation.js";
|
|
@@ -9,9 +11,9 @@ import { createTuiFacade, ensureTheme, } from "./shell-shared-facade.js";
|
|
|
9
11
|
export function createPiShellHeader(options = {}) {
|
|
10
12
|
ensureTheme();
|
|
11
13
|
let expanded = options.expanded ?? false;
|
|
12
|
-
const compact = new
|
|
13
|
-
const full = new
|
|
14
|
-
const notices = (options.notices ?? []).map(notice => new
|
|
14
|
+
const compact = new ThemedText(compactHeaderText, 1, 0);
|
|
15
|
+
const full = new ThemedText(() => expandedHeaderText(options.getKeybindings?.()), 1, 0);
|
|
16
|
+
const notices = (options.notices ?? []).map(notice => new ThemedText(() => noticeText(notice), 1, 0));
|
|
15
17
|
return {
|
|
16
18
|
get expanded() { return expanded; },
|
|
17
19
|
setExpanded(value) { expanded = value; },
|
|
@@ -19,7 +21,7 @@ export function createPiShellHeader(options = {}) {
|
|
|
19
21
|
if (options.quiet)
|
|
20
22
|
return [];
|
|
21
23
|
if (expanded && options.getKeybindings !== undefined)
|
|
22
|
-
full.
|
|
24
|
+
full.invalidate();
|
|
23
25
|
return [
|
|
24
26
|
...new Spacer(1).render(width),
|
|
25
27
|
...(expanded ? full : compact).render(width),
|
|
@@ -265,10 +267,9 @@ function compactHeaderText() {
|
|
|
265
267
|
rawKeyHint("!", "bash"),
|
|
266
268
|
rawKeyHint("ctrl+o", "more"),
|
|
267
269
|
].join(theme.fg("muted", " · "));
|
|
268
|
-
const logo = theme.bold(theme.fg("accent", "pi")) + theme.fg("dim", ` v${VERSION}`);
|
|
269
270
|
const compactOnboarding = theme.fg("dim", "Press ctrl+o to show full startup help and loaded resources.");
|
|
270
271
|
const onboarding = theme.fg("dim", "Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.");
|
|
271
|
-
return `${
|
|
272
|
+
return `${headerWithLogo(instructions)}\n${compactOnboarding}\n\n${onboarding}`;
|
|
272
273
|
}
|
|
273
274
|
function expandedHeaderText(bindings) {
|
|
274
275
|
const keys = bindings === undefined ? undefined : KeybindingsManager.fromOwnedBindings(bindings);
|
|
@@ -295,9 +296,12 @@ function expandedHeaderText(bindings) {
|
|
|
295
296
|
rawKeyHint("drop files", "to attach"),
|
|
296
297
|
].join("\n");
|
|
297
298
|
const theme = piTheme();
|
|
298
|
-
const logo = theme.bold(theme.fg("accent", "pi")) + theme.fg("dim", ` v${VERSION}`);
|
|
299
299
|
const onboarding = theme.fg("dim", "Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.");
|
|
300
|
-
return `${
|
|
300
|
+
return `${headerWithLogo(instructions)}\n\n${onboarding}`;
|
|
301
|
+
}
|
|
302
|
+
function headerWithLogo(hints) {
|
|
303
|
+
const [top, bottom] = piLogoLines();
|
|
304
|
+
return `${top} ${piTheme().fg("dim", `v${VERSION}`)}\n${bottom} ${hints}`;
|
|
301
305
|
}
|
|
302
306
|
function noticeText(notice) {
|
|
303
307
|
const theme = piTheme();
|
|
@@ -179,7 +179,7 @@ export function hotkeysMarkdown(bindings, getShortcuts, profile) {
|
|
|
179
179
|
? action === "app.model.select" ? "Unbound (`/models`)" : "Unbound"
|
|
180
180
|
: `\`${label}\``;
|
|
181
181
|
}).join(" / ")} | ${description} |`;
|
|
182
|
-
let markdown = ["**Navigation**", "| Key | Action |", "|-----|--------|", row(["tui.editor.cursorUp", "tui.editor.cursorDown", "tui.editor.cursorLeft", "tui.editor.cursorRight"], "Move cursor / browse history"), row(["tui.editor.cursorWordLeft", "tui.editor.cursorWordRight"], "Move by word"), row(["tui.editor.cursorLineStart"], profile === "a1" ? "Start of prompt line" : "Start of line"), row(["tui.editor.cursorLineEnd"], profile === "a1" ? "End of prompt line" : "End of line"), ...(profile === "a1" ? ["| `Ctrl+Home` | Start of content |", "| `Ctrl+End` | End of content / follow output |"] : []), row(["tui.editor.jumpForward"], "Jump forward to character"), row(["tui.editor.jumpBackward"], "Jump backward to character"), row(["tui.editor.pageUp", "tui.editor.pageDown"], "Scroll by page"), "", "**Editing**", "| Key | Action |", "|-----|--------|", row(["tui.input.submit"], "Send message"), row(["tui.input.newLine"], `New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""}`), row(["tui.editor.deleteWordBackward"], "Delete word backwards"), row(["tui.editor.deleteWordForward"], "Delete word forwards"), row(["tui.editor.deleteToLineStart"], "Delete to start of line"), row(["tui.editor.deleteToLineEnd"], "Delete to end of line"), row(["tui.editor.yank"], "Paste the most-recently-deleted text"), row(["tui.editor.yankPop"], "Cycle through the deleted text after pasting"), row(["tui.editor.undo"], "Undo"), "", "**Other**", "| Key | Action |", "|-----|--------|", row(["tui.input.tab"], "Path completion / accept autocomplete"), row(["app.interrupt"], "Cancel autocomplete / abort streaming"), row(["app.clear"], "Clear editor (first) / exit (second)"), row(["app.exit"], "Exit (when editor is empty)"), row(["app.suspend"], "Suspend to background"), row(["app.thinking.cycle"], "Cycle thinking level"), row(["app.model.cycleForward", "app.model.cycleBackward"], "Cycle models"), row(["app.model.select"], profile === "a1" ? "Open the Models dialog" : "Open model selector"), row(["app.tools.expand"], "Toggle tool output expansion"), row(["app.thinking.toggle"], "Toggle thinking block visibility"), row(["app.editor.external"], "Edit message in external editor"), row(["app.message.copy"], "Copy selection or last assistant message"), row(["app.message.followUp"], "Queue follow-up message"), row(["app.message.dequeue"], "Restore queued messages"), row(["app.clipboard.pasteImage"], "Paste image or text from clipboard"), "| `/` | Slash commands |", "| `!` | Run bash command |", "| `!!` | Run bash command (excluded from context) |", ...(profile === "a1" ? ["", "**Models dialog**", "| Key | Action |", "|-----|--------|", "| `Space` | Toggle the selected model in the cycling scope |", "| `Tab` | Switch the all/scoped filter |", row(["app.models.save"], "Save the scope to settings"), row(["app.models.enableAll"], "Scope every listed model"), row(["app.models.clearAll"], "Clear the listed models from the scope"), row(["app.models.toggleProvider"], "Toggle the selected model's provider"), row(["app.models.reorderUp", "app.models.reorderDown"], "Reorder the cycling scope")] : [])].join("\n");
|
|
182
|
+
let markdown = ["**Navigation**", "| Key | Action |", "|-----|--------|", row(["tui.editor.cursorUp", "tui.editor.cursorDown", "tui.editor.cursorLeft", "tui.editor.cursorRight"], "Move cursor / browse history"), row(["tui.editor.cursorWordLeft", "tui.editor.cursorWordRight"], "Move by word"), row(["tui.editor.cursorLineStart"], profile === "a1" ? "Start of prompt line" : "Start of line"), row(["tui.editor.cursorLineEnd"], profile === "a1" ? "End of prompt line" : "End of line"), ...(profile === "a1" ? ["| `Ctrl+Home` | Start of content |", "| `Ctrl+End` | End of content / follow output |"] : []), row(["tui.editor.jumpForward"], "Jump forward to character"), row(["tui.editor.jumpBackward"], "Jump backward to character"), row(["tui.editor.pageUp", "tui.editor.pageDown"], "Scroll by page"), "", "**Editing**", "| Key | Action |", "|-----|--------|", row(["tui.input.submit"], "Send message"), row(["tui.input.newLine"], `New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""}`), row(["tui.editor.deleteWordBackward"], "Delete word backwards"), row(["tui.editor.deleteWordForward"], "Delete word forwards"), row(["tui.editor.deleteToLineStart"], "Delete to start of line"), row(["tui.editor.deleteToLineEnd"], "Delete to end of line"), row(["tui.editor.yank"], "Paste the most-recently-deleted text"), row(["tui.editor.yankPop"], "Cycle through the deleted text after pasting"), row(["tui.editor.undo"], "Undo"), "", "**Other**", "| Key | Action |", "|-----|--------|", row(["tui.input.tab"], "Path completion / accept autocomplete"), row(["app.interrupt"], "Cancel autocomplete / abort streaming"), row(["app.clear"], "Clear editor (first) / exit (second)"), row(["app.exit"], "Exit (when editor is empty)"), row(["app.suspend"], "Suspend to background"), row(["app.thinking.cycle"], "Cycle thinking level"), row(["app.model.cycleForward", "app.model.cycleBackward"], "Cycle models"), row(["app.model.select"], profile === "a1" ? "Open the Models dialog" : "Open model selector"), row(["app.tools.expand"], "Toggle tool output expansion"), row(["app.thinking.toggle"], "Toggle thinking block visibility"), row(["app.editor.external"], "Edit message in external editor"), row(["app.message.copy"], "Copy selection or last assistant message"), row(["app.message.followUp"], "Queue follow-up message"), row(["app.message.dequeue"], "Restore queued messages"), row(["app.clipboard.pasteImage"], profile === "a1" ? "Paste image or text from clipboard" : "Paste files on macOS, images, or text from clipboard"), "| `/` | Slash commands |", "| `!` | Run bash command |", "| `!!` | Run bash command (excluded from context) |", ...(profile === "a1" ? ["", "**Models dialog**", "| Key | Action |", "|-----|--------|", "| `Space` | Toggle the selected model in the cycling scope |", "| `Tab` | Switch the all/scoped filter |", row(["app.models.save"], "Save the scope to settings"), row(["app.models.enableAll"], "Scope every listed model"), row(["app.models.clearAll"], "Clear the listed models from the scope"), row(["app.models.toggleProvider"], "Toggle the selected model's provider"), row(["app.models.reorderUp", "app.models.reorderDown"], "Reorder the cycling scope")] : [])].join("\n");
|
|
183
183
|
const shortcuts = getShortcuts(bindings ?? keys.getEffectiveConfig());
|
|
184
184
|
if (shortcuts.length > 0) {
|
|
185
185
|
markdown += "\n\n**Extensions**\n| Key | Action |\n|-----|--------|\n";
|
|
@@ -63,6 +63,7 @@ export function createPiShellSettingsSelector(options) {
|
|
|
63
63
|
onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
|
|
64
64
|
onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
|
|
65
65
|
onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
|
|
66
|
+
onFullscreenWheelScrollLinesChange: change("onFullscreenWheelScrollLinesChange"),
|
|
66
67
|
onWarningsChange: change("onWarningsChange"),
|
|
67
68
|
onCancel: options.onCancel,
|
|
68
69
|
};
|
|
@@ -46,8 +46,7 @@ export function createTuiFacade(options) {
|
|
|
46
46
|
removeInputListener() { },
|
|
47
47
|
onTerminalColorSchemeChange: () => () => { },
|
|
48
48
|
setTerminalColorSchemeNotifications() { },
|
|
49
|
-
|
|
50
|
-
queryTerminalColorScheme: async () => undefined,
|
|
49
|
+
queryTerminalColors: async () => ({}),
|
|
51
50
|
};
|
|
52
51
|
}
|
|
53
52
|
export function componentPort(component, handleInput) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/core/keybindings.ts.
|
|
4
4
|
* Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
|
|
5
5
|
* resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling, unbound model
|
|
@@ -148,7 +148,7 @@ export declare const KEYBINDINGS: {
|
|
|
148
148
|
};
|
|
149
149
|
readonly "app.clipboard.pasteImage": {
|
|
150
150
|
readonly defaultKeys: "alt+v" | "ctrl+v";
|
|
151
|
-
readonly description: "Paste
|
|
151
|
+
readonly description: "Paste files on macOS, images, or text from clipboard";
|
|
152
152
|
};
|
|
153
153
|
readonly "app.session.new": {
|
|
154
154
|
readonly defaultKeys: [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/core/keybindings.ts.
|
|
4
4
|
* Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
|
|
5
5
|
* resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling, unbound model
|
|
@@ -84,7 +84,7 @@ export const KEYBINDINGS = {
|
|
|
84
84
|
},
|
|
85
85
|
"app.clipboard.pasteImage": {
|
|
86
86
|
defaultKeys: windowsKeybindings ? "alt+v" : "ctrl+v",
|
|
87
|
-
description: "Paste
|
|
87
|
+
description: "Paste files on macOS, images, or text from clipboard",
|
|
88
88
|
},
|
|
89
89
|
"app.session.new": { defaultKeys: [], description: "Start a new session" },
|
|
90
90
|
"app.session.tree": { defaultKeys: [], description: "Open session tree" },
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sourcePackage": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"sourceVersion": "0.
|
|
3
|
+
"sourceVersion": "0.99.2",
|
|
4
4
|
"upstreamRepository": "https://github.com/earendil-works/pi.git",
|
|
5
|
-
"upstreamCommit": "
|
|
5
|
+
"upstreamCommit": "005af57d88ee23b33778f343a9595b32e67ff788",
|
|
6
6
|
"sourcePath": "dist/modes/interactive/assets/clankolas.png",
|
|
7
7
|
"sourceSha256": "169acd0dfe6fbb8d8742ed24a3fc654fd0b2e2d4223c733249c5493723f1b72d",
|
|
8
8
|
"license": "MIT",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/countdown-timer.ts.
|
|
4
4
|
* Modifications: Mechanical source port with ECMAScript private fields; imports remain on the public
|
|
5
5
|
* Pi TUI package root.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
|
|
4
4
|
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
5
|
* types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
|
|
4
4
|
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
5
|
* types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts.
|
|
4
4
|
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
5
|
* types/APIs and A1-owned theme boundaries. The unchanged image is loaded lazily from its attributed,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/extension-editor.ts.
|
|
4
4
|
* Modifications: Mechanical port: remap pi-tui to the root public singleton, use owned
|
|
5
5
|
* keybindings/theme and external-editor seams, preserve editor layout, hints, focus, submission,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/extension-editor.ts.
|
|
4
4
|
* Modifications: Mechanical port: remap pi-tui to the root public singleton, use owned
|
|
5
5
|
* keybindings/theme and external-editor seams, preserve editor layout, hints, focus, submission,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/extension-input.ts.
|
|
4
4
|
* Modifications: Mechanical port: remap public imports, use ECMAScript private fields, and route the
|
|
5
5
|
* bare-A1 instruction row and chrome through the shared semantic shortcut and compact padded
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/extension-selector.ts.
|
|
4
4
|
* Modifications: Mechanical port: remap public imports, use ECMAScript private fields, and route the
|
|
5
5
|
* bare-A1 instruction row and chrome through the shared semantic shortcut and compact padded
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/mermaid.ts.
|
|
4
4
|
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
5
|
* types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/custom-editor.ts.
|
|
4
4
|
* Modifications: A1-owned class name and synchronized A1 keybinding contract replace the nominal
|
|
5
5
|
* private upstream keybinding constructor dependency; bare A1 injects the shared Settings/agent input
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/custom-editor.ts.
|
|
4
4
|
* Modifications: A1-owned class name and synchronized A1 keybinding contract replace the nominal
|
|
5
5
|
* private upstream keybinding constructor dependency; bare A1 injects the shared Settings/agent input
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/pi-logo.ts.
|
|
4
|
+
* Modifications: Remapped the private theme import to A1's public-backed adapter and composed the
|
|
5
|
+
* fixed-color logo into the owned startup header.
|
|
6
|
+
* Deviations: none.
|
|
7
|
+
*/
|
|
8
|
+
import { backgroundAnsi, foregroundAnsi, rgbColor } from "@earendil-works/pi-tui";
|
|
9
|
+
import { piTheme } from "../../theme.js";
|
|
10
|
+
const CORAL = rgbColor(228, 138, 122);
|
|
11
|
+
const BLUE = rgbColor(79, 142, 179);
|
|
12
|
+
const YELLOW = rgbColor(234, 182, 93);
|
|
13
|
+
const RESET = "\x1b[0m";
|
|
14
|
+
/** The fixed-color, four-cell by two-line pinned Pi logo. */
|
|
15
|
+
export function piLogoLines() {
|
|
16
|
+
const mode = piTheme().getColorMode();
|
|
17
|
+
const fg = (color) => foregroundAnsi(color, mode);
|
|
18
|
+
const top = `${fg(CORAL)}${backgroundAnsi(BLUE, mode)}▀${RESET}${fg(CORAL)}▀█${RESET} `;
|
|
19
|
+
const bottom = `${fg(BLUE)}█▀${RESET} ${fg(YELLOW)}█${RESET}`;
|
|
20
|
+
return [top, bottom];
|
|
21
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts.
|
|
4
4
|
* Modifications: Source-synchronized scoped-model selector port: preserve session-only toggles,
|
|
5
5
|
* search, bulk/provider/reorder actions, dirty state, Ctrl+S persistence, refresh status,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.99.2 (MIT), commit 005af57d88ee23b33778f343a9595b32e67ff788,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/footer.ts.
|
|
4
|
-
* Modifications: Consumes neutral owned-UI view data instead of a fabricated concrete AgentSession;
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Modifications: Consumes neutral owned-UI view data instead of a fabricated concrete AgentSession;
|
|
5
|
+
* preserves the latest physical route for virtual models; an explicit bare-A1 profile colors the
|
|
6
|
+
* thinking-level name, renders its repository-context path, and reserves its linked pull-request badge
|
|
7
|
+
* before path truncation while preserving the remaining footer layout and formatting; replacement
|
|
8
|
+
* surfaces may suppress a thinking level they already present.
|
|
8
9
|
* Deviations: owned-status-level-color, owned-pull-request-badge.
|
|
9
10
|
*/
|
|
10
11
|
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
@@ -88,10 +89,16 @@ export class SessionFooter {
|
|
|
88
89
|
leftWidth = visibleWidth(left);
|
|
89
90
|
}
|
|
90
91
|
const modelName = view.activeModel?.modelId ?? "no-model";
|
|
91
|
-
|
|
92
|
+
let rightWithoutProvider = this.profile === "a1"
|
|
92
93
|
? view.activeModel === null || !this.show() ? theme.fg("dim", modelName)
|
|
93
94
|
: theme.fg("dim", `${modelName} • `) + theme.getThinkingBorderColor(view.thinkingLevel)(view.thinkingLevel)
|
|
94
95
|
: view.activeModel === null || view.thinkingLevel === "off" || !this.show() ? modelName : `${modelName} • ${view.thinkingLevel}`;
|
|
96
|
+
const routed = view.routedModel;
|
|
97
|
+
if (routed) {
|
|
98
|
+
const level = routed.thinkingLevel === undefined ? "" : ` • ${routed.thinkingLevel}`;
|
|
99
|
+
const route = ` → ${routed.model.modelId}${level}`;
|
|
100
|
+
rightWithoutProvider += this.profile === "a1" ? theme.fg("dim", route) : route;
|
|
101
|
+
}
|
|
95
102
|
let right = rightWithoutProvider;
|
|
96
103
|
if ((view.status.footer?.availableProviderCount ?? 1) > 1 && view.activeModel) {
|
|
97
104
|
const provider = `(${view.activeModel.providerId}) `;
|