@timurproko/a1 0.2.4-dev.667 → 0.2.4
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 +50 -39
- package/bin/pinned-pi-public.js +20 -2
- package/dist/app/session-shell/session-shell-root.d.ts +0 -1
- package/dist/app/session-shell/session-shell-root.js +2 -7
- package/dist/app/session-shell/session-shell.js +2 -12
- package/dist/features/owned-ui/resources/release-notes.json +4 -0
- package/dist/foundation/release/progress-palette.generated.d.ts +5 -0
- package/dist/foundation/release/progress-palette.generated.js +5 -0
- package/dist/foundation/release/update.js +4 -5
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/integrations/pi/components/index.d.ts +1 -1
- package/dist/integrations/pi/components/index.js +1 -1
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +1 -1
- package/dist/integrations/pi/components/resources/builtin-themes.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-transcript.js +10 -6
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +0 -1
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +0 -5
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +1 -1
- 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/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.js +1 -1
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +1 -1
- 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 +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
- 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.d.ts +4 -3
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +8 -7
- 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 +1 -1
- 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 +1 -1
- package/dist/integrations/pi/components/upstream/theme/system-theme.js +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme.js +1 -1
- package/dist/integrations/pi/engine/adapter.d.ts +1 -1
- package/dist/integrations/pi/engine/adapter.js +8 -2
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- package/dist/integrations/pi/startup-public.js +164 -166
- package/dist/integrations/pi/startup-public.manifest.json +3081 -3075
- 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 +1 -1
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/runtime-payload-inventory.json +37842 -29757
- package/dist/ui/components/transcript-viewport.js +10 -7
- package/docs/architecture/project-structure.md +3 -1
- package/docs/assets/readme/gears-dark.svg +56 -0
- package/docs/assets/readme/gears.svg +0 -1
- package/docs/assets/readme/plugins-dark.svg +76 -0
- package/docs/assets/readme/plugins.svg +0 -1
- package/docs/assets/readme/rocket-dark.svg +66 -0
- package/docs/assets/readme/rocket.svg +0 -1
- package/docs/assets/readme/separator-dark.svg +13 -0
- package/docs/assets/readme/separator.svg +13 -0
- package/docs/assets/readme/terminal-dark.svg +76 -0
- package/docs/assets/readme/terminal.svg +0 -1
- package/docs/assets/readme/waves-dark.svg +142 -0
- package/docs/assets/readme/waves.svg +0 -1
- package/docs/local-worktree-cleanup.md +4 -2
- package/docs/openspec-archive-automation.md +14 -5
- package/docs/releases/0.2.4.md +22 -0
- package/package.json +3 -3
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +0 -29
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +0 -146
package/README.md
CHANGED
|
@@ -12,187 +12,198 @@
|
|
|
12
12
|
<a href="https://agentnumberone.dev"><img alt="Website" src="https://img.shields.io/badge/web-agentnumberone.dev-2638d2?style=flat-square"></a>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="#install">Install</a> ·
|
|
17
|
+
<a href="#launch">Launch</a> ·
|
|
18
|
+
<a href="#update">Update</a> ·
|
|
19
|
+
<a href="#extensions">Extensions</a> ·
|
|
20
|
+
<a href="#develop">Develop</a> ·
|
|
21
|
+
<a href="#publish">Publish</a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
15
24
|
## Install
|
|
16
25
|
|
|
17
26
|
Release:
|
|
18
27
|
|
|
19
|
-
```
|
|
28
|
+
```text
|
|
20
29
|
npm x -y -- @timurproko/a1-install
|
|
21
30
|
```
|
|
22
31
|
|
|
23
32
|
Develop:
|
|
24
33
|
|
|
25
|
-
```
|
|
34
|
+
```text
|
|
26
35
|
npm x -y -- @timurproko/a1-install --develop
|
|
27
36
|
```
|
|
28
37
|
|
|
29
38
|
Preview number:
|
|
30
39
|
|
|
31
|
-
```
|
|
40
|
+
```text
|
|
32
41
|
npm x -y -- @timurproko/a1-install --develop 107
|
|
33
42
|
```
|
|
34
43
|
|
|
35
44
|
Exact preview:
|
|
36
45
|
|
|
37
|
-
```
|
|
46
|
+
```text
|
|
38
47
|
npm x -y -- @timurproko/a1-install --develop 0.1.8-dev.107
|
|
39
48
|
```
|
|
40
49
|
|
|
41
|
-
<p align="center"><picture><img src="docs/assets/readme/
|
|
50
|
+
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
|
|
42
51
|
|
|
43
|
-
##
|
|
52
|
+
## Launch
|
|
44
53
|
|
|
45
54
|
Launch A1 (profile: `~/.a1/agent`):
|
|
46
55
|
|
|
47
|
-
```
|
|
56
|
+
```text
|
|
48
57
|
a1
|
|
49
58
|
```
|
|
50
59
|
|
|
51
60
|
Show all commands:
|
|
52
61
|
|
|
53
|
-
```
|
|
62
|
+
```text
|
|
54
63
|
a1 help
|
|
55
64
|
```
|
|
56
65
|
|
|
57
66
|
Show the current and latest versions:
|
|
58
67
|
|
|
59
|
-
```
|
|
68
|
+
```text
|
|
60
69
|
a1 version
|
|
61
70
|
```
|
|
62
71
|
|
|
63
72
|
Vanilla Pi oracle (`~/.pi/agent`):
|
|
64
73
|
|
|
65
|
-
```
|
|
74
|
+
```text
|
|
66
75
|
a1 pi
|
|
67
76
|
```
|
|
68
77
|
|
|
69
|
-
|
|
78
|
+
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
|
|
79
|
+
|
|
80
|
+
## Update
|
|
70
81
|
|
|
71
82
|
Install the release:
|
|
72
83
|
|
|
73
|
-
```
|
|
84
|
+
```text
|
|
74
85
|
a1 update
|
|
75
86
|
```
|
|
76
87
|
|
|
77
88
|
Install develop:
|
|
78
89
|
|
|
79
|
-
```
|
|
90
|
+
```text
|
|
80
91
|
a1 update --develop
|
|
81
92
|
```
|
|
82
93
|
|
|
83
94
|
Install preview 107:
|
|
84
95
|
|
|
85
|
-
```
|
|
96
|
+
```text
|
|
86
97
|
a1 update --develop 107
|
|
87
98
|
```
|
|
88
99
|
|
|
89
100
|
Install that exact preview:
|
|
90
101
|
|
|
91
|
-
```
|
|
102
|
+
```text
|
|
92
103
|
a1 update --develop 0.1.8-dev.107
|
|
93
104
|
```
|
|
94
105
|
|
|
95
106
|
Refresh A1's model catalogs:
|
|
96
107
|
|
|
97
|
-
```
|
|
108
|
+
```text
|
|
98
109
|
a1 update --models
|
|
99
110
|
```
|
|
100
111
|
|
|
101
112
|
Stuck on `0.2.2` and `a1 update` fails? Run the installer once, then use `a1 update` as usual:
|
|
102
113
|
|
|
103
|
-
```
|
|
114
|
+
```text
|
|
104
115
|
npm x -y -- @timurproko/a1-install
|
|
105
116
|
```
|
|
106
117
|
|
|
107
118
|
A1 shows an `Update Available` notice at most once a day and never installs anything by itself. Turn it off in Settings (`Update check`) or with `A1_SKIP_VERSION_CHECK=1`.
|
|
108
119
|
|
|
109
|
-
<p align="center"><picture><img src="docs/assets/readme/
|
|
120
|
+
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
|
|
110
121
|
|
|
111
122
|
## Extensions
|
|
112
123
|
|
|
113
124
|
Install a package:
|
|
114
125
|
|
|
115
|
-
```
|
|
126
|
+
```text
|
|
116
127
|
a1 install npm:pi-mcp-adapter
|
|
117
128
|
```
|
|
118
129
|
|
|
119
130
|
Remove it (alias: `a1 uninstall`):
|
|
120
131
|
|
|
121
|
-
```
|
|
132
|
+
```text
|
|
122
133
|
a1 remove npm:pi-mcp-adapter
|
|
123
134
|
```
|
|
124
135
|
|
|
125
136
|
List installed packages:
|
|
126
137
|
|
|
127
|
-
```
|
|
138
|
+
```text
|
|
128
139
|
a1 list
|
|
129
140
|
```
|
|
130
141
|
|
|
131
142
|
Update every installed package:
|
|
132
143
|
|
|
133
|
-
```
|
|
144
|
+
```text
|
|
134
145
|
a1 update --extensions
|
|
135
146
|
```
|
|
136
147
|
|
|
137
148
|
Update one:
|
|
138
149
|
|
|
139
|
-
```
|
|
150
|
+
```text
|
|
140
151
|
a1 update npm:pi-mcp-adapter
|
|
141
152
|
```
|
|
142
153
|
|
|
143
|
-
<p align="center"><picture><img src="docs/assets/readme/
|
|
154
|
+
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
|
|
144
155
|
|
|
145
156
|
## Develop
|
|
146
157
|
|
|
147
158
|
Install exact locked dependencies:
|
|
148
159
|
|
|
149
|
-
```
|
|
160
|
+
```text
|
|
150
161
|
npm ci
|
|
151
162
|
```
|
|
152
163
|
|
|
153
164
|
Compile TypeScript and the process guardian into `dist`:
|
|
154
165
|
|
|
155
|
-
```
|
|
166
|
+
```text
|
|
156
167
|
npm run build
|
|
157
168
|
```
|
|
158
169
|
|
|
159
170
|
Build and launch a source `a1`:
|
|
160
171
|
|
|
161
|
-
```
|
|
172
|
+
```text
|
|
162
173
|
npm start
|
|
163
174
|
```
|
|
164
175
|
|
|
165
176
|
Build and launch a source `a1 pi`:
|
|
166
177
|
|
|
167
|
-
```
|
|
178
|
+
```text
|
|
168
179
|
npm run start:pi
|
|
169
180
|
```
|
|
170
181
|
|
|
171
182
|
Typecheck + fast suite (alias: `npm test`):
|
|
172
183
|
|
|
173
|
-
```
|
|
184
|
+
```text
|
|
174
185
|
npm run test:fast
|
|
175
186
|
```
|
|
176
187
|
|
|
177
188
|
Complete non-physical suite:
|
|
178
189
|
|
|
179
|
-
```
|
|
190
|
+
```text
|
|
180
191
|
npm run test:full
|
|
181
192
|
```
|
|
182
193
|
|
|
183
194
|
Report Node, npm, git, Rust, and dependency readiness:
|
|
184
195
|
|
|
185
|
-
```
|
|
196
|
+
```text
|
|
186
197
|
npm run doctor
|
|
187
198
|
```
|
|
188
199
|
|
|
189
200
|
Preview the README as GitHub renders it, in your browser (needs `gh`):
|
|
190
201
|
|
|
191
|
-
```
|
|
202
|
+
```text
|
|
192
203
|
npm run preview:readme
|
|
193
204
|
```
|
|
194
205
|
|
|
195
|
-
<p align="center"><picture><img src="docs/assets/readme/
|
|
206
|
+
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
|
|
196
207
|
|
|
197
208
|
## Publish
|
|
198
209
|
|
|
@@ -200,25 +211,25 @@ npm run preview:readme
|
|
|
200
211
|
|
|
201
212
|
Request the preview publish:
|
|
202
213
|
|
|
203
|
-
```
|
|
214
|
+
```text
|
|
204
215
|
npm run develop
|
|
205
216
|
```
|
|
206
217
|
|
|
207
218
|
### Release
|
|
208
219
|
|
|
209
|
-
```
|
|
220
|
+
```text
|
|
210
221
|
npm run release -- patch # 0.1.8-dev -> 0.1.8
|
|
211
222
|
```
|
|
212
223
|
|
|
213
|
-
```
|
|
224
|
+
```text
|
|
214
225
|
npm run release -- minor # 0.1.8-dev -> 0.2.0
|
|
215
226
|
```
|
|
216
227
|
|
|
217
|
-
```
|
|
228
|
+
```text
|
|
218
229
|
npm run release -- major # 0.1.8-dev -> 1.0.0
|
|
219
230
|
```
|
|
220
231
|
|
|
221
|
-
```
|
|
232
|
+
```text
|
|
222
233
|
npm run release -- 0.4.0 # prepare an exact stable version
|
|
223
234
|
```
|
|
224
235
|
|
|
@@ -227,5 +238,5 @@ Once validation passes, open the printed draft link, edit the `## [version] - YY
|
|
|
227
238
|
<br>
|
|
228
239
|
|
|
229
240
|
<p align="center">
|
|
230
|
-
<picture><img src="docs/assets/readme/waves.svg" alt="" width="100%"></picture>
|
|
241
|
+
<picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/waves-dark.svg"><img src="docs/assets/readme/waves.svg" alt="" width="100%"></picture>
|
|
231
242
|
</p>
|
package/bin/pinned-pi-public.js
CHANGED
|
@@ -49,9 +49,9 @@ export function resolvePinnedPiImport(specifier) {
|
|
|
49
49
|
if (match === null) throw new Error(`pinned Pi import is invalid: ${specifier}`);
|
|
50
50
|
const packageName = match[1] ?? "";
|
|
51
51
|
const subpath = match[2]?.slice(1) ?? "";
|
|
52
|
-
const packageRoot =
|
|
52
|
+
const packageRoot = findDependencyRoot(root, packageName);
|
|
53
|
+
if (packageRoot === undefined) throw new Error(`pinned Pi dependency is unavailable: ${packageName}`);
|
|
53
54
|
const manifestPath = resolve(packageRoot, "package.json");
|
|
54
|
-
if (!existsSync(manifestPath)) throw new Error(`pinned Pi dependency is unavailable: ${packageName}`);
|
|
55
55
|
const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
56
56
|
const declaredTarget = exportedTarget(manifest.exports, subpath) ?? (subpath.length === 0 ? manifest.module ?? manifest.main : undefined);
|
|
57
57
|
const target = typeof declaredTarget === "string" && !declaredTarget.startsWith(".") ? `./${declaredTarget}` : declaredTarget;
|
|
@@ -61,6 +61,24 @@ export function resolvePinnedPiImport(specifier) {
|
|
|
61
61
|
return pathToFileURL(path).href;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Follow Node's package lookup shape so npm may either nest a Pi dependency or
|
|
66
|
+
* deduplicate it into an ancestor node_modules directory.
|
|
67
|
+
* @param {string} root
|
|
68
|
+
* @param {string} packageName
|
|
69
|
+
* @returns {string | undefined}
|
|
70
|
+
*/
|
|
71
|
+
function findDependencyRoot(root, packageName) {
|
|
72
|
+
let current = root;
|
|
73
|
+
while (true) {
|
|
74
|
+
const candidate = resolve(current, "node_modules", ...packageName.split("/"));
|
|
75
|
+
if (existsSync(resolve(candidate, "package.json"))) return candidate;
|
|
76
|
+
const parent = dirname(current);
|
|
77
|
+
if (parent === current) return undefined;
|
|
78
|
+
current = parent;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
64
82
|
function pinnedRoot() {
|
|
65
83
|
if (configuredRoot === undefined) throw new Error("pinned Pi public package directory is not configured");
|
|
66
84
|
if (!existsSync(resolve(configuredRoot, "package.json"))) throw new Error("pinned Pi public package directory is unavailable");
|
|
@@ -263,7 +263,6 @@ export declare class OwnedUiSessionShellRoot implements PiTuiComponentPort {
|
|
|
263
263
|
appendWorkflowStatus(message: string): void;
|
|
264
264
|
appendWorkflowMessage(message: PiWorkflowMessage, errorCode?: ImageAttachmentError["code"]): void;
|
|
265
265
|
appendWorkflowResult(result: PiWorkflowResult, errorCode?: ImageAttachmentError["code"]): void;
|
|
266
|
-
appendDaxnuts(): void;
|
|
267
266
|
toggleThinkingVisibility(): void;
|
|
268
267
|
get toolsExpanded(): boolean;
|
|
269
268
|
setToolsExpanded(expanded: boolean): void;
|
|
@@ -9,7 +9,7 @@ import { PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_WORKFLOW_COMMAND_NAMES } from
|
|
|
9
9
|
import { createPiExtensionUiBridge } from "../../integrations/pi/components/shell-extension-ui.js";
|
|
10
10
|
import { createPiShellEditor } from "../../integrations/pi/components/shell-editor-autocomplete.js";
|
|
11
11
|
import { createPiQueuedInputStatus, createPiShellFooter, createPiShellHeader, createPiShellLoadedResources, createPiShellStatus, } from "../../integrations/pi/components/shell-footer-status.js";
|
|
12
|
-
import { createPiShellArmin, createPiShellAuthProviderSelector,
|
|
12
|
+
import { createPiShellArmin, createPiShellAuthProviderSelector, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellExtensionSelector, createPiShellLoginDialog, createPiShellModelSelector, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, } from "../../integrations/pi/components/shell-selectors-dialogs.js";
|
|
13
13
|
import { createPiShellChangelog, createPiShellCollapsedChangelog, createPiShellHotkeys, createPiShellSessionInfo, renderPiShellCommandMessage, renderPiShellPackageUpdateNotice, renderPiShellReleaseUpdateBanner, renderPiShellReleaseUpdateNotice, renderPiShellStatusText, } from "../../integrations/pi/components/shell-presenters-info.js";
|
|
14
14
|
import { createPiShellTranscriptComponent, isPiPromptStyleCompaction, paintPiSubmittedPromptTimestamp, renderPiShellStartupDiagnostic, renderPiShellTranscriptBlock, } from "../../integrations/pi/components/shell-presenters-transcript.js";
|
|
15
15
|
import { onPiThemeChange, PINNED_PI_LAYOUT, piTheme } from "../../integrations/pi/components/upstream/theme/theme.js";
|
|
@@ -86,7 +86,7 @@ export class OwnedUiSessionShellRoot {
|
|
|
86
86
|
#imageSubmissionsSending = 0;
|
|
87
87
|
constructor(view, cwd, handlers, startup = {}, agentDir, extensionRenderers = {
|
|
88
88
|
getMessageRenderer: () => undefined,
|
|
89
|
-
|
|
89
|
+
getToolRenderers: () => undefined,
|
|
90
90
|
}, sessionLayout = "pinned", imageAssets) {
|
|
91
91
|
this.#view = view;
|
|
92
92
|
this.#customViewport = sessionLayout === "custom-viewport";
|
|
@@ -984,11 +984,6 @@ export class OwnedUiSessionShellRoot {
|
|
|
984
984
|
: result.message;
|
|
985
985
|
this.appendWorkflowStatus(message);
|
|
986
986
|
}
|
|
987
|
-
appendDaxnuts() {
|
|
988
|
-
this.#lastWorkflowStatusId = undefined;
|
|
989
|
-
const daxnuts = createPiShellDaxnuts(this.#componentRuntime);
|
|
990
|
-
this.#appendAnchoredWorkflowComponent(width => ["", ...daxnuts.render(width)], () => daxnuts.dispose?.());
|
|
991
|
-
}
|
|
992
987
|
toggleThinkingVisibility() {
|
|
993
988
|
this.setHideThinkingBlock(this.#thinkingVisible);
|
|
994
989
|
}
|
|
@@ -14,7 +14,7 @@ import { createPiExtensionUiBridge } from "../../integrations/pi/components/shel
|
|
|
14
14
|
import { createPiShellEditor } from "../../integrations/pi/components/shell-editor-autocomplete.js";
|
|
15
15
|
import { SKILLS_COMMAND_NAME, findSkillByArgument, rewriteSkillsTunnelSubmission, skillPrompt, skillsFromCommands, } from "../../integrations/pi/components/skills-command.js";
|
|
16
16
|
import { createPiQueuedInputStatus, createPiShellFooter, createPiShellHeader, createPiShellLoadedResources, createPiShellStatus, } from "../../integrations/pi/components/shell-footer-status.js";
|
|
17
|
-
import { createPiShellArmin, createPiShellAuthProviderSelector,
|
|
17
|
+
import { createPiShellArmin, createPiShellAuthProviderSelector, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellExtensionSelector, createPiShellLoginDialog, createPiShellModelSelector, createPiShellModelsDialog, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellSkillsSelector, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, } from "../../integrations/pi/components/shell-selectors-dialogs.js";
|
|
18
18
|
import { createPiShellChangelog, createPiShellHotkeys, createPiShellSessionInfo, renderPiShellPackageUpdateNotice, renderPiShellStatusText, } from "../../integrations/pi/components/shell-presenters-info.js";
|
|
19
19
|
import { createPiShellTranscriptComponent, renderPiShellStartupDiagnostic, renderPiShellTranscriptBlock, } from "../../integrations/pi/components/shell-presenters-transcript.js";
|
|
20
20
|
import { onPiThemeChange, piTheme } from "../../integrations/pi/components/upstream/theme/theme.js";
|
|
@@ -233,7 +233,7 @@ export class OwnedUiSessionShell {
|
|
|
233
233
|
resources: startup?.resources ?? shellResourceEntries(this.backend),
|
|
234
234
|
}, this.backend.agentDir, {
|
|
235
235
|
getMessageRenderer: customType => this.backend.pinnedMessageRenderer(customType),
|
|
236
|
-
|
|
236
|
+
getToolRenderers: toolName => this.backend.pinnedToolRenderers(toolName),
|
|
237
237
|
getShortcuts: bindings => this.backend.pinnedShortcutDescriptions(bindings),
|
|
238
238
|
}, sessionLayout, {
|
|
239
239
|
resolve: assetId => this.backend.resolveTranscriptImage(assetId),
|
|
@@ -823,8 +823,6 @@ export class OwnedUiSessionShell {
|
|
|
823
823
|
async cycleModel(direction) {
|
|
824
824
|
const result = await this.backend.cycleModelWorkflow(direction);
|
|
825
825
|
this.root.appendWorkflowResult(result);
|
|
826
|
-
if (result.outcome === "completed")
|
|
827
|
-
this.#showDaxnutsForActiveModel();
|
|
828
826
|
this.runtime.requestRender();
|
|
829
827
|
return workflowAdapterResult(result);
|
|
830
828
|
}
|
|
@@ -1345,8 +1343,6 @@ export class OwnedUiSessionShell {
|
|
|
1345
1343
|
this.#installAutocompleteCommands();
|
|
1346
1344
|
}
|
|
1347
1345
|
this.root.appendWorkflowResult(result);
|
|
1348
|
-
if ((request.command === "model" || request.command === "models") && result.outcome === "completed")
|
|
1349
|
-
this.#showDaxnutsForActiveModel();
|
|
1350
1346
|
this.runtime.requestRender();
|
|
1351
1347
|
return workflowAdapterResult(result);
|
|
1352
1348
|
}
|
|
@@ -1536,12 +1532,6 @@ export class OwnedUiSessionShell {
|
|
|
1536
1532
|
this.runtime.requestRender();
|
|
1537
1533
|
}).finally(() => clearTimeout(timeout));
|
|
1538
1534
|
}
|
|
1539
|
-
#showDaxnutsForActiveModel() {
|
|
1540
|
-
const model = this.view().activeModel;
|
|
1541
|
-
if (model?.providerId === "opencode" && model.modelId.toLowerCase().includes("kimi-k2.5")) {
|
|
1542
|
-
this.root.appendDaxnuts();
|
|
1543
|
-
}
|
|
1544
|
-
}
|
|
1545
1535
|
// Invariant: pointer reporting is disabled on every path that ends the owning screen.
|
|
1546
1536
|
#setPointerReporting(enabled, forceOff = false) {
|
|
1547
1537
|
const effective = forceOff ? false : this.#customViewport || enabled;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "a1-release-notes-v1",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.2.4",
|
|
6
|
+
"markdown": "## [0.2.4] - 2026-10-05\n\n### Changed\n\n- upgrade pinned Pi to 1.0.0 ([#658](https://github.com/timurproko/a1/pull/658))\n- upgrade pinned Pi to 1.0.2 ([#669](https://github.com/timurproko/a1/pull/669))\n- add animated mark, section art, and browser preview ([#665](https://github.com/timurproko/a1/pull/665))\n- keep the hero mark still and link only it to the site ([#666](https://github.com/timurproko/a1/pull/666))\n- pick dark-mode art via picture sources ([#668](https://github.com/timurproko/a1/pull/668))\n\n### Fixed\n\n- make self-update upgrades reliable ([#664](https://github.com/timurproko/a1/pull/664))\n- restore the terminal and print a resume hint when a1 is killed ([#667](https://github.com/timurproko/a1/pull/667))\n- align progress with Pi accent ([#671](https://github.com/timurproko/a1/pull/671))\n- support Git URL rewrites ([#673](https://github.com/timurproko/a1/pull/673))\n- support repository relocation ([#675](https://github.com/timurproko/a1/pull/675))\n- prevent bottom control gutter bleed ([#677](https://github.com/timurproko/a1/pull/677))\n"
|
|
7
|
+
},
|
|
4
8
|
{
|
|
5
9
|
"version": "0.2.3",
|
|
6
10
|
"markdown": "## [0.2.3] - 2026-10-03\n\n### Changed\n\n- upgrade pinned Pi to 0.99.1 ([#642](https://github.com/timurproko/a1/pull/642))\n- upgrade pinned Pi to 0.99.2 ([#652](https://github.com/timurproko/a1/pull/652))\n- match changelog link decoration ([#649](https://github.com/timurproko/a1/pull/649))\n- rename stable wrapper ([#655](https://github.com/timurproko/a1/pull/655))\n\n### Fixed\n\n- restore documentation auto-merge ([#653](https://github.com/timurproko/a1/pull/653))\n- allow development publication startup ([#654](https://github.com/timurproko/a1/pull/654))\n- bound Windows backlog setup ([#656](https://github.com/timurproko/a1/pull/656))\n- resolve bundled npm entry ([#657](https://github.com/timurproko/a1/pull/657))\n- verify exact npm resources ([#659](https://github.com/timurproko/a1/pull/659))\n"
|
|
@@ -5,6 +5,7 @@ import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
|
5
5
|
import crossSpawn from "cross-spawn";
|
|
6
6
|
import { valid as validSemver } from "semver";
|
|
7
7
|
import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
|
|
8
|
+
import { SHARED_PROGRESS_ACCENT_ANSI } from "./progress-palette.generated.js";
|
|
8
9
|
import { isNewerRelease, releaseChannelOf } from "./latest-release.js";
|
|
9
10
|
import { certifyMaterializedRelease, ensureSupervisor, waitForProcessExit, } from "./bootstrap.js";
|
|
10
11
|
import { probeOwnership, readEndpointMetadata, removeEndpointArtifacts } from "./endpoints.js";
|
|
@@ -235,13 +236,11 @@ const ACTIVATION_PROGRESS = {
|
|
|
235
236
|
export function renderUpdateProgressBar(percent) {
|
|
236
237
|
const bounded = Math.min(100, Math.max(0, Math.round(percent)));
|
|
237
238
|
const filled = Math.round((bounded / 100) * PROGRESS_BAR_WIDTH);
|
|
238
|
-
// Rationale: the completed run
|
|
239
|
-
//
|
|
240
|
-
// keeps each color stable even when the terminal remaps its ANSI palette.
|
|
241
|
-
const completed = "\u001b[38;2;138;190;183m";
|
|
239
|
+
// Rationale: the completed run follows the pinned Pi controls' semantic accent,
|
|
240
|
+
// while the track and percentage retain the update meter's neutral treatment.
|
|
242
241
|
const gray = "\u001b[38;2;128;128;128m";
|
|
243
242
|
const track = "\u001b[38;2;102;102;102m";
|
|
244
|
-
return `${
|
|
243
|
+
return `${SHARED_PROGRESS_ACCENT_ANSI}${"━".repeat(filled)}${track}${"─".repeat(PROGRESS_BAR_WIDTH - filled)}${gray} ${bounded}%\u001b[39m`;
|
|
245
244
|
}
|
|
246
245
|
function createUpdateProgress(output, enabled) {
|
|
247
246
|
let visible = false;
|
|
@@ -10,7 +10,7 @@ export const STARTUP_DESCRIPTOR = Object.freeze({
|
|
|
10
10
|
],
|
|
11
11
|
"generatedArtifact": {
|
|
12
12
|
"path": "dist/integrations/pi/startup-public.js",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "c115c1f4222f750961ed1d2d2b9b6c022f2948b070445b84e758c4d0c40d0bcd"
|
|
14
14
|
},
|
|
15
15
|
"dependencyLayerIdentity": {
|
|
16
16
|
"source": "A1_RELEASE_LAYERS",
|
|
@@ -19,7 +19,7 @@ export const STARTUP_DESCRIPTOR = Object.freeze({
|
|
|
19
19
|
"compileCacheNamespace": {
|
|
20
20
|
"strategy": "node-abi-version-and-ordered-layer-sha256-v1"
|
|
21
21
|
},
|
|
22
|
-
"identity": "
|
|
22
|
+
"identity": "e2d043ae3f413047a59b2d289bbca7b46ff0eebbc040e652dc8f76677054f49e"
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
export function loadDeclaredStartupGraph() {
|
|
@@ -2,7 +2,7 @@ export { adaptPiAssistantMessage, adaptPiToolExecution, adaptPiUserMessage } fro
|
|
|
2
2
|
export { loadHistoryEditor, type HistoryEditorConstructor } from "./history-editor-loader.js";
|
|
3
3
|
export { PiComponentConformanceError, runPiComponentConformance } from "./conformance.js";
|
|
4
4
|
export type { PiComponentConformanceReport, PiComponentConformanceResult } from "./conformance.js";
|
|
5
|
-
export { OWNED_BUILTIN_SLASH_COMMANDS, PINNED_PI_BUILTIN_SLASH_COMMANDS, componentFromPort, componentPort, createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellCollapsedChangelog,
|
|
5
|
+
export { OWNED_BUILTIN_SLASH_COMMANDS, PINNED_PI_BUILTIN_SLASH_COMMANDS, componentFromPort, componentPort, createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellCollapsedChangelog, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellEditor, createPiShellExtensionSelector, createPiShellFooter, createPiShellHeader, createPiShellHotkeys, createPiShellLoadedResources, createPiShellLoginDialog, createPiShellModelSelector, createPiShellModelsDialog, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionInfo, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellShowImagesSelector, createPiShellSkillsSelector, createPiShellStatus, createPiShellThemeSelector, createPiShellTranscriptComponent, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, createTuiFacade, ensureTheme, formatSessionTokens, isAutocompleteProvider, isPiPromptStyleCompaction, isRecord, paintPiSubmittedPromptTimestamp, piShellHyperlink, piShellTruncateToWidth, piShellVisibleWidth, renderPiShellChangelogLines, renderPiShellCommandMessage, renderPiShellHotkeysLines, renderPiShellPackageUpdateNotice, renderPiShellReleaseUpdateBanner, renderPiShellReleaseUpdateNotice, renderPiShellStartupDiagnostic, renderPiShellStatusText, renderPiShellTranscriptBlock, validatedAssistantMessage, } from "./shell-components.js";
|
|
6
6
|
export { renderPiShellHotkeySections } from "./shell-hotkey-sections.js";
|
|
7
7
|
export type { PiShellHotkeySection } from "./shell-hotkey-sections.js";
|
|
8
8
|
export type { PiExtensionUiBridge, PiExtensionUiBridgeHost, PiShellAuthProviderOption, PiShellAutocompleteCommand, PiShellClipboardContent, PiShellCommandMessagePresentation, PiShellComponentPort, PiShellEditorBodyGeometry, PiShellEditorOptions, PiShellEditorPointerEvent, PiShellEditorPort, PiShellEditorTextRange, PiShellExtensionRendererResolver, PiShellHeaderOptions, PiShellHeaderPort, PiShellHotkeysPresentation, PiShellImageAssetResolver, PiShellLoadedResourcesPort, PiShellLoginDialogPort, PiShellModelSelectorOptions, PiShellModelsDialogOptions, PiShellModelsDialogPort, PiShellOperationLoaderPort, PiShellPasteReservation, PiShellQueuedInputPort, PiShellResourceEntry, PiShellResourceSection, PiShellScopedModelDescriptor, PiShellScopedModelsSelectorOptions, PiShellScopedModelsSelectorPort, PiShellSelectorOption, PiShellSelectorOptions, PiShellSessionInfoPresentation, PiShellSettingsSelectorOptions, PiShellStartupNotice, PiShellStatusPlacement, PiShellStatusPort, PiShellSubmittedPromptComposer, PiShellTranscriptComponentPort, PiShellViewComponentPort, } from "./shell-components.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { adaptPiAssistantMessage, adaptPiToolExecution, adaptPiUserMessage } from "./components.js";
|
|
2
2
|
export { loadHistoryEditor } from "./history-editor-loader.js";
|
|
3
3
|
export { PiComponentConformanceError, runPiComponentConformance } from "./conformance.js";
|
|
4
|
-
export { OWNED_BUILTIN_SLASH_COMMANDS, PINNED_PI_BUILTIN_SLASH_COMMANDS, componentFromPort, componentPort, createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellCollapsedChangelog,
|
|
4
|
+
export { OWNED_BUILTIN_SLASH_COMMANDS, PINNED_PI_BUILTIN_SLASH_COMMANDS, componentFromPort, componentPort, createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellCollapsedChangelog, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellEditor, createPiShellExtensionSelector, createPiShellFooter, createPiShellHeader, createPiShellHotkeys, createPiShellLoadedResources, createPiShellLoginDialog, createPiShellModelSelector, createPiShellModelsDialog, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionInfo, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellShowImagesSelector, createPiShellSkillsSelector, createPiShellStatus, createPiShellThemeSelector, createPiShellTranscriptComponent, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, createTuiFacade, ensureTheme, formatSessionTokens, isAutocompleteProvider, isPiPromptStyleCompaction, isRecord, paintPiSubmittedPromptTimestamp, piShellHyperlink, piShellTruncateToWidth, piShellVisibleWidth, renderPiShellChangelogLines, renderPiShellCommandMessage, renderPiShellHotkeysLines, renderPiShellPackageUpdateNotice, renderPiShellReleaseUpdateBanner, renderPiShellReleaseUpdateNotice, renderPiShellStartupDiagnostic, renderPiShellStatusText, renderPiShellTranscriptBlock, validatedAssistantMessage, } from "./shell-components.js";
|
|
5
5
|
export { renderPiShellHotkeySections } from "./shell-hotkey-sections.js";
|
|
6
6
|
export { PINNED_PI_LAYOUT, applyConfiguredPiTheme, applyPiTheme, applyPiThemeInstance, currentPiThemeName, detectPiTerminalBackgroundFromEnv, detectPiTerminalBackgroundTheme, detectPiTerminalThemeForAuto, ensurePiTheme, getAvailablePiThemes, loadPiTheme, onPiThemeChange, parsePiAutoThemeSetting, piTheme, resolvePiThemeSetting, stopPiThemeWatcher, } from "./theme.js";
|
|
7
7
|
export { OwnedPiThemeController } from "./upstream/theme/theme-controller.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 1.0.0 (MIT),
|
|
3
|
-
* commit
|
|
3
|
+
* commit cd32f7725fdbddbaecdff5b1e68491563394e0ca.
|
|
4
4
|
* Upstream dark.json SHA-256: c11a588b714d35300293079b425fb09a3693d4b2d453585d211b08163c648b75
|
|
5
5
|
* Upstream light.json SHA-256: f590c51c2bc8b238891efd0e983473ed2e2a6487b6692cc1d4b2845165e703f7
|
|
6
6
|
* Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 1.0.0 (MIT),
|
|
3
|
-
* commit
|
|
3
|
+
* commit cd32f7725fdbddbaecdff5b1e68491563394e0ca.
|
|
4
4
|
* Upstream dark.json SHA-256: c11a588b714d35300293079b425fb09a3693d4b2d453585d211b08163c648b75
|
|
5
5
|
* Upstream light.json SHA-256: f590c51c2bc8b238891efd0e983473ed2e2a6487b6692cc1d4b2845165e703f7
|
|
6
6
|
* Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
|
|
@@ -304,15 +304,19 @@ function assistantPayloadContent(value) {
|
|
|
304
304
|
}
|
|
305
305
|
return content.length === 0 && value.length > 0 ? undefined : content;
|
|
306
306
|
}
|
|
307
|
-
function
|
|
307
|
+
function validatedToolRenderers(value) {
|
|
308
308
|
if (value === undefined)
|
|
309
309
|
return undefined;
|
|
310
|
-
if (!
|
|
311
|
-
throw new TypeError("Pi tool-
|
|
310
|
+
if (!isPiToolRenderers(value))
|
|
311
|
+
throw new TypeError("Pi tool-renderer façade rejected malformed metadata");
|
|
312
312
|
return value;
|
|
313
313
|
}
|
|
314
|
-
function
|
|
315
|
-
|
|
314
|
+
function isPiToolRenderers(value) {
|
|
315
|
+
if (!isRecord(value))
|
|
316
|
+
return false;
|
|
317
|
+
return (value.renderShell === undefined || value.renderShell === "default" || value.renderShell === "self")
|
|
318
|
+
&& (value.renderCall === undefined || typeof value.renderCall === "function")
|
|
319
|
+
&& (value.renderResult === undefined || typeof value.renderResult === "function");
|
|
316
320
|
}
|
|
317
321
|
function validatedMessageRenderer(value) {
|
|
318
322
|
if (value === undefined)
|
|
@@ -329,7 +333,7 @@ function toolComponent(block, cwd, extensions, showImages, imageWidthCells, imag
|
|
|
329
333
|
const toolCallId = stringPayload(payload, "toolCallId") ?? block.id;
|
|
330
334
|
const toolName = stringPayload(payload, "toolName") ?? block.title ?? "tool";
|
|
331
335
|
const argumentsPayload = toolArguments(block);
|
|
332
|
-
const component = new ToolExecutionComponent(toolName, toolCallId, argumentsPayload, { showImages, imageWidthCells },
|
|
336
|
+
const component = new ToolExecutionComponent(toolName, toolCallId, argumentsPayload, { showImages, imageWidthCells }, validatedToolRenderers(extensions?.getToolRenderers(toolName)), tui ?? createTuiFacade({ getColumns: () => 80, getRows: () => 24, requestRender() { } }), cwd);
|
|
333
337
|
applyToolState(component, block);
|
|
334
338
|
updateToolResult(component, block, imageAssets);
|
|
335
339
|
return component;
|
|
@@ -109,7 +109,6 @@ export interface PiShellLoginDialogPort extends PiShellComponentPort {
|
|
|
109
109
|
}
|
|
110
110
|
export declare function createPiShellLoginDialog(runtime: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">, providerId: string, onComplete: (success: boolean, message?: string) => void, providerName?: string, title?: string): PiShellLoginDialogPort;
|
|
111
111
|
export declare function createPiShellArmin(runtime: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">): PiShellComponentPort;
|
|
112
|
-
export declare function createPiShellDaxnuts(runtime: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">): PiShellComponentPort;
|
|
113
112
|
export declare function createPiShellEarendilAnnouncement(): PiShellComponentPort;
|
|
114
113
|
export interface PiShellOperationLoaderPort extends PiShellComponentPort {
|
|
115
114
|
readonly signal: AbortSignal;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ArminComponent, BorderedLoader, DynamicBorder, ExtensionSelectorComponent, getSelectListTheme, LoginDialogComponent, ModelSelectorComponent, OAuthSelectorComponent, SettingsSelectorComponent, ShowImagesSelectorComponent, ThemeSelectorComponent, UserMessageSelectorComponent, } from "../startup-public.js";
|
|
2
|
-
import { DaxnutsComponent, } from "./upstream/components/daxnuts.js";
|
|
3
2
|
import { EarendilAnnouncementComponent, } from "./upstream/components/earendil-announcement.js";
|
|
4
3
|
import { Box, Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
|
|
5
4
|
import { ScopedModelsSelectorComponent, } from "./upstream/components/scoped-models-selector.js";
|
|
@@ -170,10 +169,6 @@ export function createPiShellArmin(runtime) {
|
|
|
170
169
|
ensureTheme();
|
|
171
170
|
return componentPort(new ArminComponent(createTuiFacade(runtime)));
|
|
172
171
|
}
|
|
173
|
-
export function createPiShellDaxnuts(runtime) {
|
|
174
|
-
ensureTheme();
|
|
175
|
-
return componentPort(new DaxnutsComponent(createTuiFacade(runtime)));
|
|
176
|
-
}
|
|
177
172
|
export function createPiShellEarendilAnnouncement() {
|
|
178
173
|
ensureTheme();
|
|
179
174
|
return componentPort(new EarendilAnnouncementComponent());
|
|
@@ -121,7 +121,7 @@ export interface PiShellImageAssetResolver {
|
|
|
121
121
|
}
|
|
122
122
|
export interface PiShellExtensionRendererResolver {
|
|
123
123
|
getMessageRenderer(customType: string): unknown;
|
|
124
|
-
|
|
124
|
+
getToolRenderers(toolName: string): unknown;
|
|
125
125
|
getShortcuts?(bindings: KeybindingsConfig): readonly {
|
|
126
126
|
readonly key: string;
|
|
127
127
|
readonly description: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.0.2 (MIT), commit cd32f7725fdbddbaecdff5b1e68491563394e0ca,
|
|
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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.0.2 (MIT), commit cd32f7725fdbddbaecdff5b1e68491563394e0ca,
|
|
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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sourcePackage": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"sourceVersion": "1.0.
|
|
3
|
+
"sourceVersion": "1.0.2",
|
|
4
4
|
"upstreamRepository": "https://github.com/earendil-works/pi.git",
|
|
5
|
-
"upstreamCommit": "
|
|
5
|
+
"upstreamCommit": "cd32f7725fdbddbaecdff5b1e68491563394e0ca",
|
|
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 1.0.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.0.2 (MIT), commit cd32f7725fdbddbaecdff5b1e68491563394e0ca,
|
|
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.
|