@aexol/opencode-wizard 0.3.7 → 0.3.9

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":["fs","path","CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION","IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION","SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION","createPublishedSkillToolDefinitions","resolveAvailableTools","resolveStoredAuthState","toAuthState","writeAuthState","resolveConfig","createPluginSession","openBrowser","startLoginFlow","fetchPublishedSkillDetail","fetchPublishedSkillsCatalog","fetchPublishedSkillsGraphQl","fetchWizardArtifactDetail","fetchWizardArtifactsCatalog","maybePersistWorkspaceSlugFromCatalog","normalizeAbsolutePath","emitPluginActionEvent","emitPresenceEvent","normalizeDirectoryArg","normalizeRepositoryPath","resolveWorkspace","toWorkspaceResolutionMetadata","toWorkspaceResolutionOutput","parseRequestedSkillArgs","selectPublishedSkills","toPublishedSkillDetail","toPublishedSkillSummary","toWizardArtifactCatalog","toWizardArtifactDetail","toWizardArtifactSummary","CACHE_TTL_MS","LOGIN_TIMEOUT_MS","OIDC_CALLBACK_URL","PLUGIN_ID","PRESENCE_SHUTDOWN_SIGNALS","PRESENCE_SIGNAL_EXIT_CODES","NATIVE_SKILLS_URL_COMPATIBILITY","buildSystemNote","filterIgnoredPublishedSkills","resolvePluginStatusSnapshot","toAiFacingPluginStatusSnapshot","toFetchFailureOutput","toPluginStatusMetadata","toPublishedSkillCatalog","createIdleLoginBootstrapSnapshot","fetchWizardArtifactImportSource","planWizardArtifactImport","getCatalogCacheKey","resolvePublishedSkillPreferenceCacheContext","setPublishedSkillIgnored","setPublishedSkillInstalled","toPublishedSkillPreferenceAction","toPublishedSkillPreferenceScope","toPluginAuthStateSummary","importOpencodePluginModule","Function","resolvePluginStatusSnapshotWithAuthBootstrap","getDetailCacheKey","catalogCacheKey","skillVersionId","JSON","stringify","getDetailInflightKey","purpose","SUPPORTED_WIZARD_ARTIFACT_KINDS","DESIGN_DOC_UNSUPPORTED_MESSAGE","toWizardArtifactKind","value","normalized","trim","toUpperCase","replace","buildUnsupportedWizardArtifactOutput","artifactKind","directoryPath","output","pluginId","runtimeMode","status","supportedArtifactKinds","requestedDirectoryPath","message","metadata","withWizardArtifactEnvelope","result","outputResult","parse","compatibilityAliases","matchesWizardArtifactIdentifier","item","identifier","normalizedIdentifier","toLowerCase","artifact","slug","name","artifactVersion","frontmatterName","id","selectWizardArtifacts","items","identifiers","selectedItems","filter","some","missingIdentifiers","OpencodeWizardSkillsPlugin","input","tool","config","worktree","workspacePath","cache","Map","catalogInflight","detailCache","detailInflight","initialAuthState","loginBootstrap","promise","snapshot","lastAuthenticatedAuthState","didEmitStart","didScheduleStop","presenceStartPromise","presenceStopPromise","lastInteractiveDirectoryPath","resolveActionAuthState","storedAuthState","emitActionEventForCurrentSession","event","authState","schedulePresenceStart","Promise","resolve","all","undefined","then","schedulePresenceStop","catch","scheduleInteractivePresenceStart","process","once","shutdownSignal","finally","exit","clearPublishedSkillState","clear","persistAuthState","session","authStatePath","startLoginCompletion","trigger","startedAt","Date","toISOString","expiresAt","browserUrl","browserOpenError","email","loginPromise","loginSignal","AbortSignal","timeout","loginStart","callbackPayload","callbackPromise","Error","state","expectedState","pluginSession","code","codeVerifier","redirectUri","signal","error","closeCallbackServer","loadPublishedSkillCatalog","directory","useCache","workspaceResolution","preferenceContext","cacheKey","cached","get","now","fetchResult","source","inflight","requestPromise","resolution","set","delete","loadPublishedSkillDetail","skillVersion","inflightKey","ok","detail","publishedArtifact","detailResult","onAuthStateChanged","requestedSkillVersionId","fetchedAt","executePublishedSkillsFetchTool","args","context","requestedDirectory","requestedSkills","fetchActionDirectoryPath","emitFetchOutcome","publishedSkillsResult","refresh","abort","loginBootstrapSnapshot","filteredPublishedSkillsResult","selection","payload","isSingleRequest","length","catalog","availableTools","role","title","publishedSkillCount","toString","globalAssignmentCount","assignmentCounts","global","projectAssignmentCount","project","userAssignmentCount","user","ignoredSkillCount","ignoreState","ignoredSkillSlugs","ignoredPublishedSkills","scopeKey","count","cacheTtlMs","requestedSkill","availableSkills","skills","map","skillDetailResults","failedSkillDetail","find","skillDetails","artifactName","skillName","skillSlug","version","workspace","skill","requestedCount","matchedCount","missingSkills","executeWizardArtifactCatalogTool","artifactCount","executeWizardArtifactFetchTool","requestedArtifacts","artifacts","requestedArtifact","availableArtifacts","detailResults","artifactVersionId","failedDetail","details","index","missingArtifacts","executeStatusTool","executePublishedSkillPreferenceTool","emitPreferenceOutcome","action","catalogResult","selectableCatalogSkills","catalogSkills","assignmentSource","assignmentType","scopePath","includeChildren","preferenceSelection","userPreferences","ignoredSkills","matchedSkill","preferenceState","ignored","preferenceScope","installed","requestedIdentifier","guidance","executeWizardArtifactPreferenceTool","response","query","variables","workspaceSlug","repositoryUrl","artifactSlug","data","setWizardArtifactPreference","executeEditorPublishSkillTool","requestedSkillSlug","repositoryRoot","skillFilePath","rootSkillSeedPath","markdownContent","readFile","createOrUpdateSkillFromMarkdown","success","errors","executeWizardArtifactImportTool","importPlan","importSource","candidateUrls","summary","fetchedUrl","sourceSnapshotRef","sourceRef","importWizardArtifactSnapshot","isEditor","sharedTools","editorOnlyTools","fetchPublishedSkills","fetchWizardArtifactCatalog","fetchWizardArtifacts","updatePublishedSkillPreference","updateWizardArtifactPreference","getStatus","publishEditorSkill","importWizardArtifact","experimental.chat.system.transform","_hookInput","loginMessage","system","push","systemNote","server"],"sources":["../../src/server/runtime.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION,\n IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION,\n SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION,\n} from '../graphql-operations.js';\nimport {\n createPublishedSkillToolDefinitions,\n resolveAvailableTools,\n type EditorPublishSkillArgs,\n type PluginStatusArgs,\n type PublishedSkillFetchArgs,\n type PublishedSkillPreferenceArgs,\n type ToolExecuteContext,\n type WizardArtifactCatalogFetchArgs,\n type WizardArtifactFetchArgs,\n type WizardArtifactKind,\n type WizardArtifactImportArgs,\n type WizardArtifactPreferenceArgs,\n} from '../plugin-tools.js';\nimport {\n resolveStoredAuthState,\n toAuthState,\n writeAuthState,\n} from './auth-store.js';\nimport { resolveConfig } from './config.js';\nexport { resolveConfig } from './config.js';\nimport { createPluginSession, openBrowser, startLoginFlow } from './auth-flow.js';\nimport {\n fetchPublishedSkillDetail,\n fetchPublishedSkillsCatalog,\n fetchPublishedSkillsGraphQl,\n fetchWizardArtifactDetail,\n fetchWizardArtifactsCatalog,\n maybePersistWorkspaceSlugFromCatalog,\n} from './client.js';\nimport { normalizeAbsolutePath } from './path-utils.js';\nimport { emitPluginActionEvent, emitPresenceEvent } from './presence.js';\nimport {\n normalizeDirectoryArg,\n normalizeRepositoryPath,\n resolveWorkspace,\n toWorkspaceResolutionMetadata,\n toWorkspaceResolutionOutput,\n} from './workspace.js';\nimport {\n buildSkillMarkdown,\n parseRequestedSkillArgs,\n selectPublishedSkills,\n toPublishedSkillDetail,\n toPublishedSkillSummary,\n toWizardArtifactCatalog,\n toWizardArtifactDetail,\n toWizardArtifactSummary,\n} from '../published-skills-transform.js';\nimport {\n CACHE_TTL_MS,\n LOGIN_TIMEOUT_MS,\n NATIVE_SKILLS_URL_COMPATIBILITY,\n OIDC_CALLBACK_URL,\n PLUGIN_ID,\n PRESENCE_SHUTDOWN_SIGNALS,\n PRESENCE_SIGNAL_EXIT_CODES,\n type NativeSkillsUrlCompatibility,\n} from './constants.js';\nexport { PLUGIN_ID, NATIVE_SKILLS_URL_COMPATIBILITY, type NativeSkillsUrlCompatibility } from './constants.js';\nimport {\n buildSystemNote,\n filterIgnoredPublishedSkills,\n resolvePluginStatusSnapshot,\n toAiFacingPluginStatusSnapshot,\n toFetchFailureOutput,\n toPluginAuthStateSummary,\n toPluginStatusMetadata,\n toPublishedSkillCatalog,\n} from './status.js';\nimport { createIdleLoginBootstrapSnapshot } from './auth-bootstrap.js';\nimport { fetchWizardArtifactImportSource, planWizardArtifactImport } from './import-sources.js';\nimport {\n getCatalogCacheKey,\n resolvePublishedSkillPreferenceCacheContext,\n setPublishedSkillIgnored,\n setPublishedSkillInstalled,\n toPublishedSkillPreferenceAction,\n toPublishedSkillPreferenceScope,\n} from './preferences.js';\nexport {\n buildSystemNote,\n resolvePluginStatusSnapshot,\n toPluginAuthStateSummary,\n toPublishedSkillCatalog,\n} from './status.js';\nimport type {\n AuthState,\n CacheEntry,\n CreateOrUpdateSkillFromMarkdownResponse,\n DetailCacheEntry,\n FetchResult,\n FilteredPublishedSkillsResult,\n LoginBootstrapTrigger,\n ImportWizardArtifactSnapshotResponse,\n OidcLoginStart,\n OpencodePluginModule,\n OpencodePluginServer,\n PluginActionEventType,\n PluginAuthStateSummary,\n PluginSessionResponse,\n PresenceEventType,\n PublishedSkillArtifactDetailPurpose,\n PublishedSkillCatalogItem,\n PublishedSkillCatalogPayload,\n PublishedSkillDetailResult,\n PublishedSkillInstallableCatalogItem,\n PublishedSkillsResult,\n ResolvedConfig,\n WorkspaceResolution,\n WizardArtifactCatalogItem,\n WizardArtifactUserPreferences,\n} from './types.js';\nexport type {\n PluginAuthStateSummary,\n PluginStatusSnapshot,\n PublishedSkillCatalogItem,\n PublishedSkillCatalogPayload,\n PublishedSkillDetailItem,\n PublishedSkillInstallableCatalogItem,\n} from './types.js';\n\nconst importOpencodePluginModule = new Function('specifier', 'return import(specifier)') as (\n specifier: string,\n) => Promise<OpencodePluginModule>;\nexport { resolvePluginStatusSnapshotWithAuthBootstrap } from './auth-bootstrap.js';\nexport { setPublishedSkillIgnored, setPublishedSkillInstalled } from './preferences.js';\n\nconst getDetailCacheKey = (catalogCacheKey: string, skillVersionId: string): string => {\n return JSON.stringify([catalogCacheKey, skillVersionId]);\n};\n\nconst getDetailInflightKey = (\n catalogCacheKey: string,\n skillVersionId: string,\n purpose: PublishedSkillArtifactDetailPurpose,\n): string => {\n return JSON.stringify([catalogCacheKey, skillVersionId, purpose]);\n};\n\nconst SUPPORTED_WIZARD_ARTIFACT_KINDS: WizardArtifactKind[] = ['SKILL', 'DESIGN_DOC'];\nconst DESIGN_DOC_UNSUPPORTED_MESSAGE =\n 'DESIGN_DOC is supported by generic wizard artifact persistence; use catalog/detail tools for assigned or installed documents.';\n\nconst toWizardArtifactKind = (value: string | undefined): WizardArtifactKind | null => {\n if (!value) return 'SKILL';\n const normalized = value.trim().toUpperCase().replace(/[-\\s]+/gu, '_');\n if (normalized === 'SKILL') return 'SKILL';\n if (normalized === 'DESIGN_DOC') return 'DESIGN_DOC';\n return null;\n};\n\nconst buildUnsupportedWizardArtifactOutput = ({\n artifactKind,\n directoryPath,\n}: {\n artifactKind: WizardArtifactKind | string;\n directoryPath: string;\n}) => ({\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: artifactKind === 'DESIGN_DOC' ? 'unsupported' : 'bad_artifact_kind',\n artifactKind,\n supportedArtifactKinds: SUPPORTED_WIZARD_ARTIFACT_KINDS,\n requestedDirectoryPath: directoryPath,\n message:\n artifactKind === 'DESIGN_DOC'\n ? DESIGN_DOC_UNSUPPORTED_MESSAGE\n : 'Unsupported wizard artifact kind. Use SKILL or DESIGN_DOC.',\n },\n null,\n 2,\n ),\n metadata: {\n status: artifactKind === 'DESIGN_DOC' ? 'unsupported' : 'bad_artifact_kind',\n artifactKind,\n directoryPath,\n },\n});\n\nconst withWizardArtifactEnvelope = (result: unknown, artifactKind: WizardArtifactKind): unknown => {\n if (!result || typeof result !== 'object' || !('output' in result)) return result;\n const outputResult = result as { output: unknown; metadata?: Record<string, string> };\n if (typeof outputResult.output !== 'string') return result;\n\n try {\n return {\n ...outputResult,\n output: JSON.stringify(\n {\n ...JSON.parse(outputResult.output),\n artifactKind,\n supportedArtifactKinds: SUPPORTED_WIZARD_ARTIFACT_KINDS,\n compatibilityAliases: [\n 'opencode_wizard_published_skills_fetch',\n 'opencode_wizard_published_skill_preference_set',\n ],\n },\n null,\n 2,\n ),\n metadata: {\n ...(outputResult.metadata ?? {}),\n artifactKind,\n },\n };\n } catch {\n return result;\n }\n};\n\nconst matchesWizardArtifactIdentifier = (item: WizardArtifactCatalogItem, identifier: string): boolean => {\n const normalizedIdentifier = identifier.trim().toLowerCase();\n if (!normalizedIdentifier) return false;\n if (item.artifact.slug.toLowerCase() === normalizedIdentifier) return true;\n if (item.artifact.name.toLowerCase() === normalizedIdentifier) return true;\n if (item.artifactVersion.frontmatterName.toLowerCase() === normalizedIdentifier) return true;\n return item.artifactVersion.id.toLowerCase() === normalizedIdentifier;\n};\n\nconst selectWizardArtifacts = (items: WizardArtifactCatalogItem[], identifiers: string[]) => {\n const selectedItems = items.filter((item) =>\n identifiers.some((identifier) => matchesWizardArtifactIdentifier(item, identifier)),\n );\n const missingIdentifiers = identifiers.filter(\n (identifier) => !selectedItems.some((item) => matchesWizardArtifactIdentifier(item, identifier)),\n );\n return { selectedItems, missingIdentifiers };\n};\n\nexport const OpencodeWizardSkillsPlugin: OpencodePluginServer = async (input) => {\n const { tool } = await importOpencodePluginModule('@opencode-ai/plugin');\n const config = await resolveConfig(input.worktree);\n const workspacePath = normalizeAbsolutePath(input.worktree);\n const cache = new Map<string, CacheEntry>();\n const catalogInflight = new Map<string, Promise<PublishedSkillsResult>>();\n const detailCache = new Map<string, DetailCacheEntry>();\n const detailInflight = new Map<string, Promise<PublishedSkillDetailResult>>();\n const initialAuthState = await resolveStoredAuthState(input.worktree, config);\n const loginBootstrap = {\n promise: null as Promise<AuthState> | null,\n snapshot: createIdleLoginBootstrapSnapshot(),\n };\n let lastAuthenticatedAuthState: AuthState | null = initialAuthState;\n let didEmitStart = false;\n let didScheduleStop = false;\n let presenceStartPromise: Promise<void> | null = null;\n let presenceStopPromise: Promise<void> | null = null;\n let lastInteractiveDirectoryPath: string | null = null;\n\n const resolveActionAuthState = async (): Promise<AuthState | null> => {\n const storedAuthState = await resolveStoredAuthState(input.worktree, config);\n if (storedAuthState) return storedAuthState;\n return lastAuthenticatedAuthState;\n };\n\n const emitActionEventForCurrentSession = async ({\n event,\n authState,\n directoryPath,\n }: {\n event: PluginActionEventType;\n authState?: AuthState | null;\n directoryPath?: string;\n }): Promise<void> => {\n await emitPluginActionEvent({\n config,\n authState: authState ?? (await resolveActionAuthState()),\n event,\n workspacePath,\n directoryPath,\n });\n };\n\n const schedulePresenceStart = (authState: AuthState): Promise<void> => {\n lastAuthenticatedAuthState = authState;\n if (didEmitStart) {\n return presenceStartPromise ?? Promise.resolve();\n }\n\n didEmitStart = true;\n presenceStartPromise = Promise.all([\n emitPresenceEvent({\n config,\n authState,\n event: 'START',\n workspacePath,\n }),\n emitActionEventForCurrentSession({\n event: 'START',\n authState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n }),\n ]).then(() => undefined);\n return presenceStartPromise;\n };\n\n const schedulePresenceStop = (): Promise<void> => {\n if (didScheduleStop) {\n return presenceStopPromise ?? Promise.resolve();\n }\n\n didScheduleStop = true;\n if (!didEmitStart || !lastAuthenticatedAuthState) {\n presenceStopPromise = Promise.resolve();\n return presenceStopPromise;\n }\n\n presenceStopPromise = (async () => {\n await presenceStartPromise?.catch(() => undefined);\n await Promise.all([\n emitPresenceEvent({\n config,\n authState: lastAuthenticatedAuthState,\n event: 'STOP',\n workspacePath,\n }),\n emitActionEventForCurrentSession({\n event: 'STOP',\n authState: lastAuthenticatedAuthState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n }),\n ]);\n })();\n\n return presenceStopPromise;\n };\n\n const scheduleInteractivePresenceStart = async (): Promise<void> => {\n const authState = await resolveStoredAuthState(input.worktree, config);\n if (!authState) return;\n await schedulePresenceStart(authState);\n };\n\n process.once('beforeExit', () => {\n void schedulePresenceStop();\n });\n\n for (const shutdownSignal of PRESENCE_SHUTDOWN_SIGNALS) {\n try {\n process.once(shutdownSignal, () => {\n void schedulePresenceStop().finally(() => {\n process.exit(PRESENCE_SIGNAL_EXIT_CODES[shutdownSignal]);\n });\n });\n } catch {\n continue;\n }\n }\n\n const clearPublishedSkillState = () => {\n cache.clear();\n catalogInflight.clear();\n detailCache.clear();\n detailInflight.clear();\n };\n\n const persistAuthState = async (session: PluginSessionResponse['session']): Promise<AuthState> => {\n const authState = toAuthState(session);\n await writeAuthState(config.authStatePath, authState);\n clearPublishedSkillState();\n return authState;\n };\n\n const startLoginCompletion = (trigger: LoginBootstrapTrigger): Promise<AuthState> => {\n if (loginBootstrap.promise) {\n return loginBootstrap.promise;\n }\n\n const startedAt = new Date().toISOString();\n\n loginBootstrap.snapshot = {\n status: 'starting',\n trigger,\n startedAt,\n expiresAt: null,\n browserUrl: null,\n browserOpenError: null,\n email: null,\n message: null,\n };\n\n const loginPromise = (async () => {\n const loginSignal = AbortSignal.timeout(LOGIN_TIMEOUT_MS);\n let loginStart: OidcLoginStart | null = null;\n\n try {\n loginStart = await startLoginFlow(loginSignal);\n const browserOpenError = await openBrowser(loginStart.browserUrl);\n\n loginBootstrap.snapshot = {\n status: 'pending',\n trigger,\n startedAt,\n expiresAt: loginStart.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: null,\n message: browserOpenError\n ? `Automatic browser open failed. Open ${loginStart.browserUrl} manually.`\n : `Browser login started for published skill ${trigger}.`,\n };\n\n const callbackPayload = await loginStart.callbackPromise;\n\n if (callbackPayload.status === 'error') {\n throw new Error(callbackPayload.message);\n }\n\n if (callbackPayload.state !== loginStart.expectedState) {\n throw new Error('OAuth callback state did not match the original login request.');\n }\n\n loginBootstrap.snapshot = {\n status: 'pending',\n trigger,\n startedAt,\n expiresAt: loginStart.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: null,\n message: 'OAuth callback received. Finalizing backend session exchange.',\n };\n\n const pluginSession = await createPluginSession({\n code: callbackPayload.code,\n codeVerifier: loginStart.codeVerifier,\n redirectUri: OIDC_CALLBACK_URL,\n config,\n signal: loginSignal,\n });\n const authState = await persistAuthState(pluginSession);\n await emitActionEventForCurrentSession({\n event: 'LOGIN_SUCCESS',\n authState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n });\n\n loginBootstrap.snapshot = {\n status: 'authenticated',\n trigger,\n startedAt,\n expiresAt: authState.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: authState.email,\n message: `Browser login completed successfully for published skill ${trigger}.`,\n };\n\n return authState;\n } catch (error) {\n await emitActionEventForCurrentSession({\n event: 'LOGIN_FAILED',\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n });\n loginBootstrap.snapshot = {\n status: 'failed',\n trigger,\n startedAt,\n expiresAt: loginBootstrap.snapshot.expiresAt,\n browserUrl: loginBootstrap.snapshot.browserUrl,\n browserOpenError: loginBootstrap.snapshot.browserOpenError,\n email: null,\n message: error instanceof Error ? error.message : 'Browser login failed.',\n };\n throw error;\n } finally {\n await loginStart?.closeCallbackServer().catch(() => undefined);\n loginBootstrap.promise = null;\n }\n })();\n\n loginBootstrap.promise = loginPromise;\n return loginPromise;\n };\n\n const loadPublishedSkillCatalog = async ({\n directory,\n useCache,\n signal,\n }: {\n directory: string;\n useCache: boolean;\n signal: AbortSignal;\n }): Promise<PublishedSkillsResult> => {\n const workspaceResolution = await resolveWorkspace({\n config,\n directory,\n });\n const directoryPath = workspaceResolution.directoryPath;\n const preferenceContext = await resolvePublishedSkillPreferenceCacheContext(config);\n const cacheKey = getCatalogCacheKey(workspaceResolution, preferenceContext);\n const cached = cache.get(cacheKey);\n\n if (useCache && cached && cached.expiresAt > Date.now()) {\n return {\n directoryPath,\n workspaceResolution,\n fetchResult: {\n ...cached.result,\n source: 'cache',\n },\n };\n }\n\n const inflight = catalogInflight.get(cacheKey);\n if (inflight) {\n return inflight;\n }\n\n const requestPromise = (async (): Promise<PublishedSkillsResult> => {\n const fetchResult = await fetchPublishedSkillsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n signal,\n clearPublishedSkillState,\n );\n\n await maybePersistWorkspaceSlugFromCatalog({\n config,\n resolution: workspaceResolution,\n fetchResult,\n });\n\n cache.set(cacheKey, {\n result: fetchResult,\n expiresAt: Date.now() + CACHE_TTL_MS,\n });\n\n return {\n directoryPath,\n workspaceResolution,\n fetchResult,\n };\n })();\n\n catalogInflight.set(cacheKey, requestPromise);\n\n try {\n return await requestPromise;\n } finally {\n catalogInflight.delete(cacheKey);\n }\n };\n\n const loadPublishedSkillDetail = async ({\n workspaceResolution,\n item,\n signal,\n useCache,\n purpose,\n }: {\n workspaceResolution: WorkspaceResolution;\n item: PublishedSkillCatalogItem;\n signal: AbortSignal;\n useCache: boolean;\n purpose: PublishedSkillArtifactDetailPurpose;\n }): Promise<PublishedSkillDetailResult> => {\n const directoryPath = workspaceResolution.directoryPath;\n const preferenceContext = await resolvePublishedSkillPreferenceCacheContext(config);\n const catalogCacheKey = getCatalogCacheKey(workspaceResolution, preferenceContext);\n const cacheKey = getDetailCacheKey(catalogCacheKey, item.skillVersion.id);\n const inflightKey = getDetailInflightKey(catalogCacheKey, item.skillVersion.id, purpose);\n const cached = detailCache.get(cacheKey);\n\n if (useCache && cached && cached.expiresAt > Date.now()) {\n return {\n ok: true,\n detail: toPublishedSkillDetail({\n ...item,\n publishedArtifact: cached.artifact,\n }),\n };\n }\n\n const inflight = detailInflight.get(inflightKey);\n if (inflight) {\n return inflight;\n }\n\n const requestPromise = (async (): Promise<PublishedSkillDetailResult> => {\n const detailResult = await fetchPublishedSkillDetail({\n worktree: input.worktree,\n config,\n resolution: workspaceResolution,\n skillVersionId: item.skillVersion.id,\n signal,\n onAuthStateChanged: clearPublishedSkillState,\n purpose,\n });\n\n if (!detailResult.ok) {\n return {\n ok: false,\n status: detailResult.result.status,\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: detailResult.result.status,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n requestedSkillVersionId: item.skillVersion.id,\n message: detailResult.result.message,\n fetchedAt: detailResult.result.fetchedAt,\n source: detailResult.result.source,\n },\n null,\n 2,\n ),\n metadata: {\n status: detailResult.result.status,\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n source: detailResult.result.source,\n },\n };\n }\n\n detailCache.set(cacheKey, {\n artifact: detailResult.artifact,\n expiresAt: Date.now() + CACHE_TTL_MS,\n });\n\n return {\n ok: true,\n detail: toPublishedSkillDetail({\n ...item,\n publishedArtifact: detailResult.artifact,\n }),\n };\n })();\n\n detailInflight.set(inflightKey, requestPromise);\n\n try {\n return await requestPromise;\n } finally {\n detailInflight.delete(inflightKey);\n }\n };\n\n const executePublishedSkillsFetchTool = async ({\n args,\n context,\n }: {\n args: PublishedSkillFetchArgs;\n context: {\n directory: string;\n abort: AbortSignal;\n metadata: (payload: { title: string; metadata: Record<string, string> }) => void;\n };\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const requestedSkills = parseRequestedSkillArgs(args);\n\n const fetchActionDirectoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = fetchActionDirectoryPath;\n\n const emitFetchOutcome = async (\n event: Extract<PluginActionEventType, 'FETCH_SUCCESS' | 'FETCH_FAILED'>,\n ): Promise<void> => {\n await emitActionEventForCurrentSession({\n event,\n directoryPath: fetchActionDirectoryPath,\n });\n };\n\n let publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: !args.refresh,\n signal: context.abort,\n });\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n\n if (!publishedSkillsResult.fetchResult.ok && publishedSkillsResult.fetchResult.status === 'missing_auth') {\n try {\n await startLoginCompletion('fetch').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: false,\n signal: context.abort,\n });\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n } catch {\n // Return the original fetch failure with the latest login bootstrap snapshot attached.\n }\n }\n\n if (!publishedSkillsResult.fetchResult.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const filteredPublishedSkillsResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n if (!filteredPublishedSkillsResult.fetchResult.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult: filteredPublishedSkillsResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const selection = selectPublishedSkills(filteredPublishedSkillsResult.fetchResult.payload, requestedSkills);\n const isSingleRequest = requestedSkills.length === 1;\n\n if (requestedSkills.length === 0) {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = {\n ...toPublishedSkillCatalog(filteredPublishedSkillsResult.fetchResult.payload),\n availableTools: resolveAvailableTools(authState?.role ?? null),\n };\n\n context.metadata({\n title: `opencode-wizard published skills catalog: ${catalog.publishedSkillCount} active`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n status: 'ready',\n publishedSkillCount: catalog.publishedSkillCount.toString(),\n globalAssignmentCount: catalog.assignmentCounts.global.toString(),\n projectAssignmentCount: catalog.assignmentCounts.project.toString(),\n userAssignmentCount: catalog.assignmentCounts.user.toString(),\n ignoredSkillCount: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length.toString(),\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n ignoredPublishedSkills: {\n scopeKey: filteredPublishedSkillsResult.ignoreState.scopeKey,\n count: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length,\n },\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n cacheTtlMs: CACHE_TTL_MS,\n message:\n args.refresh\n ? 'Catalog discovery refreshed from the backend. Provide `skill` for one identifier or prefer `skills` for comma/newline-separated multiple identifiers to fetch markdown bodies/details.'\n : 'Catalog discovery only. Cached results expire automatically after 30 seconds, or pass `refresh: true` to force a backend refresh immediately. Provide `skill` for one identifier or prefer `skills` for comma/newline-separated multiple identifiers to fetch markdown bodies/details.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n publishedSkillCount: catalog.publishedSkillCount.toString(),\n globalAssignmentCount: catalog.assignmentCounts.global.toString(),\n projectAssignmentCount: catalog.assignmentCounts.project.toString(),\n userAssignmentCount: catalog.assignmentCounts.user.toString(),\n ignoredSkillCount: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length.toString(),\n },\n };\n }\n\n if (selection.selectedItems.length === 0 && isSingleRequest) {\n await emitFetchOutcome('FETCH_FAILED');\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: 'not_found',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n requestedSkill: requestedSkills[0],\n availableSkills: filteredPublishedSkillsResult.fetchResult.payload.skills.map(toPublishedSkillSummary),\n ignoredPublishedSkills: {\n scopeKey: filteredPublishedSkillsResult.ignoreState.scopeKey,\n count: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length,\n },\n },\n null,\n 2,\n ),\n metadata: {\n status: 'not_found',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n },\n };\n }\n\n let skillDetailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n loadPublishedSkillDetail({\n workspaceResolution: filteredPublishedSkillsResult.workspaceResolution,\n item,\n signal: context.abort,\n useCache: !args.refresh,\n purpose: 'TOOL_FETCH',\n }),\n ),\n );\n\n if (skillDetailResults.some((result) => !result.ok && result.status === 'missing_auth')) {\n try {\n await startLoginCompletion('fetch').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n skillDetailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n loadPublishedSkillDetail({\n workspaceResolution: filteredPublishedSkillsResult.workspaceResolution,\n item,\n signal: context.abort,\n useCache: false,\n purpose: 'TOOL_FETCH',\n }),\n ),\n );\n } catch {\n // Return the original detail failure after the login bootstrap attempt updates snapshot state.\n }\n }\n\n const failedSkillDetail = skillDetailResults.find((result) => !result.ok);\n\n if (failedSkillDetail && !failedSkillDetail.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return failedSkillDetail;\n }\n\n const skillDetails = skillDetailResults.map((result) => {\n if (!result.ok) {\n throw new Error('Published skill detail result unexpectedly missing after success guard.');\n }\n\n return result.detail;\n });\n\n if (isSingleRequest && skillDetails[0]) {\n const detail = skillDetails[0];\n\n context.metadata({\n title: `opencode-wizard published skill: ${detail.artifactName || detail.skillName}`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n skillSlug: detail.skillSlug,\n version: detail.version,\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n workspace: filteredPublishedSkillsResult.fetchResult.payload.workspace,\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n skill: detail,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n skillSlug: detail.skillSlug,\n },\n };\n }\n\n context.metadata({\n title: `opencode-wizard published skills fetch: ${skillDetails.length}`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n requestedCount: requestedSkills.length.toString(),\n matchedCount: skillDetails.length.toString(),\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n workspace: filteredPublishedSkillsResult.fetchResult.payload.workspace,\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n requestedSkills,\n missingSkills: selection.missingIdentifiers,\n skills: skillDetails,\n },\n null,\n 2,\n ),\n metadata: {\n status: selection.missingIdentifiers.length > 0 ? 'partial' : 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n matchedCount: skillDetails.length.toString(),\n },\n };\n };\n\n const executeWizardArtifactCatalogTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactCatalogFetchArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const fetchResult = await fetchWizardArtifactsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n artifactKind,\n context.abort,\n clearPublishedSkillState,\n );\n\n if (!fetchResult.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: fetchResult.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: fetchResult.message,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n },\n null,\n 2,\n ),\n metadata: { status: fetchResult.status, artifactKind, directoryPath, source: fetchResult.source },\n };\n }\n\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = toWizardArtifactCatalog(fetchResult.payload, {\n pluginId: PLUGIN_ID,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n });\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n message:\n 'DESIGN_DOC catalog discovery only. Full DESIGN.md bodies/files require opencode_wizard_artifact_fetch with artifactKind DESIGN_DOC.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n artifactKind,\n artifactCount: catalog.artifactCount.toString(),\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n source: fetchResult.source,\n },\n };\n }\n\n const result = await executePublishedSkillsFetchTool({\n args: { directory: args.directory, refresh: args.refresh },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeWizardArtifactFetchTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactFetchArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n const requestedArtifacts = parseRequestedSkillArgs({ skill: args.artifact, skills: args.artifacts });\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const fetchResult = await fetchWizardArtifactsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n artifactKind,\n context.abort,\n clearPublishedSkillState,\n );\n\n if (!fetchResult.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: fetchResult.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: fetchResult.message,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n },\n null,\n 2,\n ),\n metadata: { status: fetchResult.status, artifactKind, directoryPath, source: fetchResult.source },\n };\n }\n\n const selection = selectWizardArtifacts(fetchResult.payload.artifacts, requestedArtifacts);\n if (requestedArtifacts.length === 0) {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = toWizardArtifactCatalog(fetchResult.payload, {\n pluginId: PLUGIN_ID,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n });\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n message: 'Provide artifact or artifacts to fetch DESIGN.md body/files.',\n },\n null,\n 2,\n ),\n metadata: { status: 'ready', artifactKind, ...toWorkspaceResolutionMetadata(workspaceResolution) },\n };\n }\n\n if (selection.selectedItems.length === 0 && requestedArtifacts.length === 1) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: 'not_found',\n artifactKind,\n requestedArtifact: requestedArtifacts[0],\n availableArtifacts: fetchResult.payload.artifacts.map(toWizardArtifactSummary),\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n },\n null,\n 2,\n ),\n metadata: { status: 'not_found', artifactKind, ...toWorkspaceResolutionMetadata(workspaceResolution) },\n };\n }\n\n const detailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n fetchWizardArtifactDetail({\n worktree: input.worktree,\n config,\n resolution: workspaceResolution,\n artifactKind,\n artifactVersionId: item.artifactVersion.id,\n signal: context.abort,\n onAuthStateChanged: clearPublishedSkillState,\n purpose: 'TOOL_FETCH',\n }),\n ),\n );\n const failedDetail = detailResults.find((result) => !result.ok);\n if (failedDetail && !failedDetail.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: failedDetail.result.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: failedDetail.result.message,\n fetchedAt: failedDetail.result.fetchedAt,\n source: failedDetail.result.source,\n },\n null,\n 2,\n ),\n metadata: { status: failedDetail.result.status, artifactKind, ...toWorkspaceResolutionMetadata(workspaceResolution) },\n };\n }\n\n const details = detailResults.map((result, index) => {\n if (!result.ok) throw new Error('Wizard artifact detail result unexpectedly missing after success guard.');\n return toWizardArtifactDetail({\n ...selection.selectedItems[index]!,\n artifactVersion: result.artifact,\n });\n });\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n workspace: fetchResult.payload.workspace,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n requestedArtifacts,\n missingArtifacts: selection.missingIdentifiers,\n artifacts: details,\n },\n null,\n 2,\n ),\n metadata: {\n status: selection.missingIdentifiers.length > 0 ? 'partial' : 'ready',\n artifactKind,\n matchedCount: details.length.toString(),\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n },\n };\n }\n\n const result = await executePublishedSkillsFetchTool({\n args: {\n skill: args.artifact,\n skills: args.artifacts,\n directory: args.directory,\n refresh: args.refresh,\n },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeStatusTool = async ({ args, context }: { args: PluginStatusArgs; context: ToolExecuteContext }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n let snapshot = await resolvePluginStatusSnapshot({\n worktree: input.worktree,\n directory: requestedDirectory,\n signal: context.abort,\n });\n\n if (snapshot.status === 'missing_auth') {\n try {\n await startLoginCompletion('status').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n snapshot = await resolvePluginStatusSnapshot({\n worktree: input.worktree,\n directory: requestedDirectory,\n signal: context.abort,\n });\n } catch {\n // Keep returning the safe missing-auth snapshot when interactive login is cancelled or fails.\n }\n }\n\n if (snapshot.status === 'ready') {\n await scheduleInteractivePresenceStart();\n }\n\n const metadata = toPluginStatusMetadata(snapshot);\n\n context.metadata({\n title: `opencode-wizard status: ${snapshot.status} / auth ${snapshot.authState.status}`,\n metadata,\n });\n\n return {\n output: JSON.stringify(toAiFacingPluginStatusSnapshot(snapshot), null, 2),\n metadata,\n };\n };\n\n const executePublishedSkillPreferenceTool = async ({\n args,\n context,\n }: {\n args: PublishedSkillPreferenceArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n const requestedSkill = typeof args.skill === 'string' ? args.skill.trim() : '';\n\n const emitPreferenceOutcome = async (\n event: Extract<PluginActionEventType, 'PREFERENCE_SUCCESS' | 'PREFERENCE_FAILED'>,\n ): Promise<void> => {\n await emitActionEventForCurrentSession({\n event,\n directoryPath,\n });\n };\n\n try {\n if (!requestedSkill) {\n throw new Error('Published skill preference tool requires a non-empty skill slug, artifact name, or skill name.');\n }\n\n if (typeof args.action !== 'string') {\n throw new Error('Published skill preference tool requires an action: install, uninstall, ignore, or unignore.');\n }\n\n const action = toPublishedSkillPreferenceAction(args.action);\n const catalogResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: true,\n signal: context.abort,\n });\n\n if (!catalogResult.fetchResult.ok) {\n await emitPreferenceOutcome('PREFERENCE_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult: catalogResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const selectableCatalogSkills: PublishedSkillCatalogItem[] = catalogResult.fetchResult.payload.catalogSkills.map(\n (item) => ({\n ...item,\n assignmentSource: 'CATALOG',\n assignmentType: 'PATH',\n scopePath: '',\n includeChildren: true,\n }),\n );\n const preferenceSelection = selectPublishedSkills(\n {\n ...catalogResult.fetchResult.payload,\n skills: [\n ...catalogResult.fetchResult.payload.skills,\n ...selectableCatalogSkills,\n ...catalogResult.fetchResult.payload.userPreferences.ignoredSkills,\n ],\n },\n [requestedSkill],\n );\n\n const matchedSkill = preferenceSelection.selectedItems[0];\n if (!matchedSkill) {\n throw new Error(`Published skill preference target was not found for identifier: ${requestedSkill}.`);\n }\n\n const skillSlug = matchedSkill.skill.slug;\n const preferenceState =\n action === 'ignore' || action === 'unignore'\n ? await setPublishedSkillIgnored({\n worktree: input.worktree,\n directory: requestedDirectory,\n skillSlug,\n ignored: action === 'ignore',\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project'),\n })\n : await setPublishedSkillInstalled({\n worktree: input.worktree,\n directory: requestedDirectory,\n skillSlug,\n installed: action === 'install',\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project'),\n });\n\n await scheduleInteractivePresenceStart();\n await emitPreferenceOutcome('PREFERENCE_SUCCESS');\n\n const metadata = {\n status: 'updated',\n skillSlug,\n action,\n directoryPath,\n ignoredSkillCount: preferenceState.ignoredSkillSlugs.length.toString(),\n };\n\n context.metadata({\n title: `opencode-wizard published skill preference: ${action} ${skillSlug}`,\n metadata,\n });\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'updated',\n requestedIdentifier: requestedSkill,\n skillSlug,\n action,\n requestedDirectoryPath: directoryPath,\n preferenceState,\n message:\n 'Published skill preference updated through the shared server-backed API; TUI views will reflect this after refresh.',\n },\n null,\n 2,\n ),\n metadata,\n };\n } catch (error) {\n await emitPreferenceOutcome('PREFERENCE_FAILED');\n const message = error instanceof Error ? error.message : 'Unknown published skill preference failure.';\n const metadata = {\n status: 'preference_failed',\n directoryPath,\n };\n\n context.metadata({\n title: 'opencode-wizard published skill preference failed',\n metadata,\n });\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'preference_failed',\n requestedIdentifier: requestedSkill,\n requestedDirectoryPath: directoryPath,\n message,\n guidance:\n 'The preference tool remains available. Check opencode_wizard_status for safe auth/catalog state, rerun fetch/status to bootstrap auth, and retry after catalog status is ready.',\n },\n null,\n 2,\n ),\n metadata,\n };\n }\n };\n\n const executeWizardArtifactPreferenceTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactPreferenceArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n try {\n const action = toPublishedSkillPreferenceAction(args.action);\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const response = await fetchPublishedSkillsGraphQl<{ setWizardArtifactPreference: WizardArtifactUserPreferences }>({\n worktree: input.worktree,\n config,\n query: SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION,\n variables: {\n input: {\n workspaceSlug: workspaceResolution.workspaceSlug,\n repositoryUrl: workspaceResolution.repositoryUrl,\n directoryPath: workspaceResolution.directoryPath,\n artifactKind,\n artifactSlug: args.artifact.trim(),\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project') === 'global' ? 'GLOBAL' : 'WORKSPACE',\n installed: action === 'install' ? true : action === 'uninstall' ? false : undefined,\n ignored: action === 'ignore' ? true : action === 'unignore' ? false : undefined,\n },\n },\n signal: context.abort,\n onAuthStateChanged: clearPublishedSkillState,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: response.result.status,\n artifactKind,\n requestedIdentifier: args.artifact,\n requestedDirectoryPath: directoryPath,\n message: response.result.message,\n fetchedAt: response.result.fetchedAt,\n source: response.result.source,\n },\n null,\n 2,\n ),\n metadata: { status: response.result.status, artifactKind, directoryPath },\n };\n }\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'updated',\n artifactKind,\n requestedIdentifier: args.artifact,\n action,\n requestedDirectoryPath: directoryPath,\n preferenceState: response.data.setWizardArtifactPreference,\n message: 'Wizard artifact preference updated through the generic backend API.',\n },\n null,\n 2,\n ),\n metadata: { status: 'updated', artifactKind, directoryPath, action },\n };\n } catch (error) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'preference_failed',\n artifactKind,\n requestedIdentifier: args.artifact,\n requestedDirectoryPath: directoryPath,\n message: error instanceof Error ? error.message : 'Unknown wizard artifact preference failure.',\n },\n null,\n 2,\n ),\n metadata: { status: 'preference_failed', artifactKind, directoryPath },\n };\n }\n }\n\n const result = await executePublishedSkillPreferenceTool({\n args: {\n skill: args.artifact,\n action: args.action,\n preferenceScope: args.preferenceScope,\n directory: args.directory,\n },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeEditorPublishSkillTool = async ({\n args,\n context,\n }: {\n args: EditorPublishSkillArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedSkillSlug = args.skillSlug.trim();\n if (!requestedSkillSlug) {\n throw new Error('Editor publish requires a non-empty skill slug.');\n }\n\n const authState = await resolveStoredAuthState(input.worktree, config);\n if (!authState || authState.role !== 'EDITOR') {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'forbidden',\n skillSlug: requestedSkillSlug,\n message:\n 'This tool requires EDITOR role. Your current session does not have the required editor permission.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'forbidden',\n role: authState?.role ?? 'none',\n },\n };\n }\n\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const repositoryRoot = workspaceResolution.repositoryRoot;\n\n const skillFilePath = path.resolve(\n repositoryRoot,\n config.rootSkillSeedPath,\n requestedSkillSlug,\n 'SKILL.md',\n );\n\n let markdownContent: string;\n try {\n markdownContent = await fs.readFile(skillFilePath, 'utf8');\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'file_not_found',\n skillSlug: requestedSkillSlug,\n skillFilePath,\n message: `Skill markdown file not found at ${skillFilePath}: ${message}`,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'file_not_found',\n skillSlug: requestedSkillSlug,\n directoryPath,\n },\n };\n }\n\n const response = await fetchPublishedSkillsGraphQl<CreateOrUpdateSkillFromMarkdownResponse>({\n worktree: input.worktree,\n config,\n query: CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION,\n variables: {\n markdownContent,\n },\n signal: context.abort,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'request_failed',\n skillSlug: requestedSkillSlug,\n message: response.result.message,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'request_failed',\n skillSlug: requestedSkillSlug,\n directoryPath,\n },\n };\n }\n\n const payload = response.data.createOrUpdateSkillFromMarkdown;\n\n await scheduleInteractivePresenceStart();\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: payload.success ? 'published' : 'publish_failed',\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId,\n errors: payload.errors,\n },\n null,\n 2,\n ),\n metadata: {\n status: payload.success ? 'published' : 'publish_failed',\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId ?? '',\n directoryPath,\n },\n };\n };\n\n const executeWizardArtifactImportTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactImportArgs;\n context: ToolExecuteContext;\n }) => {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const importPlan = planWizardArtifactImport({\n artifactKind: args.artifactKind,\n source: args.source,\n slug: args.slug,\n skill: args.skill,\n });\n\n if (!authState || authState.role !== 'EDITOR') {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'forbidden',\n artifactKind: importPlan.artifactKind,\n source: importPlan.source,\n message: 'This tool requires EDITOR role. Your current session does not have the required editor permission.',\n },\n null,\n 2,\n ),\n metadata: { status: 'forbidden', role: authState?.role ?? 'none' },\n };\n }\n\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n let importSource;\n try {\n importSource = await fetchWizardArtifactImportSource({\n artifactKind: args.artifactKind,\n source: args.source,\n slug: args.slug,\n skill: args.skill,\n signal: context.abort,\n });\n } catch (error) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'source_fetch_failed',\n artifactKind: importPlan.artifactKind,\n source: importPlan.source,\n candidateUrls: importPlan.candidateUrls,\n message: error instanceof Error ? error.message : 'Unknown import source fetch failure.',\n },\n null,\n 2,\n ),\n metadata: { status: 'source_fetch_failed', artifactKind: importPlan.artifactKind, directoryPath },\n };\n }\n\n const response = await fetchPublishedSkillsGraphQl<ImportWizardArtifactSnapshotResponse>({\n worktree: input.worktree,\n config,\n query: IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION,\n variables: {\n input: {\n artifactKind: importSource.artifactKind,\n slug: importSource.slug,\n name: args.name,\n summary: args.summary,\n markdownContent: importSource.markdownContent,\n source: importSource.fetchedUrl,\n sourceSnapshotRef: importSource.sourceRef,\n },\n },\n signal: context.abort,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'request_failed',\n artifactKind: importSource.artifactKind,\n source: importSource.source,\n fetchedUrl: importSource.fetchedUrl,\n message: response.result.message,\n },\n null,\n 2,\n ),\n metadata: { status: 'request_failed', artifactKind: importSource.artifactKind, directoryPath },\n };\n }\n\n const payload = response.data.importWizardArtifactSnapshot;\n await scheduleInteractivePresenceStart();\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: payload.success ? 'imported' : 'import_failed',\n artifactKind: importSource.artifactKind,\n artifactSlug: payload.artifactSlug,\n artifactVersionId: payload.artifactVersionId,\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId,\n source: importSource.source,\n fetchedUrl: importSource.fetchedUrl,\n sourceSnapshotRef: importSource.sourceRef,\n errors: payload.errors,\n message: 'Imported backend artifact is now the wizard/plugin runtime authority; no project files were written.',\n },\n null,\n 2,\n ),\n metadata: {\n status: payload.success ? 'imported' : 'import_failed',\n artifactKind: importSource.artifactKind,\n artifactSlug: payload.artifactSlug ?? '',\n artifactVersionId: payload.artifactVersionId ?? '',\n directoryPath,\n },\n };\n };\n\n const role = initialAuthState?.role ?? null;\n const isEditor = role === 'EDITOR';\n const { sharedTools, editorOnlyTools } = createPublishedSkillToolDefinitions(tool, {\n fetchPublishedSkills: (args, context) => executePublishedSkillsFetchTool({ args, context }),\n fetchWizardArtifactCatalog: (args, context) => executeWizardArtifactCatalogTool({ args, context }),\n fetchWizardArtifacts: (args, context) => executeWizardArtifactFetchTool({ args, context }),\n updatePublishedSkillPreference: (args, context) => executePublishedSkillPreferenceTool({ args, context }),\n updateWizardArtifactPreference: (args, context) => executeWizardArtifactPreferenceTool({ args, context }),\n getStatus: (args, context) => executeStatusTool({ args, context }),\n publishEditorSkill: (args, context) => executeEditorPublishSkillTool({ args, context }),\n importWizardArtifact: (args, context) => executeWizardArtifactImportTool({ args, context }),\n });\n\n return {\n tool: { ...sharedTools, ...(isEditor ? editorOnlyTools : {}) },\n 'experimental.chat.system.transform': async (_hookInput, output) => {\n let publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: input.directory,\n useCache: true,\n signal: AbortSignal.timeout(5_000),\n });\n\n if (!publishedSkillsResult.fetchResult.ok && publishedSkillsResult.fetchResult.status === 'missing_auth') {\n try {\n await startLoginCompletion('status').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: input.directory,\n useCache: false,\n signal: AbortSignal.timeout(5_000),\n });\n } catch {\n const loginMessage = loginBootstrap.snapshot.message\n ? ` Last login status: ${loginBootstrap.snapshot.message}`\n : '';\n output.system.push(\n `opencode-wizard plugin stored auth is missing, expired, or rejected. Startup browser login was started but did not complete successfully.${loginMessage} Use opencode_wizard_status or opencode_wizard_published_skills_fetch to retry authentication when published skills are needed. No tokens are exposed.`,\n );\n return;\n }\n\n if (!publishedSkillsResult.fetchResult.ok) {\n output.system.push(\n `opencode-wizard plugin startup login completed, but published skills are still unavailable: ${publishedSkillsResult.fetchResult.message} No tokens are exposed.`,\n );\n return;\n }\n }\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n\n const filteredPublishedSkillsResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n const systemNote = buildSystemNote(filteredPublishedSkillsResult, config, []);\n\n if (!systemNote) return;\n\n output.system.push(systemNote);\n },\n };\n};\n\nexport default {\n id: PLUGIN_ID,\n server: OpencodeWizardSkillsPlugin,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fs","path","CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION","IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION","SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION","createPublishedSkillToolDefinitions","resolveAvailableTools","resolveStoredAuthState","toAuthState","writeAuthState","resolveConfig","createPluginSession","openBrowser","startLoginFlow","fetchPublishedSkillDetail","fetchPublishedSkillsCatalog","fetchPublishedSkillsGraphQl","fetchWizardArtifactDetail","fetchWizardArtifactsCatalog","maybePersistWorkspaceSlugFromCatalog","normalizeAbsolutePath","emitPluginActionEvent","emitPresenceEvent","normalizeDirectoryArg","normalizeRepositoryPath","resolveWorkspace","toWorkspaceResolutionMetadata","toWorkspaceResolutionOutput","parseRequestedSkillArgs","selectPublishedSkills","toPublishedSkillDetail","toPublishedSkillSummary","toWizardArtifactCatalog","toWizardArtifactDetail","toWizardArtifactSummary","CACHE_TTL_MS","LOGIN_TIMEOUT_MS","OIDC_CALLBACK_URL","PLUGIN_ID","PRESENCE_SHUTDOWN_SIGNALS","PRESENCE_SIGNAL_EXIT_CODES","NATIVE_SKILLS_URL_COMPATIBILITY","buildSystemNote","filterIgnoredPublishedSkills","resolvePluginStatusSnapshot","toAiFacingPluginStatusSnapshot","toFetchFailureOutput","toPluginStatusMetadata","toPublishedSkillCatalog","createIdleLoginBootstrapSnapshot","fetchWizardArtifactImportSource","planWizardArtifactImport","getCatalogCacheKey","resolvePublishedSkillPreferenceCacheContext","setPublishedSkillIgnored","setPublishedSkillInstalled","toPublishedSkillPreferenceAction","toPublishedSkillPreferenceScope","toPluginAuthStateSummary","importOpencodePluginModule","Function","resolvePluginStatusSnapshotWithAuthBootstrap","getDetailCacheKey","catalogCacheKey","skillVersionId","revision","JSON","stringify","getPublishedSkillRevision","item","publishedArtifact","checksum","updatedAtCursor","publishedAt","getCatalogCursor","items","catalogItems","map","assignmentSource","assignmentType","scopePath","includeChildren","sort","join","getWizardArtifactRevision","artifactVersion","getWizardArtifactCatalogCursor","toWizardArtifactCatalogCursorItems","getDetailInflightKey","purpose","SUPPORTED_WIZARD_ARTIFACT_KINDS","DESIGN_DOC_UNSUPPORTED_MESSAGE","toWizardArtifactKind","value","normalized","trim","toUpperCase","replace","buildUnsupportedWizardArtifactOutput","artifactKind","directoryPath","output","pluginId","runtimeMode","status","supportedArtifactKinds","requestedDirectoryPath","message","metadata","withWizardArtifactEnvelope","result","outputResult","parse","compatibilityAliases","matchesWizardArtifactIdentifier","identifier","normalizedIdentifier","toLowerCase","artifact","slug","name","frontmatterName","id","selectWizardArtifacts","identifiers","selectedItems","filter","some","missingIdentifiers","OpencodeWizardSkillsPlugin","input","tool","config","worktree","workspacePath","cache","Map","catalogInflight","detailCache","wizardArtifactDetailCache","detailInflight","wizardArtifactDetailInflight","initialAuthState","loginBootstrap","promise","snapshot","lastAuthenticatedAuthState","didEmitStart","didScheduleStop","presenceStartPromise","presenceStopPromise","lastInteractiveDirectoryPath","resolveActionAuthState","storedAuthState","emitActionEventForCurrentSession","event","authState","schedulePresenceStart","Promise","resolve","all","undefined","then","schedulePresenceStop","catch","scheduleInteractivePresenceStart","process","once","shutdownSignal","finally","exit","clearPublishedSkillState","clear","persistAuthState","session","authStatePath","startLoginCompletion","trigger","startedAt","Date","toISOString","expiresAt","browserUrl","browserOpenError","email","loginPromise","loginSignal","AbortSignal","timeout","loginStart","callbackPayload","callbackPromise","Error","state","expectedState","pluginSession","code","codeVerifier","redirectUri","signal","error","closeCallbackServer","loadPublishedSkillCatalog","directory","useCache","workspaceResolution","preferenceContext","cacheKey","cached","get","now","fetchResult","source","inflight","requestPromise","resolution","set","cursor","ok","payload","skills","catalogSkills","fetchedAt","delete","loadPublishedSkillDetail","itemRevision","skillVersion","inflightKey","detail","detailResult","onAuthStateChanged","requestedSkillVersionId","loadWizardArtifactDetail","inflightResult","artifactVersionId","executePublishedSkillsFetchTool","args","context","requestedDirectory","requestedSkills","fetchActionDirectoryPath","emitFetchOutcome","publishedSkillsResult","refresh","abort","loginBootstrapSnapshot","filteredPublishedSkillsResult","selection","isSingleRequest","length","catalog","availableTools","role","title","publishedSkillCount","toString","globalAssignmentCount","assignmentCounts","global","projectAssignmentCount","project","userAssignmentCount","user","ignoredSkillCount","ignoreState","ignoredSkillSlugs","ignoredPublishedSkills","scopeKey","count","cacheCursor","cacheTtlMs","requestedSkill","availableSkills","skillDetailResults","failedSkillDetail","find","skillDetails","artifactName","skillName","skillSlug","version","workspace","skill","requestedCount","matchedCount","missingSkills","executeWizardArtifactCatalogTool","artifacts","catalogArtifacts","artifactCount","executeWizardArtifactFetchTool","requestedArtifacts","requestedArtifact","availableArtifacts","detailResults","failedDetail","details","index","missingArtifacts","executeStatusTool","executePublishedSkillPreferenceTool","emitPreferenceOutcome","action","catalogResult","selectableCatalogSkills","preferenceSelection","userPreferences","ignoredSkills","matchedSkill","preferenceState","ignored","preferenceScope","installed","requestedIdentifier","guidance","executeWizardArtifactPreferenceTool","response","query","variables","workspaceSlug","repositoryUrl","artifactSlug","data","setWizardArtifactPreference","executeEditorCreateOrUpdateSkillMarkdown","markdownContent","requestedSkillSlug","admin","createOrUpdateSkillFromMarkdown","success","errors","executeEditorCreateOrUpdateSkillTool","executeEditorPublishSkillTool","repositoryRoot","skillFilePath","rootSkillSeedPath","readFile","executeWizardArtifactImportTool","importPlan","importSource","candidateUrls","summary","fetchedUrl","sourceSnapshotRef","sourceRef","importWizardArtifactSnapshot","sharedTools","editorOnlyTools","fetchPublishedSkills","fetchWizardArtifactCatalog","fetchWizardArtifacts","updatePublishedSkillPreference","updateWizardArtifactPreference","getStatus","createOrUpdateEditorSkill","publishEditorSkill","importWizardArtifact","experimental.chat.system.transform","_hookInput","loginMessage","system","push","systemNote","server"],"sources":["../../src/server/runtime.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION,\n IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION,\n SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION,\n} from '../graphql-operations.js';\nimport {\n createPublishedSkillToolDefinitions,\n resolveAvailableTools,\n type EditorCreateOrUpdateSkillArgs,\n type EditorPublishSkillArgs,\n type PluginStatusArgs,\n type PublishedSkillFetchArgs,\n type PublishedSkillPreferenceArgs,\n type ToolExecuteContext,\n type WizardArtifactCatalogFetchArgs,\n type WizardArtifactFetchArgs,\n type WizardArtifactKind,\n type WizardArtifactImportArgs,\n type WizardArtifactPreferenceArgs,\n} from '../plugin-tools.js';\nimport {\n resolveStoredAuthState,\n toAuthState,\n writeAuthState,\n} from './auth-store.js';\nimport { resolveConfig } from './config.js';\nexport { resolveConfig } from './config.js';\nimport { createPluginSession, openBrowser, startLoginFlow } from './auth-flow.js';\nimport {\n fetchPublishedSkillDetail,\n fetchPublishedSkillsCatalog,\n fetchPublishedSkillsGraphQl,\n fetchWizardArtifactDetail,\n fetchWizardArtifactsCatalog,\n maybePersistWorkspaceSlugFromCatalog,\n} from './client.js';\nimport { normalizeAbsolutePath } from './path-utils.js';\nimport { emitPluginActionEvent, emitPresenceEvent } from './presence.js';\nimport {\n normalizeDirectoryArg,\n normalizeRepositoryPath,\n resolveWorkspace,\n toWorkspaceResolutionMetadata,\n toWorkspaceResolutionOutput,\n} from './workspace.js';\nimport {\n buildSkillMarkdown,\n parseRequestedSkillArgs,\n selectPublishedSkills,\n toPublishedSkillDetail,\n toPublishedSkillSummary,\n toWizardArtifactCatalog,\n toWizardArtifactDetail,\n toWizardArtifactSummary,\n} from '../published-skills-transform.js';\nimport {\n CACHE_TTL_MS,\n LOGIN_TIMEOUT_MS,\n NATIVE_SKILLS_URL_COMPATIBILITY,\n OIDC_CALLBACK_URL,\n PLUGIN_ID,\n PRESENCE_SHUTDOWN_SIGNALS,\n PRESENCE_SIGNAL_EXIT_CODES,\n type NativeSkillsUrlCompatibility,\n} from './constants.js';\nexport { PLUGIN_ID, NATIVE_SKILLS_URL_COMPATIBILITY, type NativeSkillsUrlCompatibility } from './constants.js';\nimport {\n buildSystemNote,\n filterIgnoredPublishedSkills,\n resolvePluginStatusSnapshot,\n toAiFacingPluginStatusSnapshot,\n toFetchFailureOutput,\n toPluginAuthStateSummary,\n toPluginStatusMetadata,\n toPublishedSkillCatalog,\n} from './status.js';\nimport { createIdleLoginBootstrapSnapshot } from './auth-bootstrap.js';\nimport { fetchWizardArtifactImportSource, planWizardArtifactImport } from './import-sources.js';\nimport {\n getCatalogCacheKey,\n resolvePublishedSkillPreferenceCacheContext,\n setPublishedSkillIgnored,\n setPublishedSkillInstalled,\n toPublishedSkillPreferenceAction,\n toPublishedSkillPreferenceScope,\n} from './preferences.js';\nexport {\n buildSystemNote,\n resolvePluginStatusSnapshot,\n toPluginAuthStateSummary,\n toPublishedSkillCatalog,\n} from './status.js';\nimport type {\n AuthState,\n CacheEntry,\n CreateOrUpdateSkillFromMarkdownResponse,\n DetailCacheEntry,\n FetchResult,\n FilteredPublishedSkillsResult,\n LoginBootstrapTrigger,\n ImportWizardArtifactSnapshotResponse,\n OidcLoginStart,\n OpencodePluginModule,\n OpencodePluginServer,\n PluginActionEventType,\n PluginAuthStateSummary,\n PluginSessionResponse,\n PresenceEventType,\n PublishedSkillArtifactDetailPurpose,\n PublishedSkillCatalogItem,\n PublishedSkillCatalogPayload,\n PublishedSkillDetailResult,\n PublishedSkillInstallableCatalogItem,\n PublishedSkillsResult,\n ResolvedConfig,\n WorkspaceResolution,\n WizardArtifactCatalogItem,\n WizardArtifactDetailCacheEntry,\n WizardArtifactUserPreferences,\n} from './types.js';\nexport type {\n PluginAuthStateSummary,\n PluginStatusSnapshot,\n PublishedSkillCatalogItem,\n PublishedSkillCatalogPayload,\n PublishedSkillDetailItem,\n PublishedSkillInstallableCatalogItem,\n} from './types.js';\n\nconst importOpencodePluginModule = new Function('specifier', 'return import(specifier)') as (\n specifier: string,\n) => Promise<OpencodePluginModule>;\nexport { resolvePluginStatusSnapshotWithAuthBootstrap } from './auth-bootstrap.js';\nexport { setPublishedSkillIgnored, setPublishedSkillInstalled } from './preferences.js';\n\nconst getDetailCacheKey = (catalogCacheKey: string, skillVersionId: string, revision: string): string => {\n return JSON.stringify([catalogCacheKey, skillVersionId, revision]);\n};\n\nconst getPublishedSkillRevision = (item: PublishedSkillCatalogItem): string => {\n return item.publishedArtifact.revision ?? `${item.publishedArtifact.checksum}:${item.publishedArtifact.updatedAtCursor ?? item.publishedArtifact.publishedAt}`;\n};\n\nconst getCatalogCursor = (items: PublishedSkillCatalogItem[], catalogItems: PublishedSkillInstallableCatalogItem[]): string => {\n return [...items.map(getPublishedSkillRevision), ...catalogItems.map((item) => getPublishedSkillRevision({ ...item, assignmentSource: 'CATALOG', assignmentType: 'PATH', scopePath: '', includeChildren: true }))]\n .sort()\n .join('|');\n};\n\nconst getWizardArtifactRevision = (item: WizardArtifactCatalogItem): string => {\n return (\n item.artifactVersion.revision ??\n `${item.artifactVersion.checksum}:${item.artifactVersion.updatedAtCursor ?? item.artifactVersion.publishedAt ?? 'unpublished'}`\n );\n};\n\nconst getWizardArtifactCatalogCursor = (items: WizardArtifactCatalogItem[], catalogItems: WizardArtifactCatalogItem[]): string => {\n return [...items.map(getWizardArtifactRevision), ...catalogItems.map(getWizardArtifactRevision)].sort().join('|');\n};\n\nconst toWizardArtifactCatalogCursorItems = (items: Array<Pick<WizardArtifactCatalogItem, 'artifact' | 'artifactVersion'>>): WizardArtifactCatalogItem[] =>\n items.map((item) => ({\n ...item,\n assignmentSource: 'CATALOG',\n assignmentType: 'PATH',\n scopePath: '',\n includeChildren: true,\n }));\n\nconst getDetailInflightKey = (\n catalogCacheKey: string,\n skillVersionId: string,\n purpose: PublishedSkillArtifactDetailPurpose,\n): string => {\n return JSON.stringify([catalogCacheKey, skillVersionId, purpose]);\n};\n\nconst SUPPORTED_WIZARD_ARTIFACT_KINDS: WizardArtifactKind[] = ['SKILL', 'DESIGN_DOC'];\nconst DESIGN_DOC_UNSUPPORTED_MESSAGE =\n 'DESIGN_DOC is supported by generic wizard artifact persistence; use catalog/detail tools for assigned or installed documents.';\n\nconst toWizardArtifactKind = (value: string | undefined): WizardArtifactKind | null => {\n if (!value) return 'SKILL';\n const normalized = value.trim().toUpperCase().replace(/[-\\s]+/gu, '_');\n if (normalized === 'SKILL') return 'SKILL';\n if (normalized === 'DESIGN_DOC') return 'DESIGN_DOC';\n return null;\n};\n\nconst buildUnsupportedWizardArtifactOutput = ({\n artifactKind,\n directoryPath,\n}: {\n artifactKind: WizardArtifactKind | string;\n directoryPath: string;\n}) => ({\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: artifactKind === 'DESIGN_DOC' ? 'unsupported' : 'bad_artifact_kind',\n artifactKind,\n supportedArtifactKinds: SUPPORTED_WIZARD_ARTIFACT_KINDS,\n requestedDirectoryPath: directoryPath,\n message:\n artifactKind === 'DESIGN_DOC'\n ? DESIGN_DOC_UNSUPPORTED_MESSAGE\n : 'Unsupported wizard artifact kind. Use SKILL or DESIGN_DOC.',\n },\n null,\n 2,\n ),\n metadata: {\n status: artifactKind === 'DESIGN_DOC' ? 'unsupported' : 'bad_artifact_kind',\n artifactKind,\n directoryPath,\n },\n});\n\nconst withWizardArtifactEnvelope = (result: unknown, artifactKind: WizardArtifactKind): unknown => {\n if (!result || typeof result !== 'object' || !('output' in result)) return result;\n const outputResult = result as { output: unknown; metadata?: Record<string, string> };\n if (typeof outputResult.output !== 'string') return result;\n\n try {\n return {\n ...outputResult,\n output: JSON.stringify(\n {\n ...JSON.parse(outputResult.output),\n artifactKind,\n supportedArtifactKinds: SUPPORTED_WIZARD_ARTIFACT_KINDS,\n compatibilityAliases: [\n 'opencode_wizard_published_skills_fetch',\n 'opencode_wizard_published_skill_preference_set',\n ],\n },\n null,\n 2,\n ),\n metadata: {\n ...(outputResult.metadata ?? {}),\n artifactKind,\n },\n };\n } catch {\n return result;\n }\n};\n\nconst matchesWizardArtifactIdentifier = (item: WizardArtifactCatalogItem, identifier: string): boolean => {\n const normalizedIdentifier = identifier.trim().toLowerCase();\n if (!normalizedIdentifier) return false;\n if (item.artifact.slug.toLowerCase() === normalizedIdentifier) return true;\n if (item.artifact.name.toLowerCase() === normalizedIdentifier) return true;\n if (item.artifactVersion.frontmatterName.toLowerCase() === normalizedIdentifier) return true;\n return item.artifactVersion.id.toLowerCase() === normalizedIdentifier;\n};\n\nconst selectWizardArtifacts = (items: WizardArtifactCatalogItem[], identifiers: string[]) => {\n const selectedItems = items.filter((item) =>\n identifiers.some((identifier) => matchesWizardArtifactIdentifier(item, identifier)),\n );\n const missingIdentifiers = identifiers.filter(\n (identifier) => !selectedItems.some((item) => matchesWizardArtifactIdentifier(item, identifier)),\n );\n return { selectedItems, missingIdentifiers };\n};\n\nexport const OpencodeWizardSkillsPlugin: OpencodePluginServer = async (input) => {\n const { tool } = await importOpencodePluginModule('@opencode-ai/plugin');\n const config = await resolveConfig(input.worktree);\n const workspacePath = normalizeAbsolutePath(input.worktree);\n const cache = new Map<string, CacheEntry>();\n const catalogInflight = new Map<string, Promise<PublishedSkillsResult>>();\n const detailCache = new Map<string, DetailCacheEntry>();\n const wizardArtifactDetailCache = new Map<string, WizardArtifactDetailCacheEntry>();\n const detailInflight = new Map<string, Promise<PublishedSkillDetailResult>>();\n const wizardArtifactDetailInflight = new Map<string, ReturnType<typeof fetchWizardArtifactDetail>>();\n const initialAuthState = await resolveStoredAuthState(input.worktree, config);\n const loginBootstrap = {\n promise: null as Promise<AuthState> | null,\n snapshot: createIdleLoginBootstrapSnapshot(),\n };\n let lastAuthenticatedAuthState: AuthState | null = initialAuthState;\n let didEmitStart = false;\n let didScheduleStop = false;\n let presenceStartPromise: Promise<void> | null = null;\n let presenceStopPromise: Promise<void> | null = null;\n let lastInteractiveDirectoryPath: string | null = null;\n\n const resolveActionAuthState = async (): Promise<AuthState | null> => {\n const storedAuthState = await resolveStoredAuthState(input.worktree, config);\n if (storedAuthState) return storedAuthState;\n return lastAuthenticatedAuthState;\n };\n\n const emitActionEventForCurrentSession = async ({\n event,\n authState,\n directoryPath,\n }: {\n event: PluginActionEventType;\n authState?: AuthState | null;\n directoryPath?: string;\n }): Promise<void> => {\n await emitPluginActionEvent({\n config,\n authState: authState ?? (await resolveActionAuthState()),\n event,\n workspacePath,\n directoryPath,\n });\n };\n\n const schedulePresenceStart = (authState: AuthState): Promise<void> => {\n lastAuthenticatedAuthState = authState;\n if (didEmitStart) {\n return presenceStartPromise ?? Promise.resolve();\n }\n\n didEmitStart = true;\n presenceStartPromise = Promise.all([\n emitPresenceEvent({\n config,\n authState,\n event: 'START',\n workspacePath,\n }),\n emitActionEventForCurrentSession({\n event: 'START',\n authState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n }),\n ]).then(() => undefined);\n return presenceStartPromise;\n };\n\n const schedulePresenceStop = (): Promise<void> => {\n if (didScheduleStop) {\n return presenceStopPromise ?? Promise.resolve();\n }\n\n didScheduleStop = true;\n if (!didEmitStart || !lastAuthenticatedAuthState) {\n presenceStopPromise = Promise.resolve();\n return presenceStopPromise;\n }\n\n presenceStopPromise = (async () => {\n await presenceStartPromise?.catch(() => undefined);\n await Promise.all([\n emitPresenceEvent({\n config,\n authState: lastAuthenticatedAuthState,\n event: 'STOP',\n workspacePath,\n }),\n emitActionEventForCurrentSession({\n event: 'STOP',\n authState: lastAuthenticatedAuthState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n }),\n ]);\n })();\n\n return presenceStopPromise;\n };\n\n const scheduleInteractivePresenceStart = async (): Promise<void> => {\n const authState = await resolveStoredAuthState(input.worktree, config);\n if (!authState) return;\n await schedulePresenceStart(authState);\n };\n\n process.once('beforeExit', () => {\n void schedulePresenceStop();\n });\n\n for (const shutdownSignal of PRESENCE_SHUTDOWN_SIGNALS) {\n try {\n process.once(shutdownSignal, () => {\n void schedulePresenceStop().finally(() => {\n process.exit(PRESENCE_SIGNAL_EXIT_CODES[shutdownSignal]);\n });\n });\n } catch {\n continue;\n }\n }\n\n const clearPublishedSkillState = () => {\n cache.clear();\n catalogInflight.clear();\n detailCache.clear();\n wizardArtifactDetailCache.clear();\n detailInflight.clear();\n wizardArtifactDetailInflight.clear();\n };\n\n const persistAuthState = async (session: PluginSessionResponse['session']): Promise<AuthState> => {\n const authState = toAuthState(session);\n await writeAuthState(config.authStatePath, authState);\n clearPublishedSkillState();\n return authState;\n };\n\n const startLoginCompletion = (trigger: LoginBootstrapTrigger): Promise<AuthState> => {\n if (loginBootstrap.promise) {\n return loginBootstrap.promise;\n }\n\n const startedAt = new Date().toISOString();\n\n loginBootstrap.snapshot = {\n status: 'starting',\n trigger,\n startedAt,\n expiresAt: null,\n browserUrl: null,\n browserOpenError: null,\n email: null,\n message: null,\n };\n\n const loginPromise = (async () => {\n const loginSignal = AbortSignal.timeout(LOGIN_TIMEOUT_MS);\n let loginStart: OidcLoginStart | null = null;\n\n try {\n loginStart = await startLoginFlow(loginSignal);\n const browserOpenError = await openBrowser(loginStart.browserUrl);\n\n loginBootstrap.snapshot = {\n status: 'pending',\n trigger,\n startedAt,\n expiresAt: loginStart.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: null,\n message: browserOpenError\n ? `Automatic browser open failed. Open ${loginStart.browserUrl} manually.`\n : `Browser login started for published skill ${trigger}.`,\n };\n\n const callbackPayload = await loginStart.callbackPromise;\n\n if (callbackPayload.status === 'error') {\n throw new Error(callbackPayload.message);\n }\n\n if (callbackPayload.state !== loginStart.expectedState) {\n throw new Error('OAuth callback state did not match the original login request.');\n }\n\n loginBootstrap.snapshot = {\n status: 'pending',\n trigger,\n startedAt,\n expiresAt: loginStart.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: null,\n message: 'OAuth callback received. Finalizing backend session exchange.',\n };\n\n const pluginSession = await createPluginSession({\n code: callbackPayload.code,\n codeVerifier: loginStart.codeVerifier,\n redirectUri: OIDC_CALLBACK_URL,\n config,\n signal: loginSignal,\n });\n const authState = await persistAuthState(pluginSession);\n await emitActionEventForCurrentSession({\n event: 'LOGIN_SUCCESS',\n authState,\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n });\n\n loginBootstrap.snapshot = {\n status: 'authenticated',\n trigger,\n startedAt,\n expiresAt: authState.expiresAt,\n browserUrl: loginStart.browserUrl,\n browserOpenError,\n email: authState.email,\n message: `Browser login completed successfully for published skill ${trigger}.`,\n };\n\n return authState;\n } catch (error) {\n await emitActionEventForCurrentSession({\n event: 'LOGIN_FAILED',\n directoryPath: lastInteractiveDirectoryPath ?? undefined,\n });\n loginBootstrap.snapshot = {\n status: 'failed',\n trigger,\n startedAt,\n expiresAt: loginBootstrap.snapshot.expiresAt,\n browserUrl: loginBootstrap.snapshot.browserUrl,\n browserOpenError: loginBootstrap.snapshot.browserOpenError,\n email: null,\n message: error instanceof Error ? error.message : 'Browser login failed.',\n };\n throw error;\n } finally {\n await loginStart?.closeCallbackServer().catch(() => undefined);\n loginBootstrap.promise = null;\n }\n })();\n\n loginBootstrap.promise = loginPromise;\n return loginPromise;\n };\n\n const loadPublishedSkillCatalog = async ({\n directory,\n useCache,\n signal,\n }: {\n directory: string;\n useCache: boolean;\n signal: AbortSignal;\n }): Promise<PublishedSkillsResult> => {\n const workspaceResolution = await resolveWorkspace({\n config,\n directory,\n });\n const directoryPath = workspaceResolution.directoryPath;\n const preferenceContext = await resolvePublishedSkillPreferenceCacheContext(config);\n const cacheKey = getCatalogCacheKey(workspaceResolution, preferenceContext);\n const cached = cache.get(cacheKey);\n\n if (useCache && cached && cached.expiresAt > Date.now()) {\n return {\n directoryPath,\n workspaceResolution,\n fetchResult: {\n ...cached.result,\n source: 'cache',\n },\n };\n }\n\n const inflight = catalogInflight.get(cacheKey);\n if (inflight) {\n return inflight;\n }\n\n const requestPromise = (async (): Promise<PublishedSkillsResult> => {\n const fetchResult = await fetchPublishedSkillsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n signal,\n clearPublishedSkillState,\n );\n\n await maybePersistWorkspaceSlugFromCatalog({\n config,\n resolution: workspaceResolution,\n fetchResult,\n });\n\n cache.set(cacheKey, {\n result: fetchResult,\n expiresAt: Date.now() + CACHE_TTL_MS,\n cursor: fetchResult.ok ? getCatalogCursor(fetchResult.payload.skills, fetchResult.payload.catalogSkills) : fetchResult.fetchedAt,\n });\n\n return {\n directoryPath,\n workspaceResolution,\n fetchResult,\n };\n })();\n\n catalogInflight.set(cacheKey, requestPromise);\n\n try {\n return await requestPromise;\n } finally {\n catalogInflight.delete(cacheKey);\n }\n };\n\n const loadPublishedSkillDetail = async ({\n workspaceResolution,\n item,\n signal,\n useCache,\n purpose,\n }: {\n workspaceResolution: WorkspaceResolution;\n item: PublishedSkillCatalogItem;\n signal: AbortSignal;\n useCache: boolean;\n purpose: PublishedSkillArtifactDetailPurpose;\n }): Promise<PublishedSkillDetailResult> => {\n const directoryPath = workspaceResolution.directoryPath;\n const preferenceContext = await resolvePublishedSkillPreferenceCacheContext(config);\n const catalogCacheKey = getCatalogCacheKey(workspaceResolution, preferenceContext);\n const itemRevision = getPublishedSkillRevision(item);\n const cacheKey = getDetailCacheKey(catalogCacheKey, item.skillVersion.id, itemRevision);\n const inflightKey = getDetailInflightKey(catalogCacheKey, item.skillVersion.id, purpose);\n const cached = detailCache.get(cacheKey);\n\n if (useCache && cached && cached.expiresAt > Date.now()) {\n return {\n ok: true,\n detail: toPublishedSkillDetail({\n ...item,\n publishedArtifact: cached.artifact,\n }),\n };\n }\n\n const inflight = detailInflight.get(inflightKey);\n if (inflight) {\n return inflight;\n }\n\n const requestPromise = (async (): Promise<PublishedSkillDetailResult> => {\n const detailResult = await fetchPublishedSkillDetail({\n worktree: input.worktree,\n config,\n resolution: workspaceResolution,\n skillVersionId: item.skillVersion.id,\n signal,\n onAuthStateChanged: clearPublishedSkillState,\n purpose,\n });\n\n if (!detailResult.ok) {\n return {\n ok: false,\n status: detailResult.result.status,\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: detailResult.result.status,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n requestedSkillVersionId: item.skillVersion.id,\n message: detailResult.result.message,\n fetchedAt: detailResult.result.fetchedAt,\n source: detailResult.result.source,\n },\n null,\n 2,\n ),\n metadata: {\n status: detailResult.result.status,\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n source: detailResult.result.source,\n },\n };\n }\n\n detailCache.set(cacheKey, {\n artifact: detailResult.artifact,\n expiresAt: Date.now() + CACHE_TTL_MS,\n revision: itemRevision,\n });\n\n return {\n ok: true,\n detail: toPublishedSkillDetail({\n ...item,\n publishedArtifact: detailResult.artifact,\n }),\n };\n })();\n\n detailInflight.set(inflightKey, requestPromise);\n\n try {\n return await requestPromise;\n } finally {\n detailInflight.delete(inflightKey);\n }\n };\n\n const loadWizardArtifactDetail = async ({\n workspaceResolution,\n item,\n signal,\n useCache,\n purpose,\n artifactKind,\n }: {\n workspaceResolution: WorkspaceResolution;\n item: WizardArtifactCatalogItem;\n signal: AbortSignal;\n useCache: boolean;\n purpose: PublishedSkillArtifactDetailPurpose;\n artifactKind: WizardArtifactKind;\n }) => {\n const preferenceContext = await resolvePublishedSkillPreferenceCacheContext(config);\n const catalogCacheKey = getCatalogCacheKey(workspaceResolution, preferenceContext);\n const itemRevision = getWizardArtifactRevision(item);\n const cacheKey = getDetailCacheKey(catalogCacheKey, item.artifactVersion.id, itemRevision);\n const inflightKey = JSON.stringify([catalogCacheKey, item.artifactVersion.id, itemRevision, purpose]);\n const cached = wizardArtifactDetailCache.get(cacheKey);\n\n if (useCache && cached && cached.expiresAt > Date.now()) {\n return { ok: true as const, artifact: cached.artifact };\n }\n\n const inflight = wizardArtifactDetailInflight.get(inflightKey);\n if (useCache && inflight) {\n const inflightResult = await inflight;\n if (!inflightResult.ok) return inflightResult;\n return { ok: true as const, artifact: inflightResult.artifact };\n }\n\n const requestPromise = fetchWizardArtifactDetail({\n worktree: input.worktree,\n config,\n resolution: workspaceResolution,\n artifactKind,\n artifactVersionId: item.artifactVersion.id,\n signal,\n onAuthStateChanged: clearPublishedSkillState,\n purpose,\n });\n\n wizardArtifactDetailInflight.set(inflightKey, requestPromise);\n\n try {\n const detailResult = await requestPromise;\n if (!detailResult.ok) return detailResult;\n\n wizardArtifactDetailCache.set(cacheKey, {\n artifact: detailResult.artifact,\n expiresAt: Date.now() + CACHE_TTL_MS,\n revision: itemRevision,\n });\n\n return { ok: true as const, artifact: detailResult.artifact };\n } finally {\n wizardArtifactDetailInflight.delete(inflightKey);\n }\n };\n\n const executePublishedSkillsFetchTool = async ({\n args,\n context,\n }: {\n args: PublishedSkillFetchArgs;\n context: {\n directory: string;\n abort: AbortSignal;\n metadata: (payload: { title: string; metadata: Record<string, string> }) => void;\n };\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const requestedSkills = parseRequestedSkillArgs(args);\n\n const fetchActionDirectoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = fetchActionDirectoryPath;\n\n const emitFetchOutcome = async (\n event: Extract<PluginActionEventType, 'FETCH_SUCCESS' | 'FETCH_FAILED'>,\n ): Promise<void> => {\n await emitActionEventForCurrentSession({\n event,\n directoryPath: fetchActionDirectoryPath,\n });\n };\n\n let publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: !args.refresh,\n signal: context.abort,\n });\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n\n if (!publishedSkillsResult.fetchResult.ok && publishedSkillsResult.fetchResult.status === 'missing_auth') {\n try {\n await startLoginCompletion('fetch').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: false,\n signal: context.abort,\n });\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n } catch {\n // Return the original fetch failure with the latest login bootstrap snapshot attached.\n }\n }\n\n if (!publishedSkillsResult.fetchResult.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const filteredPublishedSkillsResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n if (!filteredPublishedSkillsResult.fetchResult.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult: filteredPublishedSkillsResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const selection = selectPublishedSkills(filteredPublishedSkillsResult.fetchResult.payload, requestedSkills);\n const isSingleRequest = requestedSkills.length === 1;\n\n if (requestedSkills.length === 0) {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = {\n ...toPublishedSkillCatalog(filteredPublishedSkillsResult.fetchResult.payload),\n availableTools: resolveAvailableTools(authState?.role ?? null),\n };\n\n context.metadata({\n title: `opencode-wizard published skills catalog: ${catalog.publishedSkillCount} active`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n status: 'ready',\n publishedSkillCount: catalog.publishedSkillCount.toString(),\n globalAssignmentCount: catalog.assignmentCounts.global.toString(),\n projectAssignmentCount: catalog.assignmentCounts.project.toString(),\n userAssignmentCount: catalog.assignmentCounts.user.toString(),\n ignoredSkillCount: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length.toString(),\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n ignoredPublishedSkills: {\n scopeKey: filteredPublishedSkillsResult.ignoreState.scopeKey,\n count: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length,\n },\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n cacheCursor: getCatalogCursor(\n filteredPublishedSkillsResult.fetchResult.payload.skills,\n filteredPublishedSkillsResult.fetchResult.payload.catalogSkills,\n ),\n cacheTtlMs: CACHE_TTL_MS,\n message:\n args.refresh\n ? 'Catalog discovery refreshed from the backend. Provide `skill` for one identifier or prefer `skills` for comma/newline-separated multiple identifiers to fetch markdown bodies/details.'\n : 'Catalog discovery only. Cached results include deterministic revision cursors; pass `refresh: true` to force a backend refresh immediately. Provide `skill` for one identifier or prefer `skills` for comma/newline-separated multiple identifiers to fetch markdown bodies/details.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n cacheCursor: getCatalogCursor(\n filteredPublishedSkillsResult.fetchResult.payload.skills,\n filteredPublishedSkillsResult.fetchResult.payload.catalogSkills,\n ),\n publishedSkillCount: catalog.publishedSkillCount.toString(),\n globalAssignmentCount: catalog.assignmentCounts.global.toString(),\n projectAssignmentCount: catalog.assignmentCounts.project.toString(),\n userAssignmentCount: catalog.assignmentCounts.user.toString(),\n ignoredSkillCount: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length.toString(),\n },\n };\n }\n\n if (selection.selectedItems.length === 0 && isSingleRequest) {\n await emitFetchOutcome('FETCH_FAILED');\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: 'not_found',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n requestedSkill: requestedSkills[0],\n availableSkills: filteredPublishedSkillsResult.fetchResult.payload.skills.map(toPublishedSkillSummary),\n ignoredPublishedSkills: {\n scopeKey: filteredPublishedSkillsResult.ignoreState.scopeKey,\n count: filteredPublishedSkillsResult.ignoreState.ignoredSkillSlugs.length,\n },\n },\n null,\n 2,\n ),\n metadata: {\n status: 'not_found',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n },\n };\n }\n\n let skillDetailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n loadPublishedSkillDetail({\n workspaceResolution: filteredPublishedSkillsResult.workspaceResolution,\n item,\n signal: context.abort,\n useCache: !args.refresh,\n purpose: 'TOOL_FETCH',\n }),\n ),\n );\n\n if (skillDetailResults.some((result) => !result.ok && result.status === 'missing_auth')) {\n try {\n await startLoginCompletion('fetch').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n skillDetailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n loadPublishedSkillDetail({\n workspaceResolution: filteredPublishedSkillsResult.workspaceResolution,\n item,\n signal: context.abort,\n useCache: false,\n purpose: 'TOOL_FETCH',\n }),\n ),\n );\n } catch {\n // Return the original detail failure after the login bootstrap attempt updates snapshot state.\n }\n }\n\n const failedSkillDetail = skillDetailResults.find((result) => !result.ok);\n\n if (failedSkillDetail && !failedSkillDetail.ok) {\n await emitFetchOutcome('FETCH_FAILED');\n return failedSkillDetail;\n }\n\n const skillDetails = skillDetailResults.map((result) => {\n if (!result.ok) {\n throw new Error('Published skill detail result unexpectedly missing after success guard.');\n }\n\n return result.detail;\n });\n\n if (isSingleRequest && skillDetails[0]) {\n const detail = skillDetails[0];\n\n context.metadata({\n title: `opencode-wizard published skill: ${detail.artifactName || detail.skillName}`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n skillSlug: detail.skillSlug,\n version: detail.version,\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n workspace: filteredPublishedSkillsResult.fetchResult.payload.workspace,\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n skill: detail,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n skillSlug: detail.skillSlug,\n },\n };\n }\n\n context.metadata({\n title: `opencode-wizard published skills fetch: ${skillDetails.length}`,\n metadata: {\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n requestedCount: requestedSkills.length.toString(),\n matchedCount: skillDetails.length.toString(),\n },\n });\n\n await emitFetchOutcome('FETCH_SUCCESS');\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n requestedDirectoryPath: filteredPublishedSkillsResult.directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(filteredPublishedSkillsResult.workspaceResolution),\n workspace: filteredPublishedSkillsResult.fetchResult.payload.workspace,\n fetchedAt: filteredPublishedSkillsResult.fetchResult.fetchedAt,\n source: filteredPublishedSkillsResult.fetchResult.source,\n requestedSkills,\n missingSkills: selection.missingIdentifiers,\n skills: skillDetails,\n },\n null,\n 2,\n ),\n metadata: {\n status: selection.missingIdentifiers.length > 0 ? 'partial' : 'ready',\n ...toWorkspaceResolutionMetadata(filteredPublishedSkillsResult.workspaceResolution),\n source: filteredPublishedSkillsResult.fetchResult.source,\n matchedCount: skillDetails.length.toString(),\n },\n };\n };\n\n const executeWizardArtifactCatalogTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactCatalogFetchArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const fetchResult = await fetchWizardArtifactsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n artifactKind,\n context.abort,\n clearPublishedSkillState,\n );\n\n if (!fetchResult.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: fetchResult.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: fetchResult.message,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n },\n null,\n 2,\n ),\n metadata: { status: fetchResult.status, artifactKind, directoryPath, source: fetchResult.source },\n };\n }\n\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = toWizardArtifactCatalog(fetchResult.payload, {\n pluginId: PLUGIN_ID,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n });\n const cacheCursor = getWizardArtifactCatalogCursor(\n fetchResult.payload.artifacts,\n toWizardArtifactCatalogCursorItems(fetchResult.payload.catalogArtifacts),\n );\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n cacheCursor,\n cacheTtlMs: CACHE_TTL_MS,\n message:\n 'Generic artifact catalog discovery only. Full bodies/files require opencode_wizard_artifact_fetch with artifactKind and artifact identifiers.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n artifactKind,\n artifactCount: catalog.artifactCount.toString(),\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n source: fetchResult.source,\n cacheCursor,\n cacheTtlMs: CACHE_TTL_MS.toString(),\n },\n };\n }\n\n const result = await executePublishedSkillsFetchTool({\n args: { directory: args.directory, refresh: args.refresh },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeWizardArtifactFetchTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactFetchArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n const requestedArtifacts = parseRequestedSkillArgs({ skill: args.artifact, skills: args.artifacts });\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const fetchResult = await fetchWizardArtifactsCatalog(\n input.worktree,\n config,\n workspaceResolution,\n artifactKind,\n context.abort,\n clearPublishedSkillState,\n );\n\n if (!fetchResult.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: fetchResult.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: fetchResult.message,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n },\n null,\n 2,\n ),\n metadata: { status: fetchResult.status, artifactKind, directoryPath, source: fetchResult.source },\n };\n }\n\n const selection = selectWizardArtifacts(fetchResult.payload.artifacts, requestedArtifacts);\n if (requestedArtifacts.length === 0) {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const catalog = toWizardArtifactCatalog(fetchResult.payload, {\n pluginId: PLUGIN_ID,\n availableTools: resolveAvailableTools(authState?.role ?? null),\n });\n const cacheCursor = getWizardArtifactCatalogCursor(\n fetchResult.payload.artifacts,\n toWizardArtifactCatalogCursorItems(fetchResult.payload.catalogArtifacts),\n );\n return {\n output: JSON.stringify(\n {\n ...catalog,\n status: 'ready',\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n cacheCursor,\n cacheTtlMs: CACHE_TTL_MS,\n message: 'Provide artifact or artifacts to fetch artifact body/files.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'ready',\n artifactKind,\n cacheCursor,\n cacheTtlMs: CACHE_TTL_MS.toString(),\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n },\n };\n }\n\n if (selection.selectedItems.length === 0 && requestedArtifacts.length === 1) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: 'not_found',\n artifactKind,\n requestedArtifact: requestedArtifacts[0],\n availableArtifacts: fetchResult.payload.artifacts.map(toWizardArtifactSummary),\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n },\n null,\n 2,\n ),\n metadata: { status: 'not_found', artifactKind, ...toWorkspaceResolutionMetadata(workspaceResolution) },\n };\n }\n\n const detailResults = await Promise.all(\n selection.selectedItems.map((item) =>\n loadWizardArtifactDetail({\n workspaceResolution,\n item,\n signal: context.abort,\n useCache: !args.refresh,\n purpose: 'TOOL_FETCH',\n artifactKind,\n }),\n ),\n );\n const failedDetail = detailResults.find((result) => !result.ok);\n if (failedDetail && !failedDetail.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n status: failedDetail.result.status,\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n message: failedDetail.result.message,\n fetchedAt: failedDetail.result.fetchedAt,\n source: failedDetail.result.source,\n },\n null,\n 2,\n ),\n metadata: { status: failedDetail.result.status, artifactKind, ...toWorkspaceResolutionMetadata(workspaceResolution) },\n };\n }\n\n const details = detailResults.map((result, index) => {\n if (!result.ok) throw new Error('Wizard artifact detail result unexpectedly missing after success guard.');\n return toWizardArtifactDetail({\n ...selection.selectedItems[index]!,\n artifactVersion: result.artifact,\n });\n });\n const cacheCursor = getWizardArtifactCatalogCursor(\n selection.selectedItems,\n toWizardArtifactCatalogCursorItems(fetchResult.payload.catalogArtifacts),\n );\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n runtimeMode: 'tool_fetch_only',\n artifactKind,\n requestedDirectoryPath: directoryPath,\n workspaceResolution: toWorkspaceResolutionOutput(workspaceResolution),\n workspace: fetchResult.payload.workspace,\n fetchedAt: fetchResult.fetchedAt,\n source: fetchResult.source,\n cacheCursor,\n cacheTtlMs: CACHE_TTL_MS,\n requestedArtifacts,\n missingArtifacts: selection.missingIdentifiers,\n artifacts: details,\n },\n null,\n 2,\n ),\n metadata: {\n status: selection.missingIdentifiers.length > 0 ? 'partial' : 'ready',\n artifactKind,\n matchedCount: details.length.toString(),\n cacheTtlMs: CACHE_TTL_MS.toString(),\n ...toWorkspaceResolutionMetadata(workspaceResolution),\n },\n };\n }\n\n const result = await executePublishedSkillsFetchTool({\n args: {\n skill: args.artifact,\n skills: args.artifacts,\n directory: args.directory,\n refresh: args.refresh,\n },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeStatusTool = async ({ args, context }: { args: PluginStatusArgs; context: ToolExecuteContext }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n let snapshot = await resolvePluginStatusSnapshot({\n worktree: input.worktree,\n directory: requestedDirectory,\n signal: context.abort,\n });\n\n if (snapshot.status === 'missing_auth') {\n try {\n await startLoginCompletion('status').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n snapshot = await resolvePluginStatusSnapshot({\n worktree: input.worktree,\n directory: requestedDirectory,\n signal: context.abort,\n });\n } catch {\n // Keep returning the safe missing-auth snapshot when interactive login is cancelled or fails.\n }\n }\n\n if (snapshot.status === 'ready') {\n await scheduleInteractivePresenceStart();\n }\n\n const metadata = toPluginStatusMetadata(snapshot);\n\n context.metadata({\n title: `opencode-wizard status: ${snapshot.status} / auth ${snapshot.authState.status}`,\n metadata,\n });\n\n return {\n output: JSON.stringify(toAiFacingPluginStatusSnapshot(snapshot), null, 2),\n metadata,\n };\n };\n\n const executePublishedSkillPreferenceTool = async ({\n args,\n context,\n }: {\n args: PublishedSkillPreferenceArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n const requestedSkill = typeof args.skill === 'string' ? args.skill.trim() : '';\n\n const emitPreferenceOutcome = async (\n event: Extract<PluginActionEventType, 'PREFERENCE_SUCCESS' | 'PREFERENCE_FAILED'>,\n ): Promise<void> => {\n await emitActionEventForCurrentSession({\n event,\n directoryPath,\n });\n };\n\n try {\n if (!requestedSkill) {\n throw new Error('Published skill preference tool requires a non-empty skill slug, artifact name, or skill name.');\n }\n\n if (typeof args.action !== 'string') {\n throw new Error('Published skill preference tool requires an action: install, uninstall, ignore, or unignore.');\n }\n\n const action = toPublishedSkillPreferenceAction(args.action);\n const catalogResult = await loadPublishedSkillCatalog({\n directory: requestedDirectory,\n useCache: true,\n signal: context.abort,\n });\n\n if (!catalogResult.fetchResult.ok) {\n await emitPreferenceOutcome('PREFERENCE_FAILED');\n return toFetchFailureOutput({\n worktree: input.worktree,\n config,\n publishedSkillsResult: catalogResult,\n loginBootstrapSnapshot: loginBootstrap.snapshot,\n });\n }\n\n const selectableCatalogSkills: PublishedSkillCatalogItem[] = catalogResult.fetchResult.payload.catalogSkills.map(\n (item) => ({\n ...item,\n assignmentSource: 'CATALOG',\n assignmentType: 'PATH',\n scopePath: '',\n includeChildren: true,\n }),\n );\n const preferenceSelection = selectPublishedSkills(\n {\n ...catalogResult.fetchResult.payload,\n skills: [\n ...catalogResult.fetchResult.payload.skills,\n ...selectableCatalogSkills,\n ...catalogResult.fetchResult.payload.userPreferences.ignoredSkills,\n ],\n },\n [requestedSkill],\n );\n\n const matchedSkill = preferenceSelection.selectedItems[0];\n if (!matchedSkill) {\n throw new Error(`Published skill preference target was not found for identifier: ${requestedSkill}.`);\n }\n\n const skillSlug = matchedSkill.skill.slug;\n const preferenceState =\n action === 'ignore' || action === 'unignore'\n ? await setPublishedSkillIgnored({\n worktree: input.worktree,\n directory: requestedDirectory,\n skillSlug,\n ignored: action === 'ignore',\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project'),\n })\n : await setPublishedSkillInstalled({\n worktree: input.worktree,\n directory: requestedDirectory,\n skillSlug,\n installed: action === 'install',\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project'),\n });\n\n await scheduleInteractivePresenceStart();\n await emitPreferenceOutcome('PREFERENCE_SUCCESS');\n\n const metadata = {\n status: 'updated',\n skillSlug,\n action,\n directoryPath,\n ignoredSkillCount: preferenceState.ignoredSkillSlugs.length.toString(),\n };\n\n context.metadata({\n title: `opencode-wizard published skill preference: ${action} ${skillSlug}`,\n metadata,\n });\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'updated',\n requestedIdentifier: requestedSkill,\n skillSlug,\n action,\n requestedDirectoryPath: directoryPath,\n preferenceState,\n message:\n 'Published skill preference updated through the shared server-backed API; TUI views will reflect this after refresh.',\n },\n null,\n 2,\n ),\n metadata,\n };\n } catch (error) {\n await emitPreferenceOutcome('PREFERENCE_FAILED');\n const message = error instanceof Error ? error.message : 'Unknown published skill preference failure.';\n const metadata = {\n status: 'preference_failed',\n directoryPath,\n };\n\n context.metadata({\n title: 'opencode-wizard published skill preference failed',\n metadata,\n });\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'preference_failed',\n requestedIdentifier: requestedSkill,\n requestedDirectoryPath: directoryPath,\n message,\n guidance:\n 'The preference tool remains available. Check opencode_wizard_status for safe auth/catalog state, rerun fetch/status to bootstrap auth, and retry after catalog status is ready.',\n },\n null,\n 2,\n ),\n metadata,\n };\n }\n };\n\n const executeWizardArtifactPreferenceTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactPreferenceArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n const artifactKind = toWizardArtifactKind(args.artifactKind);\n\n if (!artifactKind) {\n return buildUnsupportedWizardArtifactOutput({\n artifactKind: args.artifactKind ?? '',\n directoryPath,\n });\n }\n\n if (artifactKind === 'DESIGN_DOC') {\n try {\n const action = toPublishedSkillPreferenceAction(args.action);\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const response = await fetchPublishedSkillsGraphQl<{ setWizardArtifactPreference: WizardArtifactUserPreferences }>({\n worktree: input.worktree,\n config,\n query: SET_WIZARD_ARTIFACT_PREFERENCE_MUTATION,\n variables: {\n input: {\n workspaceSlug: workspaceResolution.workspaceSlug,\n repositoryUrl: workspaceResolution.repositoryUrl,\n directoryPath: workspaceResolution.directoryPath,\n artifactKind,\n artifactSlug: args.artifact.trim(),\n preferenceScope: toPublishedSkillPreferenceScope(args.preferenceScope, 'project') === 'global' ? 'GLOBAL' : 'WORKSPACE',\n installed: action === 'install' ? true : action === 'uninstall' ? false : undefined,\n ignored: action === 'ignore' ? true : action === 'unignore' ? false : undefined,\n },\n },\n signal: context.abort,\n onAuthStateChanged: clearPublishedSkillState,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: response.result.status,\n artifactKind,\n requestedIdentifier: args.artifact,\n requestedDirectoryPath: directoryPath,\n message: response.result.message,\n fetchedAt: response.result.fetchedAt,\n source: response.result.source,\n },\n null,\n 2,\n ),\n metadata: { status: response.result.status, artifactKind, directoryPath },\n };\n }\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'updated',\n artifactKind,\n requestedIdentifier: args.artifact,\n action,\n requestedDirectoryPath: directoryPath,\n preferenceState: response.data.setWizardArtifactPreference,\n message: 'Wizard artifact preference updated through the generic backend API.',\n },\n null,\n 2,\n ),\n metadata: { status: 'updated', artifactKind, directoryPath, action },\n };\n } catch (error) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'preference_failed',\n artifactKind,\n requestedIdentifier: args.artifact,\n requestedDirectoryPath: directoryPath,\n message: error instanceof Error ? error.message : 'Unknown wizard artifact preference failure.',\n },\n null,\n 2,\n ),\n metadata: { status: 'preference_failed', artifactKind, directoryPath },\n };\n }\n }\n\n const result = await executePublishedSkillPreferenceTool({\n args: {\n skill: args.artifact,\n action: args.action,\n preferenceScope: args.preferenceScope,\n directory: args.directory,\n },\n context,\n });\n return withWizardArtifactEnvelope(result, artifactKind);\n };\n\n const executeEditorCreateOrUpdateSkillMarkdown = async ({\n markdownContent,\n context,\n source,\n requestedSkillSlug,\n }: {\n markdownContent: string;\n context: ToolExecuteContext;\n source: 'direct_markdown' | 'seed_file';\n requestedSkillSlug?: string;\n }) => {\n const authState = await resolveStoredAuthState(input.worktree, config);\n if (!authState || authState.role !== 'EDITOR') {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'forbidden',\n skillSlug: requestedSkillSlug ?? null,\n source,\n message:\n 'This tool requires EDITOR role. Your current session does not have the required editor permission.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'forbidden',\n role: authState?.role ?? 'none',\n },\n };\n }\n\n if (!markdownContent.trim()) {\n throw new Error('Editor skill create/update requires non-empty markdownContent.');\n }\n\n const requestedDirectory = normalizeDirectoryArg(context.directory, undefined);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n const response = await fetchPublishedSkillsGraphQl<CreateOrUpdateSkillFromMarkdownResponse>({\n worktree: input.worktree,\n config,\n query: CREATE_OR_UPDATE_SKILL_FROM_MARKDOWN_MUTATION,\n variables: {\n markdownContent,\n },\n signal: context.abort,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'request_failed',\n skillSlug: requestedSkillSlug ?? null,\n source,\n message: response.result.message,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'request_failed',\n skillSlug: requestedSkillSlug ?? '',\n directoryPath,\n },\n };\n }\n\n const payload = response.data.admin.createOrUpdateSkillFromMarkdown;\n\n await scheduleInteractivePresenceStart();\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: payload.success ? 'created_or_updated' : 'create_or_update_failed',\n source,\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId,\n artifactSlug: payload.artifactSlug,\n artifactVersionId: payload.artifactVersionId,\n requestedDirectoryPath: directoryPath,\n errors: payload.errors,\n message:\n source === 'direct_markdown'\n ? 'Skill markdown was sent directly to the backend; no local seed file was required.'\n : 'Local seed SKILL.md was published through the backend skill markdown mutation.',\n },\n null,\n 2,\n ),\n metadata: {\n status: payload.success ? 'created_or_updated' : 'create_or_update_failed',\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId ?? '',\n source,\n directoryPath,\n },\n };\n };\n\n const executeEditorCreateOrUpdateSkillTool = async ({\n args,\n context,\n }: {\n args: EditorCreateOrUpdateSkillArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n return executeEditorCreateOrUpdateSkillMarkdown({\n markdownContent: args.markdownContent,\n context: { ...context, directory: requestedDirectory },\n source: 'direct_markdown',\n });\n };\n\n const executeEditorPublishSkillTool = async ({\n args,\n context,\n }: {\n args: EditorPublishSkillArgs;\n context: ToolExecuteContext;\n }) => {\n const requestedSkillSlug = args.skillSlug.trim();\n if (!requestedSkillSlug) {\n throw new Error('Editor publish requires a non-empty skill slug.');\n }\n\n const authState = await resolveStoredAuthState(input.worktree, config);\n if (!authState || authState.role !== 'EDITOR') {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'forbidden',\n skillSlug: requestedSkillSlug,\n source: 'seed_file',\n message:\n 'This tool requires EDITOR role. Your current session does not have the required editor permission.',\n },\n null,\n 2,\n ),\n metadata: {\n status: 'forbidden',\n role: authState?.role ?? 'none',\n },\n };\n }\n\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n const workspaceResolution = await resolveWorkspace({ config, directory: requestedDirectory });\n const repositoryRoot = workspaceResolution.repositoryRoot;\n\n const skillFilePath = path.resolve(\n repositoryRoot,\n config.rootSkillSeedPath,\n requestedSkillSlug,\n 'SKILL.md',\n );\n\n let markdownContent: string;\n try {\n markdownContent = await fs.readFile(skillFilePath, 'utf8');\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'file_not_found',\n skillSlug: requestedSkillSlug,\n skillFilePath,\n message: `Skill markdown file not found at ${skillFilePath}: ${message}`,\n },\n null,\n 2,\n ),\n metadata: {\n status: 'file_not_found',\n skillSlug: requestedSkillSlug,\n directoryPath,\n },\n };\n }\n\n return executeEditorCreateOrUpdateSkillMarkdown({\n markdownContent,\n context: { ...context, directory: requestedDirectory },\n source: 'seed_file',\n requestedSkillSlug,\n });\n };\n\n const executeWizardArtifactImportTool = async ({\n args,\n context,\n }: {\n args: WizardArtifactImportArgs;\n context: ToolExecuteContext;\n }) => {\n const authState = await resolveStoredAuthState(input.worktree, config);\n const importPlan = planWizardArtifactImport({\n artifactKind: args.artifactKind,\n source: args.source,\n slug: args.slug,\n skill: args.skill,\n });\n\n if (!authState || authState.role !== 'EDITOR') {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'forbidden',\n artifactKind: importPlan.artifactKind,\n source: importPlan.source,\n message: 'This tool requires EDITOR role. Your current session does not have the required editor permission.',\n },\n null,\n 2,\n ),\n metadata: { status: 'forbidden', role: authState?.role ?? 'none' },\n };\n }\n\n const requestedDirectory = normalizeDirectoryArg(context.directory, args.directory);\n const directoryPath = normalizeRepositoryPath(workspacePath, requestedDirectory);\n lastInteractiveDirectoryPath = directoryPath;\n\n let importSource;\n try {\n importSource = await fetchWizardArtifactImportSource({\n artifactKind: args.artifactKind,\n source: args.source,\n slug: args.slug,\n skill: args.skill,\n signal: context.abort,\n });\n } catch (error) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'source_fetch_failed',\n artifactKind: importPlan.artifactKind,\n source: importPlan.source,\n candidateUrls: importPlan.candidateUrls,\n message: error instanceof Error ? error.message : 'Unknown import source fetch failure.',\n },\n null,\n 2,\n ),\n metadata: { status: 'source_fetch_failed', artifactKind: importPlan.artifactKind, directoryPath },\n };\n }\n\n const response = await fetchPublishedSkillsGraphQl<ImportWizardArtifactSnapshotResponse>({\n worktree: input.worktree,\n config,\n query: IMPORT_WIZARD_ARTIFACT_SNAPSHOT_MUTATION,\n variables: {\n input: {\n artifactKind: importSource.artifactKind,\n slug: importSource.slug,\n name: args.name,\n summary: args.summary,\n markdownContent: importSource.markdownContent,\n source: importSource.fetchedUrl,\n sourceSnapshotRef: importSource.sourceRef,\n },\n },\n signal: context.abort,\n });\n\n if (!response.ok) {\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: 'request_failed',\n artifactKind: importSource.artifactKind,\n source: importSource.source,\n fetchedUrl: importSource.fetchedUrl,\n message: response.result.message,\n },\n null,\n 2,\n ),\n metadata: { status: 'request_failed', artifactKind: importSource.artifactKind, directoryPath },\n };\n }\n\n const payload = response.data.importWizardArtifactSnapshot;\n await scheduleInteractivePresenceStart();\n\n return {\n output: JSON.stringify(\n {\n pluginId: PLUGIN_ID,\n status: payload.success ? 'imported' : 'import_failed',\n artifactKind: importSource.artifactKind,\n artifactSlug: payload.artifactSlug,\n artifactVersionId: payload.artifactVersionId,\n skillSlug: payload.skillSlug,\n skillVersionId: payload.skillVersionId,\n source: importSource.source,\n fetchedUrl: importSource.fetchedUrl,\n sourceSnapshotRef: importSource.sourceRef,\n errors: payload.errors,\n message: 'Imported backend artifact is now the wizard/plugin runtime authority; no project files were written.',\n },\n null,\n 2,\n ),\n metadata: {\n status: payload.success ? 'imported' : 'import_failed',\n artifactKind: importSource.artifactKind,\n artifactSlug: payload.artifactSlug ?? '',\n artifactVersionId: payload.artifactVersionId ?? '',\n directoryPath,\n },\n };\n };\n\n const { sharedTools, editorOnlyTools } = createPublishedSkillToolDefinitions(tool, {\n fetchPublishedSkills: (args, context) => executePublishedSkillsFetchTool({ args, context }),\n fetchWizardArtifactCatalog: (args, context) => executeWizardArtifactCatalogTool({ args, context }),\n fetchWizardArtifacts: (args, context) => executeWizardArtifactFetchTool({ args, context }),\n updatePublishedSkillPreference: (args, context) => executePublishedSkillPreferenceTool({ args, context }),\n updateWizardArtifactPreference: (args, context) => executeWizardArtifactPreferenceTool({ args, context }),\n getStatus: (args, context) => executeStatusTool({ args, context }),\n createOrUpdateEditorSkill: (args, context) => executeEditorCreateOrUpdateSkillTool({ args, context }),\n publishEditorSkill: (args, context) => executeEditorPublishSkillTool({ args, context }),\n importWizardArtifact: (args, context) => executeWizardArtifactImportTool({ args, context }),\n });\n\n return {\n tool: initialAuthState?.role === 'EDITOR' ? { ...sharedTools, ...editorOnlyTools } : sharedTools,\n 'experimental.chat.system.transform': async (_hookInput, output) => {\n let publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: input.directory,\n useCache: true,\n signal: AbortSignal.timeout(5_000),\n });\n\n if (!publishedSkillsResult.fetchResult.ok && publishedSkillsResult.fetchResult.status === 'missing_auth') {\n try {\n await startLoginCompletion('status').then(async (authState) => {\n await schedulePresenceStart(authState);\n });\n publishedSkillsResult = await loadPublishedSkillCatalog({\n directory: input.directory,\n useCache: false,\n signal: AbortSignal.timeout(5_000),\n });\n } catch {\n const loginMessage = loginBootstrap.snapshot.message\n ? ` Last login status: ${loginBootstrap.snapshot.message}`\n : '';\n output.system.push(\n `opencode-wizard plugin stored auth is missing, expired, or rejected. Startup browser login was started but did not complete successfully.${loginMessage} Use opencode_wizard_status or opencode_wizard_published_skills_fetch to retry authentication when published skills are needed. No tokens are exposed.`,\n );\n return;\n }\n\n if (!publishedSkillsResult.fetchResult.ok) {\n output.system.push(\n `opencode-wizard plugin startup login completed, but published skills are still unavailable: ${publishedSkillsResult.fetchResult.message} No tokens are exposed.`,\n );\n return;\n }\n }\n\n if (publishedSkillsResult.fetchResult.ok) {\n await scheduleInteractivePresenceStart();\n }\n\n const filteredPublishedSkillsResult = await filterIgnoredPublishedSkills(config, publishedSkillsResult);\n const systemNote = buildSystemNote(filteredPublishedSkillsResult, config, []);\n\n if (!systemNote) return;\n\n output.system.push(systemNote);\n },\n };\n};\n\nexport default {\n id: PLUGIN_ID,\n server: OpencodeWizardSkillsPlugin,\n};\n"],"mappings":"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","ignoreList":[]}