@aexol/opencode-wizard 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/graphql-operations.d.ts +4 -0
- package/dist/graphql-operations.js +225 -0
- package/dist/graphql-operations.js.map +1 -0
- package/dist/plugin-tools.d.ts +64 -0
- package/dist/plugin-tools.js +57 -0
- package/dist/plugin-tools.js.map +1 -0
- package/dist/published-skills-system-note.d.ts +9 -0
- package/dist/published-skills-system-note.js +34 -0
- package/dist/published-skills-system-note.js.map +1 -0
- package/dist/published-skills-transform.d.ts +161 -0
- package/dist/published-skills-transform.js +238 -0
- package/dist/published-skills-transform.js.map +1 -0
- package/dist/server/auth-flow.d.ts +10 -0
- package/dist/server/auth-flow.js +215 -0
- package/dist/server/auth-flow.js.map +1 -0
- package/dist/server/auth-store.d.ts +19 -0
- package/dist/server/auth-store.js +177 -0
- package/dist/server/auth-store.js.map +1 -0
- package/dist/server/client.d.ts +51 -0
- package/dist/server/client.js +244 -0
- package/dist/server/client.js.map +1 -0
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.js +82 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/constants.d.ts +26 -0
- package/dist/server/constants.js +32 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/path-utils.d.ts +2 -0
- package/dist/server/path-utils.js +8 -0
- package/dist/server/path-utils.js.map +1 -0
- package/dist/server/presence.d.ts +14 -0
- package/dist/server/presence.js +68 -0
- package/dist/server/presence.js.map +1 -0
- package/dist/server/runtime.d.ts +32 -0
- package/dist/server/runtime.js +1110 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/status.d.ts +27 -0
- package/dist/server/status.js +224 -0
- package/dist/server/status.js.map +1 -0
- package/dist/server/types.d.ts +321 -0
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/workspace.d.ts +15 -0
- package/dist/server/workspace.js +126 -0
- package/dist/server/workspace.js.map +1 -0
- package/dist/server.d.ts +4 -309
- package/dist/server.js +4 -2611
- package/dist/server.js.map +1 -1
- package/dist/smoke-published-skills.js +11 -9
- package/dist/smoke-published-skills.js.map +1 -1
- package/dist/tui/components/common.d.ts +15 -0
- package/dist/tui/components/common.js +81 -0
- package/dist/tui/components/common.js.map +1 -0
- package/dist/tui/components/preference-action-notice-row.d.ts +5 -0
- package/dist/tui/components/preference-action-notice-row.js +17 -0
- package/dist/tui/components/preference-action-notice-row.js.map +1 -0
- package/dist/tui/components/skill-catalog-row.d.ts +8 -0
- package/dist/tui/components/skill-catalog-row.js +124 -0
- package/dist/tui/components/skill-catalog-row.js.map +1 -0
- package/dist/tui/components/status-content.d.ts +14 -0
- package/dist/tui/components/status-content.js +131 -0
- package/dist/tui/components/status-content.js.map +1 -0
- package/dist/tui/components/wizard-skills-dialog-content.d.ts +9 -0
- package/dist/tui/components/wizard-skills-dialog-content.js +219 -0
- package/dist/tui/components/wizard-skills-dialog-content.js.map +1 -0
- package/dist/tui/components/wizard-skills-dialog.d.ts +7 -0
- package/dist/tui/components/wizard-skills-dialog.js +156 -0
- package/dist/tui/components/wizard-skills-dialog.js.map +1 -0
- package/dist/tui/constants.d.ts +8 -0
- package/dist/tui/constants.js +9 -0
- package/dist/tui/constants.js.map +1 -0
- package/dist/tui/formatting.d.ts +8 -0
- package/dist/tui/formatting.js +45 -0
- package/dist/tui/formatting.js.map +1 -0
- package/dist/tui/plugin.d.ts +2 -0
- package/dist/tui/plugin.js +26 -0
- package/dist/tui/plugin.js.map +1 -0
- package/dist/tui/rendering.d.ts +2 -0
- package/dist/tui/rendering.js +8 -0
- package/dist/tui/rendering.js.map +1 -0
- package/dist/tui/skill-helpers.d.ts +13 -0
- package/dist/tui/skill-helpers.js +49 -0
- package/dist/tui/skill-helpers.js.map +1 -0
- package/dist/tui/slots.d.ts +2 -0
- package/dist/tui/slots.js +56 -0
- package/dist/tui/slots.js.map +1 -0
- package/dist/tui/status.d.ts +2 -0
- package/dist/tui/status.js +21 -0
- package/dist/tui/status.js.map +1 -0
- package/dist/tui/types.d.ts +75 -0
- package/dist/tui/types.js +2 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/tui.d.ts +1 -44
- package/dist/tui.js +2 -870
- package/dist/tui.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["buildSystemNote","buildSkillMarkdown","parseRequestedSkillArgs","resolveConfig","selectPublishedSkills","toPublishedSkillCatalog","toPublishedSkillDetail","fs","os","path","DEPLOY_BACKEND_ORIGIN","LOCAL_OVERRIDE_BACKEND_ORIGIN","BACKEND_ENV_KEYS","assertEqual","label","actual","expected","Error","String","createSkillItem","index","assignmentSource","slugPrefix","assignmentType","scopePath","includeChildren","skill","id","slug","name","summary","whenToUse","status","installPolicy","tags","skillVersion","version","title","publishedArtifact","frontmatterName","frontmatterDescription","checksum","publishedAt","fileCount","createInstallableSkillItem","item","createEffectiveSkillsSmokePayload","workspace","repositoryUrl","defaultBranch","directoryPath","skills","Array","from","length","_","catalogSkills","userPreferences","scopeKey","userKey","ignoredSkills","assertEffectiveSkillGrouping","payload","catalog","globalSkills","filter","contextKind","userSkills","installableSkillCount","publishedSkillCount","assignmentCounts","global","project","user","other","globalAssignmentCount","projectAssignmentCount","userAssignmentCount","installableNotInstalledCount","assertRequestedSkillArgParsing","expectedSkills","skillFieldSelection","skillsFieldSelection","mixedSelection","join","withBackendEnv","env","callback","previousValues","Map","key","set","process","value","Object","entries","undefined","assertBackendOriginResolution","isolatedWorktree","mkdtemp","tmpdir","defaultConfig","backendOrigin","portOnlyConfig","PORT","appUrlPlaceholderConfig","APP_URL","overrideConfig","OPENCODE_WIZARD_BACKEND_ORIGIN","defaultBackendOrigin","portOnlyBackendOrigin","appUrlPlaceholderBackendOrigin","explicitOverrideBackendOrigin","assertSystemNoteWizardFetchContract","config","detail","systemNote","workspaceResolution","requestedDirectory","repositoryRoot","fallbackWorkspaceSlug","cacheKey","fetchResult","ok","authMode","fetchedAt","source","requiredFragments","fragment","includes","includesNativeOpenCodeSkillRoute","includesNativeSkillNotFoundEvidence","includesWizardFetchToolRoute","run","detailSkillItem","detailItem","markdownBody","renderedContent","files","relativePath","contentType","content","size","sortOrder","cwd","backendOriginSmoke","requestedSkillArgParsingSmoke","effectiveSkillGroupingSmoke","selection","selectedItems","systemNoteWizardFetchContractSmoke","preview","split","slice","console","log","JSON","stringify","runtimeMode","graphqlUrl","availableTools","facets","selectedSkillCount","missingSkills","missingIdentifiers","selectedSkillSlug","skillSlug","selectedSkillTags","markdownDocumentIncludesFrontmatter","markdownDocument","startsWith","resourceFileCount","resources","markdownBodyIncludesContent"],"sources":["../src/smoke-published-skills.ts"],"sourcesContent":["import {\n buildSystemNote,\n buildSkillMarkdown,\n parseRequestedSkillArgs,\n resolveConfig,\n selectPublishedSkills,\n toPublishedSkillCatalog,\n toPublishedSkillDetail,\n type PublishedSkillCatalogPayload,\n type PublishedSkillCatalogItem,\n type PublishedSkillDetailItem,\n type PublishedSkillInstallableCatalogItem,\n} from './server.js';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nconst DEPLOY_BACKEND_ORIGIN = 'https://opencode-wizard.aexol.work';\nconst LOCAL_OVERRIDE_BACKEND_ORIGIN = 'http://localhost:19876';\n\ntype BackendEnvKey = 'OPENCODE_WIZARD_BACKEND_ORIGIN' | 'APP_URL' | 'PORT';\n\nconst BACKEND_ENV_KEYS: BackendEnvKey[] = ['OPENCODE_WIZARD_BACKEND_ORIGIN', 'APP_URL', 'PORT'];\n\nconst assertEqual = <TValue>(label: string, actual: TValue, expected: TValue): void => {\n if (actual === expected) return;\n\n throw new Error(`${label} mismatch: expected ${String(expected)}, received ${String(actual)}`);\n};\n\nconst createSkillItem = (index: number, assignmentSource: string, slugPrefix: string): PublishedSkillCatalogItem => ({\n assignmentSource,\n assignmentType: 'PATH',\n scopePath: '.',\n includeChildren: true,\n skill: {\n id: `skill-${slugPrefix}-${index}`,\n slug: `${slugPrefix}-${index}`,\n name: `${slugPrefix}-${index}`,\n summary: `${slugPrefix} skill ${index}`,\n whenToUse: `Use for ${slugPrefix} smoke coverage ${index}.`,\n status: 'ACTIVE',\n installPolicy: assignmentSource === 'GLOBAL' ? 'GLOBAL_CONTEXT' : 'PROJECT_INSTALLABLE',\n tags: [],\n },\n skillVersion: {\n id: `version-${slugPrefix}-${index}`,\n version: '1.0.0',\n title: 'Initial',\n summary: 'Initial publish',\n status: 'PUBLISHED',\n },\n publishedArtifact: {\n id: `artifact-${slugPrefix}-${index}`,\n frontmatterName: `${slugPrefix}-${index}`,\n frontmatterDescription: `${slugPrefix} smoke skill`,\n checksum: `checksum-${slugPrefix}-${index}`,\n publishedAt: '2026-04-22T00:00:00.000Z',\n fileCount: 1,\n },\n});\n\nconst createInstallableSkillItem = (index: number): PublishedSkillInstallableCatalogItem => {\n const item = createSkillItem(index, 'CATALOG', 'installable-skill');\n\n return {\n skill: item.skill,\n skillVersion: item.skillVersion,\n publishedArtifact: item.publishedArtifact,\n };\n};\n\nconst createEffectiveSkillsSmokePayload = (): PublishedSkillCatalogPayload => ({\n workspace: {\n id: 'workspace-effective-counts',\n slug: 'opencode-wizard',\n name: 'opencode-wizard',\n repositoryUrl: 'https://example.com/opencode-wizard.git',\n defaultBranch: 'main',\n status: 'ACTIVE',\n },\n directoryPath: '.',\n skills: [\n ...Array.from({ length: 19 }, (_, index) => createSkillItem(index + 1, 'GLOBAL', 'global-skill')),\n ...Array.from({ length: 4 }, (_, index) => createSkillItem(index + 1, 'USER_GLOBAL', 'user-skill')),\n ],\n catalogSkills: Array.from({ length: 11 }, (_, index) => createInstallableSkillItem(index + 1)),\n userPreferences: {\n scopeKey: 'workspace:workspace-effective-counts',\n userKey: 'user-1',\n ignoredSkills: [],\n },\n});\n\nconst assertEffectiveSkillGrouping = (payload: PublishedSkillCatalogPayload) => {\n const catalog = toPublishedSkillCatalog(payload);\n const globalSkills = catalog.skills.filter(\n (skill) => skill.contextKind === 'global' && skill.assignmentSource === 'GLOBAL',\n );\n const userSkills = catalog.skills.filter((skill) => skill.assignmentSource === 'USER_GLOBAL');\n const installableSkillCount = payload.catalogSkills.length;\n\n assertEqual('published skill count', catalog.publishedSkillCount, 23);\n assertEqual('global assignment count', catalog.assignmentCounts.global, 19);\n assertEqual('project assignment count', catalog.assignmentCounts.project, 0);\n assertEqual('user assignment count', catalog.assignmentCounts.user, 4);\n assertEqual('other assignment count', catalog.assignmentCounts.other, 0);\n assertEqual('global grouped skill count', globalSkills.length, 19);\n assertEqual('user grouped skill count', userSkills.length, 4);\n assertEqual('installable/not installed catalog count', installableSkillCount, 11);\n\n return {\n globalAssignmentCount: catalog.assignmentCounts.global,\n projectAssignmentCount: catalog.assignmentCounts.project,\n userAssignmentCount: catalog.assignmentCounts.user,\n installableNotInstalledCount: installableSkillCount,\n };\n};\n\nconst assertRequestedSkillArgParsing = () => {\n const expectedSkills = ['frontend-components', 'frontend-styles', 'frontend-navigation'];\n const skillFieldSelection = parseRequestedSkillArgs({\n skill: 'frontend-components,frontend-styles\\nfrontend-navigation',\n });\n const skillsFieldSelection = parseRequestedSkillArgs({\n skills: 'frontend-components,frontend-styles\\nfrontend-navigation',\n });\n const mixedSelection = parseRequestedSkillArgs({\n skill: 'frontend-components, frontend-styles',\n skills: 'frontend-styles\\nfrontend-navigation',\n });\n\n assertEqual('skill field delimited selection', skillFieldSelection.join('|'), expectedSkills.join('|'));\n assertEqual('skills field delimited selection', skillsFieldSelection.join('|'), expectedSkills.join('|'));\n assertEqual('mixed field deduplicated selection', mixedSelection.join('|'), expectedSkills.join('|'));\n\n return {\n skillFieldSelection,\n skillsFieldSelection,\n mixedSelection,\n };\n};\n\nconst withBackendEnv = async <TResult>(\n env: Partial<Record<BackendEnvKey, string>>,\n callback: () => Promise<TResult>,\n): Promise<TResult> => {\n const previousValues = new Map<BackendEnvKey, string | undefined>();\n\n for (const key of BACKEND_ENV_KEYS) {\n previousValues.set(key, process.env[key]);\n delete process.env[key];\n }\n\n for (const [key, value] of Object.entries(env)) {\n process.env[key as BackendEnvKey] = value;\n }\n\n try {\n return await callback();\n } finally {\n for (const [key, value] of previousValues) {\n if (value === undefined) {\n delete process.env[key];\n continue;\n }\n\n process.env[key] = value;\n }\n }\n};\n\nconst assertBackendOriginResolution = async () => {\n const isolatedWorktree = await fs.mkdtemp(path.join(os.tmpdir(), 'opencode-wizard-plugin-smoke-'));\n\n const defaultConfig = await withBackendEnv({}, () => resolveConfig(isolatedWorktree));\n if (defaultConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected default backend origin ${DEPLOY_BACKEND_ORIGIN}, received ${defaultConfig.backendOrigin}`,\n );\n }\n\n const portOnlyConfig = await withBackendEnv({ PORT: '19876' }, () => resolveConfig(isolatedWorktree));\n if (portOnlyConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected PORT-only backend origin to stay ${DEPLOY_BACKEND_ORIGIN}, received ${portOnlyConfig.backendOrigin}`,\n );\n }\n\n const appUrlPlaceholderConfig = await withBackendEnv({ APP_URL: 'https://yourdomain.com' }, () =>\n resolveConfig(isolatedWorktree),\n );\n if (appUrlPlaceholderConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected APP_URL placeholder backend origin to stay ${DEPLOY_BACKEND_ORIGIN}, received ${appUrlPlaceholderConfig.backendOrigin}`,\n );\n }\n\n const overrideConfig = await withBackendEnv({ OPENCODE_WIZARD_BACKEND_ORIGIN: LOCAL_OVERRIDE_BACKEND_ORIGIN }, () =>\n resolveConfig(isolatedWorktree),\n );\n if (overrideConfig.backendOrigin !== LOCAL_OVERRIDE_BACKEND_ORIGIN) {\n throw new Error(\n `Expected explicit backend override ${LOCAL_OVERRIDE_BACKEND_ORIGIN}, received ${overrideConfig.backendOrigin}`,\n );\n }\n\n return {\n defaultBackendOrigin: defaultConfig.backendOrigin,\n portOnlyBackendOrigin: portOnlyConfig.backendOrigin,\n appUrlPlaceholderBackendOrigin: appUrlPlaceholderConfig.backendOrigin,\n explicitOverrideBackendOrigin: overrideConfig.backendOrigin,\n };\n};\n\nconst assertSystemNoteWizardFetchContract = (\n payload: PublishedSkillCatalogPayload,\n config: Awaited<ReturnType<typeof resolveConfig>>,\n detail: NonNullable<ReturnType<typeof toPublishedSkillDetail>>,\n) => {\n const systemNote = buildSystemNote(\n {\n directoryPath: '.',\n workspaceResolution: {\n requestedDirectory: '.',\n repositoryRoot: '.',\n repositoryUrl: 'https://example.com/opencode-wizard.git',\n fallbackWorkspaceSlug: null,\n directoryPath: '.',\n cacheKey: 'smoke-cache-key',\n },\n fetchResult: {\n ok: true,\n status: 'ready',\n authMode: 'session',\n payload,\n fetchedAt: '2026-04-22T00:00:00.000Z',\n source: 'cache',\n },\n },\n config,\n [detail],\n );\n\n if (!systemNote) {\n throw new Error('Expected system note to be generated for published skills payload');\n }\n\n const requiredFragments = [\n 'Workspace: opencode-wizard.',\n 'Active wizard skills:',\n 'Counts: 19 global, 0 project, 4 user, 0 other.',\n 'Wizard-listed skills are backend-published, not native OpenCode skills.',\n 'Use native skill tooling only for names in native available_skills.',\n 'When a wizard skill matches by whenToUse, fetch its current body with opencode_wizard_published_skills_fetch before using it.',\n 'Use `skills` for multiple wizard skill identifiers; use `skill` for one.',\n 'If native skill loading cannot find a wizard-listed skill, fetch it as a wizard skill instead.',\n 'Fetched wizard bodies are authoritative over local seed/native sources.',\n 'Global skills:',\n 'Project skills: none.',\n 'User skills:',\n 'opencode_wizard_published_skills_fetch',\n ];\n\n for (const fragment of requiredFragments) {\n if (systemNote.includes(fragment)) continue;\n\n throw new Error(`Expected system note to include prompt contract fragment: ${fragment}`);\n }\n\n return {\n includesNativeOpenCodeSkillRoute: systemNote.includes('native OpenCode skill'),\n includesNativeSkillNotFoundEvidence: systemNote.includes('native skill loading cannot find'),\n includesWizardFetchToolRoute: systemNote.includes('opencode_wizard_published_skills_fetch'),\n };\n};\n\nconst run = async () => {\n const payload: PublishedSkillCatalogPayload = createEffectiveSkillsSmokePayload();\n const detailSkillItem = payload.skills[0];\n detailSkillItem.skill.slug = 'backend-auth';\n detailSkillItem.skill.name = 'backend-auth';\n detailSkillItem.skill.summary = 'Backend auth skill';\n detailSkillItem.skill.whenToUse = 'Use for JWT cookie sessions and protected backend resolver work.';\n detailSkillItem.publishedArtifact.frontmatterName = 'backend-auth';\n detailSkillItem.publishedArtifact.frontmatterDescription = 'JWT auth skill';\n detailSkillItem.publishedArtifact.fileCount = 2;\n const detailItem: PublishedSkillDetailItem = {\n ...detailSkillItem,\n publishedArtifact: {\n ...detailSkillItem.publishedArtifact,\n markdownBody: '## Mock skill\\n\\nThis is a mock published skill.',\n renderedContent: '<h2>Mock skill</h2>',\n files: [\n {\n id: 'artifact-file-1',\n relativePath: 'SKILL.md',\n contentType: 'text/markdown; charset=utf-8',\n content: '---\\nname: \"backend-auth\"\\ndescription: \"JWT auth skill\"\\n---\\n\\n## Mock skill\\n',\n checksum: 'file-checksum-1',\n size: 74,\n sortOrder: 0,\n },\n {\n id: 'artifact-file-2',\n relativePath: 'resource.md',\n contentType: 'text/markdown; charset=utf-8',\n content: '# Resource\\n',\n checksum: 'file-checksum-2',\n size: 11,\n sortOrder: 1,\n },\n ],\n },\n };\n\n const config = await resolveConfig(process.cwd());\n const backendOriginSmoke = await assertBackendOriginResolution();\n const requestedSkillArgParsingSmoke = assertRequestedSkillArgParsing();\n\n const catalog = toPublishedSkillCatalog(payload);\n const effectiveSkillGroupingSmoke = assertEffectiveSkillGrouping(createEffectiveSkillsSmokePayload());\n const selection = selectPublishedSkills(payload, ['backend-auth', 'missing-skill']);\n const detail = selection.selectedItems[0] ? toPublishedSkillDetail(detailItem) : null;\n if (!detail) {\n throw new Error('Expected backend-auth detail to be selected for smoke test');\n }\n\n const systemNoteWizardFetchContractSmoke = assertSystemNoteWizardFetchContract(payload, config, detail);\n const preview = buildSkillMarkdown(detailItem).split('\\n').slice(0, 6);\n\n console.log(\n JSON.stringify(\n {\n runtimeMode: catalog.runtimeMode,\n graphqlUrl: config.graphqlUrl,\n backendOriginSmoke,\n requestedSkillArgParsingSmoke,\n systemNoteWizardFetchContractSmoke,\n effectiveSkillGroupingSmoke,\n publishedSkillCount: catalog.publishedSkillCount,\n availableTools: catalog.availableTools,\n facets: catalog.facets,\n selectedSkillCount: selection.selectedItems.length,\n missingSkills: selection.missingIdentifiers,\n selectedSkillSlug: detail.skillSlug,\n selectedSkillTags: detail.tags,\n markdownDocumentIncludesFrontmatter: detail.markdownDocument.startsWith('---'),\n resourceFileCount: detail.resources.length,\n preview,\n markdownBodyIncludesContent: detail.markdownBody.includes('This is a mock published skill.'),\n },\n null,\n 2,\n ),\n );\n};\n\nvoid run();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["buildSystemNote","buildSkillMarkdown","parseRequestedSkillArgs","resolveConfig","selectPublishedSkills","toPublishedSkillCatalog","toPublishedSkillDetail","fs","os","path","DEPLOY_BACKEND_ORIGIN","LOCAL_OVERRIDE_BACKEND_ORIGIN","BACKEND_ENV_KEYS","assertEqual","label","actual","expected","Error","String","createSkillItem","index","assignmentSource","slugPrefix","assignmentType","scopePath","includeChildren","skill","id","slug","name","summary","whenToUse","status","installPolicy","tags","skillVersion","version","title","publishedArtifact","frontmatterName","frontmatterDescription","checksum","publishedAt","fileCount","createInstallableSkillItem","item","createEffectiveSkillsSmokePayload","workspace","repositoryUrl","defaultBranch","directoryPath","skills","Array","from","length","_","catalogSkills","userPreferences","scopeKey","userKey","ignoredSkills","assertEffectiveSkillGrouping","payload","catalog","globalSkills","filter","contextKind","projectSkills","userSkills","assignmentLabel","userSkillsWithGlobalContextKind","installableSkillCount","publishedSkillCount","assignmentCounts","global","project","user","other","globalAssignmentCount","projectAssignmentCount","userAssignmentCount","installableNotInstalledCount","assertRequestedSkillArgParsing","expectedSkills","skillFieldSelection","skillsFieldSelection","mixedSelection","join","withBackendEnv","env","callback","previousValues","Map","key","set","process","value","Object","entries","undefined","assertBackendOriginResolution","isolatedWorktree","mkdtemp","tmpdir","defaultConfig","backendOrigin","portOnlyConfig","PORT","appUrlPlaceholderConfig","APP_URL","overrideConfig","OPENCODE_WIZARD_BACKEND_ORIGIN","defaultBackendOrigin","portOnlyBackendOrigin","appUrlPlaceholderBackendOrigin","explicitOverrideBackendOrigin","assertSystemNoteWizardFetchContract","config","detail","systemNote","workspaceResolution","requestedDirectory","repositoryRoot","fallbackWorkspaceSlug","cacheKey","fetchResult","ok","authMode","fetchedAt","source","requiredFragments","fragment","includes","includesNativeOpenCodeSkillRoute","includesNativeSkillNotFoundEvidence","includesWizardFetchToolRoute","run","detailSkillItem","detailItem","markdownBody","renderedContent","files","relativePath","contentType","content","size","sortOrder","cwd","backendOriginSmoke","requestedSkillArgParsingSmoke","effectiveSkillGroupingSmoke","selection","selectedItems","systemNoteWizardFetchContractSmoke","preview","split","slice","console","log","JSON","stringify","runtimeMode","graphqlUrl","availableTools","facets","selectedSkillCount","missingSkills","missingIdentifiers","selectedSkillSlug","skillSlug","selectedSkillTags","markdownDocumentIncludesFrontmatter","markdownDocument","startsWith","resourceFileCount","resources","markdownBodyIncludesContent"],"sources":["../src/smoke-published-skills.ts"],"sourcesContent":["import {\n buildSystemNote,\n buildSkillMarkdown,\n parseRequestedSkillArgs,\n resolveConfig,\n selectPublishedSkills,\n toPublishedSkillCatalog,\n toPublishedSkillDetail,\n type PublishedSkillCatalogPayload,\n type PublishedSkillCatalogItem,\n type PublishedSkillDetailItem,\n type PublishedSkillInstallableCatalogItem,\n} from './server.js';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nconst DEPLOY_BACKEND_ORIGIN = 'https://opencode-wizard.aexol.work';\nconst LOCAL_OVERRIDE_BACKEND_ORIGIN = 'http://localhost:19876';\n\ntype BackendEnvKey = 'OPENCODE_WIZARD_BACKEND_ORIGIN' | 'APP_URL' | 'PORT';\n\nconst BACKEND_ENV_KEYS: BackendEnvKey[] = ['OPENCODE_WIZARD_BACKEND_ORIGIN', 'APP_URL', 'PORT'];\n\nconst assertEqual = <TValue>(label: string, actual: TValue, expected: TValue): void => {\n if (actual === expected) return;\n\n throw new Error(`${label} mismatch: expected ${String(expected)}, received ${String(actual)}`);\n};\n\nconst createSkillItem = (index: number, assignmentSource: string, slugPrefix: string): PublishedSkillCatalogItem => ({\n assignmentSource,\n assignmentType: 'PATH',\n scopePath: '.',\n includeChildren: true,\n skill: {\n id: `skill-${slugPrefix}-${index}`,\n slug: `${slugPrefix}-${index}`,\n name: `${slugPrefix}-${index}`,\n summary: `${slugPrefix} skill ${index}`,\n whenToUse: `Use for ${slugPrefix} smoke coverage ${index}.`,\n status: 'ACTIVE',\n installPolicy: assignmentSource === 'GLOBAL' ? 'GLOBAL_CONTEXT' : 'PROJECT_INSTALLABLE',\n tags: [],\n },\n skillVersion: {\n id: `version-${slugPrefix}-${index}`,\n version: '1.0.0',\n title: 'Initial',\n summary: 'Initial publish',\n status: 'PUBLISHED',\n },\n publishedArtifact: {\n id: `artifact-${slugPrefix}-${index}`,\n frontmatterName: `${slugPrefix}-${index}`,\n frontmatterDescription: `${slugPrefix} smoke skill`,\n checksum: `checksum-${slugPrefix}-${index}`,\n publishedAt: '2026-04-22T00:00:00.000Z',\n fileCount: 1,\n },\n});\n\nconst createInstallableSkillItem = (index: number): PublishedSkillInstallableCatalogItem => {\n const item = createSkillItem(index, 'CATALOG', 'installable-skill');\n\n return {\n skill: item.skill,\n skillVersion: item.skillVersion,\n publishedArtifact: item.publishedArtifact,\n };\n};\n\nconst createEffectiveSkillsSmokePayload = (): PublishedSkillCatalogPayload => ({\n workspace: {\n id: 'workspace-effective-counts',\n slug: 'opencode-wizard',\n name: 'opencode-wizard',\n repositoryUrl: 'https://example.com/opencode-wizard.git',\n defaultBranch: 'main',\n status: 'ACTIVE',\n },\n directoryPath: '.',\n skills: [\n ...Array.from({ length: 19 }, (_, index) => createSkillItem(index + 1, 'GLOBAL', 'global-skill')),\n createSkillItem(1, 'WORKSPACE', 'workspace-skill'),\n createSkillItem(1, 'USER', 'user-skill'),\n createSkillItem(2, 'USER_GLOBAL', 'user-skill'),\n createSkillItem(3, 'USER_WORKSPACE', 'user-skill'),\n createSkillItem(4, 'USER_GLOBAL', 'user-skill'),\n ],\n catalogSkills: Array.from({ length: 11 }, (_, index) => createInstallableSkillItem(index + 1)),\n userPreferences: {\n scopeKey: 'workspace:workspace-effective-counts',\n userKey: 'user-1',\n ignoredSkills: [],\n },\n});\n\nconst assertEffectiveSkillGrouping = (payload: PublishedSkillCatalogPayload) => {\n const catalog = toPublishedSkillCatalog(payload);\n const globalSkills = catalog.skills.filter(\n (skill) => skill.contextKind === 'global' && skill.assignmentSource === 'GLOBAL',\n );\n const projectSkills = catalog.skills.filter(\n (skill) => skill.contextKind === 'project' && skill.assignmentSource === 'WORKSPACE',\n );\n const userSkills = catalog.skills.filter((skill) => skill.assignmentLabel === 'USER SCOPE assignment');\n const userSkillsWithGlobalContextKind = userSkills.filter((skill) => skill.contextKind === 'global');\n const installableSkillCount = payload.catalogSkills.length;\n\n assertEqual('published skill count', catalog.publishedSkillCount, 24);\n assertEqual('global assignment count', catalog.assignmentCounts.global, 19);\n assertEqual('project assignment count', catalog.assignmentCounts.project, 1);\n assertEqual('user assignment count', catalog.assignmentCounts.user, 4);\n assertEqual('other assignment count', catalog.assignmentCounts.other, 0);\n assertEqual('global grouped skill count', globalSkills.length, 19);\n assertEqual('project grouped skill count', projectSkills.length, 1);\n assertEqual('user grouped skill count', userSkills.length, 4);\n assertEqual('user grouped global context kind count', userSkillsWithGlobalContextKind.length, 0);\n assertEqual('installable/not installed catalog count', installableSkillCount, 11);\n\n return {\n globalAssignmentCount: catalog.assignmentCounts.global,\n projectAssignmentCount: catalog.assignmentCounts.project,\n userAssignmentCount: catalog.assignmentCounts.user,\n installableNotInstalledCount: installableSkillCount,\n };\n};\n\nconst assertRequestedSkillArgParsing = () => {\n const expectedSkills = ['frontend-components', 'frontend-styles', 'frontend-navigation'];\n const skillFieldSelection = parseRequestedSkillArgs({\n skill: 'frontend-components,frontend-styles\\nfrontend-navigation',\n });\n const skillsFieldSelection = parseRequestedSkillArgs({\n skills: 'frontend-components,frontend-styles\\nfrontend-navigation',\n });\n const mixedSelection = parseRequestedSkillArgs({\n skill: 'frontend-components, frontend-styles',\n skills: 'frontend-styles\\nfrontend-navigation',\n });\n\n assertEqual('skill field delimited selection', skillFieldSelection.join('|'), expectedSkills.join('|'));\n assertEqual('skills field delimited selection', skillsFieldSelection.join('|'), expectedSkills.join('|'));\n assertEqual('mixed field deduplicated selection', mixedSelection.join('|'), expectedSkills.join('|'));\n\n return {\n skillFieldSelection,\n skillsFieldSelection,\n mixedSelection,\n };\n};\n\nconst withBackendEnv = async <TResult>(\n env: Partial<Record<BackendEnvKey, string>>,\n callback: () => Promise<TResult>,\n): Promise<TResult> => {\n const previousValues = new Map<BackendEnvKey, string | undefined>();\n\n for (const key of BACKEND_ENV_KEYS) {\n previousValues.set(key, process.env[key]);\n delete process.env[key];\n }\n\n for (const [key, value] of Object.entries(env)) {\n process.env[key as BackendEnvKey] = value;\n }\n\n try {\n return await callback();\n } finally {\n for (const [key, value] of previousValues) {\n if (value === undefined) {\n delete process.env[key];\n continue;\n }\n\n process.env[key] = value;\n }\n }\n};\n\nconst assertBackendOriginResolution = async () => {\n const isolatedWorktree = await fs.mkdtemp(path.join(os.tmpdir(), 'opencode-wizard-plugin-smoke-'));\n\n const defaultConfig = await withBackendEnv({}, () => resolveConfig(isolatedWorktree));\n if (defaultConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected default backend origin ${DEPLOY_BACKEND_ORIGIN}, received ${defaultConfig.backendOrigin}`,\n );\n }\n\n const portOnlyConfig = await withBackendEnv({ PORT: '19876' }, () => resolveConfig(isolatedWorktree));\n if (portOnlyConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected PORT-only backend origin to stay ${DEPLOY_BACKEND_ORIGIN}, received ${portOnlyConfig.backendOrigin}`,\n );\n }\n\n const appUrlPlaceholderConfig = await withBackendEnv({ APP_URL: 'https://yourdomain.com' }, () =>\n resolveConfig(isolatedWorktree),\n );\n if (appUrlPlaceholderConfig.backendOrigin !== DEPLOY_BACKEND_ORIGIN) {\n throw new Error(\n `Expected APP_URL placeholder backend origin to stay ${DEPLOY_BACKEND_ORIGIN}, received ${appUrlPlaceholderConfig.backendOrigin}`,\n );\n }\n\n const overrideConfig = await withBackendEnv({ OPENCODE_WIZARD_BACKEND_ORIGIN: LOCAL_OVERRIDE_BACKEND_ORIGIN }, () =>\n resolveConfig(isolatedWorktree),\n );\n if (overrideConfig.backendOrigin !== LOCAL_OVERRIDE_BACKEND_ORIGIN) {\n throw new Error(\n `Expected explicit backend override ${LOCAL_OVERRIDE_BACKEND_ORIGIN}, received ${overrideConfig.backendOrigin}`,\n );\n }\n\n return {\n defaultBackendOrigin: defaultConfig.backendOrigin,\n portOnlyBackendOrigin: portOnlyConfig.backendOrigin,\n appUrlPlaceholderBackendOrigin: appUrlPlaceholderConfig.backendOrigin,\n explicitOverrideBackendOrigin: overrideConfig.backendOrigin,\n };\n};\n\nconst assertSystemNoteWizardFetchContract = (\n payload: PublishedSkillCatalogPayload,\n config: Awaited<ReturnType<typeof resolveConfig>>,\n detail: NonNullable<ReturnType<typeof toPublishedSkillDetail>>,\n) => {\n const systemNote = buildSystemNote(\n {\n directoryPath: '.',\n workspaceResolution: {\n requestedDirectory: '.',\n repositoryRoot: '.',\n repositoryUrl: 'https://example.com/opencode-wizard.git',\n fallbackWorkspaceSlug: null,\n directoryPath: '.',\n cacheKey: 'smoke-cache-key',\n },\n fetchResult: {\n ok: true,\n status: 'ready',\n authMode: 'session',\n payload,\n fetchedAt: '2026-04-22T00:00:00.000Z',\n source: 'cache',\n },\n },\n config,\n [detail],\n );\n\n if (!systemNote) {\n throw new Error('Expected system note to be generated for published skills payload');\n }\n\n const requiredFragments = [\n 'Workspace: opencode-wizard.',\n 'Active wizard skills:',\n 'Counts: 19 global, 1 project, 4 user, 0 other.',\n 'Wizard-listed skills are backend-published; fetch body via `opencode_wizard_published_skills_fetch` before use (`skills`/`skill` for multiple/single).',\n 'If native skill loading fails for a wizard name, fetch it.',\n 'Fetched wizard bodies are authoritative over local seed/native sources.',\n 'Global skills:',\n 'Project skills:',\n 'User skills:',\n 'opencode_wizard_published_skills_fetch',\n ];\n\n for (const fragment of requiredFragments) {\n if (systemNote.includes(fragment)) continue;\n\n throw new Error(`Expected system note to include prompt contract fragment: ${fragment}`);\n }\n\n return {\n includesNativeOpenCodeSkillRoute: systemNote.includes('fetch body via `opencode_wizard_published_skills_fetch` before use'),\n includesNativeSkillNotFoundEvidence: systemNote.includes('native skill loading fails'),\n includesWizardFetchToolRoute: systemNote.includes('opencode_wizard_published_skills_fetch'),\n };\n};\n\nconst run = async () => {\n const payload: PublishedSkillCatalogPayload = createEffectiveSkillsSmokePayload();\n const detailSkillItem = payload.skills[0];\n detailSkillItem.skill.slug = 'backend-auth';\n detailSkillItem.skill.name = 'backend-auth';\n detailSkillItem.skill.summary = 'Backend auth skill';\n detailSkillItem.skill.whenToUse = 'Use for JWT cookie sessions and protected backend resolver work.';\n detailSkillItem.publishedArtifact.frontmatterName = 'backend-auth';\n detailSkillItem.publishedArtifact.frontmatterDescription = 'JWT auth skill';\n detailSkillItem.publishedArtifact.fileCount = 2;\n const detailItem: PublishedSkillDetailItem = {\n ...detailSkillItem,\n publishedArtifact: {\n ...detailSkillItem.publishedArtifact,\n markdownBody: '## Mock skill\\n\\nThis is a mock published skill.',\n renderedContent: '<h2>Mock skill</h2>',\n files: [\n {\n id: 'artifact-file-1',\n relativePath: 'SKILL.md',\n contentType: 'text/markdown; charset=utf-8',\n content: '---\\nname: \"backend-auth\"\\ndescription: \"JWT auth skill\"\\n---\\n\\n## Mock skill\\n',\n checksum: 'file-checksum-1',\n size: 74,\n sortOrder: 0,\n },\n {\n id: 'artifact-file-2',\n relativePath: 'resource.md',\n contentType: 'text/markdown; charset=utf-8',\n content: '# Resource\\n',\n checksum: 'file-checksum-2',\n size: 11,\n sortOrder: 1,\n },\n ],\n },\n };\n\n const config = await resolveConfig(process.cwd());\n const backendOriginSmoke = await assertBackendOriginResolution();\n const requestedSkillArgParsingSmoke = assertRequestedSkillArgParsing();\n\n const catalog = toPublishedSkillCatalog(payload);\n const effectiveSkillGroupingSmoke = assertEffectiveSkillGrouping(createEffectiveSkillsSmokePayload());\n const selection = selectPublishedSkills(payload, ['backend-auth', 'missing-skill']);\n const detail = selection.selectedItems[0] ? toPublishedSkillDetail(detailItem) : null;\n if (!detail) {\n throw new Error('Expected backend-auth detail to be selected for smoke test');\n }\n\n const systemNoteWizardFetchContractSmoke = assertSystemNoteWizardFetchContract(payload, config, detail);\n const preview = buildSkillMarkdown(detailItem).split('\\n').slice(0, 6);\n\n console.log(\n JSON.stringify(\n {\n runtimeMode: catalog.runtimeMode,\n graphqlUrl: config.graphqlUrl,\n backendOriginSmoke,\n requestedSkillArgParsingSmoke,\n systemNoteWizardFetchContractSmoke,\n effectiveSkillGroupingSmoke,\n publishedSkillCount: catalog.publishedSkillCount,\n availableTools: catalog.availableTools,\n facets: catalog.facets,\n selectedSkillCount: selection.selectedItems.length,\n missingSkills: selection.missingIdentifiers,\n selectedSkillSlug: detail.skillSlug,\n selectedSkillTags: detail.tags,\n markdownDocumentIncludesFrontmatter: detail.markdownDocument.startsWith('---'),\n resourceFileCount: detail.resources.length,\n preview,\n markdownBodyIncludesContent: detail.markdownBody.includes('This is a mock published skill.'),\n },\n null,\n 2,\n ),\n );\n};\n\nvoid run();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RGBA } from '@opentui/core';
|
|
2
|
+
import type { JSX } from 'solid-js';
|
|
3
|
+
import type { TuiPluginApi } from '../types.js';
|
|
4
|
+
export declare const Row: (props: {
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
labelColor: string | RGBA | undefined;
|
|
8
|
+
valueColor: string | RGBA | undefined;
|
|
9
|
+
}) => any;
|
|
10
|
+
export declare const Panel: (props: {
|
|
11
|
+
title: string;
|
|
12
|
+
theme: TuiPluginApi["theme"]["current"];
|
|
13
|
+
onOpen: () => void;
|
|
14
|
+
children: JSX.Element;
|
|
15
|
+
}) => any;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
2
|
+
import { createTextNode as _$createTextNode } from "@opentui/solid";
|
|
3
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
4
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
5
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
6
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
7
|
+
export const Row = props => (() => {
|
|
8
|
+
var _el$ = _$createElement("box"),
|
|
9
|
+
_el$2 = _$createElement("text"),
|
|
10
|
+
_el$3 = _$createTextNode(`: `),
|
|
11
|
+
_el$4 = _$createElement("text");
|
|
12
|
+
_$insertNode(_el$, _el$2);
|
|
13
|
+
_$insertNode(_el$, _el$4);
|
|
14
|
+
_$setProp(_el$, "width", "100%");
|
|
15
|
+
_$setProp(_el$, "flexDirection", "row");
|
|
16
|
+
_$setProp(_el$, "overflow", "hidden");
|
|
17
|
+
_$insertNode(_el$2, _el$3);
|
|
18
|
+
_$setProp(_el$2, "flexShrink", 0);
|
|
19
|
+
_$setProp(_el$2, "wrapMode", "none");
|
|
20
|
+
_$insert(_el$2, () => props.label, _el$3);
|
|
21
|
+
_$setProp(_el$4, "flexGrow", 1);
|
|
22
|
+
_$setProp(_el$4, "overflow", "hidden");
|
|
23
|
+
_$setProp(_el$4, "wrapMode", "none");
|
|
24
|
+
_$insert(_el$4, () => props.value);
|
|
25
|
+
_$effect(_p$ => {
|
|
26
|
+
var _v$ = props.labelColor,
|
|
27
|
+
_v$2 = props.valueColor;
|
|
28
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$2, "fg", _v$, _p$.e));
|
|
29
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$4, "fg", _v$2, _p$.t));
|
|
30
|
+
return _p$;
|
|
31
|
+
}, {
|
|
32
|
+
e: undefined,
|
|
33
|
+
t: undefined
|
|
34
|
+
});
|
|
35
|
+
return _el$;
|
|
36
|
+
})();
|
|
37
|
+
export const Panel = props => (() => {
|
|
38
|
+
var _el$5 = _$createElement("box"),
|
|
39
|
+
_el$6 = _$createElement("box"),
|
|
40
|
+
_el$7 = _$createElement("box"),
|
|
41
|
+
_el$8 = _$createElement("text"),
|
|
42
|
+
_el$9 = _$createElement("b"),
|
|
43
|
+
_el$0 = _$createElement("box"),
|
|
44
|
+
_el$1 = _$createElement("text");
|
|
45
|
+
_$insertNode(_el$5, _el$6);
|
|
46
|
+
_$setProp(_el$5, "width", "100%");
|
|
47
|
+
_$setProp(_el$5, "flexDirection", "column");
|
|
48
|
+
_$setProp(_el$5, "paddingRight", 1);
|
|
49
|
+
_$insertNode(_el$6, _el$7);
|
|
50
|
+
_$insertNode(_el$6, _el$0);
|
|
51
|
+
_$setProp(_el$6, "width", "100%");
|
|
52
|
+
_$setProp(_el$6, "flexDirection", "row");
|
|
53
|
+
_$setProp(_el$6, "justifyContent", "space-between");
|
|
54
|
+
_$setProp(_el$6, "overflow", "hidden");
|
|
55
|
+
_$insertNode(_el$7, _el$8);
|
|
56
|
+
_$setProp(_el$7, "flexShrink", 0);
|
|
57
|
+
_$insertNode(_el$8, _el$9);
|
|
58
|
+
_$setProp(_el$8, "wrapMode", "none");
|
|
59
|
+
_$setProp(_el$8, "overflow", "hidden");
|
|
60
|
+
_$insert(_el$9, () => props.title);
|
|
61
|
+
_$insertNode(_el$0, _el$1);
|
|
62
|
+
_$setProp(_el$0, "flexShrink", 0);
|
|
63
|
+
_$insertNode(_el$1, _$createTextNode(`open`));
|
|
64
|
+
_$setProp(_el$1, "wrapMode", "none");
|
|
65
|
+
_$insert(_el$5, () => props.children, null);
|
|
66
|
+
_$effect(_p$ => {
|
|
67
|
+
var _v$3 = props.onOpen,
|
|
68
|
+
_v$4 = props.theme.text,
|
|
69
|
+
_v$5 = props.theme.textMuted;
|
|
70
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp(_el$5, "onMouseUp", _v$3, _p$.e));
|
|
71
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp(_el$8, "fg", _v$4, _p$.t));
|
|
72
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp(_el$1, "fg", _v$5, _p$.a));
|
|
73
|
+
return _p$;
|
|
74
|
+
}, {
|
|
75
|
+
e: undefined,
|
|
76
|
+
t: undefined,
|
|
77
|
+
a: undefined
|
|
78
|
+
});
|
|
79
|
+
return _el$5;
|
|
80
|
+
})();
|
|
81
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Row","props","_el$","_$createElement","_el$2","_el$3","_$createTextNode","_el$4","_$insertNode","_$setProp","_$insert","label","value","_$effect","_p$","_v$","labelColor","_v$2","valueColor","e","t","undefined","Panel","_el$5","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","title","children","_v$3","onOpen","_v$4","theme","text","_v$5","textMuted","a"],"sources":["../../../src/tui/components/common.tsx"],"sourcesContent":["import type { RGBA } from '@opentui/core';\nimport type { JSX } from 'solid-js';\nimport type { TuiPluginApi } from '../types.js';\n\nexport const Row = (props: {\n label: string;\n value: string;\n labelColor: string | RGBA | undefined;\n valueColor: string | RGBA | undefined;\n}) => (\n <box width=\"100%\" flexDirection=\"row\" overflow=\"hidden\">\n <text fg={props.labelColor} flexShrink={0} wrapMode=\"none\">\n {props.label}: \n </text>\n <text fg={props.valueColor} flexGrow={1} overflow=\"hidden\" wrapMode=\"none\">\n {props.value}\n </text>\n </box>\n);\n\nexport const Panel = (props: {\n title: string;\n theme: TuiPluginApi['theme']['current'];\n onOpen: () => void;\n children: JSX.Element;\n}) => (\n <box width=\"100%\" flexDirection=\"column\" paddingRight={1} onMouseUp={props.onOpen}>\n <box width=\"100%\" flexDirection=\"row\" justifyContent=\"space-between\" overflow=\"hidden\">\n <box flexShrink={0}>\n <text fg={props.theme.text} wrapMode=\"none\" overflow=\"hidden\">\n <b>{props.title}</b>\n </text>\n </box>\n <box flexShrink={0}>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n open\n </text>\n </box>\n </box>\n {props.children}\n </box>\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
2
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
3
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
4
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
5
|
+
import { compactStatusMessage } from '../formatting.js';
|
|
6
|
+
export const PreferenceActionNoticeRow = props => {
|
|
7
|
+
if (props.notice.kind === 'idle') return null;
|
|
8
|
+
return (() => {
|
|
9
|
+
var _el$ = _$createElement("text");
|
|
10
|
+
_$setProp(_el$, "wrapMode", "none");
|
|
11
|
+
_$setProp(_el$, "overflow", "hidden");
|
|
12
|
+
_$insert(_el$, () => compactStatusMessage(props.notice.message));
|
|
13
|
+
_$effect(_$p => _$setProp(_el$, "fg", props.notice.kind === 'error' ? props.theme.warning : props.theme.textMuted, _$p));
|
|
14
|
+
return _el$;
|
|
15
|
+
})();
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=preference-action-notice-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["compactStatusMessage","PreferenceActionNoticeRow","props","notice","kind","_el$","_$createElement","_$setProp","_$insert","message","_$effect","_$p","theme","warning","textMuted"],"sources":["../../../src/tui/components/preference-action-notice-row.tsx"],"sourcesContent":["import { compactStatusMessage } from '../formatting.js';\nimport type { PreferenceActionNotice, TuiPluginApi } from '../types.js';\n\nexport const PreferenceActionNoticeRow = (props: {\n notice: PreferenceActionNotice;\n theme: TuiPluginApi['theme']['current'];\n}) => {\n if (props.notice.kind === 'idle') return null;\n\n return (\n <text\n fg={props.notice.kind === 'error' ? props.theme.warning : props.theme.textMuted}\n wrapMode=\"none\"\n overflow=\"hidden\"\n >\n {compactStatusMessage(props.notice.message)}\n </text>\n );\n};\n"],"mappings":";;;;AAAA,SAASA,oBAAoB,QAAQ,kBAAkB;AAGvD,OAAO,MAAMC,yBAAyB,GAAIC,KAGzC,IAAK;EACJ,IAAIA,KAAK,CAACC,MAAM,CAACC,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI;EAE7C;IAAA,IAAAC,IAAA,GAAAC,eAAA;IAAAC,SAAA,CAAAF,IAAA,cAGa,MAAM;IAAAE,SAAA,CAAAF,IAAA,cACN,QAAQ;IAAAG,QAAA,CAAAH,IAAA,QAEhBL,oBAAoB,CAACE,KAAK,CAACC,MAAM,CAACM,OAAO,CAAC;IAAAC,QAAA,CAAAC,GAAA,IAAAJ,SAAA,CAAAF,IAAA,QAJvCH,KAAK,CAACC,MAAM,CAACC,IAAI,KAAK,OAAO,GAAGF,KAAK,CAACU,KAAK,CAACC,OAAO,GAAGX,KAAK,CAACU,KAAK,CAACE,SAAS,EAAAH,GAAA;IAAA,OAAAN,IAAA;EAAA;AAOrF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PreferenceScope, SkillDialogRow, TuiPluginApi } from '../types.js';
|
|
2
|
+
export declare const SkillCatalogRow: (props: {
|
|
3
|
+
row: SkillDialogRow;
|
|
4
|
+
theme: TuiPluginApi["theme"]["current"];
|
|
5
|
+
onIgnore: (row: SkillDialogRow) => void;
|
|
6
|
+
onInstall: (row: SkillDialogRow, preferenceScope: PreferenceScope) => void;
|
|
7
|
+
onUninstall: (row: SkillDialogRow) => void;
|
|
8
|
+
}) => any;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
2
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
3
|
+
import { createTextNode as _$createTextNode } from "@opentui/solid";
|
|
4
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
5
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
6
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
7
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
8
|
+
import { compactSkillDescription, compactSkillMeta, compactSkillName } from '../formatting.js';
|
|
9
|
+
import { getRowStateLabel, getSkillDescription, getSkillDisplayName, getSkillMeta } from '../skill-helpers.js';
|
|
10
|
+
export const SkillCatalogRow = props => {
|
|
11
|
+
const skill = props.row.skill;
|
|
12
|
+
const description = getSkillDescription(skill);
|
|
13
|
+
const canUninstall = skill.assignmentSource === 'USER_GLOBAL' || skill.assignmentSource === 'USER_WORKSPACE';
|
|
14
|
+
return (() => {
|
|
15
|
+
var _el$ = _$createElement("box"),
|
|
16
|
+
_el$2 = _$createElement("box"),
|
|
17
|
+
_el$3 = _$createElement("text"),
|
|
18
|
+
_el$4 = _$createElement("b"),
|
|
19
|
+
_el$5 = _$createTextNode(` (`),
|
|
20
|
+
_el$7 = _$createTextNode(`)`),
|
|
21
|
+
_el$8 = _$createElement("box"),
|
|
22
|
+
_el$9 = _$createElement("text");
|
|
23
|
+
_$insertNode(_el$, _el$2);
|
|
24
|
+
_$insertNode(_el$, _el$9);
|
|
25
|
+
_$setProp(_el$, "width", "100%");
|
|
26
|
+
_$setProp(_el$, "flexDirection", "column");
|
|
27
|
+
_$setProp(_el$, "overflow", "hidden");
|
|
28
|
+
_$setProp(_el$, "marginBottom", 1);
|
|
29
|
+
_$insertNode(_el$2, _el$3);
|
|
30
|
+
_$insertNode(_el$2, _el$8);
|
|
31
|
+
_$setProp(_el$2, "width", "100%");
|
|
32
|
+
_$setProp(_el$2, "flexDirection", "row");
|
|
33
|
+
_$setProp(_el$2, "justifyContent", "space-between");
|
|
34
|
+
_$setProp(_el$2, "overflow", "hidden");
|
|
35
|
+
_$insertNode(_el$3, _el$4);
|
|
36
|
+
_$insertNode(_el$3, _el$5);
|
|
37
|
+
_$insertNode(_el$3, _el$7);
|
|
38
|
+
_$setProp(_el$3, "wrapMode", "none");
|
|
39
|
+
_$setProp(_el$3, "overflow", "hidden");
|
|
40
|
+
_$insert(_el$4, () => compactSkillName(getSkillDisplayName(skill)));
|
|
41
|
+
_$insert(_el$3, () => getRowStateLabel(props.row), _el$7);
|
|
42
|
+
_$setProp(_el$8, "flexDirection", "row");
|
|
43
|
+
_$setProp(_el$8, "flexShrink", 0);
|
|
44
|
+
_$insert(_el$8, (() => {
|
|
45
|
+
var _c$ = _$memo(() => props.row.state === 'installable');
|
|
46
|
+
return () => _c$() ? [(() => {
|
|
47
|
+
var _el$0 = _$createElement("box"),
|
|
48
|
+
_el$1 = _$createElement("text");
|
|
49
|
+
_$insertNode(_el$0, _el$1);
|
|
50
|
+
_$setProp(_el$0, "onMouseUp", () => props.onInstall(props.row, 'global'));
|
|
51
|
+
_$setProp(_el$0, "flexShrink", 0);
|
|
52
|
+
_$insertNode(_el$1, _$createTextNode(`GLOBAL SCOPE`));
|
|
53
|
+
_$setProp(_el$1, "wrapMode", "none");
|
|
54
|
+
_$effect(_$p => _$setProp(_el$1, "fg", props.theme.textMuted, _$p));
|
|
55
|
+
return _el$0;
|
|
56
|
+
})(), (() => {
|
|
57
|
+
var _el$11 = _$createElement("text");
|
|
58
|
+
_$insertNode(_el$11, _$createTextNode(` / `));
|
|
59
|
+
_$setProp(_el$11, "wrapMode", "none");
|
|
60
|
+
_$effect(_$p => _$setProp(_el$11, "fg", props.theme.textMuted, _$p));
|
|
61
|
+
return _el$11;
|
|
62
|
+
})(), (() => {
|
|
63
|
+
var _el$13 = _$createElement("box"),
|
|
64
|
+
_el$14 = _$createElement("text");
|
|
65
|
+
_$insertNode(_el$13, _el$14);
|
|
66
|
+
_$setProp(_el$13, "onMouseUp", () => props.onInstall(props.row, 'project'));
|
|
67
|
+
_$setProp(_el$13, "flexShrink", 0);
|
|
68
|
+
_$insertNode(_el$14, _$createTextNode(`PROJECT SCOPE`));
|
|
69
|
+
_$setProp(_el$14, "wrapMode", "none");
|
|
70
|
+
_$effect(_$p => _$setProp(_el$14, "fg", props.theme.textMuted, _$p));
|
|
71
|
+
return _el$13;
|
|
72
|
+
})()] : [(() => {
|
|
73
|
+
var _el$16 = _$createElement("box"),
|
|
74
|
+
_el$17 = _$createElement("text");
|
|
75
|
+
_$insertNode(_el$16, _el$17);
|
|
76
|
+
_$setProp(_el$16, "onMouseUp", () => props.onIgnore(props.row));
|
|
77
|
+
_$setProp(_el$16, "flexShrink", 0);
|
|
78
|
+
_$setProp(_el$17, "wrapMode", "none");
|
|
79
|
+
_$insert(_el$17, () => props.row.ignored ? 'Unignore' : 'Ignore');
|
|
80
|
+
_$effect(_$p => _$setProp(_el$17, "fg", props.theme.textMuted, _$p));
|
|
81
|
+
return _el$16;
|
|
82
|
+
})(), canUninstall ? [(() => {
|
|
83
|
+
var _el$18 = _$createElement("text");
|
|
84
|
+
_$insertNode(_el$18, _$createTextNode(` / `));
|
|
85
|
+
_$setProp(_el$18, "wrapMode", "none");
|
|
86
|
+
_$effect(_$p => _$setProp(_el$18, "fg", props.theme.textMuted, _$p));
|
|
87
|
+
return _el$18;
|
|
88
|
+
})(), (() => {
|
|
89
|
+
var _el$20 = _$createElement("box"),
|
|
90
|
+
_el$21 = _$createElement("text");
|
|
91
|
+
_$insertNode(_el$20, _el$21);
|
|
92
|
+
_$setProp(_el$20, "onMouseUp", () => props.onUninstall(props.row));
|
|
93
|
+
_$setProp(_el$20, "flexShrink", 0);
|
|
94
|
+
_$insertNode(_el$21, _$createTextNode(`Uninstall`));
|
|
95
|
+
_$setProp(_el$21, "wrapMode", "none");
|
|
96
|
+
_$effect(_$p => _$setProp(_el$21, "fg", props.theme.textMuted, _$p));
|
|
97
|
+
return _el$20;
|
|
98
|
+
})()] : null];
|
|
99
|
+
})());
|
|
100
|
+
_$setProp(_el$9, "wrapMode", "none");
|
|
101
|
+
_$setProp(_el$9, "overflow", "hidden");
|
|
102
|
+
_$insert(_el$9, () => compactSkillMeta(getSkillMeta(skill, props.row.state)));
|
|
103
|
+
_$insert(_el$, description ? (() => {
|
|
104
|
+
var _el$23 = _$createElement("text");
|
|
105
|
+
_$setProp(_el$23, "wrapMode", "none");
|
|
106
|
+
_$setProp(_el$23, "overflow", "hidden");
|
|
107
|
+
_$insert(_el$23, () => compactSkillDescription(description));
|
|
108
|
+
_$effect(_$p => _$setProp(_el$23, "fg", props.theme.text, _$p));
|
|
109
|
+
return _el$23;
|
|
110
|
+
})() : null, null);
|
|
111
|
+
_$effect(_p$ => {
|
|
112
|
+
var _v$ = props.row.ignored ? props.theme.textMuted : props.theme.text,
|
|
113
|
+
_v$2 = props.theme.textMuted;
|
|
114
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$3, "fg", _v$, _p$.e));
|
|
115
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$9, "fg", _v$2, _p$.t));
|
|
116
|
+
return _p$;
|
|
117
|
+
}, {
|
|
118
|
+
e: undefined,
|
|
119
|
+
t: undefined
|
|
120
|
+
});
|
|
121
|
+
return _el$;
|
|
122
|
+
})();
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=skill-catalog-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["compactSkillDescription","compactSkillMeta","compactSkillName","getRowStateLabel","getSkillDescription","getSkillDisplayName","getSkillMeta","SkillCatalogRow","props","skill","row","description","canUninstall","assignmentSource","_el$","_$createElement","_el$2","_el$3","_el$4","_el$5","_$createTextNode","_el$7","_el$8","_el$9","_$insertNode","_$setProp","_$insert","_c$","_$memo","state","_el$0","_el$1","onInstall","_$effect","_$p","theme","textMuted","_el$11","_el$13","_el$14","_el$16","_el$17","onIgnore","ignored","_el$18","_el$20","_el$21","onUninstall","_el$23","text","_p$","_v$","_v$2","e","t","undefined"],"sources":["../../../src/tui/components/skill-catalog-row.tsx"],"sourcesContent":["import { compactSkillDescription, compactSkillMeta, compactSkillName } from '../formatting.js';\nimport {\n getRowStateLabel,\n getSkillDescription,\n getSkillDisplayName,\n getSkillMeta,\n} from '../skill-helpers.js';\nimport type { PreferenceScope, SkillDialogRow, TuiPluginApi } from '../types.js';\n\nexport const SkillCatalogRow = (props: {\n row: SkillDialogRow;\n theme: TuiPluginApi['theme']['current'];\n onIgnore: (row: SkillDialogRow) => void;\n onInstall: (row: SkillDialogRow, preferenceScope: PreferenceScope) => void;\n onUninstall: (row: SkillDialogRow) => void;\n}) => {\n const skill = props.row.skill;\n const description = getSkillDescription(skill);\n const canUninstall = skill.assignmentSource === 'USER_GLOBAL' || skill.assignmentSource === 'USER_WORKSPACE';\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\" marginBottom={1}>\n <box width=\"100%\" flexDirection=\"row\" justifyContent=\"space-between\" overflow=\"hidden\">\n <text fg={props.row.ignored ? props.theme.textMuted : props.theme.text} wrapMode=\"none\" overflow=\"hidden\">\n <b>{compactSkillName(getSkillDisplayName(skill))}</b>\n {' '}({getRowStateLabel(props.row)})\n </text>\n <box flexDirection=\"row\" flexShrink={0}>\n {props.row.state === 'installable' ? (\n <>\n <box onMouseUp={() => props.onInstall(props.row, 'global')} flexShrink={0}>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n GLOBAL SCOPE\n </text>\n </box>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n {' / '}\n </text>\n <box onMouseUp={() => props.onInstall(props.row, 'project')} flexShrink={0}>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n PROJECT SCOPE\n </text>\n </box>\n </>\n ) : (\n <>\n <box onMouseUp={() => props.onIgnore(props.row)} flexShrink={0}>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n {props.row.ignored ? 'Unignore' : 'Ignore'}\n </text>\n </box>\n {canUninstall ? (\n <>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n {' / '}\n </text>\n <box onMouseUp={() => props.onUninstall(props.row)} flexShrink={0}>\n <text fg={props.theme.textMuted} wrapMode=\"none\">\n Uninstall\n </text>\n </box>\n </>\n ) : null}\n </>\n )}\n </box>\n </box>\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n {compactSkillMeta(getSkillMeta(skill, props.row.state))}\n </text>\n {description ? (\n <text fg={props.theme.text} wrapMode=\"none\" overflow=\"hidden\">\n {compactSkillDescription(description)}\n </text>\n ) : null}\n </box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PluginStatusSnapshot } from '../../server.js';
|
|
2
|
+
import type { StatusState, TuiPluginApi } from '../types.js';
|
|
3
|
+
export declare const StatusContent: (props: {
|
|
4
|
+
status: StatusState;
|
|
5
|
+
theme: TuiPluginApi["theme"]["current"];
|
|
6
|
+
}) => any;
|
|
7
|
+
export declare const SkillsRows: (props: {
|
|
8
|
+
api: TuiPluginApi;
|
|
9
|
+
status: () => StatusState;
|
|
10
|
+
}) => any;
|
|
11
|
+
export declare const ReadyRows: (props: {
|
|
12
|
+
snapshot: PluginStatusSnapshot;
|
|
13
|
+
theme: TuiPluginApi["theme"]["current"];
|
|
14
|
+
}) => any;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
2
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
3
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
4
|
+
import { createTextNode as _$createTextNode } from "@opentui/solid";
|
|
5
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
6
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
7
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
8
|
+
import { createMemo } from 'solid-js';
|
|
9
|
+
import { compactStatusMessage, formatAuthStatus, formatBackendOriginLabel, formatSkillsCatalogUnavailableMessage } from '../formatting.js';
|
|
10
|
+
import { getInstallableNotInstalledSkills } from '../skill-helpers.js';
|
|
11
|
+
import { Row } from './common.js';
|
|
12
|
+
export const StatusContent = props => {
|
|
13
|
+
if (props.status.kind === 'loading') {
|
|
14
|
+
return (() => {
|
|
15
|
+
var _el$ = _$createElement("text");
|
|
16
|
+
_$insertNode(_el$, _$createTextNode(`loading…`));
|
|
17
|
+
_$setProp(_el$, "wrapMode", "none");
|
|
18
|
+
_$setProp(_el$, "overflow", "hidden");
|
|
19
|
+
_$effect(_$p => _$setProp(_el$, "fg", props.theme.textMuted, _$p));
|
|
20
|
+
return _el$;
|
|
21
|
+
})();
|
|
22
|
+
}
|
|
23
|
+
if (props.status.kind === 'error') {
|
|
24
|
+
return (() => {
|
|
25
|
+
var _el$3 = _$createElement("text"),
|
|
26
|
+
_el$4 = _$createTextNode(`unavailable: `);
|
|
27
|
+
_$insertNode(_el$3, _el$4);
|
|
28
|
+
_$setProp(_el$3, "wrapMode", "none");
|
|
29
|
+
_$setProp(_el$3, "overflow", "hidden");
|
|
30
|
+
_$insert(_el$3, () => compactStatusMessage(props.status.message), null);
|
|
31
|
+
_$effect(_$p => _$setProp(_el$3, "fg", props.theme.warning, _$p));
|
|
32
|
+
return _el$3;
|
|
33
|
+
})();
|
|
34
|
+
}
|
|
35
|
+
return _$createComponent(ReadyRows, {
|
|
36
|
+
get snapshot() {
|
|
37
|
+
return props.status.snapshot;
|
|
38
|
+
},
|
|
39
|
+
get theme() {
|
|
40
|
+
return props.theme;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export const SkillsRows = props => {
|
|
45
|
+
const theme = createMemo(() => props.api.theme.current);
|
|
46
|
+
const statusContent = () => {
|
|
47
|
+
const currentStatus = props.status();
|
|
48
|
+
return _$createComponent(StatusContent, {
|
|
49
|
+
status: currentStatus,
|
|
50
|
+
get theme() {
|
|
51
|
+
return theme();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
return (() => {
|
|
56
|
+
var _el$5 = _$createElement("box");
|
|
57
|
+
_$setProp(_el$5, "width", "100%");
|
|
58
|
+
_$setProp(_el$5, "flexDirection", "column");
|
|
59
|
+
_$setProp(_el$5, "overflow", "hidden");
|
|
60
|
+
_$insert(_el$5, statusContent);
|
|
61
|
+
return _el$5;
|
|
62
|
+
})();
|
|
63
|
+
};
|
|
64
|
+
export const ReadyRows = props => {
|
|
65
|
+
const statusRows = [_$createComponent(Row, {
|
|
66
|
+
label: "url",
|
|
67
|
+
get value() {
|
|
68
|
+
return formatBackendOriginLabel(props.snapshot.backendOrigin);
|
|
69
|
+
},
|
|
70
|
+
get labelColor() {
|
|
71
|
+
return props.theme.textMuted;
|
|
72
|
+
},
|
|
73
|
+
get valueColor() {
|
|
74
|
+
return props.theme.text;
|
|
75
|
+
}
|
|
76
|
+
}), _$createComponent(Row, {
|
|
77
|
+
label: "auth",
|
|
78
|
+
get value() {
|
|
79
|
+
return formatAuthStatus(props.snapshot);
|
|
80
|
+
},
|
|
81
|
+
get labelColor() {
|
|
82
|
+
return props.theme.textMuted;
|
|
83
|
+
},
|
|
84
|
+
get valueColor() {
|
|
85
|
+
return props.theme.text;
|
|
86
|
+
}
|
|
87
|
+
})];
|
|
88
|
+
if (!props.snapshot.catalog) {
|
|
89
|
+
return (() => {
|
|
90
|
+
var _el$6 = _$createElement("box");
|
|
91
|
+
_$setProp(_el$6, "width", "100%");
|
|
92
|
+
_$setProp(_el$6, "flexDirection", "column");
|
|
93
|
+
_$setProp(_el$6, "overflow", "hidden");
|
|
94
|
+
_$insert(_el$6, statusRows, null);
|
|
95
|
+
_$insert(_el$6, _$createComponent(Row, {
|
|
96
|
+
label: "catalog",
|
|
97
|
+
get value() {
|
|
98
|
+
return formatSkillsCatalogUnavailableMessage(props.snapshot);
|
|
99
|
+
},
|
|
100
|
+
get labelColor() {
|
|
101
|
+
return props.theme.textMuted;
|
|
102
|
+
},
|
|
103
|
+
get valueColor() {
|
|
104
|
+
return props.theme.text;
|
|
105
|
+
}
|
|
106
|
+
}), null);
|
|
107
|
+
return _el$6;
|
|
108
|
+
})();
|
|
109
|
+
}
|
|
110
|
+
const installableNotInstalledCount = getInstallableNotInstalledSkills(props.snapshot).length;
|
|
111
|
+
const catalogStatus = `${props.snapshot.catalog.publishedSkillCount} loaded · ${installableNotInstalledCount} installable · ${props.snapshot.ignoredPublishedSkills.count} ignored · open for details`;
|
|
112
|
+
return (() => {
|
|
113
|
+
var _el$7 = _$createElement("box");
|
|
114
|
+
_$setProp(_el$7, "width", "100%");
|
|
115
|
+
_$setProp(_el$7, "flexDirection", "column");
|
|
116
|
+
_$setProp(_el$7, "overflow", "hidden");
|
|
117
|
+
_$insert(_el$7, statusRows, null);
|
|
118
|
+
_$insert(_el$7, _$createComponent(Row, {
|
|
119
|
+
label: "catalog",
|
|
120
|
+
value: catalogStatus,
|
|
121
|
+
get labelColor() {
|
|
122
|
+
return props.theme.textMuted;
|
|
123
|
+
},
|
|
124
|
+
get valueColor() {
|
|
125
|
+
return props.theme.text;
|
|
126
|
+
}
|
|
127
|
+
}), null);
|
|
128
|
+
return _el$7;
|
|
129
|
+
})();
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=status-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createMemo","compactStatusMessage","formatAuthStatus","formatBackendOriginLabel","formatSkillsCatalogUnavailableMessage","getInstallableNotInstalledSkills","Row","StatusContent","props","status","kind","_el$","_$createElement","_$insertNode","_$createTextNode","_$setProp","_$effect","_$p","theme","textMuted","_el$3","_el$4","_$insert","message","warning","_$createComponent","ReadyRows","snapshot","SkillsRows","api","current","statusContent","currentStatus","_el$5","statusRows","label","value","backendOrigin","labelColor","valueColor","text","catalog","_el$6","installableNotInstalledCount","length","catalogStatus","publishedSkillCount","ignoredPublishedSkills","count","_el$7"],"sources":["../../../src/tui/components/status-content.tsx"],"sourcesContent":["import { createMemo } from 'solid-js';\nimport type { PluginStatusSnapshot } from '../../server.js';\nimport { compactStatusMessage, formatAuthStatus, formatBackendOriginLabel, formatSkillsCatalogUnavailableMessage } from '../formatting.js';\nimport { getInstallableNotInstalledSkills } from '../skill-helpers.js';\nimport type { StatusState, TuiPluginApi } from '../types.js';\nimport { Row } from './common.js';\n\nexport const StatusContent = (props: { status: StatusState; theme: TuiPluginApi['theme']['current'] }) => {\n if (props.status.kind === 'loading') {\n return (\n <text fg={props.theme.textMuted} wrapMode=\"none\" overflow=\"hidden\">\n loading…\n </text>\n );\n }\n\n if (props.status.kind === 'error') {\n return (\n <text fg={props.theme.warning} wrapMode=\"none\" overflow=\"hidden\">\n unavailable: {compactStatusMessage(props.status.message)}\n </text>\n );\n }\n\n return <ReadyRows snapshot={props.status.snapshot} theme={props.theme} />;\n};\n\nexport const SkillsRows = (props: { api: TuiPluginApi; status: () => StatusState }) => {\n const theme = createMemo(() => props.api.theme.current);\n const statusContent = () => {\n const currentStatus = props.status();\n\n return <StatusContent status={currentStatus} theme={theme()} />;\n };\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusContent()}\n </box>\n );\n};\n\nexport const ReadyRows = (props: { snapshot: PluginStatusSnapshot; theme: TuiPluginApi['theme']['current'] }) => {\n const statusRows = (\n <>\n <Row\n label=\"url\"\n value={formatBackendOriginLabel(props.snapshot.backendOrigin)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n <Row label=\"auth\" value={formatAuthStatus(props.snapshot)} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </>\n );\n\n if (!props.snapshot.catalog) {\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row\n label=\"catalog\"\n value={formatSkillsCatalogUnavailableMessage(props.snapshot)}\n labelColor={props.theme.textMuted}\n valueColor={props.theme.text}\n />\n </box>\n );\n }\n\n const installableNotInstalledCount = getInstallableNotInstalledSkills(props.snapshot).length;\n const catalogStatus = `${props.snapshot.catalog.publishedSkillCount} loaded · ${installableNotInstalledCount} installable · ${props.snapshot.ignoredPublishedSkills.count} ignored · open for details`;\n\n return (\n <box width=\"100%\" flexDirection=\"column\" overflow=\"hidden\">\n {statusRows}\n <Row label=\"catalog\" value={catalogStatus} labelColor={props.theme.textMuted} valueColor={props.theme.text} />\n </box>\n );\n};\n"],"mappings":";;;;;;;AAAA,SAASA,UAAU,QAAQ,UAAU;AAErC,SAASC,oBAAoB,EAAEC,gBAAgB,EAAEC,wBAAwB,EAAEC,qCAAqC,QAAQ,kBAAkB;AAC1I,SAASC,gCAAgC,QAAQ,qBAAqB;AAEtE,SAASC,GAAG,QAAQ,aAAa;AAEjC,OAAO,MAAMC,aAAa,GAAIC,KAAuE,IAAK;EACxG,IAAIA,KAAK,CAACC,MAAM,CAACC,IAAI,KAAK,SAAS,EAAE;IACnC;MAAA,IAAAC,IAAA,GAAAC,eAAA;MAAAC,YAAA,CAAAF,IAAA,EAAAG,gBAAA;MAAAC,SAAA,CAAAJ,IAAA,cAC4C,MAAM;MAAAI,SAAA,CAAAJ,IAAA,cAAU,QAAQ;MAAAK,QAAA,CAAAC,GAAA,IAAAF,SAAA,CAAAJ,IAAA,QAAxDH,KAAK,CAACU,KAAK,CAACC,SAAS,EAAAF,GAAA;MAAA,OAAAN,IAAA;IAAA;EAInC;EAEA,IAAIH,KAAK,CAACC,MAAM,CAACC,IAAI,KAAK,OAAO,EAAE;IACjC;MAAA,IAAAU,KAAA,GAAAR,eAAA;QAAAS,KAAA,GAAAP,gBAAA;MAAAD,YAAA,CAAAO,KAAA,EAAAC,KAAA;MAAAN,SAAA,CAAAK,KAAA,cAC0C,MAAM;MAAAL,SAAA,CAAAK,KAAA,cAAU,QAAQ;MAAAE,QAAA,CAAAF,KAAA,QAChDnB,oBAAoB,CAACO,KAAK,CAACC,MAAM,CAACc,OAAO,CAAC;MAAAP,QAAA,CAAAC,GAAA,IAAAF,SAAA,CAAAK,KAAA,QADhDZ,KAAK,CAACU,KAAK,CAACM,OAAO,EAAAP,GAAA;MAAA,OAAAG,KAAA;IAAA;EAIjC;EAEA,OAAAK,iBAAA,CAAQC,SAAS;IAAA,IAACC,QAAQA,CAAA;MAAA,OAAEnB,KAAK,CAACC,MAAM,CAACkB,QAAQ;IAAA;IAAA,IAAET,KAAKA,CAAA;MAAA,OAAEV,KAAK,CAACU,KAAK;IAAA;EAAA;AACvE,CAAC;AAED,OAAO,MAAMU,UAAU,GAAIpB,KAAuD,IAAK;EACrF,MAAMU,KAAK,GAAGlB,UAAU,CAAC,MAAMQ,KAAK,CAACqB,GAAG,CAACX,KAAK,CAACY,OAAO,CAAC;EACvD,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC1B,MAAMC,aAAa,GAAGxB,KAAK,CAACC,MAAM,CAAC,CAAC;IAEpC,OAAAgB,iBAAA,CAAQlB,aAAa;MAACE,MAAM,EAAEuB,aAAa;MAAA,IAAEd,KAAKA,CAAA;QAAA,OAAEA,KAAK,CAAC,CAAC;MAAA;IAAA;EAC7D,CAAC;EAED;IAAA,IAAAe,KAAA,GAAArB,eAAA;IAAAG,SAAA,CAAAkB,KAAA,WACa,MAAM;IAAAlB,SAAA,CAAAkB,KAAA,mBAAe,QAAQ;IAAAlB,SAAA,CAAAkB,KAAA,cAAU,QAAQ;IAAAX,QAAA,CAAAW,KAAA,EACvDF,aAAa;IAAA,OAAAE,KAAA;EAAA;AAGpB,CAAC;AAED,OAAO,MAAMP,SAAS,GAAIlB,KAAkF,IAAK;EAC/G,MAAM0B,UAAU,IAAAT,iBAAA,CAEXnB,GAAG;IACF6B,KAAK;IAAA,IACLC,KAAKA,CAAA;MAAA,OAAEjC,wBAAwB,CAACK,KAAK,CAACmB,QAAQ,CAACU,aAAa,CAAC;IAAA;IAAA,IAC7DC,UAAUA,CAAA;MAAA,OAAE9B,KAAK,CAACU,KAAK,CAACC,SAAS;IAAA;IAAA,IACjCoB,UAAUA,CAAA;MAAA,OAAE/B,KAAK,CAACU,KAAK,CAACsB,IAAI;IAAA;EAAA,IAAAf,iBAAA,CAE7BnB,GAAG;IAAC6B,KAAK;IAAA,IAAQC,KAAKA,CAAA;MAAA,OAAElC,gBAAgB,CAACM,KAAK,CAACmB,QAAQ,CAAC;IAAA;IAAA,IAAEW,UAAUA,CAAA;MAAA,OAAE9B,KAAK,CAACU,KAAK,CAACC,SAAS;IAAA;IAAA,IAAEoB,UAAUA,CAAA;MAAA,OAAE/B,KAAK,CAACU,KAAK,CAACsB,IAAI;IAAA;EAAA,GAE7H;EAED,IAAI,CAAChC,KAAK,CAACmB,QAAQ,CAACc,OAAO,EAAE;IAC3B;MAAA,IAAAC,KAAA,GAAA9B,eAAA;MAAAG,SAAA,CAAA2B,KAAA,WACa,MAAM;MAAA3B,SAAA,CAAA2B,KAAA,mBAAe,QAAQ;MAAA3B,SAAA,CAAA2B,KAAA,cAAU,QAAQ;MAAApB,QAAA,CAAAoB,KAAA,EACvDR,UAAU;MAAAZ,QAAA,CAAAoB,KAAA,EAAAjB,iBAAA,CACVnB,GAAG;QACF6B,KAAK;QAAA,IACLC,KAAKA,CAAA;UAAA,OAAEhC,qCAAqC,CAACI,KAAK,CAACmB,QAAQ,CAAC;QAAA;QAAA,IAC5DW,UAAUA,CAAA;UAAA,OAAE9B,KAAK,CAACU,KAAK,CAACC,SAAS;QAAA;QAAA,IACjCoB,UAAUA,CAAA;UAAA,OAAE/B,KAAK,CAACU,KAAK,CAACsB,IAAI;QAAA;MAAA;MAAA,OAAAE,KAAA;IAAA;EAIpC;EAEA,MAAMC,4BAA4B,GAAGtC,gCAAgC,CAACG,KAAK,CAACmB,QAAQ,CAAC,CAACiB,MAAM;EAC5F,MAAMC,aAAa,GAAG,GAAGrC,KAAK,CAACmB,QAAQ,CAACc,OAAO,CAACK,mBAAmB,aAAaH,4BAA4B,kBAAkBnC,KAAK,CAACmB,QAAQ,CAACoB,sBAAsB,CAACC,KAAK,6BAA6B;EAEtM;IAAA,IAAAC,KAAA,GAAArC,eAAA;IAAAG,SAAA,CAAAkC,KAAA,WACa,MAAM;IAAAlC,SAAA,CAAAkC,KAAA,mBAAe,QAAQ;IAAAlC,SAAA,CAAAkC,KAAA,cAAU,QAAQ;IAAA3B,QAAA,CAAA2B,KAAA,EACvDf,UAAU;IAAAZ,QAAA,CAAA2B,KAAA,EAAAxB,iBAAA,CACVnB,GAAG;MAAC6B,KAAK;MAAWC,KAAK,EAAES,aAAa;MAAA,IAAEP,UAAUA,CAAA;QAAA,OAAE9B,KAAK,CAACU,KAAK,CAACC,SAAS;MAAA;MAAA,IAAEoB,UAAUA,CAAA;QAAA,OAAE/B,KAAK,CAACU,KAAK,CAACsB,IAAI;MAAA;IAAA;IAAA,OAAAS,KAAA;EAAA;AAGhH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PreferenceActionNotice, PreferenceScope, SkillDialogRow, StatusState, TuiPluginApi } from '../types.js';
|
|
2
|
+
export declare const WizardSkillsDialogContent: (props: {
|
|
3
|
+
status: () => StatusState;
|
|
4
|
+
actionNotice: () => PreferenceActionNotice;
|
|
5
|
+
theme: TuiPluginApi["theme"]["current"];
|
|
6
|
+
onIgnoreSkill: (row: SkillDialogRow) => void;
|
|
7
|
+
onInstallSkill: (row: SkillDialogRow, preferenceScope: PreferenceScope) => void;
|
|
8
|
+
onUninstallSkill: (row: SkillDialogRow) => void;
|
|
9
|
+
}) => any;
|