@timurproko/a1 0.2.7-dev.1236 → 0.2.7-dev.1239
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/composition/owned-settings.js +1 -1
- package/dist/composition/release-update-observation.js +43 -14
- package/dist/contracts/owned-ui/session-workflows.d.ts +1 -1
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +13 -7
- package/dist/features/owned-ui/plus-menu-dialog.js +17 -12
- package/dist/features/owned-ui/settings-app.js +94 -17
- package/dist/foundation/release/automatic-update.d.ts +12 -0
- package/dist/foundation/release/automatic-update.js +87 -5
- package/dist/integrations/pi/engine/default-model-setting.d.ts +12 -0
- package/dist/integrations/pi/engine/default-model-setting.js +70 -0
- package/dist/integrations/pi/engine/diagnostics-state.js +6 -5
- package/dist/integrations/pi/engine/index.d.ts +1 -1
- package/dist/integrations/pi/engine/index.js +1 -1
- package/dist/integrations/pi/engine/offline-settings-port.js +1 -0
- package/dist/integrations/pi/engine/runtime-integration.d.ts +1 -1
- package/dist/integrations/pi/engine/runtime-integration.js +12 -14
- package/dist/integrations/pi/engine/settings-bridge.d.ts +1 -2
- package/dist/integrations/pi/engine/settings-bridge.js +23 -29
- package/dist/integrations/pi/engine/settings-port.js +2 -1
- package/dist/integrations/pi/engine/workflow-runner.js +2 -2
- package/dist/native/darwin-arm64/manifest.json +1 -1
- package/dist/native/darwin-arm64/terminal-host.manifest.json +3 -3
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +1 -1
- package/dist/native/darwin-x64/terminal-host.manifest.json +3 -3
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/linux-x64/terminal-host.manifest.json +3 -3
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host.manifest.json +3 -3
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/ui/components/dialog-panel.d.ts +6 -3
- package/dist/ui/components/dialog-panel.js +10 -7
- package/dist/ui/components/theme.d.ts +1 -1
- package/dist/ui/settings/declarations.d.ts +23 -2
- package/dist/ui/settings/declarations.js +18 -2
- package/dist/ui/settings/migrations.js +7 -0
- package/docs/architecture/ui-reference-provenance.md +3 -3
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const OWNED_UI_SETTINGS_VERSION =
|
|
1
|
+
export const OWNED_UI_SETTINGS_VERSION = 20;
|
|
2
2
|
const UI_ACCENT_COLOR_CHOICES = Object.freeze([
|
|
3
3
|
"blue", "purple", "cyan", "green", "orange", "pink",
|
|
4
4
|
]);
|
|
@@ -19,6 +19,12 @@ const PLUS_MENU_KINDS = Object.freeze([
|
|
|
19
19
|
const PLUS_MENU_VALUES = Object.freeze([
|
|
20
20
|
"", "agent", "settings", "changelog", "agent,settings", "agent,changelog", "settings,changelog", "agent,settings,changelog",
|
|
21
21
|
]);
|
|
22
|
+
/** The right-side strip items, in their fixed presentation order. */
|
|
23
|
+
const TAB_BAR_RIGHT_ITEMS = Object.freeze([
|
|
24
|
+
Object.freeze({ key: "version", label: "Version", description: "Show the executing A1 version." }),
|
|
25
|
+
Object.freeze({ key: "time", label: "Time", description: "Show the current time." }),
|
|
26
|
+
]);
|
|
27
|
+
const TAB_BAR_RIGHT_ITEM_VALUES = Object.freeze(["", "version", "time", "version,time"]);
|
|
22
28
|
export const OWNED_SETTING_DECLARATIONS = Object.freeze({
|
|
23
29
|
updateCheck: Object.freeze({
|
|
24
30
|
id: "updateCheck",
|
|
@@ -33,7 +39,7 @@ export const OWNED_SETTING_DECLARATIONS = Object.freeze({
|
|
|
33
39
|
id: "timeFormat",
|
|
34
40
|
label: "Time format",
|
|
35
41
|
section: GENERIC_SECTION,
|
|
36
|
-
description: "Format used by submitted-prompt timestamps and the resident tab clock.",
|
|
42
|
+
description: "Format used by submitted-prompt timestamps and the resident tab clock when Time is enabled.",
|
|
37
43
|
application: "live",
|
|
38
44
|
defaultValue: "8:00 PM",
|
|
39
45
|
allowedValues: Object.freeze([
|
|
@@ -169,6 +175,16 @@ export const OWNED_SETTING_DECLARATIONS = Object.freeze({
|
|
|
169
175
|
allowedValues: PLUS_MENU_VALUES,
|
|
170
176
|
flags: PLUS_MENU_KINDS,
|
|
171
177
|
}),
|
|
178
|
+
tabBarRightItems: Object.freeze({
|
|
179
|
+
id: "tabBarRightItems",
|
|
180
|
+
label: "Right side",
|
|
181
|
+
section: TABS_SECTION,
|
|
182
|
+
description: "Choose whether the tab bar's right side shows the executing Version, Time, both, or neither.",
|
|
183
|
+
application: "live",
|
|
184
|
+
defaultValue: "version,time",
|
|
185
|
+
allowedValues: TAB_BAR_RIGHT_ITEM_VALUES,
|
|
186
|
+
flags: TAB_BAR_RIGHT_ITEMS,
|
|
187
|
+
}),
|
|
172
188
|
tabsAutoName: Object.freeze({
|
|
173
189
|
id: "tabsAutoName",
|
|
174
190
|
label: "Auto name",
|
|
@@ -155,6 +155,13 @@ export const OWNED_UI_SETTINGS_MIGRATIONS = Object.freeze([
|
|
|
155
155
|
return { ...values };
|
|
156
156
|
},
|
|
157
157
|
}),
|
|
158
|
+
Object.freeze({
|
|
159
|
+
to: 20,
|
|
160
|
+
description: "Introduce the resident tab-bar Version and Time defaults.",
|
|
161
|
+
migrate(values) {
|
|
162
|
+
return { ...values };
|
|
163
|
+
},
|
|
164
|
+
}),
|
|
158
165
|
]);
|
|
159
166
|
/** Shape-selected compatibility for the metadata-free product object. */
|
|
160
167
|
export function normalizeOwnedUiSettingsValues(source) {
|
|
@@ -29,8 +29,8 @@ its own `core` facade layer; A1 is a product, so the port adapts imports and kee
|
|
|
29
29
|
| `ui-components/list-block.ts` — sticky scroll | `settings/impl.ts` — `stickyHeaderGroup`, `topPaddingRows`, `visibleRowCountAt`, `clampScrollForView` | Same reservation arithmetic and two-pass reveal. |
|
|
30
30
|
| `ui-components/mouse.ts` | `core/panes/sgr-mouse.ts` | Same SGR decoding and per-call regex reset; A1 emits its own event shape. |
|
|
31
31
|
| `ui-components/mouse.ts` — tracking sequences | `core/host/pi/providers/host-bridge-surface.ts` | Mouse modes only. A1 does not take the alternate screen, because the Pi TUI owns the screen A1 renders through. |
|
|
32
|
-
| `features/owned-ui/settings-app.ts` — section layout, pointer controls, and
|
|
33
|
-
| `pi-components/models-dialog.ts` — the bare-A1 `/models` dialog | `models/index.ts` and `core/editor/components.ts` — `EditorModal` | Keeps the `all`/`scoped` filters, substring search over id/name/provider, provider-then-id ordering, Enter to switch, Space to scope, Ctrl+S to save, the `(unsaved)` marker, and the `●`/`○` scope markers. A1 renders the marker before the id and the active `✓` after `[provider]`, lists the scoped filter in cycling order (saved-but-removed members last), keeps the pinned bulk/provider/reorder bindings, and hands every switch, scope write, save, and catalog refresh to the engine adapter
|
|
32
|
+
| `features/owned-ui/settings-app.ts` — section layout, pointer controls, scrolling, and Default Model configuration | `settings/impl.ts` — `settingsValueColumn`, block navigation, sticky sections, and pointer hit regions; pinned model selector default state | Setting discovery is A1's own A1/Agent section model. Section navigation and pointer-only numeric controls follow the A1 reference; explicit `/` search, ruled shared input, shortcut-derived hints, hidden description rows, configured wheel cadence, a rail presented through the shared scrollbar settings, `Ctrl+Home`/`Ctrl+End` boundary jumps, distinct floating scalar menus, and a searchable persisted-default model configurator are reviewed owned interactions. |
|
|
33
|
+
| `pi-components/models-dialog.ts` — the bare-A1 `/models` dialog | `models/index.ts` and `core/editor/components.ts` — `EditorModal` | Keeps the `all`/`scoped` filters, substring search over id/name/provider, provider-then-id ordering, Enter to switch the current session, Space to scope, Ctrl+S to save scope, the `(unsaved)` marker, and the `●`/`○` scope markers. A1 renders the marker before the id and the active `✓` after `[provider]`, lists the scoped filter in cycling order (saved-but-removed members last), keeps the pinned bulk/provider/reorder bindings, and hands every switch, scope write, save, and catalog refresh to the engine adapter. Persisted default-model changes are deliberately separate in owned Settings. |
|
|
34
34
|
|
|
35
35
|
## Ported from the pinned engine
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@ its own `core` facade layer; A1 is a product, so the port adapts imports and kee
|
|
|
38
38
|
| --- | --- | --- |
|
|
39
39
|
| `src/cli/package-messages.ts`, `src/cli/packages.ts`, and `src/integrations/pi/engine/package-integration.ts` — package/model CLI messages | Pi 0.84.2 `packages/coding-agent/src/package-manager-cli.ts` and public `DefaultPackageManager` at commit `914cf1472e715297caa30db4b9535d534a9eb718` | Preserves terminal-aware Chalk success/error/progress styling, literal model-refresh messages, operational details, and user-settings warnings. Focused syntax/help substitutes the `a1 pi` namespace and supported grammar; A1 syntax exit status remains two. Profile isolation and independent-Pi-update rejection remain intentional. Independent CLI evidence: `test/cli/package-message-parity.test.ts` runs the untouched pinned CLI presenter in an isolated process with model-runtime test substitution, not A1-generated expected strings. This does not certify the still-pending interactive message outcomes. |
|
|
40
40
|
| `pi-engine-adapter/adapter.ts`, `engine/workflows.ts`, and `session-shell/session-shell.ts` — interactive command outcomes | Pi 0.84.2 `modes/interactive/interactive-mode.ts`, `core/model-resolver.ts`, and `config.ts` at commit `914cf1472e715297caa30db4b9535d534a9eb718` | Preserves route-specific status/warning/error semantics, authentication partial-success sequences, stored-credential logout wording, fork/clone empty states, import context/recovery, share URL and failure/cancellation behavior, and post-login warning lifetime. A1 deliberately returns recoverable failed workflow results instead of adopting Pi's process-owning shutdown/exit for fatal `/new`, `/resume`, and `/import` outcomes. Focused outcome evidence is in `test/integrations/pi/engine/workflows.test.ts` and `test/app/session-shell/session-shell.test.ts`; terminal-cell geometry remains a separate milestone. |
|
|
41
|
-
| `pi-engine-adapter/settings-bridge.ts` — presentation metadata | pinned Pi settings selector | Labels, descriptions, order, dialog parts, and bounds are extracted from the selector source at build time by `scripts/pi/build-pi-settings-metadata.mjs` into `dist
|
|
41
|
+
| `pi-engine-adapter/settings-bridge.ts` — presentation metadata | pinned Pi settings selector and model selector | Labels, descriptions, order, dialog parts, and bounds for generated settings are extracted from the settings selector source at build time by `scripts/pi/build-pi-settings-metadata.mjs` into `dist/`. The reviewed supplemental `defaultModel` setting comes from the pinned model selector and Pi's existing default-provider/model storage APIs; its separate inventory keeps generated metadata drift checks exact. |
|
|
42
42
|
| `pi-engine/session-integration.ts` and `pi-components/shell-footer-status.ts` — steering queue | pinned Pi interactive mode `onSubmit` and `updatePendingMessagesDisplay` | Steering/follow-up uses `prompt(..., { streamingBehavior })`, allowing Pi to emit the accepted user row, while remaining steering rows preserve Pi's opening spacer, dim `Steering:` labels, dequeue hint, and order before `Working`. |
|
|
43
43
|
| `ui-components/list-view.ts`, `dialog-panel.ts`, `value-menu.ts`, and `features/owned-ui/settings-app.ts` — setting presentation | pinned Pi `SettingsSelectorComponent`, Pi TUI `SettingsList`, `SelectList`, and `Input` at `0.84.2` | Cursor and selected label accents, unselected muted values, the 30-column label cap, dialog styling, notices, and narrow-width geometry retain pinned semantics. Scalar-menu placement and input remain shared, while the muted, hover-brightened selected value, A1/Agent grouping, pointer steppers, explicit `/` search, ruled shared input, shortcut-derived status hints, suppressed selected descriptions, `scrollbarSpeed`-driven wheel movement, a list rail that follows `scrollbarAppearance` and `scrollbarStyle` with transcript-style hover and drag, `Ctrl+Home`/`Ctrl+End` boundary jumps, and the dark floating menu with lighter active row and effective-value check mark are declared product-owned differences. Independent row evidence: `test/features/owned-ui/pinned-settings-presentation-parity.test.ts`; owned interaction evidence: `test/features/owned-ui/settings-app.test.ts`, `test/ui/components/value-menu.test.ts`, and `test/composition/settings-route-host.test.ts`. |
|
|
44
44
|
| `features/owned-ui/project-trust-prompt.ts` — pre-resource selector | pinned Pi `cli/startup-ui.ts`, `cli/project-trust.ts`, and `core/project-trust.ts` at commit `914cf1472e715297caa30db4b9535d534a9eb718` | Uses a fixed, dependency-bounded A1 startup selector rather than importing private CLI modules. It preserves selected-option accent, navigation/accept/reject/cancel semantics, fail-closed behavior, raw-mode restoration, clearing, cursor restoration, and parent-screen restoration before diagnostics. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timurproko/a1",
|
|
3
|
-
"version": "0.2.7-dev.
|
|
3
|
+
"version": "0.2.7-dev.1239",
|
|
4
4
|
"description": "Standalone terminal workspace for supervised native and managed agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"privateLaunchContract": "neutral-launch-v1",
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
"@mariozechner/clipboard": "^0.3.9"
|
|
124
124
|
},
|
|
125
125
|
"publication": {
|
|
126
|
-
"source": "
|
|
127
|
-
"pullRequest":
|
|
126
|
+
"source": "19a43afd07e6df67b85be09199298621b4ffc023",
|
|
127
|
+
"pullRequest": 864
|
|
128
128
|
}
|
|
129
129
|
}
|