@openspecui/core 5.0.0 → 6.0.0-beta.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 +789 -0
- package/dist/cli-projection-vO3-FJg5.mjs +161 -0
- package/dist/cli-projection.d.mts +6 -0
- package/dist/cli-projection.mjs +4 -0
- package/dist/command-result-fkH3Ekdz.d.mts +8477 -0
- package/dist/common-D8YUK9dA.mjs +57 -0
- package/dist/dashboard-summary-transport-CQ4is5_e.d.mts +66227 -0
- package/dist/dashboard-summary-transport-D2VBAIxg.mjs +175 -0
- package/dist/dashboard-summary-transport.d.mts +25 -0
- package/dist/dashboard-summary-transport.mjs +6 -0
- package/dist/{document-translation-D4YK18I3.mjs → document-translation-CeJFGMoy.mjs} +1 -1
- package/dist/{document-translation-7R8cf8_B.d.mts → document-translation-D50BnvVh.d.mts} +2 -2
- package/dist/document-translation.d.mts +1 -1
- package/dist/document-translation.mjs +2 -2
- package/dist/{hosted-app-CzMRiEgY.mjs → hosted-app-BPU4OR41.mjs} +31 -9
- package/dist/hosted-app.d.mts +25 -2
- package/dist/hosted-app.mjs +7 -2
- package/dist/hosted-contract-CcRnb51e.mjs +234 -0
- package/dist/hosted-contract.d.mts +25 -0
- package/dist/hosted-contract.mjs +7 -0
- package/dist/index.d.mts +25 -2686
- package/dist/index.mjs +2114 -1098
- package/dist/{local-download-profiles-caa4PECd.d.mts → local-download-profiles-BL_rtlVM.d.mts} +1 -1
- package/dist/local-download-profiles.d.mts +2 -2
- package/dist/local-download-profiles.mjs +1 -1
- package/dist/markdown-facts.d.mts +1 -1
- package/dist/markdown-facts.mjs +1 -1
- package/dist/{markdown-reading-CgXuXp6s.d.mts → markdown-reading-LUdqfbxH.d.mts} +1 -1
- package/dist/{markdown-reading-DdcB7run.mjs → markdown-reading-mG4OAbDO.mjs} +1 -1
- package/dist/markdown-reading.d.mts +2 -2
- package/dist/markdown-reading.mjs +2 -2
- package/dist/{notifications-AKAcmeKT.mjs → notifications-C2bxAzX_.mjs} +13 -2
- package/dist/{notifications-DZeOl4HV.d.mts → notifications-CgJlLgLO.d.mts} +51 -25
- package/dist/notifications.d.mts +2 -2
- package/dist/notifications.mjs +3 -3
- package/dist/{openspec-annotations-CeXd0JIZ.d.mts → openspec-annotations-C58Aoi-V.d.mts} +2 -2
- package/dist/{openspec-annotations-D_6Pz7k4.mjs → openspec-annotations-DCfqBMal.mjs} +2 -2
- package/dist/openspec-annotations.d.mts +3 -3
- package/dist/openspec-annotations.mjs +3 -3
- package/dist/openspec-compat.d.mts +18 -11
- package/dist/openspec-compat.mjs +20 -13
- package/dist/{openspec-projection-B8s-KWQ7.mjs → openspec-projection-DCgToo0Q.mjs} +2 -2
- package/dist/{openspec-projection-B0ch1rZw.d.mts → openspec-projection-RohNZI4p.d.mts} +3 -3
- package/dist/openspec-projection.d.mts +5 -5
- package/dist/openspec-projection.mjs +4 -4
- package/dist/opsx-display-path.d.mts +1 -1
- package/dist/opsx-display-path.mjs +1 -1
- package/dist/{opsx-entity-DZyl-uhQ.d.mts → opsx-entity-D7kDQsze.d.mts} +2 -2
- package/dist/opsx-entity.d.mts +7 -3
- package/dist/opsx-entity.mjs +1 -1
- package/dist/{opsx-schema-detail-CS0tWa9v.d.mts → opsx-schema-detail-BxDXEwDY.d.mts} +2 -2
- package/dist/opsx-schema-detail.d.mts +8 -4
- package/dist/opsx-schema-detail.mjs +1 -1
- package/dist/opsx-types-BJ8AjhrS.d.mts +3642 -0
- package/dist/opsx-workflows-BvnJqjfL.d.mts +36 -0
- package/dist/opsx-workflows-Ccc6U7IR.mjs +89 -0
- package/dist/opsx-workflows.d.mts +2 -0
- package/dist/opsx-workflows.mjs +3 -0
- package/dist/planning-cli-projection-DIRxeq2H.mjs +421 -0
- package/dist/planning-cli-projection.d.mts +25 -0
- package/dist/planning-cli-projection.mjs +9 -0
- package/dist/schemas-BFroDdOC.mjs +287 -0
- package/dist/{schemas-D01aQnV4.d.mts → schemas-DS-JqAJ2.d.mts} +524 -78
- package/dist/{sounds-kgDn4x8v.d.mts → sounds-qhRgCy0F.d.mts} +12 -12
- package/dist/sounds.d.mts +1 -1
- package/dist/sounds.mjs +1 -1
- package/dist/spec-catalog-ZGuiZ4CE.mjs +901 -0
- package/dist/spec-catalog.d.mts +25 -0
- package/dist/spec-catalog.mjs +6 -0
- package/dist/store-mutation-protocol-5tfs-RmD.d.mts +727 -0
- package/dist/store-mutation-protocol-CSwD-xPO.mjs +63 -0
- package/dist/store-mutation-protocol.d.mts +2 -0
- package/dist/store-mutation-protocol.mjs +4 -0
- package/dist/{store-types-Cu41QSww.mjs → store-types-DlX1REBg.mjs} +39 -18
- package/dist/{store-types-BiE-Ey--.d.mts → store-types-b554wAQJ.d.mts} +22 -12
- package/dist/store-types.d.mts +6 -2
- package/dist/store-types.mjs +2 -2
- package/dist/task-progress-B_IWVXjA.mjs +216 -0
- package/dist/task-progress.d.mts +7 -4
- package/dist/task-progress.mjs +3 -3
- package/dist/{terminal-audio-TBoU2jSK.mjs → terminal-audio-d6KItUeJ.mjs} +1 -1
- package/dist/{terminal-audio-CsuGTNV-.d.mts → terminal-audio-tXDm_EDe.d.mts} +1 -1
- package/dist/terminal-audio.d.mts +2 -2
- package/dist/terminal-audio.mjs +2 -2
- package/dist/terminal-control.d.mts +2 -2
- package/dist/terminal-control.mjs +1 -1
- package/dist/{terminal-invocation-BlFwKpIc.d.mts → terminal-invocation-BOvxThym.d.mts} +239 -120
- package/dist/terminal-invocation.d.mts +1 -1
- package/dist/terminal-invocation.mjs +1 -1
- package/dist/terminal-theme.d.mts +1 -1
- package/dist/terminal-theme.mjs +1 -1
- package/dist/translation-language-pair.d.mts +1 -1
- package/dist/translation-language-pair.mjs +1 -1
- package/dist/{translator-BErXgQxx.d.mts → translator-NKv1wo3o.d.mts} +86 -86
- package/dist/translator.d.mts +1 -1
- package/dist/translator.mjs +1 -1
- package/package.json +55 -7
- package/dist/hosted-app-DHs94gIR.d.mts +0 -43
- package/dist/opsx-types-Dnb06uff.d.mts +0 -402
- package/dist/task-progress-C1TGMbIR.d.mts +0 -24
- package/dist/task-progress-DhHYHnTv.mjs +0 -70
- /package/dist/{local-download-profiles-kpNEcdF_.mjs → local-download-profiles-odzOdf96.mjs} +0 -0
- /package/dist/{markdown-facts-BBCTe_qq.mjs → markdown-facts-BUqLvFRf.mjs} +0 -0
- /package/dist/{markdown-facts-Dk7FKaaT.d.mts → markdown-facts-CCw3QdbM.d.mts} +0 -0
- /package/dist/{opsx-display-path-CUCOrHcM.mjs → opsx-display-path-D13XV20v.mjs} +0 -0
- /package/dist/{opsx-display-path-cIMKa1aw.d.mts → opsx-display-path-RXS5JTbV.d.mts} +0 -0
- /package/dist/{opsx-entity-c7m5CbgU.mjs → opsx-entity-Cn_Zu1J3.mjs} +0 -0
- /package/dist/{opsx-schema-detail-BH82X6aU.mjs → opsx-schema-detail-Beis4Ba2.mjs} +0 -0
- /package/dist/{sounds-CB3ubSnj.mjs → sounds-NXwveBqq.mjs} +0 -0
- /package/dist/{terminal-control-VpTuh17B.mjs → terminal-control-BSAlOTs8.mjs} +0 -0
- /package/dist/{terminal-invocation-C2MCNBhK.mjs → terminal-invocation-0p-j2eSP.mjs} +0 -0
- /package/dist/{terminal-theme-cevliJw2.mjs → terminal-theme-B8iRttTR.mjs} +0 -0
- /package/dist/{terminal-theme-hvQjTsNh.d.mts → terminal-theme-m3MSGJ7U.d.mts} +0 -0
- /package/dist/{translation-language-pair-DZ_WNp_M.mjs → translation-language-pair-Bbhk-LAC.mjs} +0 -0
- /package/dist/{translation-language-pair-DmaOfHqD.d.mts → translation-language-pair-C18GPATW.d.mts} +0 -0
- /package/dist/{translator-DbUT1Ayn.mjs → translator-Cjtv4tya.mjs} +0 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,2686 +1,25 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import { _ as
|
|
5
|
-
import { a as
|
|
6
|
-
import { a as
|
|
7
|
-
import { a as
|
|
8
|
-
import {
|
|
9
|
-
import { c as
|
|
10
|
-
import { a as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { i as
|
|
15
|
-
import {
|
|
16
|
-
import { i as
|
|
17
|
-
import { n as
|
|
18
|
-
import { a as
|
|
19
|
-
import {
|
|
20
|
-
import { a as
|
|
21
|
-
import { n as
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
//#region src/validator.d.ts
|
|
27
|
-
interface ValidationIssue {
|
|
28
|
-
severity: 'ERROR' | 'WARNING' | 'INFO';
|
|
29
|
-
message: string;
|
|
30
|
-
path?: string;
|
|
31
|
-
line?: number;
|
|
32
|
-
}
|
|
33
|
-
interface ValidationResult {
|
|
34
|
-
valid: boolean;
|
|
35
|
-
issues: ValidationIssue[];
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Validator for OpenSpec documents
|
|
39
|
-
*/
|
|
40
|
-
declare class Validator {
|
|
41
|
-
/**
|
|
42
|
-
* Validate a spec document
|
|
43
|
-
*/
|
|
44
|
-
validateSpec(spec: Spec): ValidationResult;
|
|
45
|
-
/**
|
|
46
|
-
* Validate a change proposal
|
|
47
|
-
*/
|
|
48
|
-
validateChange(change: Change): ValidationResult;
|
|
49
|
-
}
|
|
50
|
-
//#endregion
|
|
51
|
-
//#region src/adapter.d.ts
|
|
52
|
-
/** Spec metadata with time info */
|
|
53
|
-
interface SpecMeta {
|
|
54
|
-
id: string;
|
|
55
|
-
name: string;
|
|
56
|
-
createdAt: number;
|
|
57
|
-
updatedAt: number;
|
|
58
|
-
}
|
|
59
|
-
/** Change metadata with time info */
|
|
60
|
-
interface ChangeMeta {
|
|
61
|
-
id: string;
|
|
62
|
-
name: string;
|
|
63
|
-
progress: TaskProgress;
|
|
64
|
-
createdAt: number;
|
|
65
|
-
updatedAt: number;
|
|
66
|
-
}
|
|
67
|
-
/** Archived change metadata with time info */
|
|
68
|
-
interface ArchiveMeta {
|
|
69
|
-
id: string;
|
|
70
|
-
name: string;
|
|
71
|
-
progress: TaskProgress;
|
|
72
|
-
createdAt: number;
|
|
73
|
-
updatedAt: number;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* OpenSpec filesystem adapter
|
|
77
|
-
* Handles reading, writing, and managing OpenSpec files
|
|
78
|
-
*/
|
|
79
|
-
declare class OpenSpecAdapter {
|
|
80
|
-
private projectDir;
|
|
81
|
-
private parser;
|
|
82
|
-
private validator;
|
|
83
|
-
constructor(projectDir: string);
|
|
84
|
-
private get openspecDir();
|
|
85
|
-
private get specsDir();
|
|
86
|
-
private get changesDir();
|
|
87
|
-
private get archiveDir();
|
|
88
|
-
isInitialized(): Promise<boolean>;
|
|
89
|
-
/** File time info derived from filesystem (reactive) */
|
|
90
|
-
private getFileTimeInfo;
|
|
91
|
-
listSpecs(): Promise<string[]>;
|
|
92
|
-
/**
|
|
93
|
-
* List specs with metadata (id, name, and time info)
|
|
94
|
-
* Only returns specs that have valid spec.md
|
|
95
|
-
* Sorted by updatedAt descending (most recent first)
|
|
96
|
-
*/
|
|
97
|
-
listSpecsWithMeta(): Promise<SpecMeta[]>;
|
|
98
|
-
listChanges(): Promise<string[]>;
|
|
99
|
-
/**
|
|
100
|
-
* List changes with metadata (id, name, progress, and time info)
|
|
101
|
-
* Returns every change directory, including schema-specific layouts that
|
|
102
|
-
* don't use proposal.md/tasks.md.
|
|
103
|
-
* Sorted by updatedAt descending (most recent first)
|
|
104
|
-
*/
|
|
105
|
-
listChangesWithMeta(): Promise<ChangeMeta[]>;
|
|
106
|
-
listArchivedChanges(): Promise<string[]>;
|
|
107
|
-
/**
|
|
108
|
-
* List archived changes with metadata and time info
|
|
109
|
-
* Returns every archive directory, including schema-specific layouts that
|
|
110
|
-
* don't use proposal.md/tasks.md.
|
|
111
|
-
* Sorted by updatedAt descending (most recent first)
|
|
112
|
-
*/
|
|
113
|
-
listArchivedChangesWithMeta(): Promise<ArchiveMeta[]>;
|
|
114
|
-
/**
|
|
115
|
-
* Read project.md content (reactive)
|
|
116
|
-
*/
|
|
117
|
-
readProjectMd(): Promise<string | null>;
|
|
118
|
-
/**
|
|
119
|
-
* Write project.md content
|
|
120
|
-
*/
|
|
121
|
-
writeProjectMd(content: string): Promise<void>;
|
|
122
|
-
readSpec(specId: string): Promise<Spec | null>;
|
|
123
|
-
readSpecRaw(specId: string): Promise<string | null>;
|
|
124
|
-
readChange(changeId: string): Promise<Change | null>;
|
|
125
|
-
readChangeFiles(changeId: string): Promise<ChangeFile[]>;
|
|
126
|
-
readArchivedChangeFiles(changeId: string): Promise<ChangeFile[]>;
|
|
127
|
-
readChangeTaskProjection(changeId: string): Promise<TaskProjection>;
|
|
128
|
-
readArchivedChangeTaskProjection(changeId: string): Promise<TaskProjection>;
|
|
129
|
-
readEntityDetail(stage: 'change' | 'archive', id: string, options?: OpsxEntityReadOptions): Promise<OpsxEntityDetail | null>;
|
|
130
|
-
private readFilesUnderRoot;
|
|
131
|
-
private collectChangeFiles;
|
|
132
|
-
private readProjectSchemaDetail;
|
|
133
|
-
private readEntityTaskProjection;
|
|
134
|
-
readChangeRaw(changeId: string): Promise<{
|
|
135
|
-
proposal: string;
|
|
136
|
-
tasks: string;
|
|
137
|
-
design?: string;
|
|
138
|
-
deltaSpecs: DeltaSpec[];
|
|
139
|
-
} | null>;
|
|
140
|
-
/** Read delta specs from a specs directory */
|
|
141
|
-
private readDeltaSpecs;
|
|
142
|
-
/**
|
|
143
|
-
* Read an archived change
|
|
144
|
-
*/
|
|
145
|
-
readArchivedChange(changeId: string): Promise<Change | null>;
|
|
146
|
-
/**
|
|
147
|
-
* Read raw archived change files (reactive)
|
|
148
|
-
*/
|
|
149
|
-
readArchivedChangeRaw(changeId: string): Promise<{
|
|
150
|
-
proposal: string;
|
|
151
|
-
tasks: string;
|
|
152
|
-
design?: string;
|
|
153
|
-
deltaSpecs: DeltaSpec[];
|
|
154
|
-
} | null>;
|
|
155
|
-
writeSpec(specId: string, content: string): Promise<void>;
|
|
156
|
-
writeChange(changeId: string, proposal: string, tasks?: string): Promise<void>;
|
|
157
|
-
archiveChange(changeId: string): Promise<boolean>;
|
|
158
|
-
init(): Promise<void>;
|
|
159
|
-
/**
|
|
160
|
-
* Toggle a task's completion status in tasks.md
|
|
161
|
-
* @param changeId - The change ID
|
|
162
|
-
* @param taskIndex - 1-based task index
|
|
163
|
-
* @param completed - New completion status
|
|
164
|
-
*/
|
|
165
|
-
toggleTask(changeId: string, taskIndex: number, completed: boolean): Promise<boolean>;
|
|
166
|
-
validateSpec(specId: string): Promise<ValidationResult>;
|
|
167
|
-
validateChange(changeId: string): Promise<ValidationResult>;
|
|
168
|
-
getDashboardData(): Promise<{
|
|
169
|
-
specs: {
|
|
170
|
-
id: string;
|
|
171
|
-
name: string;
|
|
172
|
-
overview: string;
|
|
173
|
-
requirements: {
|
|
174
|
-
title: string;
|
|
175
|
-
id: string;
|
|
176
|
-
text: string;
|
|
177
|
-
bodyMarkdown: string;
|
|
178
|
-
scenarios: {
|
|
179
|
-
title: string;
|
|
180
|
-
rawText: string;
|
|
181
|
-
bodyMarkdown: string;
|
|
182
|
-
steps?: {
|
|
183
|
-
keyword: "GIVEN" | "WHEN" | "THEN" | "AND" | "BUT";
|
|
184
|
-
contentMarkdown: string;
|
|
185
|
-
rawText: string;
|
|
186
|
-
}[] | undefined;
|
|
187
|
-
}[];
|
|
188
|
-
}[];
|
|
189
|
-
metadata?: {
|
|
190
|
-
version: string;
|
|
191
|
-
format: "openspec";
|
|
192
|
-
sourcePath?: string | undefined;
|
|
193
|
-
} | undefined;
|
|
194
|
-
}[];
|
|
195
|
-
changes: {
|
|
196
|
-
id: string;
|
|
197
|
-
name: string;
|
|
198
|
-
progress: {
|
|
199
|
-
completed: number;
|
|
200
|
-
total: number;
|
|
201
|
-
};
|
|
202
|
-
why: string;
|
|
203
|
-
whatChanges: string;
|
|
204
|
-
deltas: {
|
|
205
|
-
description: string;
|
|
206
|
-
spec: string;
|
|
207
|
-
operation: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
|
|
208
|
-
requirements?: {
|
|
209
|
-
title: string;
|
|
210
|
-
id: string;
|
|
211
|
-
text: string;
|
|
212
|
-
bodyMarkdown: string;
|
|
213
|
-
scenarios: {
|
|
214
|
-
title: string;
|
|
215
|
-
rawText: string;
|
|
216
|
-
bodyMarkdown: string;
|
|
217
|
-
steps?: {
|
|
218
|
-
keyword: "GIVEN" | "WHEN" | "THEN" | "AND" | "BUT";
|
|
219
|
-
contentMarkdown: string;
|
|
220
|
-
rawText: string;
|
|
221
|
-
}[] | undefined;
|
|
222
|
-
}[];
|
|
223
|
-
}[] | undefined;
|
|
224
|
-
requirement?: {
|
|
225
|
-
title: string;
|
|
226
|
-
id: string;
|
|
227
|
-
text: string;
|
|
228
|
-
bodyMarkdown: string;
|
|
229
|
-
scenarios: {
|
|
230
|
-
title: string;
|
|
231
|
-
rawText: string;
|
|
232
|
-
bodyMarkdown: string;
|
|
233
|
-
steps?: {
|
|
234
|
-
keyword: "GIVEN" | "WHEN" | "THEN" | "AND" | "BUT";
|
|
235
|
-
contentMarkdown: string;
|
|
236
|
-
rawText: string;
|
|
237
|
-
}[] | undefined;
|
|
238
|
-
}[];
|
|
239
|
-
} | undefined;
|
|
240
|
-
rename?: {
|
|
241
|
-
from: string;
|
|
242
|
-
to: string;
|
|
243
|
-
} | undefined;
|
|
244
|
-
}[];
|
|
245
|
-
tasks: {
|
|
246
|
-
id: string;
|
|
247
|
-
text: string;
|
|
248
|
-
completed: boolean;
|
|
249
|
-
section?: string | undefined;
|
|
250
|
-
}[];
|
|
251
|
-
metadata?: {
|
|
252
|
-
version: string;
|
|
253
|
-
format: "openspec-change";
|
|
254
|
-
} | undefined;
|
|
255
|
-
design?: string | undefined;
|
|
256
|
-
deltaSpecs?: {
|
|
257
|
-
content: string;
|
|
258
|
-
specId: string;
|
|
259
|
-
}[] | undefined;
|
|
260
|
-
}[];
|
|
261
|
-
archivedCount: number;
|
|
262
|
-
summary: {
|
|
263
|
-
specCount: number;
|
|
264
|
-
requirementCount: number;
|
|
265
|
-
activeChangeCount: number;
|
|
266
|
-
archivedChangeCount: number;
|
|
267
|
-
totalTasks: number;
|
|
268
|
-
completedTasks: number;
|
|
269
|
-
progressPercent: number;
|
|
270
|
-
};
|
|
271
|
-
}>;
|
|
272
|
-
}
|
|
273
|
-
//#endregion
|
|
274
|
-
//#region src/parser.d.ts
|
|
275
|
-
/**
|
|
276
|
-
* Markdown parser for OpenSpec documents
|
|
277
|
-
*/
|
|
278
|
-
declare class MarkdownParser {
|
|
279
|
-
/**
|
|
280
|
-
* Parse a spec markdown content into a Spec object
|
|
281
|
-
*/
|
|
282
|
-
parseSpec(specId: string, content: string): Spec;
|
|
283
|
-
/**
|
|
284
|
-
* Parse a change proposal markdown content into a Change object
|
|
285
|
-
*/
|
|
286
|
-
parseChange(changeId: string, proposalContent: string, tasksContent?: string, options?: {
|
|
287
|
-
design?: string;
|
|
288
|
-
deltaSpecs?: DeltaSpec[];
|
|
289
|
-
}): Change;
|
|
290
|
-
private parseDeltasFromWhatChanges;
|
|
291
|
-
private parseDeltasFromDeltaSpecs;
|
|
292
|
-
private parseDeltaSpecContent;
|
|
293
|
-
/**
|
|
294
|
-
* Parse tasks from a tasks.md content
|
|
295
|
-
*/
|
|
296
|
-
parseTasks(content: string): Task[];
|
|
297
|
-
/**
|
|
298
|
-
* Serialize a spec back to markdown
|
|
299
|
-
*/
|
|
300
|
-
serializeSpec(spec: Spec): string;
|
|
301
|
-
}
|
|
302
|
-
//#endregion
|
|
303
|
-
//#region src/file-preview.d.ts
|
|
304
|
-
declare const FILE_PREVIEW_KINDS: readonly ["markdown", "html", "image", "audio", "video", "pdf", "text", "none"];
|
|
305
|
-
type FilePreviewKind = (typeof FILE_PREVIEW_KINDS)[number];
|
|
306
|
-
declare function inferFileMime(path: string): string | null;
|
|
307
|
-
declare function inferFilePreviewKind(path: string, mime?: string | null): FilePreviewKind;
|
|
308
|
-
declare function isTextLikeMime(mime: string | null | undefined): boolean;
|
|
309
|
-
declare function isTextLikeFile(path: string, mime?: string | null): boolean;
|
|
310
|
-
declare function isPreviewableFile(path: string, mime?: string | null): boolean;
|
|
311
|
-
//#endregion
|
|
312
|
-
//#region src/reactive-fs/reactive-state.d.ts
|
|
313
|
-
interface IReactiveContext {
|
|
314
|
-
track(state: ReactiveState<unknown>): void;
|
|
315
|
-
notifyChange(): void;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* 全局的 AsyncLocalStorage,用于在异步调用链中传递 ReactiveContext
|
|
319
|
-
* 这是实现依赖收集的核心机制
|
|
320
|
-
*/
|
|
321
|
-
declare const contextStorage: AsyncLocalStorage<IReactiveContext>;
|
|
322
|
-
/** ReactiveState 配置选项 */
|
|
323
|
-
interface ReactiveStateOptions<T> {
|
|
324
|
-
/** 自定义相等性比较函数 */
|
|
325
|
-
equals?: (a: T, b: T) => boolean;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* 响应式状态类,类似 Signal.State
|
|
329
|
-
*
|
|
330
|
-
* 核心机制:
|
|
331
|
-
* - get() 时自动注册到当前 ReactiveContext 的依赖列表
|
|
332
|
-
* - set() 时如果值变化,通知所有依赖的 Context
|
|
333
|
-
*/
|
|
334
|
-
declare class ReactiveState<T> {
|
|
335
|
-
private currentValue;
|
|
336
|
-
private readonly equals;
|
|
337
|
-
/** 所有依赖此状态的 Context */
|
|
338
|
-
private readonly subscribers;
|
|
339
|
-
constructor(initialValue: T, options?: ReactiveStateOptions<T>);
|
|
340
|
-
/**
|
|
341
|
-
* 获取当前值
|
|
342
|
-
* 如果在 ReactiveContext 中调用,会自动注册依赖
|
|
343
|
-
*/
|
|
344
|
-
get(): T;
|
|
345
|
-
/**
|
|
346
|
-
* 设置新值
|
|
347
|
-
* 如果值变化,通知所有订阅者
|
|
348
|
-
* @returns 是否发生了变化
|
|
349
|
-
*/
|
|
350
|
-
set(newValue: T): boolean;
|
|
351
|
-
/**
|
|
352
|
-
* 取消订阅
|
|
353
|
-
* 当 Context 销毁时调用
|
|
354
|
-
*/
|
|
355
|
-
unsubscribe(context: IReactiveContext): void;
|
|
356
|
-
/**
|
|
357
|
-
* 获取当前订阅者数量(用于调试)
|
|
358
|
-
*/
|
|
359
|
-
get subscriberCount(): number;
|
|
360
|
-
}
|
|
361
|
-
//#endregion
|
|
362
|
-
//#region src/reactive-fs/reactive-context.d.ts
|
|
363
|
-
/**
|
|
364
|
-
* 响应式上下文,管理依赖收集和变更通知
|
|
365
|
-
*
|
|
366
|
-
* 核心机制:
|
|
367
|
-
* - 在 stream() 中执行任务时,通过 AsyncLocalStorage 传递 this
|
|
368
|
-
* - 任务中的所有 ReactiveState.get() 调用都会自动注册依赖
|
|
369
|
-
* - 当任何依赖变更时,重新执行任务并 yield 新结果
|
|
370
|
-
*/
|
|
371
|
-
declare class ReactiveContext {
|
|
372
|
-
/** 当前追踪的依赖 */
|
|
373
|
-
private dependencies;
|
|
374
|
-
/** 等待变更的 Promise */
|
|
375
|
-
private changePromise?;
|
|
376
|
-
/** 是否已销毁 */
|
|
377
|
-
private destroyed;
|
|
378
|
-
/**
|
|
379
|
-
* 追踪依赖
|
|
380
|
-
* 由 ReactiveState.get() 调用
|
|
381
|
-
*/
|
|
382
|
-
track(state: ReactiveState<unknown>): void;
|
|
383
|
-
/**
|
|
384
|
-
* 通知变更
|
|
385
|
-
* 由 ReactiveState.set() 调用
|
|
386
|
-
*/
|
|
387
|
-
notifyChange(): void;
|
|
388
|
-
/**
|
|
389
|
-
* 运行响应式任务流
|
|
390
|
-
* 每次依赖变更时重新执行任务并 yield 结果
|
|
391
|
-
*
|
|
392
|
-
* @param task 要执行的异步任务
|
|
393
|
-
* @param signal 用于取消的 AbortSignal
|
|
394
|
-
*/
|
|
395
|
-
stream<T>(task: () => Promise<T>, signal?: AbortSignal): AsyncGenerator<T>;
|
|
396
|
-
/**
|
|
397
|
-
* 执行一次任务(非响应式)
|
|
398
|
-
* 用于初始数据获取
|
|
399
|
-
*/
|
|
400
|
-
runOnce<T>(task: () => Promise<T>): Promise<T>;
|
|
401
|
-
/**
|
|
402
|
-
* 清理依赖
|
|
403
|
-
*/
|
|
404
|
-
private clearDependencies;
|
|
405
|
-
/**
|
|
406
|
-
* 销毁上下文
|
|
407
|
-
* @param reason 可选的销毁原因,如果提供则 reject changePromise
|
|
408
|
-
*/
|
|
409
|
-
private destroy;
|
|
410
|
-
/**
|
|
411
|
-
* 等待 AbortSignal
|
|
412
|
-
*/
|
|
413
|
-
private waitForAbort;
|
|
414
|
-
}
|
|
415
|
-
//#endregion
|
|
416
|
-
//#region src/reactive-fs/reactive-fs.d.ts
|
|
417
|
-
/**
|
|
418
|
-
* 响应式读取文件内容
|
|
419
|
-
*
|
|
420
|
-
* 特性:
|
|
421
|
-
* - 自动注册文件监听
|
|
422
|
-
* - 文件变更时自动更新状态
|
|
423
|
-
* - 在 ReactiveContext 中调用时自动追踪依赖
|
|
424
|
-
* - 支持监听尚未创建的文件(通过 @parcel/watcher)
|
|
425
|
-
*
|
|
426
|
-
* @param filepath 文件路径
|
|
427
|
-
* @returns 文件内容,文件不存在时返回 null
|
|
428
|
-
*/
|
|
429
|
-
declare function reactiveReadFile(filepath: string): Promise<string | null>;
|
|
430
|
-
/**
|
|
431
|
-
* 响应式读取目录内容
|
|
432
|
-
*
|
|
433
|
-
* 特性:
|
|
434
|
-
* - 自动注册目录监听
|
|
435
|
-
* - 目录变更时自动更新状态
|
|
436
|
-
* - 在 ReactiveContext 中调用时自动追踪依赖
|
|
437
|
-
* - 支持监听尚未创建的目录(通过 @parcel/watcher)
|
|
438
|
-
*
|
|
439
|
-
* @param dirpath 目录路径
|
|
440
|
-
* @param options 选项
|
|
441
|
-
* @returns 目录项名称数组
|
|
442
|
-
*/
|
|
443
|
-
declare function reactiveReadDir(dirpath: string, options?: {
|
|
444
|
-
/** 是否只返回目录 */
|
|
445
|
-
directoriesOnly?: boolean;
|
|
446
|
-
/** 是否只返回文件 */
|
|
447
|
-
filesOnly?: boolean;
|
|
448
|
-
/** 是否包含隐藏文件(以 . 开头) */
|
|
449
|
-
includeHidden?: boolean;
|
|
450
|
-
/** 排除的名称 */
|
|
451
|
-
exclude?: string[];
|
|
452
|
-
}): Promise<string[]>;
|
|
453
|
-
/**
|
|
454
|
-
* 响应式检查路径是否存在
|
|
455
|
-
*
|
|
456
|
-
* @param path 路径
|
|
457
|
-
* @returns 是否存在
|
|
458
|
-
*/
|
|
459
|
-
declare function reactiveExists(path: string): Promise<boolean>;
|
|
460
|
-
/**
|
|
461
|
-
* 响应式获取文件/目录的 stat 信息
|
|
462
|
-
*
|
|
463
|
-
* @param path 路径
|
|
464
|
-
* @returns stat 信息,不存在时返回 null
|
|
465
|
-
*/
|
|
466
|
-
declare function reactiveStat(path: string): Promise<{
|
|
467
|
-
isDirectory: boolean;
|
|
468
|
-
isFile: boolean;
|
|
469
|
-
mtime: number;
|
|
470
|
-
birthtime: number;
|
|
471
|
-
} | null>;
|
|
472
|
-
/**
|
|
473
|
-
* 清除指定路径的缓存(用于测试)
|
|
474
|
-
*/
|
|
475
|
-
declare function clearCache(path?: string): void;
|
|
476
|
-
/**
|
|
477
|
-
* 获取缓存大小(用于调试)
|
|
478
|
-
*/
|
|
479
|
-
declare function getCacheSize(): number;
|
|
480
|
-
//#endregion
|
|
481
|
-
//#region src/reactive-fs/project-watcher.d.ts
|
|
482
|
-
/**
|
|
483
|
-
* 事件类型
|
|
484
|
-
*/
|
|
485
|
-
type WatchEventType = 'create' | 'update' | 'delete';
|
|
486
|
-
/**
|
|
487
|
-
* 监听事件
|
|
488
|
-
*/
|
|
489
|
-
interface WatchEvent {
|
|
490
|
-
type: WatchEventType;
|
|
491
|
-
path: string;
|
|
492
|
-
}
|
|
493
|
-
/**
|
|
494
|
-
* 路径订阅回调
|
|
495
|
-
*/
|
|
496
|
-
type PathCallback = (events: WatchEvent[]) => void;
|
|
497
|
-
/** watcher 重建原因 */
|
|
498
|
-
type ProjectWatcherReinitializeReason = 'drop-events' | 'watcher-error' | 'missing-project-dir' | 'project-dir-replaced' | 'manual';
|
|
499
|
-
type ProjectResidencyEvictionReason = Extract<ProjectWatcherReinitializeReason, 'missing-project-dir' | 'project-dir-replaced'>;
|
|
500
|
-
type ProjectResidencyStatus = {
|
|
501
|
-
state: 'active';
|
|
502
|
-
} | {
|
|
503
|
-
state: 'evicted';
|
|
504
|
-
reason: ProjectResidencyEvictionReason;
|
|
505
|
-
detectedAt: number;
|
|
506
|
-
};
|
|
507
|
-
/** watcher 运行时状态(用于调试和运维观测) */
|
|
508
|
-
interface ProjectWatcherRuntimeStatus {
|
|
509
|
-
generation: number;
|
|
510
|
-
reinitializeCount: number;
|
|
511
|
-
lastReinitializeReason: ProjectWatcherReinitializeReason | null;
|
|
512
|
-
reinitializeReasonCounts: Readonly<Record<ProjectWatcherReinitializeReason, number>>;
|
|
513
|
-
projectResidency: ProjectResidencyStatus;
|
|
514
|
-
}
|
|
515
|
-
type ProjectWatcherRuntimeStatusListener = (status: ProjectWatcherRuntimeStatus) => void;
|
|
516
|
-
/**
|
|
517
|
-
* 项目监听器
|
|
518
|
-
*
|
|
519
|
-
* 使用 @parcel/watcher 监听项目根目录,
|
|
520
|
-
* 然后通过路径前缀匹配分发事件给订阅者。
|
|
521
|
-
*
|
|
522
|
-
* 特性:
|
|
523
|
-
* - 单个 watcher 监听整个项目
|
|
524
|
-
* - 自动处理新创建的目录
|
|
525
|
-
* - 内置防抖机制
|
|
526
|
-
* - 高性能原生实现
|
|
527
|
-
*/
|
|
528
|
-
declare class ProjectWatcher {
|
|
529
|
-
private projectDir;
|
|
530
|
-
private subscription;
|
|
531
|
-
private pathSubscriptions;
|
|
532
|
-
private pendingEvents;
|
|
533
|
-
private debounceTimer;
|
|
534
|
-
private debounceMs;
|
|
535
|
-
private ignore;
|
|
536
|
-
private initialized;
|
|
537
|
-
private initPromise;
|
|
538
|
-
private reinitializeTimer;
|
|
539
|
-
private reinitializePending;
|
|
540
|
-
private reinitializeReasonPending;
|
|
541
|
-
private pathLivenessTimer;
|
|
542
|
-
private projectDirFingerprint;
|
|
543
|
-
private generation;
|
|
544
|
-
private reinitializeCount;
|
|
545
|
-
private lastReinitializeReason;
|
|
546
|
-
private reinitializeReasonCounts;
|
|
547
|
-
private projectResidency;
|
|
548
|
-
private runtimeStatusListeners;
|
|
549
|
-
constructor(projectDir: string, options?: {
|
|
550
|
-
debounceMs?: number;
|
|
551
|
-
ignore?: string[];
|
|
552
|
-
});
|
|
553
|
-
/**
|
|
554
|
-
* 初始化 watcher
|
|
555
|
-
* 懒加载,首次订阅时自动调用
|
|
556
|
-
*/
|
|
557
|
-
init(): Promise<void>;
|
|
558
|
-
private doInit;
|
|
559
|
-
/**
|
|
560
|
-
* 处理 watcher 错误
|
|
561
|
-
* 统一走错误驱动重建流程
|
|
562
|
-
*/
|
|
563
|
-
private handleWatcherError;
|
|
564
|
-
/**
|
|
565
|
-
* 延迟重建 watcher(防抖,避免频繁重建)
|
|
566
|
-
*/
|
|
567
|
-
private scheduleReinitialize;
|
|
568
|
-
/**
|
|
569
|
-
* 读取项目目录指纹(目录不存在时返回 null)
|
|
570
|
-
* 用于检测 path 对应实体是否被替换(inode/dev 漂移)
|
|
571
|
-
*/
|
|
572
|
-
private getProjectDirFingerprint;
|
|
573
|
-
/**
|
|
574
|
-
* 启动路径语义监测(避免 watcher 绑定到已失效句柄)
|
|
575
|
-
*/
|
|
576
|
-
private startPathLivenessMonitor;
|
|
577
|
-
/**
|
|
578
|
-
* 停止路径语义监测
|
|
579
|
-
*/
|
|
580
|
-
private stopPathLivenessMonitor;
|
|
581
|
-
/**
|
|
582
|
-
* 只读检查 projectDir 是否仍指向初始化时的目录实体
|
|
583
|
-
*/
|
|
584
|
-
private checkPathLiveness;
|
|
585
|
-
/**
|
|
586
|
-
* 处理原始事件
|
|
587
|
-
*/
|
|
588
|
-
private handleEvents;
|
|
589
|
-
/**
|
|
590
|
-
* 分发事件给订阅者
|
|
591
|
-
*/
|
|
592
|
-
private flushEvents;
|
|
593
|
-
/**
|
|
594
|
-
* 检查事件是否匹配订阅
|
|
595
|
-
*/
|
|
596
|
-
private matchPath;
|
|
597
|
-
/**
|
|
598
|
-
* 同步订阅路径变更(watcher 必须已初始化)
|
|
599
|
-
*
|
|
600
|
-
* 这是同步版本,用于在 watcher 已初始化后快速注册订阅。
|
|
601
|
-
* 如果 watcher 未初始化,抛出错误。
|
|
602
|
-
*
|
|
603
|
-
* @param path 要监听的路径
|
|
604
|
-
* @param callback 变更回调
|
|
605
|
-
* @param options 订阅选项
|
|
606
|
-
* @returns 取消订阅函数
|
|
607
|
-
*/
|
|
608
|
-
subscribeSync(path: string, callback: PathCallback, options?: {
|
|
609
|
-
watchChildren?: boolean;
|
|
610
|
-
}): () => void;
|
|
611
|
-
/**
|
|
612
|
-
* 订阅路径变更(异步版本,自动初始化)
|
|
613
|
-
*
|
|
614
|
-
* @param path 要监听的路径
|
|
615
|
-
* @param callback 变更回调
|
|
616
|
-
* @param options 订阅选项
|
|
617
|
-
* @returns 取消订阅函数
|
|
618
|
-
*/
|
|
619
|
-
subscribe(path: string, callback: PathCallback, options?: {
|
|
620
|
-
watchChildren?: boolean;
|
|
621
|
-
}): Promise<() => void>;
|
|
622
|
-
/**
|
|
623
|
-
* 获取当前订阅数量(用于调试)
|
|
624
|
-
*/
|
|
625
|
-
get subscriptionCount(): number;
|
|
626
|
-
/**
|
|
627
|
-
* 检查是否已初始化
|
|
628
|
-
*/
|
|
629
|
-
get isInitialized(): boolean;
|
|
630
|
-
/**
|
|
631
|
-
* 获取 watcher 运行时状态
|
|
632
|
-
*/
|
|
633
|
-
get runtimeStatus(): ProjectWatcherRuntimeStatus;
|
|
634
|
-
subscribeRuntimeStatus(listener: ProjectWatcherRuntimeStatusListener, options?: {
|
|
635
|
-
emitCurrent?: boolean;
|
|
636
|
-
}): () => void;
|
|
637
|
-
/**
|
|
638
|
-
* 记录重建统计
|
|
639
|
-
*/
|
|
640
|
-
private markReinitialized;
|
|
641
|
-
private markProjectResidencyActive;
|
|
642
|
-
private markProjectResidencyEvicted;
|
|
643
|
-
private emitRuntimeStatus;
|
|
644
|
-
/**
|
|
645
|
-
* 重新初始化 watcher
|
|
646
|
-
*/
|
|
647
|
-
private reinitialize;
|
|
648
|
-
/**
|
|
649
|
-
* 等待项目目录被创建
|
|
650
|
-
*/
|
|
651
|
-
private waitForProjectDir;
|
|
652
|
-
/**
|
|
653
|
-
* 关闭 watcher
|
|
654
|
-
*/
|
|
655
|
-
close(): Promise<void>;
|
|
656
|
-
}
|
|
657
|
-
/**
|
|
658
|
-
* 获取或创建项目监听器
|
|
659
|
-
*/
|
|
660
|
-
declare function getProjectWatcher(projectDir: string, options?: ConstructorParameters<typeof ProjectWatcher>[1]): ProjectWatcher;
|
|
661
|
-
/**
|
|
662
|
-
* 关闭所有 ProjectWatcher(用于测试清理)
|
|
663
|
-
*/
|
|
664
|
-
declare function closeAllProjectWatchers(): Promise<void>;
|
|
665
|
-
//#endregion
|
|
666
|
-
//#region src/reactive-fs/watcher-pool.d.ts
|
|
667
|
-
/** watcher 运行时状态(供 server 订阅) */
|
|
668
|
-
interface WatcherRuntimeStatus extends ProjectWatcherRuntimeStatus {
|
|
669
|
-
projectDir: string | null;
|
|
670
|
-
initialized: boolean;
|
|
671
|
-
subscriptionCount: number;
|
|
672
|
-
}
|
|
673
|
-
/**
|
|
674
|
-
* 初始化 watcher pool
|
|
675
|
-
*
|
|
676
|
-
* 必须在使用 acquireWatcher 之前调用。
|
|
677
|
-
* 通常由 server 在启动时调用。
|
|
678
|
-
*
|
|
679
|
-
* @param projectDir 项目根目录
|
|
680
|
-
*/
|
|
681
|
-
declare function initWatcherPool(projectDir: string): Promise<void>;
|
|
682
|
-
/**
|
|
683
|
-
* 获取或创建文件/目录监听器
|
|
684
|
-
*
|
|
685
|
-
* 特性:
|
|
686
|
-
* - 使用 @parcel/watcher 监听项目根目录
|
|
687
|
-
* - 自动处理新创建的目录(解决 init 后无法监听的问题)
|
|
688
|
-
* - 同一路径共享订阅
|
|
689
|
-
* - 引用计数管理生命周期
|
|
690
|
-
* - 内置防抖机制
|
|
691
|
-
*
|
|
692
|
-
* @param path 要监听的路径
|
|
693
|
-
* @param onChange 变更回调
|
|
694
|
-
* @param options 监听选项
|
|
695
|
-
* @returns 释放函数,调用后取消订阅
|
|
696
|
-
*/
|
|
697
|
-
declare function acquireWatcher(path: string, onChange: () => void, options?: {
|
|
698
|
-
recursive?: boolean;
|
|
699
|
-
debounceMs?: number;
|
|
700
|
-
onError?: () => void;
|
|
701
|
-
}): () => void;
|
|
702
|
-
/**
|
|
703
|
-
* 获取当前活跃的监听器数量(用于调试)
|
|
704
|
-
*/
|
|
705
|
-
declare function getActiveWatcherCount(): number;
|
|
706
|
-
/**
|
|
707
|
-
* 关闭所有监听器(用于测试清理)
|
|
708
|
-
*/
|
|
709
|
-
declare function closeAllWatchers(): Promise<void>;
|
|
710
|
-
/**
|
|
711
|
-
* 检查 watcher pool 是否已初始化
|
|
712
|
-
*/
|
|
713
|
-
declare function isWatcherPoolInitialized(): boolean;
|
|
714
|
-
/**
|
|
715
|
-
* 获取当前监听的项目目录
|
|
716
|
-
*/
|
|
717
|
-
declare function getWatchedProjectDir(): string | null;
|
|
718
|
-
/**
|
|
719
|
-
* 获取 watcher 运行时状态
|
|
720
|
-
*/
|
|
721
|
-
declare function getWatcherRuntimeStatus(): WatcherRuntimeStatus | null;
|
|
722
|
-
declare function subscribeWatcherRuntimeStatus(listener: (status: WatcherRuntimeStatus | null) => void, options?: {
|
|
723
|
-
emitCurrent?: boolean;
|
|
724
|
-
}): () => void;
|
|
725
|
-
//#endregion
|
|
726
|
-
//#region src/watcher.d.ts
|
|
727
|
-
/**
|
|
728
|
-
* File change event types
|
|
729
|
-
*/
|
|
730
|
-
type FileChangeType = 'spec' | 'change' | 'archive' | 'project';
|
|
731
|
-
/**
|
|
732
|
-
* File change event payload
|
|
733
|
-
*/
|
|
734
|
-
interface FileChangeEvent {
|
|
735
|
-
type: FileChangeType;
|
|
736
|
-
action: 'create' | 'update' | 'delete';
|
|
737
|
-
id?: string;
|
|
738
|
-
path: string;
|
|
739
|
-
timestamp: number;
|
|
740
|
-
}
|
|
741
|
-
/**
|
|
742
|
-
* OpenSpec file watcher
|
|
743
|
-
* Watches the openspec/ directory for changes and emits events
|
|
744
|
-
*/
|
|
745
|
-
declare class OpenSpecWatcher extends EventEmitter {
|
|
746
|
-
private projectDir;
|
|
747
|
-
private watchers;
|
|
748
|
-
private debounceTimers;
|
|
749
|
-
private debounceMs;
|
|
750
|
-
constructor(projectDir: string, options?: {
|
|
751
|
-
debounceMs?: number;
|
|
752
|
-
});
|
|
753
|
-
private get openspecDir();
|
|
754
|
-
private get specsDir();
|
|
755
|
-
private get changesDir();
|
|
756
|
-
private get archiveDir();
|
|
757
|
-
/**
|
|
758
|
-
* Start watching for file changes
|
|
759
|
-
*/
|
|
760
|
-
start(): void;
|
|
761
|
-
/**
|
|
762
|
-
* Stop watching for file changes
|
|
763
|
-
*/
|
|
764
|
-
stop(): void;
|
|
765
|
-
/**
|
|
766
|
-
* Watch a directory recursively
|
|
767
|
-
*/
|
|
768
|
-
private watchDir;
|
|
769
|
-
/**
|
|
770
|
-
* Emit event with debouncing to avoid duplicate events
|
|
771
|
-
*/
|
|
772
|
-
private emitDebounced;
|
|
773
|
-
}
|
|
774
|
-
/**
|
|
775
|
-
* Create a file change observable for use with tRPC subscriptions
|
|
776
|
-
*/
|
|
777
|
-
declare function createFileChangeObservable(watcher: OpenSpecWatcher): {
|
|
778
|
-
subscribe: (observer: {
|
|
779
|
-
next: (event: FileChangeEvent) => void;
|
|
780
|
-
error?: (error: Error) => void;
|
|
781
|
-
complete?: () => void;
|
|
782
|
-
}) => {
|
|
783
|
-
unsubscribe: () => void;
|
|
784
|
-
};
|
|
785
|
-
};
|
|
786
|
-
//#endregion
|
|
787
|
-
//#region src/config.d.ts
|
|
788
|
-
declare const CODE_EDITOR_THEME_VALUES: readonly ["github", "material", "vscode", "tokyo", "gruvbox", "monokai", "nord"];
|
|
789
|
-
declare const OPSX_AGENT_INVOCATION_MODE_VALUES: readonly ["compose", "command"];
|
|
790
|
-
declare const TerminalRendererEngineSchema: z.ZodEnum<["xterm", "ghostty"]>;
|
|
791
|
-
type TerminalRendererEngine = z.infer<typeof TerminalRendererEngineSchema>;
|
|
792
|
-
declare const TerminalThemeModeSchema: z.ZodEnum<["app", "light", "dark", "system"]>;
|
|
793
|
-
type TerminalThemeMode = z.infer<typeof TerminalThemeModeSchema>;
|
|
794
|
-
declare const TerminalThemeSchema: z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>;
|
|
795
|
-
type TerminalThemeId = z.infer<typeof TerminalThemeSchema>;
|
|
796
|
-
declare const OpsxAgentInvocationModeSchema: z.ZodEnum<["compose", "command"]>;
|
|
797
|
-
type OpsxAgentInvocationMode = z.infer<typeof OpsxAgentInvocationModeSchema>;
|
|
798
|
-
declare const CodeEditorThemeSchema: z.ZodEnum<["github", "material", "vscode", "tokyo", "gruvbox", "monokai", "nord"]>;
|
|
799
|
-
type CodeEditorTheme = z.infer<typeof CodeEditorThemeSchema>;
|
|
800
|
-
declare function isTerminalRendererEngine(value: string): value is TerminalRendererEngine;
|
|
801
|
-
type RunnerId = 'configured' | 'openspec' | 'npx' | 'bunx' | 'deno' | 'pnpm' | 'yarn';
|
|
802
|
-
interface CliRunnerCandidate {
|
|
803
|
-
id: RunnerId;
|
|
804
|
-
source: string;
|
|
805
|
-
commandParts: readonly string[];
|
|
806
|
-
}
|
|
807
|
-
interface CliRunnerAttempt {
|
|
808
|
-
source: string;
|
|
809
|
-
command: string;
|
|
810
|
-
success: boolean;
|
|
811
|
-
version?: string;
|
|
812
|
-
error?: string;
|
|
813
|
-
exitCode: number | null;
|
|
814
|
-
}
|
|
815
|
-
interface ResolvedCliRunner {
|
|
816
|
-
source: string;
|
|
817
|
-
command: string;
|
|
818
|
-
commandParts: readonly string[];
|
|
819
|
-
version?: string;
|
|
820
|
-
attempts: readonly CliRunnerAttempt[];
|
|
821
|
-
}
|
|
822
|
-
/**
|
|
823
|
-
* 解析 CLI 命令字符串为数组
|
|
824
|
-
*
|
|
825
|
-
* 支持两种格式:
|
|
826
|
-
* 1. JSON 数组:以 `[` 开头,如 `["npx", "@fission-ai/openspec"]`
|
|
827
|
-
* 2. shell-like 字符串:支持引号与基础转义
|
|
828
|
-
*/
|
|
829
|
-
declare function parseCliCommand(command: string): string[];
|
|
830
|
-
declare function buildCliRunnerCandidates(options: {
|
|
831
|
-
configuredCommandParts?: readonly string[];
|
|
832
|
-
userAgent?: string | null;
|
|
833
|
-
}): readonly CliRunnerCandidate[];
|
|
834
|
-
declare function createCleanCliEnv(baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
835
|
-
/** CLI 嗅探结果 */
|
|
836
|
-
interface CliSniffResult {
|
|
837
|
-
/** 是否存在全局 openspec 命令 */
|
|
838
|
-
hasGlobal: boolean;
|
|
839
|
-
/** 全局命令的版本(仅当 hasGlobal 为 true 时有值) */
|
|
840
|
-
version?: string;
|
|
841
|
-
/** npm registry 上的最新版本 */
|
|
842
|
-
latestVersion?: string;
|
|
843
|
-
/** 是否有可用更新 */
|
|
844
|
-
hasUpdate?: boolean;
|
|
845
|
-
/** 错误信息(如果检测失败) */
|
|
846
|
-
error?: string;
|
|
847
|
-
}
|
|
848
|
-
/**
|
|
849
|
-
* 嗅探全局 openspec 命令(无缓存)
|
|
850
|
-
*
|
|
851
|
-
* 使用 `openspec --version` 检测是否有全局命令可用。
|
|
852
|
-
* 同时检查 npm registry 上的最新版本。
|
|
853
|
-
* 每次调用都会重新检测,不使用缓存。
|
|
854
|
-
*/
|
|
855
|
-
declare function sniffGlobalCli(): Promise<CliSniffResult>;
|
|
856
|
-
/**
|
|
857
|
-
* 获取默认 CLI 命令(异步,带检测)
|
|
858
|
-
*
|
|
859
|
-
* @returns CLI 命令数组,如 `['openspec']` 或 `['npx', '@fission-ai/openspec']`
|
|
860
|
-
*/
|
|
861
|
-
declare function getDefaultCliCommand(): Promise<readonly string[]>;
|
|
862
|
-
/**
|
|
863
|
-
* 获取默认 CLI 命令的字符串形式(用于 UI 显示)
|
|
864
|
-
*/
|
|
865
|
-
declare function getDefaultCliCommandString(): Promise<string>;
|
|
866
|
-
declare const TerminalConfigSchema: z.ZodObject<{
|
|
867
|
-
fontSize: z.ZodDefault<z.ZodNumber>;
|
|
868
|
-
fontFamily: z.ZodDefault<z.ZodString>;
|
|
869
|
-
cursorBlink: z.ZodDefault<z.ZodBoolean>;
|
|
870
|
-
cursorStyle: z.ZodDefault<z.ZodEnum<["block", "underline", "bar"]>>;
|
|
871
|
-
scrollback: z.ZodDefault<z.ZodNumber>;
|
|
872
|
-
useTheme: z.ZodDefault<z.ZodEnum<["app", "light", "dark", "system"]>>;
|
|
873
|
-
lightTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
|
|
874
|
-
darkTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
|
|
875
|
-
rendererEngine: z.ZodDefault<z.ZodEnum<["xterm", "ghostty"]>>;
|
|
876
|
-
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>>;
|
|
877
|
-
bellVolume: z.ZodDefault<z.ZodNumber>;
|
|
878
|
-
}, "strip", z.ZodTypeAny, {
|
|
879
|
-
fontSize: number;
|
|
880
|
-
fontFamily: string;
|
|
881
|
-
cursorBlink: boolean;
|
|
882
|
-
cursorStyle: "block" | "underline" | "bar";
|
|
883
|
-
scrollback: number;
|
|
884
|
-
useTheme: "app" | "light" | "dark" | "system";
|
|
885
|
-
lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
886
|
-
darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
887
|
-
rendererEngine: "xterm" | "ghostty";
|
|
888
|
-
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}`;
|
|
889
|
-
bellVolume: number;
|
|
890
|
-
}, {
|
|
891
|
-
fontSize?: number | undefined;
|
|
892
|
-
fontFamily?: string | undefined;
|
|
893
|
-
cursorBlink?: boolean | undefined;
|
|
894
|
-
cursorStyle?: "block" | "underline" | "bar" | undefined;
|
|
895
|
-
scrollback?: number | undefined;
|
|
896
|
-
useTheme?: "app" | "light" | "dark" | "system" | undefined;
|
|
897
|
-
lightTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
898
|
-
darkTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
899
|
-
rendererEngine?: "xterm" | "ghostty" | undefined;
|
|
900
|
-
bellSound?: unknown;
|
|
901
|
-
bellVolume?: number | undefined;
|
|
902
|
-
}>;
|
|
903
|
-
type TerminalConfig = z.infer<typeof TerminalConfigSchema>;
|
|
904
|
-
declare const DashboardConfigSchema: z.ZodObject<{
|
|
905
|
-
trendPointLimit: z.ZodDefault<z.ZodNumber>;
|
|
906
|
-
}, "strip", z.ZodTypeAny, {
|
|
907
|
-
trendPointLimit: number;
|
|
908
|
-
}, {
|
|
909
|
-
trendPointLimit?: number | undefined;
|
|
910
|
-
}>;
|
|
911
|
-
type DashboardConfig = z.infer<typeof DashboardConfigSchema>;
|
|
912
|
-
declare const DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET = 1000;
|
|
913
|
-
declare const GitConfigSchema: z.ZodObject<{
|
|
914
|
-
diffEagerLineBudget: z.ZodDefault<z.ZodNumber>;
|
|
915
|
-
}, "strip", z.ZodTypeAny, {
|
|
916
|
-
diffEagerLineBudget: number;
|
|
917
|
-
}, {
|
|
918
|
-
diffEagerLineBudget?: number | undefined;
|
|
919
|
-
}>;
|
|
920
|
-
type GitConfig = z.infer<typeof GitConfigSchema>;
|
|
921
|
-
declare const OpsxConfigSchema: z.ZodObject<{
|
|
922
|
-
agentInvocationMode: z.ZodDefault<z.ZodEnum<["compose", "command"]>>;
|
|
923
|
-
}, "strip", z.ZodTypeAny, {
|
|
924
|
-
agentInvocationMode: "command" | "compose";
|
|
925
|
-
}, {
|
|
926
|
-
agentInvocationMode?: "command" | "compose" | undefined;
|
|
927
|
-
}>;
|
|
928
|
-
type OpsxConfig = z.infer<typeof OpsxConfigSchema>;
|
|
929
|
-
/**
|
|
930
|
-
* OpenSpecUI 配置 Schema
|
|
931
|
-
*
|
|
932
|
-
* 存储在 openspec/.openspecui.json 中,利用文件监听实现响应式更新
|
|
933
|
-
*/
|
|
934
|
-
declare const OpenSpecUIConfigSchema: z.ZodObject<{
|
|
935
|
-
/** CLI 命令配置 */
|
|
936
|
-
cli: z.ZodDefault<z.ZodObject<{
|
|
937
|
-
/** CLI 命令前缀 */
|
|
938
|
-
command: z.ZodOptional<z.ZodString>;
|
|
939
|
-
/** CLI 命令参数 */
|
|
940
|
-
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
941
|
-
}, "strip", z.ZodTypeAny, {
|
|
942
|
-
command?: string | undefined;
|
|
943
|
-
args?: string[] | undefined;
|
|
944
|
-
}, {
|
|
945
|
-
command?: string | undefined;
|
|
946
|
-
args?: string[] | undefined;
|
|
947
|
-
}>>;
|
|
948
|
-
/** 主题 */
|
|
949
|
-
theme: z.ZodDefault<z.ZodEnum<["light", "dark", "system"]>>;
|
|
950
|
-
/** 代码编辑器配置 */
|
|
951
|
-
codeEditor: z.ZodDefault<z.ZodObject<{
|
|
952
|
-
theme: z.ZodDefault<z.ZodEnum<["github", "material", "vscode", "tokyo", "gruvbox", "monokai", "nord"]>>;
|
|
953
|
-
}, "strip", z.ZodTypeAny, {
|
|
954
|
-
theme: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox";
|
|
955
|
-
}, {
|
|
956
|
-
theme?: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox" | undefined;
|
|
957
|
-
}>>;
|
|
958
|
-
/** Hosted app 基础 URL(空字符串表示使用官方默认值) */
|
|
959
|
-
appBaseUrl: z.ZodDefault<z.ZodString>;
|
|
960
|
-
/** OPSX workflow invocation preferences */
|
|
961
|
-
opsx: z.ZodDefault<z.ZodObject<{
|
|
962
|
-
agentInvocationMode: z.ZodDefault<z.ZodEnum<["compose", "command"]>>;
|
|
963
|
-
}, "strip", z.ZodTypeAny, {
|
|
964
|
-
agentInvocationMode: "command" | "compose";
|
|
965
|
-
}, {
|
|
966
|
-
agentInvocationMode?: "command" | "compose" | undefined;
|
|
967
|
-
}>>;
|
|
968
|
-
/** 终端配置 */
|
|
969
|
-
terminal: z.ZodDefault<z.ZodObject<{
|
|
970
|
-
fontSize: z.ZodDefault<z.ZodNumber>;
|
|
971
|
-
fontFamily: z.ZodDefault<z.ZodString>;
|
|
972
|
-
cursorBlink: z.ZodDefault<z.ZodBoolean>;
|
|
973
|
-
cursorStyle: z.ZodDefault<z.ZodEnum<["block", "underline", "bar"]>>;
|
|
974
|
-
scrollback: z.ZodDefault<z.ZodNumber>;
|
|
975
|
-
useTheme: z.ZodDefault<z.ZodEnum<["app", "light", "dark", "system"]>>;
|
|
976
|
-
lightTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
|
|
977
|
-
darkTheme: z.ZodDefault<z.ZodEnum<["default-light", "default-dark", "monokai", "nord", "solarized-light", "solarized-dark"]>>;
|
|
978
|
-
rendererEngine: z.ZodDefault<z.ZodEnum<["xterm", "ghostty"]>>;
|
|
979
|
-
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>>;
|
|
980
|
-
bellVolume: z.ZodDefault<z.ZodNumber>;
|
|
981
|
-
}, "strip", z.ZodTypeAny, {
|
|
982
|
-
fontSize: number;
|
|
983
|
-
fontFamily: string;
|
|
984
|
-
cursorBlink: boolean;
|
|
985
|
-
cursorStyle: "block" | "underline" | "bar";
|
|
986
|
-
scrollback: number;
|
|
987
|
-
useTheme: "app" | "light" | "dark" | "system";
|
|
988
|
-
lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
989
|
-
darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
990
|
-
rendererEngine: "xterm" | "ghostty";
|
|
991
|
-
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}`;
|
|
992
|
-
bellVolume: number;
|
|
993
|
-
}, {
|
|
994
|
-
fontSize?: number | undefined;
|
|
995
|
-
fontFamily?: string | undefined;
|
|
996
|
-
cursorBlink?: boolean | undefined;
|
|
997
|
-
cursorStyle?: "block" | "underline" | "bar" | undefined;
|
|
998
|
-
scrollback?: number | undefined;
|
|
999
|
-
useTheme?: "app" | "light" | "dark" | "system" | undefined;
|
|
1000
|
-
lightTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
1001
|
-
darkTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
1002
|
-
rendererEngine?: "xterm" | "ghostty" | undefined;
|
|
1003
|
-
bellSound?: unknown;
|
|
1004
|
-
bellVolume?: number | undefined;
|
|
1005
|
-
}>>;
|
|
1006
|
-
/** Dashboard 配置 */
|
|
1007
|
-
dashboard: z.ZodDefault<z.ZodObject<{
|
|
1008
|
-
trendPointLimit: z.ZodDefault<z.ZodNumber>;
|
|
1009
|
-
}, "strip", z.ZodTypeAny, {
|
|
1010
|
-
trendPointLimit: number;
|
|
1011
|
-
}, {
|
|
1012
|
-
trendPointLimit?: number | undefined;
|
|
1013
|
-
}>>;
|
|
1014
|
-
/** Git detail 配置 */
|
|
1015
|
-
git: z.ZodDefault<z.ZodObject<{
|
|
1016
|
-
diffEagerLineBudget: z.ZodDefault<z.ZodNumber>;
|
|
1017
|
-
}, "strip", z.ZodTypeAny, {
|
|
1018
|
-
diffEagerLineBudget: number;
|
|
1019
|
-
}, {
|
|
1020
|
-
diffEagerLineBudget?: number | undefined;
|
|
1021
|
-
}>>;
|
|
1022
|
-
/** Notification preferences */
|
|
1023
|
-
notifications: z.ZodDefault<z.ZodObject<{
|
|
1024
|
-
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>>;
|
|
1025
|
-
volume: z.ZodDefault<z.ZodNumber>;
|
|
1026
|
-
systemNotificationsEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
1027
|
-
}, "strip", z.ZodTypeAny, {
|
|
1028
|
-
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}`;
|
|
1029
|
-
volume: number;
|
|
1030
|
-
systemNotificationsEnabled: boolean;
|
|
1031
|
-
}, {
|
|
1032
|
-
sound?: unknown;
|
|
1033
|
-
volume?: number | undefined;
|
|
1034
|
-
systemNotificationsEnabled?: boolean | undefined;
|
|
1035
|
-
}>>;
|
|
1036
|
-
/** Browser-side document translation preferences */
|
|
1037
|
-
translation: z.ZodDefault<z.ZodObject<{
|
|
1038
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1039
|
-
targetLanguage: z.ZodDefault<z.ZodString>;
|
|
1040
|
-
displayMode: z.ZodDefault<z.ZodEnum<["direct", "bilingual"]>>;
|
|
1041
|
-
cacheEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
1042
|
-
engineId: z.ZodDefault<z.ZodEnum<["browser", "local", "local-ct2", "local-llama", "openai"]>>;
|
|
1043
|
-
engines: z.ZodDefault<z.ZodObject<{
|
|
1044
|
-
local: z.ZodDefault<z.ZodObject<{
|
|
1045
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1046
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1047
|
-
}, "strip", z.ZodTypeAny, {
|
|
1048
|
-
model?: string | undefined;
|
|
1049
|
-
selectedGroupId?: string | undefined;
|
|
1050
|
-
}, {
|
|
1051
|
-
model?: string | undefined;
|
|
1052
|
-
selectedGroupId?: string | undefined;
|
|
1053
|
-
}>>;
|
|
1054
|
-
localCt2: z.ZodDefault<z.ZodObject<{
|
|
1055
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1056
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1057
|
-
}, "strip", z.ZodTypeAny, {
|
|
1058
|
-
model?: string | undefined;
|
|
1059
|
-
selectedGroupId?: string | undefined;
|
|
1060
|
-
}, {
|
|
1061
|
-
model?: string | undefined;
|
|
1062
|
-
selectedGroupId?: string | undefined;
|
|
1063
|
-
}>>;
|
|
1064
|
-
localLlama: z.ZodDefault<z.ZodObject<{
|
|
1065
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1066
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1067
|
-
}, "strip", z.ZodTypeAny, {
|
|
1068
|
-
model?: string | undefined;
|
|
1069
|
-
selectedGroupId?: string | undefined;
|
|
1070
|
-
}, {
|
|
1071
|
-
model?: string | undefined;
|
|
1072
|
-
selectedGroupId?: string | undefined;
|
|
1073
|
-
}>>;
|
|
1074
|
-
openai: z.ZodDefault<z.ZodObject<{
|
|
1075
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1076
|
-
}, "strip", z.ZodTypeAny, {
|
|
1077
|
-
model?: string | undefined;
|
|
1078
|
-
}, {
|
|
1079
|
-
model?: string | undefined;
|
|
1080
|
-
}>>;
|
|
1081
|
-
}, "strip", z.ZodTypeAny, {
|
|
1082
|
-
local: {
|
|
1083
|
-
model?: string | undefined;
|
|
1084
|
-
selectedGroupId?: string | undefined;
|
|
1085
|
-
};
|
|
1086
|
-
localCt2: {
|
|
1087
|
-
model?: string | undefined;
|
|
1088
|
-
selectedGroupId?: string | undefined;
|
|
1089
|
-
};
|
|
1090
|
-
localLlama: {
|
|
1091
|
-
model?: string | undefined;
|
|
1092
|
-
selectedGroupId?: string | undefined;
|
|
1093
|
-
};
|
|
1094
|
-
openai: {
|
|
1095
|
-
model?: string | undefined;
|
|
1096
|
-
};
|
|
1097
|
-
}, {
|
|
1098
|
-
local?: {
|
|
1099
|
-
model?: string | undefined;
|
|
1100
|
-
selectedGroupId?: string | undefined;
|
|
1101
|
-
} | undefined;
|
|
1102
|
-
localCt2?: {
|
|
1103
|
-
model?: string | undefined;
|
|
1104
|
-
selectedGroupId?: string | undefined;
|
|
1105
|
-
} | undefined;
|
|
1106
|
-
localLlama?: {
|
|
1107
|
-
model?: string | undefined;
|
|
1108
|
-
selectedGroupId?: string | undefined;
|
|
1109
|
-
} | undefined;
|
|
1110
|
-
openai?: {
|
|
1111
|
-
model?: string | undefined;
|
|
1112
|
-
} | undefined;
|
|
1113
|
-
}>>;
|
|
1114
|
-
}, "strip", z.ZodTypeAny, {
|
|
1115
|
-
enabled: boolean;
|
|
1116
|
-
targetLanguage: string;
|
|
1117
|
-
displayMode: "direct" | "bilingual";
|
|
1118
|
-
cacheEnabled: boolean;
|
|
1119
|
-
engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
|
|
1120
|
-
engines: {
|
|
1121
|
-
local: {
|
|
1122
|
-
model?: string | undefined;
|
|
1123
|
-
selectedGroupId?: string | undefined;
|
|
1124
|
-
};
|
|
1125
|
-
localCt2: {
|
|
1126
|
-
model?: string | undefined;
|
|
1127
|
-
selectedGroupId?: string | undefined;
|
|
1128
|
-
};
|
|
1129
|
-
localLlama: {
|
|
1130
|
-
model?: string | undefined;
|
|
1131
|
-
selectedGroupId?: string | undefined;
|
|
1132
|
-
};
|
|
1133
|
-
openai: {
|
|
1134
|
-
model?: string | undefined;
|
|
1135
|
-
};
|
|
1136
|
-
};
|
|
1137
|
-
}, {
|
|
1138
|
-
enabled?: boolean | undefined;
|
|
1139
|
-
targetLanguage?: string | undefined;
|
|
1140
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1141
|
-
cacheEnabled?: boolean | undefined;
|
|
1142
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1143
|
-
engines?: {
|
|
1144
|
-
local?: {
|
|
1145
|
-
model?: string | undefined;
|
|
1146
|
-
selectedGroupId?: string | undefined;
|
|
1147
|
-
} | undefined;
|
|
1148
|
-
localCt2?: {
|
|
1149
|
-
model?: string | undefined;
|
|
1150
|
-
selectedGroupId?: string | undefined;
|
|
1151
|
-
} | undefined;
|
|
1152
|
-
localLlama?: {
|
|
1153
|
-
model?: string | undefined;
|
|
1154
|
-
selectedGroupId?: string | undefined;
|
|
1155
|
-
} | undefined;
|
|
1156
|
-
openai?: {
|
|
1157
|
-
model?: string | undefined;
|
|
1158
|
-
} | undefined;
|
|
1159
|
-
} | undefined;
|
|
1160
|
-
}>>;
|
|
1161
|
-
}, "strip", z.ZodTypeAny, {
|
|
1162
|
-
terminal: {
|
|
1163
|
-
fontSize: number;
|
|
1164
|
-
fontFamily: string;
|
|
1165
|
-
cursorBlink: boolean;
|
|
1166
|
-
cursorStyle: "block" | "underline" | "bar";
|
|
1167
|
-
scrollback: number;
|
|
1168
|
-
useTheme: "app" | "light" | "dark" | "system";
|
|
1169
|
-
lightTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
1170
|
-
darkTheme: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark";
|
|
1171
|
-
rendererEngine: "xterm" | "ghostty";
|
|
1172
|
-
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}`;
|
|
1173
|
-
bellVolume: number;
|
|
1174
|
-
};
|
|
1175
|
-
git: {
|
|
1176
|
-
diffEagerLineBudget: number;
|
|
1177
|
-
};
|
|
1178
|
-
theme: "light" | "dark" | "system";
|
|
1179
|
-
cli: {
|
|
1180
|
-
command?: string | undefined;
|
|
1181
|
-
args?: string[] | undefined;
|
|
1182
|
-
};
|
|
1183
|
-
codeEditor: {
|
|
1184
|
-
theme: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox";
|
|
1185
|
-
};
|
|
1186
|
-
appBaseUrl: string;
|
|
1187
|
-
opsx: {
|
|
1188
|
-
agentInvocationMode: "command" | "compose";
|
|
1189
|
-
};
|
|
1190
|
-
dashboard: {
|
|
1191
|
-
trendPointLimit: number;
|
|
1192
|
-
};
|
|
1193
|
-
notifications: {
|
|
1194
|
-
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}`;
|
|
1195
|
-
volume: number;
|
|
1196
|
-
systemNotificationsEnabled: boolean;
|
|
1197
|
-
};
|
|
1198
|
-
translation: {
|
|
1199
|
-
enabled: boolean;
|
|
1200
|
-
targetLanguage: string;
|
|
1201
|
-
displayMode: "direct" | "bilingual";
|
|
1202
|
-
cacheEnabled: boolean;
|
|
1203
|
-
engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
|
|
1204
|
-
engines: {
|
|
1205
|
-
local: {
|
|
1206
|
-
model?: string | undefined;
|
|
1207
|
-
selectedGroupId?: string | undefined;
|
|
1208
|
-
};
|
|
1209
|
-
localCt2: {
|
|
1210
|
-
model?: string | undefined;
|
|
1211
|
-
selectedGroupId?: string | undefined;
|
|
1212
|
-
};
|
|
1213
|
-
localLlama: {
|
|
1214
|
-
model?: string | undefined;
|
|
1215
|
-
selectedGroupId?: string | undefined;
|
|
1216
|
-
};
|
|
1217
|
-
openai: {
|
|
1218
|
-
model?: string | undefined;
|
|
1219
|
-
};
|
|
1220
|
-
};
|
|
1221
|
-
};
|
|
1222
|
-
}, {
|
|
1223
|
-
terminal?: {
|
|
1224
|
-
fontSize?: number | undefined;
|
|
1225
|
-
fontFamily?: string | undefined;
|
|
1226
|
-
cursorBlink?: boolean | undefined;
|
|
1227
|
-
cursorStyle?: "block" | "underline" | "bar" | undefined;
|
|
1228
|
-
scrollback?: number | undefined;
|
|
1229
|
-
useTheme?: "app" | "light" | "dark" | "system" | undefined;
|
|
1230
|
-
lightTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
1231
|
-
darkTheme?: "default-light" | "default-dark" | "monokai" | "nord" | "solarized-light" | "solarized-dark" | undefined;
|
|
1232
|
-
rendererEngine?: "xterm" | "ghostty" | undefined;
|
|
1233
|
-
bellSound?: unknown;
|
|
1234
|
-
bellVolume?: number | undefined;
|
|
1235
|
-
} | undefined;
|
|
1236
|
-
git?: {
|
|
1237
|
-
diffEagerLineBudget?: number | undefined;
|
|
1238
|
-
} | undefined;
|
|
1239
|
-
theme?: "light" | "dark" | "system" | undefined;
|
|
1240
|
-
cli?: {
|
|
1241
|
-
command?: string | undefined;
|
|
1242
|
-
args?: string[] | undefined;
|
|
1243
|
-
} | undefined;
|
|
1244
|
-
codeEditor?: {
|
|
1245
|
-
theme?: "monokai" | "nord" | "github" | "material" | "vscode" | "tokyo" | "gruvbox" | undefined;
|
|
1246
|
-
} | undefined;
|
|
1247
|
-
appBaseUrl?: string | undefined;
|
|
1248
|
-
opsx?: {
|
|
1249
|
-
agentInvocationMode?: "command" | "compose" | undefined;
|
|
1250
|
-
} | undefined;
|
|
1251
|
-
dashboard?: {
|
|
1252
|
-
trendPointLimit?: number | undefined;
|
|
1253
|
-
} | undefined;
|
|
1254
|
-
notifications?: {
|
|
1255
|
-
sound?: unknown;
|
|
1256
|
-
volume?: number | undefined;
|
|
1257
|
-
systemNotificationsEnabled?: boolean | undefined;
|
|
1258
|
-
} | undefined;
|
|
1259
|
-
translation?: {
|
|
1260
|
-
enabled?: boolean | undefined;
|
|
1261
|
-
targetLanguage?: string | undefined;
|
|
1262
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1263
|
-
cacheEnabled?: boolean | undefined;
|
|
1264
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1265
|
-
engines?: {
|
|
1266
|
-
local?: {
|
|
1267
|
-
model?: string | undefined;
|
|
1268
|
-
selectedGroupId?: string | undefined;
|
|
1269
|
-
} | undefined;
|
|
1270
|
-
localCt2?: {
|
|
1271
|
-
model?: string | undefined;
|
|
1272
|
-
selectedGroupId?: string | undefined;
|
|
1273
|
-
} | undefined;
|
|
1274
|
-
localLlama?: {
|
|
1275
|
-
model?: string | undefined;
|
|
1276
|
-
selectedGroupId?: string | undefined;
|
|
1277
|
-
} | undefined;
|
|
1278
|
-
openai?: {
|
|
1279
|
-
model?: string | undefined;
|
|
1280
|
-
} | undefined;
|
|
1281
|
-
} | undefined;
|
|
1282
|
-
} | undefined;
|
|
1283
|
-
}>;
|
|
1284
|
-
type OpenSpecUIConfig = z.infer<typeof OpenSpecUIConfigSchema>;
|
|
1285
|
-
type OpenSpecUIConfigUpdate = {
|
|
1286
|
-
cli?: {
|
|
1287
|
-
command?: string | null;
|
|
1288
|
-
args?: string[] | null;
|
|
1289
|
-
};
|
|
1290
|
-
theme?: OpenSpecUIConfig['theme'];
|
|
1291
|
-
codeEditor?: Partial<OpenSpecUIConfig['codeEditor']>;
|
|
1292
|
-
appBaseUrl?: OpenSpecUIConfig['appBaseUrl'];
|
|
1293
|
-
opsx?: Partial<OpsxConfig>;
|
|
1294
|
-
terminal?: Partial<TerminalConfig>;
|
|
1295
|
-
dashboard?: Partial<DashboardConfig>;
|
|
1296
|
-
git?: Partial<GitConfig>;
|
|
1297
|
-
notifications?: Partial<NotificationSettings>;
|
|
1298
|
-
translation?: DocumentTranslationConfigUpdate;
|
|
1299
|
-
};
|
|
1300
|
-
interface OpenSpecUIConfigPresence {
|
|
1301
|
-
translation: {
|
|
1302
|
-
enabled: boolean;
|
|
1303
|
-
targetLanguage: boolean;
|
|
1304
|
-
displayMode: boolean;
|
|
1305
|
-
cacheEnabled: boolean;
|
|
1306
|
-
engineId: boolean;
|
|
1307
|
-
engines: {
|
|
1308
|
-
local: boolean;
|
|
1309
|
-
localCt2: boolean;
|
|
1310
|
-
localLlama: boolean;
|
|
1311
|
-
openai: boolean;
|
|
1312
|
-
};
|
|
1313
|
-
};
|
|
1314
|
-
}
|
|
1315
|
-
/** 默认配置(静态,用于测试和类型) */
|
|
1316
|
-
declare const DEFAULT_CONFIG: OpenSpecUIConfig;
|
|
1317
|
-
/**
|
|
1318
|
-
* 配置管理器
|
|
1319
|
-
*
|
|
1320
|
-
* 负责读写 openspec/.openspecui.json 配置文件。
|
|
1321
|
-
* 读取操作使用 reactiveReadFile,支持响应式更新。
|
|
1322
|
-
*
|
|
1323
|
-
* `.openspecui.json` 是预期中的项目级 UI 配置文件,但只有显式偏离默认值的
|
|
1324
|
-
* override 才会落盘。仅启动 openspecui 或仅依赖默认配置时,不应触发文件写入。
|
|
1325
|
-
*/
|
|
1326
|
-
declare class ConfigManager {
|
|
1327
|
-
private configPath;
|
|
1328
|
-
private projectDir;
|
|
1329
|
-
private resolvedRunner;
|
|
1330
|
-
private resolvingRunnerPromise;
|
|
1331
|
-
private writeChain;
|
|
1332
|
-
constructor(projectDir: string);
|
|
1333
|
-
private parseConfigContent;
|
|
1334
|
-
/**
|
|
1335
|
-
* 读取配置(响应式)
|
|
1336
|
-
*
|
|
1337
|
-
* 如果配置文件不存在,返回默认配置。
|
|
1338
|
-
* 如果配置文件格式错误,返回默认配置并打印警告。
|
|
1339
|
-
*/
|
|
1340
|
-
readConfig(): Promise<OpenSpecUIConfig>;
|
|
1341
|
-
readConfigPresence(): Promise<OpenSpecUIConfigPresence>;
|
|
1342
|
-
/**
|
|
1343
|
-
* 写入配置
|
|
1344
|
-
*
|
|
1345
|
-
* 会触发文件监听,自动更新订阅者。
|
|
1346
|
-
*/
|
|
1347
|
-
writeConfig(config: OpenSpecUIConfigUpdate): Promise<void>;
|
|
1348
|
-
private enqueueWrite;
|
|
1349
|
-
private resolveDefaultCliCommandParts;
|
|
1350
|
-
private isDefaultCliCommand;
|
|
1351
|
-
/**
|
|
1352
|
-
* 解析并缓存可用 CLI runner。
|
|
1353
|
-
*/
|
|
1354
|
-
private resolveCliRunner;
|
|
1355
|
-
private resolveCliRunnerUncached;
|
|
1356
|
-
/**
|
|
1357
|
-
* 获取 CLI 命令(数组形式)
|
|
1358
|
-
*/
|
|
1359
|
-
getCliCommand(): Promise<readonly string[]>;
|
|
1360
|
-
/**
|
|
1361
|
-
* 获取 CLI 命令的字符串形式(用于 UI 显示)
|
|
1362
|
-
*/
|
|
1363
|
-
getCliCommandString(): Promise<string>;
|
|
1364
|
-
/**
|
|
1365
|
-
* 获取 CLI 解析结果(用于诊断)
|
|
1366
|
-
*/
|
|
1367
|
-
getResolvedCliRunner(): Promise<ResolvedCliRunner>;
|
|
1368
|
-
/**
|
|
1369
|
-
* 清理 CLI 解析缓存(用于 ENOENT 自愈)
|
|
1370
|
-
*/
|
|
1371
|
-
invalidateResolvedCliRunner(): void;
|
|
1372
|
-
/**
|
|
1373
|
-
* 设置 CLI 命令
|
|
1374
|
-
*/
|
|
1375
|
-
setCliCommand(command: string): Promise<void>;
|
|
1376
|
-
private getConfiguredCommandParts;
|
|
1377
|
-
/**
|
|
1378
|
-
* 设置主题
|
|
1379
|
-
*/
|
|
1380
|
-
setTheme(theme: OpenSpecUIConfig['theme']): Promise<void>;
|
|
1381
|
-
/**
|
|
1382
|
-
* 设置终端配置(部分更新)
|
|
1383
|
-
*/
|
|
1384
|
-
setTerminalConfig(terminal: Partial<TerminalConfig>): Promise<void>;
|
|
1385
|
-
}
|
|
1386
|
-
//#endregion
|
|
1387
|
-
//#region src/global-settings.d.ts
|
|
1388
|
-
declare const DocumentTranslationGlobalSettingsSchema: z.ZodObject<{
|
|
1389
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1390
|
-
targetLanguage: z.ZodDefault<z.ZodString>;
|
|
1391
|
-
displayMode: z.ZodDefault<z.ZodEnum<["direct", "bilingual"]>>;
|
|
1392
|
-
cacheEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
1393
|
-
}, "strip", z.ZodTypeAny, {
|
|
1394
|
-
enabled: boolean;
|
|
1395
|
-
targetLanguage: string;
|
|
1396
|
-
displayMode: "direct" | "bilingual";
|
|
1397
|
-
cacheEnabled: boolean;
|
|
1398
|
-
}, {
|
|
1399
|
-
enabled?: boolean | undefined;
|
|
1400
|
-
targetLanguage?: string | undefined;
|
|
1401
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1402
|
-
cacheEnabled?: boolean | undefined;
|
|
1403
|
-
}>;
|
|
1404
|
-
declare const DocumentTranslationGlobalSettingsUpdateSchema: z.ZodObject<{
|
|
1405
|
-
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1406
|
-
targetLanguage: z.ZodOptional<z.ZodString>;
|
|
1407
|
-
displayMode: z.ZodOptional<z.ZodEnum<["direct", "bilingual"]>>;
|
|
1408
|
-
cacheEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
1409
|
-
}, "strip", z.ZodTypeAny, {
|
|
1410
|
-
enabled?: boolean | undefined;
|
|
1411
|
-
targetLanguage?: string | undefined;
|
|
1412
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1413
|
-
cacheEnabled?: boolean | undefined;
|
|
1414
|
-
}, {
|
|
1415
|
-
enabled?: boolean | undefined;
|
|
1416
|
-
targetLanguage?: string | undefined;
|
|
1417
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1418
|
-
cacheEnabled?: boolean | undefined;
|
|
1419
|
-
}>;
|
|
1420
|
-
type DocumentTranslationGlobalSettings = z.infer<typeof DocumentTranslationGlobalSettingsSchema>;
|
|
1421
|
-
declare const OpenSpecUIGlobalSettingsSchema: z.ZodObject<{
|
|
1422
|
-
translation: z.ZodDefault<z.ZodObject<{
|
|
1423
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1424
|
-
targetLanguage: z.ZodDefault<z.ZodString>;
|
|
1425
|
-
displayMode: z.ZodDefault<z.ZodEnum<["direct", "bilingual"]>>;
|
|
1426
|
-
cacheEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
1427
|
-
}, "strip", z.ZodTypeAny, {
|
|
1428
|
-
enabled: boolean;
|
|
1429
|
-
targetLanguage: string;
|
|
1430
|
-
displayMode: "direct" | "bilingual";
|
|
1431
|
-
cacheEnabled: boolean;
|
|
1432
|
-
}, {
|
|
1433
|
-
enabled?: boolean | undefined;
|
|
1434
|
-
targetLanguage?: string | undefined;
|
|
1435
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1436
|
-
cacheEnabled?: boolean | undefined;
|
|
1437
|
-
}>>;
|
|
1438
|
-
translationCache: z.ZodDefault<z.ZodObject<{
|
|
1439
|
-
entryLimit: z.ZodDefault<z.ZodNumber>;
|
|
1440
|
-
}, "strip", z.ZodTypeAny, {
|
|
1441
|
-
entryLimit: number;
|
|
1442
|
-
}, {
|
|
1443
|
-
entryLimit?: number | undefined;
|
|
1444
|
-
}>>;
|
|
1445
|
-
translationEngines: z.ZodDefault<z.ZodObject<{
|
|
1446
|
-
engineId: z.ZodDefault<z.ZodEnum<["browser", "local", "local-ct2", "local-llama", "openai"]>>;
|
|
1447
|
-
openai: z.ZodDefault<z.ZodObject<{
|
|
1448
|
-
baseUrl: z.ZodDefault<z.ZodString>;
|
|
1449
|
-
token: z.ZodDefault<z.ZodString>;
|
|
1450
|
-
model: z.ZodDefault<z.ZodString>;
|
|
1451
|
-
}, "strip", z.ZodTypeAny, {
|
|
1452
|
-
model: string;
|
|
1453
|
-
baseUrl: string;
|
|
1454
|
-
token: string;
|
|
1455
|
-
}, {
|
|
1456
|
-
model?: string | undefined;
|
|
1457
|
-
baseUrl?: string | undefined;
|
|
1458
|
-
token?: string | undefined;
|
|
1459
|
-
}>>;
|
|
1460
|
-
local: z.ZodDefault<z.ZodObject<{
|
|
1461
|
-
model: z.ZodDefault<z.ZodString>;
|
|
1462
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1463
|
-
hfEndpoint: z.ZodDefault<z.ZodString>;
|
|
1464
|
-
memoryBudgetPercent: z.ZodDefault<z.ZodNumber>;
|
|
1465
|
-
}, "strip", z.ZodTypeAny, {
|
|
1466
|
-
model: string;
|
|
1467
|
-
hfEndpoint: string;
|
|
1468
|
-
memoryBudgetPercent: number;
|
|
1469
|
-
selectedGroupId?: string | undefined;
|
|
1470
|
-
}, {
|
|
1471
|
-
model?: string | undefined;
|
|
1472
|
-
selectedGroupId?: string | undefined;
|
|
1473
|
-
hfEndpoint?: string | undefined;
|
|
1474
|
-
memoryBudgetPercent?: number | undefined;
|
|
1475
|
-
}>>;
|
|
1476
|
-
localCt2: z.ZodDefault<z.ZodObject<{
|
|
1477
|
-
model: z.ZodDefault<z.ZodString>;
|
|
1478
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1479
|
-
hfEndpoint: z.ZodDefault<z.ZodString>;
|
|
1480
|
-
memoryBudgetPercent: z.ZodDefault<z.ZodNumber>;
|
|
1481
|
-
}, "strip", z.ZodTypeAny, {
|
|
1482
|
-
model: string;
|
|
1483
|
-
hfEndpoint: string;
|
|
1484
|
-
memoryBudgetPercent: number;
|
|
1485
|
-
selectedGroupId?: string | undefined;
|
|
1486
|
-
}, {
|
|
1487
|
-
model?: string | undefined;
|
|
1488
|
-
selectedGroupId?: string | undefined;
|
|
1489
|
-
hfEndpoint?: string | undefined;
|
|
1490
|
-
memoryBudgetPercent?: number | undefined;
|
|
1491
|
-
}>>;
|
|
1492
|
-
localLlama: z.ZodDefault<z.ZodObject<{
|
|
1493
|
-
model: z.ZodDefault<z.ZodString>;
|
|
1494
|
-
selectedGroupId: z.ZodOptional<z.ZodString>;
|
|
1495
|
-
hfEndpoint: z.ZodDefault<z.ZodString>;
|
|
1496
|
-
memoryBudgetPercent: z.ZodDefault<z.ZodNumber>;
|
|
1497
|
-
}, "strip", z.ZodTypeAny, {
|
|
1498
|
-
model: string;
|
|
1499
|
-
hfEndpoint: string;
|
|
1500
|
-
memoryBudgetPercent: number;
|
|
1501
|
-
selectedGroupId?: string | undefined;
|
|
1502
|
-
}, {
|
|
1503
|
-
model?: string | undefined;
|
|
1504
|
-
selectedGroupId?: string | undefined;
|
|
1505
|
-
hfEndpoint?: string | undefined;
|
|
1506
|
-
memoryBudgetPercent?: number | undefined;
|
|
1507
|
-
}>>;
|
|
1508
|
-
}, "strip", z.ZodTypeAny, {
|
|
1509
|
-
local: {
|
|
1510
|
-
model: string;
|
|
1511
|
-
hfEndpoint: string;
|
|
1512
|
-
memoryBudgetPercent: number;
|
|
1513
|
-
selectedGroupId?: string | undefined;
|
|
1514
|
-
};
|
|
1515
|
-
localCt2: {
|
|
1516
|
-
model: string;
|
|
1517
|
-
hfEndpoint: string;
|
|
1518
|
-
memoryBudgetPercent: number;
|
|
1519
|
-
selectedGroupId?: string | undefined;
|
|
1520
|
-
};
|
|
1521
|
-
localLlama: {
|
|
1522
|
-
model: string;
|
|
1523
|
-
hfEndpoint: string;
|
|
1524
|
-
memoryBudgetPercent: number;
|
|
1525
|
-
selectedGroupId?: string | undefined;
|
|
1526
|
-
};
|
|
1527
|
-
openai: {
|
|
1528
|
-
model: string;
|
|
1529
|
-
baseUrl: string;
|
|
1530
|
-
token: string;
|
|
1531
|
-
};
|
|
1532
|
-
engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
|
|
1533
|
-
}, {
|
|
1534
|
-
local?: {
|
|
1535
|
-
model?: string | undefined;
|
|
1536
|
-
selectedGroupId?: string | undefined;
|
|
1537
|
-
hfEndpoint?: string | undefined;
|
|
1538
|
-
memoryBudgetPercent?: number | undefined;
|
|
1539
|
-
} | undefined;
|
|
1540
|
-
localCt2?: {
|
|
1541
|
-
model?: string | undefined;
|
|
1542
|
-
selectedGroupId?: string | undefined;
|
|
1543
|
-
hfEndpoint?: string | undefined;
|
|
1544
|
-
memoryBudgetPercent?: number | undefined;
|
|
1545
|
-
} | undefined;
|
|
1546
|
-
localLlama?: {
|
|
1547
|
-
model?: string | undefined;
|
|
1548
|
-
selectedGroupId?: string | undefined;
|
|
1549
|
-
hfEndpoint?: string | undefined;
|
|
1550
|
-
memoryBudgetPercent?: number | undefined;
|
|
1551
|
-
} | undefined;
|
|
1552
|
-
openai?: {
|
|
1553
|
-
model?: string | undefined;
|
|
1554
|
-
baseUrl?: string | undefined;
|
|
1555
|
-
token?: string | undefined;
|
|
1556
|
-
} | undefined;
|
|
1557
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1558
|
-
}>>;
|
|
1559
|
-
}, "strip", z.ZodTypeAny, {
|
|
1560
|
-
translation: {
|
|
1561
|
-
enabled: boolean;
|
|
1562
|
-
targetLanguage: string;
|
|
1563
|
-
displayMode: "direct" | "bilingual";
|
|
1564
|
-
cacheEnabled: boolean;
|
|
1565
|
-
};
|
|
1566
|
-
translationCache: {
|
|
1567
|
-
entryLimit: number;
|
|
1568
|
-
};
|
|
1569
|
-
translationEngines: {
|
|
1570
|
-
local: {
|
|
1571
|
-
model: string;
|
|
1572
|
-
hfEndpoint: string;
|
|
1573
|
-
memoryBudgetPercent: number;
|
|
1574
|
-
selectedGroupId?: string | undefined;
|
|
1575
|
-
};
|
|
1576
|
-
localCt2: {
|
|
1577
|
-
model: string;
|
|
1578
|
-
hfEndpoint: string;
|
|
1579
|
-
memoryBudgetPercent: number;
|
|
1580
|
-
selectedGroupId?: string | undefined;
|
|
1581
|
-
};
|
|
1582
|
-
localLlama: {
|
|
1583
|
-
model: string;
|
|
1584
|
-
hfEndpoint: string;
|
|
1585
|
-
memoryBudgetPercent: number;
|
|
1586
|
-
selectedGroupId?: string | undefined;
|
|
1587
|
-
};
|
|
1588
|
-
openai: {
|
|
1589
|
-
model: string;
|
|
1590
|
-
baseUrl: string;
|
|
1591
|
-
token: string;
|
|
1592
|
-
};
|
|
1593
|
-
engineId: "local" | "openai" | "browser" | "local-ct2" | "local-llama";
|
|
1594
|
-
};
|
|
1595
|
-
}, {
|
|
1596
|
-
translation?: {
|
|
1597
|
-
enabled?: boolean | undefined;
|
|
1598
|
-
targetLanguage?: string | undefined;
|
|
1599
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1600
|
-
cacheEnabled?: boolean | undefined;
|
|
1601
|
-
} | undefined;
|
|
1602
|
-
translationCache?: {
|
|
1603
|
-
entryLimit?: number | undefined;
|
|
1604
|
-
} | undefined;
|
|
1605
|
-
translationEngines?: {
|
|
1606
|
-
local?: {
|
|
1607
|
-
model?: string | undefined;
|
|
1608
|
-
selectedGroupId?: string | undefined;
|
|
1609
|
-
hfEndpoint?: string | undefined;
|
|
1610
|
-
memoryBudgetPercent?: number | undefined;
|
|
1611
|
-
} | undefined;
|
|
1612
|
-
localCt2?: {
|
|
1613
|
-
model?: string | undefined;
|
|
1614
|
-
selectedGroupId?: string | undefined;
|
|
1615
|
-
hfEndpoint?: string | undefined;
|
|
1616
|
-
memoryBudgetPercent?: number | undefined;
|
|
1617
|
-
} | undefined;
|
|
1618
|
-
localLlama?: {
|
|
1619
|
-
model?: string | undefined;
|
|
1620
|
-
selectedGroupId?: string | undefined;
|
|
1621
|
-
hfEndpoint?: string | undefined;
|
|
1622
|
-
memoryBudgetPercent?: number | undefined;
|
|
1623
|
-
} | undefined;
|
|
1624
|
-
openai?: {
|
|
1625
|
-
model?: string | undefined;
|
|
1626
|
-
baseUrl?: string | undefined;
|
|
1627
|
-
token?: string | undefined;
|
|
1628
|
-
} | undefined;
|
|
1629
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1630
|
-
} | undefined;
|
|
1631
|
-
}>;
|
|
1632
|
-
type OpenSpecUIGlobalSettings = z.infer<typeof OpenSpecUIGlobalSettingsSchema>;
|
|
1633
|
-
type OpenSpecUIGlobalSettingsUpdate = {
|
|
1634
|
-
translation?: Partial<DocumentTranslationGlobalSettings>;
|
|
1635
|
-
translationCache?: Partial<TranslationCacheSettings>;
|
|
1636
|
-
translationEngines?: TranslationEngineGlobalSettingsUpdate;
|
|
1637
|
-
};
|
|
1638
|
-
declare const OpenSpecUIGlobalSettingsUpdateSchema: z.ZodObject<{
|
|
1639
|
-
translation: z.ZodOptional<z.ZodObject<{
|
|
1640
|
-
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1641
|
-
targetLanguage: z.ZodOptional<z.ZodString>;
|
|
1642
|
-
displayMode: z.ZodOptional<z.ZodEnum<["direct", "bilingual"]>>;
|
|
1643
|
-
cacheEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
1644
|
-
}, "strip", z.ZodTypeAny, {
|
|
1645
|
-
enabled?: boolean | undefined;
|
|
1646
|
-
targetLanguage?: string | undefined;
|
|
1647
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1648
|
-
cacheEnabled?: boolean | undefined;
|
|
1649
|
-
}, {
|
|
1650
|
-
enabled?: boolean | undefined;
|
|
1651
|
-
targetLanguage?: string | undefined;
|
|
1652
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1653
|
-
cacheEnabled?: boolean | undefined;
|
|
1654
|
-
}>>;
|
|
1655
|
-
translationCache: z.ZodOptional<z.ZodObject<{
|
|
1656
|
-
entryLimit: z.ZodOptional<z.ZodNumber>;
|
|
1657
|
-
}, "strip", z.ZodTypeAny, {
|
|
1658
|
-
entryLimit?: number | undefined;
|
|
1659
|
-
}, {
|
|
1660
|
-
entryLimit?: number | undefined;
|
|
1661
|
-
}>>;
|
|
1662
|
-
translationEngines: z.ZodOptional<z.ZodObject<{
|
|
1663
|
-
engineId: z.ZodOptional<z.ZodEnum<["browser", "local", "local-ct2", "local-llama", "openai"]>>;
|
|
1664
|
-
openai: z.ZodOptional<z.ZodObject<{
|
|
1665
|
-
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1666
|
-
token: z.ZodOptional<z.ZodString>;
|
|
1667
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1668
|
-
}, "strip", z.ZodTypeAny, {
|
|
1669
|
-
model?: string | undefined;
|
|
1670
|
-
baseUrl?: string | undefined;
|
|
1671
|
-
token?: string | undefined;
|
|
1672
|
-
}, {
|
|
1673
|
-
model?: string | undefined;
|
|
1674
|
-
baseUrl?: string | undefined;
|
|
1675
|
-
token?: string | undefined;
|
|
1676
|
-
}>>;
|
|
1677
|
-
local: z.ZodOptional<z.ZodObject<{
|
|
1678
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1679
|
-
selectedGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1680
|
-
hfEndpoint: z.ZodOptional<z.ZodString>;
|
|
1681
|
-
memoryBudgetPercent: z.ZodOptional<z.ZodNumber>;
|
|
1682
|
-
}, "strip", z.ZodTypeAny, {
|
|
1683
|
-
model?: string | undefined;
|
|
1684
|
-
selectedGroupId?: string | null | undefined;
|
|
1685
|
-
hfEndpoint?: string | undefined;
|
|
1686
|
-
memoryBudgetPercent?: number | undefined;
|
|
1687
|
-
}, {
|
|
1688
|
-
model?: string | undefined;
|
|
1689
|
-
selectedGroupId?: string | null | undefined;
|
|
1690
|
-
hfEndpoint?: string | undefined;
|
|
1691
|
-
memoryBudgetPercent?: number | undefined;
|
|
1692
|
-
}>>;
|
|
1693
|
-
localCt2: z.ZodOptional<z.ZodObject<{
|
|
1694
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1695
|
-
selectedGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1696
|
-
hfEndpoint: z.ZodOptional<z.ZodString>;
|
|
1697
|
-
memoryBudgetPercent: z.ZodOptional<z.ZodNumber>;
|
|
1698
|
-
}, "strip", z.ZodTypeAny, {
|
|
1699
|
-
model?: string | undefined;
|
|
1700
|
-
selectedGroupId?: string | null | undefined;
|
|
1701
|
-
hfEndpoint?: string | undefined;
|
|
1702
|
-
memoryBudgetPercent?: number | undefined;
|
|
1703
|
-
}, {
|
|
1704
|
-
model?: string | undefined;
|
|
1705
|
-
selectedGroupId?: string | null | undefined;
|
|
1706
|
-
hfEndpoint?: string | undefined;
|
|
1707
|
-
memoryBudgetPercent?: number | undefined;
|
|
1708
|
-
}>>;
|
|
1709
|
-
localLlama: z.ZodOptional<z.ZodObject<{
|
|
1710
|
-
model: z.ZodOptional<z.ZodString>;
|
|
1711
|
-
selectedGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1712
|
-
hfEndpoint: z.ZodOptional<z.ZodString>;
|
|
1713
|
-
memoryBudgetPercent: z.ZodOptional<z.ZodNumber>;
|
|
1714
|
-
}, "strip", z.ZodTypeAny, {
|
|
1715
|
-
model?: string | undefined;
|
|
1716
|
-
selectedGroupId?: string | null | undefined;
|
|
1717
|
-
hfEndpoint?: string | undefined;
|
|
1718
|
-
memoryBudgetPercent?: number | undefined;
|
|
1719
|
-
}, {
|
|
1720
|
-
model?: string | undefined;
|
|
1721
|
-
selectedGroupId?: string | null | undefined;
|
|
1722
|
-
hfEndpoint?: string | undefined;
|
|
1723
|
-
memoryBudgetPercent?: number | undefined;
|
|
1724
|
-
}>>;
|
|
1725
|
-
}, "strip", z.ZodTypeAny, {
|
|
1726
|
-
local?: {
|
|
1727
|
-
model?: string | undefined;
|
|
1728
|
-
selectedGroupId?: string | null | undefined;
|
|
1729
|
-
hfEndpoint?: string | undefined;
|
|
1730
|
-
memoryBudgetPercent?: number | undefined;
|
|
1731
|
-
} | undefined;
|
|
1732
|
-
localCt2?: {
|
|
1733
|
-
model?: string | undefined;
|
|
1734
|
-
selectedGroupId?: string | null | undefined;
|
|
1735
|
-
hfEndpoint?: string | undefined;
|
|
1736
|
-
memoryBudgetPercent?: number | undefined;
|
|
1737
|
-
} | undefined;
|
|
1738
|
-
localLlama?: {
|
|
1739
|
-
model?: string | undefined;
|
|
1740
|
-
selectedGroupId?: string | null | undefined;
|
|
1741
|
-
hfEndpoint?: string | undefined;
|
|
1742
|
-
memoryBudgetPercent?: number | undefined;
|
|
1743
|
-
} | undefined;
|
|
1744
|
-
openai?: {
|
|
1745
|
-
model?: string | undefined;
|
|
1746
|
-
baseUrl?: string | undefined;
|
|
1747
|
-
token?: string | undefined;
|
|
1748
|
-
} | undefined;
|
|
1749
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1750
|
-
}, {
|
|
1751
|
-
local?: {
|
|
1752
|
-
model?: string | undefined;
|
|
1753
|
-
selectedGroupId?: string | null | undefined;
|
|
1754
|
-
hfEndpoint?: string | undefined;
|
|
1755
|
-
memoryBudgetPercent?: number | undefined;
|
|
1756
|
-
} | undefined;
|
|
1757
|
-
localCt2?: {
|
|
1758
|
-
model?: string | undefined;
|
|
1759
|
-
selectedGroupId?: string | null | undefined;
|
|
1760
|
-
hfEndpoint?: string | undefined;
|
|
1761
|
-
memoryBudgetPercent?: number | undefined;
|
|
1762
|
-
} | undefined;
|
|
1763
|
-
localLlama?: {
|
|
1764
|
-
model?: string | undefined;
|
|
1765
|
-
selectedGroupId?: string | null | undefined;
|
|
1766
|
-
hfEndpoint?: string | undefined;
|
|
1767
|
-
memoryBudgetPercent?: number | undefined;
|
|
1768
|
-
} | undefined;
|
|
1769
|
-
openai?: {
|
|
1770
|
-
model?: string | undefined;
|
|
1771
|
-
baseUrl?: string | undefined;
|
|
1772
|
-
token?: string | undefined;
|
|
1773
|
-
} | undefined;
|
|
1774
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1775
|
-
}>>;
|
|
1776
|
-
}, "strip", z.ZodTypeAny, {
|
|
1777
|
-
translation?: {
|
|
1778
|
-
enabled?: boolean | undefined;
|
|
1779
|
-
targetLanguage?: string | undefined;
|
|
1780
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1781
|
-
cacheEnabled?: boolean | undefined;
|
|
1782
|
-
} | undefined;
|
|
1783
|
-
translationCache?: {
|
|
1784
|
-
entryLimit?: number | undefined;
|
|
1785
|
-
} | undefined;
|
|
1786
|
-
translationEngines?: {
|
|
1787
|
-
local?: {
|
|
1788
|
-
model?: string | undefined;
|
|
1789
|
-
selectedGroupId?: string | null | undefined;
|
|
1790
|
-
hfEndpoint?: string | undefined;
|
|
1791
|
-
memoryBudgetPercent?: number | undefined;
|
|
1792
|
-
} | undefined;
|
|
1793
|
-
localCt2?: {
|
|
1794
|
-
model?: string | undefined;
|
|
1795
|
-
selectedGroupId?: string | null | undefined;
|
|
1796
|
-
hfEndpoint?: string | undefined;
|
|
1797
|
-
memoryBudgetPercent?: number | undefined;
|
|
1798
|
-
} | undefined;
|
|
1799
|
-
localLlama?: {
|
|
1800
|
-
model?: string | undefined;
|
|
1801
|
-
selectedGroupId?: string | null | undefined;
|
|
1802
|
-
hfEndpoint?: string | undefined;
|
|
1803
|
-
memoryBudgetPercent?: number | undefined;
|
|
1804
|
-
} | undefined;
|
|
1805
|
-
openai?: {
|
|
1806
|
-
model?: string | undefined;
|
|
1807
|
-
baseUrl?: string | undefined;
|
|
1808
|
-
token?: string | undefined;
|
|
1809
|
-
} | undefined;
|
|
1810
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1811
|
-
} | undefined;
|
|
1812
|
-
}, {
|
|
1813
|
-
translation?: {
|
|
1814
|
-
enabled?: boolean | undefined;
|
|
1815
|
-
targetLanguage?: string | undefined;
|
|
1816
|
-
displayMode?: "direct" | "bilingual" | undefined;
|
|
1817
|
-
cacheEnabled?: boolean | undefined;
|
|
1818
|
-
} | undefined;
|
|
1819
|
-
translationCache?: {
|
|
1820
|
-
entryLimit?: number | undefined;
|
|
1821
|
-
} | undefined;
|
|
1822
|
-
translationEngines?: {
|
|
1823
|
-
local?: {
|
|
1824
|
-
model?: string | undefined;
|
|
1825
|
-
selectedGroupId?: string | null | undefined;
|
|
1826
|
-
hfEndpoint?: string | undefined;
|
|
1827
|
-
memoryBudgetPercent?: number | undefined;
|
|
1828
|
-
} | undefined;
|
|
1829
|
-
localCt2?: {
|
|
1830
|
-
model?: string | undefined;
|
|
1831
|
-
selectedGroupId?: string | null | undefined;
|
|
1832
|
-
hfEndpoint?: string | undefined;
|
|
1833
|
-
memoryBudgetPercent?: number | undefined;
|
|
1834
|
-
} | undefined;
|
|
1835
|
-
localLlama?: {
|
|
1836
|
-
model?: string | undefined;
|
|
1837
|
-
selectedGroupId?: string | null | undefined;
|
|
1838
|
-
hfEndpoint?: string | undefined;
|
|
1839
|
-
memoryBudgetPercent?: number | undefined;
|
|
1840
|
-
} | undefined;
|
|
1841
|
-
openai?: {
|
|
1842
|
-
model?: string | undefined;
|
|
1843
|
-
baseUrl?: string | undefined;
|
|
1844
|
-
token?: string | undefined;
|
|
1845
|
-
} | undefined;
|
|
1846
|
-
engineId?: "local" | "openai" | "browser" | "local-ct2" | "local-llama" | undefined;
|
|
1847
|
-
} | undefined;
|
|
1848
|
-
}>;
|
|
1849
|
-
type PersistedOpenSpecUIGlobalSettings = {
|
|
1850
|
-
translation?: Partial<OpenSpecUIGlobalSettings['translation']>;
|
|
1851
|
-
translationCache?: Partial<TranslationCacheSettings>;
|
|
1852
|
-
translationEngines?: {
|
|
1853
|
-
engineId?: TranslationEngineId;
|
|
1854
|
-
openai?: Partial<TranslationOpenAISettings>;
|
|
1855
|
-
local?: Partial<TranslationLocalSettings>;
|
|
1856
|
-
localCt2?: Partial<TranslationLocalCt2Settings>;
|
|
1857
|
-
localLlama?: Partial<TranslationLocalLlamaSettings>;
|
|
1858
|
-
};
|
|
1859
|
-
};
|
|
1860
|
-
declare const DEFAULT_GLOBAL_SETTINGS: OpenSpecUIGlobalSettings;
|
|
1861
|
-
declare function getDefaultGlobalSettingsPath(): string;
|
|
1862
|
-
declare function toPersistedGlobalSettings(settings: OpenSpecUIGlobalSettings): PersistedOpenSpecUIGlobalSettings;
|
|
1863
|
-
/**
|
|
1864
|
-
* User-level OpenSpecUI settings stored outside project worktrees.
|
|
1865
|
-
*
|
|
1866
|
-
* This manager owns cross-project policy only; project opt-in remains in
|
|
1867
|
-
* `openspec/.openspecui.json`.
|
|
1868
|
-
*/
|
|
1869
|
-
declare class GlobalSettingsManager {
|
|
1870
|
-
private readonly settingsPath;
|
|
1871
|
-
private writeChain;
|
|
1872
|
-
constructor(settingsPath?: string);
|
|
1873
|
-
getSettingsPath(): string;
|
|
1874
|
-
private parseSettingsContent;
|
|
1875
|
-
readSettings(): Promise<OpenSpecUIGlobalSettings>;
|
|
1876
|
-
writeSettings(update: OpenSpecUIGlobalSettingsUpdate): Promise<void>;
|
|
1877
|
-
private enqueueWrite;
|
|
1878
|
-
}
|
|
1879
|
-
//#endregion
|
|
1880
|
-
//#region src/runtime-package-manager.d.ts
|
|
1881
|
-
type RuntimePackageDependencyField = 'dependencies' | 'optionalDependencies';
|
|
1882
|
-
type RuntimePackageManagerSource = 'deno-env' | 'user-agent' | 'exec-path' | 'package-manager-field' | 'lockfile' | 'fallback';
|
|
1883
|
-
interface RuntimePackageManagerResolution {
|
|
1884
|
-
id: string;
|
|
1885
|
-
source: RuntimePackageManagerSource;
|
|
1886
|
-
}
|
|
1887
|
-
interface RuntimePackageInstallCommand {
|
|
1888
|
-
cmd: string;
|
|
1889
|
-
args: string[];
|
|
1890
|
-
displayCommand: string;
|
|
1891
|
-
}
|
|
1892
|
-
interface RuntimePackageInstallStrategy {
|
|
1893
|
-
id: string;
|
|
1894
|
-
preservesDependencyField: boolean;
|
|
1895
|
-
buildCommand(input: Omit<RuntimePackageInstallCommandInput, 'packageManager'>): RuntimePackageInstallCommand | null;
|
|
1896
|
-
}
|
|
1897
|
-
interface RuntimePackageManagerOptions {
|
|
1898
|
-
startDir: string;
|
|
1899
|
-
env?: NodeJS.ProcessEnv;
|
|
1900
|
-
}
|
|
1901
|
-
interface RuntimePackageInstallCommandInput {
|
|
1902
|
-
packageManager: string;
|
|
1903
|
-
packages: readonly string[];
|
|
1904
|
-
dependencyField?: RuntimePackageDependencyField;
|
|
1905
|
-
ignoreWorkspace?: boolean;
|
|
1906
|
-
allowBuildPackages?: readonly string[];
|
|
1907
|
-
}
|
|
1908
|
-
declare function detectRuntimePackageManager(options: RuntimePackageManagerOptions): RuntimePackageManagerResolution;
|
|
1909
|
-
declare function resolveRuntimePackageInstallStrategy(packageManager: string): RuntimePackageInstallStrategy | null;
|
|
1910
|
-
declare function buildRuntimePackageInstallCommand(input: RuntimePackageInstallCommandInput): RuntimePackageInstallCommand | null;
|
|
1911
|
-
//#endregion
|
|
1912
|
-
//#region src/cli-executor.d.ts
|
|
1913
|
-
/** CLI 执行结果 */
|
|
1914
|
-
interface CliResult {
|
|
1915
|
-
success: boolean;
|
|
1916
|
-
stdout: string;
|
|
1917
|
-
stderr: string;
|
|
1918
|
-
exitCode: number | null;
|
|
1919
|
-
}
|
|
1920
|
-
/** CLI 流式输出事件 */
|
|
1921
|
-
interface CliStreamEvent {
|
|
1922
|
-
type: 'command' | 'stdout' | 'stderr' | 'exit';
|
|
1923
|
-
data?: string;
|
|
1924
|
-
exitCode?: number | null;
|
|
1925
|
-
}
|
|
1926
|
-
/**
|
|
1927
|
-
* CLI 执行器
|
|
1928
|
-
*
|
|
1929
|
-
* 负责调用外部 openspec CLI 命令,统一通过 ConfigManager 的 runner 解析结果执行。
|
|
1930
|
-
* 所有命令都使用 shell: false,避免 shell 注入风险。
|
|
1931
|
-
*/
|
|
1932
|
-
declare class CliExecutor {
|
|
1933
|
-
private configManager;
|
|
1934
|
-
private projectDir;
|
|
1935
|
-
constructor(configManager: ConfigManager, projectDir: string);
|
|
1936
|
-
private buildCommandArray;
|
|
1937
|
-
private runCommandOnce;
|
|
1938
|
-
private executeInternal;
|
|
1939
|
-
/**
|
|
1940
|
-
* 执行 CLI 命令
|
|
1941
|
-
*/
|
|
1942
|
-
execute(args: string[]): Promise<CliResult>;
|
|
1943
|
-
/**
|
|
1944
|
-
* 执行 openspec init(非交互式)
|
|
1945
|
-
*/
|
|
1946
|
-
init(options?: {
|
|
1947
|
-
tools?: string[] | 'all' | 'none';
|
|
1948
|
-
profile?: 'core' | 'custom';
|
|
1949
|
-
force?: boolean;
|
|
1950
|
-
}): Promise<CliResult>;
|
|
1951
|
-
/**
|
|
1952
|
-
* 执行 openspec archive <changeId>(非交互式)
|
|
1953
|
-
*/
|
|
1954
|
-
archive(changeId: string, options?: {
|
|
1955
|
-
skipSpecs?: boolean;
|
|
1956
|
-
noValidate?: boolean;
|
|
1957
|
-
}): Promise<CliResult>;
|
|
1958
|
-
/**
|
|
1959
|
-
* 执行 openspec validate [type] [id]
|
|
1960
|
-
*/
|
|
1961
|
-
validate(type?: 'spec' | 'change', id?: string): Promise<CliResult>;
|
|
1962
|
-
/**
|
|
1963
|
-
* 执行 openspec schemas --json
|
|
1964
|
-
*/
|
|
1965
|
-
schemas(): Promise<CliResult>;
|
|
1966
|
-
/**
|
|
1967
|
-
* 执行 openspec schema which <name> --json
|
|
1968
|
-
*/
|
|
1969
|
-
schemaWhich(name: string): Promise<CliResult>;
|
|
1970
|
-
/**
|
|
1971
|
-
* 执行 openspec templates --json [--schema <name>]
|
|
1972
|
-
*/
|
|
1973
|
-
templates(schema?: string): Promise<CliResult>;
|
|
1974
|
-
/**
|
|
1975
|
-
* 执行 openspec store list --json
|
|
1976
|
-
*
|
|
1977
|
-
* Beta 功能(Stores)。返回原始 CliResult;数据归类(ok / 异常一数据不兼容 /
|
|
1978
|
-
* 异常二指令变更)由调用方用 classifyStoreCliOutput 完成。这样 CliExecutor 保持单一职责。
|
|
1979
|
-
* Spec: openspec-cli-integration › Stores CLI Query Mapping / Beta Feature Fault Tolerance。
|
|
1980
|
-
*/
|
|
1981
|
-
listStores(): Promise<CliResult>;
|
|
1982
|
-
/**
|
|
1983
|
-
* 执行 openspec store doctor [--json] [id]
|
|
1984
|
-
*
|
|
1985
|
-
* Beta 功能(Stores)。同 listStores,归类交给调用方。
|
|
1986
|
-
*/
|
|
1987
|
-
doctorStores(id?: string): Promise<CliResult>;
|
|
1988
|
-
/**
|
|
1989
|
-
* 流式执行 openspec validate
|
|
1990
|
-
*/
|
|
1991
|
-
validateStream(type: 'spec' | 'change' | undefined, id: string | undefined, onEvent: (event: CliStreamEvent) => void): Promise<() => void>;
|
|
1992
|
-
/**
|
|
1993
|
-
* 检查 CLI 是否可用
|
|
1994
|
-
*/
|
|
1995
|
-
checkAvailability(timeout?: number): Promise<{
|
|
1996
|
-
available: boolean;
|
|
1997
|
-
version?: string;
|
|
1998
|
-
error?: string;
|
|
1999
|
-
effectiveCommand?: string;
|
|
2000
|
-
tried?: string[];
|
|
2001
|
-
}>;
|
|
2002
|
-
/**
|
|
2003
|
-
* 流式执行 CLI 命令
|
|
2004
|
-
*/
|
|
2005
|
-
executeStream(args: string[], onEvent: (event: CliStreamEvent) => void): Promise<() => void>;
|
|
2006
|
-
/**
|
|
2007
|
-
* 流式执行 openspec init
|
|
2008
|
-
*/
|
|
2009
|
-
initStream(options: {
|
|
2010
|
-
tools?: string[] | 'all' | 'none';
|
|
2011
|
-
profile?: 'core' | 'custom';
|
|
2012
|
-
force?: boolean;
|
|
2013
|
-
}, onEvent: (event: CliStreamEvent) => void): Promise<() => void>;
|
|
2014
|
-
/**
|
|
2015
|
-
* 流式执行 openspec archive
|
|
2016
|
-
*/
|
|
2017
|
-
archiveStream(changeId: string, options: {
|
|
2018
|
-
skipSpecs?: boolean;
|
|
2019
|
-
noValidate?: boolean;
|
|
2020
|
-
}, onEvent: (event: CliStreamEvent) => void): Promise<() => void>;
|
|
2021
|
-
/**
|
|
2022
|
-
* 流式执行任意命令(数组形式)
|
|
2023
|
-
*
|
|
2024
|
-
* 字面量 `openspec` 会自动通过已解析的 CLI runner 执行,
|
|
2025
|
-
* 其它命令保持原始 spawn 行为。
|
|
2026
|
-
*/
|
|
2027
|
-
executeCommandStream(command: readonly string[], onEvent: (event: CliStreamEvent) => void): () => void;
|
|
2028
|
-
}
|
|
2029
|
-
//#endregion
|
|
2030
|
-
//#region src/tool-config.d.ts
|
|
2031
|
-
/**
|
|
2032
|
-
* 工具配置检测模块
|
|
2033
|
-
*
|
|
2034
|
-
* 对齐 @fission-ai/openspec 的 skills 体系,
|
|
2035
|
-
* 通过 `skills/<skill>/SKILL.md` 判断工具是否已配置。
|
|
2036
|
-
*/
|
|
2037
|
-
/**
|
|
2038
|
-
* AI 工具选项(与官方 OpenSpec CLI 完全一致)
|
|
2039
|
-
* @see references/openspec/src/core/config.ts
|
|
2040
|
-
*/
|
|
2041
|
-
interface AIToolOption {
|
|
2042
|
-
/** 显示名称 */
|
|
2043
|
-
name: string;
|
|
2044
|
-
/** 工具 ID(用于 CLI 参数) */
|
|
2045
|
-
value: string;
|
|
2046
|
-
/** 是否可由 openspec init 直接管理 */
|
|
2047
|
-
available: boolean;
|
|
2048
|
-
/** 成功消息中使用的标签 */
|
|
2049
|
-
successLabel?: string;
|
|
2050
|
-
/** 技能目录(相对项目根目录) */
|
|
2051
|
-
skillsDir?: string;
|
|
2052
|
-
/** 自动检测路径;存在任一路径即表示项目已有该工具配置 */
|
|
2053
|
-
detectionPaths?: string[];
|
|
2054
|
-
}
|
|
2055
|
-
/**
|
|
2056
|
-
* 完整的工具配置(元信息 + skills 目录)
|
|
2057
|
-
*/
|
|
2058
|
-
interface ToolConfig extends AIToolOption {}
|
|
2059
|
-
/**
|
|
2060
|
-
* 所有支持的 AI 工具配置
|
|
2061
|
-
* 完全对齐官方 OpenSpec CLI 的 AI_TOOLS
|
|
2062
|
-
*/
|
|
2063
|
-
declare const AI_TOOLS: ToolConfig[];
|
|
2064
|
-
/**
|
|
2065
|
-
* 获取所有可用的工具(available: true)
|
|
2066
|
-
*/
|
|
2067
|
-
declare function getAvailableTools(): ToolConfig[];
|
|
2068
|
-
/**
|
|
2069
|
-
* 获取所有可用的工具 ID 列表(available: true)
|
|
2070
|
-
*/
|
|
2071
|
-
declare function getAvailableToolIds(): string[];
|
|
2072
|
-
/**
|
|
2073
|
-
* 获取所有工具
|
|
2074
|
-
*/
|
|
2075
|
-
declare function getAllTools(): ToolConfig[];
|
|
2076
|
-
/**
|
|
2077
|
-
* 检测当前项目中已经存在的工具目录。
|
|
2078
|
-
*
|
|
2079
|
-
* 这里对齐 OpenSpec 官方 `getAvailableTools(projectPath)` 的语义:
|
|
2080
|
-
* 仅根据项目根目录下的工具目录是否存在来判断,不读取全局命令安装状态。
|
|
2081
|
-
*/
|
|
2082
|
-
declare function getDetectedProjectTools(projectDir: string): Promise<ToolConfig[]>;
|
|
2083
|
-
/**
|
|
2084
|
-
* 获取所有工具 ID 列表
|
|
2085
|
-
*/
|
|
2086
|
-
declare function getAllToolIds(): string[];
|
|
2087
|
-
/**
|
|
2088
|
-
* 根据工具 ID 获取工具配置
|
|
2089
|
-
*/
|
|
2090
|
-
declare function getToolById(toolId: string): ToolConfig | undefined;
|
|
2091
|
-
/**
|
|
2092
|
-
* 检测项目中已配置的工具(响应式)
|
|
2093
|
-
*/
|
|
2094
|
-
declare function getConfiguredTools(projectDir: string): Promise<string[]>;
|
|
2095
|
-
/**
|
|
2096
|
-
* 检查特定工具是否已配置
|
|
2097
|
-
*/
|
|
2098
|
-
declare function isToolConfigured(projectDir: string, toolId: string): Promise<boolean>;
|
|
2099
|
-
//#endregion
|
|
2100
|
-
//#region src/tool-init-state.d.ts
|
|
2101
|
-
declare const TOOL_WORKFLOW_TO_SKILL_DIR: {
|
|
2102
|
-
readonly propose: "openspec-propose";
|
|
2103
|
-
readonly explore: "openspec-explore";
|
|
2104
|
-
readonly new: "openspec-new-change";
|
|
2105
|
-
readonly continue: "openspec-continue-change";
|
|
2106
|
-
readonly apply: "openspec-apply-change";
|
|
2107
|
-
readonly ff: "openspec-ff-change";
|
|
2108
|
-
readonly sync: "openspec-sync-specs";
|
|
2109
|
-
readonly archive: "openspec-archive-change";
|
|
2110
|
-
readonly 'bulk-archive': "openspec-bulk-archive-change";
|
|
2111
|
-
readonly verify: "openspec-verify-change";
|
|
2112
|
-
readonly onboard: "openspec-onboard";
|
|
2113
|
-
};
|
|
2114
|
-
type ToolWorkflowId = keyof typeof TOOL_WORKFLOW_TO_SKILL_DIR;
|
|
2115
|
-
type ToolInitDelivery = 'both' | 'skills' | 'commands';
|
|
2116
|
-
type ToolInitStatus = 'uninitialized' | 'partial' | 'initialized';
|
|
2117
|
-
interface ToolInitState {
|
|
2118
|
-
toolId: string;
|
|
2119
|
-
toolName: string;
|
|
2120
|
-
status: ToolInitStatus;
|
|
2121
|
-
hasAnyArtifacts: boolean;
|
|
2122
|
-
expectedSkillCount: number;
|
|
2123
|
-
presentExpectedSkillCount: number;
|
|
2124
|
-
detectedSkillCount: number;
|
|
2125
|
-
expectedCommandCount: number;
|
|
2126
|
-
presentExpectedCommandCount: number;
|
|
2127
|
-
detectedCommandCount: number;
|
|
2128
|
-
missingSkillWorkflows: ToolWorkflowId[];
|
|
2129
|
-
missingCommandWorkflows: ToolWorkflowId[];
|
|
2130
|
-
unexpectedSkillWorkflows: ToolWorkflowId[];
|
|
2131
|
-
unexpectedCommandWorkflows: ToolWorkflowId[];
|
|
2132
|
-
legacyCommandWorkflows: ToolWorkflowId[];
|
|
2133
|
-
}
|
|
2134
|
-
declare function getToolInitStates(projectDir: string, options: {
|
|
2135
|
-
delivery: ToolInitDelivery;
|
|
2136
|
-
workflows: readonly string[];
|
|
2137
|
-
}): Promise<ToolInitState[]>;
|
|
2138
|
-
//#endregion
|
|
2139
|
-
//#region src/dashboard-types.d.ts
|
|
2140
|
-
declare const DASHBOARD_METRIC_KEYS: readonly ["specifications", "requirements", "activeChanges", "inProgressChanges", "completedChanges", "taskCompletionPercent"];
|
|
2141
|
-
type DashboardMetricKey = (typeof DASHBOARD_METRIC_KEYS)[number];
|
|
2142
|
-
interface DashboardTrendPoint {
|
|
2143
|
-
ts: number;
|
|
2144
|
-
value: number;
|
|
2145
|
-
}
|
|
2146
|
-
interface DashboardTriColorTrendPoint {
|
|
2147
|
-
ts: number;
|
|
2148
|
-
add: number;
|
|
2149
|
-
modify: number;
|
|
2150
|
-
delete: number;
|
|
2151
|
-
}
|
|
2152
|
-
type DashboardTrendKind = 'monotonic' | 'bidirectional';
|
|
2153
|
-
interface DashboardTrendMeta {
|
|
2154
|
-
pointLimit: number;
|
|
2155
|
-
lastUpdatedAt: number;
|
|
2156
|
-
}
|
|
2157
|
-
type DashboardCardAvailability = {
|
|
2158
|
-
state: 'ok';
|
|
2159
|
-
} | {
|
|
2160
|
-
state: 'invalid';
|
|
2161
|
-
reason: 'semantic-uncomputable' | 'objective-history-unavailable';
|
|
2162
|
-
};
|
|
2163
|
-
interface DashboardSummary {
|
|
2164
|
-
specifications: number;
|
|
2165
|
-
requirements: number;
|
|
2166
|
-
activeChanges: number;
|
|
2167
|
-
inProgressChanges: number;
|
|
2168
|
-
completedChanges: number;
|
|
2169
|
-
archivedTasksCompleted: number;
|
|
2170
|
-
tasksTotal: number;
|
|
2171
|
-
tasksCompleted: number;
|
|
2172
|
-
taskCompletionPercent: number | null;
|
|
2173
|
-
}
|
|
2174
|
-
interface DashboardGitDiffStats {
|
|
2175
|
-
files: number;
|
|
2176
|
-
insertions: number;
|
|
2177
|
-
deletions: number;
|
|
2178
|
-
}
|
|
2179
|
-
interface DashboardGitCommitEntry {
|
|
2180
|
-
type: 'commit';
|
|
2181
|
-
hash: string;
|
|
2182
|
-
title: string;
|
|
2183
|
-
committedAt: number;
|
|
2184
|
-
relatedChanges: string[];
|
|
2185
|
-
diff: DashboardGitDiffStats;
|
|
2186
|
-
}
|
|
2187
|
-
interface DashboardGitUncommittedEntry {
|
|
2188
|
-
type: 'uncommitted';
|
|
2189
|
-
title: string;
|
|
2190
|
-
updatedAt: number | null;
|
|
2191
|
-
relatedChanges: string[];
|
|
2192
|
-
diff: DashboardGitDiffStats;
|
|
2193
|
-
}
|
|
2194
|
-
type DashboardGitEntry = DashboardGitCommitEntry | DashboardGitUncommittedEntry;
|
|
2195
|
-
interface DashboardGitWorktree {
|
|
2196
|
-
path: string;
|
|
2197
|
-
relativePath: string;
|
|
2198
|
-
pathAvailable: boolean;
|
|
2199
|
-
branchName: string;
|
|
2200
|
-
detached: boolean;
|
|
2201
|
-
isCurrent: boolean;
|
|
2202
|
-
ahead: number;
|
|
2203
|
-
behind: number;
|
|
2204
|
-
diff: DashboardGitDiffStats;
|
|
2205
|
-
entries: DashboardGitEntry[];
|
|
2206
|
-
}
|
|
2207
|
-
interface DashboardGitSnapshot {
|
|
2208
|
-
defaultBranch: string;
|
|
2209
|
-
worktrees: DashboardGitWorktree[];
|
|
2210
|
-
}
|
|
2211
|
-
interface DashboardOverview {
|
|
2212
|
-
summary: DashboardSummary;
|
|
2213
|
-
trends: Record<DashboardMetricKey, DashboardTrendPoint[]>;
|
|
2214
|
-
triColorTrends: Record<DashboardMetricKey, DashboardTriColorTrendPoint[]>;
|
|
2215
|
-
trendKinds: Record<DashboardMetricKey, DashboardTrendKind>;
|
|
2216
|
-
cardAvailability: Record<DashboardMetricKey, DashboardCardAvailability>;
|
|
2217
|
-
trendMeta: DashboardTrendMeta;
|
|
2218
|
-
specifications: Array<{
|
|
2219
|
-
id: string;
|
|
2220
|
-
name: string;
|
|
2221
|
-
requirements: number;
|
|
2222
|
-
updatedAt: number;
|
|
2223
|
-
}>;
|
|
2224
|
-
activeChanges: Array<{
|
|
2225
|
-
id: string;
|
|
2226
|
-
name: string;
|
|
2227
|
-
progress: {
|
|
2228
|
-
total: number;
|
|
2229
|
-
completed: number;
|
|
2230
|
-
};
|
|
2231
|
-
updatedAt: number;
|
|
2232
|
-
}>;
|
|
2233
|
-
git: DashboardGitSnapshot;
|
|
2234
|
-
}
|
|
2235
|
-
//#endregion
|
|
2236
|
-
//#region src/export-types.d.ts
|
|
2237
|
-
/**
|
|
2238
|
-
* Complete snapshot of an OpenSpec project for static export
|
|
2239
|
-
*/
|
|
2240
|
-
interface ExportSnapshot {
|
|
2241
|
-
/** Snapshot metadata */
|
|
2242
|
-
meta: {
|
|
2243
|
-
timestamp: string;
|
|
2244
|
-
version: string;
|
|
2245
|
-
projectDir: string;
|
|
2246
|
-
};
|
|
2247
|
-
/** Dashboard summary data */
|
|
2248
|
-
dashboard: {
|
|
2249
|
-
specsCount: number;
|
|
2250
|
-
changesCount: number;
|
|
2251
|
-
archivesCount: number;
|
|
2252
|
-
};
|
|
2253
|
-
/** Git snapshot used by static dashboard */
|
|
2254
|
-
git?: {
|
|
2255
|
-
defaultBranch: string;
|
|
2256
|
-
repositoryUrl: string | null;
|
|
2257
|
-
latestCommitTs: number | null;
|
|
2258
|
-
recentCommits: Array<{
|
|
2259
|
-
hash: string;
|
|
2260
|
-
title: string;
|
|
2261
|
-
committedAt: number;
|
|
2262
|
-
relatedChanges: string[];
|
|
2263
|
-
diff: {
|
|
2264
|
-
files: number;
|
|
2265
|
-
insertions: number;
|
|
2266
|
-
deletions: number;
|
|
2267
|
-
};
|
|
2268
|
-
}>;
|
|
2269
|
-
};
|
|
2270
|
-
/** OpenSpecUI runtime config captured during export */
|
|
2271
|
-
config?: OpenSpecUIConfig;
|
|
2272
|
-
/** All specs with parsed content */
|
|
2273
|
-
specs: Array<{
|
|
2274
|
-
id: string;
|
|
2275
|
-
name: string;
|
|
2276
|
-
/** Processed markdown shown by default in static OpenSpecUI. */
|
|
2277
|
-
content: string;
|
|
2278
|
-
/** Original source markdown, preserved for raw/source views. */
|
|
2279
|
-
sourceContent?: string;
|
|
2280
|
-
overview: string;
|
|
2281
|
-
requirements: Array<{
|
|
2282
|
-
id: string;
|
|
2283
|
-
title: string;
|
|
2284
|
-
bodyMarkdown: string;
|
|
2285
|
-
text: string;
|
|
2286
|
-
scenarios: Array<{
|
|
2287
|
-
title: string;
|
|
2288
|
-
bodyMarkdown: string;
|
|
2289
|
-
rawText: string;
|
|
2290
|
-
steps?: Array<{
|
|
2291
|
-
keyword: 'GIVEN' | 'WHEN' | 'THEN' | 'AND' | 'BUT';
|
|
2292
|
-
contentMarkdown: string;
|
|
2293
|
-
rawText: string;
|
|
2294
|
-
}>;
|
|
2295
|
-
}>;
|
|
2296
|
-
}>;
|
|
2297
|
-
createdAt: number;
|
|
2298
|
-
updatedAt: number;
|
|
2299
|
-
}>;
|
|
2300
|
-
/** All active changes with parsed content */
|
|
2301
|
-
changes: Array<{
|
|
2302
|
-
id: string;
|
|
2303
|
-
name: string;
|
|
2304
|
-
/** Processed proposal markdown shown by default in static OpenSpecUI. */
|
|
2305
|
-
proposal: string;
|
|
2306
|
-
/** Original source proposal markdown. */
|
|
2307
|
-
sourceProposal?: string;
|
|
2308
|
-
tasks?: string;
|
|
2309
|
-
sourceTasks?: string;
|
|
2310
|
-
design?: string;
|
|
2311
|
-
sourceDesign?: string;
|
|
2312
|
-
why: string;
|
|
2313
|
-
whatChanges: string;
|
|
2314
|
-
parsedTasks: Array<{
|
|
2315
|
-
id: string;
|
|
2316
|
-
text: string;
|
|
2317
|
-
completed: boolean;
|
|
2318
|
-
section?: string;
|
|
2319
|
-
}>;
|
|
2320
|
-
deltas: Array<{
|
|
2321
|
-
capability: string;
|
|
2322
|
-
/** Processed delta spec markdown. */
|
|
2323
|
-
content: string;
|
|
2324
|
-
/** Original source delta spec markdown. */
|
|
2325
|
-
sourceContent?: string;
|
|
2326
|
-
}>;
|
|
2327
|
-
progress: {
|
|
2328
|
-
total: number;
|
|
2329
|
-
completed: number;
|
|
2330
|
-
};
|
|
2331
|
-
createdAt: number;
|
|
2332
|
-
updatedAt: number;
|
|
2333
|
-
}>;
|
|
2334
|
-
/** All archived changes */
|
|
2335
|
-
archives: Array<{
|
|
2336
|
-
id: string;
|
|
2337
|
-
name: string;
|
|
2338
|
-
/** Schema-neutral archived entity detail used by archive views, search, and dashboard facts. */
|
|
2339
|
-
entity: OpsxEntityDetail;
|
|
2340
|
-
progress?: {
|
|
2341
|
-
total: number;
|
|
2342
|
-
completed: number;
|
|
2343
|
-
};
|
|
2344
|
-
createdAt: number;
|
|
2345
|
-
updatedAt: number;
|
|
2346
|
-
}>;
|
|
2347
|
-
/** Project.md content */
|
|
2348
|
-
projectMd?: string;
|
|
2349
|
-
/** OPSX configuration data (for Config view) */
|
|
2350
|
-
opsx?: {
|
|
2351
|
-
configYaml?: string;
|
|
2352
|
-
schemas: SchemaInfo[];
|
|
2353
|
-
schemaDetails: Record<string, SchemaDetail>;
|
|
2354
|
-
schemaYamls?: Record<string, string>;
|
|
2355
|
-
schemaResolutions: Record<string, SchemaResolution>;
|
|
2356
|
-
templates: Record<string, TemplatesMap>;
|
|
2357
|
-
templateContents?: Record<string, Record<string, {
|
|
2358
|
-
content: string | null;
|
|
2359
|
-
path: string;
|
|
2360
|
-
displayPath?: string;
|
|
2361
|
-
source: 'project' | 'user' | 'package';
|
|
2362
|
-
}>>;
|
|
2363
|
-
changeMetadata: Record<string, string | null>;
|
|
2364
|
-
};
|
|
2365
|
-
}
|
|
2366
|
-
//#endregion
|
|
2367
|
-
//#region src/git-panel-types.d.ts
|
|
2368
|
-
type GitEntryCursor = string;
|
|
2369
|
-
type GitEntrySelector = {
|
|
2370
|
-
type: 'uncommitted';
|
|
2371
|
-
} | {
|
|
2372
|
-
type: 'commit';
|
|
2373
|
-
hash: string;
|
|
2374
|
-
};
|
|
2375
|
-
type GitFileChangeType = 'added' | 'modified' | 'deleted' | 'renamed' | 'copied' | 'typechanged' | 'unmerged' | 'unknown';
|
|
2376
|
-
type GitPatchState = 'available' | 'binary' | 'too-large' | 'unavailable';
|
|
2377
|
-
type GitEntryFileSource = 'tracked' | 'untracked';
|
|
2378
|
-
type GitEntryFileDiff = ({
|
|
2379
|
-
state: 'ready';
|
|
2380
|
-
} & DashboardGitDiffStats) | {
|
|
2381
|
-
state: 'loading' | 'unavailable';
|
|
2382
|
-
files: number;
|
|
2383
|
-
};
|
|
2384
|
-
type GitWorktreeSummary = Omit<DashboardGitWorktree, 'entries'>;
|
|
2385
|
-
interface GitEntriesPage {
|
|
2386
|
-
items: DashboardGitEntry[];
|
|
2387
|
-
nextCursor: GitEntryCursor | null;
|
|
2388
|
-
}
|
|
2389
|
-
interface GitEntryFileSummary {
|
|
2390
|
-
fileId: string;
|
|
2391
|
-
source: GitEntryFileSource;
|
|
2392
|
-
path: string;
|
|
2393
|
-
displayPath: string;
|
|
2394
|
-
previousPath: string | null;
|
|
2395
|
-
changeType: GitFileChangeType;
|
|
2396
|
-
diff: GitEntryFileDiff;
|
|
2397
|
-
}
|
|
2398
|
-
interface GitEntryFilePatch extends GitEntryFileSummary {
|
|
2399
|
-
patch: string | null;
|
|
2400
|
-
state: GitPatchState;
|
|
2401
|
-
}
|
|
2402
|
-
interface GitEntryShell {
|
|
2403
|
-
entry: DashboardGitEntry | null;
|
|
2404
|
-
files: GitEntryFileSummary[];
|
|
2405
|
-
}
|
|
2406
|
-
interface GitEntryFiles {
|
|
2407
|
-
files: GitEntryFileSummary[];
|
|
2408
|
-
eagerFiles: GitEntryFilePatch[];
|
|
2409
|
-
eagerPatchLineBudget: number;
|
|
2410
|
-
eagerPatchLineCount: number;
|
|
2411
|
-
}
|
|
2412
|
-
interface GitEntryPatch {
|
|
2413
|
-
file: GitEntryFilePatch | null;
|
|
2414
|
-
}
|
|
2415
|
-
type GitPatchFile = GitEntryFilePatch;
|
|
2416
|
-
interface GitEntryDetail {
|
|
2417
|
-
entry: DashboardGitEntry | null;
|
|
2418
|
-
files: GitEntryFilePatch[];
|
|
2419
|
-
}
|
|
2420
|
-
interface GitWorktreeOverview {
|
|
2421
|
-
defaultBranch: string;
|
|
2422
|
-
currentWorktree: GitWorktreeSummary | null;
|
|
2423
|
-
otherWorktrees: GitWorktreeSummary[];
|
|
2424
|
-
}
|
|
2425
|
-
interface GitWorktreeHandoff {
|
|
2426
|
-
projectDir: string;
|
|
2427
|
-
serverUrl: string;
|
|
2428
|
-
}
|
|
2429
|
-
//#endregion
|
|
2430
|
-
//#region src/hooks.d.ts
|
|
2431
|
-
declare const OPENSPECUI_HOOKS_VERSION = 1;
|
|
2432
|
-
/** Severity level for diagnostics returned by project hooks. */
|
|
2433
|
-
type HookDiagnosticLevel = 'info' | 'warning' | 'error';
|
|
2434
|
-
/** Non-fatal hook diagnostic surfaced with the processed result. */
|
|
2435
|
-
interface HookDiagnosticV1 {
|
|
2436
|
-
level: HookDiagnosticLevel;
|
|
2437
|
-
message: string;
|
|
2438
|
-
}
|
|
2439
|
-
/** Project-scoped lifecycle helpers available to hooks. */
|
|
2440
|
-
interface HookLifecycleV1 {
|
|
2441
|
-
/**
|
|
2442
|
-
* Register cleanup work for the project hook runtime.
|
|
2443
|
-
*
|
|
2444
|
-
* This lifecycle is project-scoped, not call-scoped, so daemon-style hooks can
|
|
2445
|
-
* keep one process alive for the OpenSpecUI session.
|
|
2446
|
-
*/
|
|
2447
|
-
onDispose(cleanup: () => void | Promise<void>): void;
|
|
2448
|
-
}
|
|
2449
|
-
/** OpenSpecUI consumer requesting a processed document projection. */
|
|
2450
|
-
type DocumentConsumerV1 = 'view' | 'search' | 'export';
|
|
2451
|
-
/** Document read mode; source reads bypass hooks and stay audit-safe. */
|
|
2452
|
-
type DocumentReadModeV1 = 'source' | 'processed';
|
|
2453
|
-
/** Stable identity for the OpenSpec document currently being read. */
|
|
2454
|
-
interface DocumentRefV1 {
|
|
2455
|
-
stage: 'project' | 'main' | 'change' | 'archive';
|
|
2456
|
-
kind: 'project' | 'spec' | 'proposal' | 'design' | 'tasks' | 'delta-spec' | 'artifact';
|
|
2457
|
-
relativePath: string;
|
|
2458
|
-
absolutePath: string;
|
|
2459
|
-
specId?: string;
|
|
2460
|
-
changeId?: string;
|
|
2461
|
-
schemaName?: string;
|
|
2462
|
-
artifactId?: string;
|
|
2463
|
-
artifactOutputPath?: string;
|
|
2464
|
-
}
|
|
2465
|
-
/** Context passed to `onReadDocument`. */
|
|
2466
|
-
interface ReadDocumentContextV1 {
|
|
2467
|
-
version: typeof OPENSPECUI_HOOKS_VERSION;
|
|
2468
|
-
projectDir: string;
|
|
2469
|
-
consumer: DocumentConsumerV1;
|
|
2470
|
-
document: DocumentRefV1;
|
|
2471
|
-
signal: AbortSignal;
|
|
2472
|
-
lifecycle: HookLifecycleV1;
|
|
2473
|
-
}
|
|
2474
|
-
/** Markdown projection returned by document reads and `onReadDocument`. */
|
|
2475
|
-
interface ReadDocumentResultV1 {
|
|
2476
|
-
markdown: string;
|
|
2477
|
-
sourceLabel?: string;
|
|
2478
|
-
title?: string;
|
|
2479
|
-
diagnostics?: HookDiagnosticV1[];
|
|
2480
|
-
watchFiles?: string[];
|
|
2481
|
-
}
|
|
2482
|
-
/** Intercepts processed OpenSpec markdown reads for view, search, and export. */
|
|
2483
|
-
type OnReadDocumentHookV1 = (ctx: ReadDocumentContextV1, read: () => Promise<ReadDocumentResultV1>) => Promise<ReadDocumentResultV1>;
|
|
2484
|
-
/** OPSX workflow action names that can be customized by `onRunWorkflow`. */
|
|
2485
|
-
type WorkflowActionV1 = 'explore' | 'propose' | 'new' | 'continue' | 'ff' | 'apply' | 'verify' | 'sync' | 'archive' | 'bulk-archive' | 'onboard';
|
|
2486
|
-
/** Invocation mode requested by the UI before action-specific fallback resolution. */
|
|
2487
|
-
type WorkflowRequestedModeV1 = 'compose' | 'command' | 'direct';
|
|
2488
|
-
/** Normalized OPSX workflow input passed to `onRunWorkflow`. */
|
|
2489
|
-
type RunWorkflowInputV1 = {
|
|
2490
|
-
action: 'explore' | 'propose';
|
|
2491
|
-
text: string;
|
|
2492
|
-
} | {
|
|
2493
|
-
action: 'new';
|
|
2494
|
-
changeId: string;
|
|
2495
|
-
schema?: string;
|
|
2496
|
-
description?: string;
|
|
2497
|
-
extraArgs: string[];
|
|
2498
|
-
} | {
|
|
2499
|
-
action: 'continue' | 'ff';
|
|
2500
|
-
changeId: string;
|
|
2501
|
-
artifactId: string;
|
|
2502
|
-
schema?: string;
|
|
2503
|
-
} | {
|
|
2504
|
-
action: 'apply' | 'archive' | 'verify' | 'sync';
|
|
2505
|
-
changeId: string;
|
|
2506
|
-
schema?: string;
|
|
2507
|
-
strict?: boolean;
|
|
2508
|
-
} | {
|
|
2509
|
-
action: 'bulk-archive';
|
|
2510
|
-
changeIds?: string[];
|
|
2511
|
-
schema?: string;
|
|
2512
|
-
} | {
|
|
2513
|
-
action: 'onboard';
|
|
2514
|
-
};
|
|
2515
|
-
/** Actual invocation mode after OpenSpecUI applies action capability rules. */
|
|
2516
|
-
interface WorkflowInvocationModeResolutionV1 {
|
|
2517
|
-
requestedMode: WorkflowRequestedModeV1;
|
|
2518
|
-
actualMode: WorkflowRequestedModeV1;
|
|
2519
|
-
fallbackReason: string | null;
|
|
2520
|
-
}
|
|
2521
|
-
/** Context passed to `onRunWorkflow`. */
|
|
2522
|
-
interface RunWorkflowContextV1 {
|
|
2523
|
-
version: typeof OPENSPECUI_HOOKS_VERSION;
|
|
2524
|
-
projectDir: string;
|
|
2525
|
-
action: WorkflowActionV1;
|
|
2526
|
-
requestedMode: WorkflowRequestedModeV1;
|
|
2527
|
-
input: RunWorkflowInputV1;
|
|
2528
|
-
signal: AbortSignal;
|
|
2529
|
-
lifecycle: HookLifecycleV1;
|
|
2530
|
-
}
|
|
2531
|
-
/** Final OPSX invocation payload produced by OpenSpecUI or `onRunWorkflow`. */
|
|
2532
|
-
type RunWorkflowResultV1 = {
|
|
2533
|
-
kind: 'agent-prompt';
|
|
2534
|
-
text: string;
|
|
2535
|
-
format: 'markdown';
|
|
2536
|
-
mode?: WorkflowInvocationModeResolutionV1;
|
|
2537
|
-
diagnostics?: HookDiagnosticV1[];
|
|
2538
|
-
} | {
|
|
2539
|
-
kind: 'agent-command';
|
|
2540
|
-
text: string;
|
|
2541
|
-
mode?: WorkflowInvocationModeResolutionV1;
|
|
2542
|
-
diagnostics?: HookDiagnosticV1[];
|
|
2543
|
-
} | {
|
|
2544
|
-
kind: 'cli-command';
|
|
2545
|
-
command: string;
|
|
2546
|
-
args: string[];
|
|
2547
|
-
mode?: WorkflowInvocationModeResolutionV1;
|
|
2548
|
-
diagnostics?: HookDiagnosticV1[];
|
|
2549
|
-
};
|
|
2550
|
-
/** Intercepts the final OPSX invocation payload before the UI runs it. */
|
|
2551
|
-
type OnRunWorkflowHookV1 = (ctx: RunWorkflowContextV1, run: () => Promise<RunWorkflowResultV1>) => Promise<RunWorkflowResultV1>;
|
|
2552
|
-
/** Project hook module shape exported from `openspec/openspecui.hooks.ts`. */
|
|
2553
|
-
interface OpenSpecUIHooksV1 {
|
|
2554
|
-
onReadDocument?: OnReadDocumentHookV1;
|
|
2555
|
-
onRunWorkflow?: OnRunWorkflowHookV1;
|
|
2556
|
-
}
|
|
2557
|
-
//#endregion
|
|
2558
|
-
//#region src/runtime-types.d.ts
|
|
2559
|
-
type ProjectRecoveryStatus = {
|
|
2560
|
-
state: 'idle';
|
|
2561
|
-
} | {
|
|
2562
|
-
state: 'evicted';
|
|
2563
|
-
reason: ProjectResidencyEvictionReason;
|
|
2564
|
-
detectedAt: number;
|
|
2565
|
-
} | {
|
|
2566
|
-
state: 'resolving';
|
|
2567
|
-
reason: ProjectResidencyEvictionReason;
|
|
2568
|
-
detectedAt: number;
|
|
2569
|
-
} | {
|
|
2570
|
-
state: 'ready';
|
|
2571
|
-
reason: ProjectResidencyEvictionReason;
|
|
2572
|
-
detectedAt: number;
|
|
2573
|
-
handoff: GitWorktreeHandoff;
|
|
2574
|
-
} | {
|
|
2575
|
-
state: 'unavailable';
|
|
2576
|
-
reason: ProjectResidencyEvictionReason;
|
|
2577
|
-
detectedAt: number;
|
|
2578
|
-
message: string;
|
|
2579
|
-
} | {
|
|
2580
|
-
state: 'failed';
|
|
2581
|
-
reason: ProjectResidencyEvictionReason;
|
|
2582
|
-
detectedAt: number;
|
|
2583
|
-
message: string;
|
|
2584
|
-
};
|
|
2585
|
-
//#endregion
|
|
2586
|
-
//#region src/opsx-kernel.d.ts
|
|
2587
|
-
type TemplateContentMap = Record<string, {
|
|
2588
|
-
content: string | null;
|
|
2589
|
-
path: string;
|
|
2590
|
-
displayPath?: string;
|
|
2591
|
-
source: TemplatesMap[string]['source'];
|
|
2592
|
-
}>;
|
|
2593
|
-
interface GlobArtifactFile {
|
|
2594
|
-
path: string;
|
|
2595
|
-
type: 'file';
|
|
2596
|
-
content: string;
|
|
2597
|
-
}
|
|
2598
|
-
declare class OpsxKernel {
|
|
2599
|
-
private readonly projectDir;
|
|
2600
|
-
private readonly cliExecutor;
|
|
2601
|
-
private readonly controller;
|
|
2602
|
-
private warmupPromise;
|
|
2603
|
-
private readonly _streamReady;
|
|
2604
|
-
private _statusList;
|
|
2605
|
-
private _schemas;
|
|
2606
|
-
private _changeIds;
|
|
2607
|
-
private _projectConfig;
|
|
2608
|
-
private _schemaResolutions;
|
|
2609
|
-
private _schemaDetails;
|
|
2610
|
-
private _schemaFiles;
|
|
2611
|
-
private _schemaYamls;
|
|
2612
|
-
private _templates;
|
|
2613
|
-
private _templateContents;
|
|
2614
|
-
private _statuses;
|
|
2615
|
-
private _instructions;
|
|
2616
|
-
private _applyInstructions;
|
|
2617
|
-
private _changeMetadata;
|
|
2618
|
-
private _artifactOutputs;
|
|
2619
|
-
private _globArtifactFiles;
|
|
2620
|
-
private _entityControllers;
|
|
2621
|
-
constructor(projectDir: string, cliExecutor: CliExecutor);
|
|
2622
|
-
warmup(): Promise<void>;
|
|
2623
|
-
waitForWarmup(): Promise<void>;
|
|
2624
|
-
private runWarmup;
|
|
2625
|
-
dispose(): void;
|
|
2626
|
-
getStatusList(): ChangeStatus[];
|
|
2627
|
-
getSchemas(): SchemaInfo[];
|
|
2628
|
-
getChangeIds(): string[];
|
|
2629
|
-
getProjectConfig(): string | null;
|
|
2630
|
-
getTemplates(schema?: string): TemplatesMap;
|
|
2631
|
-
getTemplateContents(schema?: string): TemplateContentMap;
|
|
2632
|
-
getStatus(changeId: string, schema?: string): ChangeStatus;
|
|
2633
|
-
getInstructions(changeId: string, artifact: string, schema?: string): ArtifactInstructions;
|
|
2634
|
-
getApplyInstructions(changeId: string, schema?: string): ApplyInstructions;
|
|
2635
|
-
getSchemaResolution(name: string): SchemaResolution;
|
|
2636
|
-
peekSchemaResolution(name: string): SchemaResolution | null;
|
|
2637
|
-
getSchemaDetail(name: string): SchemaDetail;
|
|
2638
|
-
peekSchemaDetail(name: string): SchemaDetail | null;
|
|
2639
|
-
getSchemaFiles(name: string): ChangeFile[];
|
|
2640
|
-
getSchemaYaml(name: string): string | null;
|
|
2641
|
-
getChangeMetadata(changeId: string): string | null;
|
|
2642
|
-
getArtifactOutput(changeId: string, outputPath: string): string | null;
|
|
2643
|
-
getGlobArtifactFiles(changeId: string, outputPath: string): GlobArtifactFile[];
|
|
2644
|
-
private startStream;
|
|
2645
|
-
private startStreamOnce;
|
|
2646
|
-
private warmupSchema;
|
|
2647
|
-
private warmupChange;
|
|
2648
|
-
private watchSchemaChanges;
|
|
2649
|
-
private watchChangeIdChanges;
|
|
2650
|
-
private teardownEntity;
|
|
2651
|
-
private clearStreamReadyByPrefix;
|
|
2652
|
-
private fetchSchemas;
|
|
2653
|
-
private fetchChangeIds;
|
|
2654
|
-
private fetchProjectConfig;
|
|
2655
|
-
private fetchStatus;
|
|
2656
|
-
private fetchStatusList;
|
|
2657
|
-
private fetchInstructions;
|
|
2658
|
-
private fetchApplyInstructions;
|
|
2659
|
-
private fetchSchemaResolution;
|
|
2660
|
-
private fetchSchemaDetail;
|
|
2661
|
-
private fetchSchemaFiles;
|
|
2662
|
-
private fetchSchemaYaml;
|
|
2663
|
-
private fetchTemplates;
|
|
2664
|
-
private fetchTemplateContents;
|
|
2665
|
-
private fetchChangeMetadata;
|
|
2666
|
-
private fetchArtifactOutput;
|
|
2667
|
-
ensureSchemas(): Promise<void>;
|
|
2668
|
-
ensureChangeIds(): Promise<void>;
|
|
2669
|
-
ensureProjectConfig(): Promise<void>;
|
|
2670
|
-
ensureStatusList(): Promise<void>;
|
|
2671
|
-
ensureStatus(changeId: string, schema?: string): Promise<void>;
|
|
2672
|
-
ensureInstructions(changeId: string, artifact: string, schema?: string): Promise<void>;
|
|
2673
|
-
ensureApplyInstructions(changeId: string, schema?: string): Promise<void>;
|
|
2674
|
-
ensureArtifactOutput(changeId: string, outputPath: string): Promise<void>;
|
|
2675
|
-
ensureGlobArtifactFiles(changeId: string, outputPath: string): Promise<void>;
|
|
2676
|
-
ensureSchemaResolution(name: string): Promise<void>;
|
|
2677
|
-
ensureSchemaDetail(name: string): Promise<void>;
|
|
2678
|
-
ensureSchemaFiles(name: string): Promise<void>;
|
|
2679
|
-
ensureSchemaYaml(name: string): Promise<void>;
|
|
2680
|
-
ensureTemplates(schema?: string): Promise<void>;
|
|
2681
|
-
ensureTemplateContents(schema?: string): Promise<void>;
|
|
2682
|
-
ensureChangeMetadata(changeId: string): Promise<void>;
|
|
2683
|
-
private combineSignals;
|
|
2684
|
-
}
|
|
2685
|
-
//#endregion
|
|
2686
|
-
export { type AIToolOption, AI_TOOLS, type AnnotatedOpenSpecDocument, type ApplyInstructions, ApplyInstructionsContextFilesSchema, ApplyInstructionsSchema, type ApplyTask, ApplyTaskSchema, type ArchiveMeta, type ArtifactInstructions, ArtifactInstructionsSchema, type ArtifactStatus, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, type BatchTranslateEvent, BatchTranslateEventSchema, type BatchTranslateInput, BatchTranslateInputSchema, type BatchTranslationError, type BatchTranslationErrorKind, type BatchTranslationResult, type BuiltinSoundId, BuiltinSoundIdSchema, type BuiltinSoundOption, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, type Change, type ChangeFile, ChangeFileSchema, type ChangeMeta, ChangeSchema, type ChangeStatus, ChangeStatusSchema, CliExecutor, type CliResult, type CliRunnerAttempt, type CliSniffResult, type CliStreamEvent, type CodeEditorTheme, CodeEditorThemeSchema, ConfigManager, type CustomSoundHash, CustomSoundHashSchema, type CustomSoundId, CustomSoundIdSchema, type CustomSoundMetadata, type CustomSoundMetadataFile, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, type DashboardCardAvailability, type DashboardConfig, DashboardConfigSchema, type DashboardGitCommitEntry, type DashboardGitDiffStats, type DashboardGitEntry, type DashboardGitSnapshot, type DashboardGitUncommittedEntry, type DashboardGitWorktree, type DashboardMetricKey, type DashboardOverview, type DashboardSummary, type DashboardTrendKind, type DashboardTrendMeta, type DashboardTrendPoint, type DashboardTriColorTrendPoint, type Delta, type DeltaOperation, DeltaOperationType, DeltaSchema, type DeltaSpec, DeltaSpecSchema, type DependencyInfo, DependencyInfoSchema, type DocumentConsumerV1, type DocumentReadModeV1, type DocumentRefV1, type DocumentTranslationConfig, type DocumentTranslationConfigInput, DocumentTranslationConfigSchema, type DocumentTranslationConfigUpdate, DocumentTranslationConfigUpdateSchema, type DocumentTranslationDisplayMode, DocumentTranslationDisplayModeSchema, DocumentTranslationGlobalSettingsUpdateSchema, type ExportSnapshot, FILE_PREVIEW_KINDS, type FileChangeEvent, type FileChangeType, type FilePreviewKind, type GitConfig, GitConfigSchema, type GitEntriesPage, type GitEntryCursor, type GitEntryDetail, type GitEntryFileDiff, type GitEntryFilePatch, type GitEntryFileSource, type GitEntryFileSummary, type GitEntryFiles, type GitEntryPatch, type GitEntrySelector, type GitEntryShell, type GitFileChangeType, type GitPatchFile, type GitPatchState, type GitWorktreeHandoff, type GitWorktreeOverview, type GitWorktreeSummary, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, type HookDiagnosticLevel, type HookDiagnosticV1, type HookLifecycleV1, type HostedBackendHealthResponse, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, type LocalDirectionalModelLanguagePairCheck, type LocalModelAssetLog, LocalModelAssetLogSchema, type LocalModelAssetPlanSnapshot, LocalModelAssetPlanSnapshotSchema, type LocalModelAssetState, LocalModelAssetStateSchema, type LocalModelCatalogItem, type LocalModelCatalogLocalResult, type LocalModelCatalogResult, type LocalModelCatalogSearchEvent, type LocalModelDownloadStatus, LocalModelDownloadStatusSchema, type LocalModelLifecycleFileState, LocalModelLifecycleFileStateSchema, type LocalModelLifecycleGroupState, LocalModelLifecycleGroupStateSchema, type LocalModelProfileId, type LocalModelProfileLoadState, LocalModelProfileLoadStateSchema, type LocalModelProfileManifest, type LocalModelProfileManifestFile, LocalModelProfileManifestFileSchema, type LocalModelProfileManifestGroup, LocalModelProfileManifestGroupSchema, LocalModelProfileManifestSchema, type LocalModelProfileStatus, LocalModelProfileStatusSchema, type LocalRepositoryFile, type LocalRuntimeProfileFiles, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, type ManagedLocalCatalogSource, ManagedLocalCatalogSourceSchema, type ManagedLocalTranslationEngineId, type MarkdownAnnotation, type MarkdownAnnotationConfidence, type MarkdownAnnotationContext, type MarkdownAnnotationInput, type MarkdownAnnotationRule, type MarkdownFact, type MarkdownFactKind, type MarkdownFactSpan, type MarkdownFactsDocument, MarkdownParser, type MarkdownProjectionContext, type MarkdownProjectionRule, type MarkdownReadingDocument, type MarkdownReadingLookup, type MarkdownReadingPlugin, MarkdownReadingPluginRegistry, type MarkdownSourcePoint, type MarkdownSourceRange, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, type NotificationAction, NotificationActionSchema, type NotificationGroup, type NotificationGroupKey, NotificationGroupKeySchema, type NotificationPublishInput, NotificationPublishInputSchema, type NotificationRecord, NotificationRecordSchema, type NotificationSettings, NotificationSettingsSchema, type NotificationSound, NotificationSoundSchema, type NotificationSource, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENSPECUI_HOOKS_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, type OnReadDocumentHookV1, type OnRunWorkflowHookV1, OpenSpecAdapter, type OpenSpecAnnotation, type OpenSpecAnnotationConfidence, type OpenSpecHeadingSection, type OpenSpecProjectionOptions, type OpenSpecReadingSectionsProjection, type OpenSpecRequirementBlock, type OpenSpecScenarioBlock, type OpenSpecScenarioStepKeyword, type OpenSpecSemanticKind, type OpenSpecUIConfig, type OpenSpecUIConfigPresence, OpenSpecUIConfigSchema, type OpenSpecUIConfigUpdate, type OpenSpecUIGlobalSettings, OpenSpecUIGlobalSettingsSchema, type OpenSpecUIGlobalSettingsUpdate, OpenSpecUIGlobalSettingsUpdateSchema, type OpenSpecUIHooksV1, type OpenSpecUIRuntimeCapability, OpenSpecWatcher, type OpsxAgentInvocationMode, OpsxAgentInvocationModeSchema, type OpsxConfig, OpsxConfigSchema, type OpsxEntityArtifact, type OpsxEntityArtifactFile, type OpsxEntityDetail, type OpsxEntityDiagnostic, type OpsxEntityFile, type OpsxEntityReadOptions, type OpsxEntityStage, OpsxKernel, type ParsedOpsxSchemaDetail, type PathCallback, type PersistedOpenSpecUIGlobalSettings, type ProjectRecoveryStatus, type ProjectResidencyEvictionReason, type ProjectResidencyStatus, ProjectWatcher, type ProjectWatcherReinitializeReason, type ProjectWatcherRuntimeStatus, type ProjectWatcherRuntimeStatusListener, type ProjectedOpenSpecDocument, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, type PtyClientMessage, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, type PtyPlatform, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, type PtyServerMessage, PtyServerMessageSchema, type PtySessionInfo, PtyTitleResponseSchema, ReactiveContext, ReactiveState, type ReactiveStateOptions, type ReadDocumentContextV1, type ReadDocumentResultV1, type Requirement, RequirementSchema, type ResolvedCliRunner, type RunWorkflowContextV1, type RunWorkflowInputV1, type RunWorkflowResultV1, type RuntimePackageDependencyField, type RuntimePackageInstallCommand, type RuntimePackageInstallStrategy, type RuntimePackageManagerResolution, type RuntimePackageManagerSource, SERVICE_TRANSLATION_ENGINE_IDS, SILENT_SOUND_ID, type ScenarioStep, ScenarioStepKeywordSchema, ScenarioStepSchema, type SchemaArtifact, SchemaArtifactSchema, type SchemaDetail, SchemaDetailSchema, type SchemaInfo, SchemaInfoSchema, type SchemaResolution, SchemaResolutionSchema, type ServiceTranslationEngineId, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, type SoundId, SoundIdSchema, type Spec, type SpecMeta, SpecSchema, type StoreClassification, type StoreCommandUnavailableError, type StoreDataIncompatibleError, type StoreDiagnostic, type StoreDoctorResult, StoreDoctorResultSchema, type StoreDoctorStore, type StoreFeatureError, type StoreFeatureResult, type StoreListEntry, type StoreListResult, StoreListResultSchema, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TOOL_WORKFLOW_TO_SKILL_DIR, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, type Task, type TaskProgress, type TaskProjection, type TaskProjectionOptions, TaskSchema, type TemplateContentMap, type TemplatesMap, TemplatesSchema, type TerminalBellSound, TerminalBellSoundSchema, type TerminalCommandArgument, type TerminalCommandField, TerminalCommandFieldSchema, type TerminalCommandFieldValue, type TerminalCommandFieldValues, type TerminalConfig, TerminalConfigSchema, type TerminalControlEvent, type TerminalControlParseResult, TerminalControlParser, type TerminalInvocationSettings, TerminalInvocationSettingsSchema, type TerminalNotificationEvent, type TerminalNotificationParseResult, TerminalNotificationParser, type TerminalNotificationProtocol, type TerminalProgressState, type TerminalPromptState, type TerminalRendererEngine, TerminalRendererEngineSchema, type TerminalShellDefaults, type TerminalShellProfile, TerminalShellProfileSchema, type TerminalShellQuoteStyle, TerminalShellQuoteStyleSchema, type TerminalSpawnCommand, TerminalSpawnCommandSchema, type TerminalThemeId, type TerminalThemeMode, TerminalThemeModeSchema, TerminalThemeSchema, type TerminalTitleTarget, type ToolConfig, type ToolInitDelivery, type ToolInitState, type ToolInitStatus, type ToolWorkflowId, type TranslationCacheEntry, TranslationCacheEntrySchema, type TranslationCacheReadInput, TranslationCacheReadInputSchema, type TranslationCacheSettings, TranslationCacheSettingsSchema, TranslationCacheSettingsUpdateSchema, type TranslationCacheStats, TranslationCacheStatsSchema, type TranslationCacheWriteInput, TranslationCacheWriteInputSchema, type TranslationDownloadFilePlan, TranslationDownloadFilePlanSchema, type TranslationDownloadGroupPlan, TranslationDownloadGroupPlanSchema, type TranslationEngineAssetState, TranslationEngineAssetStateSchema, type TranslationEngineAssetStatus, TranslationEngineAssetStatusSchema, type TranslationEngineDependencyState, TranslationEngineDependencyStateSchema, type TranslationEngineDependencyStatus, TranslationEngineDependencyStatusSchema, type TranslationEngineGlobalSettings, TranslationEngineGlobalSettingsSchema, type TranslationEngineGlobalSettingsUpdate, TranslationEngineGlobalSettingsUpdateSchema, type TranslationEngineId, TranslationEngineIdSchema, type TranslationEngineInstallLogEvent, TranslationEngineInstallLogEventSchema, type TranslationEngineInstallLogStream, TranslationEngineInstallLogStreamSchema, type TranslationEngineKind, type TranslationEngineLifecycleContext, type TranslationEngineLifecycleController, type TranslationEngineLifecycleEvent, TranslationEngineLifecycleEventSchema, type TranslationEngineLifecycleStatus, TranslationEngineLifecycleStatusSchema, type TranslationEngineManifest, type TranslationEngineProjectSettings, TranslationEngineProjectSettingsSchema, TranslationEngineProjectSettingsUpdateSchema, type TranslationEngineRuntime, type TranslationEngineRuntimeState, TranslationEngineRuntimeStateSchema, type TranslationEngineRuntimeStatus, TranslationEngineRuntimeStatusSchema, type TranslationEngineSettingsKey, type TranslationLanguagePair, type TranslationLocalCt2Settings, TranslationLocalCt2SettingsSchema, TranslationLocalCt2SettingsUpdateSchema, type TranslationLocalLlamaSettings, TranslationLocalLlamaSettingsSchema, TranslationLocalLlamaSettingsUpdateSchema, type TranslationLocalSettings, TranslationLocalSettingsSchema, TranslationLocalSettingsUpdateSchema, type TranslationModelCandidate, type TranslationModelDownloadPlan, type TranslationModelSearchEvent, type TranslationModelSearchInput, type TranslationModelSearchPhase, type TranslationModelSearchResult, type TranslationOpenAISettings, TranslationOpenAISettingsSchema, TranslationOpenAISettingsUpdateSchema, type Translator, type TranslatorCreateMonitor, type TranslatorFactory, type TranslatorFactoryCreateOptions, type TranslatorFactoryPrepareOptions, type TranslatorOptions, type TranslatorPrepareMonitor, VIRTUAL_PROJECT_DIRNAME, type ValidationIssue, type ValidationResult, Validator, type WatchEvent, type WatchEventType, type WatcherRuntimeStatus, type WorkflowActionV1, type WorkflowInvocationModeResolutionV1, type WorkflowRequestedModeV1, acquireWatcher, annotateOpenSpecFacts, annotateOpenSpecMarkdown, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, classifyStoreCliOutput, clearCache, closeAllProjectWatchers, closeAllWatchers, computeTaskProgress, contextStorage, createCleanCliEnv, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createTranslationEngineLifecycleStatus, customHashFromSoundId, detectRuntimePackageManager, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatchedProjectDir, getWatcherRuntimeStatus, groupNotifications, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, initWatcherPool, isBackendHealthRuntimeMetadata, isBatchTranslationAbort, isDirectionalManagedLocalTranslationEngineId, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isMarkdownTaskSourcePath, isOpsxGlobPattern, isPreviewableFile, isSupportedEmbeddedUiUrl, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, normalizeBatchTranslationError, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseMarkdownFacts, parseMarkdownTasks, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, projectTasksFromMarkdownFiles, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, resolveHostedAppBaseUrl, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, runControlledTranslationTask, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, toStoreFeatureResult, trimMarkdownSlice };
|
|
1
|
+
import { $ as CliWorkflowOptions, A as OpsxConfigSchema, At as CliStoreListSchema, B as buildCliRunnerCandidates, Bt as CliReferenceIndexEntry, C as OpenSpecUIConfig, Ct as CliStoreCleanup, D as OpsxAgentInvocationMode, Dt as CliStoreDoctorEntrySchema, E as OpenSpecUIConfigUpdate, Et as CliStoreDoctorEntry, F as TerminalRendererEngineSchema, Ft as CliDiagnosticFailure, G as parseCliCommand, Gt as CliRootSourceSchema, H as getDefaultCliCommand, Ht as CliRoot, I as TerminalThemeId, It as CliDiagnosticFailureSchema, J as CliStoreRegisterOptions, K as sniffGlobalCli, L as TerminalThemeMode, Lt as CliDiagnosticSchema, M as TerminalConfig, Mt as CliStoreMutationSchema, N as TerminalConfigSchema, Nt as CliStoreSchema, O as OpsxAgentInvocationModeSchema, Ot as CliStoreDoctorSchema, P as TerminalRendererEngine, Pt as CliDiagnostic, Q as CliValidateTarget, R as TerminalThemeModeSchema, Rt as CliDoctorReferenceEntry, S as OPSX_AGENT_INVOCATION_MODE_VALUES, St as CliStore, T as OpenSpecUIConfigSchema, Tt as CliStoreDoctor, U as getDefaultCliCommandString, Ut as CliRootSchema, V as createCleanCliEnv, Vt as CliReferenceIndexEntrySchema, W as isTerminalRendererEngine, Wt as CliRootSource, X as CliStoreSetupOptions, Y as CliStoreRemoveOptions, Z as CliValidateJsonOptions, _ as DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, _t as CliWorkflowStatusSchema, a as CliResult, at as CliArtifactInstructions, b as GitConfig, bt as CliDoctor, c as CliStreamSettlement, ct as CliChangeListSchema, d as CliRunnerAttempt, dt as CliShowSpecSchema, et as OpenSpecCliContractExecutor, f as CliSniffResult, ft as CliSpecList, g as DEFAULT_CONFIG, gt as CliWorkflowStatus, h as ConfigManager, ht as CliValidateSchema, i as CliExecutor, it as CliArchiveSchema, j as ResolvedCliRunner, jt as CliStoreMutation, k as OpsxConfig, kt as CliStoreList, l as CliStreamTerminationError, lt as CliShowSpec, m as CodeEditorThemeSchema, mt as CliValidate, n as CliJsonValue, nt as CliApplyInstructionsSchema, o as CliStreamEvent, ot as CliArtifactInstructionsSchema, p as CodeEditorTheme, pt as CliSpecListSchema, q as CliRootSelector, r as parseCliCommandResult, rt as CliArchive, s as CliStreamHandle, st as CliChangeList, t as CliCommandResult, tt as CliApplyInstructions, u as CODE_EDITOR_THEME_VALUES, ut as CliShowSpecDocumentSchema, v as DashboardConfig, vt as CliContext, w as OpenSpecUIConfigPresence, wt as CliStoreCleanupSchema, x as GitConfigSchema, xt as CliDoctorSchema, y as DashboardConfigSchema, yt as CliContextSchema, z as TerminalThemeSchema, zt as CliDoctorReferenceEntrySchema } from "./command-result-fkH3Ekdz.mjs";
|
|
2
|
+
import { C as TranslationCacheWriteInputSchema, D as TranslationEngineProjectSettingsUpdateSchema, S as TranslationCacheWriteInput, T as TranslationEngineProjectSettingsSchema, _ as TranslationCacheSettings, a as DocumentTranslationConfigSchema, b as TranslationCacheStats, c as DocumentTranslationDisplayMode, d as MIN_TRANSLATION_CACHE_ENTRY_LIMIT, f as TRANSLATION_CACHE_POLICY_VERSION, g as TranslationCacheReadInputSchema, h as TranslationCacheReadInput, i as DocumentTranslationConfigInput, l as DocumentTranslationDisplayModeSchema, m as TranslationCacheEntrySchema, n as DOCUMENT_TRANSLATION_DISPLAY_MODES, o as DocumentTranslationConfigUpdate, p as TranslationCacheEntry, r as DocumentTranslationConfig, s as DocumentTranslationConfigUpdateSchema, t as DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, u as MAX_TRANSLATION_CACHE_ENTRY_LIMIT, v as TranslationCacheSettingsSchema, w as TranslationEngineProjectSettings, x as TranslationCacheStatsSchema, y as TranslationCacheSettingsUpdateSchema } from "./document-translation-D50BnvVh.mjs";
|
|
3
|
+
import { D as normalizeLegacySoundId, E as getBuiltinSoundUrl, O as soundIdFromCustomHash, S as SoundIdSchema, T as customHashFromSoundId, a as BuiltinSoundOption, b as SoundConfigIdSchema, c as CustomSoundHashSchema, d as CustomSoundMetadata, f as CustomSoundMetadataFile, g as DEFAULT_NOTIFICATION_SOUND_ID, h as DEFAULT_BELL_SOUND_ID, i as BuiltinSoundIdSchema, l as CustomSoundId, m as CustomSoundMetadataSchema, n as BUILTIN_SOUND_OPTIONS, o as CUSTOM_SOUND_ADD_VALUE, p as CustomSoundMetadataFileSchema, r as BuiltinSoundId, s as CustomSoundHash, t as BUILTIN_SOUND_IDS, u as CustomSoundIdSchema, v as LEGACY_SOUND_ID_MAP, x as SoundId, y as SILENT_SOUND_ID } from "./sounds-qhRgCy0F.mjs";
|
|
4
|
+
import { A as TerminalNotificationProtocol, D as TerminalControlEvent, E as groupNotifications, M as TerminalPromptState, N as TerminalTitleTarget, O as TerminalControlParseResult, P as terminalNotificationEventToPublishInput, T as getNotificationGroupLabel, _ as NotificationSource, b as TerminalNotificationParseResult, c as NotificationGroupKeySchema, d as NotificationRecord, f as NotificationRecordSchema, g as NotificationSoundSchema, h as NotificationSound, i as NotificationActionSchema, j as TerminalProgressState, 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-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, 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";
|
|
6
|
+
import { _ as SpecSchema, a as Delta, b as TrackedTaskProgressSchema, c as DeltaSchema, d as Requirement, f as RequirementSchema, g as Spec, h as ScenarioStepSchema, i as ChangeSchema, l as DeltaSpec, m as ScenarioStepKeywordSchema, n as ChangeFile, o as DeltaOperation, p as ScenarioStep, r as ChangeFileSchema, s as DeltaOperationType, t as Change, u as DeltaSpecSchema, v as Task, y as TaskSchema } from "./schemas-DS-JqAJ2.mjs";
|
|
7
|
+
import { $ as projectTaskProjectionsFromMarkdownFiles, A as TemplateContentMapSchema, B as TaskProjectionOptions, C as SchemaDetail, D as SchemaResolution, E as SchemaInfoSchema, F as ApplyInstructionDivergence, G as TrackedTaskProgress, H as TrackedTask, I as ApplyInstructionProgress, J as createDocumentChecklistSummary, K as TrackedTaskSource, L as ApplyInstructionState, M as TemplatesMap, N as TemplatesSchema, O as SchemaResolutionSchema, P as isGlobPattern, Q as parseMarkdownTasks, R as DocumentChecklistGroup, S as SchemaArtifactSchema, T as SchemaInfo, U as TrackedTaskLocation, V as TaskProjections, W as TrackedTaskPhase, X as deriveTrackedTaskPhase, Y as createTrackedTaskProgress, Z as isMarkdownTaskSourcePath, _ as OpsxConfigBundle, a as ApplyTask, b as OpsxStatusEvidenceSchema, c as ArtifactInstructionsSchema, d as ChangeStatus, et as toggleMarkdownTask, f as ChangeStatusSchema, g as OpsxCliEvidenceSchema, h as OpsxCliEvidence, i as ApplyInstructionsSchema, j as TemplateContentSchema, k as TemplateContentMap, l as ArtifactStatus, m as DependencyInfoSchema, n as ApplyInstructionsContextFilesSchema, o as ApplyTaskSchema, p as DependencyInfo, q as createApplyInstructionProgress, r as ApplyInstructionsProjectionSchema, s as ArtifactInstructions, t as ApplyInstructions, u as ArtifactStatusSchema, v as OpsxConfigBundleSchema, w as SchemaDetailSchema, x as SchemaArtifact, y as OpsxStatusEvidence, z as DocumentChecklistSummary } from "./opsx-types-BJ8AjhrS.mjs";
|
|
8
|
+
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-D7kDQsze.mjs";
|
|
9
|
+
import { $a as SpecIdentity, $i as PlanningConfigJsonValueSchema, $n as getAllToolIds, $r as OpenSpecUIGlobalSettingsSchema, $t as GitEntryFilePatch, A as buildHostedLaunchUrl, Aa as CliShowSpecDocument, Ai as getActiveWatcherCount, An as DashboardGitWorktree, Ao as ValidationIssue, Ar as RuntimeInvalidationFacet, At as DocumentRefV1, B as HostedBackendHealthResponse, Ba as ReferencedSpecDocumentProjection, Bi as ProjectWatcherRuntimeStatusListener, Bn as DashboardTrendsProjection, Br as writePhysicalReactiveFile, Bt as ReadDocumentResultV1, C as normalizeAccessGatePassword, Ca as getRootContextCliSelector, Ci as ReactiveObservationEnvironment, Cn as DashboardCardAvailability, Co as ChangeProjectionBatch, Cr as PlanningCliProjectionStateSchema, Ct as StoreMutationResult, D as OpenSpecUIRuntimeCapability, Da as OpenSpecDataScopeSource, Di as acquireWatcher, Dn as DashboardGitSnapshot, Do as ChangeMeta, Dr as OpenSpecDataHomeObserverOptions, Dt as isTerminalMutationStatus, E as OFFICIAL_APP_BASE_URL, Ea as OpenSpecDataScope, Ei as WatcherRuntimeStatus, En as DashboardGitEntry, Eo as ArchiveMeta, Er as OpenSpecDataHomeObserver, Et as hasCapability, F as normalizeHostedAppBaseUrl, Fa as OwnedSpecCatalogEntry, Fi as ProjectResidencyEvictionReason, Fn as DashboardSummaryProjection, Fr as PhysicalReactiveFileWrite, Ft as OPENSPECUI_WORKFLOW_HOOK_VERSION, Ga as SpecCatalogOwnedProjection, Gi as ActiveRootConfig, Gn as ToolInitStatus, Gr as RuntimePackageManagerSource, Gt as WorkflowActionV1, Ha as ReferencedSpecIdentitySchema, Hi as WatchEventType, Hn as DashboardTriColorTrendPoint, Hr as RuntimePackageInstallCommand, Ht as RunWorkflowInputV1, I as resolveHostedAppBaseUrl, Ia as OwnedSpecDocumentProjection, Ii as ProjectResidencyStatus, In as DashboardSummaryProjectionSchema, Ir as PhysicalReactivePathTarget, It as OnReadDocumentHookV1, Ja as SpecCatalogSchema, Ji as EnvironmentGlobalConfigValueSchema, Jn as getExternalCodexCommandObservationRoot, Jr as resolveRuntimePackageInstallStrategy, Jt as WorkflowRequestedModeV1, Ka as SpecCatalogReferenceProjection, Ki as EnvironmentGlobalCliProjection, Kn as ToolWorkflowId, Kr as buildRuntimePackageInstallCommand, Kt as WorkflowInvocationModeResolutionV1, L as HOSTED_SHELL_PROTOCOL_VERSION, La as OwnedSpecIdentity, Li as ProjectWatcher, Ln as DashboardTrendKind, Lr as createPhysicalReactiveDirectory, Lt as OnRunWorkflowHookV2, M as isHostedBackendHealthResponse, Ma as LiveSpecCatalogOwnedProjection, Mi as isWatcherPoolInitialized, Mn as DashboardOverview, Mo as Validator, Mr as RuntimeInvalidationListener, Mt as HookDiagnosticV1, N as isSupportedEmbeddedUiUrl, Ni as subscribeWatcherRuntimeStatus, Nn as DashboardOverviewSchema, Nr as RuntimeInvalidationReader, Nt as HookLifecycleV1, O as buildBackendHealthPayload, Oa as ResolveOpenSpecDataScopeOptions, Oi as acquireWatcherRoot, On as DashboardGitSnapshotSchema, Oo as OpenSpecAdapter, Or as RUNTIME_INVALIDATION_FACETS, Ot as DocumentConsumerV1, P as normalizeEmbeddedUiUrl, Pa as LiveSpecCatalogReferenceSource, Pi as PathCallback, Pn as DashboardSummary, Pr as RuntimeInvalidationToken, Pt as OPENSPECUI_DOCUMENT_HOOK_VERSION, Qa as SpecDocumentProjectionSchema, Qi as PlanningConfigFile, Qn as ToolConfig, Qr as OpenSpecUIGlobalSettings, Qt as GitEntryFileDiff, Ra as OwnedSpecIdentitySchema, Ri as ProjectWatcherReinitializeReason, Rn as DashboardTrendMeta, Rr as removePhysicalReactivePath, Rt as OpenSpecUIHooks, S as generateAccessGateCredential, Sa as RootContextState, Si as ObservationRootOwner, Sn as DASHBOARD_METRIC_KEYS, So as MarkdownParser, Sr as PlanningCliProjectionState, St as StoreMutationKind, Ta as OPEN_SPEC_DATA_DIRECTORY_NAME, Ti as WatcherRootRuntimeStatus, Tn as DashboardGitDiffStats, To as ChangeProjectionRowError, Tr as OpenSpecDataHomeObservationState, Tt as asEnvUri, Ua as SpecCatalog, Ui as closeAllProjectWatchers, Un as ToolInitDelivery, Ur as RuntimePackageInstallStrategy, Ut as RunWorkflowResultV2, Va as ReferencedSpecIdentity, Vi as WatchEvent, Vn as DashboardTrendsProjectionSchema, Vr as RuntimePackageDependencyField, Vt as RunWorkflowContextV2, Wa as SpecCatalogEntry, Wi as getProjectWatcher, Wn as ToolInitState, Wr as RuntimePackageManagerResolution, Wt as WorkflowActionEvidenceV2, Xa as SpecCommandEvidenceSchema, Xi as EnvironmentGlobalProfileState, Xn as AIToolOption, Xr as DocumentTranslationGlobalSettingsUpdateSchema, Xt as GitEntryCursor, Ya as SpecCommandEvidence, Yi as EnvironmentGlobalFileProjection, Yn as getToolInitStates, Yr as DEFAULT_GLOBAL_SETTINGS, Yt as GitEntriesPage, Za as SpecDocumentProjection, Zi as PlanningConfigDiagnostic, Zn as AI_TOOLS, Zr as GlobalSettingsManager, Zt as GitEntryDetail, _ as ACCESS_GATE_CREDENTIAL_BYTES, _a as RootContextCliExecutor, _i as ReactiveContextStreamObserver, _n as StaticGitRepositoryScopes, _o as inferFileMime, _r as EnvironmentGlobalProjectionStateSchema, a as DashboardSummaryInvalidationCauseSchema, aa as ProjectBindingReferences, ai as FileChangeEvent, an as GitEntryShell, ao as buildSpecCatalog, ar as getToolById, b as computeEnvUri, ba as RootContextErrorCode, bi as contextStorage, bn as ExportRootSource, bo as isTextLikeFile, br as PlanningCliProjectionSelector, bt as StoreCapabilitySet, c as DashboardSummaryProjectionStateSchema, ca as ProjectBindingUpdate, ci as createFileChangeObservable, cn as GitPatchState, co as createStaticSpecCatalogReferenceSource, cr as RuntimeRootInvalidationOwner, d as requireCanonicalOpenSpecEntityId, da as inspectProjectBinding, di as reactiveExists, dn as GitRepositoryScopeDescriptor, do as mergeSpecCatalog, dr as EnvironmentGlobalFileProjectionDataSchema, ea as PlanningConfigReference, ei as OpenSpecUIGlobalSettingsUpdate, en as GitEntryFileSource, eo as SpecIdentitySchema, er as getAllTools, f as requireOpenSpecEntityRelativePath, fa as updateProjectBindingContent, fi as reactiveReadDir, fn as GitRepositoryScopes, fo as specIdentityFromRoute, fr as EnvironmentGlobalFileProjectionState, g as ProjectRecoveryStatus, ga as RootContextCliAvailability, gi as ReactiveContext, gn as StaticGitRepositoryScopeDescriptor, go as FilePreviewKind, gr as EnvironmentGlobalProjectionState, gt as OPENSPECUI_RUNTIME_CAPABILITIES, h as snapshotHasAbsolutePath, ha as RootContextCli, hi as updateReactiveFileCache, hn as GitWorktreeSummary, ho as FILE_PREVIEW_KINDS, hr as EnvironmentGlobalProjectionDataSchema, i as DashboardSummaryInvalidationCause, ia as ProjectBindingLaunchWrite, ii as toPersistedGlobalSettings, in as GitEntrySelector, io as StaticSpecCatalogReferenceSource, ir as getDetectedProjectTools, j as isBackendHealthRuntimeMetadata, ja as LiveReferencedSpecDocumentProjection, ji as getWatcherRuntimeStatus, jn as DashboardMetricKey, jo as ValidationResult, jr as RuntimeInvalidationIndex, jt as HookDiagnosticLevel, k as buildEmbeddedUiLaunchUrl, ka as resolveOpenSpecDataScope, ki as closeAllWatchers, kn as DashboardGitUncommittedEntry, ko as SpecMeta, kr as RuntimeInvalidationController, kt as DocumentReadModeV1, l as OpenSpecEntityIdField, la as ProjectBindingUpdateResult, li as clearCache, ln as GitRepositoryIdentity, lo as getSpecCatalogEntry, lr as RuntimeRootInvalidationRegistry, m as redactSnapshotForPublication, ma as RootContext, mi as reactiveStat, mn as GitWorktreeOverview, mo as specRoutePath, mr as EnvironmentGlobalProjectionData, n as DashboardSummaryIdentitySchema, na as ProjectBindingConfig, ni as PersistedOpenSpecUIGlobalSettings, nn as GitEntryFiles, no as StaticSpecCatalogOwnedProjection, nr as getAvailableTools, o as DashboardSummaryInvalidationSchema, oa as ProjectBindingStore, oi as FileChangeType, on as GitFileChangeType, oo as createStaticSpecCatalogOwnedProjection, or as isToolConfigured, p as OpsxKernel, pa as ResolveRootContextOptions, pi as reactiveReadFile, pn as GitWorktreeHandoff, po as specIdentityKey, pr as EnvironmentGlobalFileProjectionStateSchema, qa as SpecCatalogReferenceSource, qi as EnvironmentGlobalConfig, qn as createToolInitStateProjection, qr as detectRuntimePackageManager, qt as WorkflowInvocationTargetV2, r as DashboardSummaryInvalidation, ra as ProjectBindingInspection, ri as getDefaultGlobalSettingsPath, rn as GitEntryPatch, ro as StaticSpecCatalogReferenceProjection, rr as getConfiguredTools, s as DashboardSummaryProjectionState, sa as ProjectBindingTransition, si as OpenSpecWatcher, sn as GitPatchFile, so as createStaticSpecCatalogReferenceProjection, sr as RuntimeInvalidationRoot, t as DashboardSummaryIdentity, ta as PlanningConfigReferenceSchema, ti as OpenSpecUIGlobalSettingsUpdateSchema, tn as GitEntryFileSummary, to as StaticReferencedSpecDocumentProjection, tr as getAvailableToolIds, u as OpenSpecEntityPathField, ua as ProjectBindingUpdateSchema, ui as getCacheSize, un as GitRepositoryScope, uo as isReferencedSpecIdentity, ur as EnvironmentGlobalFileProjectionData, v as AccessGateCredential, va as RootContextCommandEvidence, vi as ReactiveState, vn as ExportReferencePolicy, vo as inferFilePreviewKind, vr as PlanningCliProjectionData, vt as EnvUri, wa as resolveRootContext, wi as WatcherRootRelease, wn as DashboardGitCommitEntry, wo as ChangeProjectionData, wr as OPEN_SPEC_DATA_HOME_OBSERVATION_TARGETS, wt as StoreMutationStatus, x as constantTimeEqual, xa as RootContextResolvedState, xi as ObservationEnvironmentRoot, xn as ExportSnapshot, xo as isTextLikeMime, xr as PlanningCliProjectionSelectorSchema, xt as StoreMutation, y as accessGateFingerprint, ya as RootContextError, yi as ReactiveStateOptions, yn as ExportRootProvenance, yo as isPreviewableFile, yr as PlanningCliProjectionDataSchema, yt as StoreCapability, za as ReferencedSpecCatalogEntry, zi as ProjectWatcherRuntimeStatus, zn as DashboardTrendPoint, zr as runPhysicalReactivePathMutation, zt as ReadDocumentContextV1 } from "./dashboard-summary-transport-CQ4is5_e.mjs";
|
|
10
|
+
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-CCw3QdbM.mjs";
|
|
11
|
+
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-LUdqfbxH.mjs";
|
|
12
|
+
import { c as OpenSpecScenarioStepKeyword, d as annotateOpenSpecMarkdown, f as builtinOpenSpecReadingPlugin, h as openSpecAnnotationRules, l as OpenSpecSemanticKind, m as getOpenSpecAnnotationsForFact, n as OpenSpecAnnotation, p as getOpenSpecAnnotation, r as OpenSpecAnnotationConfidence, t as AnnotatedOpenSpecDocument, u as annotateOpenSpecFacts } from "./openspec-annotations-C58Aoi-V.mjs";
|
|
13
|
+
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-RohNZI4p.mjs";
|
|
14
|
+
import { $ as TranslationEngineDependencyStatus, $t as createTranslationEngineLifecycleStatus, A as LocalModelProfileManifestGroupSchema, At as TranslationLocalCt2SettingsUpdateSchema, B as TRANSLATION_ENGINE_IDS, Bt as TranslationModelSearchInput, C as LocalModelLifecycleGroupStateSchema, Ct as TranslationEngineRuntimeState, D as LocalModelProfileManifestFile, Dt as TranslationEngineSettingsKey, E as LocalModelProfileManifest, Et as TranslationEngineRuntimeStatusSchema, F as ManagedLocalCatalogSourceSchema, Ft as TranslationLocalSettingsSchema, G as TranslationDownloadGroupPlan, Gt as TranslationOpenAISettingsUpdateSchema, H as TRANSLATOR_CONTRACT_VERSION, Ht as TranslationModelSearchResult, I as ManagedLocalTranslationEngineId, It as TranslationLocalSettingsUpdateSchema, J as TranslationEngineAssetStateSchema, Jt as TranslatorFactory, K as TranslationDownloadGroupPlanSchema, Kt as Translator, L as SERVICE_TRANSLATION_ENGINE_IDS, Lt as TranslationModelCandidate, M as LocalModelProfileStatus, Mt as TranslationLocalLlamaSettingsSchema, N as LocalModelProfileStatusSchema, Nt as TranslationLocalLlamaSettingsUpdateSchema, O as LocalModelProfileManifestFileSchema, Ot as TranslationLocalCt2Settings, P as ManagedLocalCatalogSource, Pt as TranslationLocalSettings, Q as TranslationEngineDependencyStateSchema, Qt as TranslatorPrepareMonitor, R as ServiceTranslationEngineId, Rt as TranslationModelDownloadPlan, S as LocalModelLifecycleGroupState, St as TranslationEngineRuntime, T as LocalModelProfileLoadStateSchema, Tt as TranslationEngineRuntimeStatus, U as TranslationDownloadFilePlan, Ut as TranslationOpenAISettings, V as TRANSLATION_ENGINE_MANIFESTS, Vt as TranslationModelSearchPhase, W as TranslationDownloadFilePlanSchema, Wt as TranslationOpenAISettingsSchema, X as TranslationEngineAssetStatusSchema, Xt as TranslatorFactoryPrepareOptions, Y as TranslationEngineAssetStatus, Yt as TranslatorFactoryCreateOptions, Z as TranslationEngineDependencyState, Zt as TranslatorOptions, _ as LocalModelCatalogSearchEvent, a as BatchTranslationResult, an as isTranslationEngineDependencyReady, at as TranslationEngineId, b as LocalModelLifecycleFileState, bt as TranslationEngineLifecycleStatusSchema, c as LocalModelAssetLog, cn as BatchTranslationError, ct as TranslationEngineInstallLogEventSchema, d as LocalModelAssetPlanSnapshotSchema, dn as normalizeBatchTranslationError, dt as TranslationEngineKind, en as getManagedLocalTranslationEngineManifest, et as TranslationEngineDependencyStatusSchema, f as LocalModelAssetState, fn as runControlledTranslationTask, ft as TranslationEngineLifecycleContext, g as LocalModelCatalogResult, h as LocalModelCatalogLocalResult, ht as TranslationEngineLifecycleEventSchema, i as BatchTranslateInputSchema, in as isManagedLocalTranslationEngineId, it as TranslationEngineGlobalSettingsUpdateSchema, j as LocalModelProfileManifestSchema, jt as TranslationLocalLlamaSettings, k as LocalModelProfileManifestGroup, kt as TranslationLocalCt2SettingsSchema, l as LocalModelAssetLogSchema, ln as BatchTranslationErrorKind, lt as TranslationEngineInstallLogStream, m as LocalModelCatalogItem, mt as TranslationEngineLifecycleEvent, n as BatchTranslateEventSchema, nn as getTranslationEngineManifest, nt as TranslationEngineGlobalSettingsSchema, on as isTranslationEngineRuntimeReady, ot as TranslationEngineIdSchema, p as LocalModelAssetStateSchema, pt as TranslationEngineLifecycleController, q as TranslationEngineAssetState, qt as TranslatorCreateMonitor, r as BatchTranslateInput, rn as isDirectionalManagedLocalTranslationEngineId, rt as TranslationEngineGlobalSettingsUpdate, s as DEFAULT_TRANSLATION_ENGINE_ID, sn as shouldShowTranslationEngineInstallGate, st as TranslationEngineInstallLogEvent, t as BatchTranslateEvent, tn as getTranslationEngineLifecycleMessage, tt as TranslationEngineGlobalSettings, u as LocalModelAssetPlanSnapshot, un as isBatchTranslationAbort, ut as TranslationEngineInstallLogStreamSchema, v as LocalModelDownloadStatus, vt as TranslationEngineLifecycleStatus, w as LocalModelProfileLoadState, wt as TranslationEngineRuntimeStateSchema, x as LocalModelLifecycleFileStateSchema, xt as TranslationEngineManifest, y as LocalModelDownloadStatusSchema, z as ServiceTranslationEngineIdSchema, zt as TranslationModelSearchEvent } from "./translator-NKv1wo3o.mjs";
|
|
15
|
+
import { i as TerminalBellSoundSchema, n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSound, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-tXDm_EDe.mjs";
|
|
16
|
+
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-BL_rtlVM.mjs";
|
|
17
|
+
import { i as inferLocalDirectionalModelLanguagePair, n as TranslationLanguagePair, r as checkLocalDirectionalModelLanguagePair, t as LocalDirectionalModelLanguagePairCheck } from "./translation-language-pair-C18GPATW.mjs";
|
|
18
|
+
import { a as OPSX_CORE_PROFILE_WORKFLOWS, c as OPSX_WORKFLOW_TO_SKILL_DIR, d as OpsxTextInputAction, f as OpsxWorkflowId, i as OPSX_COMMAND_CAPABLE_WORKFLOWS, l as OpsxArtifactInputAction, n as OPSX_ARTIFACT_INPUT_ACTIONS, o as OPSX_TEXT_INPUT_ACTIONS, p as isOpsxCoreWorkflowSelection, r as OPSX_CHANGE_INPUT_ACTIONS, s as OPSX_WORKFLOW_LABELS, t as OPSX_ALL_WORKFLOWS, u as OpsxChangeInputAction } from "./opsx-workflows-BvnJqjfL.mjs";
|
|
19
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-RXS5JTbV.mjs";
|
|
20
|
+
import { a as StoreMutationResultSchema, c as StoreMutationStartResponseSchema, i as StoreMutationResultEnvelope, n as StoreMutationLifecycleEvent, o as StoreMutationSchema, r as StoreMutationLifecycleEventSchema, s as StoreMutationStartResponse, t as StoreMutationEnvelope } from "./store-mutation-protocol-5tfs-RmD.mjs";
|
|
21
|
+
import { _ as classifyStoreCliResult, a as StoreDiagnostic, c as StoreDoctorResultSchema, d as StoreFeatureError, f as StoreFeatureResult, g as StoreListResultSchema, h as StoreListResult, i as StoreDataIncompatibleError, l as StoreDoctorStore, n as StoreCommandEvidence, p as StoreListEntry, r as StoreCommandUnavailableError, s as StoreDoctorResult, t as StoreClassification, v as toStoreFeatureResult } from "./store-types-b554wAQJ.mjs";
|
|
22
|
+
import { $ as PtyServerMessageSchema, B as PtyCreatedResponseSchema, C as TerminalSpawnCommand, E as getTerminalCommandDefaultValues, F as PtyBufferResponseSchema, G as PtyListMessageSchema, H as PtyErrorResponseSchema, I as PtyClientMessage, J as PtyPlatform, K as PtyListResponseSchema, L as PtyClientMessageSchema, M as resolveTerminalShellDefaults, N as PtyAttachMessageSchema, O as quoteTerminalShellArg, P as PtyBellResponseSchema, Q as PtyServerMessage, R as PtyCloseMessageSchema, S as TerminalShellQuoteStyleSchema, U as PtyExitResponseSchema, V as PtyErrorCodeSchema, W as PtyInputMessageSchema, X as PtyProcessTitleResponseSchema, Y as PtyPlatformSchema, Z as PtyResizeMessageSchema, _ as TerminalShellDefaults, b as TerminalShellProfileSchema, c as TerminalCommandFieldSchema, et as PtySessionInfo, g as TerminalInvocationSettingsSchema, h as TerminalInvocationSettings, i as TerminalCommandArgument, j as renderTerminalSpawnCommandLine, k as renderTerminalCommandArgs, l as TerminalCommandFieldValue, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, nt as TerminalCwdTarget, q as PtyOutputResponseSchema, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, rt as TerminalCwdTargetSchema, s as TerminalCommandField, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, tt as PtyTitleResponseSchema, u as TerminalCommandFieldValues, w as TerminalSpawnCommandSchema, x as TerminalShellQuoteStyle, y as TerminalShellProfile, z as PtyCreateMessageSchema } from "./terminal-invocation-BOvxThym.mjs";
|
|
23
|
+
import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, r as DEFAULT_TERMINAL_THEME_MODE, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-m3MSGJ7U.mjs";
|
|
24
|
+
import { n as parseOpsxSchemaDetail, t as ParsedOpsxSchemaDetail } from "./opsx-schema-detail-BxDXEwDY.mjs";
|
|
25
|
+
export { ACCESS_GATE_CREDENTIAL_BYTES, AIToolOption, AI_TOOLS, AccessGateCredential, ActiveRootConfig, AnnotatedOpenSpecDocument, ApplyInstructionDivergence, ApplyInstructionProgress, ApplyInstructionState, ApplyInstructions, ApplyInstructionsContextFilesSchema, ApplyInstructionsProjectionSchema, ApplyInstructionsSchema, ApplyTask, ApplyTaskSchema, ArchiveMeta, ArtifactInstructions, ArtifactInstructionsSchema, ArtifactStatus, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, BatchTranslateEvent, BatchTranslateEventSchema, BatchTranslateInput, BatchTranslateInputSchema, BatchTranslationError, BatchTranslationErrorKind, BatchTranslationResult, BuiltinSoundId, BuiltinSoundIdSchema, BuiltinSoundOption, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, Change, ChangeFile, ChangeFileSchema, ChangeMeta, ChangeProjectionBatch, ChangeProjectionData, ChangeProjectionRowError, ChangeSchema, ChangeStatus, ChangeStatusSchema, CliApplyInstructions, CliApplyInstructionsSchema, CliArchive, CliArchiveSchema, CliArtifactInstructions, CliArtifactInstructionsSchema, CliChangeList, CliChangeListSchema, CliCommandResult, CliContext, CliContextSchema, CliDiagnostic, CliDiagnosticFailure, CliDiagnosticFailureSchema, CliDiagnosticSchema, CliDoctor, CliDoctorReferenceEntry, CliDoctorReferenceEntrySchema, CliDoctorSchema, CliExecutor, CliJsonValue, CliJsonValueSchema, CliProjectionCommandError, CliProjectionCommandEvidence, CliProjectionCommandEvidenceSchema, CliProjectionFailure, CliProjectionFailureSchema, CliProjectionInvalidationCause, CliProjectionInvalidationCauseSchema, CliProjectionNotice, CliProjectionNoticeSchema, CliProjectionState, CliProjectionStateName, CliProjectionStateNameSchema, CliReferenceIndexEntry, CliReferenceIndexEntrySchema, CliResult, CliRoot, CliRootSchema, CliRootSelector, CliRootSource, CliRootSourceSchema, CliRunnerAttempt, CliShowSpec, CliShowSpecDocument, CliShowSpecDocumentSchema, CliShowSpecSchema, CliSniffResult, CliSpecList, CliSpecListSchema, CliStore, CliStoreCleanup, CliStoreCleanupSchema, CliStoreDoctor, CliStoreDoctorEntry, CliStoreDoctorEntrySchema, CliStoreDoctorSchema, CliStoreList, CliStoreListSchema, CliStoreMutation, CliStoreMutationSchema, CliStoreRegisterOptions, CliStoreRemoveOptions, CliStoreSchema, CliStoreSetupOptions, CliStreamEvent, CliStreamHandle, CliStreamSettlement, CliStreamTerminationError, CliValidate, CliValidateJsonOptions, CliValidateSchema, CliValidateTarget, CliWorkflowOptions, CliWorkflowStatus, CliWorkflowStatusSchema, CodeEditorTheme, CodeEditorThemeSchema, ConfigManager, CustomSoundHash, CustomSoundHashSchema, CustomSoundId, CustomSoundIdSchema, CustomSoundMetadata, CustomSoundMetadataFile, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, DashboardCardAvailability, DashboardConfig, DashboardConfigSchema, DashboardGitCommitEntry, DashboardGitDiffStats, DashboardGitEntry, DashboardGitSnapshot, DashboardGitSnapshotSchema, DashboardGitUncommittedEntry, DashboardGitWorktree, DashboardMetricKey, DashboardOverview, DashboardOverviewSchema, DashboardSummary, DashboardSummaryIdentity, DashboardSummaryIdentitySchema, DashboardSummaryInvalidation, DashboardSummaryInvalidationCause, DashboardSummaryInvalidationCauseSchema, DashboardSummaryInvalidationSchema, DashboardSummaryProjection, DashboardSummaryProjectionSchema, DashboardSummaryProjectionState, DashboardSummaryProjectionStateSchema, DashboardTrendKind, DashboardTrendMeta, DashboardTrendPoint, DashboardTrendsProjection, DashboardTrendsProjectionSchema, DashboardTriColorTrendPoint, Delta, DeltaOperation, DeltaOperationType, DeltaSchema, DeltaSpec, DeltaSpecSchema, DependencyInfo, DependencyInfoSchema, DocumentChecklistGroup, DocumentChecklistSummary, DocumentConsumerV1, DocumentReadModeV1, DocumentRefV1, DocumentTranslationConfig, DocumentTranslationConfigInput, DocumentTranslationConfigSchema, DocumentTranslationConfigUpdate, DocumentTranslationConfigUpdateSchema, DocumentTranslationDisplayMode, DocumentTranslationDisplayModeSchema, DocumentTranslationGlobalSettingsUpdateSchema, EnvUri, EnvironmentGlobalCliProjection, EnvironmentGlobalConfig, EnvironmentGlobalConfigValueSchema, EnvironmentGlobalFileProjection, EnvironmentGlobalFileProjectionData, EnvironmentGlobalFileProjectionDataSchema, EnvironmentGlobalFileProjectionState, EnvironmentGlobalFileProjectionStateSchema, EnvironmentGlobalProfileState, EnvironmentGlobalProjectionData, EnvironmentGlobalProjectionDataSchema, EnvironmentGlobalProjectionState, EnvironmentGlobalProjectionStateSchema, ExportReferencePolicy, ExportRootProvenance, ExportRootSource, ExportSnapshot, FILE_PREVIEW_KINDS, FileChangeEvent, FileChangeType, FilePreviewKind, GitConfig, GitConfigSchema, GitEntriesPage, GitEntryCursor, GitEntryDetail, GitEntryFileDiff, GitEntryFilePatch, GitEntryFileSource, GitEntryFileSummary, GitEntryFiles, GitEntryPatch, GitEntrySelector, GitEntryShell, GitFileChangeType, GitPatchFile, GitPatchState, GitRepositoryIdentity, GitRepositoryScope, GitRepositoryScopeDescriptor, GitRepositoryScopes, GitWorktreeHandoff, GitWorktreeOverview, GitWorktreeSummary, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, HookDiagnosticLevel, HookDiagnosticV1, HookLifecycleV1, HostedBackendHealthResponse, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, LiveReferencedSpecDocumentProjection, LiveSpecCatalogOwnedProjection, LiveSpecCatalogReferenceSource, LocalDirectionalModelLanguagePairCheck, LocalModelAssetLog, LocalModelAssetLogSchema, LocalModelAssetPlanSnapshot, LocalModelAssetPlanSnapshotSchema, LocalModelAssetState, LocalModelAssetStateSchema, LocalModelCatalogItem, LocalModelCatalogLocalResult, LocalModelCatalogResult, LocalModelCatalogSearchEvent, LocalModelDownloadStatus, LocalModelDownloadStatusSchema, LocalModelLifecycleFileState, LocalModelLifecycleFileStateSchema, LocalModelLifecycleGroupState, LocalModelLifecycleGroupStateSchema, LocalModelProfileId, LocalModelProfileLoadState, LocalModelProfileLoadStateSchema, LocalModelProfileManifest, LocalModelProfileManifestFile, LocalModelProfileManifestFileSchema, LocalModelProfileManifestGroup, LocalModelProfileManifestGroupSchema, LocalModelProfileManifestSchema, LocalModelProfileStatus, LocalModelProfileStatusSchema, LocalRepositoryFile, LocalRuntimeProfileFiles, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, ManagedLocalCatalogSource, ManagedLocalCatalogSourceSchema, ManagedLocalTranslationEngineId, MarkdownAnnotation, MarkdownAnnotationConfidence, MarkdownAnnotationContext, MarkdownAnnotationInput, MarkdownAnnotationRule, MarkdownFact, MarkdownFactKind, MarkdownFactSpan, MarkdownFactsDocument, MarkdownParser, MarkdownProjectionContext, MarkdownProjectionRule, MarkdownReadingDocument, MarkdownReadingLookup, MarkdownReadingPlugin, MarkdownReadingPluginRegistry, MarkdownSourcePoint, MarkdownSourceRange, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationAction, NotificationActionSchema, NotificationGroup, NotificationGroupKey, NotificationGroupKeySchema, NotificationPublishInput, NotificationPublishInputSchema, NotificationRecord, NotificationRecordSchema, NotificationSettings, NotificationSettingsSchema, NotificationSound, NotificationSoundSchema, NotificationSource, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENSPECUI_DOCUMENT_HOOK_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPENSPECUI_WORKFLOW_HOOK_VERSION, OPEN_SPEC_DATA_DIRECTORY_NAME, OPEN_SPEC_DATA_HOME_OBSERVATION_TARGETS, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, OPSX_ALL_WORKFLOWS, OPSX_ARTIFACT_INPUT_ACTIONS, OPSX_CHANGE_INPUT_ACTIONS, OPSX_COMMAND_CAPABLE_WORKFLOWS, OPSX_CORE_PROFILE_WORKFLOWS, OPSX_TEXT_INPUT_ACTIONS, OPSX_WORKFLOW_LABELS, OPSX_WORKFLOW_TO_SKILL_DIR, OPSX_WORKFLOW_TO_SKILL_DIR as TOOL_WORKFLOW_TO_SKILL_DIR, ObservationEnvironmentRoot, ObservationRootOwner, OnReadDocumentHookV1, OnRunWorkflowHookV2, OpenSpecAdapter, OpenSpecAnnotation, OpenSpecAnnotationConfidence, OpenSpecCliContractExecutor, OpenSpecDataHomeObservationState, OpenSpecDataHomeObserver, OpenSpecDataHomeObserverOptions, OpenSpecDataScope, OpenSpecDataScopeSource, OpenSpecEntityIdField, OpenSpecEntityPathField, OpenSpecHeadingSection, OpenSpecProjectionOptions, OpenSpecReadingSectionsProjection, OpenSpecRequirementBlock, OpenSpecScenarioBlock, OpenSpecScenarioStepKeyword, OpenSpecSemanticKind, OpenSpecUIConfig, OpenSpecUIConfigPresence, OpenSpecUIConfigSchema, OpenSpecUIConfigUpdate, OpenSpecUIGlobalSettings, OpenSpecUIGlobalSettingsSchema, OpenSpecUIGlobalSettingsUpdate, OpenSpecUIGlobalSettingsUpdateSchema, OpenSpecUIHooks, OpenSpecUIRuntimeCapability, OpenSpecWatcher, OpsxAgentInvocationMode, OpsxAgentInvocationModeSchema, OpsxArtifactInputAction, OpsxChangeInputAction, OpsxCliEvidence, OpsxCliEvidenceSchema, OpsxConfig, OpsxConfigBundle, OpsxConfigBundleSchema, OpsxConfigSchema, OpsxEntityArtifact, OpsxEntityArtifactFile, OpsxEntityDetail, OpsxEntityDiagnostic, OpsxEntityFile, OpsxEntityReadOptions, OpsxEntityStage, OpsxKernel, OpsxStatusEvidence, OpsxStatusEvidenceSchema, OpsxTextInputAction, OpsxWorkflowId, OwnedSpecCatalogEntry, OwnedSpecDocumentProjection, OwnedSpecIdentity, OwnedSpecIdentitySchema, ParsedOpsxSchemaDetail, PathCallback, PersistedOpenSpecUIGlobalSettings, PhysicalReactiveFileWrite, PhysicalReactivePathTarget, PlanningCliProjectionData, PlanningCliProjectionDataSchema, PlanningCliProjectionSelector, PlanningCliProjectionSelectorSchema, PlanningCliProjectionState, PlanningCliProjectionStateSchema, PlanningConfigDiagnostic, PlanningConfigFile, PlanningConfigJsonValueSchema, PlanningConfigReference, PlanningConfigReferenceSchema, ProjectBindingConfig, ProjectBindingInspection, ProjectBindingLaunchWrite, ProjectBindingReferences, ProjectBindingStore, ProjectBindingTransition, ProjectBindingUpdate, ProjectBindingUpdateResult, ProjectBindingUpdateSchema, ProjectRecoveryStatus, ProjectResidencyEvictionReason, ProjectResidencyStatus, ProjectWatcher, ProjectWatcherReinitializeReason, ProjectWatcherRuntimeStatus, ProjectWatcherRuntimeStatusListener, ProjectedOpenSpecDocument, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, PtyClientMessage, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatform, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, PtyServerMessage, PtyServerMessageSchema, PtySessionInfo, PtyTitleResponseSchema, RUNTIME_INVALIDATION_FACETS, ReactiveContext, ReactiveContextStreamObserver, ReactiveObservationEnvironment, ReactiveState, ReactiveStateOptions, ReadDocumentContextV1, ReadDocumentResultV1, ReferencedSpecCatalogEntry, ReferencedSpecDocumentProjection, ReferencedSpecIdentity, ReferencedSpecIdentitySchema, Requirement, RequirementSchema, ResolveOpenSpecDataScopeOptions, ResolveRootContextOptions, ResolvedCliRunner, RootContext, RootContextCli, RootContextCliAvailability, RootContextCliExecutor, RootContextCommandEvidence, RootContextError, RootContextErrorCode, RootContextResolvedState, RootContextState, RunWorkflowContextV2, RunWorkflowInputV1, RunWorkflowResultV2, RuntimeInvalidationController, RuntimeInvalidationFacet, RuntimeInvalidationIndex, RuntimeInvalidationListener, RuntimeInvalidationReader, RuntimeInvalidationRoot, RuntimeInvalidationToken, RuntimePackageDependencyField, RuntimePackageInstallCommand, RuntimePackageInstallStrategy, RuntimePackageManagerResolution, RuntimePackageManagerSource, RuntimeRootInvalidationOwner, RuntimeRootInvalidationRegistry, SERVICE_TRANSLATION_ENGINE_IDS, SILENT_SOUND_ID, ScenarioStep, ScenarioStepKeywordSchema, ScenarioStepSchema, SchemaArtifact, SchemaArtifactSchema, SchemaDetail, SchemaDetailSchema, SchemaInfo, SchemaInfoSchema, SchemaResolution, SchemaResolutionSchema, ServiceTranslationEngineId, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, SoundId, SoundIdSchema, Spec, SpecCatalog, SpecCatalogEntry, SpecCatalogOwnedProjection, SpecCatalogReferenceProjection, SpecCatalogReferenceSource, SpecCatalogSchema, SpecCommandEvidence, SpecCommandEvidenceSchema, SpecDocumentProjection, SpecDocumentProjectionSchema, SpecIdentity, SpecIdentitySchema, SpecMeta, SpecSchema, StaticGitRepositoryScopeDescriptor, StaticGitRepositoryScopes, StaticReferencedSpecDocumentProjection, StaticSpecCatalogOwnedProjection, StaticSpecCatalogReferenceProjection, StaticSpecCatalogReferenceSource, StoreCapability, StoreCapabilitySet, StoreClassification, StoreCommandEvidence, StoreCommandUnavailableError, StoreDataIncompatibleError, StoreDiagnostic, StoreDoctorResult, StoreDoctorResultSchema, StoreDoctorStore, StoreFeatureError, StoreFeatureResult, StoreListEntry, StoreListResult, StoreListResultSchema, StoreMutation, StoreMutationEnvelope, StoreMutationKind, StoreMutationLifecycleEvent, StoreMutationLifecycleEventSchema, StoreMutationResult, StoreMutationResultEnvelope, StoreMutationResultSchema, StoreMutationSchema, StoreMutationStartResponse, StoreMutationStartResponseSchema, StoreMutationStatus, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, Task, TaskProjectionOptions, TaskProjections, TaskSchema, TemplateContentMap, TemplateContentMapSchema, TemplateContentSchema, TemplatesMap, TemplatesSchema, TerminalBellSound, TerminalBellSoundSchema, TerminalCommandArgument, TerminalCommandField, TerminalCommandFieldSchema, TerminalCommandFieldValue, TerminalCommandFieldValues, TerminalConfig, TerminalConfigSchema, TerminalControlEvent, TerminalControlParseResult, TerminalControlParser, TerminalCwdTarget, TerminalCwdTargetSchema, TerminalInvocationSettings, TerminalInvocationSettingsSchema, TerminalNotificationEvent, TerminalNotificationParseResult, TerminalNotificationParser, TerminalNotificationProtocol, TerminalProgressState, TerminalPromptState, TerminalRendererEngine, TerminalRendererEngineSchema, TerminalShellDefaults, TerminalShellProfile, TerminalShellProfileSchema, TerminalShellQuoteStyle, TerminalShellQuoteStyleSchema, TerminalSpawnCommand, TerminalSpawnCommandSchema, TerminalThemeId, TerminalThemeMode, TerminalThemeModeSchema, TerminalThemeSchema, TerminalTitleTarget, ToolConfig, ToolInitDelivery, ToolInitState, ToolInitStatus, ToolWorkflowId, TrackedTask, TrackedTaskLocation, TrackedTaskPhase, TrackedTaskProgress, TrackedTaskProgressSchema, TrackedTaskSource, TranslationCacheEntry, TranslationCacheEntrySchema, TranslationCacheReadInput, TranslationCacheReadInputSchema, TranslationCacheSettings, TranslationCacheSettingsSchema, TranslationCacheSettingsUpdateSchema, TranslationCacheStats, TranslationCacheStatsSchema, TranslationCacheWriteInput, TranslationCacheWriteInputSchema, TranslationDownloadFilePlan, TranslationDownloadFilePlanSchema, TranslationDownloadGroupPlan, TranslationDownloadGroupPlanSchema, TranslationEngineAssetState, TranslationEngineAssetStateSchema, TranslationEngineAssetStatus, TranslationEngineAssetStatusSchema, TranslationEngineDependencyState, TranslationEngineDependencyStateSchema, TranslationEngineDependencyStatus, TranslationEngineDependencyStatusSchema, TranslationEngineGlobalSettings, TranslationEngineGlobalSettingsSchema, TranslationEngineGlobalSettingsUpdate, TranslationEngineGlobalSettingsUpdateSchema, TranslationEngineId, TranslationEngineIdSchema, TranslationEngineInstallLogEvent, TranslationEngineInstallLogEventSchema, TranslationEngineInstallLogStream, TranslationEngineInstallLogStreamSchema, TranslationEngineKind, TranslationEngineLifecycleContext, TranslationEngineLifecycleController, TranslationEngineLifecycleEvent, TranslationEngineLifecycleEventSchema, TranslationEngineLifecycleStatus, TranslationEngineLifecycleStatusSchema, TranslationEngineManifest, TranslationEngineProjectSettings, TranslationEngineProjectSettingsSchema, TranslationEngineProjectSettingsUpdateSchema, TranslationEngineRuntime, TranslationEngineRuntimeState, TranslationEngineRuntimeStateSchema, TranslationEngineRuntimeStatus, TranslationEngineRuntimeStatusSchema, TranslationEngineSettingsKey, TranslationLanguagePair, TranslationLocalCt2Settings, TranslationLocalCt2SettingsSchema, TranslationLocalCt2SettingsUpdateSchema, TranslationLocalLlamaSettings, TranslationLocalLlamaSettingsSchema, TranslationLocalLlamaSettingsUpdateSchema, TranslationLocalSettings, TranslationLocalSettingsSchema, TranslationLocalSettingsUpdateSchema, TranslationModelCandidate, TranslationModelDownloadPlan, TranslationModelSearchEvent, TranslationModelSearchInput, TranslationModelSearchPhase, TranslationModelSearchResult, TranslationOpenAISettings, TranslationOpenAISettingsSchema, TranslationOpenAISettingsUpdateSchema, Translator, TranslatorCreateMonitor, TranslatorFactory, TranslatorFactoryCreateOptions, TranslatorFactoryPrepareOptions, TranslatorOptions, TranslatorPrepareMonitor, VIRTUAL_PROJECT_DIRNAME, ValidationIssue, ValidationResult, Validator, WatchEvent, WatchEventType, WatcherRootRelease, WatcherRootRuntimeStatus, WatcherRuntimeStatus, WorkflowActionEvidenceV2, WorkflowActionV1, WorkflowInvocationModeResolutionV1, WorkflowInvocationTargetV2, WorkflowRequestedModeV1, accessGateFingerprint, acquireWatcher, acquireWatcherRoot, annotateOpenSpecFacts, annotateOpenSpecMarkdown, asEnvUri, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, buildSpecCatalog, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, classifyStoreCliResult, clearCache, cliProjectionStates, closeAllProjectWatchers, closeAllWatchers, computeEnvUri, constantTimeEqual, contextStorage, createApplyInstructionProgress, createCleanCliEnv, createCliProjectionStateSchema, createDocumentChecklistSummary, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createPhysicalReactiveDirectory, createStaticSpecCatalogOwnedProjection, createStaticSpecCatalogReferenceProjection, createStaticSpecCatalogReferenceSource, createToolInitStateProjection, createTrackedTaskProgress, createTranslationEngineLifecycleStatus, customHashFromSoundId, deriveTrackedTaskPhase, detectRuntimePackageManager, generateAccessGateCredential, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getExternalCodexCommandObservationRoot, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getRootContextCliSelector, getSpecCatalogEntry, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatcherRuntimeStatus, groupNotifications, hasCapability, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, inspectProjectBinding, isBackendHealthRuntimeMetadata, isBatchTranslationAbort, isDirectionalManagedLocalTranslationEngineId, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isMarkdownTaskSourcePath, isOpsxCoreWorkflowSelection, isOpsxGlobPattern, isPreviewableFile, isReferencedSpecIdentity, isSupportedEmbeddedUiUrl, isTerminalMutationStatus, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, mergeSpecCatalog, normalizeAccessGatePassword, normalizeBatchTranslationError, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseCliCommandResult, parseMarkdownFacts, parseMarkdownTasks, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, projectTaskProjectionsFromMarkdownFiles, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, redactSnapshotForPublication, removePhysicalReactivePath, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, requireCanonicalOpenSpecEntityId, requireOpenSpecEntityRelativePath, resolveHostedAppBaseUrl, resolveOpenSpecDataScope, resolveRootContext, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, runControlledTranslationTask, runPhysicalReactivePathMutation, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, snapshotHasAbsolutePath, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, specIdentityFromRoute, specIdentityKey, specRoutePath, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, toCliProjectionCommandEvidence, toCliProjectionFailure, toCliProjectionNotice, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, toStoreFeatureResult, toggleMarkdownTask, trimMarkdownSlice, updateProjectBindingContent, updateReactiveFileCache, writePhysicalReactiveFile };
|