mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 17:17:38 +00:00
* feat(native-chat): attach several files from one picker selection Picks over 256 files are rejected whole, matching the drop limit. Fixes #23905 * refactor(native-chat): name the composer action for the files it now attaches The hook still returned `pickAttachment` after it started attaching a whole selection. Also records why the plural IPC handler sits next to the singular one, matching its siblings in the same file. * test(native-chat): cover the paperclip forwarding every picked path The one line that makes the feature work — the composer handing the whole picker result to attachExternalPaths — had no test; reverting it to paths[0] kept every existing test green. Adds a hook test for the multi-path, canceled, and wrong-pane cases, plus the missing canceled case for the shell:pickAttachments handler. * test(native-chat): exercise multi-pick through renderHook * test(settings): preserve label fallback and verify Spanish copy Keep latest main's missing-label fixture and restore its translation namespace after cleanup, so later tests still load real catalogs. Independently assert the shipped Spanish resource and rendered supported-agents label. --------- Co-authored-by: Neil <neil@stably.ai> Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com> Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import type {
|
|
ShellOpenExternalEditorRequest,
|
|
ShellOpenExternalEditorResult,
|
|
ShellOpenLocalPathResult
|
|
} from '../../shared/shell-open-types'
|
|
|
|
export type {
|
|
ShellOpenExternalEditorRequest,
|
|
ShellOpenExternalEditorResult,
|
|
ShellOpenLocalPathResult
|
|
} from '../../shared/shell-open-types'
|
|
|
|
export type ShellApi = {
|
|
openPath: (path: string) => Promise<void>
|
|
openInFileManager: (path: string) => Promise<ShellOpenLocalPathResult>
|
|
openInExternalEditor: (
|
|
request: ShellOpenExternalEditorRequest
|
|
) => Promise<ShellOpenExternalEditorResult>
|
|
openUrl: (url: string) => Promise<void>
|
|
openFilePath: (path: string) => Promise<boolean>
|
|
openFileUri: (uri: string) => Promise<void>
|
|
pathsExist?: (paths: string[]) => Promise<boolean[]>
|
|
pathExists: (path: string) => Promise<boolean>
|
|
pickAttachment: () => Promise<string | null>
|
|
pickAttachments: () => Promise<string[]>
|
|
pickImage: () => Promise<string | null>
|
|
pickRepoIconImage: () => Promise<{
|
|
dataUrl: string
|
|
fileName: string
|
|
} | null>
|
|
pickAudio: () => Promise<string | null>
|
|
pickDirectory: (args: { defaultPath?: string }) => Promise<string | null>
|
|
copyFile: (args: { srcPath: string; destPath: string }) => Promise<void>
|
|
}
|