@aexol/opencode-wizard 0.3.8 → 0.3.10
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/README.md +14 -4
- package/dist/graphql-operations.d.ts +1 -1
- package/dist/graphql-operations.js +9 -5
- package/dist/graphql-operations.js.map +1 -1
- package/dist/plugin-tools.d.ts +6 -0
- package/dist/plugin-tools.js +11 -1
- package/dist/plugin-tools.js.map +1 -1
- package/dist/published-skills-system-note.d.ts +1 -1
- package/dist/published-skills-system-note.js +1 -17
- package/dist/published-skills-system-note.js.map +1 -1
- package/dist/server/runtime.js +116 -55
- package/dist/server/runtime.js.map +1 -1
- package/dist/server/status.d.ts +3 -2
- package/dist/server/status.js +9 -7
- package/dist/server/status.js.map +1 -1
- package/dist/server/types.d.ts +9 -7
- package/dist/server/types.js.map +1 -1
- package/dist/tui/components/status-content.js +31 -2
- package/dist/tui/components/status-content.js.map +1 -1
- package/dist/tui/formatting.js +3 -4
- package/dist/tui/formatting.js.map +1 -1
- package/dist/tui/plugin.js +97 -0
- package/dist/tui/plugin.js.map +1 -1
- package/dist/tui/skill-helpers.d.ts +7 -0
- package/dist/tui/skill-helpers.js +42 -0
- package/dist/tui/skill-helpers.js.map +1 -1
- package/dist/tui/slots.js +2 -12
- package/dist/tui/slots.js.map +1 -1
- package/dist/tui/types.d.ts +22 -0
- package/dist/tui/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const MAX_LISTED_SKILLS = 6;
|
|
1
2
|
export const getInstallableNotInstalledSkills = snapshot => {
|
|
2
3
|
const installableSkills = snapshot.installableCatalog?.skills ?? [];
|
|
3
4
|
if (installableSkills.length === 0) return [];
|
|
@@ -5,4 +6,45 @@ export const getInstallableNotInstalledSkills = snapshot => {
|
|
|
5
6
|
const ignoredSkillSlugs = new Set(snapshot.ignoredPublishedSkills.skills.map(skill => skill.skillSlug));
|
|
6
7
|
return installableSkills.filter(skill => !activeSkillSlugs.has(skill.skillSlug) && !ignoredSkillSlugs.has(skill.skillSlug));
|
|
7
8
|
};
|
|
9
|
+
const getUserRoleLabel = snapshot => {
|
|
10
|
+
if (snapshot.authState.role) return snapshot.authState.role;
|
|
11
|
+
if (snapshot.authState.status === 'authenticated') return 'USER';
|
|
12
|
+
return 'none';
|
|
13
|
+
};
|
|
14
|
+
export const getUserRoleRow = snapshot => ({
|
|
15
|
+
label: 'role',
|
|
16
|
+
value: getUserRoleLabel(snapshot)
|
|
17
|
+
});
|
|
18
|
+
const compactSkillName = skill => {
|
|
19
|
+
const name = skill.skillName.trim() || skill.artifactName.trim() || skill.skillSlug;
|
|
20
|
+
if (name === skill.skillSlug) return name;
|
|
21
|
+
return `${name} (${skill.skillSlug})`;
|
|
22
|
+
};
|
|
23
|
+
const toEffectiveSkillLabel = skill => {
|
|
24
|
+
if (skill.assignmentSource.includes('USER')) return 'user';
|
|
25
|
+
if (skill.contextKind === 'global') return 'global';
|
|
26
|
+
if (skill.contextKind === 'project') return 'project';
|
|
27
|
+
return 'active';
|
|
28
|
+
};
|
|
29
|
+
export const getSkillListRows = snapshot => {
|
|
30
|
+
const activeRows = (snapshot.catalog?.skills ?? []).map(skill => ({
|
|
31
|
+
label: toEffectiveSkillLabel(skill),
|
|
32
|
+
value: compactSkillName(skill)
|
|
33
|
+
}));
|
|
34
|
+
const availableRows = getInstallableNotInstalledSkills(snapshot).map(skill => ({
|
|
35
|
+
label: 'available',
|
|
36
|
+
value: compactSkillName(skill)
|
|
37
|
+
}));
|
|
38
|
+
const ignoredRows = snapshot.ignoredPublishedSkills.skills.map(skill => ({
|
|
39
|
+
label: 'ignored',
|
|
40
|
+
value: compactSkillName(skill)
|
|
41
|
+
}));
|
|
42
|
+
const rows = [...activeRows, ...availableRows, ...ignoredRows];
|
|
43
|
+
if (rows.length <= MAX_LISTED_SKILLS) return rows;
|
|
44
|
+
return [...rows.slice(0, MAX_LISTED_SKILLS), {
|
|
45
|
+
label: 'more',
|
|
46
|
+
value: `${rows.length - MAX_LISTED_SKILLS} hidden · use opencode_wizard_published_skills_fetch`
|
|
47
|
+
}];
|
|
48
|
+
};
|
|
49
|
+
export const getSkillActionRows = snapshot => [getUserRoleRow(snapshot)];
|
|
8
50
|
//# sourceMappingURL=skill-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getInstallableNotInstalledSkills","snapshot","installableSkills","installableCatalog","skills","length","activeSkillSlugs","Set","catalog","map","skill","skillSlug","ignoredSkillSlugs","ignoredPublishedSkills","filter","has"],"sources":["../../src/tui/skill-helpers.ts"],"sourcesContent":["import type { PluginStatusSnapshot } from '../server.js';\nimport type { PublishedSkillSummary } from './types.js';\n\nexport const getInstallableNotInstalledSkills = (snapshot: PluginStatusSnapshot): PublishedSkillSummary[] => {\n const installableSkills = snapshot.installableCatalog?.skills ?? [];\n if (installableSkills.length === 0) return [];\n\n const activeSkillSlugs = new Set(snapshot.catalog?.skills.map((skill) => skill.skillSlug) ?? []);\n const ignoredSkillSlugs = new Set(snapshot.ignoredPublishedSkills.skills.map((skill) => skill.skillSlug));\n\n return installableSkills.filter(\n (skill) => !activeSkillSlugs.has(skill.skillSlug) && !ignoredSkillSlugs.has(skill.skillSlug),\n );\n};\n"],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"names":["MAX_LISTED_SKILLS","getInstallableNotInstalledSkills","snapshot","installableSkills","installableCatalog","skills","length","activeSkillSlugs","Set","catalog","map","skill","skillSlug","ignoredSkillSlugs","ignoredPublishedSkills","filter","has","getUserRoleLabel","authState","role","status","getUserRoleRow","label","value","compactSkillName","name","skillName","trim","artifactName","toEffectiveSkillLabel","assignmentSource","includes","contextKind","getSkillListRows","activeRows","availableRows","ignoredRows","rows","slice","getSkillActionRows"],"sources":["../../src/tui/skill-helpers.ts"],"sourcesContent":["import type { PluginStatusSnapshot } from '../server.js';\nimport type { PublishedSkillSummary } from './types.js';\n\nconst MAX_LISTED_SKILLS = 6;\n\nexport const getInstallableNotInstalledSkills = (snapshot: PluginStatusSnapshot): PublishedSkillSummary[] => {\n const installableSkills = snapshot.installableCatalog?.skills ?? [];\n if (installableSkills.length === 0) return [];\n\n const activeSkillSlugs = new Set(snapshot.catalog?.skills.map((skill) => skill.skillSlug) ?? []);\n const ignoredSkillSlugs = new Set(snapshot.ignoredPublishedSkills.skills.map((skill) => skill.skillSlug));\n\n return installableSkills.filter(\n (skill) => !activeSkillSlugs.has(skill.skillSlug) && !ignoredSkillSlugs.has(skill.skillSlug),\n );\n};\n\nexport type SkillListRow = {\n label: string;\n value: string;\n};\n\nconst getUserRoleLabel = (snapshot: PluginStatusSnapshot): string => {\n if (snapshot.authState.role) return snapshot.authState.role;\n if (snapshot.authState.status === 'authenticated') return 'USER';\n\n return 'none';\n};\n\nexport const getUserRoleRow = (snapshot: PluginStatusSnapshot): SkillListRow => ({\n label: 'role',\n value: getUserRoleLabel(snapshot),\n});\n\nconst compactSkillName = (skill: PublishedSkillSummary): string => {\n const name = skill.skillName.trim() || skill.artifactName.trim() || skill.skillSlug;\n if (name === skill.skillSlug) return name;\n\n return `${name} (${skill.skillSlug})`;\n};\n\nconst toEffectiveSkillLabel = (skill: PublishedSkillSummary): string => {\n if (skill.assignmentSource.includes('USER')) return 'user';\n if (skill.contextKind === 'global') return 'global';\n if (skill.contextKind === 'project') return 'project';\n\n return 'active';\n};\n\nexport const getSkillListRows = (snapshot: PluginStatusSnapshot): SkillListRow[] => {\n const activeRows = (snapshot.catalog?.skills ?? []).map((skill) => ({\n label: toEffectiveSkillLabel(skill),\n value: compactSkillName(skill),\n }));\n const availableRows = getInstallableNotInstalledSkills(snapshot).map((skill) => ({\n label: 'available',\n value: compactSkillName(skill),\n }));\n const ignoredRows = snapshot.ignoredPublishedSkills.skills.map((skill) => ({\n label: 'ignored',\n value: compactSkillName(skill),\n }));\n const rows = [...activeRows, ...availableRows, ...ignoredRows];\n if (rows.length <= MAX_LISTED_SKILLS) return rows;\n\n return [\n ...rows.slice(0, MAX_LISTED_SKILLS),\n {\n label: 'more',\n value: `${rows.length - MAX_LISTED_SKILLS} hidden · use opencode_wizard_published_skills_fetch`,\n },\n ];\n};\n\nexport const getSkillActionRows = (snapshot: PluginStatusSnapshot): SkillListRow[] => [getUserRoleRow(snapshot)];\n"],"mappings":"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","ignoreList":[]}
|
package/dist/tui/slots.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
1
2
|
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
2
3
|
import { Panel } from './components/common.js';
|
|
3
4
|
import { SkillsRows } from './components/status-content.js';
|
|
@@ -16,18 +17,7 @@ export const createWizardStatusSlot = (api, status, _refreshStatus) => ({
|
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
}),
|
|
19
|
-
sidebar_content: (_ctx, _value) => _$
|
|
20
|
-
title: "Wizard Skills",
|
|
21
|
-
get theme() {
|
|
22
|
-
return api.theme.current;
|
|
23
|
-
},
|
|
24
|
-
get children() {
|
|
25
|
-
return _$createComponent(SkillsRows, {
|
|
26
|
-
api: api,
|
|
27
|
-
status: status
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
})
|
|
20
|
+
sidebar_content: (_ctx, _value) => _$createElement("box")
|
|
31
21
|
}
|
|
32
22
|
});
|
|
33
23
|
//# sourceMappingURL=slots.js.map
|
package/dist/tui/slots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Panel","SkillsRows","createWizardStatusSlot","api","status","_refreshStatus","order","slots","home_bottom","_$createComponent","title","theme","current","children","sidebar_content","_ctx","_value"],"sources":["../../src/tui/slots.tsx"],"sourcesContent":["import type { RefreshStatus, StatusState, TuiPluginApi, TuiSlotContext, TuiSlotPlugin } from './types.js';\nimport { Panel } from './components/common.js';\nimport { SkillsRows } from './components/status-content.js';\n\nexport const createWizardStatusSlot = (\n api: TuiPluginApi,\n status: () => StatusState,\n _refreshStatus: RefreshStatus,\n): TuiSlotPlugin => ({\n order: 240,\n slots: {\n home_bottom: () => (\n <Panel title=\"Wizard Skills\" theme={api.theme.current}>\n <SkillsRows api={api} status={status} />\n </Panel>\n ),\n sidebar_content: (_ctx: TuiSlotContext, _value: { session_id: string }) =>
|
|
1
|
+
{"version":3,"names":["Panel","SkillsRows","createWizardStatusSlot","api","status","_refreshStatus","order","slots","home_bottom","_$createComponent","title","theme","current","children","sidebar_content","_ctx","_value","_$createElement"],"sources":["../../src/tui/slots.tsx"],"sourcesContent":["import type { RefreshStatus, StatusState, TuiPluginApi, TuiSlotContext, TuiSlotPlugin } from './types.js';\nimport { Panel } from './components/common.js';\nimport { SkillsRows } from './components/status-content.js';\n\nexport const createWizardStatusSlot = (\n api: TuiPluginApi,\n status: () => StatusState,\n _refreshStatus: RefreshStatus,\n): TuiSlotPlugin => ({\n order: 240,\n slots: {\n home_bottom: () => (\n <Panel title=\"Wizard Skills\" theme={api.theme.current}>\n <SkillsRows api={api} status={status} />\n </Panel>\n ),\n sidebar_content: (_ctx: TuiSlotContext, _value: { session_id: string }) => <box />,\n },\n});\n"],"mappings":";;AACA,SAASA,KAAK,QAAQ,wBAAwB;AAC9C,SAASC,UAAU,QAAQ,gCAAgC;AAE3D,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,GAAiB,EACjBC,MAAyB,EACzBC,cAA6B,MACV;EACnBC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;IACLC,WAAW,EAAEA,CAAA,KAAAC,iBAAA,CACVT,KAAK;MAACU,KAAK;MAAA,IAAiBC,KAAKA,CAAA;QAAA,OAAER,GAAG,CAACQ,KAAK,CAACC,OAAO;MAAA;MAAA,IAAAC,SAAA;QAAA,OAAAJ,iBAAA,CAClDR,UAAU;UAACE,GAAG,EAAEA,GAAG;UAAEC,MAAM,EAAEA;QAAM;MAAA;IAAA,EAEvC;IACDU,eAAe,EAAEA,CAACC,IAAoB,EAAEC,MAA8B,KAAAC,eAAA;EACxE;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/tui/types.d.ts
CHANGED
|
@@ -15,6 +15,22 @@ export type WizardTheme = {
|
|
|
15
15
|
textMuted: string | RGBA | undefined;
|
|
16
16
|
warning: string | RGBA | undefined;
|
|
17
17
|
};
|
|
18
|
+
export type TuiCommand = {
|
|
19
|
+
title: string;
|
|
20
|
+
value: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
category?: string;
|
|
23
|
+
keybind?: string;
|
|
24
|
+
suggested?: boolean;
|
|
25
|
+
hidden?: boolean;
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
slash?: {
|
|
28
|
+
name: string;
|
|
29
|
+
aliases?: string[];
|
|
30
|
+
};
|
|
31
|
+
onSelect?: () => void;
|
|
32
|
+
};
|
|
33
|
+
export type TuiCommandRegister = (cb: () => TuiCommand[]) => (() => void) | void;
|
|
18
34
|
export type TuiPluginApi = {
|
|
19
35
|
theme: {
|
|
20
36
|
current: WizardTheme;
|
|
@@ -32,6 +48,12 @@ export type TuiPluginApi = {
|
|
|
32
48
|
slots: {
|
|
33
49
|
register: (slot: TuiSlotPlugin) => void;
|
|
34
50
|
};
|
|
51
|
+
command?: {
|
|
52
|
+
register?: TuiCommandRegister;
|
|
53
|
+
};
|
|
54
|
+
commands?: {
|
|
55
|
+
register?: TuiCommandRegister;
|
|
56
|
+
};
|
|
35
57
|
state: {
|
|
36
58
|
path: {
|
|
37
59
|
worktree: string;
|
package/dist/tui/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/tui/types.ts"],"sourcesContent":["import type { RGBA } from '@opentui/core';\nimport type { JSX } from 'solid-js';\nimport type { PluginStatusSnapshot } from '../server.js';\n\nexport type StatusState =\n | {\n kind: 'loading';\n }\n | {\n kind: 'ready';\n snapshot: PluginStatusSnapshot;\n }\n | {\n kind: 'error';\n message: string;\n };\n\nexport type WizardTheme = {\n text: string | RGBA | undefined;\n textMuted: string | RGBA | undefined;\n warning: string | RGBA | undefined;\n};\n\nexport type TuiPluginApi = {\n theme: {\n current: WizardTheme;\n };\n ui?: {\n dialog?: {\n replace?: (render: () => JSX.Element, onClose?: () => void) => void;\n clear?: () => void;\n setSize?: (size: 'medium' | 'large' | 'xlarge') => void;\n };\n };\n renderer?: {\n requestRender?: () => void;\n };\n slots: {\n register: (slot: TuiSlotPlugin) => void;\n };\n state: {\n path: {\n worktree: string;\n directory: string;\n };\n };\n};\n\nexport type TuiSlotContext = unknown;\n\nexport type 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\nexport type TuiPlugin = (api: TuiPluginApi) => void | Promise<void>;\n\nexport type PublishedSkillSummary = NonNullable<PluginStatusSnapshot['catalog']>['skills'][number];\nexport type RefreshStatus = (options?: { showLoading?: boolean }) => void;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/tui/types.ts"],"sourcesContent":["import type { RGBA } from '@opentui/core';\nimport type { JSX } from 'solid-js';\nimport type { PluginStatusSnapshot } from '../server.js';\n\nexport type StatusState =\n | {\n kind: 'loading';\n }\n | {\n kind: 'ready';\n snapshot: PluginStatusSnapshot;\n }\n | {\n kind: 'error';\n message: string;\n };\n\nexport type WizardTheme = {\n text: string | RGBA | undefined;\n textMuted: string | RGBA | undefined;\n warning: string | RGBA | undefined;\n};\n\nexport type TuiCommand = {\n title: string;\n value: string;\n description?: string;\n category?: string;\n keybind?: string;\n suggested?: boolean;\n hidden?: boolean;\n enabled?: boolean;\n slash?: {\n name: string;\n aliases?: string[];\n };\n onSelect?: () => void;\n};\n\nexport type TuiCommandRegister = (cb: () => TuiCommand[]) => (() => void) | void;\n\nexport type TuiPluginApi = {\n theme: {\n current: WizardTheme;\n };\n ui?: {\n dialog?: {\n replace?: (render: () => JSX.Element, onClose?: () => void) => void;\n clear?: () => void;\n setSize?: (size: 'medium' | 'large' | 'xlarge') => void;\n };\n };\n renderer?: {\n requestRender?: () => void;\n };\n slots: {\n register: (slot: TuiSlotPlugin) => void;\n };\n command?: {\n register?: TuiCommandRegister;\n };\n commands?: {\n register?: TuiCommandRegister;\n };\n state: {\n path: {\n worktree: string;\n directory: string;\n };\n };\n};\n\nexport type TuiSlotContext = unknown;\n\nexport type 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\nexport type TuiPlugin = (api: TuiPluginApi) => void | Promise<void>;\n\nexport type PublishedSkillSummary = NonNullable<PluginStatusSnapshot['catalog']>['skills'][number];\nexport type RefreshStatus = (options?: { showLoading?: boolean }) => void;\n"],"mappings":"","ignoreList":[]}
|