@openspecui/core 3.11.1 → 3.11.3

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 (32) hide show
  1. package/dist/{document-translation-Dnl1lz2K.mjs → document-translation-BrlCvnLZ.mjs} +9 -1
  2. package/dist/{document-translation-AlZtjOt5.d.mts → document-translation-Cv6BIGL5.d.mts} +117 -23
  3. package/dist/document-translation.d.mts +1 -1
  4. package/dist/document-translation.mjs +2 -2
  5. package/dist/index.d.mts +215 -47
  6. package/dist/index.mjs +254 -6
  7. package/dist/{local-download-profiles-DISrU0mw.d.mts → local-download-profiles-GKs2OOqJ.d.mts} +1 -1
  8. package/dist/local-download-profiles.d.mts +2 -2
  9. package/dist/{notifications-gGjGaYsF.d.mts → notifications-CJQ_F_Un.d.mts} +9 -9
  10. package/dist/notifications.d.mts +2 -2
  11. package/dist/{openspec-projection-BojcJ9zl.d.mts → openspec-projection-BbuPTbvj.d.mts} +1 -1
  12. package/dist/openspec-projection.d.mts +2 -2
  13. package/dist/{opsx-entity-BdyGTVs_.d.mts → opsx-entity-BO9G2SCW.d.mts} +7 -7
  14. package/dist/opsx-entity.d.mts +2 -2
  15. package/dist/{opsx-schema-detail-Cf8YIflR.d.mts → opsx-schema-detail-DTajJW4g.d.mts} +1 -1
  16. package/dist/opsx-schema-detail.d.mts +3 -3
  17. package/dist/{schemas-DV6yABO9.d.mts → schemas-DQzd1hgp.d.mts} +30 -30
  18. package/dist/{sounds-C906qHTJ.d.mts → sounds-3yEx1YXT.d.mts} +5 -5
  19. package/dist/sounds.d.mts +1 -1
  20. package/dist/{terminal-audio-D6dE8O1_.d.mts → terminal-audio-UCLlM1qN.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-Cz0vfgkw.d.mts → terminal-invocation-DCPc8hmm.d.mts} +42 -42
  24. package/dist/terminal-invocation.d.mts +1 -1
  25. package/dist/{translation-language-pair-D6f5u70K.mjs → translation-language-pair-Cb4a0hG6.mjs} +2 -1
  26. package/dist/translation-language-pair.mjs +1 -1
  27. package/dist/translator-Car0_7uk.mjs +412 -0
  28. package/dist/{translator-tTXEGRdz.d.mts → translator-prn3W9lf.d.mts} +786 -111
  29. package/dist/translator.d.mts +2 -2
  30. package/dist/translator.mjs +2 -2
  31. package/package.json +1 -1
  32. package/dist/translator-B0T5VL9k.mjs +0 -239
package/dist/index.mjs CHANGED
@@ -3,15 +3,15 @@ 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 { 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";
6
+ import { A as TranslationEngineInstallLogStreamSchema, B as getManagedLocalTranslationEngineManifest, C as TranslationEngineAssetStateSchema, D as TranslationEngineGlobalSettingsSchema, E as TranslationEngineDependencyStatusSchema, F as TranslationLocalCt2SettingsSchema, G as isTranslationEngineDependencyReady, H as getTranslationEngineManifest, I as TranslationLocalLlamaSettingsSchema, K as isTranslationEngineRuntimeReady, L as TranslationLocalSettingsSchema, M as TranslationEngineLifecycleStatusSchema, N as TranslationEngineRuntimeStateSchema, O as TranslationEngineIdSchema, P as TranslationEngineRuntimeStatusSchema, R as TranslationOpenAISettingsSchema, S as TranslationDownloadGroupPlanSchema, T as TranslationEngineDependencyStateSchema, U as isDirectionalManagedLocalTranslationEngineId, V as getTranslationEngineLifecycleMessage, W as isManagedLocalTranslationEngineId, _ as ServiceTranslationEngineIdSchema, a as LocalModelAssetPlanSnapshotSchema, b as TRANSLATOR_CONTRACT_VERSION, c as LocalModelLifecycleFileStateSchema, d as LocalModelProfileManifestFileSchema, f as LocalModelProfileManifestGroupSchema, g as SERVICE_TRANSLATION_ENGINE_IDS, h as ManagedLocalCatalogSourceSchema, i as LocalModelAssetLogSchema, j as TranslationEngineLifecycleEventSchema, k as TranslationEngineInstallLogEventSchema, l as LocalModelLifecycleGroupStateSchema, m as LocalModelProfileStatusSchema, n as BatchTranslateInputSchema, o as LocalModelAssetStateSchema, p as LocalModelProfileManifestSchema, q as shouldShowTranslationEngineInstallGate, r as DEFAULT_TRANSLATION_ENGINE_ID, s as LocalModelDownloadStatusSchema, t as BatchTranslateEventSchema, u as LocalModelProfileLoadStateSchema, v as TRANSLATION_ENGINE_IDS, w as TranslationEngineAssetStatusSchema, x as TranslationDownloadFilePlanSchema, y as TRANSLATION_ENGINE_MANIFESTS, z as createTranslationEngineLifecycleStatus } from "./translator-Car0_7uk.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-BrlCvnLZ.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";
11
11
  import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-CUs0sqEO.mjs";
12
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
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";
14
+ import { n as inferLocalDirectionalModelLanguagePair, t as checkLocalDirectionalModelLanguagePair } from "./translation-language-pair-Cb4a0hG6.mjs";
15
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
16
  import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-Cw-5MTRg.mjs";
17
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";
@@ -21,7 +21,7 @@ import { dirname, join } from "path";
21
21
  import { AsyncLocalStorage } from "node:async_hooks";
22
22
  import { mkdir as mkdir$1, readFile as readFile$1, readdir, stat, writeFile as writeFile$1 } from "node:fs/promises";
23
23
  import { basename, dirname as dirname$1, join as join$1, matchesGlob, relative, resolve, sep } from "node:path";
24
- import { existsSync, lstatSync, realpathSync } from "node:fs";
24
+ import { existsSync, lstatSync, readFileSync, realpathSync } from "node:fs";
25
25
  import { z } from "zod";
26
26
  import { EventEmitter } from "events";
27
27
  import { watch } from "fs";
@@ -2875,6 +2875,24 @@ const PERSISTED_CONFIG_SANITIZE_RULES = [
2875
2875
  ],
2876
2876
  fallback: {}
2877
2877
  },
2878
+ {
2879
+ kind: "object",
2880
+ path: [
2881
+ "translation",
2882
+ "engines",
2883
+ "localCt2"
2884
+ ],
2885
+ fallback: {}
2886
+ },
2887
+ {
2888
+ kind: "object",
2889
+ path: [
2890
+ "translation",
2891
+ "engines",
2892
+ "localLlama"
2893
+ ],
2894
+ fallback: {}
2895
+ },
2878
2896
  {
2879
2897
  kind: "object",
2880
2898
  path: [
@@ -2980,6 +2998,14 @@ function toPersistedConfig(config, options = {}) {
2980
2998
  if (config.translation.engines.local.model !== DEFAULT_CONFIG.translation.engines.local.model) localEngine.model = config.translation.engines.local.model;
2981
2999
  if (config.translation.engines.local.selectedGroupId !== DEFAULT_CONFIG.translation.engines.local.selectedGroupId) localEngine.selectedGroupId = config.translation.engines.local.selectedGroupId;
2982
3000
  if (localEngine && hasOwnEntries$1(localEngine)) translationEngines.local = localEngine;
3001
+ const localCt2Engine = {};
3002
+ if (config.translation.engines.localCt2.model !== DEFAULT_CONFIG.translation.engines.localCt2.model) localCt2Engine.model = config.translation.engines.localCt2.model;
3003
+ if (config.translation.engines.localCt2.selectedGroupId !== DEFAULT_CONFIG.translation.engines.localCt2.selectedGroupId) localCt2Engine.selectedGroupId = config.translation.engines.localCt2.selectedGroupId;
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;
2983
3009
  if (config.translation.engines.openai.model !== DEFAULT_CONFIG.translation.engines.openai.model) translationEngines.openai = { model: config.translation.engines.openai.model };
2984
3010
  if (hasOwnEntries$1(translationEngines)) translation.engines = translationEngines;
2985
3011
  if (hasOwnEntries$1(translation)) persisted.translation = translation;
@@ -3087,6 +3113,8 @@ var ConfigManager = class {
3087
3113
  ...config.translation,
3088
3114
  engines: {
3089
3115
  local: mergeNullablePatch$1(current.translation.engines.local, config.translation?.engines?.local),
3116
+ localCt2: mergeNullablePatch$1(current.translation.engines.localCt2, config.translation?.engines?.localCt2),
3117
+ localLlama: mergeNullablePatch$1(current.translation.engines.localLlama, config.translation?.engines?.localLlama),
3090
3118
  openai: mergeNullablePatch$1(current.translation.engines.openai, config.translation?.engines?.openai)
3091
3119
  }
3092
3120
  }
@@ -3240,6 +3268,16 @@ const PERSISTED_GLOBAL_SETTINGS_SANITIZE_RULES = [
3240
3268
  kind: "object",
3241
3269
  path: ["translationEngines", "local"],
3242
3270
  fallback: {}
3271
+ },
3272
+ {
3273
+ kind: "object",
3274
+ path: ["translationEngines", "localCt2"],
3275
+ fallback: {}
3276
+ },
3277
+ {
3278
+ kind: "object",
3279
+ path: ["translationEngines", "localLlama"],
3280
+ fallback: {}
3243
3281
  }
3244
3282
  ];
3245
3283
  function getDefaultGlobalSettingsPath() {
@@ -3281,6 +3319,16 @@ function toPersistedGlobalSettings(settings) {
3281
3319
  if (settings.translationEngines.local.selectedGroupId !== defaultTranslationEngines.local.selectedGroupId) local.selectedGroupId = settings.translationEngines.local.selectedGroupId;
3282
3320
  if (settings.translationEngines.local.hfEndpoint !== defaultTranslationEngines.local.hfEndpoint) local.hfEndpoint = settings.translationEngines.local.hfEndpoint;
3283
3321
  if (hasOwnEntries(local)) translationEngines.local = local;
3322
+ const localCt2 = {};
3323
+ if (settings.translationEngines.localCt2.model !== defaultTranslationEngines.localCt2.model) localCt2.model = settings.translationEngines.localCt2.model;
3324
+ if (settings.translationEngines.localCt2.selectedGroupId !== defaultTranslationEngines.localCt2.selectedGroupId) localCt2.selectedGroupId = settings.translationEngines.localCt2.selectedGroupId;
3325
+ if (settings.translationEngines.localCt2.hfEndpoint !== defaultTranslationEngines.localCt2.hfEndpoint) localCt2.hfEndpoint = settings.translationEngines.localCt2.hfEndpoint;
3326
+ if (hasOwnEntries(localCt2)) translationEngines.localCt2 = localCt2;
3327
+ const localLlama = {};
3328
+ if (settings.translationEngines.localLlama.model !== defaultTranslationEngines.localLlama.model) localLlama.model = settings.translationEngines.localLlama.model;
3329
+ if (settings.translationEngines.localLlama.selectedGroupId !== defaultTranslationEngines.localLlama.selectedGroupId) localLlama.selectedGroupId = settings.translationEngines.localLlama.selectedGroupId;
3330
+ if (settings.translationEngines.localLlama.hfEndpoint !== defaultTranslationEngines.localLlama.hfEndpoint) localLlama.hfEndpoint = settings.translationEngines.localLlama.hfEndpoint;
3331
+ if (hasOwnEntries(localLlama)) translationEngines.localLlama = localLlama;
3284
3332
  if (hasOwnEntries(translationEngines)) persisted.translationEngines = translationEngines;
3285
3333
  return persisted;
3286
3334
  }
@@ -3331,7 +3379,9 @@ var GlobalSettingsManager = class {
3331
3379
  translationEngines: {
3332
3380
  ...current.translationEngines,
3333
3381
  openai: mergeNullablePatch(current.translationEngines.openai, update.translationEngines?.openai),
3334
- local: mergeNullablePatch(current.translationEngines.local, update.translationEngines?.local)
3382
+ local: mergeNullablePatch(current.translationEngines.local, update.translationEngines?.local),
3383
+ localCt2: mergeNullablePatch(current.translationEngines.localCt2, update.translationEngines?.localCt2),
3384
+ localLlama: mergeNullablePatch(current.translationEngines.localLlama, update.translationEngines?.localLlama)
3335
3385
  }
3336
3386
  }));
3337
3387
  if (isPersistedGlobalSettingsEmpty(persisted) && !fileExists) return;
@@ -3343,6 +3393,204 @@ var GlobalSettingsManager = class {
3343
3393
  }
3344
3394
  };
3345
3395
 
3396
+ //#endregion
3397
+ //#region src/runtime-package-manager.ts
3398
+ const LOCKFILE_PACKAGE_MANAGERS = [
3399
+ {
3400
+ filenames: ["deno.lock"],
3401
+ id: "deno"
3402
+ },
3403
+ {
3404
+ filenames: ["bun.lockb", "bun.lock"],
3405
+ id: "bun"
3406
+ },
3407
+ {
3408
+ filenames: ["pnpm-lock.yaml"],
3409
+ id: "pnpm"
3410
+ },
3411
+ {
3412
+ filenames: ["yarn.lock"],
3413
+ id: "yarn"
3414
+ },
3415
+ {
3416
+ filenames: ["package-lock.json", "npm-shrinkwrap.json"],
3417
+ id: "npm"
3418
+ }
3419
+ ];
3420
+ function parseUserAgentPackageManager(userAgent) {
3421
+ const token = userAgent?.trim().split(/\s+/u)[0];
3422
+ if (!token) return null;
3423
+ const slashIndex = token.indexOf("/");
3424
+ return (slashIndex === -1 ? token : token.slice(0, slashIndex)).trim() || null;
3425
+ }
3426
+ function parseExecPathPackageManager(execPath) {
3427
+ if (!execPath) return null;
3428
+ const normalized = execPath.replaceAll("\\", "/").toLowerCase();
3429
+ if (normalized.includes("vite-plus")) return "vp";
3430
+ if (normalized.includes("pnpm")) return "pnpm";
3431
+ if (normalized.includes("yarn")) return "yarn";
3432
+ if (normalized.includes("bun")) return "bun";
3433
+ if (normalized.includes("deno")) return "deno";
3434
+ if (normalized.includes("npm")) return "npm";
3435
+ return null;
3436
+ }
3437
+ function parsePackageManagerField(packageManager) {
3438
+ const trimmed = packageManager?.trim();
3439
+ if (!trimmed) return null;
3440
+ if (trimmed.startsWith("@")) {
3441
+ const separatorIndex$1 = trimmed.lastIndexOf("@");
3442
+ if (separatorIndex$1 > 0) return trimmed.slice(0, separatorIndex$1);
3443
+ return trimmed;
3444
+ }
3445
+ const separatorIndex = trimmed.indexOf("@");
3446
+ return (separatorIndex === -1 ? trimmed : trimmed.slice(0, separatorIndex)).trim() || null;
3447
+ }
3448
+ function detectPackageManagerFromPackageJson(currentDir) {
3449
+ const packageJsonPath = join$1(currentDir, "package.json");
3450
+ if (!existsSync(packageJsonPath)) return null;
3451
+ try {
3452
+ const raw = readFileSync(packageJsonPath, "utf8");
3453
+ return parsePackageManagerField(JSON.parse(raw).packageManager);
3454
+ } catch {
3455
+ return null;
3456
+ }
3457
+ }
3458
+ function detectPackageManagerFromLockfile(currentDir) {
3459
+ for (const entry of LOCKFILE_PACKAGE_MANAGERS) if (entry.filenames.some((filename) => existsSync(join$1(currentDir, filename)))) return entry.id;
3460
+ return null;
3461
+ }
3462
+ function detectRuntimePackageManager(options) {
3463
+ const env = options.env ?? process.env;
3464
+ if (env.DENO_VERSION) return {
3465
+ id: "deno",
3466
+ source: "deno-env"
3467
+ };
3468
+ const fromUserAgent = parseUserAgentPackageManager(env.npm_config_user_agent);
3469
+ if (fromUserAgent) return {
3470
+ id: fromUserAgent,
3471
+ source: "user-agent"
3472
+ };
3473
+ const fromExecPath = parseExecPathPackageManager(env.npm_execpath);
3474
+ if (fromExecPath) return {
3475
+ id: fromExecPath,
3476
+ source: "exec-path"
3477
+ };
3478
+ let currentDir = options.startDir;
3479
+ while (true) {
3480
+ const fromPackageManagerField = detectPackageManagerFromPackageJson(currentDir);
3481
+ if (fromPackageManagerField) return {
3482
+ id: fromPackageManagerField,
3483
+ source: "package-manager-field"
3484
+ };
3485
+ const fromLockfile = detectPackageManagerFromLockfile(currentDir);
3486
+ if (fromLockfile) return {
3487
+ id: fromLockfile,
3488
+ source: "lockfile"
3489
+ };
3490
+ const parentDir = dirname$1(currentDir);
3491
+ if (parentDir === currentDir) break;
3492
+ currentDir = parentDir;
3493
+ }
3494
+ return {
3495
+ id: "npm",
3496
+ source: "fallback"
3497
+ };
3498
+ }
3499
+ function buildCommand(cmd, args) {
3500
+ return {
3501
+ cmd,
3502
+ args,
3503
+ displayCommand: `${cmd} ${args.join(" ")}`
3504
+ };
3505
+ }
3506
+ function appendOptionalDependencyFlag(args, field) {
3507
+ if (field !== "optionalDependencies") return;
3508
+ args.push("--save-optional");
3509
+ }
3510
+ function appendAllowBuildFlags(args, packages) {
3511
+ for (const packageName of packages) args.push("--allow-build", packageName);
3512
+ }
3513
+ const RUNTIME_PACKAGE_INSTALL_STRATEGIES = [
3514
+ {
3515
+ id: "npm",
3516
+ preservesDependencyField: true,
3517
+ buildCommand(input) {
3518
+ const args = ["install"];
3519
+ if (input.ignoreWorkspace) args.push("--ignore-workspace");
3520
+ appendOptionalDependencyFlag(args, input.dependencyField ?? "dependencies");
3521
+ args.push(...input.packages);
3522
+ return buildCommand("npm", args);
3523
+ }
3524
+ },
3525
+ {
3526
+ id: "pnpm",
3527
+ preservesDependencyField: true,
3528
+ buildCommand(input) {
3529
+ const args = ["add"];
3530
+ appendOptionalDependencyFlag(args, input.dependencyField ?? "dependencies");
3531
+ appendAllowBuildFlags(args, input.allowBuildPackages ?? []);
3532
+ args.push(...input.packages);
3533
+ return buildCommand("pnpm", args);
3534
+ }
3535
+ },
3536
+ {
3537
+ id: "yarn",
3538
+ preservesDependencyField: true,
3539
+ buildCommand(input) {
3540
+ const args = ["add"];
3541
+ if ((input.dependencyField ?? "dependencies") === "optionalDependencies") args.push("--optional");
3542
+ args.push(...input.packages);
3543
+ return buildCommand("yarn", args);
3544
+ }
3545
+ },
3546
+ {
3547
+ id: "bun",
3548
+ preservesDependencyField: true,
3549
+ buildCommand(input) {
3550
+ const args = ["add"];
3551
+ if ((input.dependencyField ?? "dependencies") === "optionalDependencies") args.push("--optional");
3552
+ args.push(...input.packages);
3553
+ return buildCommand("bun", args);
3554
+ }
3555
+ },
3556
+ {
3557
+ id: "vp",
3558
+ preservesDependencyField: true,
3559
+ buildCommand(input) {
3560
+ const args = ["add"];
3561
+ appendOptionalDependencyFlag(args, input.dependencyField ?? "dependencies");
3562
+ appendAllowBuildFlags(args, input.allowBuildPackages ?? []);
3563
+ args.push(...input.packages);
3564
+ return buildCommand("vp", args);
3565
+ }
3566
+ },
3567
+ {
3568
+ id: "deno",
3569
+ preservesDependencyField: false,
3570
+ buildCommand(input) {
3571
+ const args = [
3572
+ "add",
3573
+ "--npm",
3574
+ "--node-modules-dir=auto"
3575
+ ];
3576
+ if ((input.allowBuildPackages?.length ?? 0) > 0) args.push(`--allow-scripts=${input.allowBuildPackages.join(",")}`);
3577
+ args.push(...input.packages.map((packageSpec) => packageSpec.startsWith("npm:") ? packageSpec : `npm:${packageSpec}`));
3578
+ return buildCommand("deno", args);
3579
+ }
3580
+ }
3581
+ ];
3582
+ function resolveRuntimePackageInstallStrategy(packageManager) {
3583
+ return RUNTIME_PACKAGE_INSTALL_STRATEGIES.find((strategy) => strategy.id === packageManager) ?? null;
3584
+ }
3585
+ function buildRuntimePackageInstallCommand(input) {
3586
+ return resolveRuntimePackageInstallStrategy(input.packageManager)?.buildCommand({
3587
+ packages: [...input.packages],
3588
+ dependencyField: input.dependencyField,
3589
+ ignoreWorkspace: input.ignoreWorkspace,
3590
+ allowBuildPackages: input.allowBuildPackages
3591
+ }) ?? null;
3592
+ }
3593
+
3346
3594
  //#endregion
3347
3595
  //#region src/cli-executor.ts
3348
3596
  /**
@@ -5184,4 +5432,4 @@ const PtyServerMessageSchema = z.discriminatedUnion("type", [
5184
5432
  ]);
5185
5433
 
5186
5434
  //#endregion
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 };
5435
+ 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, isDirectionalManagedLocalTranslationEngineId, 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 };
@@ -1,4 +1,4 @@
1
- import { $ as TranslationModelDownloadPlan, V as TranslationDownloadGroupPlan } from "./translator-tTXEGRdz.mjs";
1
+ import { Nt as TranslationModelDownloadPlan, W as TranslationDownloadGroupPlan } from "./translator-prn3W9lf.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-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";
1
+ import "./translator-prn3W9lf.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-GKs2OOqJ.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-C906qHTJ.mjs";
1
+ import { x as SoundId } from "./sounds-3yEx1YXT.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: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>;
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>;
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: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>>;
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>>;
65
65
  volume: z.ZodDefault<z.ZodNumber>;
66
66
  systemNotificationsEnabled: z.ZodDefault<z.ZodBoolean>;
67
67
  }, "strip", z.ZodTypeAny, {
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}`;
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}`;
69
69
  volume: number;
70
70
  systemNotificationsEnabled: boolean;
71
71
  }, {
@@ -325,7 +325,6 @@ declare const NotificationPublishInputSchema: z.ZodObject<{
325
325
  groupId: string;
326
326
  title?: string | undefined;
327
327
  };
328
- createdAt?: number | undefined;
329
328
  body?: string | undefined;
330
329
  actions?: ({
331
330
  type: "terminal.focus";
@@ -341,6 +340,7 @@ declare const NotificationPublishInputSchema: z.ZodObject<{
341
340
  label?: string | undefined;
342
341
  })[] | undefined;
343
342
  level?: "info" | "success" | "warning" | "error" | undefined;
343
+ createdAt?: number | undefined;
344
344
  }>;
345
345
  type NotificationPublishInput = z.infer<typeof NotificationPublishInputSchema>;
346
346
  declare const NotificationRecordSchema: z.ZodObject<{
@@ -446,8 +446,6 @@ declare const NotificationRecordSchema: z.ZodObject<{
446
446
  createdAt: z.ZodNumber;
447
447
  groupKey: z.ZodString;
448
448
  }, "strip", z.ZodTypeAny, {
449
- createdAt: number;
450
- id: string;
451
449
  title: string;
452
450
  body: string;
453
451
  source: {
@@ -481,10 +479,10 @@ declare const NotificationRecordSchema: z.ZodObject<{
481
479
  };
482
480
  })[];
483
481
  level: "info" | "success" | "warning" | "error";
484
- groupKey: string;
485
- }, {
486
482
  createdAt: number;
487
483
  id: string;
484
+ groupKey: string;
485
+ }, {
488
486
  title: string;
489
487
  source: {
490
488
  type: "terminal";
@@ -503,6 +501,8 @@ declare const NotificationRecordSchema: z.ZodObject<{
503
501
  groupId: string;
504
502
  title?: string | undefined;
505
503
  };
504
+ createdAt: number;
505
+ id: string;
506
506
  groupKey: string;
507
507
  body?: string | undefined;
508
508
  actions?: ({
@@ -1,3 +1,3 @@
1
- import "./sounds-C906qHTJ.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-gGjGaYsF.mjs";
1
+ import "./sounds-3yEx1YXT.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-CJQ_F_Un.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-DV6yABO9.mjs";
1
+ import { g as Spec } from "./schemas-DQzd1hgp.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-DV6yABO9.mjs";
1
+ import "./schemas-DQzd1hgp.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-BojcJ9zl.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-BbuPTbvj.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-DV6yABO9.mjs";
1
+ import { n as ChangeFile } from "./schemas-DQzd1hgp.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/opsx-types.d.ts
@@ -146,6 +146,7 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
146
146
  complete: number;
147
147
  remaining: number;
148
148
  };
149
+ state: "ready" | "blocked" | "all_done";
149
150
  tasks: {
150
151
  id: string;
151
152
  description: string;
@@ -155,7 +156,6 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
155
156
  schemaName: string;
156
157
  changeDir: string;
157
158
  contextFiles: Record<string, string[]>;
158
- state: "ready" | "blocked" | "all_done";
159
159
  instruction: string;
160
160
  missingArtifacts?: string[] | undefined;
161
161
  }, {
@@ -164,6 +164,7 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
164
164
  complete: number;
165
165
  remaining: number;
166
166
  };
167
+ state: "ready" | "blocked" | "all_done";
167
168
  tasks: {
168
169
  id: string;
169
170
  description: string;
@@ -173,7 +174,6 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
173
174
  schemaName: string;
174
175
  changeDir: string;
175
176
  contextFiles: Record<string, string | string[]>;
176
- state: "ready" | "blocked" | "all_done";
177
177
  instruction: string;
178
178
  missingArtifacts?: string[] | undefined;
179
179
  }>;
@@ -250,13 +250,13 @@ declare const SchemaInfoSchema: z.ZodObject<{
250
250
  artifacts: z.ZodArray<z.ZodString, "many">;
251
251
  source: z.ZodEnum<["project", "user", "package"]>;
252
252
  }, "strip", z.ZodTypeAny, {
253
- name: string;
254
253
  source: "project" | "user" | "package";
254
+ name: string;
255
255
  artifacts: string[];
256
256
  description?: string | undefined;
257
257
  }, {
258
- name: string;
259
258
  source: "project" | "user" | "package";
259
+ name: string;
260
260
  artifacts: string[];
261
261
  description?: string | undefined;
262
262
  }>;
@@ -281,8 +281,8 @@ declare const SchemaResolutionSchema: z.ZodObject<{
281
281
  }>, "many">;
282
282
  }, "strip", z.ZodTypeAny, {
283
283
  path: string;
284
- name: string;
285
284
  source: "project" | "user" | "package";
285
+ name: string;
286
286
  shadows: {
287
287
  path: string;
288
288
  source: "project" | "user" | "package";
@@ -291,8 +291,8 @@ declare const SchemaResolutionSchema: z.ZodObject<{
291
291
  displayPath?: string | undefined;
292
292
  }, {
293
293
  path: string;
294
- name: string;
295
294
  source: "project" | "user" | "package";
295
+ name: string;
296
296
  shadows: {
297
297
  path: string;
298
298
  source: "project" | "user" | "package";
@@ -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-BdyGTVs_.mjs";
2
- import "./schemas-DV6yABO9.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-BO9G2SCW.mjs";
2
+ import "./schemas-DQzd1hgp.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-BdyGTVs_.mjs";
1
+ import { i as OpsxEntityDiagnostic, j as SchemaDetail } from "./opsx-entity-BO9G2SCW.mjs";
2
2
 
3
3
  //#region src/opsx-schema-detail.d.ts
4
4
  interface ParsedOpsxSchemaDetail {
@@ -1,4 +1,4 @@
1
- import "./opsx-entity-BdyGTVs_.mjs";
2
- import "./schemas-DV6yABO9.mjs";
3
- import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-Cf8YIflR.mjs";
1
+ import "./opsx-entity-BO9G2SCW.mjs";
2
+ import "./schemas-DQzd1hgp.mjs";
3
+ import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-DTajJW4g.mjs";
4
4
  export { ParsedOpsxSchemaDetail, parseOpsxSchemaDetail };