@timurproko/a1 0.2.7-dev.1252 → 0.2.7-dev.1264
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/bin/ui.js +3 -3
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
- package/dist/app/session-shell/clipboard-image.d.ts +0 -1
- package/dist/app/session-shell/clipboard-image.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
- package/dist/app/session-shell/dialog-coordinator.js +3 -4
- package/dist/app/session-shell/dock-chrome.d.ts +11 -6
- package/dist/app/session-shell/dock-chrome.js +5 -8
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
- package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
- package/dist/app/session-shell/exit-notice.d.ts +2 -2
- package/dist/app/session-shell/exit-notice.js +1 -1
- package/dist/app/session-shell/extension-surface.d.ts +8 -7
- package/dist/app/session-shell/helper-pool.d.ts +3 -4
- package/dist/app/session-shell/helper-pool.js +1 -1
- package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
- package/dist/app/session-shell/image-preparation.d.ts +0 -2
- package/dist/app/session-shell/image-preparation.js +2 -2
- package/dist/app/session-shell/image-source.d.ts +2 -3
- package/dist/app/session-shell/image-source.js +2 -2
- package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
- package/dist/app/session-shell/input-surface-switch.js +1 -2
- package/dist/app/session-shell/login-interaction.d.ts +5 -4
- package/dist/app/session-shell/login-interaction.js +2 -3
- package/dist/app/session-shell/paste-executor.d.ts +4 -8
- package/dist/app/session-shell/paste-executor.js +2 -2
- package/dist/app/session-shell/paste-protocol.d.ts +2 -2
- package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
- package/dist/app/session-shell/path-chip-presentation.js +3 -3
- package/dist/app/session-shell/prompt-chips.d.ts +8 -7
- package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
- package/dist/app/session-shell/prompt-submission.d.ts +5 -2
- package/dist/app/session-shell/prompt-submission.js +13 -14
- package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
- package/dist/app/session-shell/quit-outro-effects.js +1 -4
- package/dist/app/session-shell/quit-outro.d.ts +9 -12
- package/dist/app/session-shell/quit-outro.js +11 -11
- package/dist/app/session-shell/resource-labels.d.ts +2 -0
- package/dist/app/session-shell/resource-labels.js +158 -0
- package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
- package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
- package/dist/app/session-shell/response-copy-transport.js +1 -1
- package/dist/app/session-shell/session-lifecycle.d.ts +2 -1
- package/dist/app/session-shell/session-prompt-history.d.ts +29 -0
- package/dist/app/session-shell/session-prompt-history.js +80 -0
- package/dist/app/session-shell/session-selectors.d.ts +46 -0
- package/dist/app/session-shell/session-selectors.js +269 -0
- package/dist/app/session-shell/session-shell-root.d.ts +76 -113
- package/dist/app/session-shell/session-shell-root.js +103 -329
- package/dist/app/session-shell/session-shell.d.ts +14 -37
- package/dist/app/session-shell/session-shell.js +177 -612
- package/dist/app/session-shell/session-viewport-controller.d.ts +9 -16
- package/dist/app/session-shell/session-viewport-controller.js +42 -320
- package/dist/app/session-shell/settings-bindings.d.ts +25 -3
- package/dist/app/session-shell/settings-bindings.js +26 -2
- package/dist/app/session-shell/share-operation.d.ts +3 -3
- package/dist/app/session-shell/share-operation.js +4 -6
- package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
- package/dist/app/session-shell/shell-clipboard.js +119 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
- package/dist/app/session-shell/shell-editor-factory.js +13 -15
- package/dist/app/session-shell/shell-host.d.ts +16 -17
- package/dist/app/session-shell/shell-host.js +18 -19
- package/dist/app/session-shell/shell-layout.d.ts +2 -2
- package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
- package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
- package/dist/app/session-shell/suggestion-surface.js +1 -1
- package/dist/app/session-shell/system-clipboard.d.ts +2 -14
- package/dist/app/session-shell/system-clipboard.js +2 -7
- package/dist/app/session-shell/transcript-document.d.ts +11 -8
- package/dist/app/session-shell/transcript-document.js +13 -14
- package/dist/app/session-shell/viewport-layout.d.ts +2 -2
- package/dist/app/session-shell/viewport-pointer.d.ts +83 -0
- package/dist/app/session-shell/viewport-pointer.js +361 -0
- package/dist/app/session-shell/workflow-output.d.ts +5 -3
- package/dist/app/session-shell/workflow-output.js +13 -15
- package/dist/cli/package-messages.d.ts +0 -1
- package/dist/cli/package-messages.js +1 -1
- package/dist/cli/session-context.d.ts +1 -1
- package/dist/cli/uninstall.d.ts +3 -2
- package/dist/composition/owned-settings.d.ts +2 -1
- package/dist/composition/owned-settings.js +0 -3
- package/dist/composition/owned-ui.d.ts +1 -1
- package/dist/composition/owned-ui.js +77 -73
- package/dist/composition/reference-selection-options.d.ts +1 -1
- package/dist/composition/reference-selection-options.js +1 -1
- package/dist/composition/session-runtime-registry.d.ts +2 -1
- package/dist/composition/settings-route-host.js +3 -10
- package/dist/composition/settings-search-input.d.ts +2 -1
- package/dist/composition/startup-route.d.ts +2 -2
- package/dist/composition/startup-route.js +2 -2
- package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
- package/dist/contracts/owned-ui/index.d.ts +2 -1
- package/dist/contracts/owned-ui/index.js +1 -1
- package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
- package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
- package/dist/contracts/owned-ui/validation.d.ts +1 -11
- package/dist/contracts/owned-ui/validation.js +8 -104
- package/dist/contracts/presentation/component.d.ts +17 -0
- package/dist/contracts/presentation/component.js +8 -0
- package/dist/contracts/presentation/index.d.ts +6 -15
- package/dist/contracts/presentation/index.js +2 -0
- package/dist/contracts/presentation/terminal.d.ts +284 -0
- package/dist/contracts/presentation/terminal.js +1 -0
- package/dist/contracts/presentation/theme.d.ts +46 -0
- package/dist/contracts/presentation/theme.js +1 -0
- package/dist/features/launch/development-launch.js +1 -1
- package/dist/features/launch/runtime-selection.d.ts +2 -2
- package/dist/features/launch/runtime-selection.js +2 -2
- package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.js +1 -1
- package/dist/features/owned-ui/release-note-state.d.ts +2 -1
- package/dist/features/owned-ui/settings-app.js +49 -425
- package/dist/features/owned-ui/settings-edits.d.ts +31 -0
- package/dist/features/owned-ui/settings-edits.js +139 -0
- package/dist/features/owned-ui/settings-model-dialog.d.ts +41 -0
- package/dist/features/owned-ui/settings-model-dialog.js +194 -0
- package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
- package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
- package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
- package/dist/features/prompt-history/service.d.ts +3 -2
- package/dist/foundation/lifecycle/claim-gate.d.ts +2 -1
- package/dist/foundation/release/automatic-update.d.ts +5 -14
- package/dist/foundation/release/automatic-update.js +15 -22
- package/dist/foundation/release/bootstrap.js +4 -4
- package/dist/foundation/release/dependency-certification.d.ts +0 -1
- package/dist/foundation/release/dependency-certification.js +1 -1
- package/dist/foundation/release/dependency-layer.js +3 -3
- package/dist/foundation/release/early-accent.d.ts +2 -2
- package/dist/foundation/release/early-accent.js +1 -1
- package/dist/foundation/release/index.d.ts +2 -2
- package/dist/foundation/release/index.js +1 -1
- package/dist/foundation/release/latest-release.d.ts +3 -18
- package/dist/foundation/release/latest-release.js +11 -11
- package/dist/foundation/release/managed-path.d.ts +10 -0
- package/dist/foundation/release/managed-path.js +26 -0
- package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
- package/dist/foundation/release/ordinary-launch-selection.js +1 -1
- package/dist/foundation/release/release-gc.d.ts +3 -3
- package/dist/foundation/release/release-gc.js +10 -12
- package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +23 -23
- package/dist/foundation/release/{cohort-state.js → release-state.js} +8 -8
- package/dist/foundation/release/restart-certification.js +3 -4
- package/dist/foundation/release/update-activation.js +3 -3
- package/dist/foundation/release/update-execution-lease.d.ts +2 -3
- package/dist/foundation/release/update-execution-lease.js +2 -8
- package/dist/foundation/release/update-installer.d.ts +45 -0
- package/dist/foundation/release/update-installer.js +57 -0
- package/dist/foundation/release/update-launch.d.ts +2 -2
- package/dist/foundation/release/update-recovery.js +2 -9
- package/dist/foundation/release/update.d.ts +4 -25
- package/dist/foundation/release/update.js +164 -183
- package/dist/foundation/startup/startup-budget.d.ts +5 -5
- package/dist/foundation/startup/startup-budget.js +2 -2
- package/dist/integrations/pi/components/bracketed-paste.d.ts +33 -0
- package/dist/integrations/pi/components/bracketed-paste.js +123 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
- package/dist/integrations/pi/components/index.d.ts +15 -9
- package/dist/integrations/pi/components/index.js +9 -5
- package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
- package/dist/integrations/pi/components/lazy-selectors.js +1 -1
- package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
- package/dist/integrations/pi/components/modal-frame.js +3 -23
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
- package/dist/integrations/pi/components/owned-editor-ux.js +46 -140
- package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
- package/dist/integrations/pi/components/shell-footer-status.d.ts +2 -2
- package/dist/integrations/pi/components/shell-footer-status.js +3 -2
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -5
- package/dist/integrations/pi/components/shell-presenters-info.js +2 -1
- package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -227
- package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
- package/dist/integrations/pi/components/skills-command.d.ts +1 -9
- package/dist/integrations/pi/components/skills-command.js +5 -5
- package/dist/integrations/pi/components/theme.d.ts +9 -2
- package/dist/integrations/pi/components/theme.js +17 -2
- package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
- package/dist/integrations/pi/engine/adapter.d.ts +4 -13
- package/dist/integrations/pi/engine/adapter.js +9 -61
- package/dist/integrations/pi/engine/changelog.d.ts +2 -2
- package/dist/integrations/pi/engine/changelog.js +3 -3
- package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
- package/dist/integrations/pi/engine/compaction-progress.js +1 -1
- package/dist/integrations/pi/engine/conformance.d.ts +2 -1
- package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
- package/dist/integrations/pi/engine/default-model-setting.js +1 -2
- package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
- package/dist/integrations/pi/engine/host.js +3 -3
- package/dist/integrations/pi/engine/message-values.d.ts +0 -1
- package/dist/integrations/pi/engine/message-values.js +1 -1
- package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
- package/dist/integrations/pi/engine/pending-delivery.js +3 -3
- package/dist/integrations/pi/engine/ports.d.ts +7 -1
- package/dist/integrations/pi/engine/ports.js +4 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -2
- package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
- package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
- package/dist/integrations/pi/engine/public-main-entry.js +1 -1
- package/dist/integrations/pi/engine/repository-metadata.d.ts +49 -0
- package/dist/integrations/pi/engine/repository-metadata.js +189 -0
- package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
- package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
- package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
- package/dist/integrations/pi/engine/repository-pr.js +1 -1
- package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
- package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
- package/dist/integrations/pi/engine/session-runtime.d.ts +7 -12
- package/dist/integrations/pi/engine/session-runtime.js +21 -178
- package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
- package/dist/integrations/pi/engine/settings-bridge.js +1 -1
- package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
- package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
- package/dist/integrations/pi/engine/view-state.d.ts +21 -2
- package/dist/integrations/pi/engine/view-state.js +129 -1
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -2
- package/dist/integrations/pi/engine/workflow-runner.js +254 -365
- package/dist/integrations/pi/engine/workflow-share.d.ts +9 -0
- package/dist/integrations/pi/engine/workflow-share.js +168 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +0 -20
- package/dist/integrations/pi/engine/workflow-support.js +4 -65
- package/dist/integrations/pi/engine/workflows.d.ts +5 -5
- package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/components.js +75 -0
- package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
- package/dist/integrations/pi/session-presenters/index.js +1 -0
- package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/presentation.js +10 -0
- package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
- package/dist/integrations/pi/session-presenters/presenters.js +3 -1
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +9 -19
- package/dist/integrations/pi/tui-runtime/adapter.js +56 -174
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +9 -44
- package/dist/integrations/pi/tui-runtime/index.d.ts +1 -1
- package/dist/integrations/pi/tui-runtime/index.js +1 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +4 -10
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
- package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
- package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
- package/dist/ui/components/index.d.ts +2 -2
- package/dist/ui/components/index.js +1 -1
- package/dist/ui/components/selection-copy.d.ts +0 -1
- package/dist/ui/components/selection-copy.js +0 -12
- package/dist/ui/components/theme.d.ts +4 -19
- package/dist/ui/components/theme.js +6 -0
- package/dist/ui/components/transcript-viewport-frame.d.ts +120 -0
- package/dist/ui/components/transcript-viewport-frame.js +314 -0
- package/dist/ui/components/transcript-viewport-types.d.ts +147 -0
- package/dist/ui/components/transcript-viewport-types.js +1 -0
- package/dist/ui/components/transcript-viewport.d.ts +2 -147
- package/dist/ui/components/transcript-viewport.js +87 -315
- package/dist/ui/settings/declarations.d.ts +2 -3
- package/dist/ui/settings/declarations.js +2 -3
- package/dist/ui/settings/early-accent.js +1 -1
- package/dist/ui/settings/index.d.ts +3 -5
- package/dist/ui/settings/index.js +2 -3
- package/dist/ui/settings/manager.d.ts +0 -4
- package/dist/ui/settings/manager.js +6 -62
- package/dist/ui/settings/resolution.d.ts +6 -18
- package/dist/ui/settings/resolution.js +4 -103
- package/dist/ui/settings/sections.d.ts +0 -4
- package/dist/ui/settings/sections.js +1 -1
- package/docs/architecture/boundaries.md +2 -2
- package/docs/architecture/internal-naming.md +2 -0
- package/docs/architecture/project-structure.md +4 -2
- package/docs/validation.md +1 -1
- package/package.json +3 -4
- package/dist/integrations/pi/components/components.d.ts +0 -4
- package/dist/integrations/pi/components/components.js +0 -48
- package/dist/integrations/pi/components/conformance.d.ts +0 -18
- package/dist/integrations/pi/components/conformance.js +0 -70
- package/dist/integrations/pi/components/shell-components.d.ts +0 -7
- package/dist/integrations/pi/components/shell-components.js +0 -7
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
- package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -9
- package/dist/integrations/pi/engine/diagnostics-state.js +0 -34
- package/dist/integrations/pi/engine/usage-view.d.ts +0 -4
- package/dist/integrations/pi/engine/usage-view.js +0 -56
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +0 -166
- package/dist/ui/settings/migrations.d.ts +0 -19
- package/dist/ui/settings/migrations.js +0 -225
- package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
- package/dist/ui/settings/progress-palette.generated.js +0 -139
- /package/dist/{integrations/pi/tui-runtime/contracts.js → contracts/owned-ui/shell-components.js} +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
import type { OwnedUiDialog, OwnedUiEvent, OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock } from "./model.js";
|
|
2
|
+
import type { OwnedUiExtensionOverlayHandle, OwnedUiExtensionOverlayOptions, OwnedUiExtensionUiPort } from "./extension-ui.js";
|
|
3
|
+
import type { OwnedUiSessionInfoPresentation, OwnedUiSessionProductMode } from "./session-workflows.js";
|
|
4
|
+
import type { SuggestionDecision } from "./suggestion-diagnostics.js";
|
|
5
|
+
import type { PROMPT_HISTORY_EDITOR_REPLACEMENT } from "./prompt-history.js";
|
|
6
|
+
/** Key bindings by action id, as the vendor reports them. */
|
|
7
|
+
export type OwnedUiShellKeybindings = Readonly<Record<string, string | readonly string[] | undefined>>;
|
|
8
|
+
/** The vendor's history-capable editor, carried opaquely from composition to the editor factory. */
|
|
9
|
+
export type OwnedUiShellHistoryEditor = abstract new (...args: never[]) => unknown;
|
|
10
|
+
/** The process's shared keybindings, carried opaquely from composition to the editor factory. */
|
|
11
|
+
export interface OwnedUiShellKeybindingsHost {
|
|
12
|
+
readonly manager: unknown;
|
|
13
|
+
ensureActive(): void;
|
|
14
|
+
reload(): void;
|
|
15
|
+
}
|
|
16
|
+
export interface OwnedUiShellComponentPort {
|
|
17
|
+
render(width: number): readonly string[];
|
|
18
|
+
invalidate(): void;
|
|
19
|
+
handleInput?(data: string): void;
|
|
20
|
+
setFocused?(focused: boolean): void;
|
|
21
|
+
dispose?(): void;
|
|
22
|
+
}
|
|
23
|
+
export type OwnedUiShellClipboardContent = {
|
|
24
|
+
readonly kind: "text";
|
|
25
|
+
readonly text: string;
|
|
26
|
+
} | {
|
|
27
|
+
readonly kind: "image";
|
|
28
|
+
readonly data: string;
|
|
29
|
+
readonly mimeType: string;
|
|
30
|
+
};
|
|
31
|
+
export interface OwnedUiShellEditorTextRange {
|
|
32
|
+
readonly start: number;
|
|
33
|
+
readonly end: number;
|
|
34
|
+
}
|
|
35
|
+
export interface OwnedUiShellEditorPointerEvent {
|
|
36
|
+
readonly kind: "press" | "motion" | "release";
|
|
37
|
+
readonly button: number;
|
|
38
|
+
readonly column: number;
|
|
39
|
+
/** One-based row relative to the top border of the editor body, excluding its menu. */
|
|
40
|
+
readonly row: number;
|
|
41
|
+
}
|
|
42
|
+
export interface OwnedUiShellEditorBodyGeometry {
|
|
43
|
+
/** Zero-based body offset in the most recently rendered component rows. */
|
|
44
|
+
readonly rowOffset: number;
|
|
45
|
+
/** Border-inclusive body height, excluding autocomplete. */
|
|
46
|
+
readonly rowCount: number;
|
|
47
|
+
}
|
|
48
|
+
export interface OwnedUiShellEditorPort extends OwnedUiShellComponentPort {
|
|
49
|
+
/** Present only for the owned above-prompt autocomplete presentation. */
|
|
50
|
+
bodyGeometry?(): OwnedUiShellEditorBodyGeometry;
|
|
51
|
+
readonly recall?: OwnedUiShellEditorRecall;
|
|
52
|
+
readonly historyReplacement?: typeof PROMPT_HISTORY_EDITOR_REPLACEMENT;
|
|
53
|
+
/** Restores the shared keybindings if anything replaced the active registry; a no-op when it is already active. */
|
|
54
|
+
activateKeybindings(): void;
|
|
55
|
+
keybindingConfig(): OwnedUiShellKeybindings;
|
|
56
|
+
reloadKeybindings(): void;
|
|
57
|
+
/** Uses the vendor's terminal decoder rather than assuming one terminal escape spelling. */
|
|
58
|
+
matchesTerminalKey(data: string, key: "home" | "end" | "pageUp" | "pageDown" | "ctrl+home" | "ctrl+end" | "alt+home" | "ctrl+v"): boolean;
|
|
59
|
+
getText(): string;
|
|
60
|
+
setText(text: string): void;
|
|
61
|
+
insertText(text: string): void;
|
|
62
|
+
addToHistory(text: string): void;
|
|
63
|
+
setSubmitEnabled(enabled: boolean): void;
|
|
64
|
+
setSubmitHandler(handler: (text: string) => void): void;
|
|
65
|
+
setInterruptHandler(handler: () => void): void;
|
|
66
|
+
setAutocompleteCommands(commands: readonly OwnedUiShellAutocompleteCommand[]): void;
|
|
67
|
+
setPaddingX(padding: number): void;
|
|
68
|
+
setAutocompleteMaxVisible(maxVisible: number): void;
|
|
69
|
+
addAutocompleteProvider(factory: unknown): void;
|
|
70
|
+
setThinkingLevel(level: OwnedUiThinkingLevel): void;
|
|
71
|
+
setPromptSuggestion(text: string | null): void;
|
|
72
|
+
canPresentPromptSuggestion(): boolean;
|
|
73
|
+
promptSuggestionBlockReason?(): SuggestionDecision;
|
|
74
|
+
hasSelection(): boolean;
|
|
75
|
+
/** Exact expanded semantic editor selection without mutating or collapsing it. */
|
|
76
|
+
selectedText?(): string | undefined;
|
|
77
|
+
ownsPointer(): boolean;
|
|
78
|
+
handlePointer(event: OwnedUiShellEditorPointerEvent): boolean;
|
|
79
|
+
pasteClipboard(): boolean;
|
|
80
|
+
cancelPendingPastes?(): void;
|
|
81
|
+
}
|
|
82
|
+
export interface OwnedUiShellAutocompleteCommand {
|
|
83
|
+
readonly name: string;
|
|
84
|
+
readonly description?: string;
|
|
85
|
+
readonly argumentHint?: string;
|
|
86
|
+
readonly argumentOptions?: readonly OwnedUiShellSelectorOption[];
|
|
87
|
+
/** Built-in entries decorate the active profile's catalog; everything else is a discovered resource. */
|
|
88
|
+
readonly source?: "builtin" | "prompt" | "skill" | "extension";
|
|
89
|
+
}
|
|
90
|
+
export interface OwnedUiShellViewComponentPort extends OwnedUiShellComponentPort {
|
|
91
|
+
update(view: OwnedUiSessionViewModel): void;
|
|
92
|
+
}
|
|
93
|
+
export type OwnedUiShellStatusPlacement = "live" | "dock" | "hidden";
|
|
94
|
+
export type OwnedUiShellProgressPresentationMode = "pinned" | "custom-viewport";
|
|
95
|
+
export interface OwnedUiShellProgressStatusPresentation {
|
|
96
|
+
readonly text: (message: string, mode: OwnedUiShellProgressPresentationMode) => string;
|
|
97
|
+
readonly frame: (message: string, phase: number, styles: {
|
|
98
|
+
readonly muted: (text: string) => string;
|
|
99
|
+
readonly highlight: (text: string) => string;
|
|
100
|
+
}) => string;
|
|
101
|
+
}
|
|
102
|
+
export interface OwnedUiShellStatusPort extends OwnedUiShellViewComponentPort {
|
|
103
|
+
/** `active` owns a live operation before the engine lifecycle itself becomes busy. */
|
|
104
|
+
setWorkingOverride(message: string | undefined, active?: boolean): void;
|
|
105
|
+
setOutputPad(padding: 0 | 1): void;
|
|
106
|
+
/** Bare A1 shows engine-measured progress beside the working word; the pinned route keeps the bare word. */
|
|
107
|
+
setProgressPresentation(presentation: OwnedUiShellProgressPresentationMode): void;
|
|
108
|
+
/** Semantic row placement; callers must not inspect rendered text. */
|
|
109
|
+
placement(): OwnedUiShellStatusPlacement;
|
|
110
|
+
renderDock(width: number): readonly string[];
|
|
111
|
+
renderLive(width: number): readonly string[];
|
|
112
|
+
}
|
|
113
|
+
export interface OwnedUiShellQueuedInputPort extends OwnedUiShellComponentPort {
|
|
114
|
+
update(submissions: readonly string[]): void;
|
|
115
|
+
}
|
|
116
|
+
export interface OwnedUiShellHeaderPort extends OwnedUiShellComponentPort {
|
|
117
|
+
readonly expanded: boolean;
|
|
118
|
+
setExpanded(expanded: boolean): void;
|
|
119
|
+
}
|
|
120
|
+
export type OwnedUiShellResourceSection = "Context" | "Skills" | "Prompts" | "Extensions" | "Themes";
|
|
121
|
+
export interface OwnedUiShellResourceEntry {
|
|
122
|
+
readonly section: OwnedUiShellResourceSection;
|
|
123
|
+
readonly label: string;
|
|
124
|
+
readonly sourcePath: string | null;
|
|
125
|
+
readonly diagnostic?: string | null;
|
|
126
|
+
}
|
|
127
|
+
export interface OwnedUiShellLoadedResourcesPort extends OwnedUiShellComponentPort {
|
|
128
|
+
setExpanded(expanded: boolean): void;
|
|
129
|
+
}
|
|
130
|
+
export interface OwnedUiShellImageAssetResolver {
|
|
131
|
+
resolve(assetId: string): OwnedUiImageAttachment | null;
|
|
132
|
+
}
|
|
133
|
+
export interface OwnedUiShellExtensionRendererResolver {
|
|
134
|
+
getMessageRenderer(customType: string): unknown;
|
|
135
|
+
getToolRenderers(toolName: string): unknown;
|
|
136
|
+
getShortcuts?(bindings: OwnedUiShellKeybindings): readonly {
|
|
137
|
+
readonly key: string;
|
|
138
|
+
readonly description: string;
|
|
139
|
+
}[];
|
|
140
|
+
}
|
|
141
|
+
export interface OwnedUiShellTranscriptComponentPort extends OwnedUiShellComponentPort {
|
|
142
|
+
readonly id: string;
|
|
143
|
+
readonly revision: number;
|
|
144
|
+
readonly presentationRevision?: number;
|
|
145
|
+
update(block: OwnedUiTranscriptBlock): void;
|
|
146
|
+
setExpanded(expanded: boolean): void;
|
|
147
|
+
setOutputPad(padding: 0 | 1): void;
|
|
148
|
+
setHideThinkingBlock(hidden: boolean): void;
|
|
149
|
+
setMermaidRenderingMode(mode: "off" | "final" | "streaming"): void;
|
|
150
|
+
setImagePresentation(showImages: boolean, imageWidthCells: number): void;
|
|
151
|
+
}
|
|
152
|
+
export interface OwnedUiShellStartupNotice {
|
|
153
|
+
readonly kind: "info" | "warning" | "error";
|
|
154
|
+
readonly message: string;
|
|
155
|
+
}
|
|
156
|
+
export interface OwnedUiShellHeaderOptions {
|
|
157
|
+
readonly getKeybindings?: () => OwnedUiShellKeybindings;
|
|
158
|
+
readonly quiet?: boolean;
|
|
159
|
+
readonly expanded?: boolean;
|
|
160
|
+
readonly notices?: readonly OwnedUiShellStartupNotice[];
|
|
161
|
+
readonly resources?: readonly OwnedUiShellResourceEntry[];
|
|
162
|
+
}
|
|
163
|
+
/** An owned paste reserves its edit immediately and acknowledges completion only after insertion. */
|
|
164
|
+
export interface OwnedUiShellPasteReservation {
|
|
165
|
+
readonly marker: string;
|
|
166
|
+
readonly result: Promise<string>;
|
|
167
|
+
complete?(): void;
|
|
168
|
+
isCurrent?(): boolean;
|
|
169
|
+
}
|
|
170
|
+
export interface OwnedUiShellEditorOptions {
|
|
171
|
+
readonly persistentHistory?: boolean;
|
|
172
|
+
/** Configures the shared interactive input for a caller narrower than the agent prompt. */
|
|
173
|
+
readonly inputCapabilities?: {
|
|
174
|
+
readonly singleLine?: boolean;
|
|
175
|
+
readonly paste?: boolean;
|
|
176
|
+
readonly autocomplete?: boolean;
|
|
177
|
+
readonly placeholder?: string;
|
|
178
|
+
};
|
|
179
|
+
readonly historyEditor?: OwnedUiShellHistoryEditor;
|
|
180
|
+
/** Bare A1 adds ergonomic aliases while comparison profiles retain the vendor defaults. */
|
|
181
|
+
readonly keybindingProfile?: "pi" | "a1";
|
|
182
|
+
/** The process's shared keybindings; its profile must match `keybindingProfile`. */
|
|
183
|
+
readonly keybindings?: OwnedUiShellKeybindingsHost;
|
|
184
|
+
readonly getColumns: () => number;
|
|
185
|
+
readonly getRows: () => number;
|
|
186
|
+
readonly requestRender: () => void;
|
|
187
|
+
readonly onSubmit: (text: string) => void;
|
|
188
|
+
readonly onChange?: (text: string) => void;
|
|
189
|
+
readonly onInterrupt?: () => void;
|
|
190
|
+
readonly onClear?: () => void;
|
|
191
|
+
readonly onExit?: () => void;
|
|
192
|
+
readonly onSuspend?: () => void;
|
|
193
|
+
readonly onExternalEditor?: () => void;
|
|
194
|
+
readonly onPasteImage?: () => void;
|
|
195
|
+
readonly onExtensionShortcut?: (data: string) => boolean;
|
|
196
|
+
readonly onModelSelect?: () => void;
|
|
197
|
+
readonly onModelCycle?: ((direction: "forward" | "backward") => void) | undefined;
|
|
198
|
+
readonly onThinkingCycle?: (() => void) | undefined;
|
|
199
|
+
readonly onThinkingToggle?: (() => void) | undefined;
|
|
200
|
+
readonly onToolsExpand?: (() => void) | undefined;
|
|
201
|
+
readonly onMessageCopy?: (() => void) | undefined;
|
|
202
|
+
readonly onFollowUp?: (() => void) | undefined;
|
|
203
|
+
readonly onDequeue?: (() => void) | undefined;
|
|
204
|
+
readonly onPromptSuggestionAccepted?: (text: string) => void;
|
|
205
|
+
readonly onCopyText?: (text: string, cut: boolean) => void;
|
|
206
|
+
readonly readClipboardContent?: (signal?: AbortSignal) => Promise<OwnedUiShellClipboardContent | null>;
|
|
207
|
+
readonly beginClipboardPaste?: () => OwnedUiShellPasteReservation;
|
|
208
|
+
readonly beginTextPaste?: (text: string) => OwnedUiShellPasteReservation;
|
|
209
|
+
readonly deferTextPaste?: (text: string) => boolean;
|
|
210
|
+
readonly onPasteRejected?: (error: unknown) => void;
|
|
211
|
+
readonly onPasteInput?: (bytes: number, phase: "framing" | "inserting" | "settled") => void;
|
|
212
|
+
readonly editorHiddenRanges?: (line: string) => readonly OwnedUiShellEditorTextRange[];
|
|
213
|
+
readonly transformPastedContent?: (content: OwnedUiShellClipboardContent) => string;
|
|
214
|
+
readonly editorAtomicRanges?: (line: string) => readonly OwnedUiShellEditorTextRange[];
|
|
215
|
+
readonly expandCopiedEditorText?: (text: string) => string;
|
|
216
|
+
readonly paintEditorSelection?: (line: string, from: number, to: number, atomic: boolean) => string;
|
|
217
|
+
/** Row indices restart at zero for each complete owned editor decoration pass. */
|
|
218
|
+
readonly decorateEditorRow?: (row: string, width: number, rowIndex: number) => string;
|
|
219
|
+
readonly cwd?: string;
|
|
220
|
+
readonly agentDir?: string;
|
|
221
|
+
readonly autocompleteCommands?: readonly OwnedUiShellAutocompleteCommand[];
|
|
222
|
+
/**
|
|
223
|
+
* Bare A1's skills presentation, read at every command-list installation. `collapse` replaces the
|
|
224
|
+
* `skill:<name>` entries with one `skills` command and its tunnel; absent or `expand` keeps the
|
|
225
|
+
* pinned per-skill entries. Comparison profiles ignore it.
|
|
226
|
+
*/
|
|
227
|
+
readonly skillsPresentation?: () => "collapse" | "expand";
|
|
228
|
+
readonly promptPresentation?: {
|
|
229
|
+
readonly input: OwnedUiShellPromptInputPresentation;
|
|
230
|
+
readonly styleSuggestion: (text: string) => string;
|
|
231
|
+
readonly styleSuggestionCaret: (text: string) => string;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
export interface OwnedUiShellSelectorOption {
|
|
235
|
+
readonly id: string;
|
|
236
|
+
readonly label: string;
|
|
237
|
+
readonly description?: string;
|
|
238
|
+
}
|
|
239
|
+
export interface OwnedUiShellSelectorOptions {
|
|
240
|
+
readonly title?: string;
|
|
241
|
+
readonly options: readonly OwnedUiShellSelectorOption[];
|
|
242
|
+
readonly maxVisible?: number;
|
|
243
|
+
readonly onSelect?: (id: string) => void;
|
|
244
|
+
readonly onCancel?: () => void;
|
|
245
|
+
}
|
|
246
|
+
export interface OwnedUiShellEditorRecall {
|
|
247
|
+
replace(entries: readonly string[]): void;
|
|
248
|
+
position(): {
|
|
249
|
+
readonly index: number;
|
|
250
|
+
readonly total: number;
|
|
251
|
+
};
|
|
252
|
+
observe(listener: () => void): () => void;
|
|
253
|
+
reset(): void;
|
|
254
|
+
/** Exit a recall browse cycle by restoring the unsent draft rather than keeping the recalled entry. */
|
|
255
|
+
restoreDraft?(): void;
|
|
256
|
+
}
|
|
257
|
+
export interface OwnedUiShellPromptInputGeometry {
|
|
258
|
+
readonly prefixWidth: number;
|
|
259
|
+
readonly innerWidth: number;
|
|
260
|
+
readonly paddingX: number;
|
|
261
|
+
readonly contentWidth: number;
|
|
262
|
+
readonly layoutWidth: number;
|
|
263
|
+
}
|
|
264
|
+
export interface OwnedUiShellPromptInputBody {
|
|
265
|
+
readonly rows: readonly string[];
|
|
266
|
+
readonly topRule?: string | undefined;
|
|
267
|
+
readonly bottomRule?: string | undefined;
|
|
268
|
+
readonly after?: readonly string[];
|
|
269
|
+
readonly afterIndent?: number;
|
|
270
|
+
}
|
|
271
|
+
export interface OwnedUiShellPromptInputPresentation {
|
|
272
|
+
geometry(width: number, padding?: number): OwnedUiShellPromptInputGeometry;
|
|
273
|
+
styleRule(text: string): string;
|
|
274
|
+
render(width: number, body: (innerWidth: number) => OwnedUiShellPromptInputBody, ruled?: boolean, padding?: number): string[];
|
|
275
|
+
}
|
|
276
|
+
/** The size and render request a vendor component reads from the terminal it is shown on. */
|
|
277
|
+
export type OwnedUiShellRuntime = Pick<OwnedUiShellEditorOptions, "getColumns" | "getRows" | "requestRender">;
|
|
278
|
+
export type OwnedUiShellMermaidRenderingMode = "off" | "final" | "streaming";
|
|
279
|
+
export interface OwnedUiShellSubmittedPromptComposer {
|
|
280
|
+
readonly layout: (width: number) => {
|
|
281
|
+
readonly contentWidth: number;
|
|
282
|
+
};
|
|
283
|
+
readonly compose: (contentRows: readonly string[], width: number, style?: {
|
|
284
|
+
readonly prefix?: (text: string) => string;
|
|
285
|
+
}) => readonly string[];
|
|
286
|
+
}
|
|
287
|
+
export interface OwnedUiShellCommandMessage {
|
|
288
|
+
readonly kind: "error" | "warning" | "accent" | "new" | "name" | "debug";
|
|
289
|
+
readonly message: string;
|
|
290
|
+
readonly detail?: string;
|
|
291
|
+
}
|
|
292
|
+
/** What the hotkeys presenters render: the editor bindings and the extension shortcuts declared over them. */
|
|
293
|
+
export interface OwnedUiShellHotkeysPresentation {
|
|
294
|
+
readonly bindings?: OwnedUiShellKeybindings;
|
|
295
|
+
readonly getShortcuts?: NonNullable<OwnedUiShellExtensionRendererResolver["getShortcuts"]>;
|
|
296
|
+
readonly profile?: "pi" | "a1";
|
|
297
|
+
}
|
|
298
|
+
export interface OwnedUiShellReleaseUpdate {
|
|
299
|
+
readonly version: string;
|
|
300
|
+
readonly command: string;
|
|
301
|
+
readonly changelogUrl: string | null;
|
|
302
|
+
}
|
|
303
|
+
export interface OwnedUiShellReleaseUpdateBanner {
|
|
304
|
+
readonly rows: readonly string[];
|
|
305
|
+
/** Clickable close area: zero-based rows within `rows`, one-based inclusive columns. */
|
|
306
|
+
readonly close: {
|
|
307
|
+
readonly rowStart: number;
|
|
308
|
+
readonly rowEnd: number;
|
|
309
|
+
readonly columnStart: number;
|
|
310
|
+
readonly columnEnd: number;
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
export interface OwnedUiShellOperationLoaderPort extends OwnedUiShellComponentPort {
|
|
314
|
+
readonly signal: AbortSignal;
|
|
315
|
+
/** Relabels the running operation; the pinned comparison loader keeps its first label. */
|
|
316
|
+
readonly setMessage?: (message: string) => void;
|
|
317
|
+
}
|
|
318
|
+
export interface OwnedUiShellAuthProviderOption extends OwnedUiShellSelectorOption {
|
|
319
|
+
readonly providerId: string;
|
|
320
|
+
readonly authType: "oauth" | "api_key";
|
|
321
|
+
readonly status?: {
|
|
322
|
+
readonly type: "oauth" | "api_key";
|
|
323
|
+
readonly source?: string;
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
export interface OwnedUiShellLoginDialogPort extends OwnedUiShellComponentPort {
|
|
327
|
+
showAuth(url: string, instructions?: string): void;
|
|
328
|
+
showDeviceCode(info: {
|
|
329
|
+
readonly verificationUri: string;
|
|
330
|
+
readonly userCode: string;
|
|
331
|
+
}): void;
|
|
332
|
+
showManualInput(message: string): Promise<string>;
|
|
333
|
+
showPrompt(message: string, placeholder?: string): Promise<string>;
|
|
334
|
+
showDetails(lines: readonly string[]): void;
|
|
335
|
+
showInfo(message: string, links?: readonly {
|
|
336
|
+
readonly label?: string;
|
|
337
|
+
readonly url: string;
|
|
338
|
+
}[], showCloseHint?: boolean): void;
|
|
339
|
+
showWaiting(message: string): void;
|
|
340
|
+
showProgress(message: string): void;
|
|
341
|
+
}
|
|
342
|
+
export interface OwnedUiShellSkillSummary {
|
|
343
|
+
readonly name: string;
|
|
344
|
+
readonly description: string;
|
|
345
|
+
}
|
|
346
|
+
export interface OwnedUiShellTrustUpdate {
|
|
347
|
+
readonly path: string;
|
|
348
|
+
readonly decision: boolean | null;
|
|
349
|
+
}
|
|
350
|
+
export interface OwnedUiShellTrustDecision {
|
|
351
|
+
readonly path: string;
|
|
352
|
+
readonly decision: boolean;
|
|
353
|
+
}
|
|
354
|
+
export interface OwnedUiShellTrustOption {
|
|
355
|
+
readonly label: string;
|
|
356
|
+
readonly trusted: boolean;
|
|
357
|
+
readonly updates: readonly OwnedUiShellTrustUpdate[];
|
|
358
|
+
readonly savedPath?: string;
|
|
359
|
+
}
|
|
360
|
+
export interface OwnedUiShellTrustSelectorOptions {
|
|
361
|
+
readonly cwd: string;
|
|
362
|
+
readonly savedDecision: OwnedUiShellTrustDecision | null;
|
|
363
|
+
readonly projectTrusted: boolean;
|
|
364
|
+
readonly trustOptions: readonly OwnedUiShellTrustOption[];
|
|
365
|
+
readonly onSelect: (selection: {
|
|
366
|
+
readonly trusted: boolean;
|
|
367
|
+
readonly updates: readonly OwnedUiShellTrustUpdate[];
|
|
368
|
+
}) => void;
|
|
369
|
+
readonly onCancel: () => void;
|
|
370
|
+
}
|
|
371
|
+
/** A program-status report for terminals that show one; `clear` removes it. */
|
|
372
|
+
export interface OwnedUiShellProgramStatus {
|
|
373
|
+
state: "idle" | "working" | "blocked" | "done" | "error" | "clear";
|
|
374
|
+
app?: string;
|
|
375
|
+
kind?: "permission" | "question" | "auth";
|
|
376
|
+
}
|
|
377
|
+
export interface OwnedUiShellProgramStatusBlocked {
|
|
378
|
+
readonly kind: NonNullable<OwnedUiShellProgramStatus["kind"]>;
|
|
379
|
+
readonly message: string;
|
|
380
|
+
}
|
|
381
|
+
/** Turns run lifecycle events and blocking prompts into terminal program-status reports. */
|
|
382
|
+
export interface OwnedUiShellProgramStatusReporter {
|
|
383
|
+
handleEvent(event: Extract<OwnedUiEvent, {
|
|
384
|
+
type: "agent-run-started" | "assistant-message-completed" | "agent-run-settled";
|
|
385
|
+
}>): void;
|
|
386
|
+
setBlocked(source: string, status: OwnedUiShellProgramStatusBlocked | undefined): void;
|
|
387
|
+
setErrorMessage(message: string | undefined): void;
|
|
388
|
+
reset(): void;
|
|
389
|
+
clear(): void;
|
|
390
|
+
report(): void;
|
|
391
|
+
}
|
|
392
|
+
/** What the extension UI bridge needs from the shell that hosts it. */
|
|
393
|
+
export interface OwnedUiShellExtensionUiBridgeHost {
|
|
394
|
+
readonly runtime: OwnedUiShellRuntime;
|
|
395
|
+
readonly agentDir?: string;
|
|
396
|
+
setInputSurface(component: OwnedUiShellComponentPort | null): void;
|
|
397
|
+
setProgramStatusBlocked(status: OwnedUiShellProgramStatusBlocked | undefined): void;
|
|
398
|
+
showOverlay(component: OwnedUiShellComponentPort, options?: OwnedUiExtensionOverlayOptions): OwnedUiExtensionOverlayHandle;
|
|
399
|
+
listenInput(handler: (data: string) => {
|
|
400
|
+
readonly consume?: boolean;
|
|
401
|
+
readonly data?: string;
|
|
402
|
+
} | undefined): () => void;
|
|
403
|
+
replaceWidget(key: string, component: OwnedUiShellComponentPort | null, placement: "aboveEditor" | "belowEditor"): void;
|
|
404
|
+
replaceHeader(component: OwnedUiShellComponentPort | null): void;
|
|
405
|
+
replaceFooter(component: OwnedUiShellComponentPort | null): void;
|
|
406
|
+
setStatus(key: string, text: string | undefined): void;
|
|
407
|
+
setWorking(message: string | undefined, visible?: boolean): void;
|
|
408
|
+
notify(message: string, type: "info" | "warning" | "error"): void;
|
|
409
|
+
setTitle(title: string): void;
|
|
410
|
+
getEditorText(): string;
|
|
411
|
+
setEditorText(text: string): void;
|
|
412
|
+
pasteToEditor(text: string): void;
|
|
413
|
+
addAutocompleteProvider(factory: unknown): void;
|
|
414
|
+
setCustomEditor(component: OwnedUiShellComponentPort | null): void;
|
|
415
|
+
getFooterData(): unknown;
|
|
416
|
+
getToolsExpanded(): boolean;
|
|
417
|
+
setToolsExpanded(expanded: boolean): void;
|
|
418
|
+
}
|
|
419
|
+
export interface OwnedUiShellExtensionUiBridge {
|
|
420
|
+
/** The extension UI context the engine binds to a session. */
|
|
421
|
+
readonly context: OwnedUiExtensionUiPort;
|
|
422
|
+
input(title: string, placeholder: string, options?: {
|
|
423
|
+
readonly retainSurfaceOnSettle?: boolean;
|
|
424
|
+
}): Promise<string | undefined>;
|
|
425
|
+
reset(): void;
|
|
426
|
+
dispose(): void;
|
|
427
|
+
}
|
|
428
|
+
export type OwnedUiShellThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
429
|
+
export type OwnedUiShellTreeFilterMode = "default" | "no-tools" | "user-only" | "labeled-only" | "all";
|
|
430
|
+
export interface OwnedUiShellThinkingSelectorOptions {
|
|
431
|
+
readonly currentLevel: OwnedUiShellThinkingLevel;
|
|
432
|
+
readonly availableLevels: readonly OwnedUiShellThinkingLevel[];
|
|
433
|
+
readonly onSelect: (level: OwnedUiShellThinkingLevel) => void;
|
|
434
|
+
readonly onCancel: () => void;
|
|
435
|
+
readonly onSelectAsDefault?: (level: OwnedUiShellThinkingLevel) => void;
|
|
436
|
+
readonly defaultLevel?: OwnedUiShellThinkingLevel;
|
|
437
|
+
readonly presentation?: {
|
|
438
|
+
readonly profile: "bare";
|
|
439
|
+
readonly cycleBinding: string | readonly string[];
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
export interface OwnedUiShellTreeSelectorOptions {
|
|
443
|
+
readonly tree: readonly unknown[];
|
|
444
|
+
readonly currentLeafId: string | null;
|
|
445
|
+
readonly terminalHeight: number;
|
|
446
|
+
readonly onSelect: (id: string) => void;
|
|
447
|
+
readonly onCancel: () => void;
|
|
448
|
+
readonly onLabelChange: (entryId: string, label: string | undefined) => void;
|
|
449
|
+
readonly onCopy?: (text: string | undefined) => void;
|
|
450
|
+
readonly initialSelectedId?: string;
|
|
451
|
+
readonly initialFilterMode?: OwnedUiShellTreeFilterMode;
|
|
452
|
+
}
|
|
453
|
+
/** Selectors whose modules load on first use, so they stay off the startup path. */
|
|
454
|
+
export interface OwnedUiShellLazySelectorLoader {
|
|
455
|
+
prepare(): Promise<void>;
|
|
456
|
+
createThinking(options: OwnedUiShellThinkingSelectorOptions): Promise<OwnedUiShellComponentPort>;
|
|
457
|
+
createTree(options: OwnedUiShellTreeSelectorOptions): Promise<OwnedUiShellComponentPort>;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* The vendor components and text helpers the session shell renders with, grouped by role. The vendor component
|
|
461
|
+
* adapter implements every member; the shell receives the record through the session presenters.
|
|
462
|
+
*/
|
|
463
|
+
export interface OwnedUiShellComponents {
|
|
464
|
+
readonly editor: {
|
|
465
|
+
create(options: OwnedUiShellEditorOptions): OwnedUiShellEditorPort;
|
|
466
|
+
};
|
|
467
|
+
readonly chrome: {
|
|
468
|
+
header(options?: OwnedUiShellHeaderOptions): OwnedUiShellHeaderPort;
|
|
469
|
+
status(view: OwnedUiSessionViewModel, progress: OwnedUiShellProgressStatusPresentation, runtime?: OwnedUiShellRuntime): OwnedUiShellStatusPort;
|
|
470
|
+
footer(view: OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", showLevel?: () => boolean): OwnedUiShellViewComponentPort;
|
|
471
|
+
queuedInput(submissions: readonly string[], presentation?: "pinned" | "custom-viewport", getKeybindings?: () => OwnedUiShellKeybindings): OwnedUiShellQueuedInputPort;
|
|
472
|
+
loadedResources(resources: readonly OwnedUiShellResourceEntry[], initialExpanded?: boolean): OwnedUiShellLoadedResourcesPort;
|
|
473
|
+
installedUpdateStatus(width: number): string;
|
|
474
|
+
releaseUpdateBanner(release: OwnedUiShellReleaseUpdate, width: number, closeHovered: boolean): OwnedUiShellReleaseUpdateBanner;
|
|
475
|
+
programStatusReporter(report: (status: OwnedUiShellProgramStatus) => void, getSessionName: () => string | undefined, app?: string): OwnedUiShellProgramStatusReporter;
|
|
476
|
+
};
|
|
477
|
+
readonly transcript: {
|
|
478
|
+
component(initial: OwnedUiTranscriptBlock, cwd: string, extensions?: OwnedUiShellExtensionRendererResolver, submittedPrompt?: OwnedUiShellSubmittedPromptComposer, initialOutputPad?: 0 | 1, initialHideThinkingBlock?: boolean, initialMermaidRenderingMode?: OwnedUiShellMermaidRenderingMode, initialShowImages?: boolean, initialImageWidthCells?: number, imageAssets?: OwnedUiShellImageAssetResolver, presentation?: {
|
|
479
|
+
readonly getColumns: () => number;
|
|
480
|
+
readonly getRows: () => number;
|
|
481
|
+
readonly changed: () => void;
|
|
482
|
+
}): OwnedUiShellTranscriptComponentPort;
|
|
483
|
+
renderBlock(block: OwnedUiTranscriptBlock, width: number, cwd: string): readonly string[];
|
|
484
|
+
renderStartupDiagnostic(diagnostic: {
|
|
485
|
+
readonly severity: "info" | "warning" | "error";
|
|
486
|
+
readonly message: string;
|
|
487
|
+
}, width: number): readonly string[];
|
|
488
|
+
isPromptStyleCompaction(block: OwnedUiTranscriptBlock): boolean;
|
|
489
|
+
};
|
|
490
|
+
readonly info: {
|
|
491
|
+
changelog(markdown: string): OwnedUiShellComponentPort;
|
|
492
|
+
collapsedChangelog(): OwnedUiShellComponentPort;
|
|
493
|
+
hotkeys(bindings?: OwnedUiShellKeybindings, getShortcuts?: NonNullable<OwnedUiShellExtensionRendererResolver["getShortcuts"]>, profile?: "pi" | "a1"): OwnedUiShellComponentPort;
|
|
494
|
+
sessionInfo(presentation: OwnedUiSessionInfoPresentation): OwnedUiShellComponentPort;
|
|
495
|
+
commandMessage(presentation: OwnedUiShellCommandMessage, width: number, outputPad?: 0 | 1): readonly string[];
|
|
496
|
+
statusText(message: string, width: number, outputPad?: 0 | 1): readonly string[];
|
|
497
|
+
packageUpdateNotice(packages: readonly string[], width: number): readonly string[];
|
|
498
|
+
releaseUpdateNotice(release: OwnedUiShellReleaseUpdate, width: number): readonly string[];
|
|
499
|
+
armin(runtime: OwnedUiShellRuntime): OwnedUiShellComponentPort;
|
|
500
|
+
earendilAnnouncement(): OwnedUiShellComponentPort;
|
|
501
|
+
reloadBox(): OwnedUiShellComponentPort;
|
|
502
|
+
};
|
|
503
|
+
readonly dialogs: {
|
|
504
|
+
dialog(dialog: OwnedUiDialog, handlers?: {
|
|
505
|
+
readonly onSelect?: (id: string) => void;
|
|
506
|
+
readonly onCancel?: () => void;
|
|
507
|
+
}): OwnedUiShellComponentPort;
|
|
508
|
+
selector(options: OwnedUiShellSelectorOptions): OwnedUiShellComponentPort;
|
|
509
|
+
extensionSelector(title: string, options: readonly string[], onSelect: (value: string) => void, onCancel: () => void): OwnedUiShellComponentPort;
|
|
510
|
+
authProviderSelector(mode: "login" | "logout", providers: readonly OwnedUiShellAuthProviderOption[], onSelect: (id: string) => void, onCancel: () => void, initialSearchInput?: string): OwnedUiShellComponentPort;
|
|
511
|
+
loginDialog(runtime: OwnedUiShellRuntime, providerId: string, onComplete: (success: boolean, message?: string) => void, providerName?: string, title?: string): OwnedUiShellLoginDialogPort;
|
|
512
|
+
skillsSelector(options: {
|
|
513
|
+
readonly skills: readonly OwnedUiShellSkillSummary[];
|
|
514
|
+
readonly onSelect: (name: string) => void;
|
|
515
|
+
readonly onCancel: () => void;
|
|
516
|
+
}): OwnedUiShellComponentPort;
|
|
517
|
+
trustSelector(options: OwnedUiShellTrustSelectorOptions): OwnedUiShellComponentPort;
|
|
518
|
+
userMessageSelector(messages: readonly OwnedUiShellSelectorOption[], onSelect: (id: string) => void, onCancel: () => void, initialSelectedId?: string): OwnedUiShellComponentPort;
|
|
519
|
+
/** The cancellable share progress surface: a bordered dialog or a plain loader; loads its module on first use. */
|
|
520
|
+
shareProgress(runtime: OwnedUiShellRuntime, message: string, style: "dialog" | "loader"): Promise<OwnedUiShellOperationLoaderPort>;
|
|
521
|
+
extensionUiBridge(host: OwnedUiShellExtensionUiBridgeHost): OwnedUiShellExtensionUiBridge;
|
|
522
|
+
/** Absent until composition supplies a loader; the shell loads the vendor's own on first use otherwise. */
|
|
523
|
+
readonly lazySelectors: () => Promise<OwnedUiShellLazySelectorLoader>;
|
|
524
|
+
};
|
|
525
|
+
readonly text: {
|
|
526
|
+
/** Terminal-cell width of painted text. */
|
|
527
|
+
visibleWidth(text: string): number;
|
|
528
|
+
truncateToWidth(text: string, width: number): string;
|
|
529
|
+
/** A clickable URL: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
530
|
+
hyperlink(url: string, text?: string): string;
|
|
531
|
+
};
|
|
532
|
+
readonly workflows: {
|
|
533
|
+
/** The workflow command names the active product mode routes. */
|
|
534
|
+
commandNames(mode: OwnedUiSessionProductMode): readonly string[];
|
|
535
|
+
};
|
|
536
|
+
readonly skills: {
|
|
537
|
+
readonly commandName: string;
|
|
538
|
+
fromCommands(commands: readonly OwnedUiShellAutocompleteCommand[]): readonly OwnedUiShellSkillSummary[];
|
|
539
|
+
findByArgument(skills: readonly OwnedUiShellSkillSummary[], token: string): OwnedUiShellSkillSummary | undefined;
|
|
540
|
+
rewriteTunnelSubmission(text: string): string;
|
|
541
|
+
prompt(name: string, args?: string): string;
|
|
542
|
+
};
|
|
543
|
+
}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import { type OwnedUiCommand, type
|
|
1
|
+
import { type OwnedUiCommand, type OwnedUiPromptSuggestionRequest, type OwnedUiPromptSuggestionResult, type OwnedUiSnapshot } from "./model.js";
|
|
2
2
|
export declare function assertOwnedUiCommand(command: OwnedUiCommand): void;
|
|
3
|
-
export declare function assertOwnedUiEvent(event: OwnedUiEvent): void;
|
|
4
|
-
export declare function assertOwnedUiPromptSuggestionIdentity(identity: OwnedUiPromptSuggestionIdentity): void;
|
|
5
3
|
export declare function assertOwnedUiPromptSuggestionRequest(request: OwnedUiPromptSuggestionRequest): void;
|
|
6
4
|
export declare function assertOwnedUiPromptSuggestionResult(result: OwnedUiPromptSuggestionResult): void;
|
|
7
|
-
export declare function assertOwnedUiPromptSuggestionState(state: OwnedUiPromptSuggestionState): void;
|
|
8
|
-
export declare function assertOwnedUiSessionViewModel(view: OwnedUiSessionViewModel): void;
|
|
9
5
|
export declare function assertOwnedUiSnapshot(snapshot: OwnedUiSnapshot): void;
|
|
10
|
-
export declare function assertOwnedUiCustomization(customization: OwnedUiCustomization): void;
|
|
11
|
-
export declare function assertOwnedUiTranscriptBlock(block: OwnedUiTranscriptBlock): void;
|
|
12
|
-
export declare function assertOwnedUiEditorState(editor: OwnedUiEditorState): void;
|
|
13
|
-
export declare function assertOwnedUiStatusView(status: OwnedUiStatusView): void;
|
|
14
|
-
export declare function assertOwnedUiTerminalSurface(surface: OwnedUiTerminalSurface): void;
|
|
15
|
-
export declare function assertOwnedUiDiagnostics(diagnostic: OwnedUiDiagnostics): void;
|