@openspecui/core 6.0.0-beta.0 → 6.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 (48) hide show
  1. package/dist/{cli-projection-DxnVGm2B.d.mts → cli-projection-D97_RM6V.d.mts} +9 -9
  2. package/dist/cli-projection.d.mts +5 -5
  3. package/dist/{command-result-fkH3Ekdz.d.mts → command-result-CfME21jF.d.mts} +66 -66
  4. package/dist/dashboard-display.d.mts +22 -1
  5. package/dist/dashboard-display.mjs +42 -1
  6. package/dist/{dashboard-summary-transport-D2VBAIxg.mjs → dashboard-summary-transport-CYBuU4iT.mjs} +14 -0
  7. package/dist/{dashboard-summary-transport-CQ4is5_e.d.mts → dashboard-summary-transport-CwQpcPXI.d.mts} +5687 -4351
  8. package/dist/dashboard-summary-transport.d.mts +17 -17
  9. package/dist/dashboard-summary-transport.mjs +1 -1
  10. package/dist/{document-translation-D50BnvVh.d.mts → document-translation-D9bhVMu9.d.mts} +102 -102
  11. package/dist/document-translation.d.mts +1 -1
  12. package/dist/{hosted-app-BPU4OR41.mjs → hosted-app-Y7yqlPBG.mjs} +1 -1
  13. package/dist/hosted-app.d.mts +17 -17
  14. package/dist/hosted-app.mjs +2 -2
  15. package/dist/{hosted-contract-CcRnb51e.mjs → hosted-contract-BuhF_tuQ.mjs} +5 -2
  16. package/dist/hosted-contract.d.mts +17 -17
  17. package/dist/hosted-contract.mjs +1 -1
  18. package/dist/index.d.mts +17 -17
  19. package/dist/index.mjs +7 -4
  20. package/dist/{local-download-profiles-BL_rtlVM.d.mts → local-download-profiles-D0EDIDY3.d.mts} +1 -1
  21. package/dist/local-download-profiles.d.mts +2 -2
  22. package/dist/{notifications-CgJlLgLO.d.mts → notifications-APukMHjf.d.mts} +4 -4
  23. package/dist/notifications.d.mts +2 -2
  24. package/dist/{openspec-projection-RohNZI4p.d.mts → openspec-projection-CeRyRol_.d.mts} +1 -1
  25. package/dist/openspec-projection.d.mts +2 -2
  26. package/dist/{opsx-entity-D7kDQsze.d.mts → opsx-entity-O_EFhltR.d.mts} +2 -2
  27. package/dist/opsx-entity.d.mts +7 -7
  28. package/dist/{opsx-schema-detail-BxDXEwDY.d.mts → opsx-schema-detail-BTksrDp1.d.mts} +2 -2
  29. package/dist/opsx-schema-detail.d.mts +8 -8
  30. package/dist/{opsx-types-BJ8AjhrS.d.mts → opsx-types-BYSPqX85.d.mts} +288 -288
  31. package/dist/planning-cli-projection.d.mts +17 -17
  32. package/dist/{schemas-DS-JqAJ2.d.mts → schemas-BLWVYKEk.d.mts} +218 -218
  33. package/dist/{sounds-qhRgCy0F.d.mts → sounds-BLspIXhv.d.mts} +9 -9
  34. package/dist/sounds.d.mts +1 -1
  35. package/dist/spec-catalog.d.mts +17 -17
  36. package/dist/{store-mutation-protocol-5tfs-RmD.d.mts → store-mutation-protocol-B6AF69kW.d.mts} +48 -48
  37. package/dist/store-mutation-protocol.d.mts +1 -1
  38. package/dist/{store-types-b554wAQJ.d.mts → store-types-pd0g35dI.d.mts} +1 -1
  39. package/dist/store-types.d.mts +5 -5
  40. package/dist/task-progress.d.mts +6 -6
  41. package/dist/{terminal-audio-tXDm_EDe.d.mts → terminal-audio-DuJNjIJ3.d.mts} +2 -2
  42. package/dist/terminal-audio.d.mts +2 -2
  43. package/dist/terminal-control.d.mts +2 -2
  44. package/dist/{terminal-invocation-BOvxThym.d.mts → terminal-invocation-C4EE7MeN.d.mts} +58 -58
  45. package/dist/terminal-invocation.d.mts +1 -1
  46. package/dist/{translator-NKv1wo3o.d.mts → translator-BgYwP0UT.d.mts} +170 -170
  47. package/dist/translator.d.mts +1 -1
  48. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { n as CliJsonValue, t as CliCommandResult } from "./command-result-fkH3Ekdz.mjs";
1
+ import { n as CliJsonValue, t as CliCommandResult } from "./command-result-CfME21jF.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/cli-projection.d.ts
@@ -215,21 +215,21 @@ declare function createCliProjectionStateSchema<TOutput, TInput>(dataSchema: z.Z
215
215
  workGeneration: z.ZodNumber;
216
216
  invalidationCause: z.ZodEnum<["initial", "dependency", "explicit-refresh", "subscriber-resume"]>;
217
217
  }, "strip", z.ZodTypeAny, {
218
+ identity: string;
218
219
  error: null;
219
220
  state: "loading";
220
221
  data: null;
221
222
  freshness: null;
222
223
  snapshotGeneration: null;
223
- identity: string;
224
224
  workGeneration: number;
225
225
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
226
226
  }, {
227
+ identity: string;
227
228
  error: null;
228
229
  state: "loading";
229
230
  data: null;
230
231
  freshness: null;
231
232
  snapshotGeneration: null;
232
- identity: string;
233
233
  workGeneration: number;
234
234
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
235
235
  }>, z.ZodObject<{
@@ -390,6 +390,7 @@ declare function createCliProjectionStateSchema<TOutput, TInput>(dataSchema: z.Z
390
390
  workGeneration: z.ZodNumber;
391
391
  invalidationCause: z.ZodEnum<["initial", "dependency", "explicit-refresh", "subscriber-resume"]>;
392
392
  }, "strip", z.ZodTypeAny, {
393
+ identity: string;
393
394
  error: {
394
395
  message: string;
395
396
  name: string;
@@ -413,10 +414,10 @@ declare function createCliProjectionStateSchema<TOutput, TInput>(dataSchema: z.Z
413
414
  data: null;
414
415
  freshness: null;
415
416
  snapshotGeneration: null;
416
- identity: string;
417
417
  workGeneration: number;
418
418
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
419
419
  }, {
420
+ identity: string;
420
421
  error: {
421
422
  message: string;
422
423
  name: string;
@@ -440,7 +441,6 @@ declare function createCliProjectionStateSchema<TOutput, TInput>(dataSchema: z.Z
440
441
  data: null;
441
442
  freshness: null;
442
443
  snapshotGeneration: null;
443
- identity: string;
444
444
  workGeneration: number;
445
445
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
446
446
  }>, z.ZodObject<{
@@ -761,15 +761,15 @@ declare const CliProjectionNoticeSchema: z.ZodObject<{
761
761
  state: z.ZodEnum<["loading", "ready", "revalidating", "error", "refresh-error"]>;
762
762
  invalidationCause: z.ZodEnum<["initial", "dependency", "explicit-refresh", "subscriber-resume"]>;
763
763
  }, "strip", z.ZodTypeAny, {
764
- state: "error" | "loading" | "ready" | "revalidating" | "refresh-error";
765
- snapshotGeneration: number | null;
766
764
  identity: string;
765
+ state: "ready" | "error" | "loading" | "revalidating" | "refresh-error";
766
+ snapshotGeneration: number | null;
767
767
  workGeneration: number;
768
768
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
769
769
  }, {
770
- state: "error" | "loading" | "ready" | "revalidating" | "refresh-error";
771
- snapshotGeneration: number | null;
772
770
  identity: string;
771
+ state: "ready" | "error" | "loading" | "revalidating" | "refresh-error";
772
+ snapshotGeneration: number | null;
773
773
  workGeneration: number;
774
774
  invalidationCause: "initial" | "dependency" | "explicit-refresh" | "subscriber-resume";
775
775
  }>;
@@ -1,6 +1,6 @@
1
- import "./command-result-fkH3Ekdz.mjs";
2
- import "./document-translation-D50BnvVh.mjs";
3
- import "./sounds-qhRgCy0F.mjs";
4
- import "./notifications-CgJlLgLO.mjs";
5
- import { _ as toCliProjectionCommandEvidence, a as CliProjectionFailure, c as CliProjectionInvalidationCauseSchema, d as CliProjectionState, f as CliProjectionStateName, g as createCliProjectionStateSchema, h as cliProjectionStates, i as CliProjectionCommandEvidenceSchema, l as CliProjectionNotice, m as cliProjectionInvalidationCauses, n as CliProjectionCommandError, o as CliProjectionFailureSchema, p as CliProjectionStateNameSchema, r as CliProjectionCommandEvidence, s as CliProjectionInvalidationCause, t as CliJsonValueSchema, u as CliProjectionNoticeSchema, v as toCliProjectionFailure, y as toCliProjectionNotice } from "./cli-projection-DxnVGm2B.mjs";
1
+ import "./command-result-CfME21jF.mjs";
2
+ import "./document-translation-D9bhVMu9.mjs";
3
+ import "./sounds-BLspIXhv.mjs";
4
+ import "./notifications-APukMHjf.mjs";
5
+ import { _ as toCliProjectionCommandEvidence, a as CliProjectionFailure, c as CliProjectionInvalidationCauseSchema, d as CliProjectionState, f as CliProjectionStateName, g as createCliProjectionStateSchema, h as cliProjectionStates, i as CliProjectionCommandEvidenceSchema, l as CliProjectionNotice, m as cliProjectionInvalidationCauses, n as CliProjectionCommandError, o as CliProjectionFailureSchema, p as CliProjectionStateNameSchema, r as CliProjectionCommandEvidence, s as CliProjectionInvalidationCause, t as CliJsonValueSchema, u as CliProjectionNoticeSchema, v as toCliProjectionFailure, y as toCliProjectionNotice } from "./cli-projection-D97_RM6V.mjs";
6
6
  export { CliJsonValueSchema, CliProjectionCommandError, CliProjectionCommandEvidence, CliProjectionCommandEvidenceSchema, CliProjectionFailure, CliProjectionFailureSchema, CliProjectionInvalidationCause, CliProjectionInvalidationCauseSchema, CliProjectionNotice, CliProjectionNoticeSchema, CliProjectionState, CliProjectionStateName, CliProjectionStateNameSchema, cliProjectionInvalidationCauses, cliProjectionStates, createCliProjectionStateSchema, toCliProjectionCommandEvidence, toCliProjectionFailure, toCliProjectionNotice };
@@ -1,5 +1,5 @@
1
- import { o as DocumentTranslationConfigUpdate } from "./document-translation-D50BnvVh.mjs";
2
- import { p as NotificationSettings } from "./notifications-CgJlLgLO.mjs";
1
+ import { o as DocumentTranslationConfigUpdate } from "./document-translation-D9bhVMu9.mjs";
2
+ import { p as NotificationSettings } from "./notifications-APukMHjf.mjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/cli-contracts/common.d.ts
@@ -6255,12 +6255,12 @@ declare const CliApplyInstructionsSchema: z.ZodUnion<[z.ZodObject<{
6255
6255
  remaining: z.ZodNumber;
6256
6256
  }, "strip", z.ZodTypeAny, {
6257
6257
  total: number;
6258
- remaining: number;
6259
6258
  complete: number;
6259
+ remaining: number;
6260
6260
  }, {
6261
6261
  total: number;
6262
- remaining: number;
6263
6262
  complete: number;
6263
+ remaining: number;
6264
6264
  }>;
6265
6265
  tasks: z.ZodArray<z.ZodObject<{
6266
6266
  id: z.ZodString;
@@ -6405,12 +6405,12 @@ declare const CliApplyInstructionsSchema: z.ZodUnion<[z.ZodObject<{
6405
6405
  remaining: z.ZodNumber;
6406
6406
  }, "strip", z.ZodTypeAny, {
6407
6407
  total: number;
6408
- remaining: number;
6409
6408
  complete: number;
6409
+ remaining: number;
6410
6410
  }, {
6411
6411
  total: number;
6412
- remaining: number;
6413
6412
  complete: number;
6413
+ remaining: number;
6414
6414
  }>;
6415
6415
  tasks: z.ZodArray<z.ZodObject<{
6416
6416
  id: z.ZodString;
@@ -6555,12 +6555,12 @@ declare const CliApplyInstructionsSchema: z.ZodUnion<[z.ZodObject<{
6555
6555
  remaining: z.ZodNumber;
6556
6556
  }, "strip", z.ZodTypeAny, {
6557
6557
  total: number;
6558
- remaining: number;
6559
6558
  complete: number;
6559
+ remaining: number;
6560
6560
  }, {
6561
6561
  total: number;
6562
- remaining: number;
6563
6562
  complete: number;
6563
+ remaining: number;
6564
6564
  }>;
6565
6565
  tasks: z.ZodArray<z.ZodObject<{
6566
6566
  id: z.ZodString;
@@ -7818,7 +7818,7 @@ declare const TerminalConfigSchema: z.ZodObject<{
7818
7818
  lightTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
7819
7819
  darkTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
7820
7820
  rendererEngine: z.ZodDefault<z.ZodEnum<["xterm", "ghostty"]>>;
7821
- bellSound: 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>>;
7821
+ bellSound: 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>>;
7822
7822
  bellVolume: z.ZodDefault<z.ZodNumber>;
7823
7823
  }, "strip", z.ZodTypeAny, {
7824
7824
  fontSize: number;
@@ -7830,7 +7830,7 @@ declare const TerminalConfigSchema: z.ZodObject<{
7830
7830
  lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
7831
7831
  darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
7832
7832
  rendererEngine: "xterm" | "ghostty";
7833
- bellSound: "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}`;
7833
+ bellSound: "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}`;
7834
7834
  bellVolume: number;
7835
7835
  }, {
7836
7836
  fontSize?: number | undefined;
@@ -7921,7 +7921,7 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
7921
7921
  lightTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
7922
7922
  darkTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
7923
7923
  rendererEngine: z.ZodDefault<z.ZodEnum<["xterm", "ghostty"]>>;
7924
- bellSound: 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>>;
7924
+ bellSound: 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>>;
7925
7925
  bellVolume: z.ZodDefault<z.ZodNumber>;
7926
7926
  }, "strip", z.ZodTypeAny, {
7927
7927
  fontSize: number;
@@ -7933,7 +7933,7 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
7933
7933
  lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
7934
7934
  darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
7935
7935
  rendererEngine: "xterm" | "ghostty";
7936
- bellSound: "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}`;
7936
+ bellSound: "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}`;
7937
7937
  bellVolume: number;
7938
7938
  }, {
7939
7939
  fontSize?: number | undefined;
@@ -7966,11 +7966,11 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
7966
7966
  }>>;
7967
7967
  /** Notification preferences */
7968
7968
  notifications: z.ZodDefault<z.ZodObject<{
7969
- 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>>;
7969
+ 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>>;
7970
7970
  volume: z.ZodDefault<z.ZodNumber>;
7971
7971
  systemNotificationsEnabled: z.ZodDefault<z.ZodBoolean>;
7972
7972
  }, "strip", z.ZodTypeAny, {
7973
- 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}`;
7973
+ 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}`;
7974
7974
  volume: number;
7975
7975
  systemNotificationsEnabled: boolean;
7976
7976
  }, {
@@ -7990,31 +7990,31 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
7990
7990
  model: z.ZodOptional<z.ZodString>;
7991
7991
  selectedGroupId: z.ZodOptional<z.ZodString>;
7992
7992
  }, "strip", z.ZodTypeAny, {
7993
- model?: string | undefined;
7994
7993
  selectedGroupId?: string | undefined;
7995
- }, {
7996
7994
  model?: string | undefined;
7995
+ }, {
7997
7996
  selectedGroupId?: string | undefined;
7997
+ model?: string | undefined;
7998
7998
  }>>;
7999
7999
  localCt2: z.ZodDefault<z.ZodObject<{
8000
8000
  model: z.ZodOptional<z.ZodString>;
8001
8001
  selectedGroupId: z.ZodOptional<z.ZodString>;
8002
8002
  }, "strip", z.ZodTypeAny, {
8003
- model?: string | undefined;
8004
8003
  selectedGroupId?: string | undefined;
8005
- }, {
8006
8004
  model?: string | undefined;
8005
+ }, {
8007
8006
  selectedGroupId?: string | undefined;
8007
+ model?: string | undefined;
8008
8008
  }>>;
8009
8009
  localLlama: z.ZodDefault<z.ZodObject<{
8010
8010
  model: z.ZodOptional<z.ZodString>;
8011
8011
  selectedGroupId: z.ZodOptional<z.ZodString>;
8012
8012
  }, "strip", z.ZodTypeAny, {
8013
- model?: string | undefined;
8014
8013
  selectedGroupId?: string | undefined;
8015
- }, {
8016
8014
  model?: string | undefined;
8015
+ }, {
8017
8016
  selectedGroupId?: string | undefined;
8017
+ model?: string | undefined;
8018
8018
  }>>;
8019
8019
  openai: z.ZodDefault<z.ZodObject<{
8020
8020
  model: z.ZodOptional<z.ZodString>;
@@ -8025,88 +8025,85 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
8025
8025
  }>>;
8026
8026
  }, "strip", z.ZodTypeAny, {
8027
8027
  local: {
8028
- model?: string | undefined;
8029
8028
  selectedGroupId?: string | undefined;
8029
+ model?: string | undefined;
8030
8030
  };
8031
- localCt2: {
8031
+ openai: {
8032
8032
  model?: string | undefined;
8033
+ };
8034
+ localCt2: {
8033
8035
  selectedGroupId?: string | undefined;
8036
+ model?: string | undefined;
8034
8037
  };
8035
8038
  localLlama: {
8036
- model?: string | undefined;
8037
8039
  selectedGroupId?: string | undefined;
8038
- };
8039
- openai: {
8040
8040
  model?: string | undefined;
8041
8041
  };
8042
8042
  }, {
8043
8043
  local?: {
8044
- model?: string | undefined;
8045
8044
  selectedGroupId?: string | undefined;
8045
+ model?: string | undefined;
8046
8046
  } | undefined;
8047
- localCt2?: {
8047
+ openai?: {
8048
8048
  model?: string | undefined;
8049
+ } | undefined;
8050
+ localCt2?: {
8049
8051
  selectedGroupId?: string | undefined;
8052
+ model?: string | undefined;
8050
8053
  } | undefined;
8051
8054
  localLlama?: {
8052
- model?: string | undefined;
8053
8055
  selectedGroupId?: string | undefined;
8054
- } | undefined;
8055
- openai?: {
8056
8056
  model?: string | undefined;
8057
8057
  } | undefined;
8058
8058
  }>>;
8059
8059
  }, "strip", z.ZodTypeAny, {
8060
- enabled: boolean;
8060
+ engineId: "browser" | "local" | "local-ct2" | "local-llama" | "openai";
8061
8061
  targetLanguage: string;
8062
+ enabled: boolean;
8062
8063
  displayMode: "direct" | "bilingual";
8063
8064
  cacheEnabled: boolean;
8064
- engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
8065
8065
  engines: {
8066
8066
  local: {
8067
- model?: string | undefined;
8068
8067
  selectedGroupId?: string | undefined;
8068
+ model?: string | undefined;
8069
8069
  };
8070
- localCt2: {
8070
+ openai: {
8071
8071
  model?: string | undefined;
8072
+ };
8073
+ localCt2: {
8072
8074
  selectedGroupId?: string | undefined;
8075
+ model?: string | undefined;
8073
8076
  };
8074
8077
  localLlama: {
8075
- model?: string | undefined;
8076
8078
  selectedGroupId?: string | undefined;
8077
- };
8078
- openai: {
8079
8079
  model?: string | undefined;
8080
8080
  };
8081
8081
  };
8082
8082
  }, {
8083
- enabled?: boolean | undefined;
8083
+ engineId?: "browser" | "local" | "local-ct2" | "local-llama" | "openai" | undefined;
8084
8084
  targetLanguage?: string | undefined;
8085
+ enabled?: boolean | undefined;
8085
8086
  displayMode?: "direct" | "bilingual" | undefined;
8086
8087
  cacheEnabled?: boolean | undefined;
8087
- engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
8088
8088
  engines?: {
8089
8089
  local?: {
8090
- model?: string | undefined;
8091
8090
  selectedGroupId?: string | undefined;
8091
+ model?: string | undefined;
8092
8092
  } | undefined;
8093
- localCt2?: {
8093
+ openai?: {
8094
8094
  model?: string | undefined;
8095
+ } | undefined;
8096
+ localCt2?: {
8095
8097
  selectedGroupId?: string | undefined;
8098
+ model?: string | undefined;
8096
8099
  } | undefined;
8097
8100
  localLlama?: {
8098
- model?: string | undefined;
8099
8101
  selectedGroupId?: string | undefined;
8100
- } | undefined;
8101
- openai?: {
8102
8102
  model?: string | undefined;
8103
8103
  } | undefined;
8104
8104
  } | undefined;
8105
8105
  }>>;
8106
8106
  }, "strip", z.ZodTypeAny, {
8107
- git: {
8108
- diffEagerLineBudget: number;
8109
- };
8110
8107
  cli: {
8111
8108
  command?: string | undefined;
8112
8109
  args?: string[] | undefined;
@@ -8121,9 +8118,12 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
8121
8118
  lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
8122
8119
  darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
8123
8120
  rendererEngine: "xterm" | "ghostty";
8124
- bellSound: "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}`;
8121
+ bellSound: "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}`;
8125
8122
  bellVolume: number;
8126
8123
  };
8124
+ git: {
8125
+ diffEagerLineBudget: number;
8126
+ };
8127
8127
  theme: "light" | "dark" | "system";
8128
8128
  codeEditor: {
8129
8129
  theme: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox";
@@ -8136,38 +8136,35 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
8136
8136
  trendPointLimit: number;
8137
8137
  };
8138
8138
  notifications: {
8139
- 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}`;
8139
+ 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}`;
8140
8140
  volume: number;
8141
8141
  systemNotificationsEnabled: boolean;
8142
8142
  };
8143
8143
  translation: {
8144
- enabled: boolean;
8144
+ engineId: "browser" | "local" | "local-ct2" | "local-llama" | "openai";
8145
8145
  targetLanguage: string;
8146
+ enabled: boolean;
8146
8147
  displayMode: "direct" | "bilingual";
8147
8148
  cacheEnabled: boolean;
8148
- engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
8149
8149
  engines: {
8150
8150
  local: {
8151
- model?: string | undefined;
8152
8151
  selectedGroupId?: string | undefined;
8152
+ model?: string | undefined;
8153
8153
  };
8154
- localCt2: {
8154
+ openai: {
8155
8155
  model?: string | undefined;
8156
+ };
8157
+ localCt2: {
8156
8158
  selectedGroupId?: string | undefined;
8159
+ model?: string | undefined;
8157
8160
  };
8158
8161
  localLlama: {
8159
- model?: string | undefined;
8160
8162
  selectedGroupId?: string | undefined;
8161
- };
8162
- openai: {
8163
8163
  model?: string | undefined;
8164
8164
  };
8165
8165
  };
8166
8166
  };
8167
8167
  }, {
8168
- git?: {
8169
- diffEagerLineBudget?: number | undefined;
8170
- } | undefined;
8171
8168
  cli?: {
8172
8169
  command?: string | undefined;
8173
8170
  args?: string[] | undefined;
@@ -8185,6 +8182,9 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
8185
8182
  bellSound?: unknown;
8186
8183
  bellVolume?: number | undefined;
8187
8184
  } | undefined;
8185
+ git?: {
8186
+ diffEagerLineBudget?: number | undefined;
8187
+ } | undefined;
8188
8188
  theme?: "light" | "dark" | "system" | undefined;
8189
8189
  codeEditor?: {
8190
8190
  theme?: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox" | undefined;
@@ -8202,25 +8202,25 @@ declare const OpenSpecUIConfigSchema: z.ZodObject<{
8202
8202
  systemNotificationsEnabled?: boolean | undefined;
8203
8203
  } | undefined;
8204
8204
  translation?: {
8205
- enabled?: boolean | undefined;
8205
+ engineId?: "browser" | "local" | "local-ct2" | "local-llama" | "openai" | undefined;
8206
8206
  targetLanguage?: string | undefined;
8207
+ enabled?: boolean | undefined;
8207
8208
  displayMode?: "direct" | "bilingual" | undefined;
8208
8209
  cacheEnabled?: boolean | undefined;
8209
- engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
8210
8210
  engines?: {
8211
8211
  local?: {
8212
- model?: string | undefined;
8213
8212
  selectedGroupId?: string | undefined;
8213
+ model?: string | undefined;
8214
8214
  } | undefined;
8215
- localCt2?: {
8215
+ openai?: {
8216
8216
  model?: string | undefined;
8217
+ } | undefined;
8218
+ localCt2?: {
8217
8219
  selectedGroupId?: string | undefined;
8220
+ model?: string | undefined;
8218
8221
  } | undefined;
8219
8222
  localLlama?: {
8220
- model?: string | undefined;
8221
8223
  selectedGroupId?: string | undefined;
8222
- } | undefined;
8223
- openai?: {
8224
8224
  model?: string | undefined;
8225
8225
  } | undefined;
8226
8226
  } | undefined;
@@ -1,5 +1,24 @@
1
1
  //#region src/dashboard-display.d.ts
2
+ /**
3
+ * Orthogonal intents (updated 2026-07-28 Asia/Shanghai):
4
+ * 1. Select bounded Dashboard rows with deterministic ordering.
5
+ * 2. Resolve archive dates identically across Server and browser/static consumers.
6
+ * 3. Apply the objective bounded archive-range policy without owning UI state.
7
+ *
8
+ * Original request (2026-07-28): replace Dashboard Workflow Progress with ReadonlyKanban.
9
+ */
2
10
  declare const DASHBOARD_RECENT_LIST_LIMIT = 10;
11
+ type DashboardArchiveRange = '7d' | '30d' | '90d' | 'all';
12
+ interface DashboardArchiveTimeSource {
13
+ id: string;
14
+ updatedAt: number;
15
+ }
16
+ /** Parse a valid UTC calendar date from an archive id prefix. */
17
+ declare function parseDatedArchiveIdTimestamp(id: string): number | null;
18
+ /** Resolve the archive timestamp from its dated id, then its physical update time. */
19
+ declare function resolveArchiveTimestamp(archive: DashboardArchiveTimeSource): number;
20
+ /** Test whether an archive belongs to a user-selected trailing range. */
21
+ declare function isArchiveInRange(archive: DashboardArchiveTimeSource, range: DashboardArchiveRange, now?: number): boolean;
3
22
  interface DashboardRecentListItem {
4
23
  id: string;
5
24
  updatedAt: number;
@@ -7,5 +26,7 @@ interface DashboardRecentListItem {
7
26
  declare function compareDashboardItemsByUpdatedAt<T extends DashboardRecentListItem>(left: T, right: T): number;
8
27
  declare function sortDashboardItemsByUpdatedAt<T extends DashboardRecentListItem>(items: readonly T[]): T[];
9
28
  declare function selectRecentDashboardItems<T extends DashboardRecentListItem>(items: readonly T[], limit?: number): T[];
29
+ /** Select recent archives by objective archive time rather than incidental directory mtime. */
30
+ declare function selectRecentDashboardArchives<T extends DashboardArchiveTimeSource>(items: readonly T[], limit?: number): T[];
10
31
  //#endregion
11
- export { DASHBOARD_RECENT_LIST_LIMIT, DashboardRecentListItem, compareDashboardItemsByUpdatedAt, selectRecentDashboardItems, sortDashboardItemsByUpdatedAt };
32
+ export { DASHBOARD_RECENT_LIST_LIMIT, DashboardArchiveRange, DashboardArchiveTimeSource, DashboardRecentListItem, compareDashboardItemsByUpdatedAt, isArchiveInRange, parseDatedArchiveIdTimestamp, resolveArchiveTimestamp, selectRecentDashboardArchives, selectRecentDashboardItems, sortDashboardItemsByUpdatedAt };
@@ -1,5 +1,42 @@
1
1
  //#region src/dashboard-display.ts
2
+ /**
3
+ * Orthogonal intents (updated 2026-07-28 Asia/Shanghai):
4
+ * 1. Select bounded Dashboard rows with deterministic ordering.
5
+ * 2. Resolve archive dates identically across Server and browser/static consumers.
6
+ * 3. Apply the objective bounded archive-range policy without owning UI state.
7
+ *
8
+ * Original request (2026-07-28): replace Dashboard Workflow Progress with ReadonlyKanban.
9
+ */
2
10
  const DASHBOARD_RECENT_LIST_LIMIT = 10;
11
+ const ARCHIVE_RANGE_DAYS = {
12
+ "7d": 7,
13
+ "30d": 30,
14
+ "90d": 90,
15
+ all: null
16
+ };
17
+ const ARCHIVE_DATE_PREFIX = /^(\d{4})-(\d{2})-(\d{2})(?:-|$)/;
18
+ /** Parse a valid UTC calendar date from an archive id prefix. */
19
+ function parseDatedArchiveIdTimestamp(id) {
20
+ const match = ARCHIVE_DATE_PREFIX.exec(id);
21
+ if (!match) return null;
22
+ const year = Number(match[1]);
23
+ const month = Number(match[2]);
24
+ const day = Number(match[3]);
25
+ const timestamp = Date.UTC(year, month - 1, day);
26
+ const parsed = new Date(timestamp);
27
+ if (!Number.isFinite(timestamp) || parsed.getUTCFullYear() !== year || parsed.getUTCMonth() !== month - 1 || parsed.getUTCDate() !== day) return null;
28
+ return timestamp;
29
+ }
30
+ /** Resolve the archive timestamp from its dated id, then its physical update time. */
31
+ function resolveArchiveTimestamp(archive) {
32
+ return parseDatedArchiveIdTimestamp(archive.id) ?? archive.updatedAt;
33
+ }
34
+ /** Test whether an archive belongs to a user-selected trailing range. */
35
+ function isArchiveInRange(archive, range, now = Date.now()) {
36
+ const days = ARCHIVE_RANGE_DAYS[range];
37
+ if (days === null) return true;
38
+ return resolveArchiveTimestamp(archive) >= now - days * 24 * 60 * 60 * 1e3;
39
+ }
3
40
  function compareDashboardItemsByUpdatedAt(left, right) {
4
41
  return right.updatedAt - left.updatedAt || left.id.localeCompare(right.id);
5
42
  }
@@ -9,6 +46,10 @@ function sortDashboardItemsByUpdatedAt(items) {
9
46
  function selectRecentDashboardItems(items, limit = DASHBOARD_RECENT_LIST_LIMIT) {
10
47
  return sortDashboardItemsByUpdatedAt(items).slice(0, Math.max(0, Math.trunc(limit)));
11
48
  }
49
+ /** Select recent archives by objective archive time rather than incidental directory mtime. */
50
+ function selectRecentDashboardArchives(items, limit = DASHBOARD_RECENT_LIST_LIMIT) {
51
+ return [...items].sort((left, right) => resolveArchiveTimestamp(right) - resolveArchiveTimestamp(left) || left.id.localeCompare(right.id)).slice(0, Math.max(0, Math.trunc(limit)));
52
+ }
12
53
 
13
54
  //#endregion
14
- export { DASHBOARD_RECENT_LIST_LIMIT, compareDashboardItemsByUpdatedAt, selectRecentDashboardItems, sortDashboardItemsByUpdatedAt };
55
+ export { DASHBOARD_RECENT_LIST_LIMIT, compareDashboardItemsByUpdatedAt, isArchiveInRange, parseDatedArchiveIdTimestamp, resolveArchiveTimestamp, selectRecentDashboardArchives, selectRecentDashboardItems, sortDashboardItemsByUpdatedAt };
@@ -8,10 +8,12 @@ import { z } from "zod";
8
8
  * 1. Define Dashboard metrics, trends, planning projections, and Git snapshot contracts.
9
9
  * 2. Preserve backend-issued Code binding provenance on live Git snapshots.
10
10
  * 3. Split independently refreshable Summary and Trends facts from the aggregate Dashboard compatibility view.
11
+ * 4. Carry objective Kanban phase counts and bounded archive summaries without workflow inference.
11
12
  *
12
13
  * Original request (2026-07-19): "代码已经提交,开始review。如果有问题,那么可更新change。"
13
14
  * Derived requirement (2026-07-19): Checkpoint 6.11 binds Dashboard snapshots to their Code token.
14
15
  * Original request (2026-07-23): "现在页面数据的加载数据非常慢(比如dashboard页面、changes页面都要等待非常久,页面刷新后,似乎后台没有缓存一样,也要加载很久。"
16
+ * Original request (2026-07-28): replace Dashboard Workflow Progress with ReadonlyKanban.
15
17
  */
16
18
  const DASHBOARD_METRIC_KEYS = [
17
19
  "specifications",
@@ -127,6 +129,18 @@ const DashboardSummaryProjectionSchema = z.object({
127
129
  name: z.string(),
128
130
  trackedTaskProgress: TrackedTaskProgressSchema,
129
131
  updatedAt: z.number()
132
+ })),
133
+ trackedTaskPhaseCounts: z.object({
134
+ "no-tasks": z.number(),
135
+ "in-progress": z.number(),
136
+ complete: z.number()
137
+ }),
138
+ recentArchives: z.array(z.object({
139
+ id: z.string(),
140
+ name: z.string(),
141
+ trackedTaskProgress: TrackedTaskProgressSchema,
142
+ archivedAt: z.number(),
143
+ updatedAt: z.number()
130
144
  }))
131
145
  });
132
146
  const DashboardTrendsProjectionSchema = z.object({