Skip to content

Commit 64eea48

Browse files
authored
Merge pull request #1574 from QwenLM/fix/pkg-dependence
fix dependences of core pkg
2 parents 06b64b0 + aa80e73 commit 64eea48

File tree

6 files changed

+58
-47
lines changed

6 files changed

+58
-47
lines changed

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cli/src/commands/extensions/list.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ vi.mock('./utils.js', () => ({
2323
getLoadedExtensions: mockGetLoadedExtensions,
2424
toOutputString: mockToOutputString,
2525
}),
26+
extensionToOutputString: mockToOutputString,
2627
}));
2728

2829
vi.mock('../../utils/errors.js', () => ({

packages/cli/src/commands/extensions/list.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import type { CommandModule } from 'yargs';
88
import { getErrorMessage } from '../../utils/errors.js';
9-
import { getExtensionManager } from './utils.js';
9+
import { extensionToOutputString, getExtensionManager } from './utils.js';
1010
import { t } from '../../i18n/index.js';
1111

1212
export async function handleList() {
@@ -21,7 +21,7 @@ export async function handleList() {
2121
console.log(
2222
extensions
2323
.map((extension, _): string =>
24-
extensionManager.toOutputString(extension, process.cwd()),
24+
extensionToOutputString(extension, extensionManager, process.cwd()),
2525
)
2626
.join('\n\n'),
2727
);

packages/cli/src/commands/extensions/utils.ts

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
import { ExtensionManager } from '@qwen-code/qwen-code-core';
7+
import { ExtensionManager, type Extension } from '@qwen-code/qwen-code-core';
88
import { loadSettings } from '../../config/settings.js';
99
import {
1010
requestConsentOrFail,
1111
requestConsentNonInteractive,
1212
} from './consent.js';
1313
import { isWorkspaceTrusted } from '../../config/trustedFolders.js';
14+
import * as os from 'node:os';
15+
import chalk from 'chalk';
1416

1517
export async function getExtensionManager(): Promise<ExtensionManager> {
1618
const workspaceDir = process.cwd();
@@ -25,3 +27,53 @@ export async function getExtensionManager(): Promise<ExtensionManager> {
2527
await extensionManager.refreshCache();
2628
return extensionManager;
2729
}
30+
31+
export function extensionToOutputString(
32+
extension: Extension,
33+
extensionManager: ExtensionManager,
34+
workspaceDir: string,
35+
): string {
36+
const cwd = workspaceDir;
37+
const userEnabled = extensionManager.isEnabled(
38+
extension.config.name,
39+
os.homedir(),
40+
);
41+
const workspaceEnabled = extensionManager.isEnabled(
42+
extension.config.name,
43+
cwd,
44+
);
45+
46+
const status = workspaceEnabled ? chalk.green('✓') : chalk.red('✗');
47+
let output = `${status} ${extension.config.name} (${extension.config.version})`;
48+
output += `\n Path: ${extension.path}`;
49+
if (extension.installMetadata) {
50+
output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
51+
if (extension.installMetadata.ref) {
52+
output += `\n Ref: ${extension.installMetadata.ref}`;
53+
}
54+
if (extension.installMetadata.releaseTag) {
55+
output += `\n Release tag: ${extension.installMetadata.releaseTag}`;
56+
}
57+
}
58+
output += `\n Enabled (User): ${userEnabled}`;
59+
output += `\n Enabled (Workspace): ${workspaceEnabled}`;
60+
if (extension.contextFiles.length > 0) {
61+
output += `\n Context files:`;
62+
extension.contextFiles.forEach((contextFile) => {
63+
output += `\n ${contextFile}`;
64+
});
65+
}
66+
if (extension.commands && extension.commands.length > 0) {
67+
output += `\n Commands:`;
68+
extension.commands.forEach((command) => {
69+
output += `\n /${command}`;
70+
});
71+
}
72+
if (extension.config.mcpServers) {
73+
output += `\n MCP servers:`;
74+
Object.keys(extension.config.mcpServers).forEach((key) => {
75+
output += `\n ${key}`;
76+
});
77+
}
78+
return output;
79+
}

packages/core/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"@opentelemetry/sdk-node": "^0.203.0",
3838
"@types/html-to-text": "^9.0.4",
3939
"@xterm/headless": "5.5.0",
40+
"@iarna/toml": "^2.2.5",
4041
"ajv": "^8.17.1",
4142
"ajv-formats": "^3.0.0",
4243
"async-mutex": "^0.5.0",

packages/core/src/extension/extensionManager.ts

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import {
3636
} from './github.js';
3737
import type { LoadExtensionContext } from './variableSchema.js';
3838
import { Override, type AllExtensionsEnablementConfig } from './override.js';
39-
import chalk from 'chalk';
4039
import { parseMarketplaceSource } from './marketplace.js';
4140
import {
4241
isGeminiExtensionConfig,
@@ -1056,49 +1055,6 @@ export class ExtensionManager {
10561055
);
10571056
}
10581057

1059-
/**
1060-
* Converts an extension to output string.
1061-
*/
1062-
toOutputString(extension: Extension, workspaceDir?: string): string {
1063-
const cwd = workspaceDir ?? this.workspaceDir;
1064-
const userEnabled = this.isEnabled(extension.config.name, os.homedir());
1065-
const workspaceEnabled = this.isEnabled(extension.config.name, cwd);
1066-
1067-
const status = workspaceEnabled ? chalk.green('✓') : chalk.red('✗');
1068-
let output = `${status} ${extension.config.name} (${extension.config.version})`;
1069-
output += `\n Path: ${extension.path}`;
1070-
if (extension.installMetadata) {
1071-
output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
1072-
if (extension.installMetadata.ref) {
1073-
output += `\n Ref: ${extension.installMetadata.ref}`;
1074-
}
1075-
if (extension.installMetadata.releaseTag) {
1076-
output += `\n Release tag: ${extension.installMetadata.releaseTag}`;
1077-
}
1078-
}
1079-
output += `\n Enabled (User): ${userEnabled}`;
1080-
output += `\n Enabled (Workspace): ${workspaceEnabled}`;
1081-
if (extension.contextFiles.length > 0) {
1082-
output += `\n Context files:`;
1083-
extension.contextFiles.forEach((contextFile) => {
1084-
output += `\n ${contextFile}`;
1085-
});
1086-
}
1087-
if (extension.commands && extension.commands.length > 0) {
1088-
output += `\n Commands:`;
1089-
extension.commands.forEach((command) => {
1090-
output += `\n /${command}`;
1091-
});
1092-
}
1093-
if (extension.config.mcpServers) {
1094-
output += `\n MCP servers:`;
1095-
Object.keys(extension.config.mcpServers).forEach((key) => {
1096-
output += `\n ${key}`;
1097-
});
1098-
}
1099-
return output;
1100-
}
1101-
11021058
async performWorkspaceExtensionMigration(
11031059
extensions: Extension[],
11041060
requestConsent: (options?: ExtensionRequestOptions) => Promise<void>,

0 commit comments

Comments
 (0)