@openspecui/core 3.11.2 → 3.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/{document-translation-BTEG-uW_.mjs → document-translation-B3QRXIXx.mjs} +5 -1
  2. package/dist/{document-translation-EMIQf5dw.d.mts → document-translation-QMSrWNT-.d.mts} +56 -9
  3. package/dist/document-translation.d.mts +1 -1
  4. package/dist/document-translation.mjs +2 -2
  5. package/dist/index.d.mts +197 -39
  6. package/dist/index.mjs +140 -5
  7. package/dist/{local-download-profiles-CSXKbamv.d.mts → local-download-profiles-DHF9dW4e.d.mts} +1 -1
  8. package/dist/local-download-profiles.d.mts +2 -2
  9. package/dist/{notifications-Ct6rtBwb.d.mts → notifications-D9yMeQqN.d.mts} +4 -4
  10. package/dist/notifications.d.mts +2 -2
  11. package/dist/{openspec-projection-DrTZ0P31.d.mts → openspec-projection-e-sOj4vr.d.mts} +1 -1
  12. package/dist/openspec-projection.d.mts +2 -2
  13. package/dist/{opsx-entity-CIB-Wi0n.d.mts → opsx-entity-C89YFQNB.d.mts} +9 -9
  14. package/dist/opsx-entity.d.mts +2 -2
  15. package/dist/{opsx-schema-detail-Cjoesix_.d.mts → opsx-schema-detail-DIscOp9f.d.mts} +1 -1
  16. package/dist/opsx-schema-detail.d.mts +3 -3
  17. package/dist/{schemas-DeEkRkAH.d.mts → schemas-B6ZBedD4.d.mts} +112 -112
  18. package/dist/{sounds-BaxOUgWE.d.mts → sounds-BjSZxrQO.d.mts} +1 -1
  19. package/dist/sounds.d.mts +1 -1
  20. package/dist/{terminal-audio-v3YSYJKq.d.mts → terminal-audio-6x0ceNBw.d.mts} +2 -2
  21. package/dist/terminal-audio.d.mts +2 -2
  22. package/dist/terminal-control.d.mts +2 -2
  23. package/dist/{terminal-invocation-C5gqne5H.d.mts → terminal-invocation-C2e1WSWM.d.mts} +24 -24
  24. package/dist/terminal-invocation.d.mts +1 -1
  25. package/dist/{translator-yHmEiuRX.mjs → translator-B98pejVa.mjs} +172 -7
  26. package/dist/{translator-BtbU7rjR.d.mts → translator-jn94xmWZ.d.mts} +247 -112
  27. package/dist/translator.d.mts +2 -2
  28. package/dist/translator.mjs +2 -2
  29. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -3,8 +3,8 @@ import { n as toMarkdownFactKind, t as parseMarkdownFacts } from "./markdown-fac
3
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
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
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 { A as TranslationEngineLifecycleEventSchema, B as getTranslationEngineManifest, C as TranslationEngineAssetStatusSchema, D as TranslationEngineIdSchema, E as TranslationEngineGlobalSettingsSchema, F as TranslationLocalSettingsSchema, H as isTranslationEngineDependencyReady, I as TranslationOpenAISettingsSchema, L as createTranslationEngineLifecycleStatus, M as TranslationEngineRuntimeStateSchema, N as TranslationEngineRuntimeStatusSchema, O as TranslationEngineInstallLogEventSchema, P as TranslationLocalCt2SettingsSchema, R as getManagedLocalTranslationEngineManifest, S as TranslationEngineAssetStateSchema, T as TranslationEngineDependencyStatusSchema, U as isTranslationEngineRuntimeReady, V as isManagedLocalTranslationEngineId, W as shouldShowTranslationEngineInstallGate, _ 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, j as TranslationEngineLifecycleStatusSchema, k as TranslationEngineInstallLogStreamSchema, 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 TranslationEngineDependencyStateSchema, x as TranslationDownloadGroupPlanSchema, y as TRANSLATOR_CONTRACT_VERSION, z as getTranslationEngineLifecycleMessage } from "./translator-yHmEiuRX.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-BTEG-uW_.mjs";
6
+ import { A as TranslationEngineInstallLogEventSchema, B as createTranslationEngineLifecycleStatus, C as TranslationDownloadGroupPlanSchema, D as TranslationEngineDependencyStatusSchema, E as TranslationEngineDependencyStateSchema, F as TranslationEngineRuntimeStatusSchema, G as isManagedLocalTranslationEngineId, H as getTranslationEngineLifecycleMessage, I as TranslationLocalCt2SettingsSchema, J as shouldShowTranslationEngineInstallGate, K as isTranslationEngineDependencyReady, L as TranslationLocalLlamaSettingsSchema, M as TranslationEngineLifecycleEventSchema, N as TranslationEngineLifecycleStatusSchema, O as TranslationEngineGlobalSettingsSchema, P as TranslationEngineRuntimeStateSchema, R as TranslationLocalSettingsSchema, S as TranslationDownloadFilePlanSchema, T as TranslationEngineAssetStatusSchema, U as getTranslationEngineManifest, V as getManagedLocalTranslationEngineManifest, W as isDirectionalManagedLocalTranslationEngineId, X as normalizeBatchTranslationError, Y as isBatchTranslationAbort, Z as runControlledTranslationTask, _ as SERVICE_TRANSLATION_ENGINE_IDS, a as LocalModelAssetLogSchema, b as TRANSLATION_ENGINE_MANIFESTS, c as LocalModelDownloadStatusSchema, d as LocalModelProfileLoadStateSchema, f as LocalModelProfileManifestFileSchema, g as ManagedLocalCatalogSourceSchema, h as LocalModelProfileStatusSchema, i as DEFAULT_TRANSLATION_ENGINE_ID, j as TranslationEngineInstallLogStreamSchema, k as TranslationEngineIdSchema, l as LocalModelLifecycleFileStateSchema, m as LocalModelProfileManifestSchema, n as BatchTranslateInputSchema, o as LocalModelAssetPlanSnapshotSchema, p as LocalModelProfileManifestGroupSchema, q as isTranslationEngineRuntimeReady, s as LocalModelAssetStateSchema, t as BatchTranslateEventSchema, u as LocalModelLifecycleGroupStateSchema, v as ServiceTranslationEngineIdSchema, w as TranslationEngineAssetStateSchema, x as TRANSLATOR_CONTRACT_VERSION, y as TRANSLATION_ENGINE_IDS, z as TranslationOpenAISettingsSchema } from "./translator-B98pejVa.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-B3QRXIXx.mjs";
8
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
9
  import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-CYZhk7FM.mjs";
10
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";
@@ -2884,6 +2884,15 @@ const PERSISTED_CONFIG_SANITIZE_RULES = [
2884
2884
  ],
2885
2885
  fallback: {}
2886
2886
  },
2887
+ {
2888
+ kind: "object",
2889
+ path: [
2890
+ "translation",
2891
+ "engines",
2892
+ "localLlama"
2893
+ ],
2894
+ fallback: {}
2895
+ },
2887
2896
  {
2888
2897
  kind: "object",
2889
2898
  path: [
@@ -2993,6 +3002,10 @@ function toPersistedConfig(config, options = {}) {
2993
3002
  if (config.translation.engines.localCt2.model !== DEFAULT_CONFIG.translation.engines.localCt2.model) localCt2Engine.model = config.translation.engines.localCt2.model;
2994
3003
  if (config.translation.engines.localCt2.selectedGroupId !== DEFAULT_CONFIG.translation.engines.localCt2.selectedGroupId) localCt2Engine.selectedGroupId = config.translation.engines.localCt2.selectedGroupId;
2995
3004
  if (localCt2Engine && hasOwnEntries$1(localCt2Engine)) translationEngines.localCt2 = localCt2Engine;
3005
+ const localLlamaEngine = {};
3006
+ if (config.translation.engines.localLlama.model !== DEFAULT_CONFIG.translation.engines.localLlama.model) localLlamaEngine.model = config.translation.engines.localLlama.model;
3007
+ if (config.translation.engines.localLlama.selectedGroupId !== DEFAULT_CONFIG.translation.engines.localLlama.selectedGroupId) localLlamaEngine.selectedGroupId = config.translation.engines.localLlama.selectedGroupId;
3008
+ if (localLlamaEngine && hasOwnEntries$1(localLlamaEngine)) translationEngines.localLlama = localLlamaEngine;
2996
3009
  if (config.translation.engines.openai.model !== DEFAULT_CONFIG.translation.engines.openai.model) translationEngines.openai = { model: config.translation.engines.openai.model };
2997
3010
  if (hasOwnEntries$1(translationEngines)) translation.engines = translationEngines;
2998
3011
  if (hasOwnEntries$1(translation)) persisted.translation = translation;
@@ -3001,6 +3014,56 @@ function toPersistedConfig(config, options = {}) {
3001
3014
  function isPersistedConfigEmpty(config) {
3002
3015
  return !hasOwnEntries$1(config);
3003
3016
  }
3017
+ function parsePersistedConfigObject(content) {
3018
+ if (!content) return {};
3019
+ try {
3020
+ const parsed = JSON.parse(content);
3021
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? parsed : {};
3022
+ } catch {
3023
+ return {};
3024
+ }
3025
+ }
3026
+ function hasOwnPath(value, path) {
3027
+ let current = value;
3028
+ for (const segment of path) {
3029
+ if (typeof current !== "object" || current === null) return false;
3030
+ if (!Object.prototype.hasOwnProperty.call(current, segment)) return false;
3031
+ current = Reflect.get(current, segment);
3032
+ }
3033
+ return true;
3034
+ }
3035
+ function readConfigPresenceFromContent(content) {
3036
+ const parsed = parsePersistedConfigObject(content);
3037
+ return { translation: {
3038
+ enabled: hasOwnPath(parsed, ["translation", "enabled"]),
3039
+ targetLanguage: hasOwnPath(parsed, ["translation", "targetLanguage"]),
3040
+ displayMode: hasOwnPath(parsed, ["translation", "displayMode"]),
3041
+ cacheEnabled: hasOwnPath(parsed, ["translation", "cacheEnabled"]),
3042
+ engineId: hasOwnPath(parsed, ["translation", "engineId"]),
3043
+ engines: {
3044
+ local: hasOwnPath(parsed, [
3045
+ "translation",
3046
+ "engines",
3047
+ "local"
3048
+ ]),
3049
+ localCt2: hasOwnPath(parsed, [
3050
+ "translation",
3051
+ "engines",
3052
+ "localCt2"
3053
+ ]),
3054
+ localLlama: hasOwnPath(parsed, [
3055
+ "translation",
3056
+ "engines",
3057
+ "localLlama"
3058
+ ]),
3059
+ openai: hasOwnPath(parsed, [
3060
+ "translation",
3061
+ "engines",
3062
+ "openai"
3063
+ ])
3064
+ }
3065
+ } };
3066
+ }
3004
3067
  /**
3005
3068
  * 配置管理器
3006
3069
  *
@@ -3042,6 +3105,9 @@ var ConfigManager = class {
3042
3105
  const content = await reactiveReadFile(this.configPath);
3043
3106
  return this.parseConfigContent(content);
3044
3107
  }
3108
+ async readConfigPresence() {
3109
+ return readConfigPresenceFromContent(await reactiveReadFile(this.configPath));
3110
+ }
3045
3111
  /**
3046
3112
  * 写入配置
3047
3113
  *
@@ -3101,6 +3167,7 @@ var ConfigManager = class {
3101
3167
  engines: {
3102
3168
  local: mergeNullablePatch$1(current.translation.engines.local, config.translation?.engines?.local),
3103
3169
  localCt2: mergeNullablePatch$1(current.translation.engines.localCt2, config.translation?.engines?.localCt2),
3170
+ localLlama: mergeNullablePatch$1(current.translation.engines.localLlama, config.translation?.engines?.localLlama),
3104
3171
  openai: mergeNullablePatch$1(current.translation.engines.openai, config.translation?.engines?.openai)
3105
3172
  }
3106
3173
  }
@@ -3229,12 +3296,48 @@ var ConfigManager = class {
3229
3296
 
3230
3297
  //#endregion
3231
3298
  //#region src/global-settings.ts
3299
+ const DocumentTranslationGlobalSettingsSchema = z.object({
3300
+ enabled: z.boolean().default(false),
3301
+ targetLanguage: z.string().min(1).default("zh"),
3302
+ displayMode: DocumentTranslationDisplayModeSchema.default("direct"),
3303
+ cacheEnabled: z.boolean().default(false)
3304
+ });
3232
3305
  const OpenSpecUIGlobalSettingsSchema = z.object({
3306
+ translation: DocumentTranslationGlobalSettingsSchema.default(DocumentTranslationGlobalSettingsSchema.parse({})),
3233
3307
  translationCache: TranslationCacheSettingsSchema.default(TranslationCacheSettingsSchema.parse({})),
3234
3308
  translationEngines: TranslationEngineGlobalSettingsSchema.default(TranslationEngineGlobalSettingsSchema.parse({}))
3235
3309
  });
3236
3310
  const DEFAULT_GLOBAL_SETTINGS = OpenSpecUIGlobalSettingsSchema.parse({});
3237
3311
  const PERSISTED_GLOBAL_SETTINGS_SANITIZE_RULES = [
3312
+ {
3313
+ kind: "object",
3314
+ path: ["translation"],
3315
+ fallback: {}
3316
+ },
3317
+ {
3318
+ kind: "field",
3319
+ path: ["translation", "enabled"],
3320
+ schema: DocumentTranslationGlobalSettingsSchema.shape.enabled,
3321
+ fallback: DEFAULT_GLOBAL_SETTINGS.translation.enabled
3322
+ },
3323
+ {
3324
+ kind: "field",
3325
+ path: ["translation", "targetLanguage"],
3326
+ schema: DocumentTranslationGlobalSettingsSchema.shape.targetLanguage,
3327
+ fallback: DEFAULT_GLOBAL_SETTINGS.translation.targetLanguage
3328
+ },
3329
+ {
3330
+ kind: "field",
3331
+ path: ["translation", "displayMode"],
3332
+ schema: DocumentTranslationGlobalSettingsSchema.shape.displayMode,
3333
+ fallback: DEFAULT_GLOBAL_SETTINGS.translation.displayMode
3334
+ },
3335
+ {
3336
+ kind: "field",
3337
+ path: ["translation", "cacheEnabled"],
3338
+ schema: DocumentTranslationGlobalSettingsSchema.shape.cacheEnabled,
3339
+ fallback: DEFAULT_GLOBAL_SETTINGS.translation.cacheEnabled
3340
+ },
3238
3341
  {
3239
3342
  kind: "object",
3240
3343
  path: ["translationCache"],
@@ -3245,6 +3348,12 @@ const PERSISTED_GLOBAL_SETTINGS_SANITIZE_RULES = [
3245
3348
  path: ["translationEngines"],
3246
3349
  fallback: {}
3247
3350
  },
3351
+ {
3352
+ kind: "field",
3353
+ path: ["translationEngines", "engineId"],
3354
+ schema: TranslationEngineIdSchema,
3355
+ fallback: DEFAULT_GLOBAL_SETTINGS.translationEngines.engineId
3356
+ },
3248
3357
  {
3249
3358
  kind: "object",
3250
3359
  path: ["translationEngines", "openai"],
@@ -3259,6 +3368,11 @@ const PERSISTED_GLOBAL_SETTINGS_SANITIZE_RULES = [
3259
3368
  kind: "object",
3260
3369
  path: ["translationEngines", "localCt2"],
3261
3370
  fallback: {}
3371
+ },
3372
+ {
3373
+ kind: "object",
3374
+ path: ["translationEngines", "localLlama"],
3375
+ fallback: {}
3262
3376
  }
3263
3377
  ];
3264
3378
  function getDefaultGlobalSettingsPath() {
@@ -3285,11 +3399,18 @@ function mergeNullablePatch(current, patch) {
3285
3399
  }
3286
3400
  function toPersistedGlobalSettings(settings) {
3287
3401
  const persisted = {};
3402
+ const translation = {};
3288
3403
  const translationCache = {};
3404
+ if (settings.translation.enabled !== DEFAULT_GLOBAL_SETTINGS.translation.enabled) translation.enabled = settings.translation.enabled;
3405
+ if (settings.translation.targetLanguage !== DEFAULT_GLOBAL_SETTINGS.translation.targetLanguage) translation.targetLanguage = settings.translation.targetLanguage;
3406
+ if (settings.translation.displayMode !== DEFAULT_GLOBAL_SETTINGS.translation.displayMode) translation.displayMode = settings.translation.displayMode;
3407
+ if (settings.translation.cacheEnabled !== DEFAULT_GLOBAL_SETTINGS.translation.cacheEnabled) translation.cacheEnabled = settings.translation.cacheEnabled;
3289
3408
  if (settings.translationCache.entryLimit !== DEFAULT_GLOBAL_SETTINGS.translationCache.entryLimit) translationCache.entryLimit = settings.translationCache.entryLimit;
3409
+ if (hasOwnEntries(translation)) persisted.translation = translation;
3290
3410
  if (hasOwnEntries(translationCache)) persisted.translationCache = translationCache;
3291
3411
  const translationEngines = {};
3292
3412
  const defaultTranslationEngines = DEFAULT_GLOBAL_SETTINGS.translationEngines;
3413
+ if (settings.translationEngines.engineId !== defaultTranslationEngines.engineId) translationEngines.engineId = settings.translationEngines.engineId;
3293
3414
  const openai = {};
3294
3415
  if (settings.translationEngines.openai.baseUrl !== defaultTranslationEngines.openai.baseUrl) openai.baseUrl = settings.translationEngines.openai.baseUrl;
3295
3416
  if (settings.translationEngines.openai.token !== defaultTranslationEngines.openai.token) openai.token = settings.translationEngines.openai.token;
@@ -3299,12 +3420,20 @@ function toPersistedGlobalSettings(settings) {
3299
3420
  if (settings.translationEngines.local.model !== defaultTranslationEngines.local.model) local.model = settings.translationEngines.local.model;
3300
3421
  if (settings.translationEngines.local.selectedGroupId !== defaultTranslationEngines.local.selectedGroupId) local.selectedGroupId = settings.translationEngines.local.selectedGroupId;
3301
3422
  if (settings.translationEngines.local.hfEndpoint !== defaultTranslationEngines.local.hfEndpoint) local.hfEndpoint = settings.translationEngines.local.hfEndpoint;
3423
+ if (settings.translationEngines.local.memoryBudgetPercent !== defaultTranslationEngines.local.memoryBudgetPercent) local.memoryBudgetPercent = settings.translationEngines.local.memoryBudgetPercent;
3302
3424
  if (hasOwnEntries(local)) translationEngines.local = local;
3303
3425
  const localCt2 = {};
3304
3426
  if (settings.translationEngines.localCt2.model !== defaultTranslationEngines.localCt2.model) localCt2.model = settings.translationEngines.localCt2.model;
3305
3427
  if (settings.translationEngines.localCt2.selectedGroupId !== defaultTranslationEngines.localCt2.selectedGroupId) localCt2.selectedGroupId = settings.translationEngines.localCt2.selectedGroupId;
3306
3428
  if (settings.translationEngines.localCt2.hfEndpoint !== defaultTranslationEngines.localCt2.hfEndpoint) localCt2.hfEndpoint = settings.translationEngines.localCt2.hfEndpoint;
3429
+ if (settings.translationEngines.localCt2.memoryBudgetPercent !== defaultTranslationEngines.localCt2.memoryBudgetPercent) localCt2.memoryBudgetPercent = settings.translationEngines.localCt2.memoryBudgetPercent;
3307
3430
  if (hasOwnEntries(localCt2)) translationEngines.localCt2 = localCt2;
3431
+ const localLlama = {};
3432
+ if (settings.translationEngines.localLlama.model !== defaultTranslationEngines.localLlama.model) localLlama.model = settings.translationEngines.localLlama.model;
3433
+ if (settings.translationEngines.localLlama.selectedGroupId !== defaultTranslationEngines.localLlama.selectedGroupId) localLlama.selectedGroupId = settings.translationEngines.localLlama.selectedGroupId;
3434
+ if (settings.translationEngines.localLlama.hfEndpoint !== defaultTranslationEngines.localLlama.hfEndpoint) localLlama.hfEndpoint = settings.translationEngines.localLlama.hfEndpoint;
3435
+ if (settings.translationEngines.localLlama.memoryBudgetPercent !== defaultTranslationEngines.localLlama.memoryBudgetPercent) localLlama.memoryBudgetPercent = settings.translationEngines.localLlama.memoryBudgetPercent;
3436
+ if (hasOwnEntries(localLlama)) translationEngines.localLlama = localLlama;
3308
3437
  if (hasOwnEntries(translationEngines)) persisted.translationEngines = translationEngines;
3309
3438
  return persisted;
3310
3439
  }
@@ -3348,15 +3477,21 @@ var GlobalSettingsManager = class {
3348
3477
  const current = this.parseSettingsContent(currentContent);
3349
3478
  const persisted = toPersistedGlobalSettings(OpenSpecUIGlobalSettingsSchema.parse({
3350
3479
  ...current,
3480
+ translation: {
3481
+ ...current.translation,
3482
+ ...update.translation
3483
+ },
3351
3484
  translationCache: {
3352
3485
  ...current.translationCache,
3353
3486
  ...update.translationCache
3354
3487
  },
3355
3488
  translationEngines: {
3356
3489
  ...current.translationEngines,
3490
+ engineId: update.translationEngines?.engineId ?? current.translationEngines.engineId,
3357
3491
  openai: mergeNullablePatch(current.translationEngines.openai, update.translationEngines?.openai),
3358
3492
  local: mergeNullablePatch(current.translationEngines.local, update.translationEngines?.local),
3359
- localCt2: mergeNullablePatch(current.translationEngines.localCt2, update.translationEngines?.localCt2)
3493
+ localCt2: mergeNullablePatch(current.translationEngines.localCt2, update.translationEngines?.localCt2),
3494
+ localLlama: mergeNullablePatch(current.translationEngines.localLlama, update.translationEngines?.localLlama)
3360
3495
  }
3361
3496
  }));
3362
3497
  if (isPersistedGlobalSettingsEmpty(persisted) && !fileExists) return;
@@ -3483,7 +3618,7 @@ function appendOptionalDependencyFlag(args, field) {
3483
3618
  args.push("--save-optional");
3484
3619
  }
3485
3620
  function appendAllowBuildFlags(args, packages) {
3486
- for (const packageName of packages) args.push("--allow-build", packageName);
3621
+ for (const packageName of packages) args.push(`--allow-build=${packageName}`);
3487
3622
  }
3488
3623
  const RUNTIME_PACKAGE_INSTALL_STRATEGIES = [
3489
3624
  {
@@ -5407,4 +5542,4 @@ const PtyServerMessageSchema = z.discriminatedUnion("type", [
5407
5542
  ]);
5408
5543
 
5409
5544
  //#endregion
5410
- 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, TranslationEngineAssetStateSchema, TranslationEngineAssetStatusSchema, TranslationEngineDependencyStateSchema, TranslationEngineDependencyStatusSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineIdSchema, TranslationEngineInstallLogEventSchema, TranslationEngineInstallLogStreamSchema, TranslationEngineLifecycleEventSchema, TranslationEngineLifecycleStatusSchema, TranslationEngineProjectSettingsSchema, TranslationEngineRuntimeStateSchema, TranslationEngineRuntimeStatusSchema, TranslationLocalCt2SettingsSchema, TranslationLocalSettingsSchema, TranslationOpenAISettingsSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, annotateOpenSpecFacts, annotateOpenSpecMarkdown, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createTranslationEngineLifecycleStatus, customHashFromSoundId, detectRuntimePackageManager, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatchedProjectDir, getWatcherRuntimeStatus, groupNotifications, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, initWatcherPool, isBackendHealthRuntimeMetadata, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isOpsxGlobPattern, isPreviewableFile, isSupportedEmbeddedUiUrl, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseMarkdownFacts, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, resolveHostedAppBaseUrl, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, trimMarkdownSlice };
5545
+ 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, ManagedLocalCatalogSourceSchema, 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, TranslationEngineAssetStateSchema, TranslationEngineAssetStatusSchema, TranslationEngineDependencyStateSchema, TranslationEngineDependencyStatusSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineIdSchema, TranslationEngineInstallLogEventSchema, TranslationEngineInstallLogStreamSchema, TranslationEngineLifecycleEventSchema, TranslationEngineLifecycleStatusSchema, TranslationEngineProjectSettingsSchema, TranslationEngineRuntimeStateSchema, TranslationEngineRuntimeStatusSchema, TranslationLocalCt2SettingsSchema, TranslationLocalLlamaSettingsSchema, TranslationLocalSettingsSchema, TranslationOpenAISettingsSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, annotateOpenSpecFacts, annotateOpenSpecMarkdown, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createTranslationEngineLifecycleStatus, customHashFromSoundId, detectRuntimePackageManager, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatchedProjectDir, getWatcherRuntimeStatus, groupNotifications, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, initWatcherPool, isBackendHealthRuntimeMetadata, isBatchTranslationAbort, isDirectionalManagedLocalTranslationEngineId, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isOpsxGlobPattern, isPreviewableFile, isSupportedEmbeddedUiUrl, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, normalizeBatchTranslationError, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseMarkdownFacts, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, resolveHostedAppBaseUrl, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, runControlledTranslationTask, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, trimMarkdownSlice };
@@ -1,4 +1,4 @@
1
- import { H as TranslationDownloadGroupPlan, kt as TranslationModelDownloadPlan } from "./translator-BtbU7rjR.mjs";
1
+ import { G as TranslationDownloadGroupPlan, Pt as TranslationModelDownloadPlan } from "./translator-jn94xmWZ.mjs";
2
2
 
3
3
  //#region src/local-download-profiles.d.ts
4
4
  declare const LOCAL_MODEL_PROFILE_DEFINITIONS: readonly [{
@@ -1,3 +1,3 @@
1
- import "./translator-BtbU7rjR.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-CSXKbamv.mjs";
1
+ import "./translator-jn94xmWZ.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-DHF9dW4e.mjs";
3
3
  export { LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelProfileId, LocalRepositoryFile, LocalRuntimeProfileFiles, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, selectLocalDownloadGroup };
@@ -1,4 +1,4 @@
1
- import { x as SoundId } from "./sounds-BaxOUgWE.mjs";
1
+ import { x as SoundId } from "./sounds-BjSZxrQO.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/terminal-control.d.ts
@@ -54,18 +54,18 @@ declare function terminalNotificationEventToPublishInput(input: {
54
54
  //#endregion
55
55
  //#region src/notifications.d.ts
56
56
  declare const NOTIFICATION_SOUND_VALUES: readonly ["silent", "soft", "clear", "pulse"];
57
- declare const NotificationSoundSchema: z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"silent">, z.ZodEnum<["builtin:Basso", "builtin:Blow", "builtin:Bottle", "builtin:Frog", "builtin:Funk", "builtin:Glass", "builtin:Hero", "builtin:Morse", "builtin:Ping", "builtin:Pop", "builtin:Purr", "builtin:Sosumi", "builtin:Submarine", "builtin:Tink"]>, z.ZodType<`custom:${string}`, z.ZodTypeDef, `custom:${string}`>]>, "silent" | "builtin:Basso" | "builtin:Blow" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | "builtin:Tink" | `custom:${string}`, unknown>;
57
+ declare const NotificationSoundSchema: z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"silent">, z.ZodEnum<["builtin:Basso", "builtin:Blow", "builtin:Bottle", "builtin:Frog", "builtin:Funk", "builtin:Glass", "builtin:Hero", "builtin:Morse", "builtin:Ping", "builtin:Pop", "builtin:Purr", "builtin:Sosumi", "builtin:Submarine", "builtin:Tink"]>, z.ZodType<`custom:${string}`, z.ZodTypeDef, `custom:${string}`>]>, "silent" | "builtin:Tink" | "builtin:Blow" | "builtin:Basso" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | `custom:${string}`, unknown>;
58
58
  type NotificationSound = SoundId;
59
59
  declare const NOTIFICATION_SOUND_OPTIONS: readonly {
60
60
  id: NotificationSound;
61
61
  label: string;
62
62
  }[];
63
63
  declare const NotificationSettingsSchema: z.ZodObject<{
64
- sound: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"silent">, z.ZodEnum<["builtin:Basso", "builtin:Blow", "builtin:Bottle", "builtin:Frog", "builtin:Funk", "builtin:Glass", "builtin:Hero", "builtin:Morse", "builtin:Ping", "builtin:Pop", "builtin:Purr", "builtin:Sosumi", "builtin:Submarine", "builtin:Tink"]>, z.ZodType<`custom:${string}`, z.ZodTypeDef, `custom:${string}`>]>, "silent" | "builtin:Basso" | "builtin:Blow" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | "builtin:Tink" | `custom:${string}`, unknown>>;
64
+ sound: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"silent">, z.ZodEnum<["builtin:Basso", "builtin:Blow", "builtin:Bottle", "builtin:Frog", "builtin:Funk", "builtin:Glass", "builtin:Hero", "builtin:Morse", "builtin:Ping", "builtin:Pop", "builtin:Purr", "builtin:Sosumi", "builtin:Submarine", "builtin:Tink"]>, z.ZodType<`custom:${string}`, z.ZodTypeDef, `custom:${string}`>]>, "silent" | "builtin:Tink" | "builtin:Blow" | "builtin:Basso" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | `custom:${string}`, unknown>>;
65
65
  volume: z.ZodDefault<z.ZodNumber>;
66
66
  systemNotificationsEnabled: z.ZodDefault<z.ZodBoolean>;
67
67
  }, "strip", z.ZodTypeAny, {
68
- sound: "silent" | "builtin:Basso" | "builtin:Blow" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | "builtin:Tink" | `custom:${string}`;
68
+ sound: "silent" | "builtin:Tink" | "builtin:Blow" | "builtin:Basso" | "builtin:Bottle" | "builtin:Frog" | "builtin:Funk" | "builtin:Glass" | "builtin:Hero" | "builtin:Morse" | "builtin:Ping" | "builtin:Pop" | "builtin:Purr" | "builtin:Sosumi" | "builtin:Submarine" | `custom:${string}`;
69
69
  volume: number;
70
70
  systemNotificationsEnabled: boolean;
71
71
  }, {
@@ -1,3 +1,3 @@
1
- import "./sounds-BaxOUgWE.mjs";
2
- import { C as getNotificationAggregateKey, E as groupNotifications, P as terminalNotificationEventToPublishInput, S as aggregateNotifications, T as getNotificationGroupLabel, _ as NotificationSource, a as NotificationAggregate, b as TerminalNotificationParseResult, c as NotificationGroupKeySchema, d as NotificationRecord, f as NotificationRecordSchema, g as NotificationSoundSchema, h as NotificationSound, i as NotificationActionSchema, k as TerminalControlParser, l as NotificationPublishInput, m as NotificationSettingsSchema, n as NOTIFICATION_SOUND_VALUES, o as NotificationGroup, p as NotificationSettings, r as NotificationAction, s as NotificationGroupKey, t as NOTIFICATION_SOUND_OPTIONS, u as NotificationPublishInputSchema, v as NotificationSourceSchema, w as getNotificationGroupKey, x as TerminalNotificationParser, y as TerminalNotificationEvent } from "./notifications-Ct6rtBwb.mjs";
1
+ import "./sounds-BjSZxrQO.mjs";
2
+ import { C as getNotificationAggregateKey, E as groupNotifications, P as terminalNotificationEventToPublishInput, S as aggregateNotifications, T as getNotificationGroupLabel, _ as NotificationSource, a as NotificationAggregate, b as TerminalNotificationParseResult, c as NotificationGroupKeySchema, d as NotificationRecord, f as NotificationRecordSchema, g as NotificationSoundSchema, h as NotificationSound, i as NotificationActionSchema, k as TerminalControlParser, l as NotificationPublishInput, m as NotificationSettingsSchema, n as NOTIFICATION_SOUND_VALUES, o as NotificationGroup, p as NotificationSettings, r as NotificationAction, s as NotificationGroupKey, t as NOTIFICATION_SOUND_OPTIONS, u as NotificationPublishInputSchema, v as NotificationSourceSchema, w as getNotificationGroupKey, x as TerminalNotificationParser, y as TerminalNotificationEvent } from "./notifications-D9yMeQqN.mjs";
3
3
  export { NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationAction, NotificationActionSchema, NotificationAggregate, NotificationGroup, NotificationGroupKey, NotificationGroupKeySchema, NotificationPublishInput, NotificationPublishInputSchema, NotificationRecord, NotificationRecordSchema, NotificationSettings, NotificationSettingsSchema, NotificationSound, NotificationSoundSchema, NotificationSource, NotificationSourceSchema, TerminalControlParser, TerminalNotificationEvent, TerminalNotificationParseResult, TerminalNotificationParser, aggregateNotifications, getNotificationAggregateKey, getNotificationGroupKey, getNotificationGroupLabel, groupNotifications, terminalNotificationEventToPublishInput };
@@ -1,4 +1,4 @@
1
- import { g as Spec } from "./schemas-DeEkRkAH.mjs";
1
+ import { g as Spec } from "./schemas-B6ZBedD4.mjs";
2
2
  import { d as MarkdownReadingPlugin, l as MarkdownReadingDocument } from "./markdown-reading-BaHZTf5f.mjs";
3
3
  import { n as OpenSpecAnnotation, t as AnnotatedOpenSpecDocument } from "./openspec-annotations-DYyP_HQh.mjs";
4
4
 
@@ -1,6 +1,6 @@
1
- import "./schemas-DeEkRkAH.mjs";
1
+ import "./schemas-B6ZBedD4.mjs";
2
2
  import "./markdown-facts-DempqdIX.mjs";
3
3
  import "./markdown-reading-BaHZTf5f.mjs";
4
4
  import "./openspec-annotations-DYyP_HQh.mjs";
5
- import { a as OpenSpecReadingSectionsProjection, c as ProjectedOpenSpecDocument, d as getOpenSpecReadingSections, f as parseOpenSpecMarkdownToSpec, i as OpenSpecProjectionOptions, l as createOpenSpecReadingPlugin, m as projectOpenSpecMarkdown, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as OpenSpecRequirementBlock, p as projectAnnotatedOpenSpecToSpec, r as OpenSpecHeadingSection, s as OpenSpecScenarioBlock, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, u as getOpenSpecProjectionAnnotation } from "./openspec-projection-DrTZ0P31.mjs";
5
+ import { a as OpenSpecReadingSectionsProjection, c as ProjectedOpenSpecDocument, d as getOpenSpecReadingSections, f as parseOpenSpecMarkdownToSpec, i as OpenSpecProjectionOptions, l as createOpenSpecReadingPlugin, m as projectOpenSpecMarkdown, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as OpenSpecRequirementBlock, p as projectAnnotatedOpenSpecToSpec, r as OpenSpecHeadingSection, s as OpenSpecScenarioBlock, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, u as getOpenSpecProjectionAnnotation } from "./openspec-projection-e-sOj4vr.mjs";
6
6
  export { OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OpenSpecHeadingSection, OpenSpecProjectionOptions, OpenSpecReadingSectionsProjection, OpenSpecRequirementBlock, OpenSpecScenarioBlock, ProjectedOpenSpecDocument, createOpenSpecReadingPlugin, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, parseOpenSpecMarkdownToSpec, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown };
@@ -1,4 +1,4 @@
1
- import { n as ChangeFile } from "./schemas-DeEkRkAH.mjs";
1
+ import { n as ChangeFile } from "./schemas-B6ZBedD4.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/opsx-types.d.ts
@@ -147,15 +147,15 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
147
147
  remaining: number;
148
148
  };
149
149
  state: "ready" | "blocked" | "all_done";
150
+ changeName: string;
151
+ schemaName: string;
152
+ changeDir: string;
153
+ contextFiles: Record<string, string[]>;
150
154
  tasks: {
151
155
  id: string;
152
156
  description: string;
153
157
  done: boolean;
154
158
  }[];
155
- changeName: string;
156
- schemaName: string;
157
- changeDir: string;
158
- contextFiles: Record<string, string[]>;
159
159
  instruction: string;
160
160
  missingArtifacts?: string[] | undefined;
161
161
  }, {
@@ -165,15 +165,15 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
165
165
  remaining: number;
166
166
  };
167
167
  state: "ready" | "blocked" | "all_done";
168
+ changeName: string;
169
+ schemaName: string;
170
+ changeDir: string;
171
+ contextFiles: Record<string, string | string[]>;
168
172
  tasks: {
169
173
  id: string;
170
174
  description: string;
171
175
  done: boolean;
172
176
  }[];
173
- changeName: string;
174
- schemaName: string;
175
- changeDir: string;
176
- contextFiles: Record<string, string | string[]>;
177
177
  instruction: string;
178
178
  missingArtifacts?: string[] | undefined;
179
179
  }>;
@@ -1,3 +1,3 @@
1
- import { a as OpsxEntityFile, c as buildOpsxEntityDetail, d as isOpsxGlobPattern, f as normalizeOpsxEntityPath, h as parseOpsxEntityMetadata, i as OpsxEntityDiagnostic, l as getOpsxEntityMetadataPath, m as opsxPathMatchesPattern, n as OpsxEntityArtifactFile, o as OpsxEntityReadOptions, p as opsxGlobToRegex, r as OpsxEntityDetail, s as OpsxEntityStage, t as OpsxEntityArtifact, u as getOpsxEntityRootRelativePath } from "./opsx-entity-CIB-Wi0n.mjs";
2
- import "./schemas-DeEkRkAH.mjs";
1
+ import { a as OpsxEntityFile, c as buildOpsxEntityDetail, d as isOpsxGlobPattern, f as normalizeOpsxEntityPath, h as parseOpsxEntityMetadata, i as OpsxEntityDiagnostic, l as getOpsxEntityMetadataPath, m as opsxPathMatchesPattern, n as OpsxEntityArtifactFile, o as OpsxEntityReadOptions, p as opsxGlobToRegex, r as OpsxEntityDetail, s as OpsxEntityStage, t as OpsxEntityArtifact, u as getOpsxEntityRootRelativePath } from "./opsx-entity-C89YFQNB.mjs";
2
+ import "./schemas-B6ZBedD4.mjs";
3
3
  export { OpsxEntityArtifact, OpsxEntityArtifactFile, OpsxEntityDetail, OpsxEntityDiagnostic, OpsxEntityFile, OpsxEntityReadOptions, OpsxEntityStage, buildOpsxEntityDetail, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, isOpsxGlobPattern, normalizeOpsxEntityPath, opsxGlobToRegex, opsxPathMatchesPattern, parseOpsxEntityMetadata };
@@ -1,4 +1,4 @@
1
- import { i as OpsxEntityDiagnostic, j as SchemaDetail } from "./opsx-entity-CIB-Wi0n.mjs";
1
+ import { i as OpsxEntityDiagnostic, j as SchemaDetail } from "./opsx-entity-C89YFQNB.mjs";
2
2
 
3
3
  //#region src/opsx-schema-detail.d.ts
4
4
  interface ParsedOpsxSchemaDetail {
@@ -1,4 +1,4 @@
1
- import "./opsx-entity-CIB-Wi0n.mjs";
2
- import "./schemas-DeEkRkAH.mjs";
3
- import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-Cjoesix_.mjs";
1
+ import "./opsx-entity-C89YFQNB.mjs";
2
+ import "./schemas-B6ZBedD4.mjs";
3
+ import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-DIscOp9f.mjs";
4
4
  export { ParsedOpsxSchemaDetail, parseOpsxSchemaDetail };