@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.
- package/dist/{cli-projection-DxnVGm2B.d.mts → cli-projection-D97_RM6V.d.mts} +9 -9
- package/dist/cli-projection.d.mts +5 -5
- package/dist/{command-result-fkH3Ekdz.d.mts → command-result-CfME21jF.d.mts} +66 -66
- package/dist/dashboard-display.d.mts +22 -1
- package/dist/dashboard-display.mjs +42 -1
- package/dist/{dashboard-summary-transport-D2VBAIxg.mjs → dashboard-summary-transport-CYBuU4iT.mjs} +14 -0
- package/dist/{dashboard-summary-transport-CQ4is5_e.d.mts → dashboard-summary-transport-CwQpcPXI.d.mts} +5687 -4351
- package/dist/dashboard-summary-transport.d.mts +17 -17
- package/dist/dashboard-summary-transport.mjs +1 -1
- package/dist/{document-translation-D50BnvVh.d.mts → document-translation-D9bhVMu9.d.mts} +102 -102
- package/dist/document-translation.d.mts +1 -1
- package/dist/{hosted-app-BPU4OR41.mjs → hosted-app-Y7yqlPBG.mjs} +1 -1
- package/dist/hosted-app.d.mts +17 -17
- package/dist/hosted-app.mjs +2 -2
- package/dist/{hosted-contract-CcRnb51e.mjs → hosted-contract-BuhF_tuQ.mjs} +5 -2
- package/dist/hosted-contract.d.mts +17 -17
- package/dist/hosted-contract.mjs +1 -1
- package/dist/index.d.mts +17 -17
- package/dist/index.mjs +7 -4
- package/dist/{local-download-profiles-BL_rtlVM.d.mts → local-download-profiles-D0EDIDY3.d.mts} +1 -1
- package/dist/local-download-profiles.d.mts +2 -2
- package/dist/{notifications-CgJlLgLO.d.mts → notifications-APukMHjf.d.mts} +4 -4
- package/dist/notifications.d.mts +2 -2
- package/dist/{openspec-projection-RohNZI4p.d.mts → openspec-projection-CeRyRol_.d.mts} +1 -1
- package/dist/openspec-projection.d.mts +2 -2
- package/dist/{opsx-entity-D7kDQsze.d.mts → opsx-entity-O_EFhltR.d.mts} +2 -2
- package/dist/opsx-entity.d.mts +7 -7
- package/dist/{opsx-schema-detail-BxDXEwDY.d.mts → opsx-schema-detail-BTksrDp1.d.mts} +2 -2
- package/dist/opsx-schema-detail.d.mts +8 -8
- package/dist/{opsx-types-BJ8AjhrS.d.mts → opsx-types-BYSPqX85.d.mts} +288 -288
- package/dist/planning-cli-projection.d.mts +17 -17
- package/dist/{schemas-DS-JqAJ2.d.mts → schemas-BLWVYKEk.d.mts} +218 -218
- package/dist/{sounds-qhRgCy0F.d.mts → sounds-BLspIXhv.d.mts} +9 -9
- package/dist/sounds.d.mts +1 -1
- package/dist/spec-catalog.d.mts +17 -17
- package/dist/{store-mutation-protocol-5tfs-RmD.d.mts → store-mutation-protocol-B6AF69kW.d.mts} +48 -48
- package/dist/store-mutation-protocol.d.mts +1 -1
- package/dist/{store-types-b554wAQJ.d.mts → store-types-pd0g35dI.d.mts} +1 -1
- package/dist/store-types.d.mts +5 -5
- package/dist/task-progress.d.mts +6 -6
- package/dist/{terminal-audio-tXDm_EDe.d.mts → terminal-audio-DuJNjIJ3.d.mts} +2 -2
- package/dist/terminal-audio.d.mts +2 -2
- package/dist/terminal-control.d.mts +2 -2
- package/dist/{terminal-invocation-BOvxThym.d.mts → terminal-invocation-C4EE7MeN.d.mts} +58 -58
- package/dist/terminal-invocation.d.mts +1 -1
- package/dist/{translator-NKv1wo3o.d.mts → translator-BgYwP0UT.d.mts} +170 -170
- package/dist/translator.d.mts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as CliJsonValue, t as CliCommandResult } from "./command-result-
|
|
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-
|
|
2
|
-
import "./document-translation-
|
|
3
|
-
import "./sounds-
|
|
4
|
-
import "./notifications-
|
|
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-
|
|
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-
|
|
2
|
-
import { p as NotificationSettings } from "./notifications-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/{dashboard-summary-transport-D2VBAIxg.mjs → dashboard-summary-transport-CYBuU4iT.mjs}
RENAMED
|
@@ -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({
|