@aexol/opencode-wizard 0.3.10 → 0.3.11

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.
@@ -1 +1 @@
1
- {"version":3,"names":["createMemo","compactStatusMessage","formatAuthStatus","formatBackendOriginLabel","formatSkillsCatalogUnavailableMessage","getInstallableNotInstalledSkills","getUserRoleRow","Row","StatusContent","props","status","kind","_el$","_$createElement","_$insertNode","_$createTextNode","_$setProp","_$effect","_$p","theme","textMuted","_el$3","_el$4","_$insert","message","warning","_$createComponent","ReadyRows","snapshot","SkillsRows","api","current","statusContent","currentStatus","_el$5","roleRow","statusRows","label","value","backendOrigin","labelColor","valueColor","text","catalog","_el$6","installableNotInstalledCount","length","catalogStatus","publishedSkillCount","_el$7"],"sources":["../../../src/tui/components/status-content.tsx"],"sourcesContent":["import { createMemo } from 'solid-js';\nimport type { PluginStatusSnapshot } from '../../server.js';\nimport { compactStatusMessage, formatAuthStatus, formatBackendOriginLabel, formatSkillsCatalogUnavailableMessage } from '../formatting.js';\nimport { getInstallableNotInstalledSkills, getUserRoleRow } from '../skill-helpers.js';\nimport type { StatusState, TuiPluginApi } from '../types.js';\nimport { Row } from './common.js';\n\nexport const StatusContent = (props: { status: StatusState; theme: TuiPluginApi['theme']['current'] }) => {\n if (props.status.kind === 'loading') {\n return (\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n loading…\n </text>\n );\n }\n\n if (props.status.kind === 'error') {\n return (\n <text fg={props.theme.warning} wrapMode=\"none\" overflow=\"hidden\">\n unavailable: {compactStatusMessage(props.status.message)}\n </text>\n );\n }\n\n return <ReadyRows snapshot={props.status.snapshot} theme={props.theme} />;\n};\n\nexport const SkillsRows = (props: { api: TuiPluginApi; status: () => StatusState }) => {\n const theme = createMemo(() => props.api.theme.current);\n const statusContent = () => {\n const currentStatus = props.status();\n\n return <StatusContent status={currentStatus} theme={theme()} />;\n };\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusContent()}\n </box>\n );\n};\n\nexport const ReadyRows = (props: { snapshot: PluginStatusSnapshot; theme: TuiPluginApi['theme']['current'] }) => {\n const roleRow = getUserRoleRow(props.snapshot);\n const statusRows = (\n <>\n <Row\n label=\"url\"\n value={formatBackendOriginLabel(props.snapshot.backendOrigin)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n <Row label=\"auth\" value={formatAuthStatus(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </>\n );\n\n if (!props.snapshot.catalog) {\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row\n label=\"catalog\"\n value={formatSkillsCatalogUnavailableMessage(props.snapshot)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n <Row label={roleRow.label} value={roleRow.value} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n }\n\n const installableNotInstalledCount = getInstallableNotInstalledSkills(props.snapshot).length;\n const catalogStatus = `${props.snapshot.catalog.publishedSkillCount} loaded · ${installableNotInstalledCount} installable`;\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row label=\"catalog\" value={catalogStatus} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n <Row label={roleRow.label} value={roleRow.value} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createMemo","compactStatusMessage","formatAuthStatus","formatBackendOriginLabel","formatSkillsCatalogUnavailableMessage","getSkillCatalogSummary","getSkillListRows","getUserRoleRow","Row","StatusContent","props","status","kind","_el$","_$createElement","_$insertNode","_$createTextNode","_$setProp","_$effect","_$p","theme","textMuted","_el$3","_el$4","_$insert","message","warning","_$createComponent","ReadyRows","snapshot","SkillsRows","api","current","statusContent","currentStatus","_el$5","SidebarSkillsRows","content","_el$6","_el$8","_el$9","ReadySidebarSkillRows","_el$0","catalog","_el$1","_el$10","skillRows","length","_el$11","_el$12","label","value","labelColor","valueColor","text","_el$14","map","row","roleRow","statusRows","backendOrigin","_el$15","_el$16"],"sources":["../../../src/tui/components/status-content.tsx"],"sourcesContent":["import { createMemo } from 'solid-js';\nimport type { PluginStatusSnapshot } from '../../server.js';\nimport { compactStatusMessage, formatAuthStatus, formatBackendOriginLabel, formatSkillsCatalogUnavailableMessage } from '../formatting.js';\nimport { getSkillCatalogSummary, getSkillListRows, getUserRoleRow } from '../skill-helpers.js';\nimport type { StatusState, TuiPluginApi } from '../types.js';\nimport { Row } from './common.js';\n\nexport const StatusContent = (props: { status: StatusState; theme: TuiPluginApi['theme']['current'] }) => {\n if (props.status.kind === 'loading') {\n return (\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n loading…\n </text>\n );\n }\n\n if (props.status.kind === 'error') {\n return (\n <text fg={props.theme.warning} wrapMode=\"none\" overflow=\"hidden\">\n unavailable: {compactStatusMessage(props.status.message)}\n </text>\n );\n }\n\n return <ReadyRows snapshot={props.status.snapshot} theme={props.theme} />;\n};\n\nexport const SkillsRows = (props: { api: TuiPluginApi; status: () => StatusState }) => {\n const theme = createMemo(() => props.api.theme.current);\n const statusContent = () => {\n const currentStatus = props.status();\n\n return <StatusContent status={currentStatus} theme={theme()} />;\n };\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusContent()}\n </box>\n );\n};\n\nexport const SidebarSkillsRows = (props: { api: TuiPluginApi; status: () => StatusState }) => {\n const theme = createMemo(() => props.api.theme.current);\n const currentStatus = () => props.status();\n\n const content = () => {\n const status = currentStatus();\n if (status.kind === 'loading') {\n return (\n <text fg={theme().textMuted} wrapMode=\"none\" overflow=\"hidden\">\n skills loading…\n </text>\n );\n }\n\n if (status.kind === 'error') {\n return (\n <text fg={theme().warning} wrapMode=\"none\" overflow=\"hidden\">\n skills unavailable: {compactStatusMessage(status.message)}\n </text>\n );\n }\n\n return <ReadySidebarSkillRows snapshot={status.snapshot} theme={theme()} />;\n };\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {content()}\n </box>\n );\n};\n\nconst ReadySidebarSkillRows = (props: { snapshot: PluginStatusSnapshot; theme: TuiPluginApi['theme']['current'] }) => {\n if (!props.snapshot.catalog) {\n return (\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n skills unavailable: {formatSkillsCatalogUnavailableMessage(props.snapshot)}\n </text>\n );\n }\n\n const skillRows = getSkillListRows(props.snapshot);\n if (skillRows.length === 0) {\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n <Row label=\"skills\" value={getSkillCatalogSummary(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n no skills listed\n </text>\n </box>\n );\n }\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n <Row label=\"skills\" value={getSkillCatalogSummary(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n {skillRows.map((row) => (\n <Row label={row.label} value={row.value} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n ))}\n </box>\n );\n};\n\nexport const ReadyRows = (props: { snapshot: PluginStatusSnapshot; theme: TuiPluginApi['theme']['current'] }) => {\n const roleRow = getUserRoleRow(props.snapshot);\n const statusRows = (\n <>\n <Row\n label=\"url\"\n value={formatBackendOriginLabel(props.snapshot.backendOrigin)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n <Row label=\"auth\" value={formatAuthStatus(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </>\n );\n\n if (!props.snapshot.catalog) {\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row\n label=\"catalog\"\n value={formatSkillsCatalogUnavailableMessage(props.snapshot)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n <Row label={roleRow.label} value={roleRow.value} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n }\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row label=\"catalog\" value={getSkillCatalogSummary(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n <Row label={roleRow.label} value={roleRow.value} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ export type SkillListRow = {
5
5
  label: string;
6
6
  value: string;
7
7
  };
8
+ export declare const getSkillCatalogSummary: (snapshot: PluginStatusSnapshot) => string;
8
9
  export declare const getUserRoleRow: (snapshot: PluginStatusSnapshot) => SkillListRow;
9
10
  export declare const getSkillListRows: (snapshot: PluginStatusSnapshot) => SkillListRow[];
10
11
  export declare const getSkillActionRows: (snapshot: PluginStatusSnapshot) => SkillListRow[];
@@ -6,9 +6,17 @@ export const getInstallableNotInstalledSkills = snapshot => {
6
6
  const ignoredSkillSlugs = new Set(snapshot.ignoredPublishedSkills.skills.map(skill => skill.skillSlug));
7
7
  return installableSkills.filter(skill => !activeSkillSlugs.has(skill.skillSlug) && !ignoredSkillSlugs.has(skill.skillSlug));
8
8
  };
9
+ export const getSkillCatalogSummary = snapshot => {
10
+ const catalog = snapshot.catalog;
11
+ const loadedSkillCount = catalog?.publishedSkillCount ?? 0;
12
+ const workspaceSkillCount = catalog?.assignmentCounts?.project ?? 0;
13
+ const userSkillCount = catalog?.assignmentCounts?.user ?? 0;
14
+ const globalSkillCount = catalog?.assignmentCounts?.global ?? 0;
15
+ return `${loadedSkillCount} loaded · ${workspaceSkillCount} workspace · ${userSkillCount} user · ${globalSkillCount} global`;
16
+ };
9
17
  const getUserRoleLabel = snapshot => {
10
18
  if (snapshot.authState.role) return snapshot.authState.role;
11
- if (snapshot.authState.status === 'authenticated') return 'USER';
19
+ if (snapshot.authState.status === 'authenticated') return 'unknown';
12
20
  return 'none';
13
21
  };
14
22
  export const getUserRoleRow = snapshot => ({
@@ -1 +1 @@
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":"AAGA,MAAMA,iBAAiB,GAAG,CAAC;AAE3B,OAAO,MAAMC,gCAAgC,GAAIC,QAA8B,IAA8B;EAC3G,MAAMC,iBAAiB,GAAGD,QAAQ,CAACE,kBAAkB,EAAEC,MAAM,IAAI,EAAE;EACnE,IAAIF,iBAAiB,CAACG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EAE7C,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAACN,QAAQ,CAACO,OAAO,EAAEJ,MAAM,CAACK,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,SAAS,CAAC,IAAI,EAAE,CAAC;EAChG,MAAMC,iBAAiB,GAAG,IAAIL,GAAG,CAACN,QAAQ,CAACY,sBAAsB,CAACT,MAAM,CAACK,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,SAAS,CAAC,CAAC;EAEzG,OAAOT,iBAAiB,CAACY,MAAM,CAC5BJ,KAAK,IAAK,CAACJ,gBAAgB,CAACS,GAAG,CAACL,KAAK,CAACC,SAAS,CAAC,IAAI,CAACC,iBAAiB,CAACG,GAAG,CAACL,KAAK,CAACC,SAAS,CAC7F,CAAC;AACH,CAAC;AAOD,MAAMK,gBAAgB,GAAIf,QAA8B,IAAa;EACnE,IAAIA,QAAQ,CAACgB,SAAS,CAACC,IAAI,EAAE,OAAOjB,QAAQ,CAACgB,SAAS,CAACC,IAAI;EAC3D,IAAIjB,QAAQ,CAACgB,SAAS,CAACE,MAAM,KAAK,eAAe,EAAE,OAAO,MAAM;EAEhE,OAAO,MAAM;AACf,CAAC;AAED,OAAO,MAAMC,cAAc,GAAInB,QAA8B,KAAoB;EAC/EoB,KAAK,EAAE,MAAM;EACbC,KAAK,EAAEN,gBAAgB,CAACf,QAAQ;AAClC,CAAC,CAAC;AAEF,MAAMsB,gBAAgB,GAAIb,KAA4B,IAAa;EACjE,MAAMc,IAAI,GAAGd,KAAK,CAACe,SAAS,CAACC,IAAI,CAAC,CAAC,IAAIhB,KAAK,CAACiB,YAAY,CAACD,IAAI,CAAC,CAAC,IAAIhB,KAAK,CAACC,SAAS;EACnF,IAAIa,IAAI,KAAKd,KAAK,CAACC,SAAS,EAAE,OAAOa,IAAI;EAEzC,OAAO,GAAGA,IAAI,KAAKd,KAAK,CAACC,SAAS,GAAG;AACvC,CAAC;AAED,MAAMiB,qBAAqB,GAAIlB,KAA4B,IAAa;EACtE,IAAIA,KAAK,CAACmB,gBAAgB,CAACC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM;EAC1D,IAAIpB,KAAK,CAACqB,WAAW,KAAK,QAAQ,EAAE,OAAO,QAAQ;EACnD,IAAIrB,KAAK,CAACqB,WAAW,KAAK,SAAS,EAAE,OAAO,SAAS;EAErD,OAAO,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAI/B,QAA8B,IAAqB;EAClF,MAAMgC,UAAU,GAAG,CAAChC,QAAQ,CAACO,OAAO,EAAEJ,MAAM,IAAI,EAAE,EAAEK,GAAG,CAAEC,KAAK,KAAM;IAClEW,KAAK,EAAEO,qBAAqB,CAAClB,KAAK,CAAC;IACnCY,KAAK,EAAEC,gBAAgB,CAACb,KAAK;EAC/B,CAAC,CAAC,CAAC;EACH,MAAMwB,aAAa,GAAGlC,gCAAgC,CAACC,QAAQ,CAAC,CAACQ,GAAG,CAAEC,KAAK,KAAM;IAC/EW,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAEC,gBAAgB,CAACb,KAAK;EAC/B,CAAC,CAAC,CAAC;EACH,MAAMyB,WAAW,GAAGlC,QAAQ,CAACY,sBAAsB,CAACT,MAAM,CAACK,GAAG,CAAEC,KAAK,KAAM;IACzEW,KAAK,EAAE,SAAS;IAChBC,KAAK,EAAEC,gBAAgB,CAACb,KAAK;EAC/B,CAAC,CAAC,CAAC;EACH,MAAM0B,IAAI,GAAG,CAAC,GAAGH,UAAU,EAAE,GAAGC,aAAa,EAAE,GAAGC,WAAW,CAAC;EAC9D,IAAIC,IAAI,CAAC/B,MAAM,IAAIN,iBAAiB,EAAE,OAAOqC,IAAI;EAEjD,OAAO,CACL,GAAGA,IAAI,CAACC,KAAK,CAAC,CAAC,EAAEtC,iBAAiB,CAAC,EACnC;IACEsB,KAAK,EAAE,MAAM;IACbC,KAAK,EAAE,GAAGc,IAAI,CAAC/B,MAAM,GAAGN,iBAAiB;EAC3C,CAAC,CACF;AACH,CAAC;AAED,OAAO,MAAMuC,kBAAkB,GAAIrC,QAA8B,IAAqB,CAACmB,cAAc,CAACnB,QAAQ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MAX_LISTED_SKILLS","getInstallableNotInstalledSkills","snapshot","installableSkills","installableCatalog","skills","length","activeSkillSlugs","Set","catalog","map","skill","skillSlug","ignoredSkillSlugs","ignoredPublishedSkills","filter","has","getSkillCatalogSummary","loadedSkillCount","publishedSkillCount","workspaceSkillCount","assignmentCounts","project","userSkillCount","user","globalSkillCount","global","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\nexport const getSkillCatalogSummary = (snapshot: PluginStatusSnapshot): string => {\n const catalog = snapshot.catalog;\n const loadedSkillCount = catalog?.publishedSkillCount ?? 0;\n const workspaceSkillCount = catalog?.assignmentCounts?.project ?? 0;\n const userSkillCount = catalog?.assignmentCounts?.user ?? 0;\n const globalSkillCount = catalog?.assignmentCounts?.global ?? 0;\n\n return `${loadedSkillCount} loaded · ${workspaceSkillCount} workspace · ${userSkillCount} user · ${globalSkillCount} global`;\n};\n\nconst getUserRoleLabel = (snapshot: PluginStatusSnapshot): string => {\n if (snapshot.authState.role) return snapshot.authState.role;\n if (snapshot.authState.status === 'authenticated') return 'unknown';\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,7 +1,6 @@
1
- import { createElement as _$createElement } from "@opentui/solid";
2
1
  import { createComponent as _$createComponent } from "@opentui/solid";
3
2
  import { Panel } from './components/common.js';
4
- import { SkillsRows } from './components/status-content.js';
3
+ import { SidebarSkillsRows, SkillsRows } from './components/status-content.js';
5
4
  export const createWizardStatusSlot = (api, status, _refreshStatus) => ({
6
5
  order: 240,
7
6
  slots: {
@@ -17,7 +16,18 @@ export const createWizardStatusSlot = (api, status, _refreshStatus) => ({
17
16
  });
18
17
  }
19
18
  }),
20
- sidebar_content: (_ctx, _value) => _$createElement("box")
19
+ sidebar_content: (_ctx, _value) => _$createComponent(Panel, {
20
+ title: "Wizard Skills",
21
+ get theme() {
22
+ return api.theme.current;
23
+ },
24
+ get children() {
25
+ return _$createComponent(SidebarSkillsRows, {
26
+ api: api,
27
+ status: status
28
+ });
29
+ }
30
+ })
21
31
  }
22
32
  });
23
33
  //# sourceMappingURL=slots.js.map
@@ -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","_$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":[]}
1
+ {"version":3,"names":["Panel","SidebarSkillsRows","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 { SidebarSkillsRows, 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 }) => (\n <Panel title=\"Wizard Skills\" theme={api.theme.current}>\n <SidebarSkillsRows api={api} status={status} />\n </Panel>\n ),\n },\n});\n"],"mappings":";AACA,SAASA,KAAK,QAAQ,wBAAwB;AAC9C,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,gCAAgC;AAE9E,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,GAAiB,EACjBC,MAAyB,EACzBC,cAA6B,MACV;EACnBC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;IACLC,WAAW,EAAEA,CAAA,KAAAC,iBAAA,CACVV,KAAK;MAACW,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,KAAAP,iBAAA,CACnEV,KAAK;MAACW,KAAK;MAAA,IAAiBC,KAAKA,CAAA;QAAA,OAAER,GAAG,CAACQ,KAAK,CAACC,OAAO;MAAA;MAAA,IAAAC,SAAA;QAAA,OAAAJ,iBAAA,CAClDT,iBAAiB;UAACG,GAAG,EAAEA,GAAG;UAAEC,MAAM,EAAEA;QAAM;MAAA;IAAA;EAGjD;AACF,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexol/opencode-wizard",
3
- "version": "0.3.10",
3
+ "version": "0.3.11",
4
4
  "description": "OpenCode plugin for opencode-wizard published skills",
5
5
  "type": "module",
6
6
  "oc-plugin": [