@openspecui/core 3.10.0 → 3.11.1
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/{document-translation-BZ5QKjN0.d.mts → document-translation-AlZtjOt5.d.mts} +10 -7
- package/dist/{document-translation-BrE402YR.mjs → document-translation-Dnl1lz2K.mjs} +1 -1
- package/dist/document-translation.d.mts +2 -2
- package/dist/document-translation.mjs +2 -2
- package/dist/hosted-app.d.mts +1 -1
- package/dist/hosted-app.mjs +1 -1
- package/dist/index.d.mts +47 -37
- package/dist/index.mjs +240 -59
- package/dist/{local-download-profiles-BppI_PAq.mjs → local-download-profiles-CNDtMG2s.mjs} +7 -3
- package/dist/{local-download-profiles-Qu1932tV.d.mts → local-download-profiles-DISrU0mw.d.mts} +5 -1
- package/dist/local-download-profiles.d.mts +2 -2
- package/dist/local-download-profiles.mjs +1 -1
- package/dist/markdown-facts.d.mts +1 -1
- package/dist/markdown-facts.mjs +1 -1
- package/dist/{markdown-reading-DvLPaaY1.d.mts → markdown-reading-BaHZTf5f.d.mts} +1 -1
- package/dist/{markdown-reading-DYBp7qoI.mjs → markdown-reading-DSlcirYV.mjs} +1 -1
- package/dist/markdown-reading.d.mts +2 -2
- package/dist/markdown-reading.mjs +2 -2
- package/dist/{notifications-9vbSJQ8N.mjs → notifications-Xs9VPFWD.mjs} +2 -2
- package/dist/{notifications-D7tcKw71.d.mts → notifications-gGjGaYsF.d.mts} +9 -9
- package/dist/notifications.d.mts +2 -2
- package/dist/notifications.mjs +3 -3
- package/dist/{openspec-annotations-DVbFBz5J.d.mts → openspec-annotations-DYyP_HQh.d.mts} +2 -2
- package/dist/{openspec-annotations-BxBoWlyv.mjs → openspec-annotations-dNJentSE.mjs} +2 -2
- package/dist/openspec-annotations.d.mts +3 -3
- package/dist/openspec-annotations.mjs +3 -3
- package/dist/{openspec-projection-Bby9mX80.d.mts → openspec-projection-BojcJ9zl.d.mts} +3 -3
- package/dist/{openspec-projection-Cd6oydiK.mjs → openspec-projection-yqwKIKnp.mjs} +2 -2
- package/dist/openspec-projection.d.mts +5 -5
- package/dist/openspec-projection.mjs +4 -4
- package/dist/opsx-display-path.d.mts +1 -1
- package/dist/opsx-display-path.mjs +1 -1
- package/dist/{opsx-entity-DUJvjvrv.d.mts → opsx-entity-BdyGTVs_.d.mts} +19 -19
- package/dist/opsx-entity.d.mts +2 -2
- package/dist/opsx-entity.mjs +1 -1
- package/dist/{opsx-schema-detail-CUG4dYdw.d.mts → opsx-schema-detail-Cf8YIflR.d.mts} +1 -1
- package/dist/opsx-schema-detail.d.mts +3 -3
- package/dist/opsx-schema-detail.mjs +1 -1
- package/dist/{schemas-CqgvXgGV.d.mts → schemas-DV6yABO9.d.mts} +52 -44
- package/dist/{sounds-DABkmyg9.d.mts → sounds-C906qHTJ.d.mts} +5 -5
- package/dist/sounds.d.mts +1 -1
- package/dist/sounds.mjs +1 -1
- package/dist/{terminal-audio-DVz0HA2H.mjs → terminal-audio-CUs0sqEO.mjs} +1 -1
- package/dist/{terminal-audio-CDyXOIWx.d.mts → terminal-audio-D6dE8O1_.d.mts} +2 -2
- package/dist/terminal-audio.d.mts +2 -2
- package/dist/terminal-audio.mjs +2 -2
- package/dist/terminal-control.d.mts +2 -2
- package/dist/terminal-control.mjs +1 -1
- package/dist/{terminal-invocation-BnsT7ae7.d.mts → terminal-invocation-Cz0vfgkw.d.mts} +39 -39
- package/dist/terminal-invocation.d.mts +1 -1
- package/dist/terminal-invocation.mjs +1 -1
- package/dist/terminal-theme.d.mts +1 -1
- package/dist/terminal-theme.mjs +1 -1
- package/dist/translation-language-pair-D6f5u70K.mjs +51 -0
- package/dist/translation-language-pair-DaSvW83F.d.mts +18 -0
- package/dist/translation-language-pair.d.mts +2 -0
- package/dist/translation-language-pair.mjs +3 -0
- package/dist/{translator-C3LT7PqW.mjs → translator-B0T5VL9k.mjs} +94 -2
- package/dist/translator-tTXEGRdz.d.mts +1884 -0
- package/dist/translator.d.mts +2 -2
- package/dist/translator.mjs +2 -2
- package/package.json +9 -3
- package/dist/translator-C3W7bTIN.d.mts +0 -780
- /package/dist/{hosted-app-CxpQvD1s.mjs → hosted-app-CNZhVLM_.mjs} +0 -0
- /package/dist/{hosted-app-FuxG4-qA.d.mts → hosted-app-CegGJlNp.d.mts} +0 -0
- /package/dist/{markdown-facts-B5RvYPKF.mjs → markdown-facts-DbE1F2LD.mjs} +0 -0
- /package/dist/{markdown-facts-DUsbNcjh.d.mts → markdown-facts-DempqdIX.d.mts} +0 -0
- /package/dist/{opsx-display-path-Bf89ZyM5.mjs → opsx-display-path-Cw-5MTRg.mjs} +0 -0
- /package/dist/{opsx-display-path-CbO6K0Qq.d.mts → opsx-display-path-Ky9qnntM.d.mts} +0 -0
- /package/dist/{opsx-entity-BR_6djiM.mjs → opsx-entity-C_51ZEuP.mjs} +0 -0
- /package/dist/{opsx-schema-detail-5Wv1oWLT.mjs → opsx-schema-detail-Bu415_NB.mjs} +0 -0
- /package/dist/{sounds-CB_gpY-y.mjs → sounds-50cYk5b0.mjs} +0 -0
- /package/dist/{terminal-control-CNcEd9Rl.mjs → terminal-control-CYZhk7FM.mjs} +0 -0
- /package/dist/{terminal-invocation-wUmtJMPl.mjs → terminal-invocation-IopdwXKL.mjs} +0 -0
- /package/dist/{terminal-theme-CHkfTDk4.mjs → terminal-theme-BquTqZIO.mjs} +0 -0
- /package/dist/{terminal-theme-x_vAHvok.d.mts → terminal-theme-CH-VSrAq.d.mts} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { a as normalizeOpsxEntityPath, c as parseOpsxEntityMetadata, i as isOpsxGlobPattern, n as getOpsxEntityMetadataPath, o as opsxGlobToRegex, r as getOpsxEntityRootRelativePath, s as opsxPathMatchesPattern, t as buildOpsxEntityDetail } from "./opsx-entity-
|
|
2
|
-
import { n as toMarkdownFactKind, t as parseMarkdownFacts } from "./markdown-facts-
|
|
3
|
-
import { a as getMarkdownAnnotation, c as getMarkdownHeadingEnd, d as trimMarkdownSlice, i as createMarkdownReadingDocumentFromFacts, l as getMarkdownHeadingFacts, n as buildMarkdownParentMap, o as getMarkdownAnnotationsForFact, r as createMarkdownReadingDocument, s as getMarkdownFactSpan, t as MarkdownReadingPluginRegistry, u as sortMarkdownReadingPlugins } from "./markdown-reading-
|
|
4
|
-
import { a as getOpenSpecAnnotationsForFact, i as getOpenSpecAnnotation, n as annotateOpenSpecMarkdown, o as openSpecAnnotationRules, r as builtinOpenSpecReadingPlugin, t as annotateOpenSpecFacts } from "./openspec-annotations-
|
|
5
|
-
import { a as getOpenSpecReadingSections, c as projectOpenSpecMarkdown, i as getOpenSpecProjectionAnnotation, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as parseOpenSpecMarkdownToSpec, r as createOpenSpecReadingPlugin, s as projectAnnotatedOpenSpecToSpec, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID } from "./openspec-projection-
|
|
6
|
-
import { _ as
|
|
7
|
-
import { a as MAX_TRANSLATION_CACHE_ENTRY_LIMIT, c as TranslationCacheEntrySchema, d as TranslationCacheStatsSchema, f as TranslationCacheWriteInputSchema, i as DocumentTranslationDisplayModeSchema, l as TranslationCacheReadInputSchema, n as DOCUMENT_TRANSLATION_DISPLAY_MODES, o as MIN_TRANSLATION_CACHE_ENTRY_LIMIT, p as TranslationEngineProjectSettingsSchema, r as DocumentTranslationConfigSchema, s as TRANSLATION_CACHE_POLICY_VERSION, t as DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, u as TranslationCacheSettingsSchema } from "./document-translation-
|
|
8
|
-
import { _ as customHashFromSoundId, a as CustomSoundHashSchema, b as soundIdFromCustomHash, c as CustomSoundMetadataSchema, f as LEGACY_SOUND_ID_MAP, g as SoundVolumeSchema, h as SoundIdSchema, i as CUSTOM_SOUND_ADD_VALUE, l as DEFAULT_BELL_SOUND_ID, m as SoundConfigIdSchema, n as BUILTIN_SOUND_OPTIONS, o as CustomSoundIdSchema, p as SILENT_SOUND_ID, r as BuiltinSoundIdSchema, s as CustomSoundMetadataFileSchema, t as BUILTIN_SOUND_IDS, u as DEFAULT_NOTIFICATION_SOUND_ID, v as getBuiltinSoundUrl, y as normalizeLegacySoundId } from "./sounds-
|
|
9
|
-
import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-
|
|
10
|
-
import { a as NotificationPublishInputSchema, c as NotificationSoundSchema, h as groupNotifications, i as NotificationGroupKeySchema, l as NotificationSourceSchema, m as getNotificationGroupLabel, n as NOTIFICATION_SOUND_VALUES, o as NotificationRecordSchema, p as getNotificationGroupKey, r as NotificationActionSchema, s as NotificationSettingsSchema, t as NOTIFICATION_SOUND_OPTIONS, u as TerminalNotificationParser } from "./notifications-
|
|
11
|
-
import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-
|
|
12
|
-
import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, r as DEFAULT_TERMINAL_THEME_MODE, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-
|
|
13
|
-
import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-
|
|
14
|
-
import {
|
|
15
|
-
import { n as
|
|
16
|
-
import {
|
|
17
|
-
import { t as
|
|
1
|
+
import { a as normalizeOpsxEntityPath, c as parseOpsxEntityMetadata, i as isOpsxGlobPattern, n as getOpsxEntityMetadataPath, o as opsxGlobToRegex, r as getOpsxEntityRootRelativePath, s as opsxPathMatchesPattern, t as buildOpsxEntityDetail } from "./opsx-entity-C_51ZEuP.mjs";
|
|
2
|
+
import { n as toMarkdownFactKind, t as parseMarkdownFacts } from "./markdown-facts-DbE1F2LD.mjs";
|
|
3
|
+
import { a as getMarkdownAnnotation, c as getMarkdownHeadingEnd, d as trimMarkdownSlice, i as createMarkdownReadingDocumentFromFacts, l as getMarkdownHeadingFacts, n as buildMarkdownParentMap, o as getMarkdownAnnotationsForFact, r as createMarkdownReadingDocument, s as getMarkdownFactSpan, t as MarkdownReadingPluginRegistry, u as sortMarkdownReadingPlugins } from "./markdown-reading-DSlcirYV.mjs";
|
|
4
|
+
import { a as getOpenSpecAnnotationsForFact, i as getOpenSpecAnnotation, n as annotateOpenSpecMarkdown, o as openSpecAnnotationRules, r as builtinOpenSpecReadingPlugin, t as annotateOpenSpecFacts } from "./openspec-annotations-dNJentSE.mjs";
|
|
5
|
+
import { a as getOpenSpecReadingSections, c as projectOpenSpecMarkdown, i as getOpenSpecProjectionAnnotation, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as parseOpenSpecMarkdownToSpec, r as createOpenSpecReadingPlugin, s as projectAnnotatedOpenSpecToSpec, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID } from "./openspec-projection-yqwKIKnp.mjs";
|
|
6
|
+
import { C as TranslationEngineIdSchema, E as getTranslationEngineManifest, S as TranslationEngineGlobalSettingsSchema, T as TranslationOpenAISettingsSchema, _ as TRANSLATION_ENGINE_IDS, a as LocalModelAssetPlanSnapshotSchema, b as TranslationDownloadFilePlanSchema, c as LocalModelLifecycleFileStateSchema, d as LocalModelProfileManifestFileSchema, f as LocalModelProfileManifestGroupSchema, g as ServiceTranslationEngineIdSchema, h as SERVICE_TRANSLATION_ENGINE_IDS, i as LocalModelAssetLogSchema, l as LocalModelLifecycleGroupStateSchema, m as LocalModelProfileStatusSchema, n as BatchTranslateInputSchema, o as LocalModelAssetStateSchema, p as LocalModelProfileManifestSchema, r as DEFAULT_TRANSLATION_ENGINE_ID, s as LocalModelDownloadStatusSchema, t as BatchTranslateEventSchema, u as LocalModelProfileLoadStateSchema, v as TRANSLATION_ENGINE_MANIFESTS, w as TranslationLocalSettingsSchema, x as TranslationDownloadGroupPlanSchema, y as TRANSLATOR_CONTRACT_VERSION } from "./translator-B0T5VL9k.mjs";
|
|
7
|
+
import { a as MAX_TRANSLATION_CACHE_ENTRY_LIMIT, c as TranslationCacheEntrySchema, d as TranslationCacheStatsSchema, f as TranslationCacheWriteInputSchema, i as DocumentTranslationDisplayModeSchema, l as TranslationCacheReadInputSchema, n as DOCUMENT_TRANSLATION_DISPLAY_MODES, o as MIN_TRANSLATION_CACHE_ENTRY_LIMIT, p as TranslationEngineProjectSettingsSchema, r as DocumentTranslationConfigSchema, s as TRANSLATION_CACHE_POLICY_VERSION, t as DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, u as TranslationCacheSettingsSchema } from "./document-translation-Dnl1lz2K.mjs";
|
|
8
|
+
import { _ as customHashFromSoundId, a as CustomSoundHashSchema, b as soundIdFromCustomHash, c as CustomSoundMetadataSchema, f as LEGACY_SOUND_ID_MAP, g as SoundVolumeSchema, h as SoundIdSchema, i as CUSTOM_SOUND_ADD_VALUE, l as DEFAULT_BELL_SOUND_ID, m as SoundConfigIdSchema, n as BUILTIN_SOUND_OPTIONS, o as CustomSoundIdSchema, p as SILENT_SOUND_ID, r as BuiltinSoundIdSchema, s as CustomSoundMetadataFileSchema, t as BUILTIN_SOUND_IDS, u as DEFAULT_NOTIFICATION_SOUND_ID, v as getBuiltinSoundUrl, y as normalizeLegacySoundId } from "./sounds-50cYk5b0.mjs";
|
|
9
|
+
import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-CYZhk7FM.mjs";
|
|
10
|
+
import { a as NotificationPublishInputSchema, c as NotificationSoundSchema, h as groupNotifications, i as NotificationGroupKeySchema, l as NotificationSourceSchema, m as getNotificationGroupLabel, n as NOTIFICATION_SOUND_VALUES, o as NotificationRecordSchema, p as getNotificationGroupKey, r as NotificationActionSchema, s as NotificationSettingsSchema, t as NOTIFICATION_SOUND_OPTIONS, u as TerminalNotificationParser } from "./notifications-Xs9VPFWD.mjs";
|
|
11
|
+
import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-CUs0sqEO.mjs";
|
|
12
|
+
import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, r as DEFAULT_TERMINAL_THEME_MODE, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-BquTqZIO.mjs";
|
|
13
|
+
import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-CNDtMG2s.mjs";
|
|
14
|
+
import { n as inferLocalDirectionalModelLanguagePair, t as checkLocalDirectionalModelLanguagePair } from "./translation-language-pair-D6f5u70K.mjs";
|
|
15
|
+
import { a as buildEmbeddedUiLaunchUrl, c as isHostedBackendHealthResponse, d as normalizeHostedAppBaseUrl, f as resolveHostedAppBaseUrl, i as buildBackendHealthPayload, l as isSupportedEmbeddedUiUrl, n as OFFICIAL_APP_BASE_URL, o as buildHostedLaunchUrl, r as OPENSPECUI_RUNTIME_CAPABILITIES, s as isBackendHealthRuntimeMetadata, t as HOSTED_SHELL_PROTOCOL_VERSION, u as normalizeEmbeddedUiUrl } from "./hosted-app-CNZhVLM_.mjs";
|
|
16
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-Cw-5MTRg.mjs";
|
|
17
|
+
import { a as TerminalInvocationSettingsSchema, c as TerminalSpawnCommandSchema, f as quoteTerminalShellArg, g as resolveTerminalShellDefaults, h as renderTerminalSpawnCommandLine, i as TerminalCommandFieldSchema, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, o as TerminalShellProfileSchema, p as renderTerminalCommandArgs, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, s as TerminalShellQuoteStyleSchema, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, u as getTerminalCommandDefaultValues } from "./terminal-invocation-IopdwXKL.mjs";
|
|
18
|
+
import { t as parseOpsxSchemaDetail } from "./opsx-schema-detail-Bu415_NB.mjs";
|
|
18
19
|
import { mkdir, readFile, rename, writeFile } from "fs/promises";
|
|
19
20
|
import { dirname, join } from "path";
|
|
20
21
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
21
22
|
import { mkdir as mkdir$1, readFile as readFile$1, readdir, stat, writeFile as writeFile$1 } from "node:fs/promises";
|
|
22
|
-
import { dirname as dirname$1, join as join$1, matchesGlob, relative, resolve, sep } from "node:path";
|
|
23
|
+
import { basename, dirname as dirname$1, join as join$1, matchesGlob, relative, resolve, sep } from "node:path";
|
|
23
24
|
import { existsSync, lstatSync, realpathSync } from "node:fs";
|
|
24
25
|
import { z } from "zod";
|
|
25
26
|
import { EventEmitter } from "events";
|
|
@@ -28,6 +29,115 @@ import { exec, execFile, spawn } from "child_process";
|
|
|
28
29
|
import { promisify } from "util";
|
|
29
30
|
import { homedir } from "node:os";
|
|
30
31
|
|
|
32
|
+
//#region src/file-preview.ts
|
|
33
|
+
const MIME_BY_EXTENSION = new Map([
|
|
34
|
+
[".md", "text/markdown"],
|
|
35
|
+
[".markdown", "text/markdown"],
|
|
36
|
+
[".mdown", "text/markdown"],
|
|
37
|
+
[".mkd", "text/markdown"],
|
|
38
|
+
[".txt", "text/plain"],
|
|
39
|
+
[".log", "text/plain"],
|
|
40
|
+
[".yaml", "application/yaml"],
|
|
41
|
+
[".yml", "application/yaml"],
|
|
42
|
+
[".json", "application/json"],
|
|
43
|
+
[".jsonc", "application/json"],
|
|
44
|
+
[".toml", "application/toml"],
|
|
45
|
+
[".ini", "text/plain"],
|
|
46
|
+
[".cfg", "text/plain"],
|
|
47
|
+
[".conf", "text/plain"],
|
|
48
|
+
[".html", "text/html"],
|
|
49
|
+
[".htm", "text/html"],
|
|
50
|
+
[".svg", "image/svg+xml"],
|
|
51
|
+
[".png", "image/png"],
|
|
52
|
+
[".jpg", "image/jpeg"],
|
|
53
|
+
[".jpeg", "image/jpeg"],
|
|
54
|
+
[".gif", "image/gif"],
|
|
55
|
+
[".webp", "image/webp"],
|
|
56
|
+
[".avif", "image/avif"],
|
|
57
|
+
[".bmp", "image/bmp"],
|
|
58
|
+
[".mp3", "audio/mpeg"],
|
|
59
|
+
[".wav", "audio/wav"],
|
|
60
|
+
[".ogg", "audio/ogg"],
|
|
61
|
+
[".oga", "audio/ogg"],
|
|
62
|
+
[".m4a", "audio/mp4"],
|
|
63
|
+
[".aac", "audio/aac"],
|
|
64
|
+
[".flac", "audio/flac"],
|
|
65
|
+
[".mp4", "video/mp4"],
|
|
66
|
+
[".m4v", "video/mp4"],
|
|
67
|
+
[".webm", "video/webm"],
|
|
68
|
+
[".mov", "video/quicktime"],
|
|
69
|
+
[".mkv", "video/x-matroska"],
|
|
70
|
+
[".ogv", "video/ogg"],
|
|
71
|
+
[".pdf", "application/pdf"],
|
|
72
|
+
[".js", "text/javascript"],
|
|
73
|
+
[".jsx", "text/javascript"],
|
|
74
|
+
[".ts", "text/typescript"],
|
|
75
|
+
[".tsx", "text/typescript"],
|
|
76
|
+
[".css", "text/css"],
|
|
77
|
+
[".sh", "text/plain"],
|
|
78
|
+
[".py", "text/plain"],
|
|
79
|
+
[".rs", "text/plain"],
|
|
80
|
+
[".go", "text/plain"],
|
|
81
|
+
[".java", "text/plain"],
|
|
82
|
+
[".c", "text/plain"],
|
|
83
|
+
[".cc", "text/plain"],
|
|
84
|
+
[".cpp", "text/plain"],
|
|
85
|
+
[".h", "text/plain"],
|
|
86
|
+
[".hpp", "text/plain"]
|
|
87
|
+
]);
|
|
88
|
+
const TEXT_MIME_PREFIXES = ["text/"];
|
|
89
|
+
const TEXT_MIME_VALUES = new Set([
|
|
90
|
+
"application/json",
|
|
91
|
+
"application/yaml",
|
|
92
|
+
"application/toml",
|
|
93
|
+
"application/xml",
|
|
94
|
+
"image/svg+xml"
|
|
95
|
+
]);
|
|
96
|
+
const FILE_PREVIEW_KINDS = [
|
|
97
|
+
"markdown",
|
|
98
|
+
"html",
|
|
99
|
+
"image",
|
|
100
|
+
"audio",
|
|
101
|
+
"video",
|
|
102
|
+
"pdf",
|
|
103
|
+
"text",
|
|
104
|
+
"none"
|
|
105
|
+
];
|
|
106
|
+
function getExtension(path) {
|
|
107
|
+
const normalized = path.replace(/\\/g, "/");
|
|
108
|
+
const name = normalized.split("/").pop() ?? normalized;
|
|
109
|
+
const dotIndex = name.lastIndexOf(".");
|
|
110
|
+
if (dotIndex < 0) return "";
|
|
111
|
+
return name.slice(dotIndex).toLowerCase();
|
|
112
|
+
}
|
|
113
|
+
function inferFileMime(path) {
|
|
114
|
+
return MIME_BY_EXTENSION.get(getExtension(path)) ?? null;
|
|
115
|
+
}
|
|
116
|
+
function inferFilePreviewKind(path, mime) {
|
|
117
|
+
const resolvedMime = mime ?? inferFileMime(path);
|
|
118
|
+
if (!resolvedMime) return "none";
|
|
119
|
+
if (resolvedMime === "text/markdown") return "markdown";
|
|
120
|
+
if (resolvedMime === "text/html") return "html";
|
|
121
|
+
if (resolvedMime.startsWith("image/")) return resolvedMime === "image/svg+xml" ? "text" : "image";
|
|
122
|
+
if (resolvedMime.startsWith("audio/")) return "audio";
|
|
123
|
+
if (resolvedMime.startsWith("video/")) return "video";
|
|
124
|
+
if (resolvedMime === "application/pdf") return "pdf";
|
|
125
|
+
if (isTextLikeMime(resolvedMime)) return "text";
|
|
126
|
+
return "none";
|
|
127
|
+
}
|
|
128
|
+
function isTextLikeMime(mime) {
|
|
129
|
+
if (!mime) return false;
|
|
130
|
+
if (TEXT_MIME_VALUES.has(mime)) return true;
|
|
131
|
+
return TEXT_MIME_PREFIXES.some((prefix) => mime.startsWith(prefix));
|
|
132
|
+
}
|
|
133
|
+
function isTextLikeFile(path, mime) {
|
|
134
|
+
return isTextLikeMime(mime ?? inferFileMime(path));
|
|
135
|
+
}
|
|
136
|
+
function isPreviewableFile(path, mime) {
|
|
137
|
+
return inferFilePreviewKind(path, mime) !== "none";
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
//#endregion
|
|
31
141
|
//#region src/parser.ts
|
|
32
142
|
const SCENARIO_STEP_PATTERN = new RegExp(`^\\s*[-*+]\\s+(?:\\*\\*)?(${[
|
|
33
143
|
"GIVEN",
|
|
@@ -455,6 +565,30 @@ var ReactiveContext = class {
|
|
|
455
565
|
}
|
|
456
566
|
};
|
|
457
567
|
|
|
568
|
+
//#endregion
|
|
569
|
+
//#region src/reactive-fs/path-realpath.ts
|
|
570
|
+
/**
|
|
571
|
+
* Resolve a filesystem path through the closest existing ancestor.
|
|
572
|
+
*
|
|
573
|
+
* Missing descendants still need the same realpath prefix as watcher events,
|
|
574
|
+
* otherwise symlinked roots such as `/var` -> `/private/var` stop matching
|
|
575
|
+
* once the path is created later.
|
|
576
|
+
*/
|
|
577
|
+
function resolveRealPathThroughExistingAncestor(path) {
|
|
578
|
+
const absolutePath = resolve(path);
|
|
579
|
+
const missingSegments = [];
|
|
580
|
+
let currentPath = absolutePath;
|
|
581
|
+
while (true) try {
|
|
582
|
+
const realPath = realpathSync(currentPath);
|
|
583
|
+
return missingSegments.length === 0 ? realPath : join$1(realPath, ...missingSegments.reverse());
|
|
584
|
+
} catch {
|
|
585
|
+
const parentPath = dirname$1(currentPath);
|
|
586
|
+
if (parentPath === currentPath) return absolutePath;
|
|
587
|
+
missingSegments.push(basename(currentPath));
|
|
588
|
+
currentPath = parentPath;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
|
|
458
592
|
//#endregion
|
|
459
593
|
//#region src/reactive-fs/project-watcher.ts
|
|
460
594
|
/**
|
|
@@ -462,11 +596,7 @@ var ReactiveContext = class {
|
|
|
462
596
|
* 在 macOS 上,/var 是 /private/var 的符号链接
|
|
463
597
|
*/
|
|
464
598
|
function getRealPath$1(path) {
|
|
465
|
-
|
|
466
|
-
return realpathSync(resolve(path));
|
|
467
|
-
} catch {
|
|
468
|
-
return resolve(path);
|
|
469
|
-
}
|
|
599
|
+
return resolveRealPathThroughExistingAncestor(path);
|
|
470
600
|
}
|
|
471
601
|
/** 默认防抖时间 (ms) */
|
|
472
602
|
const DEBOUNCE_MS$1 = 50;
|
|
@@ -894,11 +1024,7 @@ async function closeAllProjectWatchers() {
|
|
|
894
1024
|
* 获取路径的真实路径(解析符号链接)
|
|
895
1025
|
*/
|
|
896
1026
|
function getRealPath(path) {
|
|
897
|
-
|
|
898
|
-
return realpathSync(resolve(path));
|
|
899
|
-
} catch {
|
|
900
|
-
return resolve(path);
|
|
901
|
-
}
|
|
1027
|
+
return resolveRealPathThroughExistingAncestor(path);
|
|
902
1028
|
}
|
|
903
1029
|
/**
|
|
904
1030
|
* 全局 ProjectWatcher 实例
|
|
@@ -1082,6 +1208,24 @@ function subscribeWatcherRuntimeStatus(listener, options = {}) {
|
|
|
1082
1208
|
const stateCache$1 = /* @__PURE__ */ new Map();
|
|
1083
1209
|
/** 监听器释放函数缓存 */
|
|
1084
1210
|
const releaseCache$1 = /* @__PURE__ */ new Map();
|
|
1211
|
+
/** 缺失路径重校验定时器缓存 */
|
|
1212
|
+
const missingPathPollCache = /* @__PURE__ */ new Map();
|
|
1213
|
+
/** Native watcher can miss a create event on some CI filesystems; missing paths get a low-frequency fallback. */
|
|
1214
|
+
const MISSING_PATH_POLL_MS = 1e3;
|
|
1215
|
+
function stopMissingPathPoll(key) {
|
|
1216
|
+
const timer = missingPathPollCache.get(key);
|
|
1217
|
+
if (!timer) return;
|
|
1218
|
+
clearInterval(timer);
|
|
1219
|
+
missingPathPollCache.delete(key);
|
|
1220
|
+
}
|
|
1221
|
+
function ensureMissingPathPoll(key, poll) {
|
|
1222
|
+
if (!isWatcherPoolInitialized() || missingPathPollCache.has(key)) return;
|
|
1223
|
+
const timer = setInterval(() => {
|
|
1224
|
+
poll();
|
|
1225
|
+
}, MISSING_PATH_POLL_MS);
|
|
1226
|
+
timer.unref?.();
|
|
1227
|
+
missingPathPollCache.set(key, timer);
|
|
1228
|
+
}
|
|
1085
1229
|
/**
|
|
1086
1230
|
* 响应式读取文件内容
|
|
1087
1231
|
*
|
|
@@ -1106,12 +1250,18 @@ async function reactiveReadFile(filepath) {
|
|
|
1106
1250
|
};
|
|
1107
1251
|
let state = stateCache$1.get(key);
|
|
1108
1252
|
if (!state) {
|
|
1109
|
-
|
|
1253
|
+
const initialValue = await getValue();
|
|
1254
|
+
state = new ReactiveState(initialValue);
|
|
1110
1255
|
stateCache$1.set(key, state);
|
|
1111
|
-
const
|
|
1256
|
+
const refresh = async () => {
|
|
1112
1257
|
const newValue = await getValue();
|
|
1113
1258
|
state.set(newValue);
|
|
1114
|
-
|
|
1259
|
+
if (newValue === null) ensureMissingPathPoll(key, refresh);
|
|
1260
|
+
else stopMissingPathPoll(key);
|
|
1261
|
+
};
|
|
1262
|
+
if (initialValue === null) ensureMissingPathPoll(key, refresh);
|
|
1263
|
+
const release = acquireWatcher(dirname$1(normalizedPath), refresh, { onError: () => {
|
|
1264
|
+
stopMissingPathPoll(key);
|
|
1115
1265
|
stateCache$1.delete(key);
|
|
1116
1266
|
releaseCache$1.delete(key);
|
|
1117
1267
|
} });
|
|
@@ -1194,12 +1344,18 @@ async function reactiveExists(path) {
|
|
|
1194
1344
|
};
|
|
1195
1345
|
let state = stateCache$1.get(key);
|
|
1196
1346
|
if (!state) {
|
|
1197
|
-
|
|
1347
|
+
const initialValue = await getValue();
|
|
1348
|
+
state = new ReactiveState(initialValue);
|
|
1198
1349
|
stateCache$1.set(key, state);
|
|
1199
|
-
const
|
|
1350
|
+
const refresh = async () => {
|
|
1200
1351
|
const newValue = await getValue();
|
|
1201
1352
|
state.set(newValue);
|
|
1202
|
-
|
|
1353
|
+
if (newValue) stopMissingPathPoll(key);
|
|
1354
|
+
else ensureMissingPathPoll(key, refresh);
|
|
1355
|
+
};
|
|
1356
|
+
if (!initialValue) ensureMissingPathPoll(key, refresh);
|
|
1357
|
+
const release = acquireWatcher(dirname$1(normalizedPath), refresh, { onError: () => {
|
|
1358
|
+
stopMissingPathPoll(key);
|
|
1203
1359
|
stateCache$1.delete(key);
|
|
1204
1360
|
releaseCache$1.delete(key);
|
|
1205
1361
|
} });
|
|
@@ -1231,16 +1387,22 @@ async function reactiveStat(path) {
|
|
|
1231
1387
|
};
|
|
1232
1388
|
let state = stateCache$1.get(key);
|
|
1233
1389
|
if (!state) {
|
|
1234
|
-
|
|
1390
|
+
const initialValue = await getValue();
|
|
1391
|
+
state = new ReactiveState(initialValue, { equals: (a, b) => {
|
|
1235
1392
|
if (a === null && b === null) return true;
|
|
1236
1393
|
if (a === null || b === null) return false;
|
|
1237
1394
|
return a.isDirectory === b.isDirectory && a.isFile === b.isFile && a.mtime === b.mtime && a.birthtime === b.birthtime;
|
|
1238
1395
|
} });
|
|
1239
1396
|
stateCache$1.set(key, state);
|
|
1240
|
-
const
|
|
1397
|
+
const refresh = async () => {
|
|
1241
1398
|
const newValue = await getValue();
|
|
1242
1399
|
state.set(newValue);
|
|
1243
|
-
|
|
1400
|
+
if (newValue === null) ensureMissingPathPoll(key, refresh);
|
|
1401
|
+
else stopMissingPathPoll(key);
|
|
1402
|
+
};
|
|
1403
|
+
if (initialValue === null) ensureMissingPathPoll(key, refresh);
|
|
1404
|
+
const release = acquireWatcher(dirname$1(normalizedPath), refresh, { onError: () => {
|
|
1405
|
+
stopMissingPathPoll(key);
|
|
1244
1406
|
stateCache$1.delete(key);
|
|
1245
1407
|
releaseCache$1.delete(key);
|
|
1246
1408
|
} });
|
|
@@ -1256,12 +1418,15 @@ function clearCache(path) {
|
|
|
1256
1418
|
const normalizedPath = resolve(path);
|
|
1257
1419
|
for (const [key, release] of releaseCache$1) if (key.includes(normalizedPath)) {
|
|
1258
1420
|
release();
|
|
1421
|
+
stopMissingPathPoll(key);
|
|
1259
1422
|
releaseCache$1.delete(key);
|
|
1260
1423
|
stateCache$1.delete(key);
|
|
1261
1424
|
}
|
|
1262
1425
|
} else {
|
|
1263
1426
|
for (const release of releaseCache$1.values()) release();
|
|
1264
1427
|
releaseCache$1.clear();
|
|
1428
|
+
for (const timer of missingPathPollCache.values()) clearInterval(timer);
|
|
1429
|
+
missingPathPollCache.clear();
|
|
1265
1430
|
stateCache$1.clear();
|
|
1266
1431
|
}
|
|
1267
1432
|
}
|
|
@@ -1543,12 +1708,20 @@ var OpenSpecAdapter = class {
|
|
|
1543
1708
|
});
|
|
1544
1709
|
files.push(...await this.collectChangeFiles(root, fullPath));
|
|
1545
1710
|
} else {
|
|
1546
|
-
const
|
|
1711
|
+
const mime = inferFileMime(relativePath) ?? void 0;
|
|
1712
|
+
const previewKind = inferFilePreviewKind(relativePath, mime);
|
|
1713
|
+
const content = isTextLikeFile(relativePath, mime) ? await reactiveReadFile(fullPath) : null;
|
|
1547
1714
|
files.push({
|
|
1548
1715
|
path: relativePath,
|
|
1549
1716
|
type: "file",
|
|
1550
1717
|
content: content ?? void 0
|
|
1551
1718
|
});
|
|
1719
|
+
files[files.length - 1] = {
|
|
1720
|
+
...files[files.length - 1],
|
|
1721
|
+
mime,
|
|
1722
|
+
previewKind,
|
|
1723
|
+
size: void 0
|
|
1724
|
+
};
|
|
1552
1725
|
}
|
|
1553
1726
|
}
|
|
1554
1727
|
return files;
|
|
@@ -1762,7 +1935,9 @@ const ChangeFileSchema = z.object({
|
|
|
1762
1935
|
path: z.string(),
|
|
1763
1936
|
type: z.enum(["file", "directory"]),
|
|
1764
1937
|
content: z.string().optional(),
|
|
1765
|
-
size: z.number().optional()
|
|
1938
|
+
size: z.number().optional(),
|
|
1939
|
+
mime: z.string().optional(),
|
|
1940
|
+
previewKind: z.enum(FILE_PREVIEW_KINDS).optional()
|
|
1766
1941
|
});
|
|
1767
1942
|
const ScenarioStepKeywordSchema = z.enum([
|
|
1768
1943
|
"GIVEN",
|
|
@@ -2743,6 +2918,13 @@ function pruneNullish$1(value) {
|
|
|
2743
2918
|
function hasOwnEntries$1(value) {
|
|
2744
2919
|
return Object.keys(value).length > 0;
|
|
2745
2920
|
}
|
|
2921
|
+
function mergeNullablePatch$1(current, patch) {
|
|
2922
|
+
const next = { ...current };
|
|
2923
|
+
if (!patch) return next;
|
|
2924
|
+
for (const [key, value] of Object.entries(patch)) if (value === null) delete next[key];
|
|
2925
|
+
else if (value !== void 0) next[key] = value;
|
|
2926
|
+
return next;
|
|
2927
|
+
}
|
|
2746
2928
|
function toPersistedConfig(config, options = {}) {
|
|
2747
2929
|
const persisted = {};
|
|
2748
2930
|
const command = config.cli.command?.trim();
|
|
@@ -2904,14 +3086,8 @@ var ConfigManager = class {
|
|
|
2904
3086
|
...current.translation,
|
|
2905
3087
|
...config.translation,
|
|
2906
3088
|
engines: {
|
|
2907
|
-
local:
|
|
2908
|
-
|
|
2909
|
-
...config.translation?.engines?.local
|
|
2910
|
-
},
|
|
2911
|
-
openai: {
|
|
2912
|
-
...current.translation.engines.openai,
|
|
2913
|
-
...config.translation?.engines?.openai
|
|
2914
|
-
}
|
|
3089
|
+
local: mergeNullablePatch$1(current.translation.engines.local, config.translation?.engines?.local),
|
|
3090
|
+
openai: mergeNullablePatch$1(current.translation.engines.openai, config.translation?.engines?.openai)
|
|
2915
3091
|
}
|
|
2916
3092
|
}
|
|
2917
3093
|
});
|
|
@@ -3081,6 +3257,13 @@ function pruneNullish(value) {
|
|
|
3081
3257
|
function hasOwnEntries(value) {
|
|
3082
3258
|
return Object.keys(value).length > 0;
|
|
3083
3259
|
}
|
|
3260
|
+
function mergeNullablePatch(current, patch) {
|
|
3261
|
+
const next = { ...current };
|
|
3262
|
+
if (!patch) return next;
|
|
3263
|
+
for (const [key, value] of Object.entries(patch)) if (value === null) delete next[key];
|
|
3264
|
+
else if (value !== void 0) next[key] = value;
|
|
3265
|
+
return next;
|
|
3266
|
+
}
|
|
3084
3267
|
function toPersistedGlobalSettings(settings) {
|
|
3085
3268
|
const persisted = {};
|
|
3086
3269
|
const translationCache = {};
|
|
@@ -3147,14 +3330,8 @@ var GlobalSettingsManager = class {
|
|
|
3147
3330
|
},
|
|
3148
3331
|
translationEngines: {
|
|
3149
3332
|
...current.translationEngines,
|
|
3150
|
-
openai:
|
|
3151
|
-
|
|
3152
|
-
...update.translationEngines?.openai
|
|
3153
|
-
},
|
|
3154
|
-
local: {
|
|
3155
|
-
...current.translationEngines.local,
|
|
3156
|
-
...update.translationEngines?.local
|
|
3157
|
-
}
|
|
3333
|
+
openai: mergeNullablePatch(current.translationEngines.openai, update.translationEngines?.openai),
|
|
3334
|
+
local: mergeNullablePatch(current.translationEngines.local, update.translationEngines?.local)
|
|
3158
3335
|
}
|
|
3159
3336
|
}));
|
|
3160
3337
|
if (isPersistedGlobalSettingsEmpty(persisted) && !fileExists) return;
|
|
@@ -4229,13 +4406,17 @@ async function readEntriesUnderRoot(root) {
|
|
|
4229
4406
|
});
|
|
4230
4407
|
entries.push(...await collectEntries(fullPath));
|
|
4231
4408
|
} else {
|
|
4232
|
-
const
|
|
4409
|
+
const mime = inferFileMime(relativePath) ?? void 0;
|
|
4410
|
+
const previewKind = inferFilePreviewKind(relativePath, mime);
|
|
4411
|
+
const content = isTextLikeFile(relativePath, mime) ? await reactiveReadFile(fullPath) : null;
|
|
4233
4412
|
const size = content ? Buffer.byteLength(content, "utf-8") : void 0;
|
|
4234
4413
|
entries.push({
|
|
4235
4414
|
path: relativePath,
|
|
4236
4415
|
type: "file",
|
|
4237
4416
|
content: content ?? void 0,
|
|
4238
|
-
size
|
|
4417
|
+
size,
|
|
4418
|
+
mime,
|
|
4419
|
+
previewKind
|
|
4239
4420
|
});
|
|
4240
4421
|
}
|
|
4241
4422
|
}
|
|
@@ -4286,7 +4467,7 @@ async function touchDirectoryPathDeps(rootDir, relativePath) {
|
|
|
4286
4467
|
let currentPath = rootDir;
|
|
4287
4468
|
for (const segment of splitRelativePathSegments(relativePath)) {
|
|
4288
4469
|
currentPath = join$1(currentPath, segment);
|
|
4289
|
-
await
|
|
4470
|
+
await reactiveStat(currentPath);
|
|
4290
4471
|
}
|
|
4291
4472
|
}
|
|
4292
4473
|
async function touchDirectoryTree(rootDir) {
|
|
@@ -5003,4 +5184,4 @@ const PtyServerMessageSchema = z.discriminatedUnion("type", [
|
|
|
5003
5184
|
]);
|
|
5004
5185
|
|
|
5005
5186
|
//#endregion
|
|
5006
|
-
export { AI_TOOLS, ApplyInstructionsContextFilesSchema, ApplyInstructionsSchema, ApplyTaskSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, BatchTranslateEventSchema, BatchTranslateInputSchema, BuiltinSoundIdSchema, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliExecutor, CodeEditorThemeSchema, ConfigManager, CustomSoundHashSchema, CustomSoundIdSchema, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, DashboardConfigSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, DocumentTranslationConfigSchema, DocumentTranslationDisplayModeSchema, GitConfigSchema, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelAssetLogSchema, LocalModelAssetPlanSnapshotSchema, LocalModelAssetStateSchema, LocalModelDownloadStatusSchema, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, MarkdownParser, MarkdownReadingPluginRegistry, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationActionSchema, NotificationGroupKeySchema, NotificationPublishInputSchema, NotificationRecordSchema, NotificationSettingsSchema, NotificationSoundSchema, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENSPECUI_HOOKS_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, OpenSpecAdapter, OpenSpecUIConfigSchema, OpenSpecUIGlobalSettingsSchema, OpenSpecWatcher, OpsxAgentInvocationModeSchema, OpsxConfigSchema, OpsxKernel, ProjectWatcher, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, ReactiveContext, ReactiveState, RequirementSchema, SERVICE_TRANSLATION_ENGINE_IDS, SILENT_SOUND_ID, ScenarioStepKeywordSchema, ScenarioStepSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, SoundIdSchema, SpecSchema, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TOOL_WORKFLOW_TO_SKILL_DIR, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, TaskSchema, TemplatesSchema, TerminalBellSoundSchema, TerminalCommandFieldSchema, TerminalConfigSchema, TerminalControlParser, TerminalInvocationSettingsSchema, TerminalNotificationParser, TerminalRendererEngineSchema, TerminalShellProfileSchema, TerminalShellQuoteStyleSchema, TerminalSpawnCommandSchema, TerminalThemeModeSchema, TerminalThemeSchema, TranslationCacheEntrySchema, TranslationCacheReadInputSchema, TranslationCacheSettingsSchema, TranslationCacheStatsSchema, TranslationCacheWriteInputSchema, TranslationDownloadFilePlanSchema, TranslationDownloadGroupPlanSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineIdSchema, TranslationEngineProjectSettingsSchema, TranslationLocalSettingsSchema, TranslationOpenAISettingsSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, annotateOpenSpecFacts, annotateOpenSpecMarkdown, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, builtinOpenSpecReadingPlugin, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, customHashFromSoundId, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineManifest, getWatchedProjectDir, getWatcherRuntimeStatus, groupNotifications, initWatcherPool, isBackendHealthRuntimeMetadata, isGlobPattern, isHostedBackendHealthResponse, isOpsxGlobPattern, isSupportedEmbeddedUiUrl, isTerminalRendererEngine, isToolConfigured, isWatcherPoolInitialized, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseMarkdownFacts, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, resolveHostedAppBaseUrl, resolveTerminalShellDefaults, selectLocalDownloadGroup, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, trimMarkdownSlice };
|
|
5187
|
+
export { AI_TOOLS, ApplyInstructionsContextFilesSchema, ApplyInstructionsSchema, ApplyTaskSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, BatchTranslateEventSchema, BatchTranslateInputSchema, BuiltinSoundIdSchema, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliExecutor, CodeEditorThemeSchema, ConfigManager, CustomSoundHashSchema, CustomSoundIdSchema, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, DashboardConfigSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, DocumentTranslationConfigSchema, DocumentTranslationDisplayModeSchema, FILE_PREVIEW_KINDS, GitConfigSchema, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelAssetLogSchema, LocalModelAssetPlanSnapshotSchema, LocalModelAssetStateSchema, LocalModelDownloadStatusSchema, LocalModelLifecycleFileStateSchema, LocalModelLifecycleGroupStateSchema, LocalModelProfileLoadStateSchema, LocalModelProfileManifestFileSchema, LocalModelProfileManifestGroupSchema, LocalModelProfileManifestSchema, LocalModelProfileStatusSchema, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, MarkdownParser, MarkdownReadingPluginRegistry, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationActionSchema, NotificationGroupKeySchema, NotificationPublishInputSchema, NotificationRecordSchema, NotificationSettingsSchema, NotificationSoundSchema, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENSPECUI_HOOKS_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, OpenSpecAdapter, OpenSpecUIConfigSchema, OpenSpecUIGlobalSettingsSchema, OpenSpecWatcher, OpsxAgentInvocationModeSchema, OpsxConfigSchema, OpsxKernel, ProjectWatcher, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, ReactiveContext, ReactiveState, RequirementSchema, SERVICE_TRANSLATION_ENGINE_IDS, SILENT_SOUND_ID, ScenarioStepKeywordSchema, ScenarioStepSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, SoundIdSchema, SpecSchema, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TOOL_WORKFLOW_TO_SKILL_DIR, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, TaskSchema, TemplatesSchema, TerminalBellSoundSchema, TerminalCommandFieldSchema, TerminalConfigSchema, TerminalControlParser, TerminalInvocationSettingsSchema, TerminalNotificationParser, TerminalRendererEngineSchema, TerminalShellProfileSchema, TerminalShellQuoteStyleSchema, TerminalSpawnCommandSchema, TerminalThemeModeSchema, TerminalThemeSchema, TranslationCacheEntrySchema, TranslationCacheReadInputSchema, TranslationCacheSettingsSchema, TranslationCacheStatsSchema, TranslationCacheWriteInputSchema, TranslationDownloadFilePlanSchema, TranslationDownloadGroupPlanSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineIdSchema, TranslationEngineProjectSettingsSchema, TranslationLocalSettingsSchema, TranslationOpenAISettingsSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, annotateOpenSpecFacts, annotateOpenSpecMarkdown, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, customHashFromSoundId, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineManifest, getWatchedProjectDir, getWatcherRuntimeStatus, groupNotifications, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, initWatcherPool, isBackendHealthRuntimeMetadata, isGlobPattern, isHostedBackendHealthResponse, isOpsxGlobPattern, isPreviewableFile, isSupportedEmbeddedUiUrl, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isWatcherPoolInitialized, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseMarkdownFacts, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, resolveHostedAppBaseUrl, resolveTerminalShellDefaults, selectLocalDownloadGroup, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, trimMarkdownSlice };
|
|
@@ -149,7 +149,7 @@ function buildLocalDownloadPlanFromRuntimeProfileFiles(input) {
|
|
|
149
149
|
}
|
|
150
150
|
function selectLocalDownloadGroup(plan, selectedGroupId) {
|
|
151
151
|
if (!plan?.groups?.length) return null;
|
|
152
|
-
return (selectedGroupId ? plan.groups.find((group) => group.id === selectedGroupId
|
|
152
|
+
return (selectedGroupId ? plan.groups.find((group) => group.selectable && (group.id === selectedGroupId || group.baseGroupId === selectedGroupId)) : void 0) ?? plan.groups.find((group) => group.selected) ?? selectSmallestSelectableGroup(plan.groups);
|
|
153
153
|
}
|
|
154
154
|
function buildPlanFromGroups(input) {
|
|
155
155
|
if (input.groups.length === 0) return null;
|
|
@@ -170,7 +170,7 @@ function buildPlanFromGroups(input) {
|
|
|
170
170
|
}
|
|
171
171
|
function selectRequestedGroup(groups, selectedGroupId) {
|
|
172
172
|
if (!selectedGroupId) return null;
|
|
173
|
-
return groups.find((group) => group.id === selectedGroupId
|
|
173
|
+
return groups.find((group) => group.selectable && (group.id === selectedGroupId || group.baseGroupId === selectedGroupId)) ?? null;
|
|
174
174
|
}
|
|
175
175
|
function selectSmallestSelectableGroup(groups) {
|
|
176
176
|
return groups.filter((group) => group.selectable && group.estimatedTotalBytes !== void 0).sort((left, right) => (left.estimatedTotalBytes ?? 0) - (right.estimatedTotalBytes ?? 0))[0] ?? null;
|
|
@@ -179,7 +179,11 @@ function createDownloadGroup(input) {
|
|
|
179
179
|
const files = dedupeFiles(input.files).map((file) => ({
|
|
180
180
|
path: file.path,
|
|
181
181
|
sizeBytes: file.sizeBytes,
|
|
182
|
-
required: true
|
|
182
|
+
required: true,
|
|
183
|
+
etag: file.etag,
|
|
184
|
+
revision: file.revision,
|
|
185
|
+
sourceUrl: file.sourceUrl,
|
|
186
|
+
raw: file.raw
|
|
183
187
|
}));
|
|
184
188
|
const estimatedTotalBytes = files.reduce((total, file) => total + (file.sizeBytes ?? 0), 0);
|
|
185
189
|
const hasConcreteSizes = files.length > 0 && files.every((file) => file.sizeBytes !== void 0);
|
package/dist/{local-download-profiles-Qu1932tV.d.mts → local-download-profiles-DISrU0mw.d.mts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $ as TranslationModelDownloadPlan, V as TranslationDownloadGroupPlan } from "./translator-tTXEGRdz.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/local-download-profiles.d.ts
|
|
4
4
|
declare const LOCAL_MODEL_PROFILE_DEFINITIONS: readonly [{
|
|
@@ -78,6 +78,10 @@ type LocalModelProfileId = (typeof LOCAL_MODEL_PROFILE_DEFINITIONS)[number]['id'
|
|
|
78
78
|
interface LocalRepositoryFile {
|
|
79
79
|
path: string;
|
|
80
80
|
sizeBytes?: number;
|
|
81
|
+
etag?: string;
|
|
82
|
+
revision?: string;
|
|
83
|
+
sourceUrl?: string;
|
|
84
|
+
raw?: unknown;
|
|
81
85
|
}
|
|
82
86
|
interface LocalRuntimeProfileFiles {
|
|
83
87
|
profile: LocalModelProfileId;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./translator-
|
|
2
|
-
import { a as buildLocalDownloadPlanFromRepositoryFiles, i as LocalRuntimeProfileFiles, n as LocalModelProfileId, o as buildLocalDownloadPlanFromRuntimeProfileFiles, r as LocalRepositoryFile, s as selectLocalDownloadGroup, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-
|
|
1
|
+
import "./translator-tTXEGRdz.mjs";
|
|
2
|
+
import { a as buildLocalDownloadPlanFromRepositoryFiles, i as LocalRuntimeProfileFiles, n as LocalModelProfileId, o as buildLocalDownloadPlanFromRuntimeProfileFiles, r as LocalRepositoryFile, s as selectLocalDownloadGroup, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-DISrU0mw.mjs";
|
|
3
3
|
export { LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelProfileId, LocalRepositoryFile, LocalRuntimeProfileFiles, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, selectLocalDownloadGroup };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-
|
|
1
|
+
import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-CNDtMG2s.mjs";
|
|
2
2
|
|
|
3
3
|
export { LOCAL_MODEL_PROFILE_DEFINITIONS, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, selectLocalDownloadGroup };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MarkdownSourceRange, i as MarkdownSourcePoint, n as MarkdownFactKind, o as parseMarkdownFacts, r as MarkdownFactsDocument, s as toMarkdownFactKind, t as MarkdownFact } from "./markdown-facts-
|
|
1
|
+
import { a as MarkdownSourceRange, i as MarkdownSourcePoint, n as MarkdownFactKind, o as parseMarkdownFacts, r as MarkdownFactsDocument, s as toMarkdownFactKind, t as MarkdownFact } from "./markdown-facts-DempqdIX.mjs";
|
|
2
2
|
export { MarkdownFact, MarkdownFactKind, MarkdownFactsDocument, MarkdownSourcePoint, MarkdownSourceRange, parseMarkdownFacts, toMarkdownFactKind };
|
package/dist/markdown-facts.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as MarkdownFactsDocument, t as MarkdownFact } from "./markdown-facts-
|
|
1
|
+
import { r as MarkdownFactsDocument, t as MarkdownFact } from "./markdown-facts-DempqdIX.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/markdown-reading.d.ts
|
|
4
4
|
type MarkdownAnnotationConfidence = 'strong' | 'weak';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./markdown-facts-
|
|
2
|
-
import { S as trimMarkdownSlice, _ as getMarkdownAnnotationsForFact, a as MarkdownAnnotationRule, b as getMarkdownHeadingFacts, c as MarkdownProjectionRule, d as MarkdownReadingPlugin, f as MarkdownReadingPluginRegistry, g as getMarkdownAnnotation, h as createMarkdownReadingDocumentFromFacts, i as MarkdownAnnotationInput, l as MarkdownReadingDocument, m as createMarkdownReadingDocument, n as MarkdownAnnotationConfidence, o as MarkdownFactSpan, p as buildMarkdownParentMap, r as MarkdownAnnotationContext, s as MarkdownProjectionContext, t as MarkdownAnnotation, u as MarkdownReadingLookup, v as getMarkdownFactSpan, x as sortMarkdownReadingPlugins, y as getMarkdownHeadingEnd } from "./markdown-reading-
|
|
1
|
+
import "./markdown-facts-DempqdIX.mjs";
|
|
2
|
+
import { S as trimMarkdownSlice, _ as getMarkdownAnnotationsForFact, a as MarkdownAnnotationRule, b as getMarkdownHeadingFacts, c as MarkdownProjectionRule, d as MarkdownReadingPlugin, f as MarkdownReadingPluginRegistry, g as getMarkdownAnnotation, h as createMarkdownReadingDocumentFromFacts, i as MarkdownAnnotationInput, l as MarkdownReadingDocument, m as createMarkdownReadingDocument, n as MarkdownAnnotationConfidence, o as MarkdownFactSpan, p as buildMarkdownParentMap, r as MarkdownAnnotationContext, s as MarkdownProjectionContext, t as MarkdownAnnotation, u as MarkdownReadingLookup, v as getMarkdownFactSpan, x as sortMarkdownReadingPlugins, y as getMarkdownHeadingEnd } from "./markdown-reading-BaHZTf5f.mjs";
|
|
3
3
|
export { MarkdownAnnotation, MarkdownAnnotationConfidence, MarkdownAnnotationContext, MarkdownAnnotationInput, MarkdownAnnotationRule, MarkdownFactSpan, MarkdownProjectionContext, MarkdownProjectionRule, MarkdownReadingDocument, MarkdownReadingLookup, MarkdownReadingPlugin, MarkdownReadingPluginRegistry, buildMarkdownParentMap, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, sortMarkdownReadingPlugins, trimMarkdownSlice };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./markdown-facts-
|
|
2
|
-
import { a as getMarkdownAnnotation, c as getMarkdownHeadingEnd, d as trimMarkdownSlice, i as createMarkdownReadingDocumentFromFacts, l as getMarkdownHeadingFacts, n as buildMarkdownParentMap, o as getMarkdownAnnotationsForFact, r as createMarkdownReadingDocument, s as getMarkdownFactSpan, t as MarkdownReadingPluginRegistry, u as sortMarkdownReadingPlugins } from "./markdown-reading-
|
|
1
|
+
import "./markdown-facts-DbE1F2LD.mjs";
|
|
2
|
+
import { a as getMarkdownAnnotation, c as getMarkdownHeadingEnd, d as trimMarkdownSlice, i as createMarkdownReadingDocumentFromFacts, l as getMarkdownHeadingFacts, n as buildMarkdownParentMap, o as getMarkdownAnnotationsForFact, r as createMarkdownReadingDocument, s as getMarkdownFactSpan, t as MarkdownReadingPluginRegistry, u as sortMarkdownReadingPlugins } from "./markdown-reading-DSlcirYV.mjs";
|
|
3
3
|
|
|
4
4
|
export { MarkdownReadingPluginRegistry, buildMarkdownParentMap, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, sortMarkdownReadingPlugins, trimMarkdownSlice };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as SoundVolumeSchema, m as SoundConfigIdSchema, u as DEFAULT_NOTIFICATION_SOUND_ID } from "./sounds-
|
|
2
|
-
import { t as TerminalControlParser } from "./terminal-control-
|
|
1
|
+
import { g as SoundVolumeSchema, m as SoundConfigIdSchema, u as DEFAULT_NOTIFICATION_SOUND_ID } from "./sounds-50cYk5b0.mjs";
|
|
2
|
+
import { t as TerminalControlParser } from "./terminal-control-CYZhk7FM.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/notifications.ts
|