@openspecui/core 7.0.2 → 9.0.0

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 (107) hide show
  1. package/dist/{active-root-config-BHgXdX6b.d.mts → active-root-config-C77Duro0.d.mts} +5 -5
  2. package/dist/active-root-config.d.mts +5 -5
  3. package/dist/active-root-config.mjs +1 -1
  4. package/dist/app-daemon-control.d.mts +18 -18
  5. package/dist/{cli-projection-Um81AQW5.d.mts → cli-projection-BAU6-rFs.d.mts} +1 -1
  6. package/dist/cli-projection.d.mts +5 -5
  7. package/dist/cli-projection.mjs +1 -1
  8. package/dist/{dashboard-summary-transport-BJBod4rO.d.mts → dashboard-summary-transport-C3No2o4i.d.mts} +695 -330
  9. package/dist/{dashboard-summary-transport-ILCfZD_I.mjs → dashboard-summary-transport-Do8pzSES.mjs} +10 -1
  10. package/dist/dashboard-summary-transport.d.mts +26 -26
  11. package/dist/dashboard-summary-transport.mjs +2 -2
  12. package/dist/{document-translation-B3xaP0dJ.mjs → document-translation-Dmg3YJDA.mjs} +1 -1
  13. package/dist/document-translation.d.mts +1 -1
  14. package/dist/document-translation.mjs +2 -2
  15. package/dist/{hosted-app-B_T_tTvO.mjs → hosted-app-CHqdo5vd.mjs} +1 -1
  16. package/dist/hosted-app.d.mts +26 -26
  17. package/dist/hosted-app.mjs +6 -6
  18. package/dist/{hosted-contract-BxUx6ksP.mjs → hosted-contract-Qe5AmkiE.mjs} +4 -4
  19. package/dist/hosted-contract.d.mts +26 -26
  20. package/dist/hosted-contract.mjs +5 -5
  21. package/dist/{index-CYFOH_f8.d.mts → index-BGT-MVqL.d.mts} +819 -73
  22. package/dist/index.d.mts +27 -27
  23. package/dist/index.mjs +498 -291
  24. package/dist/{local-download-profiles-BQLPhuE0.d.mts → local-download-profiles-BZj6Tw_s.d.mts} +1 -1
  25. package/dist/local-download-profiles.d.mts +2 -2
  26. package/dist/local-download-profiles.mjs +1 -1
  27. package/dist/markdown-facts.d.mts +1 -1
  28. package/dist/{markdown-reading--Sr6JAl5.d.mts → markdown-reading-CsLbxubT.d.mts} +1 -1
  29. package/dist/markdown-reading.d.mts +2 -2
  30. package/dist/{notifications-BIs3J3BY.d.mts → notifications-B9cvPamG.d.mts} +4 -4
  31. package/dist/{notifications-VHUMI-qG.mjs → notifications-D6XlgL9b.mjs} +2 -2
  32. package/dist/notifications.d.mts +2 -2
  33. package/dist/notifications.mjs +3 -3
  34. package/dist/{openspec-annotations-BylPW5rz.d.mts → openspec-annotations-8ppmICAU.d.mts} +2 -2
  35. package/dist/openspec-annotations.d.mts +3 -3
  36. package/dist/openspec-compat-B246EQNW.mjs +121 -0
  37. package/dist/openspec-compat.d.mts +48 -13
  38. package/dist/openspec-compat.mjs +4 -79
  39. package/dist/{openspec-projection-_1NeavJP.d.mts → openspec-projection-vJ03fcdF.d.mts} +3 -3
  40. package/dist/openspec-projection.d.mts +5 -5
  41. package/dist/opsx-display-path.d.mts +1 -1
  42. package/dist/opsx-display-path.mjs +1 -1
  43. package/dist/{opsx-entity-DZ7onDWC.d.mts → opsx-entity-BFPRTIWN.d.mts} +2 -2
  44. package/dist/opsx-entity.d.mts +7 -7
  45. package/dist/{opsx-schema-detail-D2RnlxSg.d.mts → opsx-schema-detail-D1129ezo.d.mts} +2 -2
  46. package/dist/opsx-schema-detail.d.mts +8 -8
  47. package/dist/{opsx-types-Ch6juiWL.d.mts → opsx-types-C_4QxcU6.d.mts} +51 -50
  48. package/dist/opsx-workflows.d.mts +1 -1
  49. package/dist/opsx-workflows.mjs +1 -1
  50. package/dist/{planning-cli-projection-BreqsrYA.mjs → planning-cli-projection-DV22v3Xl.mjs} +23 -12
  51. package/dist/planning-cli-projection.d.mts +26 -26
  52. package/dist/planning-cli-projection.mjs +4 -3
  53. package/dist/{schemas-zh0_vzYQ.d.mts → schemas-Dnw_rfST.d.mts} +8 -8
  54. package/dist/{sounds-Bb_3aeJJ.d.mts → sounds-BoLuHRve.d.mts} +5 -5
  55. package/dist/sounds.d.mts +1 -1
  56. package/dist/sounds.mjs +1 -1
  57. package/dist/{spec-catalog-DEk_oHAx.mjs → spec-catalog-Ce3uSLSc.mjs} +45 -328
  58. package/dist/spec-catalog.d.mts +26 -26
  59. package/dist/spec-catalog.mjs +3 -2
  60. package/dist/{store-content-projection-Bpdb7_d9.mjs → store-content-projection-DV31znWA.mjs} +1 -1
  61. package/dist/store-content-projection.d.mts +1 -1
  62. package/dist/store-content-projection.mjs +2 -2
  63. package/dist/{store-mutation-protocol-BbgWMJVK.d.mts → store-mutation-protocol-C4rRiO4b.d.mts} +36 -36
  64. package/dist/store-mutation-protocol.d.mts +1 -1
  65. package/dist/store-mutation-protocol.mjs +1 -1
  66. package/dist/{store-types-CF7_LsVL.d.mts → store-types-CMqxPwaj.d.mts} +1 -1
  67. package/dist/store-types.d.mts +5 -5
  68. package/dist/store-types.mjs +1 -1
  69. package/dist/task-progress.d.mts +6 -6
  70. package/dist/{terminal-audio-GuG0qiiI.d.mts → terminal-audio-CNhCiZul.d.mts} +2 -2
  71. package/dist/{terminal-audio-DeubAfFC.mjs → terminal-audio-ELHVH24M.mjs} +1 -1
  72. package/dist/terminal-audio.d.mts +2 -2
  73. package/dist/terminal-audio.mjs +2 -2
  74. package/dist/{terminal-control-CdPuYwwU.mjs → terminal-control-D893EEN_.mjs} +7 -5
  75. package/dist/terminal-control.d.mts +2 -2
  76. package/dist/terminal-control.mjs +1 -1
  77. package/dist/{terminal-invocation-Dx1qfSKb.d.mts → terminal-invocation-BnMhxtP1.d.mts} +22 -22
  78. package/dist/terminal-invocation.d.mts +1 -1
  79. package/dist/terminal-invocation.mjs +1 -1
  80. package/dist/terminal-theme.d.mts +1 -1
  81. package/dist/terminal-theme.mjs +1 -1
  82. package/dist/translation-language-pair.d.mts +1 -1
  83. package/dist/translation-language-pair.mjs +1 -1
  84. package/dist/{translator-Cwaf_pXN.d.mts → translator-B7GQxmun.d.mts} +50 -50
  85. package/dist/translator.d.mts +1 -1
  86. package/dist/translator.mjs +1 -1
  87. package/dist/workflow-CmQ4pFYC.mjs +344 -0
  88. package/package.json +3 -1
  89. /package/dist/{active-root-config-L5QaMb3A.mjs → active-root-config-K_wVeuI3.mjs} +0 -0
  90. /package/dist/{cli-projection-CKRwTvwf.mjs → cli-projection-Bc2WVwGj.mjs} +0 -0
  91. /package/dist/{document-translation-BNbM3fEj.d.mts → document-translation-CBqubtWC.d.mts} +0 -0
  92. /package/dist/{local-download-profiles-h9lUTXr-.mjs → local-download-profiles-BRsR1-kK.mjs} +0 -0
  93. /package/dist/{markdown-facts-DLclHfpE.d.mts → markdown-facts-CEACwik1.d.mts} +0 -0
  94. /package/dist/{opsx-display-path-BD34M8QV.d.mts → opsx-display-path-DvvAFlWG.d.mts} +0 -0
  95. /package/dist/{opsx-display-path-ocbNzMZj.mjs → opsx-display-path-cv0NJHzW.mjs} +0 -0
  96. /package/dist/{opsx-workflows-DX1r6e5j.d.mts → opsx-workflows-B72EGtj_.d.mts} +0 -0
  97. /package/dist/{opsx-workflows-byPfLlo8.mjs → opsx-workflows-BA-46T7_.mjs} +0 -0
  98. /package/dist/{sounds-6prQvKXl.mjs → sounds-cd9lIDxN.mjs} +0 -0
  99. /package/dist/{store-content-projection-R74MV_sD.d.mts → store-content-projection-BnNYyb0x.d.mts} +0 -0
  100. /package/dist/{store-mutation-protocol-CJGUWWI6.mjs → store-mutation-protocol-CBrPcppU.mjs} +0 -0
  101. /package/dist/{store-types-CvpEVNoE.mjs → store-types-C87SlrJ3.mjs} +0 -0
  102. /package/dist/{terminal-invocation-DIpoFYDo.mjs → terminal-invocation-C_FsxEUs.mjs} +0 -0
  103. /package/dist/{terminal-theme-Byzxmnjm.mjs → terminal-theme-C6BPfQ2G.mjs} +0 -0
  104. /package/dist/{terminal-theme-DX08Gci8.d.mts → terminal-theme-C7X8pUqT.d.mts} +0 -0
  105. /package/dist/{translation-language-pair-BR5uxGm-.d.mts → translation-language-pair-B6A39Cai.d.mts} +0 -0
  106. /package/dist/{translation-language-pair-DG9mOuFD.mjs → translation-language-pair-CWLlH7Ab.mjs} +0 -0
  107. /package/dist/{translator-CEGdRmKw.mjs → translator-BkNACZ9R.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { G as TranslationDownloadGroupPlan, Rt as TranslationModelDownloadPlan } from "./translator-Cwaf_pXN.mjs";
1
+ import { G as TranslationDownloadGroupPlan, Rt as TranslationModelDownloadPlan } from "./translator-B7GQxmun.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-Cwaf_pXN.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-BQLPhuE0.mjs";
1
+ import "./translator-B7GQxmun.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-BZj6Tw_s.mjs";
3
3
  export { LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelProfileId, LocalRepositoryFile, LocalRuntimeProfileFiles, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, selectLocalDownloadGroup };
@@ -1,3 +1,3 @@
1
- import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-h9lUTXr-.mjs";
1
+ import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-BRsR1-kK.mjs";
2
2
 
3
3
  export { LOCAL_MODEL_PROFILE_DEFINITIONS, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, selectLocalDownloadGroup };
@@ -1,2 +1,2 @@
1
- import { a as MarkdownSourceRange, i as MarkdownSourcePoint, n as MarkdownFactKind, o as parseMarkdownFacts, r as MarkdownFactsDocument, s as toMarkdownFactKind, t as MarkdownFact } from "./markdown-facts-DLclHfpE.mjs";
1
+ import { a as MarkdownSourceRange, i as MarkdownSourcePoint, n as MarkdownFactKind, o as parseMarkdownFacts, r as MarkdownFactsDocument, s as toMarkdownFactKind, t as MarkdownFact } from "./markdown-facts-CEACwik1.mjs";
2
2
  export { MarkdownFact, MarkdownFactKind, MarkdownFactsDocument, MarkdownSourcePoint, MarkdownSourceRange, parseMarkdownFacts, toMarkdownFactKind };
@@ -1,4 +1,4 @@
1
- import { r as MarkdownFactsDocument, t as MarkdownFact } from "./markdown-facts-DLclHfpE.mjs";
1
+ import { r as MarkdownFactsDocument, t as MarkdownFact } from "./markdown-facts-CEACwik1.mjs";
2
2
 
3
3
  //#region src/markdown-reading.d.ts
4
4
  type MarkdownAnnotationConfidence = 'strong' | 'weak';
@@ -1,3 +1,3 @@
1
- import "./markdown-facts-DLclHfpE.mjs";
2
- import { S as trimMarkdownSlice, _ as getMarkdownAnnotationsForFact, a as MarkdownAnnotationRule, b as getMarkdownHeadingFacts, c as MarkdownProjectionRule, d as MarkdownReadingPlugin, f as MarkdownReadingPluginRegistry, g as getMarkdownAnnotation, h as createMarkdownReadingDocumentFromFacts, i as MarkdownAnnotationInput, l as MarkdownReadingDocument, m as createMarkdownReadingDocument, n as MarkdownAnnotationConfidence, o as MarkdownFactSpan, p as buildMarkdownParentMap, r as MarkdownAnnotationContext, s as MarkdownProjectionContext, t as MarkdownAnnotation, u as MarkdownReadingLookup, v as getMarkdownFactSpan, x as sortMarkdownReadingPlugins, y as getMarkdownHeadingEnd } from "./markdown-reading--Sr6JAl5.mjs";
1
+ import "./markdown-facts-CEACwik1.mjs";
2
+ import { S as trimMarkdownSlice, _ as getMarkdownAnnotationsForFact, a as MarkdownAnnotationRule, b as getMarkdownHeadingFacts, c as MarkdownProjectionRule, d as MarkdownReadingPlugin, f as MarkdownReadingPluginRegistry, g as getMarkdownAnnotation, h as createMarkdownReadingDocumentFromFacts, i as MarkdownAnnotationInput, l as MarkdownReadingDocument, m as createMarkdownReadingDocument, n as MarkdownAnnotationConfidence, o as MarkdownFactSpan, p as buildMarkdownParentMap, r as MarkdownAnnotationContext, s as MarkdownProjectionContext, t as MarkdownAnnotation, u as MarkdownReadingLookup, v as getMarkdownFactSpan, x as sortMarkdownReadingPlugins, y as getMarkdownHeadingEnd } from "./markdown-reading-CsLbxubT.mjs";
3
3
  export { MarkdownAnnotation, MarkdownAnnotationConfidence, MarkdownAnnotationContext, MarkdownAnnotationInput, MarkdownAnnotationRule, MarkdownFactSpan, MarkdownProjectionContext, MarkdownProjectionRule, MarkdownReadingDocument, MarkdownReadingLookup, MarkdownReadingPlugin, MarkdownReadingPluginRegistry, buildMarkdownParentMap, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, sortMarkdownReadingPlugins, trimMarkdownSlice };
@@ -1,4 +1,4 @@
1
- import { x as SoundId } from "./sounds-Bb_3aeJJ.mjs";
1
+ import { x as SoundId } from "./sounds-BoLuHRve.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,5 +1,5 @@
1
- import { g as SoundVolumeSchema, m as SoundConfigIdSchema, u as DEFAULT_NOTIFICATION_SOUND_ID } from "./sounds-6prQvKXl.mjs";
2
- import { t as TerminalControlParser } from "./terminal-control-CdPuYwwU.mjs";
1
+ import { g as SoundVolumeSchema, m as SoundConfigIdSchema, u as DEFAULT_NOTIFICATION_SOUND_ID } from "./sounds-cd9lIDxN.mjs";
2
+ import { t as TerminalControlParser } from "./terminal-control-D893EEN_.mjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/notifications.ts
@@ -1,3 +1,3 @@
1
- import "./sounds-Bb_3aeJJ.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-BIs3J3BY.mjs";
1
+ import "./sounds-BoLuHRve.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-B9cvPamG.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,5 +1,5 @@
1
- import "./sounds-6prQvKXl.mjs";
2
- import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-CdPuYwwU.mjs";
3
- import { a as NotificationPublishInputSchema, c as NotificationSoundSchema, d as aggregateNotifications, f as getNotificationAggregateKey, 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-VHUMI-qG.mjs";
1
+ import "./sounds-cd9lIDxN.mjs";
2
+ import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-D893EEN_.mjs";
3
+ import { a as NotificationPublishInputSchema, c as NotificationSoundSchema, d as aggregateNotifications, f as getNotificationAggregateKey, 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-D6XlgL9b.mjs";
4
4
 
5
5
  export { NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationActionSchema, NotificationGroupKeySchema, NotificationPublishInputSchema, NotificationRecordSchema, NotificationSettingsSchema, NotificationSoundSchema, NotificationSourceSchema, TerminalControlParser, TerminalNotificationParser, aggregateNotifications, getNotificationAggregateKey, getNotificationGroupKey, getNotificationGroupLabel, groupNotifications, terminalNotificationEventToPublishInput };
@@ -1,5 +1,5 @@
1
- import { r as MarkdownFactsDocument } from "./markdown-facts-DLclHfpE.mjs";
2
- import { a as MarkdownAnnotationRule, d as MarkdownReadingPlugin, l as MarkdownReadingDocument, n as MarkdownAnnotationConfidence, t as MarkdownAnnotation } from "./markdown-reading--Sr6JAl5.mjs";
1
+ import { r as MarkdownFactsDocument } from "./markdown-facts-CEACwik1.mjs";
2
+ import { a as MarkdownAnnotationRule, d as MarkdownReadingPlugin, l as MarkdownReadingDocument, n as MarkdownAnnotationConfidence, t as MarkdownAnnotation } from "./markdown-reading-CsLbxubT.mjs";
3
3
 
4
4
  //#region src/openspec-annotations.d.ts
5
5
  type OpenSpecSemanticKind = 'document-title' | 'purpose-section' | 'requirements-section' | 'requirement' | 'scenario' | 'scenario-step' | 'keyword';
@@ -1,4 +1,4 @@
1
- import "./markdown-facts-DLclHfpE.mjs";
2
- import "./markdown-reading--Sr6JAl5.mjs";
3
- import { a as OpenSpecKeyword, c as OpenSpecScenarioStepKeyword, d as annotateOpenSpecMarkdown, f as builtinOpenSpecReadingPlugin, h as openSpecAnnotationRules, i as OpenSpecAnnotationMetadata, l as OpenSpecSemanticKind, m as getOpenSpecAnnotationsForFact, n as OpenSpecAnnotation, o as OpenSpecKeywordRole, p as getOpenSpecAnnotation, r as OpenSpecAnnotationConfidence, s as OpenSpecRequirementKeyword, t as AnnotatedOpenSpecDocument, u as annotateOpenSpecFacts } from "./openspec-annotations-BylPW5rz.mjs";
1
+ import "./markdown-facts-CEACwik1.mjs";
2
+ import "./markdown-reading-CsLbxubT.mjs";
3
+ import { a as OpenSpecKeyword, c as OpenSpecScenarioStepKeyword, d as annotateOpenSpecMarkdown, f as builtinOpenSpecReadingPlugin, h as openSpecAnnotationRules, i as OpenSpecAnnotationMetadata, l as OpenSpecSemanticKind, m as getOpenSpecAnnotationsForFact, n as OpenSpecAnnotation, o as OpenSpecKeywordRole, p as getOpenSpecAnnotation, r as OpenSpecAnnotationConfidence, s as OpenSpecRequirementKeyword, t as AnnotatedOpenSpecDocument, u as annotateOpenSpecFacts } from "./openspec-annotations-8ppmICAU.mjs";
4
4
  export { AnnotatedOpenSpecDocument, OpenSpecAnnotation, OpenSpecAnnotationConfidence, OpenSpecAnnotationMetadata, OpenSpecKeyword, OpenSpecKeywordRole, OpenSpecRequirementKeyword, OpenSpecScenarioStepKeyword, OpenSpecSemanticKind, annotateOpenSpecFacts, annotateOpenSpecMarkdown, builtinOpenSpecReadingPlugin, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, openSpecAnnotationRules };
@@ -0,0 +1,121 @@
1
+ //#region src/openspec-compat.ts
2
+ /**
3
+ * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
4
+ * 1. Encode the shipped OpenSpecUI release line's OpenSpec CLI compatibility law.
5
+ * 2. Classify current, supported non-current, unsupported, and unknown CLI versions.
6
+ * 3. Express the accepted range and the recommended line as separate public facts.
7
+ * 4. Derive per-command capabilities from the detected admitted CLI version.
8
+ * 5. Re-export the browser-safe contract schemas for renderer evidence boundaries.
9
+ *
10
+ * Original request (2026-07-15): "CLI 1.6 兼容性门禁。"
11
+ * Original request (2026-07-31): "目前这个版本先给它支持1.7.*,因为基本兼容。"
12
+ * Owner clarification (2026-07-31): "6.* 本身就是适配 1.6.*;对于 1.7 只是兼容而已。"
13
+ * Original request (2026-08-01): "v7不兼容1.6.x,明确要求必须使用 v1.7.x。"
14
+ * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
15
+ */
16
+ const OPENSPECUI_TARGET_MAJOR = 9;
17
+ const OPENSPEC_CLI_TARGET_SERIES = "1.9";
18
+ const OPENSPEC_CLI_SUPPORTED_SERIES = ["1.8", "1.9"];
19
+ const OPENSPEC_CLI_MIN_VERSION = "1.8.0";
20
+ const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.9.0";
21
+ const OPENSPEC_CLI_RECOMMENDED_MIN_VERSION = "1.9.0";
22
+ const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.10.0";
23
+ const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.8.0 <1.10.0";
24
+ const OPENSPEC_CLI_RECOMMENDED_RANGE = ">=1.9.0 <1.10.0";
25
+ const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.9.*";
26
+ /**
27
+ * Derive command capabilities from one parsed CLI version.
28
+ *
29
+ * Only an admitted version — stable inside the accepted range — can select version-specific
30
+ * capabilities. Unsupported forms (prereleases, >=1.10, below-range) and unparseable output
31
+ * keep their mismatch evidence and expose no capability, so a page-level version bypass can
32
+ * never manufacture a 1.9 command surface for a CLI the release line does not admit.
33
+ */
34
+ function deriveOpenSpecCliCapabilities(version) {
35
+ if (!isAdmittedVersion(version)) return {
36
+ schemasRootSelector: false,
37
+ archivedValidation: false
38
+ };
39
+ const onTargetSeries = isSeries(version, OPENSPEC_CLI_TARGET_SERIES);
40
+ return {
41
+ schemasRootSelector: onTargetSeries,
42
+ archivedValidation: onTargetSeries
43
+ };
44
+ }
45
+ function parseOpenSpecCliVersion(raw) {
46
+ if (!raw) return null;
47
+ const match = raw.match(/(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?/);
48
+ if (!match) return null;
49
+ return {
50
+ major: Number(match[1]),
51
+ minor: Number(match[2]),
52
+ patch: Number(match[3]),
53
+ prerelease: match[4] ?? null
54
+ };
55
+ }
56
+ function formatOpenSpecCliVersion(version) {
57
+ const stableVersion = `${version.major}.${version.minor}.${version.patch}`;
58
+ return version.prerelease ? `${stableVersion}-${version.prerelease}` : stableVersion;
59
+ }
60
+ function compareOpenSpecCliVersions(left, right) {
61
+ if (left.major !== right.major) return left.major - right.major;
62
+ if (left.minor !== right.minor) return left.minor - right.minor;
63
+ return left.patch - right.patch;
64
+ }
65
+ function isSeries(version, series) {
66
+ const [major, minor] = series.split(".").map((part) => Number(part));
67
+ return version.major === major && version.minor === minor;
68
+ }
69
+ function isStable(version) {
70
+ return version.prerelease === null;
71
+ }
72
+ /** True only for stable versions inside the accepted range (current or supported non-current). */
73
+ function isAdmittedVersion(version) {
74
+ if (!version || !isStable(version)) return false;
75
+ return isSeries(version, OPENSPEC_CLI_TARGET_SERIES) || isSupportedNonCurrentSeries(version);
76
+ }
77
+ function isSupportedNonCurrentSeries(version) {
78
+ return OPENSPEC_CLI_SUPPORTED_SERIES.filter((series) => series !== OPENSPEC_CLI_TARGET_SERIES).some((series) => isSeries(version, series));
79
+ }
80
+ function classifyOpenSpecCliVersion(rawVersion) {
81
+ const version = parseOpenSpecCliVersion(rawVersion);
82
+ if (!version) return {
83
+ rawVersion,
84
+ version: null,
85
+ status: "unknown",
86
+ supported: false,
87
+ recommended: false,
88
+ blocksCoreInteractions: true,
89
+ message: `Unable to parse OpenSpec CLI version. Accepted: ${OPENSPEC_CLI_ACCEPTED_RANGE} (recommended ${OPENSPEC_CLI_RECOMMENDED_RANGE}).`
90
+ };
91
+ if (isStable(version) && isSeries(version, OPENSPEC_CLI_TARGET_SERIES)) return {
92
+ rawVersion,
93
+ version,
94
+ status: "current",
95
+ supported: true,
96
+ recommended: true,
97
+ blocksCoreInteractions: false,
98
+ message: `OpenSpec CLI ${formatOpenSpecCliVersion(version)} matches the OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x recommended ${OPENSPEC_CLI_TARGET_SERIES} line.`
99
+ };
100
+ if (isStable(version) && isSupportedNonCurrentSeries(version)) return {
101
+ rawVersion,
102
+ version,
103
+ status: "supported",
104
+ supported: true,
105
+ recommended: false,
106
+ blocksCoreInteractions: false,
107
+ message: `OpenSpec CLI ${formatOpenSpecCliVersion(version)} is supported by OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x (${OPENSPEC_CLI_ACCEPTED_RANGE}); the recommended line is ${OPENSPEC_CLI_RECOMMENDED_RANGE}.`
108
+ };
109
+ return {
110
+ rawVersion,
111
+ version,
112
+ status: "unsupported",
113
+ supported: false,
114
+ recommended: false,
115
+ blocksCoreInteractions: true,
116
+ message: `Detected OpenSpec CLI ${formatOpenSpecCliVersion(version)}, but OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x accepts ${OPENSPEC_CLI_ACCEPTED_RANGE} and recommends ${OPENSPEC_CLI_RECOMMENDED_RANGE}; prereleases are not supported.`
117
+ };
118
+ }
119
+
120
+ //#endregion
121
+ export { OPENSPEC_CLI_RECOMMENDED_MIN_VERSION as a, OPENSPEC_CLI_SUPPORTED_SERIES as c, classifyOpenSpecCliVersion as d, compareOpenSpecCliVersions as f, parseOpenSpecCliVersion as h, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION as i, OPENSPEC_CLI_TARGET_MIN_VERSION as l, formatOpenSpecCliVersion as m, OPENSPEC_CLI_ACCEPTED_RANGE as n, OPENSPEC_CLI_RECOMMENDED_RANGE as o, deriveOpenSpecCliCapabilities as p, OPENSPEC_CLI_MIN_VERSION as r, OPENSPEC_CLI_REFERENCE_TAG_PATTERN as s, OPENSPECUI_TARGET_MAJOR as t, OPENSPEC_CLI_TARGET_SERIES as u };
@@ -1,30 +1,65 @@
1
+ import "./document-translation-CBqubtWC.mjs";
2
+ import "./sounds-BoLuHRve.mjs";
3
+ import "./notifications-B9cvPamG.mjs";
4
+ import { D as CliValidateReportSchema, J as CliCommandTransportSchema } from "./index-BGT-MVqL.mjs";
5
+
1
6
  //#region src/openspec-compat.d.ts
7
+
2
8
  /**
3
- * Orthogonal intents (updated 2026-08-01 Asia/Shanghai):
9
+ * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
4
10
  * 1. Encode the shipped OpenSpecUI release line's OpenSpec CLI compatibility law.
5
- * 2. Classify adapted, unsupported, and unknown CLI versions.
11
+ * 2. Classify current, supported non-current, unsupported, and unknown CLI versions.
12
+ * 3. Express the accepted range and the recommended line as separate public facts.
13
+ * 4. Derive per-command capabilities from the detected admitted CLI version.
14
+ * 5. Re-export the browser-safe contract schemas for renderer evidence boundaries.
6
15
  *
7
16
  * Original request (2026-07-15): "CLI 1.6 兼容性门禁。"
8
17
  * Original request (2026-07-31): "目前这个版本先给它支持1.7.*,因为基本兼容。"
9
18
  * Owner clarification (2026-07-31): "6.* 本身就是适配 1.6.*;对于 1.7 只是兼容而已。"
10
19
  * Original request (2026-08-01): "v7不兼容1.6.x,明确要求必须使用 v1.7.x。"
20
+ * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
11
21
  */
12
- declare const OPENSPECUI_TARGET_MAJOR = 7;
13
- declare const OPENSPEC_CLI_TARGET_SERIES = "1.7";
14
- declare const OPENSPEC_CLI_MIN_VERSION = "1.7.0";
15
- declare const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.7.0";
16
- declare const OPENSPEC_CLI_RECOMMENDED_MIN_VERSION = "1.7.0";
17
- declare const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.8.0";
18
- declare const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.7.0 <1.8.0";
19
- declare const OPENSPEC_CLI_RECOMMENDED_RANGE = ">=1.7.0 <1.8.0";
20
- declare const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.7.*";
22
+ declare const OPENSPECUI_TARGET_MAJOR = 9;
23
+ declare const OPENSPEC_CLI_TARGET_SERIES = "1.9";
24
+ declare const OPENSPEC_CLI_SUPPORTED_SERIES: readonly ["1.8", "1.9"];
25
+ declare const OPENSPEC_CLI_MIN_VERSION = "1.8.0";
26
+ declare const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.9.0";
27
+ declare const OPENSPEC_CLI_RECOMMENDED_MIN_VERSION = "1.9.0";
28
+ declare const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.10.0";
29
+ declare const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.8.0 <1.10.0";
30
+ declare const OPENSPEC_CLI_RECOMMENDED_RANGE = ">=1.9.0 <1.10.0";
31
+ declare const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.9.*";
32
+ /** Per-command capabilities derived from one admitted OpenSpec CLI version. */
33
+ interface OpenSpecCliCapabilities {
34
+ /** `openspec schemas --json --store <id>` exists (OpenSpec 1.9+; 1.8 rejects the selector). */
35
+ schemasRootSelector: boolean;
36
+ /** `openspec validate --archived --json` exists (OpenSpec 1.9+; 1.8 rejects the option). */
37
+ archivedValidation: boolean;
38
+ }
39
+ /**
40
+ * Derive command capabilities from one parsed CLI version.
41
+ *
42
+ * Only an admitted version — stable inside the accepted range — can select version-specific
43
+ * capabilities. Unsupported forms (prereleases, >=1.10, below-range) and unparseable output
44
+ * keep their mismatch evidence and expose no capability, so a page-level version bypass can
45
+ * never manufacture a 1.9 command surface for a CLI the release line does not admit.
46
+ */
47
+ declare function deriveOpenSpecCliCapabilities(version: OpenSpecCliVersion | null): OpenSpecCliCapabilities;
21
48
  interface OpenSpecCliVersion {
22
49
  major: number;
23
50
  minor: number;
24
51
  patch: number;
25
52
  prerelease: string | null;
26
53
  }
27
- type OpenSpecCliCompatibilityStatus = 'current' | 'unsupported' | 'unknown';
54
+ /**
55
+ * Compatibility classification for one detected CLI version.
56
+ *
57
+ * - `current`: stable version on the recommended target series.
58
+ * - `supported`: stable version inside the accepted range but not on the target series.
59
+ * - `unsupported`: stable version outside the accepted range, or any prerelease.
60
+ * - `unknown`: the version output could not be parsed.
61
+ */
62
+ type OpenSpecCliCompatibilityStatus = 'current' | 'supported' | 'unsupported' | 'unknown';
28
63
  interface OpenSpecCliCompatibility {
29
64
  rawVersion: string | undefined;
30
65
  version: OpenSpecCliVersion | null;
@@ -39,4 +74,4 @@ declare function formatOpenSpecCliVersion(version: OpenSpecCliVersion): string;
39
74
  declare function compareOpenSpecCliVersions(left: OpenSpecCliVersion, right: OpenSpecCliVersion): number;
40
75
  declare function classifyOpenSpecCliVersion(rawVersion: string | undefined): OpenSpecCliCompatibility;
41
76
  //#endregion
42
- export { OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, OpenSpecCliCompatibility, OpenSpecCliCompatibilityStatus, OpenSpecCliVersion, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
77
+ export { CliCommandTransportSchema, CliValidateReportSchema, OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_SUPPORTED_SERIES, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, OpenSpecCliCapabilities, OpenSpecCliCompatibility, OpenSpecCliCompatibilityStatus, OpenSpecCliVersion, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, deriveOpenSpecCliCapabilities, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
@@ -1,80 +1,5 @@
1
- //#region src/openspec-compat.ts
2
- /**
3
- * Orthogonal intents (updated 2026-08-01 Asia/Shanghai):
4
- * 1. Encode the shipped OpenSpecUI release line's OpenSpec CLI compatibility law.
5
- * 2. Classify adapted, unsupported, and unknown CLI versions.
6
- *
7
- * Original request (2026-07-15): "CLI 1.6 兼容性门禁。"
8
- * Original request (2026-07-31): "目前这个版本先给它支持1.7.*,因为基本兼容。"
9
- * Owner clarification (2026-07-31): "6.* 本身就是适配 1.6.*;对于 1.7 只是兼容而已。"
10
- * Original request (2026-08-01): "v7不兼容1.6.x,明确要求必须使用 v1.7.x。"
11
- */
12
- const OPENSPECUI_TARGET_MAJOR = 7;
13
- const OPENSPEC_CLI_TARGET_SERIES = "1.7";
14
- const OPENSPEC_CLI_MIN_VERSION = "1.7.0";
15
- const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.7.0";
16
- const OPENSPEC_CLI_RECOMMENDED_MIN_VERSION = "1.7.0";
17
- const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.8.0";
18
- const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.7.0 <1.8.0";
19
- const OPENSPEC_CLI_RECOMMENDED_RANGE = OPENSPEC_CLI_ACCEPTED_RANGE;
20
- const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.7.*";
21
- function parseOpenSpecCliVersion(raw) {
22
- if (!raw) return null;
23
- const match = raw.match(/(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?/);
24
- if (!match) return null;
25
- return {
26
- major: Number(match[1]),
27
- minor: Number(match[2]),
28
- patch: Number(match[3]),
29
- prerelease: match[4] ?? null
30
- };
31
- }
32
- function formatOpenSpecCliVersion(version) {
33
- const stableVersion = `${version.major}.${version.minor}.${version.patch}`;
34
- return version.prerelease ? `${stableVersion}-${version.prerelease}` : stableVersion;
35
- }
36
- function compareOpenSpecCliVersions(left, right) {
37
- if (left.major !== right.major) return left.major - right.major;
38
- if (left.minor !== right.minor) return left.minor - right.minor;
39
- return left.patch - right.patch;
40
- }
41
- function isSeries(version, series) {
42
- const [major, minor] = series.split(".").map((part) => Number(part));
43
- return version.major === major && version.minor === minor;
44
- }
45
- function isCurrentRecommended(version) {
46
- return version.prerelease === null && isSeries(version, OPENSPEC_CLI_TARGET_SERIES);
47
- }
48
- function classifyOpenSpecCliVersion(rawVersion) {
49
- const version = parseOpenSpecCliVersion(rawVersion);
50
- if (!version) return {
51
- rawVersion,
52
- version: null,
53
- status: "unknown",
54
- supported: false,
55
- recommended: false,
56
- blocksCoreInteractions: true,
57
- message: "Unable to parse OpenSpec CLI version."
58
- };
59
- if (isCurrentRecommended(version)) return {
60
- rawVersion,
61
- version,
62
- status: "current",
63
- supported: true,
64
- recommended: true,
65
- blocksCoreInteractions: false,
66
- message: `OpenSpec CLI ${formatOpenSpecCliVersion(version)} matches the OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x target line.`
67
- };
68
- return {
69
- rawVersion,
70
- version,
71
- status: "unsupported",
72
- supported: false,
73
- recommended: false,
74
- blocksCoreInteractions: true,
75
- message: `Detected OpenSpec CLI ${formatOpenSpecCliVersion(version)}, but OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x accepts ${OPENSPEC_CLI_ACCEPTED_RANGE}.`
76
- };
77
- }
1
+ import "./common-BRL_34xt.mjs";
2
+ import { b as CliValidateReportSchema, w as CliCommandTransportSchema } from "./workflow-CmQ4pFYC.mjs";
3
+ import { a as OPENSPEC_CLI_RECOMMENDED_MIN_VERSION, c as OPENSPEC_CLI_SUPPORTED_SERIES, d as classifyOpenSpecCliVersion, f as compareOpenSpecCliVersions, h as parseOpenSpecCliVersion, i as OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, l as OPENSPEC_CLI_TARGET_MIN_VERSION, m as formatOpenSpecCliVersion, n as OPENSPEC_CLI_ACCEPTED_RANGE, o as OPENSPEC_CLI_RECOMMENDED_RANGE, p as deriveOpenSpecCliCapabilities, r as OPENSPEC_CLI_MIN_VERSION, s as OPENSPEC_CLI_REFERENCE_TAG_PATTERN, t as OPENSPECUI_TARGET_MAJOR, u as OPENSPEC_CLI_TARGET_SERIES } from "./openspec-compat-B246EQNW.mjs";
78
4
 
79
- //#endregion
80
- export { OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
5
+ export { CliCommandTransportSchema, CliValidateReportSchema, OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_SUPPORTED_SERIES, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, deriveOpenSpecCliCapabilities, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
@@ -1,6 +1,6 @@
1
- import { g as Spec } from "./schemas-zh0_vzYQ.mjs";
2
- import { d as MarkdownReadingPlugin, l as MarkdownReadingDocument } from "./markdown-reading--Sr6JAl5.mjs";
3
- import { n as OpenSpecAnnotation, t as AnnotatedOpenSpecDocument } from "./openspec-annotations-BylPW5rz.mjs";
1
+ import { g as Spec } from "./schemas-Dnw_rfST.mjs";
2
+ import { d as MarkdownReadingPlugin, l as MarkdownReadingDocument } from "./markdown-reading-CsLbxubT.mjs";
3
+ import { n as OpenSpecAnnotation, t as AnnotatedOpenSpecDocument } from "./openspec-annotations-8ppmICAU.mjs";
4
4
 
5
5
  //#region src/openspec-projection.d.ts
6
6
  declare const OPEN_SPEC_SPEC_PROJECTION_ID = "openspec.projection.spec.v2";
@@ -1,6 +1,6 @@
1
- import "./schemas-zh0_vzYQ.mjs";
2
- import "./markdown-facts-DLclHfpE.mjs";
3
- import "./markdown-reading--Sr6JAl5.mjs";
4
- import "./openspec-annotations-BylPW5rz.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-_1NeavJP.mjs";
1
+ import "./schemas-Dnw_rfST.mjs";
2
+ import "./markdown-facts-CEACwik1.mjs";
3
+ import "./markdown-reading-CsLbxubT.mjs";
4
+ import "./openspec-annotations-8ppmICAU.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-vJ03fcdF.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,2 +1,2 @@
1
- import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-BD34M8QV.mjs";
1
+ import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-DvvAFlWG.mjs";
2
2
  export { VIRTUAL_PROJECT_DIRNAME, toOpsxDisplayPath };
@@ -1,3 +1,3 @@
1
- import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-ocbNzMZj.mjs";
1
+ import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-cv0NJHzW.mjs";
2
2
 
3
3
  export { VIRTUAL_PROJECT_DIRNAME, toOpsxDisplayPath };
@@ -1,5 +1,5 @@
1
- import { n as ChangeFile } from "./schemas-zh0_vzYQ.mjs";
2
- import { T as SchemaDetail } from "./opsx-types-Ch6juiWL.mjs";
1
+ import { n as ChangeFile } from "./schemas-Dnw_rfST.mjs";
2
+ import { T as SchemaDetail } from "./opsx-types-C_4QxcU6.mjs";
3
3
 
4
4
  //#region src/opsx-entity.d.ts
5
5
  type OpsxEntityStage = 'change' | 'archive';
@@ -1,8 +1,8 @@
1
- import "./document-translation-BNbM3fEj.mjs";
2
- import "./sounds-Bb_3aeJJ.mjs";
3
- import "./notifications-BIs3J3BY.mjs";
4
- import "./index-CYFOH_f8.mjs";
5
- import "./schemas-zh0_vzYQ.mjs";
6
- import "./opsx-types-Ch6juiWL.mjs";
7
- 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-DZ7onDWC.mjs";
1
+ import "./document-translation-CBqubtWC.mjs";
2
+ import "./sounds-BoLuHRve.mjs";
3
+ import "./notifications-B9cvPamG.mjs";
4
+ import "./index-BGT-MVqL.mjs";
5
+ import "./schemas-Dnw_rfST.mjs";
6
+ import "./opsx-types-C_4QxcU6.mjs";
7
+ 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-BFPRTIWN.mjs";
8
8
  export { OpsxEntityArtifact, OpsxEntityArtifactFile, OpsxEntityDetail, OpsxEntityDiagnostic, OpsxEntityFile, OpsxEntityReadOptions, OpsxEntityStage, buildOpsxEntityDetail, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, isOpsxGlobPattern, normalizeOpsxEntityPath, opsxGlobToRegex, opsxPathMatchesPattern, parseOpsxEntityMetadata };
@@ -1,5 +1,5 @@
1
- import { T as SchemaDetail } from "./opsx-types-Ch6juiWL.mjs";
2
- import { i as OpsxEntityDiagnostic } from "./opsx-entity-DZ7onDWC.mjs";
1
+ import { T as SchemaDetail } from "./opsx-types-C_4QxcU6.mjs";
2
+ import { i as OpsxEntityDiagnostic } from "./opsx-entity-BFPRTIWN.mjs";
3
3
 
4
4
  //#region src/opsx-schema-detail.d.ts
5
5
  interface ParsedOpsxSchemaDetail {
@@ -1,9 +1,9 @@
1
- import "./document-translation-BNbM3fEj.mjs";
2
- import "./sounds-Bb_3aeJJ.mjs";
3
- import "./notifications-BIs3J3BY.mjs";
4
- import "./index-CYFOH_f8.mjs";
5
- import "./schemas-zh0_vzYQ.mjs";
6
- import "./opsx-types-Ch6juiWL.mjs";
7
- import "./opsx-entity-DZ7onDWC.mjs";
8
- import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-D2RnlxSg.mjs";
1
+ import "./document-translation-CBqubtWC.mjs";
2
+ import "./sounds-BoLuHRve.mjs";
3
+ import "./notifications-B9cvPamG.mjs";
4
+ import "./index-BGT-MVqL.mjs";
5
+ import "./schemas-Dnw_rfST.mjs";
6
+ import "./opsx-types-C_4QxcU6.mjs";
7
+ import "./opsx-entity-BFPRTIWN.mjs";
8
+ import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-D1129ezo.mjs";
9
9
  export { ParsedOpsxSchemaDetail, parseOpsxSchemaDetail };