@aexol/opencode-wizard 0.3.9 → 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 +3 -3
- 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 +9 -12
- 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/tui/components/status-content.js +32 -45
- 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 +1 -1
- package/dist/tui/plugin.js.map +1 -1
- package/dist/tui/skill-helpers.d.ts +1 -0
- package/dist/tui/skill-helpers.js +10 -14
- 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/package.json +1 -1
package/dist/server/status.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { type PublishedSkillDetail, type PublishedSkillsSuccessState } from '../published-skills-transform.js';
|
|
2
2
|
import type { AiFacingPluginStatusSnapshot, AuthState, FilteredPublishedSkillsResult, LoginBootstrapSnapshot, PluginAuthStateSummary, PluginStatusSnapshot, PublishedSkillCatalogPayload, PublishedSkillsResult, ResolvedConfig } from './types.js';
|
|
3
|
-
export declare const toPublishedSkillCatalog: (payload: PublishedSkillCatalogPayload) => PublishedSkillsSuccessState;
|
|
3
|
+
export declare const toPublishedSkillCatalog: (payload: PublishedSkillCatalogPayload, availableTools?: string[]) => PublishedSkillsSuccessState;
|
|
4
4
|
export declare const filterIgnoredPublishedSkills: (config: ResolvedConfig, result: PublishedSkillsResult) => Promise<FilteredPublishedSkillsResult>;
|
|
5
5
|
export declare const buildSystemNote: (result: PublishedSkillsResult, _config: ResolvedConfig, details: PublishedSkillDetail[]) => string | null;
|
|
6
6
|
export declare const formatStatusOutput: (worktree: string, config: ResolvedConfig, publishedSkillsResult: PublishedSkillsResult, loginBootstrapSnapshot: LoginBootstrapSnapshot) => Promise<string>;
|
|
7
7
|
export declare const toPluginAuthStateSummary: (authState: AuthState | null) => PluginAuthStateSummary;
|
|
8
|
-
export declare const resolvePluginStatusSnapshot: ({ worktree, directory, signal, }: {
|
|
8
|
+
export declare const resolvePluginStatusSnapshot: ({ worktree, directory, signal, registeredTools, }: {
|
|
9
9
|
worktree: string;
|
|
10
10
|
directory: string;
|
|
11
11
|
signal: AbortSignal;
|
|
12
|
+
registeredTools?: string[];
|
|
12
13
|
}) => Promise<PluginStatusSnapshot>;
|
|
13
14
|
export declare const withStatusMessage: (snapshot: PluginStatusSnapshot, message: string) => PluginStatusSnapshot;
|
|
14
15
|
export declare const toAiFacingPluginStatusSnapshot: (snapshot: PluginStatusSnapshot) => AiFacingPluginStatusSnapshot;
|
package/dist/server/status.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveAvailableTools } from '../plugin-tools.js';
|
|
2
2
|
import { buildPublishedSkillsSystemNote } from '../published-skills-system-note.js';
|
|
3
3
|
import { toPublishedSkillCatalog as buildPublishedSkillCatalog, toInstallableSkillSummary, toPublishedSkillSummary } from '../published-skills-transform.js';
|
|
4
4
|
import { readGlobalAuthState, resolveStoredAuthState, toStoredUserKey } from './auth-store.js';
|
|
@@ -6,10 +6,10 @@ import { fetchPublishedSkillsCatalog } from './client.js';
|
|
|
6
6
|
import { NATIVE_SKILLS_URL_COMPATIBILITY, PLUGIN_ID, ROOT_SKILL_SEED_PATH } from './constants.js';
|
|
7
7
|
import { resolveConfig } from './config.js';
|
|
8
8
|
import { getPublishedSkillIgnoreScopeKey, resolveWorkspace, toWorkspaceResolutionMetadata, toWorkspaceResolutionOutput } from './workspace.js';
|
|
9
|
-
export const toPublishedSkillCatalog = payload => buildPublishedSkillCatalog(payload, {
|
|
9
|
+
export const toPublishedSkillCatalog = (payload, availableTools = resolveAvailableTools(null)) => buildPublishedSkillCatalog(payload, {
|
|
10
10
|
pluginId: PLUGIN_ID,
|
|
11
11
|
rootSkillSeedPath: ROOT_SKILL_SEED_PATH,
|
|
12
|
-
availableTools
|
|
12
|
+
availableTools
|
|
13
13
|
});
|
|
14
14
|
export const filterIgnoredPublishedSkills = async (config, result) => {
|
|
15
15
|
const authState = await readGlobalAuthState(config.authStatePath);
|
|
@@ -105,7 +105,7 @@ export const formatStatusOutput = async (worktree, config, publishedSkillsResult
|
|
|
105
105
|
}
|
|
106
106
|
return JSON.stringify({
|
|
107
107
|
...base,
|
|
108
|
-
...toPublishedSkillCatalog(filteredResult.fetchResult.payload),
|
|
108
|
+
...toPublishedSkillCatalog(filteredResult.fetchResult.payload, base.availableTools),
|
|
109
109
|
message: getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload)
|
|
110
110
|
}, null, 2);
|
|
111
111
|
};
|
|
@@ -132,7 +132,8 @@ export const toPluginAuthStateSummary = authState => {
|
|
|
132
132
|
export const resolvePluginStatusSnapshot = async ({
|
|
133
133
|
worktree,
|
|
134
134
|
directory,
|
|
135
|
-
signal
|
|
135
|
+
signal,
|
|
136
|
+
registeredTools
|
|
136
137
|
}) => {
|
|
137
138
|
const config = await resolveConfig(worktree);
|
|
138
139
|
const workspaceResolution = await resolveWorkspace({
|
|
@@ -146,6 +147,7 @@ export const resolvePluginStatusSnapshot = async ({
|
|
|
146
147
|
fetchResult
|
|
147
148
|
});
|
|
148
149
|
const authState = await resolveStoredAuthState(worktree, config);
|
|
150
|
+
const availableTools = registeredTools ?? resolveAvailableTools(authState?.role ?? null);
|
|
149
151
|
return {
|
|
150
152
|
pluginId: PLUGIN_ID,
|
|
151
153
|
runtimeMode: 'tool_fetch_only',
|
|
@@ -161,9 +163,9 @@ export const resolvePluginStatusSnapshot = async ({
|
|
|
161
163
|
authMode: filteredResult.fetchResult.authMode,
|
|
162
164
|
fetchedAt: filteredResult.fetchResult.fetchedAt,
|
|
163
165
|
source: filteredResult.fetchResult.source,
|
|
164
|
-
availableTools
|
|
166
|
+
availableTools,
|
|
165
167
|
message: filteredResult.fetchResult.ok ? getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload) : filteredResult.fetchResult.message,
|
|
166
|
-
catalog: filteredResult.fetchResult.ok ? toPublishedSkillCatalog(filteredResult.fetchResult.payload) : null,
|
|
168
|
+
catalog: filteredResult.fetchResult.ok ? toPublishedSkillCatalog(filteredResult.fetchResult.payload, availableTools) : null,
|
|
167
169
|
installableCatalog: filteredResult.fetchResult.ok ? {
|
|
168
170
|
count: filteredResult.fetchResult.payload.catalogSkills.length,
|
|
169
171
|
skills: filteredResult.fetchResult.payload.catalogSkills.map(toInstallableSkillSummary)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AVAILABLE_PUBLISHED_SKILL_TOOLS","resolveAvailableTools","buildPublishedSkillsSystemNote","toPublishedSkillCatalog","buildPublishedSkillCatalog","toInstallableSkillSummary","toPublishedSkillSummary","readGlobalAuthState","resolveStoredAuthState","toStoredUserKey","fetchPublishedSkillsCatalog","NATIVE_SKILLS_URL_COMPATIBILITY","PLUGIN_ID","ROOT_SKILL_SEED_PATH","resolveConfig","getPublishedSkillIgnoreScopeKey","resolveWorkspace","toWorkspaceResolutionMetadata","toWorkspaceResolutionOutput","payload","pluginId","rootSkillSeedPath","availableTools","filterIgnoredPublishedSkills","config","result","authState","authStatePath","userKey","fetchResult","ok","ignoreState","scopeKey","workspaceResolution","ignoredSkillSlugs","installedGlobalSkillSlugs","installedWorkspaceSkillSlugs","ignoredSkills","userPreferences","map","skill","skillSlug","getWorkspaceUnavailableMessage","workspace","buildSystemNote","_config","details","catalog","directoryPath","formatStatusOutput","worktree","publishedSkillsResult","loginBootstrapSnapshot","filteredResult","base","runtimeMode","nativeSkillsUrlCompatibility","backendOrigin","graphqlUrl","fallbackWorkspaceSlug","requestedDirectoryPath","authMode","email","userId","role","authenticatedAt","expiresAt","loginBootstrap","status","trigger","startedAt","browserUrl","browserOpenError","message","fetchedAt","source","ignoredPublishedSkills","count","length","JSON","stringify","toPluginAuthStateSummary","resolvePluginStatusSnapshot","directory","signal","installableCatalog","catalogSkills","skills","withStatusMessage","snapshot","toAiFacingPluginStatusSnapshot","_installableCatalog","safeSnapshot","toPluginStatusMetadata","pluginStatus","authStatus","authEmail","authUserId","authRole","repositoryUrl","workspaceSlug","workspaceSlugSource","toFetchFailureOutput","output","metadata"],"sources":["../../src/server/status.ts"],"sourcesContent":["import { AVAILABLE_PUBLISHED_SKILL_TOOLS, resolveAvailableTools } from '../plugin-tools.js';\nimport { buildPublishedSkillsSystemNote } from '../published-skills-system-note.js';\nimport {\n toPublishedSkillCatalog as buildPublishedSkillCatalog,\n toInstallableSkillSummary,\n toPublishedSkillSummary,\n type PublishedSkillDetail,\n type PublishedSkillsSuccessState,\n} from '../published-skills-transform.js';\nimport { readGlobalAuthState, resolveStoredAuthState, toStoredUserKey } from './auth-store.js';\nimport { fetchPublishedSkillsCatalog } from './client.js';\nimport { NATIVE_SKILLS_URL_COMPATIBILITY, PLUGIN_ID, ROOT_SKILL_SEED_PATH } from './constants.js';\nimport { resolveConfig } from './config.js';\nimport { getPublishedSkillIgnoreScopeKey, resolveWorkspace, toWorkspaceResolutionMetadata, toWorkspaceResolutionOutput } from './workspace.js';\nimport type {\n AiFacingPluginStatusSnapshot,\n AuthState,\n FilteredPublishedSkillsResult,\n LoginBootstrapSnapshot,\n PluginAuthStateSummary,\n PluginStatusSnapshot,\n PublishedSkillCatalogPayload,\n PublishedSkillsResult,\n ResolvedConfig,\n} from './types.js';\n\nexport const toPublishedSkillCatalog = (payload: PublishedSkillCatalogPayload): PublishedSkillsSuccessState =>\n buildPublishedSkillCatalog(payload, {\n pluginId: PLUGIN_ID,\n rootSkillSeedPath: ROOT_SKILL_SEED_PATH,\n availableTools: AVAILABLE_PUBLISHED_SKILL_TOOLS,\n });\n\nexport const filterIgnoredPublishedSkills = async (\n config: ResolvedConfig,\n result: PublishedSkillsResult,\n): Promise<FilteredPublishedSkillsResult> => {\n const authState = await readGlobalAuthState(config.authStatePath);\n const userKey = toStoredUserKey(authState);\n\n if (!result.fetchResult.ok) {\n return {\n ...result,\n ignoreState: {\n scopeKey: getPublishedSkillIgnoreScopeKey(result.workspaceResolution),\n userKey,\n ignoredSkillSlugs: [],\n installedGlobalSkillSlugs: [],\n installedWorkspaceSkillSlugs: [],\n },\n ignoredSkills: [],\n };\n }\n\n const ignoredSkills = result.fetchResult.payload.userPreferences.ignoredSkills.map(toPublishedSkillSummary);\n const ignoredSkillSlugs = ignoredSkills.map((skill) => skill.skillSlug);\n\n return {\n ...result,\n ignoreState: {\n scopeKey: result.fetchResult.payload.userPreferences.scopeKey,\n userKey: result.fetchResult.payload.userPreferences.userKey || userKey,\n ignoredSkillSlugs,\n installedGlobalSkillSlugs: [],\n installedWorkspaceSkillSlugs: [],\n },\n ignoredSkills,\n };\n};\n\nconst getWorkspaceUnavailableMessage = (payload: PublishedSkillCatalogPayload): string | null => {\n if (payload.workspace) return null;\n return 'Workspace-specific skills are unavailable because the workspace was not found; global skills are still loaded.';\n};\n\nexport const buildSystemNote = (\n result: PublishedSkillsResult,\n _config: ResolvedConfig,\n details: PublishedSkillDetail[],\n): string | null => {\n if (!result.fetchResult.ok) return null;\n\n const catalog = toPublishedSkillCatalog(result.fetchResult.payload);\n return buildPublishedSkillsSystemNote({\n workspace: result.fetchResult.payload.workspace,\n directoryPath: result.directoryPath,\n catalog,\n details,\n });\n};\n\nexport const formatStatusOutput = async (\n worktree: string,\n config: ResolvedConfig,\n publishedSkillsResult: PublishedSkillsResult,\n loginBootstrapSnapshot: LoginBootstrapSnapshot,\n) => {\n const authState = await resolveStoredAuthState(worktree, config);\n const filteredResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n const base = {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n nativeSkillsUrlCompatibility: NATIVE_SKILLS_URL_COMPATIBILITY,\n backendOrigin: config.backendOrigin,\n graphqlUrl: config.graphqlUrl,\n fallbackWorkspaceSlug: config.fallbackWorkspaceSlug,\n workspaceResolution: toWorkspaceResolutionOutput(publishedSkillsResult.workspaceResolution),\n rootSkillSeedPath: config.rootSkillSeedPath,\n authStatePath: config.authStatePath,\n requestedDirectoryPath: publishedSkillsResult.directoryPath,\n authMode: publishedSkillsResult.fetchResult.authMode,\n authState:\n authState === null\n ? null\n : {\n email: authState.email,\n userId: authState.userId,\n role: authState.role ?? null,\n authenticatedAt: authState.authenticatedAt,\n expiresAt: authState.expiresAt,\n },\n loginBootstrap:\n loginBootstrapSnapshot.status === 'idle'\n ? null\n : {\n status: loginBootstrapSnapshot.status,\n trigger: loginBootstrapSnapshot.trigger,\n startedAt: loginBootstrapSnapshot.startedAt,\n expiresAt: loginBootstrapSnapshot.expiresAt,\n browserUrl: loginBootstrapSnapshot.browserUrl,\n browserOpenError: loginBootstrapSnapshot.browserOpenError,\n email: loginBootstrapSnapshot.email,\n message: loginBootstrapSnapshot.message,\n },\n status: filteredResult.fetchResult.status,\n fetchedAt: filteredResult.fetchResult.fetchedAt,\n source: filteredResult.fetchResult.source,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n ignoredPublishedSkills: {\n scopeKey: filteredResult.ignoreState.scopeKey,\n userKey: filteredResult.ignoreState.userKey,\n count: filteredResult.ignoreState.ignoredSkillSlugs.length,\n },\n };\n\n if (!filteredResult.fetchResult.ok) {\n return JSON.stringify({ ...base, message: filteredResult.fetchResult.message }, null, 2);\n }\n\n return JSON.stringify(\n {\n ...base,\n ...toPublishedSkillCatalog(filteredResult.fetchResult.payload),\n message: getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload),\n },\n null,\n 2,\n );\n};\n\nexport const toPluginAuthStateSummary = (authState: AuthState | null): PluginAuthStateSummary => {\n if (!authState) {\n return {\n status: 'missing',\n email: null,\n userId: null,\n role: null,\n authenticatedAt: null,\n expiresAt: null,\n };\n }\n\n return {\n status: 'authenticated',\n email: authState.email,\n userId: authState.userId,\n role: authState.role ?? null,\n authenticatedAt: authState.authenticatedAt,\n expiresAt: authState.expiresAt,\n };\n};\n\nexport const resolvePluginStatusSnapshot = async ({\n worktree,\n directory,\n signal,\n}: {\n worktree: string;\n directory: string;\n signal: AbortSignal;\n}): Promise<PluginStatusSnapshot> => {\n const config = await resolveConfig(worktree);\n const workspaceResolution = await resolveWorkspace({ config, directory });\n const fetchResult = await fetchPublishedSkillsCatalog(worktree, config, workspaceResolution, signal);\n const filteredResult = await filterIgnoredPublishedSkills(config, {\n directoryPath: workspaceResolution.directoryPath,\n workspaceResolution,\n fetchResult,\n });\n const authState = await resolveStoredAuthState(worktree, config);\n\n return {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n nativeSkillsUrlCompatibility: NATIVE_SKILLS_URL_COMPATIBILITY,\n backendOrigin: config.backendOrigin,\n graphqlUrl: config.graphqlUrl,\n fallbackWorkspaceSlug: config.fallbackWorkspaceSlug,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n rootSkillSeedPath: config.rootSkillSeedPath,\n authStatePath: config.authStatePath,\n authState: toPluginAuthStateSummary(authState),\n status: filteredResult.fetchResult.status,\n authMode: filteredResult.fetchResult.authMode,\n fetchedAt: filteredResult.fetchResult.fetchedAt,\n source: filteredResult.fetchResult.source,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n message: filteredResult.fetchResult.ok\n ? getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload)\n : filteredResult.fetchResult.message,\n catalog: filteredResult.fetchResult.ok ? toPublishedSkillCatalog(filteredResult.fetchResult.payload) : null,\n installableCatalog: filteredResult.fetchResult.ok\n ? {\n count: filteredResult.fetchResult.payload.catalogSkills.length,\n skills: filteredResult.fetchResult.payload.catalogSkills.map(toInstallableSkillSummary),\n }\n : null,\n ignoredPublishedSkills: {\n scopeKey: filteredResult.ignoreState.scopeKey,\n userKey: filteredResult.ignoreState.userKey,\n count: filteredResult.ignoreState.ignoredSkillSlugs.length,\n skills: filteredResult.ignoredSkills,\n },\n };\n};\n\nexport const withStatusMessage = (snapshot: PluginStatusSnapshot, message: string): PluginStatusSnapshot => ({\n ...snapshot,\n message,\n});\n\nexport const toAiFacingPluginStatusSnapshot = (snapshot: PluginStatusSnapshot): AiFacingPluginStatusSnapshot => {\n const { ignoredPublishedSkills, installableCatalog: _installableCatalog, ...safeSnapshot } = snapshot;\n\n return {\n ...safeSnapshot,\n ignoredPublishedSkills: {\n scopeKey: ignoredPublishedSkills.scopeKey,\n count: ignoredPublishedSkills.count,\n },\n };\n};\n\nexport const toPluginStatusMetadata = (snapshot: PluginStatusSnapshot): Record<string, string> => ({\n backendOrigin: snapshot.backendOrigin,\n graphqlUrl: snapshot.graphqlUrl,\n pluginStatus: snapshot.status,\n authStatus: snapshot.authState.status,\n authEmail: snapshot.authState.email ?? '',\n authUserId: snapshot.authState.userId ?? '',\n authRole: snapshot.authState.role ?? '',\n directoryPath: snapshot.workspaceResolution.directoryPath,\n repositoryUrl: snapshot.workspaceResolution.repositoryUrl ?? '',\n source: snapshot.source,\n workspaceSlug: snapshot.workspaceResolution.workspaceSlug ?? '',\n workspaceSlugSource: snapshot.workspaceResolution.workspaceSlugSource ?? 'placeholder',\n});\n\nexport const toFetchFailureOutput = async ({\n worktree,\n config,\n publishedSkillsResult,\n loginBootstrapSnapshot,\n}: {\n worktree: string;\n config: ResolvedConfig;\n publishedSkillsResult: PublishedSkillsResult;\n loginBootstrapSnapshot: LoginBootstrapSnapshot;\n}) => ({\n output: await formatStatusOutput(worktree, config, publishedSkillsResult, loginBootstrapSnapshot),\n metadata: {\n status: publishedSkillsResult.fetchResult.status,\n ...toWorkspaceResolutionMetadata(publishedSkillsResult.workspaceResolution),\n source: publishedSkillsResult.fetchResult.source,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["resolveAvailableTools","buildPublishedSkillsSystemNote","toPublishedSkillCatalog","buildPublishedSkillCatalog","toInstallableSkillSummary","toPublishedSkillSummary","readGlobalAuthState","resolveStoredAuthState","toStoredUserKey","fetchPublishedSkillsCatalog","NATIVE_SKILLS_URL_COMPATIBILITY","PLUGIN_ID","ROOT_SKILL_SEED_PATH","resolveConfig","getPublishedSkillIgnoreScopeKey","resolveWorkspace","toWorkspaceResolutionMetadata","toWorkspaceResolutionOutput","payload","availableTools","pluginId","rootSkillSeedPath","filterIgnoredPublishedSkills","config","result","authState","authStatePath","userKey","fetchResult","ok","ignoreState","scopeKey","workspaceResolution","ignoredSkillSlugs","installedGlobalSkillSlugs","installedWorkspaceSkillSlugs","ignoredSkills","userPreferences","map","skill","skillSlug","getWorkspaceUnavailableMessage","workspace","buildSystemNote","_config","details","catalog","directoryPath","formatStatusOutput","worktree","publishedSkillsResult","loginBootstrapSnapshot","filteredResult","base","runtimeMode","nativeSkillsUrlCompatibility","backendOrigin","graphqlUrl","fallbackWorkspaceSlug","requestedDirectoryPath","authMode","email","userId","role","authenticatedAt","expiresAt","loginBootstrap","status","trigger","startedAt","browserUrl","browserOpenError","message","fetchedAt","source","ignoredPublishedSkills","count","length","JSON","stringify","toPluginAuthStateSummary","resolvePluginStatusSnapshot","directory","signal","registeredTools","installableCatalog","catalogSkills","skills","withStatusMessage","snapshot","toAiFacingPluginStatusSnapshot","_installableCatalog","safeSnapshot","toPluginStatusMetadata","pluginStatus","authStatus","authEmail","authUserId","authRole","repositoryUrl","workspaceSlug","workspaceSlugSource","toFetchFailureOutput","output","metadata"],"sources":["../../src/server/status.ts"],"sourcesContent":["import { resolveAvailableTools } from '../plugin-tools.js';\nimport { buildPublishedSkillsSystemNote } from '../published-skills-system-note.js';\nimport {\n toPublishedSkillCatalog as buildPublishedSkillCatalog,\n toInstallableSkillSummary,\n toPublishedSkillSummary,\n type PublishedSkillDetail,\n type PublishedSkillsSuccessState,\n} from '../published-skills-transform.js';\nimport { readGlobalAuthState, resolveStoredAuthState, toStoredUserKey } from './auth-store.js';\nimport { fetchPublishedSkillsCatalog } from './client.js';\nimport { NATIVE_SKILLS_URL_COMPATIBILITY, PLUGIN_ID, ROOT_SKILL_SEED_PATH } from './constants.js';\nimport { resolveConfig } from './config.js';\nimport { getPublishedSkillIgnoreScopeKey, resolveWorkspace, toWorkspaceResolutionMetadata, toWorkspaceResolutionOutput } from './workspace.js';\nimport type {\n AiFacingPluginStatusSnapshot,\n AuthState,\n FilteredPublishedSkillsResult,\n LoginBootstrapSnapshot,\n PluginAuthStateSummary,\n PluginStatusSnapshot,\n PublishedSkillCatalogPayload,\n PublishedSkillsResult,\n ResolvedConfig,\n} from './types.js';\n\nexport const toPublishedSkillCatalog = (\n payload: PublishedSkillCatalogPayload,\n availableTools: string[] = resolveAvailableTools(null),\n): PublishedSkillsSuccessState =>\n buildPublishedSkillCatalog(payload, {\n pluginId: PLUGIN_ID,\n rootSkillSeedPath: ROOT_SKILL_SEED_PATH,\n availableTools,\n });\n\nexport const filterIgnoredPublishedSkills = async (\n config: ResolvedConfig,\n result: PublishedSkillsResult,\n): Promise<FilteredPublishedSkillsResult> => {\n const authState = await readGlobalAuthState(config.authStatePath);\n const userKey = toStoredUserKey(authState);\n\n if (!result.fetchResult.ok) {\n return {\n ...result,\n ignoreState: {\n scopeKey: getPublishedSkillIgnoreScopeKey(result.workspaceResolution),\n userKey,\n ignoredSkillSlugs: [],\n installedGlobalSkillSlugs: [],\n installedWorkspaceSkillSlugs: [],\n },\n ignoredSkills: [],\n };\n }\n\n const ignoredSkills = result.fetchResult.payload.userPreferences.ignoredSkills.map(toPublishedSkillSummary);\n const ignoredSkillSlugs = ignoredSkills.map((skill) => skill.skillSlug);\n\n return {\n ...result,\n ignoreState: {\n scopeKey: result.fetchResult.payload.userPreferences.scopeKey,\n userKey: result.fetchResult.payload.userPreferences.userKey || userKey,\n ignoredSkillSlugs,\n installedGlobalSkillSlugs: [],\n installedWorkspaceSkillSlugs: [],\n },\n ignoredSkills,\n };\n};\n\nconst getWorkspaceUnavailableMessage = (payload: PublishedSkillCatalogPayload): string | null => {\n if (payload.workspace) return null;\n return 'Workspace-specific skills are unavailable because the workspace was not found; global skills are still loaded.';\n};\n\nexport const buildSystemNote = (\n result: PublishedSkillsResult,\n _config: ResolvedConfig,\n details: PublishedSkillDetail[],\n): string | null => {\n if (!result.fetchResult.ok) return null;\n\n const catalog = toPublishedSkillCatalog(result.fetchResult.payload);\n return buildPublishedSkillsSystemNote({\n workspace: result.fetchResult.payload.workspace,\n directoryPath: result.directoryPath,\n catalog,\n details,\n });\n};\n\nexport const formatStatusOutput = async (\n worktree: string,\n config: ResolvedConfig,\n publishedSkillsResult: PublishedSkillsResult,\n loginBootstrapSnapshot: LoginBootstrapSnapshot,\n) => {\n const authState = await resolveStoredAuthState(worktree, config);\n const filteredResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n const base = {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n nativeSkillsUrlCompatibility: NATIVE_SKILLS_URL_COMPATIBILITY,\n backendOrigin: config.backendOrigin,\n graphqlUrl: config.graphqlUrl,\n fallbackWorkspaceSlug: config.fallbackWorkspaceSlug,\n workspaceResolution: toWorkspaceResolutionOutput(publishedSkillsResult.workspaceResolution),\n rootSkillSeedPath: config.rootSkillSeedPath,\n authStatePath: config.authStatePath,\n requestedDirectoryPath: publishedSkillsResult.directoryPath,\n authMode: publishedSkillsResult.fetchResult.authMode,\n authState:\n authState === null\n ? null\n : {\n email: authState.email,\n userId: authState.userId,\n role: authState.role ?? null,\n authenticatedAt: authState.authenticatedAt,\n expiresAt: authState.expiresAt,\n },\n loginBootstrap:\n loginBootstrapSnapshot.status === 'idle'\n ? null\n : {\n status: loginBootstrapSnapshot.status,\n trigger: loginBootstrapSnapshot.trigger,\n startedAt: loginBootstrapSnapshot.startedAt,\n expiresAt: loginBootstrapSnapshot.expiresAt,\n browserUrl: loginBootstrapSnapshot.browserUrl,\n browserOpenError: loginBootstrapSnapshot.browserOpenError,\n email: loginBootstrapSnapshot.email,\n message: loginBootstrapSnapshot.message,\n },\n status: filteredResult.fetchResult.status,\n fetchedAt: filteredResult.fetchResult.fetchedAt,\n source: filteredResult.fetchResult.source,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n ignoredPublishedSkills: {\n scopeKey: filteredResult.ignoreState.scopeKey,\n userKey: filteredResult.ignoreState.userKey,\n count: filteredResult.ignoreState.ignoredSkillSlugs.length,\n },\n };\n\n if (!filteredResult.fetchResult.ok) {\n return JSON.stringify({ ...base, message: filteredResult.fetchResult.message }, null, 2);\n }\n\n return JSON.stringify(\n {\n ...base,\n ...toPublishedSkillCatalog(filteredResult.fetchResult.payload, base.availableTools),\n message: getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload),\n },\n null,\n 2,\n );\n};\n\nexport const toPluginAuthStateSummary = (authState: AuthState | null): PluginAuthStateSummary => {\n if (!authState) {\n return {\n status: 'missing',\n email: null,\n userId: null,\n role: null,\n authenticatedAt: null,\n expiresAt: null,\n };\n }\n\n return {\n status: 'authenticated',\n email: authState.email,\n userId: authState.userId,\n role: authState.role ?? null,\n authenticatedAt: authState.authenticatedAt,\n expiresAt: authState.expiresAt,\n };\n};\n\nexport const resolvePluginStatusSnapshot = async ({\n worktree,\n directory,\n signal,\n registeredTools,\n}: {\n worktree: string;\n directory: string;\n signal: AbortSignal;\n registeredTools?: string[];\n}): Promise<PluginStatusSnapshot> => {\n const config = await resolveConfig(worktree);\n const workspaceResolution = await resolveWorkspace({ config, directory });\n const fetchResult = await fetchPublishedSkillsCatalog(worktree, config, workspaceResolution, signal);\n const filteredResult = await filterIgnoredPublishedSkills(config, {\n directoryPath: workspaceResolution.directoryPath,\n workspaceResolution,\n fetchResult,\n });\n const authState = await resolveStoredAuthState(worktree, config);\n const availableTools = registeredTools ?? resolveAvailableTools(authState?.role ?? null);\n\n return {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n nativeSkillsUrlCompatibility: NATIVE_SKILLS_URL_COMPATIBILITY,\n backendOrigin: config.backendOrigin,\n graphqlUrl: config.graphqlUrl,\n fallbackWorkspaceSlug: config.fallbackWorkspaceSlug,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n rootSkillSeedPath: config.rootSkillSeedPath,\n authStatePath: config.authStatePath,\n authState: toPluginAuthStateSummary(authState),\n status: filteredResult.fetchResult.status,\n authMode: filteredResult.fetchResult.authMode,\n fetchedAt: filteredResult.fetchResult.fetchedAt,\n source: filteredResult.fetchResult.source,\n availableTools,\n message: filteredResult.fetchResult.ok\n ? getWorkspaceUnavailableMessage(filteredResult.fetchResult.payload)\n : filteredResult.fetchResult.message,\n catalog: filteredResult.fetchResult.ok ? toPublishedSkillCatalog(filteredResult.fetchResult.payload, availableTools) : null,\n installableCatalog: filteredResult.fetchResult.ok\n ? {\n count: filteredResult.fetchResult.payload.catalogSkills.length,\n skills: filteredResult.fetchResult.payload.catalogSkills.map(toInstallableSkillSummary),\n }\n : null,\n ignoredPublishedSkills: {\n scopeKey: filteredResult.ignoreState.scopeKey,\n userKey: filteredResult.ignoreState.userKey,\n count: filteredResult.ignoreState.ignoredSkillSlugs.length,\n skills: filteredResult.ignoredSkills,\n },\n };\n};\n\nexport const withStatusMessage = (snapshot: PluginStatusSnapshot, message: string): PluginStatusSnapshot => ({\n ...snapshot,\n message,\n});\n\nexport const toAiFacingPluginStatusSnapshot = (snapshot: PluginStatusSnapshot): AiFacingPluginStatusSnapshot => {\n const { ignoredPublishedSkills, installableCatalog: _installableCatalog, ...safeSnapshot } = snapshot;\n\n return {\n ...safeSnapshot,\n ignoredPublishedSkills: {\n scopeKey: ignoredPublishedSkills.scopeKey,\n count: ignoredPublishedSkills.count,\n },\n };\n};\n\nexport const toPluginStatusMetadata = (snapshot: PluginStatusSnapshot): Record<string, string> => ({\n backendOrigin: snapshot.backendOrigin,\n graphqlUrl: snapshot.graphqlUrl,\n pluginStatus: snapshot.status,\n authStatus: snapshot.authState.status,\n authEmail: snapshot.authState.email ?? '',\n authUserId: snapshot.authState.userId ?? '',\n authRole: snapshot.authState.role ?? '',\n directoryPath: snapshot.workspaceResolution.directoryPath,\n repositoryUrl: snapshot.workspaceResolution.repositoryUrl ?? '',\n source: snapshot.source,\n workspaceSlug: snapshot.workspaceResolution.workspaceSlug ?? '',\n workspaceSlugSource: snapshot.workspaceResolution.workspaceSlugSource ?? 'placeholder',\n});\n\nexport const toFetchFailureOutput = async ({\n worktree,\n config,\n publishedSkillsResult,\n loginBootstrapSnapshot,\n}: {\n worktree: string;\n config: ResolvedConfig;\n publishedSkillsResult: PublishedSkillsResult;\n loginBootstrapSnapshot: LoginBootstrapSnapshot;\n}) => ({\n output: await formatStatusOutput(worktree, config, publishedSkillsResult, loginBootstrapSnapshot),\n metadata: {\n status: publishedSkillsResult.fetchResult.status,\n ...toWorkspaceResolutionMetadata(publishedSkillsResult.workspaceResolution),\n source: publishedSkillsResult.fetchResult.source,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { memo as _$memo } from "@opentui/solid";
|
|
2
1
|
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
3
2
|
import { insert as _$insert } from "@opentui/solid";
|
|
4
3
|
import { effect as _$effect } from "@opentui/solid";
|
|
@@ -8,7 +7,7 @@ import { setProp as _$setProp } from "@opentui/solid";
|
|
|
8
7
|
import { createElement as _$createElement } from "@opentui/solid";
|
|
9
8
|
import { createMemo } from 'solid-js';
|
|
10
9
|
import { compactStatusMessage, formatAuthStatus, formatBackendOriginLabel, formatSkillsCatalogUnavailableMessage } from '../formatting.js';
|
|
11
|
-
import { getInstallableNotInstalledSkills,
|
|
10
|
+
import { getInstallableNotInstalledSkills, getUserRoleRow } from '../skill-helpers.js';
|
|
12
11
|
import { Row } from './common.js';
|
|
13
12
|
export const StatusContent = props => {
|
|
14
13
|
if (props.status.kind === 'loading') {
|
|
@@ -63,7 +62,7 @@ export const SkillsRows = props => {
|
|
|
63
62
|
})();
|
|
64
63
|
};
|
|
65
64
|
export const ReadyRows = props => {
|
|
66
|
-
const
|
|
65
|
+
const roleRow = getUserRoleRow(props.snapshot);
|
|
67
66
|
const statusRows = [_$createComponent(Row, {
|
|
68
67
|
label: "url",
|
|
69
68
|
get value() {
|
|
@@ -86,20 +85,7 @@ export const ReadyRows = props => {
|
|
|
86
85
|
get valueColor() {
|
|
87
86
|
return props.theme.text;
|
|
88
87
|
}
|
|
89
|
-
})
|
|
90
|
-
get label() {
|
|
91
|
-
return row.label;
|
|
92
|
-
},
|
|
93
|
-
get value() {
|
|
94
|
-
return row.value;
|
|
95
|
-
},
|
|
96
|
-
get labelColor() {
|
|
97
|
-
return props.theme.textMuted;
|
|
98
|
-
},
|
|
99
|
-
get valueColor() {
|
|
100
|
-
return props.theme.text;
|
|
101
|
-
}
|
|
102
|
-
})))];
|
|
88
|
+
})];
|
|
103
89
|
if (!props.snapshot.catalog) {
|
|
104
90
|
return (() => {
|
|
105
91
|
var _el$6 = _$createElement("box");
|
|
@@ -119,12 +105,25 @@ export const ReadyRows = props => {
|
|
|
119
105
|
return props.theme.text;
|
|
120
106
|
}
|
|
121
107
|
}), null);
|
|
108
|
+
_$insert(_el$6, _$createComponent(Row, {
|
|
109
|
+
get label() {
|
|
110
|
+
return roleRow.label;
|
|
111
|
+
},
|
|
112
|
+
get value() {
|
|
113
|
+
return roleRow.value;
|
|
114
|
+
},
|
|
115
|
+
get labelColor() {
|
|
116
|
+
return props.theme.textMuted;
|
|
117
|
+
},
|
|
118
|
+
get valueColor() {
|
|
119
|
+
return props.theme.text;
|
|
120
|
+
}
|
|
121
|
+
}), null);
|
|
122
122
|
return _el$6;
|
|
123
123
|
})();
|
|
124
124
|
}
|
|
125
125
|
const installableNotInstalledCount = getInstallableNotInstalledSkills(props.snapshot).length;
|
|
126
|
-
const catalogStatus = `${props.snapshot.catalog.publishedSkillCount} loaded · ${installableNotInstalledCount} installable
|
|
127
|
-
const skillRows = getSkillListRows(props.snapshot);
|
|
126
|
+
const catalogStatus = `${props.snapshot.catalog.publishedSkillCount} loaded · ${installableNotInstalledCount} installable`;
|
|
128
127
|
return (() => {
|
|
129
128
|
var _el$7 = _$createElement("box");
|
|
130
129
|
_$setProp(_el$7, "width", "100%");
|
|
@@ -141,32 +140,20 @@ export const ReadyRows = props => {
|
|
|
141
140
|
return props.theme.text;
|
|
142
141
|
}
|
|
143
142
|
}), null);
|
|
144
|
-
_$insert(_el$7, (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
})) : _$createComponent(Row, {
|
|
160
|
-
label: "skills",
|
|
161
|
-
value: "none assigned yet",
|
|
162
|
-
get labelColor() {
|
|
163
|
-
return props.theme.textMuted;
|
|
164
|
-
},
|
|
165
|
-
get valueColor() {
|
|
166
|
-
return props.theme.text;
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
})(), null);
|
|
143
|
+
_$insert(_el$7, _$createComponent(Row, {
|
|
144
|
+
get label() {
|
|
145
|
+
return roleRow.label;
|
|
146
|
+
},
|
|
147
|
+
get value() {
|
|
148
|
+
return roleRow.value;
|
|
149
|
+
},
|
|
150
|
+
get labelColor() {
|
|
151
|
+
return props.theme.textMuted;
|
|
152
|
+
},
|
|
153
|
+
get valueColor() {
|
|
154
|
+
return props.theme.text;
|
|
155
|
+
}
|
|
156
|
+
}), null);
|
|
170
157
|
return _el$7;
|
|
171
158
|
})();
|
|
172
159
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMemo","compactStatusMessage","formatAuthStatus","formatBackendOriginLabel","formatSkillsCatalogUnavailableMessage","getInstallableNotInstalledSkills","
|
|
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":[]}
|
package/dist/tui/formatting.js
CHANGED
|
@@ -13,10 +13,9 @@ export const formatSkillsCatalogUnavailableMessage = snapshot => {
|
|
|
13
13
|
return 'unavailable';
|
|
14
14
|
};
|
|
15
15
|
export const formatAuthStatus = snapshot => {
|
|
16
|
-
|
|
17
|
-
if (snapshot.authState.
|
|
18
|
-
|
|
19
|
-
return `${snapshot.authState.email}${roleLabel}`;
|
|
16
|
+
if (snapshot.authState.status !== 'authenticated') return snapshot.authState.status;
|
|
17
|
+
if (!snapshot.authState.email) return 'authenticated';
|
|
18
|
+
return snapshot.authState.email;
|
|
20
19
|
};
|
|
21
20
|
export const formatBackendOriginLabel = backendOrigin => {
|
|
22
21
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MAX_STATUS_MESSAGE_LENGTH","compactStatusMessage","message","length","slice","formatSkillsCatalogUnavailableMessage","snapshot","catalog","status","formatAuthStatus","
|
|
1
|
+
{"version":3,"names":["MAX_STATUS_MESSAGE_LENGTH","compactStatusMessage","message","length","slice","formatSkillsCatalogUnavailableMessage","snapshot","catalog","status","formatAuthStatus","authState","email","formatBackendOriginLabel","backendOrigin","hostname","URL","includes"],"sources":["../../src/tui/formatting.ts"],"sourcesContent":["import type { PluginStatusSnapshot } from '../server.js';\nimport { MAX_STATUS_MESSAGE_LENGTH } from './constants.js';\n\nexport const compactStatusMessage = (message: string): string => {\n if (message.length <= MAX_STATUS_MESSAGE_LENGTH) return message;\n\n return `${message.slice(0, MAX_STATUS_MESSAGE_LENGTH - 1)}…`;\n};\n\nexport const formatSkillsCatalogUnavailableMessage = (snapshot: PluginStatusSnapshot): string => {\n if (!snapshot.catalog && snapshot.status === 'missing_auth') {\n if (snapshot.message) return compactStatusMessage(snapshot.message);\n\n return 'locked (browser auth pending)';\n }\n\n if (!snapshot.catalog && snapshot.message) return compactStatusMessage(snapshot.message);\n if (!snapshot.catalog) return `unavailable (${snapshot.status})`;\n\n return 'unavailable';\n};\n\nexport const formatAuthStatus = (snapshot: PluginStatusSnapshot): string => {\n if (snapshot.authState.status !== 'authenticated') return snapshot.authState.status;\n if (!snapshot.authState.email) return 'authenticated';\n\n return snapshot.authState.email;\n};\n\nexport const formatBackendOriginLabel = (backendOrigin: string): string => {\n try {\n const { hostname } = new URL(backendOrigin);\n if (hostname === 'localhost' || hostname === '127.0.0.1') return 'localhost';\n\n return 'opencode-wizard';\n } catch {\n if (backendOrigin.includes('localhost') || backendOrigin.includes('127.0.0.1')) return 'localhost';\n\n return 'opencode-wizard';\n }\n};\n"],"mappings":"AACA,SAASA,yBAAyB,QAAQ,gBAAgB;AAE1D,OAAO,MAAMC,oBAAoB,GAAIC,OAAe,IAAa;EAC/D,IAAIA,OAAO,CAACC,MAAM,IAAIH,yBAAyB,EAAE,OAAOE,OAAO;EAE/D,OAAO,GAAGA,OAAO,CAACE,KAAK,CAAC,CAAC,EAAEJ,yBAAyB,GAAG,CAAC,CAAC,GAAG;AAC9D,CAAC;AAED,OAAO,MAAMK,qCAAqC,GAAIC,QAA8B,IAAa;EAC/F,IAAI,CAACA,QAAQ,CAACC,OAAO,IAAID,QAAQ,CAACE,MAAM,KAAK,cAAc,EAAE;IAC3D,IAAIF,QAAQ,CAACJ,OAAO,EAAE,OAAOD,oBAAoB,CAACK,QAAQ,CAACJ,OAAO,CAAC;IAEnE,OAAO,+BAA+B;EACxC;EAEA,IAAI,CAACI,QAAQ,CAACC,OAAO,IAAID,QAAQ,CAACJ,OAAO,EAAE,OAAOD,oBAAoB,CAACK,QAAQ,CAACJ,OAAO,CAAC;EACxF,IAAI,CAACI,QAAQ,CAACC,OAAO,EAAE,OAAO,gBAAgBD,QAAQ,CAACE,MAAM,GAAG;EAEhE,OAAO,aAAa;AACtB,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIH,QAA8B,IAAa;EAC1E,IAAIA,QAAQ,CAACI,SAAS,CAACF,MAAM,KAAK,eAAe,EAAE,OAAOF,QAAQ,CAACI,SAAS,CAACF,MAAM;EACnF,IAAI,CAACF,QAAQ,CAACI,SAAS,CAACC,KAAK,EAAE,OAAO,eAAe;EAErD,OAAOL,QAAQ,CAACI,SAAS,CAACC,KAAK;AACjC,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAIC,aAAqB,IAAa;EACzE,IAAI;IACF,MAAM;MAAEC;IAAS,CAAC,GAAG,IAAIC,GAAG,CAACF,aAAa,CAAC;IAC3C,IAAIC,QAAQ,KAAK,WAAW,IAAIA,QAAQ,KAAK,WAAW,EAAE,OAAO,WAAW;IAE5E,OAAO,iBAAiB;EAC1B,CAAC,CAAC,MAAM;IACN,IAAID,aAAa,CAACG,QAAQ,CAAC,WAAW,CAAC,IAAIH,aAAa,CAACG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,WAAW;IAElG,OAAO,iBAAiB;EAC1B;AACF,CAAC","ignoreList":[]}
|
package/dist/tui/plugin.js
CHANGED
|
@@ -106,7 +106,7 @@ export const tui = async api => {
|
|
|
106
106
|
void loadStatus(api).then(nextStatus => {
|
|
107
107
|
setStatus(nextStatus);
|
|
108
108
|
if (nextStatus.kind === 'ready') {
|
|
109
|
-
const nextMode = nextStatus.snapshot.
|
|
109
|
+
const nextMode = nextStatus.snapshot.availableTools.includes('opencode_wizard_editor_create_or_update_skill') ? 'editor' : 'shared';
|
|
110
110
|
if (registeredActionMode !== nextMode) {
|
|
111
111
|
commandRegistration?.unregister?.();
|
|
112
112
|
commandRegistration = registerSkillActions(api, refreshStatus, nextMode);
|
package/dist/tui/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSignal","STATUS_REFRESH_INTERVAL_MS","requestRender","createWizardStatusSlot","loadStatus","registerCommandActions","api","actions","commandProvider","command","register","unregister","commands","createSharedSkillActions","refreshStatus","value","title","description","category","slash","name","onSelect","showLoading","createEditorSkillActions","registerSkillActions","mode","sharedActions","tui","status","setStatus","kind","registeredActionMode","commandRegistration","options","then","nextStatus","nextMode","snapshot","
|
|
1
|
+
{"version":3,"names":["createSignal","STATUS_REFRESH_INTERVAL_MS","requestRender","createWizardStatusSlot","loadStatus","registerCommandActions","api","actions","commandProvider","command","register","unregister","commands","createSharedSkillActions","refreshStatus","value","title","description","category","slash","name","onSelect","showLoading","createEditorSkillActions","registerSkillActions","mode","sharedActions","tui","status","setStatus","kind","registeredActionMode","commandRegistration","options","then","nextStatus","nextMode","snapshot","availableTools","includes","slots","setInterval"],"sources":["../../src/tui/plugin.ts"],"sourcesContent":["import { createSignal } from 'solid-js';\nimport { STATUS_REFRESH_INTERVAL_MS } from './constants.js';\nimport { requestRender } from './rendering.js';\nimport { createWizardStatusSlot } from './slots.js';\nimport { loadStatus } from './status.js';\nimport type { RefreshStatus, StatusState, TuiCommand, TuiPlugin, TuiPluginApi } from './types.js';\n\ntype RegisteredActionMode = 'shared' | 'editor';\ntype CommandRegistration = {\n unregister: (() => void) | null;\n};\n\nconst registerCommandActions = (api: TuiPluginApi, actions: TuiCommand[]): CommandRegistration | null => {\n const commandProvider = () => actions;\n\n if (api.command?.register) {\n return { unregister: api.command.register(commandProvider) ?? null };\n }\n\n if (api.commands?.register) {\n return { unregister: api.commands.register(commandProvider) ?? null };\n }\n\n return null;\n};\n\nconst createSharedSkillActions = (refreshStatus: RefreshStatus): TuiCommand[] => [\n {\n value: 'opencode-wizard.status',\n title: 'Wizard: status',\n description: 'Refresh plugin auth, backend, catalog, source, and workspace-resolution status via opencode_wizard_status.',\n category: 'Wizard',\n slash: {\n name: 'wizard-status',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n {\n value: 'opencode-wizard.fetch-published-skill',\n title: 'Wizard: fetch published skill',\n description: 'Fetch wizard-listed skill bodies/details with opencode_wizard_published_skills_fetch; pass refresh: true for fresh backend data.',\n category: 'Wizard',\n slash: {\n name: 'wizard-fetch-skill',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n {\n value: 'opencode-wizard.manage-skill-preference',\n title: 'Wizard: manage skill preference',\n description:\n 'Use opencode_wizard_published_skill_preference_set to install, uninstall, ignore, or unignore a published skill for project/global scope.',\n category: 'Wizard',\n slash: {\n name: 'wizard-manage-skill',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n];\n\nconst createEditorSkillActions = (refreshStatus: RefreshStatus): TuiCommand[] => [\n {\n value: 'opencode-wizard.editor.create-or-update-skill',\n title: 'Wizard: create/update skill from markdown',\n description:\n 'Canonical EDITOR flow: call opencode_wizard_editor_create_or_update_skill with complete SKILL.md markdownContent; no local seed file required.',\n category: 'Wizard',\n slash: {\n name: 'wizard-create-skill',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n {\n value: 'opencode-wizard.editor.import-artifact',\n title: 'Wizard: import external artifact',\n description:\n 'External source flow: call opencode_wizard_artifact_import for SKILL or DESIGN_DOC URLs/command-like sources; no project files are written.',\n category: 'Wizard',\n slash: {\n name: 'wizard-import-artifact',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n {\n value: 'opencode-wizard.editor.publish-seed-skill',\n title: 'Wizard: publish local seed skill',\n description:\n 'Legacy seed flow: call opencode_wizard_editor_publish_skill for .opencode/skills/<slug>/SKILL.md when a local seed already exists.',\n category: 'Wizard',\n slash: {\n name: 'wizard-publish-seed',\n },\n onSelect: () => refreshStatus({ showLoading: true }),\n },\n];\n\nconst registerSkillActions = (\n api: TuiPluginApi,\n refreshStatus: RefreshStatus,\n mode: RegisteredActionMode,\n): CommandRegistration | null => {\n const sharedActions = createSharedSkillActions(refreshStatus);\n const actions = mode === 'editor' ? [...sharedActions, ...createEditorSkillActions(refreshStatus)] : sharedActions;\n\n return registerCommandActions(api, actions);\n};\n\nexport const tui: TuiPlugin = async (api) => {\n const [status, setStatus] = createSignal<StatusState>({ kind: 'loading' });\n let registeredActionMode: RegisteredActionMode | null = null;\n let commandRegistration: CommandRegistration | null = null;\n const refreshStatus: RefreshStatus = (options) => {\n if (options?.showLoading) {\n setStatus({ kind: 'loading' });\n requestRender(api);\n }\n\n void loadStatus(api).then((nextStatus) => {\n setStatus(nextStatus);\n if (nextStatus.kind === 'ready') {\n const nextMode: RegisteredActionMode = nextStatus.snapshot.availableTools.includes(\n 'opencode_wizard_editor_create_or_update_skill',\n )\n ? 'editor'\n : 'shared';\n if (registeredActionMode !== nextMode) {\n commandRegistration?.unregister?.();\n commandRegistration = registerSkillActions(api, refreshStatus, nextMode);\n registeredActionMode = commandRegistration ? nextMode : null;\n }\n }\n requestRender(api);\n });\n };\n\n api.slots.register(createWizardStatusSlot(api, status, refreshStatus));\n refreshStatus();\n setInterval(refreshStatus, STATUS_REFRESH_INTERVAL_MS);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,5 +5,6 @@ export type SkillListRow = {
|
|
|
5
5
|
label: string;
|
|
6
6
|
value: string;
|
|
7
7
|
};
|
|
8
|
+
export declare const getUserRoleRow: (snapshot: PluginStatusSnapshot) => SkillListRow;
|
|
8
9
|
export declare const getSkillListRows: (snapshot: PluginStatusSnapshot) => SkillListRow[];
|
|
9
10
|
export declare const getSkillActionRows: (snapshot: PluginStatusSnapshot) => SkillListRow[];
|
|
@@ -6,6 +6,15 @@ 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
|
+
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
|
+
});
|
|
9
18
|
const compactSkillName = skill => {
|
|
10
19
|
const name = skill.skillName.trim() || skill.artifactName.trim() || skill.skillSlug;
|
|
11
20
|
if (name === skill.skillSlug) return name;
|
|
@@ -37,18 +46,5 @@ export const getSkillListRows = snapshot => {
|
|
|
37
46
|
value: `${rows.length - MAX_LISTED_SKILLS} hidden · use opencode_wizard_published_skills_fetch`
|
|
38
47
|
}];
|
|
39
48
|
};
|
|
40
|
-
export const getSkillActionRows = snapshot =>
|
|
41
|
-
const rows = [{
|
|
42
|
-
label: 'commands',
|
|
43
|
-
value: 'Wizard: status · fetch skill · manage preference'
|
|
44
|
-
}, {
|
|
45
|
-
label: 'manage',
|
|
46
|
-
value: 'install/uninstall · ignore/unignore via preference_set'
|
|
47
|
-
}];
|
|
48
|
-
if (snapshot.authState.role !== 'EDITOR') return rows;
|
|
49
|
-
return [...rows, {
|
|
50
|
-
label: 'editor',
|
|
51
|
-
value: 'create/update markdown · import external · publish seed'
|
|
52
|
-
}];
|
|
53
|
-
};
|
|
49
|
+
export const getSkillActionRows = snapshot => [getUserRoleRow(snapshot)];
|
|
54
50
|
//# sourceMappingURL=skill-helpers.js.map
|
|
@@ -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","compactSkillName","name","skillName","trim","artifactName","toEffectiveSkillLabel","assignmentSource","includes","contextKind","getSkillListRows","activeRows","
|
|
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":[]}
|
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":[]}
|