@aexol/opencode-wizard 0.1.2 → 0.1.4

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/tui.js ADDED
@@ -0,0 +1,317 @@
1
+ import { createComponent as _$createComponent } from "@opentui/solid";
2
+ import { effect as _$effect } from "@opentui/solid";
3
+ import { createTextNode as _$createTextNode } from "@opentui/solid";
4
+ import { insertNode as _$insertNode } from "@opentui/solid";
5
+ import { insert as _$insert } from "@opentui/solid";
6
+ import { setProp as _$setProp } from "@opentui/solid";
7
+ import { createElement as _$createElement } from "@opentui/solid";
8
+ /** @jsxImportSource @opentui/solid */
9
+
10
+ import { createMemo, createSignal } from 'solid-js';
11
+ import { PLUGIN_ID, resolvePluginStatusSnapshot } from './server.js';
12
+ const STATUS_TIMEOUT_MS = 5_000;
13
+ const getSkillDisplayName = skill => skill.artifactName || skill.skillName || skill.skillSlug;
14
+ const getSkillPolicy = skill => skill.policyLabel || skill.installPolicy;
15
+ const formatSkillTags = skill => {
16
+ const tagNames = skill.tags.map(tag => tag.label || tag.slug).filter(tag => tag.length > 0);
17
+ if (tagNames.length === 0) return 'none';
18
+ return tagNames.join(', ');
19
+ };
20
+ const formatSkillsCatalogUnavailableMessage = snapshot => {
21
+ if (!snapshot.catalog && snapshot.status === 'missing_auth') {
22
+ return 'skills catalog locked until interactive fetch authenticates';
23
+ }
24
+ if (!snapshot.catalog) return `skills catalog unavailable: ${snapshot.message ?? snapshot.status}`;
25
+ return 'skills catalog unavailable';
26
+ };
27
+ const formatSkillOptionDescription = skill => {
28
+ const description = skill.artifactDescription || skill.skillSlug;
29
+ return `${skill.contextKind.toUpperCase()} · ${getSkillPolicy(skill)} · v${skill.version || 'unknown'} · ${skill.skillName || skill.skillSlug} · ${formatSkillTags(skill)} · ${description}`;
30
+ };
31
+ const Row = props => (() => {
32
+ var _el$ = _$createElement("box"),
33
+ _el$2 = _$createElement("text"),
34
+ _el$3 = _$createTextNode(`: `),
35
+ _el$4 = _$createElement("text");
36
+ _$insertNode(_el$, _el$2);
37
+ _$insertNode(_el$, _el$4);
38
+ _$setProp(_el$, "width", "100%");
39
+ _$setProp(_el$, "flexDirection", "row");
40
+ _$setProp(_el$, "overflow", "hidden");
41
+ _$insertNode(_el$2, _el$3);
42
+ _$setProp(_el$2, "flexShrink", 0);
43
+ _$setProp(_el$2, "wrapMode", "none");
44
+ _$insert(_el$2, () => props.label, _el$3);
45
+ _$setProp(_el$4, "flexGrow", 1);
46
+ _$setProp(_el$4, "overflow", "hidden");
47
+ _$setProp(_el$4, "wrapMode", "none");
48
+ _$insert(_el$4, () => props.value);
49
+ _$effect(_p$ => {
50
+ var _v$ = props.labelColor,
51
+ _v$2 = props.valueColor;
52
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$2, "fg", _v$, _p$.e));
53
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$4, "fg", _v$2, _p$.t));
54
+ return _p$;
55
+ }, {
56
+ e: undefined,
57
+ t: undefined
58
+ });
59
+ return _el$;
60
+ })();
61
+ const Panel = props => (() => {
62
+ var _el$5 = _$createElement("box"),
63
+ _el$6 = _$createElement("text"),
64
+ _el$7 = _$createElement("b");
65
+ _$insertNode(_el$5, _el$6);
66
+ _$setProp(_el$5, "width", "100%");
67
+ _$setProp(_el$5, "flexDirection", "column");
68
+ _$setProp(_el$5, "paddingRight", 1);
69
+ _$insertNode(_el$6, _el$7);
70
+ _$setProp(_el$6, "wrapMode", "none");
71
+ _$setProp(_el$6, "overflow", "hidden");
72
+ _$insert(_el$7, () => props.title);
73
+ _$insert(_el$5, () => props.children, null);
74
+ _$effect(_p$ => {
75
+ var _v$3 = props.onPress,
76
+ _v$4 = props.theme.text;
77
+ _v$3 !== _p$.e && (_p$.e = _$setProp(_el$5, "onMouseUp", _v$3, _p$.e));
78
+ _v$4 !== _p$.t && (_p$.t = _$setProp(_el$6, "fg", _v$4, _p$.t));
79
+ return _p$;
80
+ }, {
81
+ e: undefined,
82
+ t: undefined
83
+ });
84
+ return _el$5;
85
+ })();
86
+ const openSkillsDialog = (api, status) => {
87
+ const theme = api.theme.current;
88
+ if (status.kind === 'ready' && status.snapshot.catalog) {
89
+ const options = status.snapshot.catalog.skills.map(skill => ({
90
+ title: getSkillDisplayName(skill),
91
+ value: skill.skillSlug,
92
+ description: formatSkillOptionDescription(skill)
93
+ }));
94
+ api.ui.dialog.replace(() => _$createComponent(api.ui.DialogSelect, {
95
+ title: "Wizard skills catalog",
96
+ placeholder: "Filter loaded skills",
97
+ options: options,
98
+ onSelect: option => {
99
+ const selectedSkill = status.snapshot.catalog?.skills.find(skill => skill.skillSlug === option.value);
100
+ if (!selectedSkill) return;
101
+ api.ui.dialog.clear();
102
+ }
103
+ }));
104
+ return;
105
+ }
106
+ const message = status.kind === 'loading' ? 'Skills catalog is loading. Try again after the catalog event completes.' : status.kind === 'error' ? `Skills catalog unavailable: ${status.message}` : status.snapshot.status === 'missing_auth' ? 'Skills catalog is locked until interactive fetch authenticates.' : status.snapshot.message ?? 'Skills catalog unavailable.';
107
+ api.ui.dialog.replace(() => _$createComponent(api.ui.Dialog, {
108
+ size: "medium",
109
+ onClose: () => {
110
+ api.ui.dialog.clear();
111
+ },
112
+ get children() {
113
+ var _el$8 = _$createElement("box"),
114
+ _el$9 = _$createElement("text"),
115
+ _el$0 = _$createElement("b"),
116
+ _el$10 = _$createElement("text");
117
+ _$insertNode(_el$8, _el$9);
118
+ _$insertNode(_el$8, _el$10);
119
+ _$setProp(_el$8, "width", "100%");
120
+ _$setProp(_el$8, "flexDirection", "column");
121
+ _$setProp(_el$8, "paddingLeft", 1);
122
+ _$setProp(_el$8, "paddingRight", 1);
123
+ _$insertNode(_el$9, _el$0);
124
+ _$setProp(_el$9, "wrapMode", "none");
125
+ _$insertNode(_el$0, _$createTextNode(`Wizard skills catalog`));
126
+ _$setProp(_el$10, "marginTop", 1);
127
+ _$insert(_el$10, message);
128
+ _$effect(_p$ => {
129
+ var _v$5 = theme.text,
130
+ _v$6 = theme.warning;
131
+ _v$5 !== _p$.e && (_p$.e = _$setProp(_el$9, "fg", _v$5, _p$.e));
132
+ _v$6 !== _p$.t && (_p$.t = _$setProp(_el$10, "fg", _v$6, _p$.t));
133
+ return _p$;
134
+ }, {
135
+ e: undefined,
136
+ t: undefined
137
+ });
138
+ return _el$8;
139
+ }
140
+ }));
141
+ };
142
+ const SkillsRows = props => {
143
+ const theme = createMemo(() => props.api.theme.current);
144
+ const statusContent = () => {
145
+ const currentStatus = props.status();
146
+ if (currentStatus.kind === 'loading') {
147
+ return (() => {
148
+ var _el$11 = _$createElement("text");
149
+ _$insertNode(_el$11, _$createTextNode(`loading wizard skills catalog…`));
150
+ _$setProp(_el$11, "wrapMode", "none");
151
+ _$setProp(_el$11, "overflow", "hidden");
152
+ _$effect(_$p => _$setProp(_el$11, "fg", theme().textMuted, _$p));
153
+ return _el$11;
154
+ })();
155
+ }
156
+ if (currentStatus.kind === 'error') {
157
+ return (() => {
158
+ var _el$13 = _$createElement("text"),
159
+ _el$14 = _$createTextNode(`skills catalog unavailable: `);
160
+ _$insertNode(_el$13, _el$14);
161
+ _$setProp(_el$13, "wrapMode", "none");
162
+ _$setProp(_el$13, "overflow", "hidden");
163
+ _$insert(_el$13, () => currentStatus.message, null);
164
+ _$effect(_$p => _$setProp(_el$13, "fg", theme().warning, _$p));
165
+ return _el$13;
166
+ })();
167
+ }
168
+ return _$createComponent(ReadyRows, {
169
+ get snapshot() {
170
+ return currentStatus.snapshot;
171
+ },
172
+ get theme() {
173
+ return theme();
174
+ }
175
+ });
176
+ };
177
+ return (() => {
178
+ var _el$15 = _$createElement("box");
179
+ _$setProp(_el$15, "width", "100%");
180
+ _$setProp(_el$15, "flexDirection", "column");
181
+ _$setProp(_el$15, "overflow", "hidden");
182
+ _$insert(_el$15, statusContent);
183
+ return _el$15;
184
+ })();
185
+ };
186
+ const CatalogBullet = props => (() => {
187
+ var _el$16 = _$createElement("text"),
188
+ _el$17 = _$createTextNode(` - `);
189
+ _$insertNode(_el$16, _el$17);
190
+ _$setProp(_el$16, "wrapMode", "none");
191
+ _$setProp(_el$16, "overflow", "hidden");
192
+ _$insert(_el$16, () => props.value, null);
193
+ _$effect(_$p => _$setProp(_el$16, "fg", props.theme.text, _$p));
194
+ return _el$16;
195
+ })();
196
+ const ReadyRows = props => {
197
+ if (!props.snapshot.catalog) {
198
+ return (() => {
199
+ var _el$18 = _$createElement("box");
200
+ _$setProp(_el$18, "width", "100%");
201
+ _$setProp(_el$18, "flexDirection", "column");
202
+ _$setProp(_el$18, "overflow", "hidden");
203
+ _$insert(_el$18, _$createComponent(Row, {
204
+ label: "catalog",
205
+ get value() {
206
+ return formatSkillsCatalogUnavailableMessage(props.snapshot);
207
+ },
208
+ get labelColor() {
209
+ return props.theme.textMuted;
210
+ },
211
+ get valueColor() {
212
+ return props.theme.text;
213
+ }
214
+ }));
215
+ return _el$18;
216
+ })();
217
+ }
218
+ const counts = props.snapshot.catalog.assignmentCounts;
219
+ return (() => {
220
+ var _el$19 = _$createElement("box"),
221
+ _el$20 = _$createElement("text");
222
+ _$insertNode(_el$19, _el$20);
223
+ _$setProp(_el$19, "width", "100%");
224
+ _$setProp(_el$19, "flexDirection", "column");
225
+ _$setProp(_el$19, "overflow", "hidden");
226
+ _$insertNode(_el$20, _$createTextNode(`catalog:`));
227
+ _$setProp(_el$20, "wrapMode", "none");
228
+ _$setProp(_el$20, "overflow", "hidden");
229
+ _$insert(_el$19, _$createComponent(CatalogBullet, {
230
+ get value() {
231
+ return `${props.snapshot.catalog.publishedSkillCount} loaded`;
232
+ },
233
+ get theme() {
234
+ return props.theme;
235
+ }
236
+ }), null);
237
+ _$insert(_el$19, _$createComponent(CatalogBullet, {
238
+ get value() {
239
+ return `${counts.global} global`;
240
+ },
241
+ get theme() {
242
+ return props.theme;
243
+ }
244
+ }), null);
245
+ _$insert(_el$19, _$createComponent(CatalogBullet, {
246
+ get value() {
247
+ return `${counts.project} workspace`;
248
+ },
249
+ get theme() {
250
+ return props.theme;
251
+ }
252
+ }), null);
253
+ _$effect(_$p => _$setProp(_el$20, "fg", props.theme.textMuted, _$p));
254
+ return _el$19;
255
+ })();
256
+ };
257
+ const createWizardStatusSlot = (api, status) => ({
258
+ order: 240,
259
+ slots: {
260
+ home_bottom: () => _$createComponent(Panel, {
261
+ title: "Wizard Skills",
262
+ get theme() {
263
+ return api.theme.current;
264
+ },
265
+ onPress: () => openSkillsDialog(api, status()),
266
+ get children() {
267
+ return _$createComponent(SkillsRows, {
268
+ api: api,
269
+ status: status
270
+ });
271
+ }
272
+ }),
273
+ sidebar_content: (_ctx, _value) => _$createComponent(Panel, {
274
+ title: "Wizard Skills",
275
+ get theme() {
276
+ return api.theme.current;
277
+ },
278
+ onPress: () => openSkillsDialog(api, status()),
279
+ get children() {
280
+ return _$createComponent(SkillsRows, {
281
+ api: api,
282
+ status: status
283
+ });
284
+ }
285
+ })
286
+ }
287
+ });
288
+ const loadStatus = async api => {
289
+ try {
290
+ const snapshot = await resolvePluginStatusSnapshot({
291
+ worktree: api.state.path.worktree,
292
+ directory: api.state.path.directory,
293
+ signal: AbortSignal.timeout(STATUS_TIMEOUT_MS)
294
+ });
295
+ return {
296
+ kind: 'ready',
297
+ snapshot
298
+ };
299
+ } catch (error) {
300
+ return {
301
+ kind: 'error',
302
+ message: error instanceof Error ? error.message : 'Unable to load opencode-wizard status.'
303
+ };
304
+ }
305
+ };
306
+ const tui = async api => {
307
+ const [status, setStatus] = createSignal({
308
+ kind: 'loading'
309
+ });
310
+ api.slots.register(createWizardStatusSlot(api, status));
311
+ void loadStatus(api).then(setStatus);
312
+ };
313
+ export default {
314
+ id: PLUGIN_ID,
315
+ tui
316
+ };
317
+ //# sourceMappingURL=tui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createMemo","createSignal","PLUGIN_ID","resolvePluginStatusSnapshot","STATUS_TIMEOUT_MS","getSkillDisplayName","skill","artifactName","skillName","skillSlug","getSkillPolicy","policyLabel","installPolicy","formatSkillTags","tagNames","tags","map","tag","label","slug","filter","length","join","formatSkillsCatalogUnavailableMessage","snapshot","catalog","status","message","formatSkillOptionDescription","description","artifactDescription","contextKind","toUpperCase","version","Row","props","_el$","_$createElement","_el$2","_el$3","_$createTextNode","_el$4","_$insertNode","_$setProp","_$insert","value","_$effect","_p$","_v$","labelColor","_v$2","valueColor","e","t","undefined","Panel","_el$5","_el$6","_el$7","title","children","_v$3","onPress","_v$4","theme","text","openSkillsDialog","api","current","kind","options","skills","ui","dialog","replace","_$createComponent","DialogSelect","placeholder","onSelect","option","selectedSkill","find","clear","Dialog","size","onClose","_el$8","_el$9","_el$0","_el$10","_v$5","_v$6","warning","SkillsRows","statusContent","currentStatus","_el$11","_$p","textMuted","_el$13","_el$14","ReadyRows","_el$15","CatalogBullet","_el$16","_el$17","_el$18","counts","assignmentCounts","_el$19","_el$20","publishedSkillCount","global","project","createWizardStatusSlot","order","slots","home_bottom","sidebar_content","_ctx","_value","loadStatus","worktree","state","path","directory","signal","AbortSignal","timeout","error","Error","tui","setStatus","register","then","id"],"sources":["../src/tui.tsx"],"sourcesContent":["/** @jsxImportSource @opentui/solid */\nimport type { RGBA } from '@opentui/core';\nimport { createMemo, createSignal } from 'solid-js';\nimport type { JSX } from 'solid-js';\nimport {\n PLUGIN_ID,\n resolvePluginStatusSnapshot,\n type PluginStatusSnapshot,\n} from './server.js';\n\ntype StatusState =\n | {\n kind: 'loading';\n }\n | {\n kind: 'ready';\n snapshot: PluginStatusSnapshot;\n }\n | {\n kind: 'error';\n message: string;\n };\n\ntype WizardTheme = {\n text: string | RGBA | undefined;\n textMuted: string | RGBA | undefined;\n warning: string | RGBA | undefined;\n};\n\ntype DialogSelectOption = {\n title: string;\n value: string;\n description: string;\n};\n\ntype TuiPluginApi = {\n theme: {\n current: WizardTheme;\n };\n ui: {\n dialog: {\n replace: (render: () => JSX.Element) => void;\n clear: () => void;\n };\n DialogSelect: (props: {\n title: string;\n placeholder: string;\n options: DialogSelectOption[];\n onSelect: (option: DialogSelectOption) => void;\n }) => JSX.Element;\n Dialog: (props: { size: 'medium'; onClose: () => void; children: JSX.Element }) => JSX.Element;\n };\n slots: {\n register: (slot: TuiSlotPlugin) => void;\n };\n state: {\n path: {\n worktree: string;\n directory: string;\n };\n };\n};\n\ntype TuiSlotContext = unknown;\n\ntype TuiSlotPlugin = {\n order: number;\n slots: {\n home_bottom: () => JSX.Element;\n sidebar_content: (ctx: TuiSlotContext, value: { session_id: string }) => JSX.Element;\n };\n};\n\ntype TuiPlugin = (api: TuiPluginApi) => void | Promise<void>;\n\nconst STATUS_TIMEOUT_MS = 5_000;\ntype PublishedSkillSummary = NonNullable<PluginStatusSnapshot['catalog']>['skills'][number];\n\nconst getSkillDisplayName = (skill: PublishedSkillSummary): string => skill.artifactName || skill.skillName || skill.skillSlug;\n\nconst getSkillPolicy = (skill: PublishedSkillSummary): string => skill.policyLabel || skill.installPolicy;\n\nconst formatSkillTags = (skill: PublishedSkillSummary): string => {\n const tagNames = skill.tags.map((tag) => tag.label || tag.slug).filter((tag) => tag.length > 0);\n if (tagNames.length === 0) return 'none';\n\n return tagNames.join(', ');\n};\n\nconst formatSkillsCatalogUnavailableMessage = (snapshot: PluginStatusSnapshot): string => {\n if (!snapshot.catalog && snapshot.status === 'missing_auth') {\n return 'skills catalog locked until interactive fetch authenticates';\n }\n\n if (!snapshot.catalog) return `skills catalog unavailable: ${snapshot.message ?? snapshot.status}`;\n\n return 'skills catalog unavailable';\n};\n\nconst formatSkillOptionDescription = (skill: PublishedSkillSummary): string => {\n const description = skill.artifactDescription || skill.skillSlug;\n return `${skill.contextKind.toUpperCase()} · ${getSkillPolicy(skill)} · v${skill.version || 'unknown'} · ${skill.skillName || skill.skillSlug} · ${formatSkillTags(skill)} · ${description}`;\n};\n\nconst Row = (props: {\n label: string;\n value: string;\n labelColor: string | RGBA | undefined;\n valueColor: string | RGBA | undefined;\n}) => (\n <box width=\"100%\" flexDirection=\"row\" overflow=\"hidden\">\n <text fg={props.labelColor} flexShrink={0} wrapMode=\"none\">\n {props.label}:&nbsp;\n </text>\n <text fg={props.valueColor} flexGrow={1} overflow=\"hidden\" wrapMode=\"none\">\n {props.value}\n </text>\n </box>\n);\n\nconst Panel = (props: {\n title: string;\n theme: TuiPluginApi['theme']['current'];\n onPress?: () => void;\n children: JSX.Element;\n}) => (\n <box\n width=\"100%\"\n flexDirection=\"column\"\n paddingRight={1}\n onMouseUp={props.onPress}\n >\n <text fg={props.theme.text} wrapMode=\"none\" overflow=\"hidden\">\n <b>{props.title}</b>\n </text>\n {props.children}\n </box>\n);\n\nconst openSkillsDialog = (api: TuiPluginApi, status: StatusState) => {\n const theme = api.theme.current;\n\n if (status.kind === 'ready' && status.snapshot.catalog) {\n const options = status.snapshot.catalog.skills.map((skill) => ({\n title: getSkillDisplayName(skill),\n value: skill.skillSlug,\n description: formatSkillOptionDescription(skill),\n }));\n\n api.ui.dialog.replace(() => (\n <api.ui.DialogSelect\n title=\"Wizard skills catalog\"\n placeholder=\"Filter loaded skills\"\n options={options}\n onSelect={(option) => {\n const selectedSkill = status.snapshot.catalog?.skills.find((skill) => skill.skillSlug === option.value);\n if (!selectedSkill) return;\n\n api.ui.dialog.clear();\n }}\n />\n ));\n return;\n }\n\n const message =\n status.kind === 'loading'\n ? 'Skills catalog is loading. Try again after the catalog event completes.'\n : status.kind === 'error'\n ? `Skills catalog unavailable: ${status.message}`\n : status.snapshot.status === 'missing_auth'\n ? 'Skills catalog is locked until interactive fetch authenticates.'\n : (status.snapshot.message ?? 'Skills catalog unavailable.');\n\n api.ui.dialog.replace(() => (\n <api.ui.Dialog\n size=\"medium\"\n onClose={() => {\n api.ui.dialog.clear();\n }}\n >\n <box width=\"100%\" flexDirection=\"column\" paddingLeft={1} paddingRight={1}>\n <text fg={theme.text} wrapMode=\"none\">\n <b>Wizard skills catalog</b>\n </text>\n <text fg={theme.warning} marginTop={1}>\n {message}\n </text>\n </box>\n </api.ui.Dialog>\n ));\n};\n\nconst SkillsRows = (props: { api: TuiPluginApi; status: () => StatusState }) => {\n const theme = createMemo(() => props.api.theme.current);\n const statusContent = () => {\n const currentStatus = props.status();\n\n if (currentStatus.kind === 'loading') {\n return (\n <text fg={theme().textMuted} wrapMode=\"none\" overflow=\"hidden\">\n loading wizard skills catalog…\n </text>\n );\n }\n\n if (currentStatus.kind === 'error') {\n return (\n <text fg={theme().warning} wrapMode=\"none\" overflow=\"hidden\">\n skills catalog unavailable: {currentStatus.message}\n </text>\n );\n }\n\n return <ReadyRows snapshot={currentStatus.snapshot} theme={theme()} />;\n };\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusContent()}\n </box>\n );\n};\n\nconst CatalogBullet = (props: { value: string; theme: TuiPluginApi['theme']['current'] }) => (\n <text fg={props.theme.text} wrapMode=\"none\" overflow=\"hidden\">\n {' - '}{props.value}\n </text>\n);\n\nconst ReadyRows = (props: { snapshot: PluginStatusSnapshot; theme: TuiPluginApi['theme']['current'] }) => {\n if (!props.snapshot.catalog) {\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n <Row label=\"catalog\" value={formatSkillsCatalogUnavailableMessage(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n }\n\n const counts = props.snapshot.catalog.assignmentCounts;\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n catalog:\n </text>\n <CatalogBullet value={`${props.snapshot.catalog.publishedSkillCount} loaded`} theme={props.theme} />\n <CatalogBullet value={`${counts.global} global`} theme={props.theme} />\n <CatalogBullet value={`${counts.project} workspace`} theme={props.theme} />\n </box>\n );\n};\n\nconst createWizardStatusSlot = (api: TuiPluginApi, status: () => StatusState): TuiSlotPlugin => ({\n order: 240,\n slots: {\n home_bottom: () => (\n <Panel title=\"Wizard Skills\" theme={api.theme.current} onPress={() => openSkillsDialog(api, status())}>\n <SkillsRows api={api} status={status} />\n </Panel>\n ),\n sidebar_content: (_ctx: TuiSlotContext, _value: { session_id: string }) => (\n <Panel title=\"Wizard Skills\" theme={api.theme.current} onPress={() => openSkillsDialog(api, status())}>\n <SkillsRows api={api} status={status} />\n </Panel>\n ),\n },\n});\n\nconst loadStatus = async (api: TuiPluginApi): Promise<StatusState> => {\n try {\n const snapshot = await resolvePluginStatusSnapshot({\n worktree: api.state.path.worktree,\n directory: api.state.path.directory,\n signal: AbortSignal.timeout(STATUS_TIMEOUT_MS),\n });\n\n return {\n kind: 'ready',\n snapshot,\n };\n } catch (error) {\n return {\n kind: 'error',\n message: error instanceof Error ? error.message : 'Unable to load opencode-wizard status.',\n };\n }\n};\n\nconst tui: TuiPlugin = async (api) => {\n const [status, setStatus] = createSignal<StatusState>({ kind: 'loading' });\n\n api.slots.register(createWizardStatusSlot(api, status));\n void loadStatus(api).then(setStatus);\n};\n\nexport default {\n id: PLUGIN_ID,\n tui,\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexol/opencode-wizard",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "OpenCode plugin for opencode-wizard published skills",
5
5
  "type": "module",
6
6
  "oc-plugin": [