@openspecui/core 3.5.2 → 3.6.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/hosted-app.d.mts +1 -1
- package/dist/hosted-app.mjs +1 -1
- package/dist/index.d.mts +62 -620
- package/dist/index.mjs +81 -97
- package/dist/markdown-facts-BmSmZmpB.mjs +136 -0
- package/dist/markdown-facts-f3kXnqXb.d.mts +39 -0
- package/dist/markdown-facts.d.mts +2 -0
- package/dist/markdown-facts.mjs +3 -0
- package/dist/markdown-reading-CrchEfoW.mjs +104 -0
- package/dist/markdown-reading-D36W693c.d.mts +74 -0
- package/dist/markdown-reading.d.mts +3 -0
- package/dist/markdown-reading.mjs +4 -0
- package/dist/{notifications-BWvRNkRJ.d.mts → notifications-C4amULI4.d.mts} +1 -1
- package/dist/{notifications-F81mmO55.mjs → notifications-fD-V5hyP.mjs} +2 -2
- package/dist/notifications.d.mts +2 -2
- package/dist/notifications.mjs +3 -3
- package/dist/openspec-annotations-BMy9nWUe.mjs +436 -0
- package/dist/openspec-annotations-CJmYcfAu.d.mts +30 -0
- package/dist/openspec-annotations.d.mts +4 -0
- package/dist/openspec-annotations.mjs +5 -0
- package/dist/openspec-projection-DTuKPTgf.d.mts +1142 -0
- package/dist/openspec-projection-DWqBxedv.mjs +223 -0
- package/dist/openspec-projection.d.mts +5 -0
- package/dist/openspec-projection.mjs +6 -0
- package/dist/opsx-display-path.d.mts +1 -1
- package/dist/opsx-display-path.mjs +1 -1
- package/dist/sounds.d.mts +1 -1
- package/dist/sounds.mjs +1 -1
- package/dist/{terminal-audio-8E82E0AM.d.mts → terminal-audio-U9Exv9A5.d.mts} +1 -1
- package/dist/{terminal-audio-DDwxz9sJ.mjs → terminal-audio-UEv3j655.mjs} +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-CpdllJff.d.mts → terminal-invocation-BmwWgwgY.d.mts} +6 -6
- 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/package.json +25 -3
- /package/dist/{hosted-app-CIOJpbzc.mjs → hosted-app-DFFffbJc.mjs} +0 -0
- /package/dist/{hosted-app-DaGUbBJn.d.mts → hosted-app-DZrYivji.d.mts} +0 -0
- /package/dist/{opsx-display-path-CuQyGB_A.d.mts → opsx-display-path-CkV9sq_j.d.mts} +0 -0
- /package/dist/{opsx-display-path-B6Owu17P.mjs → opsx-display-path-D4KLYRXQ.mjs} +0 -0
- /package/dist/{sounds-C0dNSFm8.mjs → sounds-BzNKMW05.mjs} +0 -0
- /package/dist/{sounds-Bw-sSyFZ.d.mts → sounds-CYxOpEdm.d.mts} +0 -0
- /package/dist/{terminal-control-DtBprY6-.mjs → terminal-control-Bxois59k.mjs} +0 -0
- /package/dist/{terminal-invocation-Cdi6_Kl6.mjs → terminal-invocation-BRCuSBjE.mjs} +0 -0
- /package/dist/{terminal-theme-CMQqJvIQ.mjs → terminal-theme-CIv3YMfi.mjs} +0 -0
- /package/dist/{terminal-theme-wbkK9vVH.d.mts → terminal-theme-lPZGfVA_.d.mts} +0 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { c as getMarkdownHeadingFacts, l as trimMarkdownSlice, n as createMarkdownReadingDocument, o as getMarkdownFactSpan, s as getMarkdownHeadingEnd } from "./markdown-reading-CrchEfoW.mjs";
|
|
2
|
+
import { r as builtinOpenSpecReadingPlugin } from "./openspec-annotations-BMy9nWUe.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/openspec-projection.ts
|
|
5
|
+
const OPEN_SPEC_SPEC_PROJECTION_ID = "openspec.projection.spec.v2";
|
|
6
|
+
const OPEN_SPEC_READING_SECTIONS_PROJECTION_ID = "openspec.projection.reading-sections.v2";
|
|
7
|
+
function createOpenSpecReadingPlugin(options) {
|
|
8
|
+
return {
|
|
9
|
+
...builtinOpenSpecReadingPlugin,
|
|
10
|
+
id: "openspec.builtin-reading-with-projections.v2",
|
|
11
|
+
projectionRules: [createOpenSpecReadingSectionsProjectionRule(), createOpenSpecSpecProjectionRule(options)]
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function parseOpenSpecMarkdownToSpec(specId, content) {
|
|
15
|
+
return projectOpenSpecMarkdown(content, { specId }).projections[OPEN_SPEC_SPEC_PROJECTION_ID];
|
|
16
|
+
}
|
|
17
|
+
function projectOpenSpecMarkdown(sourceMarkdown, options, plugins = [createOpenSpecReadingPlugin(options)]) {
|
|
18
|
+
return toProjectedOpenSpecDocument(createMarkdownReadingDocument(sourceMarkdown, plugins));
|
|
19
|
+
}
|
|
20
|
+
function projectAnnotatedOpenSpecToSpec(specId, document) {
|
|
21
|
+
return projectOpenSpecContextToSpec(createDetachedProjectionContext(document), { specId });
|
|
22
|
+
}
|
|
23
|
+
function getOpenSpecReadingSections(document) {
|
|
24
|
+
const context = createDetachedProjectionContext(document);
|
|
25
|
+
return {
|
|
26
|
+
sections: collectSpecSections(context),
|
|
27
|
+
requirements: collectRequirementBlocks(context)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function getOpenSpecProjectionAnnotation(annotations, factId, kind) {
|
|
31
|
+
return annotations.find((annotation) => annotation.targetFactId === factId && annotation.kind === kind);
|
|
32
|
+
}
|
|
33
|
+
function createOpenSpecReadingSectionsProjectionRule() {
|
|
34
|
+
return {
|
|
35
|
+
id: OPEN_SPEC_READING_SECTIONS_PROJECTION_ID,
|
|
36
|
+
project(context) {
|
|
37
|
+
return {
|
|
38
|
+
sections: collectSpecSections(toOpenSpecProjectionContext(context)),
|
|
39
|
+
requirements: collectRequirementBlocks(toOpenSpecProjectionContext(context))
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function createOpenSpecSpecProjectionRule(options) {
|
|
45
|
+
return {
|
|
46
|
+
id: OPEN_SPEC_SPEC_PROJECTION_ID,
|
|
47
|
+
project(context) {
|
|
48
|
+
return projectOpenSpecContextToSpec(toOpenSpecProjectionContext(context), options);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function projectOpenSpecContextToSpec(context, options) {
|
|
53
|
+
const name = context.annotations.find((annotation) => annotation.kind === "document-title")?.metadata?.title || options.specId;
|
|
54
|
+
const overviewSection = collectSpecSections(context).find((section) => section.kind === "overview");
|
|
55
|
+
const overview = overviewSection ? trimMarkdownSlice(context.sourceMarkdown, getContentStartAfterHeading(context, overviewSection.factId, overviewSection.start), overviewSection.end) : "";
|
|
56
|
+
const requirements = collectRequirementBlocks(context).map((requirement) => projectRequirement(context, requirement));
|
|
57
|
+
return {
|
|
58
|
+
id: options.specId,
|
|
59
|
+
name: name || options.specId,
|
|
60
|
+
overview: overview.trim(),
|
|
61
|
+
requirements,
|
|
62
|
+
metadata: {
|
|
63
|
+
version: "1.0.0",
|
|
64
|
+
format: "openspec"
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function createRequirementText(title, bodyMarkdown, scenarioText) {
|
|
69
|
+
return [
|
|
70
|
+
title,
|
|
71
|
+
bodyMarkdown,
|
|
72
|
+
scenarioText
|
|
73
|
+
].filter((part) => part.trim()).join("\n\n");
|
|
74
|
+
}
|
|
75
|
+
function collectSpecSections(context) {
|
|
76
|
+
const headings = getMarkdownHeadingFacts(context);
|
|
77
|
+
return headings.reduce((sections, fact, index) => {
|
|
78
|
+
if (fact.depth !== 2) return sections;
|
|
79
|
+
const span = getFactSpan(fact);
|
|
80
|
+
if (!span) return sections;
|
|
81
|
+
sections.push({
|
|
82
|
+
id: fact.id,
|
|
83
|
+
title: fact.text,
|
|
84
|
+
kind: getSectionKind(context.annotations, fact.id),
|
|
85
|
+
factId: fact.id,
|
|
86
|
+
start: span.start,
|
|
87
|
+
end: getMarkdownHeadingEnd(headings, index, context.sourceMarkdown.length)
|
|
88
|
+
});
|
|
89
|
+
return sections;
|
|
90
|
+
}, []);
|
|
91
|
+
}
|
|
92
|
+
function collectRequirementBlocks(context) {
|
|
93
|
+
const headings = getMarkdownHeadingFacts(context);
|
|
94
|
+
let reqIndex = 0;
|
|
95
|
+
return headings.reduce((requirements, fact, index) => {
|
|
96
|
+
const annotation = getOpenSpecProjectionAnnotation(context.annotations, fact.id, "requirement");
|
|
97
|
+
if (!annotation) return requirements;
|
|
98
|
+
const span = getFactSpan(fact);
|
|
99
|
+
if (!span) return requirements;
|
|
100
|
+
reqIndex++;
|
|
101
|
+
const end = getMarkdownHeadingEnd(headings, index, context.sourceMarkdown.length);
|
|
102
|
+
const title = annotation.metadata?.title?.trim() || fact.text;
|
|
103
|
+
requirements.push({
|
|
104
|
+
id: `req-${reqIndex}`,
|
|
105
|
+
title,
|
|
106
|
+
factId: fact.id,
|
|
107
|
+
start: span.start,
|
|
108
|
+
end,
|
|
109
|
+
scenarios: collectScenarioBlocks(context, headings, fact, end)
|
|
110
|
+
});
|
|
111
|
+
return requirements;
|
|
112
|
+
}, []);
|
|
113
|
+
}
|
|
114
|
+
function collectScenarioBlocks(context, headings, requirementFact, requirementEnd) {
|
|
115
|
+
const requirementSpan = getFactSpan(requirementFact);
|
|
116
|
+
if (!requirementSpan) return [];
|
|
117
|
+
return headings.reduce((scenarios, fact, index) => {
|
|
118
|
+
const annotation = getOpenSpecProjectionAnnotation(context.annotations, fact.id, "scenario");
|
|
119
|
+
if (!annotation) return scenarios;
|
|
120
|
+
const span = getFactSpan(fact);
|
|
121
|
+
if (!span || span.start <= requirementSpan.start || span.start >= requirementEnd) return scenarios;
|
|
122
|
+
scenarios.push({
|
|
123
|
+
title: annotation.metadata?.title?.trim() || fact.text,
|
|
124
|
+
factId: fact.id,
|
|
125
|
+
start: span.start,
|
|
126
|
+
end: Math.min(getScenarioEnd(context, headings, index, requirementEnd), requirementEnd)
|
|
127
|
+
});
|
|
128
|
+
return scenarios;
|
|
129
|
+
}, []);
|
|
130
|
+
}
|
|
131
|
+
function getScenarioEnd(context, headings, scenarioIndex, requirementEnd) {
|
|
132
|
+
for (let i = scenarioIndex + 1; i < headings.length; i++) {
|
|
133
|
+
const next = headings[i];
|
|
134
|
+
const nextSpan = getFactSpan(next);
|
|
135
|
+
if (!nextSpan || nextSpan.start >= requirementEnd) return requirementEnd;
|
|
136
|
+
if ((next.depth ?? 6) <= 3 || getOpenSpecProjectionAnnotation(context.annotations, next.id, "scenario")) return nextSpan.start;
|
|
137
|
+
}
|
|
138
|
+
return requirementEnd;
|
|
139
|
+
}
|
|
140
|
+
function getContentStartAfterHeading(context, factId, fallback) {
|
|
141
|
+
const fact = context.factById.get(factId);
|
|
142
|
+
return fact ? getFactSpan(fact)?.end ?? fallback : fallback;
|
|
143
|
+
}
|
|
144
|
+
function projectScenario(context, scenario) {
|
|
145
|
+
const bodyMarkdown = trimMarkdownSlice(context.sourceMarkdown, getContentStartAfterHeading(context, scenario.factId, scenario.start), scenario.end);
|
|
146
|
+
const rawText = [scenario.title, bodyMarkdown].filter((part) => part.trim()).join("\n");
|
|
147
|
+
return {
|
|
148
|
+
title: scenario.title,
|
|
149
|
+
bodyMarkdown,
|
|
150
|
+
rawText,
|
|
151
|
+
steps: getScenarioStepsFromAnnotations(context, scenario)
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function getScenarioStepsFromAnnotations(context, scenario) {
|
|
155
|
+
return context.annotations.reduce((steps, annotation) => {
|
|
156
|
+
if (annotation.kind !== "scenario-step") return steps;
|
|
157
|
+
const fact = context.factById.get(annotation.targetFactId);
|
|
158
|
+
const span = fact ? getFactSpan(fact) : void 0;
|
|
159
|
+
if (!span || span.start <= scenario.start || span.start >= scenario.end) return steps;
|
|
160
|
+
const keyword = annotation.metadata?.keyword;
|
|
161
|
+
const contentMarkdown = annotation.metadata?.contentMarkdown;
|
|
162
|
+
const rawText = annotation.metadata?.rawMarkdown;
|
|
163
|
+
if (!isScenarioStepKeyword(keyword) || !contentMarkdown || !rawText) return steps;
|
|
164
|
+
steps.push({
|
|
165
|
+
keyword,
|
|
166
|
+
contentMarkdown,
|
|
167
|
+
rawText
|
|
168
|
+
});
|
|
169
|
+
return steps;
|
|
170
|
+
}, []);
|
|
171
|
+
}
|
|
172
|
+
function isScenarioStepKeyword(value) {
|
|
173
|
+
return value === "GIVEN" || value === "WHEN" || value === "THEN" || value === "AND" || value === "BUT";
|
|
174
|
+
}
|
|
175
|
+
function projectRequirement(context, requirement) {
|
|
176
|
+
const bodyEnd = requirement.scenarios.map((scenario) => scenario.start).sort((left, right) => left - right)[0] ?? requirement.end;
|
|
177
|
+
const bodyMarkdown = trimMarkdownSlice(context.sourceMarkdown, getContentStartAfterHeading(context, requirement.factId, requirement.start), bodyEnd);
|
|
178
|
+
const scenarios = requirement.scenarios.map((scenario) => projectScenario(context, scenario));
|
|
179
|
+
const scenarioText = scenarios.map((scenario) => scenario.rawText).join("\n\n");
|
|
180
|
+
return {
|
|
181
|
+
id: requirement.id,
|
|
182
|
+
title: requirement.title,
|
|
183
|
+
bodyMarkdown,
|
|
184
|
+
text: createRequirementText(requirement.title, bodyMarkdown, scenarioText),
|
|
185
|
+
scenarios
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function getFactSpan(fact) {
|
|
189
|
+
return getMarkdownFactSpan(fact);
|
|
190
|
+
}
|
|
191
|
+
function getSectionKind(annotations, factId) {
|
|
192
|
+
if (getOpenSpecProjectionAnnotation(annotations, factId, "purpose-section")) return "overview";
|
|
193
|
+
if (getOpenSpecProjectionAnnotation(annotations, factId, "requirements-section")) return "requirements";
|
|
194
|
+
return "other";
|
|
195
|
+
}
|
|
196
|
+
function createDetachedProjectionContext(document) {
|
|
197
|
+
return {
|
|
198
|
+
sourceMarkdown: document.sourceMarkdown,
|
|
199
|
+
facts: document.facts,
|
|
200
|
+
factById: new Map(document.facts.map((fact) => [fact.id, fact])),
|
|
201
|
+
annotations: document.annotations.filter(isOpenSpecAnnotation)
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function toOpenSpecProjectionContext(context) {
|
|
205
|
+
return {
|
|
206
|
+
sourceMarkdown: context.sourceMarkdown,
|
|
207
|
+
facts: context.facts,
|
|
208
|
+
factById: context.factById,
|
|
209
|
+
annotations: context.annotations.filter(isOpenSpecAnnotation)
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function toProjectedOpenSpecDocument(document) {
|
|
213
|
+
return {
|
|
214
|
+
...document,
|
|
215
|
+
annotations: document.annotations.filter(isOpenSpecAnnotation)
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function isOpenSpecAnnotation(annotation) {
|
|
219
|
+
return annotation.kind === "document-title" || annotation.kind === "purpose-section" || annotation.kind === "requirements-section" || annotation.kind === "requirement" || annotation.kind === "scenario" || annotation.kind === "scenario-step" || annotation.kind === "keyword";
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
//#endregion
|
|
223
|
+
export { getOpenSpecReadingSections as a, projectOpenSpecMarkdown as c, getOpenSpecProjectionAnnotation as i, OPEN_SPEC_SPEC_PROJECTION_ID as n, parseOpenSpecMarkdownToSpec as o, createOpenSpecReadingPlugin as r, projectAnnotatedOpenSpecToSpec as s, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID as t };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
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-DTuKPTgf.mjs";
|
|
2
|
+
import "./markdown-facts-f3kXnqXb.mjs";
|
|
3
|
+
import "./markdown-reading-D36W693c.mjs";
|
|
4
|
+
import "./openspec-annotations-CJmYcfAu.mjs";
|
|
5
|
+
export { OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OpenSpecHeadingSection, OpenSpecProjectionOptions, OpenSpecReadingSectionsProjection, OpenSpecRequirementBlock, OpenSpecScenarioBlock, ProjectedOpenSpecDocument, createOpenSpecReadingPlugin, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, parseOpenSpecMarkdownToSpec, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import "./markdown-facts-BmSmZmpB.mjs";
|
|
2
|
+
import "./markdown-reading-CrchEfoW.mjs";
|
|
3
|
+
import "./openspec-annotations-BMy9nWUe.mjs";
|
|
4
|
+
import { a as getOpenSpecReadingSections, c as projectOpenSpecMarkdown, i as getOpenSpecProjectionAnnotation, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as parseOpenSpecMarkdownToSpec, r as createOpenSpecReadingPlugin, s as projectAnnotatedOpenSpecToSpec, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID } from "./openspec-projection-DWqBxedv.mjs";
|
|
5
|
+
|
|
6
|
+
export { OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, createOpenSpecReadingPlugin, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, parseOpenSpecMarkdownToSpec, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-
|
|
1
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-CkV9sq_j.mjs";
|
|
2
2
|
export { VIRTUAL_PROJECT_DIRNAME, toOpsxDisplayPath };
|
package/dist/sounds.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as SoundVolume, D as normalizeLegacySoundId, E as getBuiltinSoundUrl, O as soundIdFromCustomHash, S as SoundIdSchema, T as customHashFromSoundId, _ as DEFAULT_SOUND_VOLUME, 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, w as SoundVolumeSchema, x as SoundId, y as SILENT_SOUND_ID } from "./sounds-
|
|
1
|
+
import { C as SoundVolume, D as normalizeLegacySoundId, E as getBuiltinSoundUrl, O as soundIdFromCustomHash, S as SoundIdSchema, T as customHashFromSoundId, _ as DEFAULT_SOUND_VOLUME, 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, w as SoundVolumeSchema, x as SoundId, y as SILENT_SOUND_ID } from "./sounds-CYxOpEdm.mjs";
|
|
2
2
|
export { BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BuiltinSoundId, BuiltinSoundIdSchema, BuiltinSoundOption, CUSTOM_SOUND_ADD_VALUE, CustomSoundHash, CustomSoundHashSchema, CustomSoundId, CustomSoundIdSchema, CustomSoundMetadata, CustomSoundMetadataFile, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DEFAULT_BELL_SOUND_ID, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_SOUND_VOLUME, LEGACY_SOUND_ID_MAP, SILENT_SOUND_ID, SoundConfigIdSchema, SoundId, SoundIdSchema, SoundVolume, SoundVolumeSchema, customHashFromSoundId, getBuiltinSoundUrl, normalizeLegacySoundId, soundIdFromCustomHash };
|
package/dist/sounds.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as customHashFromSoundId, a as CustomSoundHashSchema, b as soundIdFromCustomHash, c as CustomSoundMetadataSchema, d as DEFAULT_SOUND_VOLUME, f as LEGACY_SOUND_ID_MAP, g as SoundVolumeSchema, h as SoundIdSchema, i as CUSTOM_SOUND_ADD_VALUE, l as DEFAULT_BELL_SOUND_ID, m as SoundConfigIdSchema, n as BUILTIN_SOUND_OPTIONS, o as CustomSoundIdSchema, p as SILENT_SOUND_ID, r as BuiltinSoundIdSchema, s as CustomSoundMetadataFileSchema, t as BUILTIN_SOUND_IDS, u as DEFAULT_NOTIFICATION_SOUND_ID, v as getBuiltinSoundUrl, y as normalizeLegacySoundId } from "./sounds-
|
|
1
|
+
import { _ as customHashFromSoundId, a as CustomSoundHashSchema, b as soundIdFromCustomHash, c as CustomSoundMetadataSchema, d as DEFAULT_SOUND_VOLUME, f as LEGACY_SOUND_ID_MAP, g as SoundVolumeSchema, h as SoundIdSchema, i as CUSTOM_SOUND_ADD_VALUE, l as DEFAULT_BELL_SOUND_ID, m as SoundConfigIdSchema, n as BUILTIN_SOUND_OPTIONS, o as CustomSoundIdSchema, p as SILENT_SOUND_ID, r as BuiltinSoundIdSchema, s as CustomSoundMetadataFileSchema, t as BUILTIN_SOUND_IDS, u as DEFAULT_NOTIFICATION_SOUND_ID, v as getBuiltinSoundUrl, y as normalizeLegacySoundId } from "./sounds-BzNKMW05.mjs";
|
|
2
2
|
|
|
3
3
|
export { BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BuiltinSoundIdSchema, CUSTOM_SOUND_ADD_VALUE, CustomSoundHashSchema, CustomSoundIdSchema, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DEFAULT_BELL_SOUND_ID, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_SOUND_VOLUME, LEGACY_SOUND_ID_MAP, SILENT_SOUND_ID, SoundConfigIdSchema, SoundIdSchema, SoundVolumeSchema, customHashFromSoundId, getBuiltinSoundUrl, normalizeLegacySoundId, soundIdFromCustomHash };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./sounds-
|
|
2
|
-
import { i as TerminalBellSoundSchema, n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSound, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-
|
|
1
|
+
import "./sounds-CYxOpEdm.mjs";
|
|
2
|
+
import { i as TerminalBellSoundSchema, n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSound, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-U9Exv9A5.mjs";
|
|
3
3
|
export { TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TerminalBellSound, TerminalBellSoundSchema };
|
package/dist/terminal-audio.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./sounds-
|
|
2
|
-
import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-
|
|
1
|
+
import "./sounds-BzNKMW05.mjs";
|
|
2
|
+
import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-UEv3j655.mjs";
|
|
3
3
|
|
|
4
4
|
export { TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TerminalBellSoundSchema };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./sounds-
|
|
2
|
-
import { A as TerminalNotificationProtocol, D as TerminalControlEvent, M as TerminalPromptState, N as TerminalTitleTarget, O as TerminalControlParseResult, P as terminalNotificationEventToPublishInput, j as TerminalProgressState, k as TerminalControlParser } from "./notifications-
|
|
1
|
+
import "./sounds-CYxOpEdm.mjs";
|
|
2
|
+
import { A as TerminalNotificationProtocol, D as TerminalControlEvent, M as TerminalPromptState, N as TerminalTitleTarget, O as TerminalControlParseResult, P as terminalNotificationEventToPublishInput, j as TerminalProgressState, k as TerminalControlParser } from "./notifications-C4amULI4.mjs";
|
|
3
3
|
export { TerminalControlEvent, TerminalControlParseResult, TerminalControlParser, TerminalNotificationProtocol, TerminalProgressState, TerminalPromptState, TerminalTitleTarget, terminalNotificationEventToPublishInput };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-
|
|
1
|
+
import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-Bxois59k.mjs";
|
|
2
2
|
|
|
3
3
|
export { TerminalControlParser, terminalNotificationEventToPublishInput };
|
|
@@ -645,10 +645,10 @@ declare const TerminalCommandFieldSchema: z.ZodObject<{
|
|
|
645
645
|
label: string;
|
|
646
646
|
id: string;
|
|
647
647
|
options?: string[] | undefined;
|
|
648
|
-
required?: boolean | undefined;
|
|
649
648
|
description?: string | undefined;
|
|
650
649
|
placeholder?: string | undefined;
|
|
651
650
|
defaultValue?: string | boolean | undefined;
|
|
651
|
+
required?: boolean | undefined;
|
|
652
652
|
advanced?: boolean | undefined;
|
|
653
653
|
}>;
|
|
654
654
|
type TerminalCommandField = z.infer<typeof TerminalCommandFieldSchema>;
|
|
@@ -1012,10 +1012,10 @@ declare const TerminalSpawnCommandSchema: z.ZodObject<{
|
|
|
1012
1012
|
label: string;
|
|
1013
1013
|
id: string;
|
|
1014
1014
|
options?: string[] | undefined;
|
|
1015
|
-
required?: boolean | undefined;
|
|
1016
1015
|
description?: string | undefined;
|
|
1017
1016
|
placeholder?: string | undefined;
|
|
1018
1017
|
defaultValue?: string | boolean | undefined;
|
|
1018
|
+
required?: boolean | undefined;
|
|
1019
1019
|
advanced?: boolean | undefined;
|
|
1020
1020
|
}>, "many">>;
|
|
1021
1021
|
parameters: z.ZodOptional<z.ZodObject<{
|
|
@@ -1259,10 +1259,10 @@ declare const TerminalSpawnCommandSchema: z.ZodObject<{
|
|
|
1259
1259
|
label: string;
|
|
1260
1260
|
id: string;
|
|
1261
1261
|
options?: string[] | undefined;
|
|
1262
|
-
required?: boolean | undefined;
|
|
1263
1262
|
description?: string | undefined;
|
|
1264
1263
|
placeholder?: string | undefined;
|
|
1265
1264
|
defaultValue?: string | boolean | undefined;
|
|
1265
|
+
required?: boolean | undefined;
|
|
1266
1266
|
advanced?: boolean | undefined;
|
|
1267
1267
|
}[] | undefined;
|
|
1268
1268
|
parameters?: {
|
|
@@ -1392,10 +1392,10 @@ declare const TerminalInvocationSettingsSchema: z.ZodObject<{
|
|
|
1392
1392
|
label: string;
|
|
1393
1393
|
id: string;
|
|
1394
1394
|
options?: string[] | undefined;
|
|
1395
|
-
required?: boolean | undefined;
|
|
1396
1395
|
description?: string | undefined;
|
|
1397
1396
|
placeholder?: string | undefined;
|
|
1398
1397
|
defaultValue?: string | boolean | undefined;
|
|
1398
|
+
required?: boolean | undefined;
|
|
1399
1399
|
advanced?: boolean | undefined;
|
|
1400
1400
|
}>, "many">>;
|
|
1401
1401
|
parameters: z.ZodOptional<z.ZodObject<{
|
|
@@ -1639,10 +1639,10 @@ declare const TerminalInvocationSettingsSchema: z.ZodObject<{
|
|
|
1639
1639
|
label: string;
|
|
1640
1640
|
id: string;
|
|
1641
1641
|
options?: string[] | undefined;
|
|
1642
|
-
required?: boolean | undefined;
|
|
1643
1642
|
description?: string | undefined;
|
|
1644
1643
|
placeholder?: string | undefined;
|
|
1645
1644
|
defaultValue?: string | boolean | undefined;
|
|
1645
|
+
required?: boolean | undefined;
|
|
1646
1646
|
advanced?: boolean | undefined;
|
|
1647
1647
|
}[] | undefined;
|
|
1648
1648
|
parameters?: {
|
|
@@ -1789,10 +1789,10 @@ declare const TerminalInvocationSettingsSchema: z.ZodObject<{
|
|
|
1789
1789
|
label: string;
|
|
1790
1790
|
id: string;
|
|
1791
1791
|
options?: string[] | undefined;
|
|
1792
|
-
required?: boolean | undefined;
|
|
1793
1792
|
description?: string | undefined;
|
|
1794
1793
|
placeholder?: string | undefined;
|
|
1795
1794
|
defaultValue?: string | boolean | undefined;
|
|
1795
|
+
required?: boolean | undefined;
|
|
1796
1796
|
advanced?: boolean | undefined;
|
|
1797
1797
|
}[] | undefined;
|
|
1798
1798
|
parameters?: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as renderTerminalSpawnCommand, C as TerminalSpawnCommand, D as getTerminalCommandParameters, E as getTerminalCommandDefaultValues, M as resolveTerminalShellDefaults, O as quoteTerminalShellArg, S as TerminalShellQuoteStyleSchema, T as fieldsToTerminalCommandParameters, _ as TerminalShellDefaults, a as TerminalCommandBuilder, b as TerminalShellProfileSchema, c as TerminalCommandFieldSchema, d as TerminalCommandJsonSchema, f as TerminalCommandJsonSchemaProperty, g as TerminalInvocationSettingsSchema, h as TerminalInvocationSettings, i as TerminalCommandArgument, j as renderTerminalSpawnCommandLine, k as renderTerminalCommandArgs, l as TerminalCommandFieldValue, m as TerminalCommandRenderResult, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, o as TerminalCommandBuilderPart, p as TerminalCommandParameters, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, s as TerminalCommandField, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, u as TerminalCommandFieldValues, v as TerminalShellEnv, w as TerminalSpawnCommandSchema, x as TerminalShellQuoteStyle, y as TerminalShellProfile } from "./terminal-invocation-
|
|
1
|
+
import { A as renderTerminalSpawnCommand, C as TerminalSpawnCommand, D as getTerminalCommandParameters, E as getTerminalCommandDefaultValues, M as resolveTerminalShellDefaults, O as quoteTerminalShellArg, S as TerminalShellQuoteStyleSchema, T as fieldsToTerminalCommandParameters, _ as TerminalShellDefaults, a as TerminalCommandBuilder, b as TerminalShellProfileSchema, c as TerminalCommandFieldSchema, d as TerminalCommandJsonSchema, f as TerminalCommandJsonSchemaProperty, g as TerminalInvocationSettingsSchema, h as TerminalInvocationSettings, i as TerminalCommandArgument, j as renderTerminalSpawnCommandLine, k as renderTerminalCommandArgs, l as TerminalCommandFieldValue, m as TerminalCommandRenderResult, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, o as TerminalCommandBuilderPart, p as TerminalCommandParameters, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, s as TerminalCommandField, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, u as TerminalCommandFieldValues, v as TerminalShellEnv, w as TerminalSpawnCommandSchema, x as TerminalShellQuoteStyle, y as TerminalShellProfile } from "./terminal-invocation-BmwWgwgY.mjs";
|
|
2
2
|
export { BUILTIN_TERMINAL_SPAWN_COMMANDS, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TerminalCommandArgument, TerminalCommandBuilder, TerminalCommandBuilderPart, TerminalCommandField, TerminalCommandFieldSchema, TerminalCommandFieldValue, TerminalCommandFieldValues, TerminalCommandJsonSchema, TerminalCommandJsonSchemaProperty, TerminalCommandParameters, TerminalCommandRenderResult, TerminalInvocationSettings, TerminalInvocationSettingsSchema, TerminalShellDefaults, TerminalShellEnv, TerminalShellProfile, TerminalShellProfileSchema, TerminalShellQuoteStyle, TerminalShellQuoteStyleSchema, TerminalSpawnCommand, TerminalSpawnCommandSchema, fieldsToTerminalCommandParameters, getTerminalCommandDefaultValues, getTerminalCommandParameters, quoteTerminalShellArg, renderTerminalCommandArgs, renderTerminalSpawnCommand, renderTerminalSpawnCommandLine, resolveTerminalShellDefaults };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as TerminalInvocationSettingsSchema, c as TerminalSpawnCommandSchema, d as getTerminalCommandParameters, f as quoteTerminalShellArg, g as resolveTerminalShellDefaults, h as renderTerminalSpawnCommandLine, i as TerminalCommandFieldSchema, l as fieldsToTerminalCommandParameters, m as renderTerminalSpawnCommand, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, o as TerminalShellProfileSchema, p as renderTerminalCommandArgs, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, s as TerminalShellQuoteStyleSchema, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, u as getTerminalCommandDefaultValues } from "./terminal-invocation-
|
|
1
|
+
import { a as TerminalInvocationSettingsSchema, c as TerminalSpawnCommandSchema, d as getTerminalCommandParameters, f as quoteTerminalShellArg, g as resolveTerminalShellDefaults, h as renderTerminalSpawnCommandLine, i as TerminalCommandFieldSchema, l as fieldsToTerminalCommandParameters, m as renderTerminalSpawnCommand, n as TERMINAL_COMMAND_FIELD_TYPE_VALUES, o as TerminalShellProfileSchema, p as renderTerminalCommandArgs, r as TERMINAL_SHELL_QUOTE_STYLE_VALUES, s as TerminalShellQuoteStyleSchema, t as BUILTIN_TERMINAL_SPAWN_COMMANDS, u as getTerminalCommandDefaultValues } from "./terminal-invocation-BRCuSBjE.mjs";
|
|
2
2
|
|
|
3
3
|
export { BUILTIN_TERMINAL_SPAWN_COMMANDS, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TerminalCommandFieldSchema, TerminalInvocationSettingsSchema, TerminalShellProfileSchema, TerminalShellQuoteStyleSchema, TerminalSpawnCommandSchema, fieldsToTerminalCommandParameters, getTerminalCommandDefaultValues, getTerminalCommandParameters, quoteTerminalShellArg, renderTerminalCommandArgs, renderTerminalSpawnCommand, renderTerminalSpawnCommandLine, resolveTerminalShellDefaults };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, o as TerminalThemeId, r as DEFAULT_TERMINAL_THEME_MODE, s as TerminalThemeMode, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-
|
|
1
|
+
import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, o as TerminalThemeId, r as DEFAULT_TERMINAL_THEME_MODE, s as TerminalThemeMode, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-lPZGfVA_.mjs";
|
|
2
2
|
export { DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TerminalThemeId, TerminalThemeMode };
|
package/dist/terminal-theme.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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-CIv3YMfi.mjs";
|
|
2
2
|
|
|
3
3
|
export { DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openspecui/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Core OpenSpec adapter and parser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -22,6 +22,22 @@
|
|
|
22
22
|
"import": "./dist/openspec-compat.mjs",
|
|
23
23
|
"types": "./dist/openspec-compat.d.mts"
|
|
24
24
|
},
|
|
25
|
+
"./markdown-facts": {
|
|
26
|
+
"import": "./dist/markdown-facts.mjs",
|
|
27
|
+
"types": "./dist/markdown-facts.d.mts"
|
|
28
|
+
},
|
|
29
|
+
"./markdown-reading": {
|
|
30
|
+
"import": "./dist/markdown-reading.mjs",
|
|
31
|
+
"types": "./dist/markdown-reading.d.mts"
|
|
32
|
+
},
|
|
33
|
+
"./openspec-annotations": {
|
|
34
|
+
"import": "./dist/openspec-annotations.mjs",
|
|
35
|
+
"types": "./dist/openspec-annotations.d.mts"
|
|
36
|
+
},
|
|
37
|
+
"./openspec-projection": {
|
|
38
|
+
"import": "./dist/openspec-projection.mjs",
|
|
39
|
+
"types": "./dist/openspec-projection.d.mts"
|
|
40
|
+
},
|
|
25
41
|
"./opsx-display-path": {
|
|
26
42
|
"import": "./dist/opsx-display-path.mjs",
|
|
27
43
|
"types": "./dist/opsx-display-path.d.mts"
|
|
@@ -55,18 +71,24 @@
|
|
|
55
71
|
"dist"
|
|
56
72
|
],
|
|
57
73
|
"scripts": {
|
|
58
|
-
"build": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts src/notifications.ts src/sounds.ts src/terminal-theme.ts src/terminal-invocation.ts src/terminal-audio.ts src/terminal-control.ts --format esm --dts",
|
|
59
|
-
"dev": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts src/notifications.ts src/sounds.ts src/terminal-theme.ts src/terminal-invocation.ts src/terminal-audio.ts src/terminal-control.ts --format esm --dts --watch",
|
|
74
|
+
"build": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts src/markdown-facts.ts src/markdown-reading.ts src/openspec-annotations.ts src/openspec-projection.ts src/notifications.ts src/sounds.ts src/terminal-theme.ts src/terminal-invocation.ts src/terminal-audio.ts src/terminal-control.ts --format esm --dts",
|
|
75
|
+
"dev": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts src/markdown-facts.ts src/markdown-reading.ts src/openspec-annotations.ts src/openspec-projection.ts src/notifications.ts src/sounds.ts src/terminal-theme.ts src/terminal-invocation.ts src/terminal-audio.ts src/terminal-control.ts --format esm --dts --watch",
|
|
60
76
|
"test": "vitest run",
|
|
61
77
|
"test:watch": "vitest",
|
|
62
78
|
"typecheck": "tsc --noEmit"
|
|
63
79
|
},
|
|
64
80
|
"dependencies": {
|
|
65
81
|
"@parcel/watcher": "^2.5.1",
|
|
82
|
+
"mdast-util-from-markdown": "^2.0.2",
|
|
83
|
+
"mdast-util-gfm": "^3.1.0",
|
|
84
|
+
"mdast-util-to-string": "^4.0.0",
|
|
85
|
+
"micromark-extension-gfm": "^3.0.0",
|
|
66
86
|
"yaml": "^2.8.2",
|
|
67
87
|
"zod": "^3.24.1"
|
|
68
88
|
},
|
|
69
89
|
"devDependencies": {
|
|
90
|
+
"@types/mdast": "^4.0.4",
|
|
91
|
+
"@types/unist": "^3.0.3",
|
|
70
92
|
"@vitest/coverage-v8": "^4.1.0",
|
|
71
93
|
"tsdown": "^0.16.6",
|
|
72
94
|
"typescript": "^5.7.2",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|