@cannbot-ai/install-helper 1.1.6 → 1.1.8-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/dist/index.js +61 -88
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -191,13 +191,12 @@ install-helper lang set en_US # 切换为英文
|
|
|
191
191
|
| 2 | AscendC Kernel 直调(快速版) | ops-direct-invoke-flash | flash, kernel-flash |
|
|
192
192
|
| 3 | AscendC 算子注册调用 | ops-registry-invoke | ops-registry, ascendc-registry, registry |
|
|
193
193
|
| 4 | Catlass 算子直调 | catlass-op-generator | catlass |
|
|
194
|
-
| 5 | NPU 推理优化 | model-infer-optimize | model-infer, infer, inference |
|
|
194
|
+
| 5 | NPU 推理优化 | model-infer-optimize | model-infer, infer, inference, sota, sota-approach, model-infer-sota |
|
|
195
195
|
| 6 | PyPTO 算子开发 | pypto-op-orchestrator | pypto, pytorch |
|
|
196
196
|
| 7 | TileLang 算子开发 | tilelang-op-orchestrator | tilelang |
|
|
197
197
|
| 8 | Triton 算子开发 | triton-op-generator | triton |
|
|
198
198
|
| 9 | torch.compile 图模式 | torch-compile | torch, compile, graph |
|
|
199
199
|
| 10 | 代码检视 | ops-code-reviewer | code-review, reviewer, review |
|
|
200
|
-
| 11 | NPU 推理 SOTA 优化 | model-infer-sota-approach | sota, sota-approach, model-infer-sota |
|
|
201
200
|
|
|
202
201
|
## 前置条件
|
|
203
202
|
|
package/dist/index.js
CHANGED
|
@@ -58,10 +58,10 @@ var init_embedded_plugins = __esm({
|
|
|
58
58
|
"direct",
|
|
59
59
|
"kernel"
|
|
60
60
|
],
|
|
61
|
-
skills:
|
|
61
|
+
skills: 21,
|
|
62
62
|
agents: 4,
|
|
63
63
|
description: "Ascend C \u76F4\u8C03\u5168\u6D41\u7A0B\uFF1A\u73AF\u5883\u2192\u8BBE\u8BA1\u2192\u5F00\u53D1\u2192\u5BA1\u67E5\u2192\u6027\u80FD\u9A8C\u6536",
|
|
64
|
-
version: "1.2.
|
|
64
|
+
version: "1.2.5",
|
|
65
65
|
configFile: "AGENTS.md",
|
|
66
66
|
configRootConfigLink: false,
|
|
67
67
|
installSkills: [
|
|
@@ -73,6 +73,7 @@ var init_embedded_plugins = __esm({
|
|
|
73
73
|
"ascendc-api-best-practices",
|
|
74
74
|
"ascendc-regbase-best-practice",
|
|
75
75
|
"ascendc-blaze-best-practice",
|
|
76
|
+
"ascendc-blaze-migration",
|
|
76
77
|
"ops-precision-standard",
|
|
77
78
|
"ascendc-docs-search",
|
|
78
79
|
"ascendc-env-check",
|
|
@@ -163,10 +164,10 @@ var init_embedded_plugins = __esm({
|
|
|
163
164
|
"ascendc-registry",
|
|
164
165
|
"registry"
|
|
165
166
|
],
|
|
166
|
-
skills:
|
|
167
|
-
agents:
|
|
167
|
+
skills: 29,
|
|
168
|
+
agents: 7,
|
|
168
169
|
description: "\u751F\u4EA7\u7EA7 ACLNN \u6CE8\u518C\u7B97\u5B50\u5168\u6D41\u7A0B\uFF1A\u4EE3\u7801\u2192UT/ST\u2192\u4E0A\u5E93",
|
|
169
|
-
version: "1.2.
|
|
170
|
+
version: "1.2.3",
|
|
170
171
|
configFile: "AGENTS.md",
|
|
171
172
|
configRootConfigLink: false,
|
|
172
173
|
installSkills: [
|
|
@@ -174,6 +175,7 @@ var init_embedded_plugins = __esm({
|
|
|
174
175
|
dir: "ops",
|
|
175
176
|
skills: [
|
|
176
177
|
"ascendc-blaze-best-practice",
|
|
178
|
+
"ascendc-blaze-migration",
|
|
177
179
|
"ascendc-api-best-practices",
|
|
178
180
|
"ascendc-code-review",
|
|
179
181
|
"ascendc-crash-debug",
|
|
@@ -219,8 +221,12 @@ var init_embedded_plugins = __esm({
|
|
|
219
221
|
],
|
|
220
222
|
installAgents: [
|
|
221
223
|
"ascendc-ops-architect",
|
|
222
|
-
"ascendc-ops-
|
|
223
|
-
"ascendc-ops-
|
|
224
|
+
"ascendc-ops-spec-reviewer",
|
|
225
|
+
"ascendc-ops-designer",
|
|
226
|
+
"ascendc-ops-design-reviewer",
|
|
227
|
+
"ascendc-ops-tester",
|
|
228
|
+
"ascendc-ops-test-design-reviewer",
|
|
229
|
+
"ascendc-ops-developer"
|
|
224
230
|
],
|
|
225
231
|
externalRepos: [
|
|
226
232
|
{
|
|
@@ -279,19 +285,22 @@ var init_embedded_plugins = __esm({
|
|
|
279
285
|
]
|
|
280
286
|
},
|
|
281
287
|
{
|
|
282
|
-
id: "model-infer-
|
|
283
|
-
dir: "plugins-official/model-infer-
|
|
284
|
-
displayName: "NPU \u63A8\u7406
|
|
288
|
+
id: "model-infer-optimize",
|
|
289
|
+
dir: "plugins-official/model-infer-optimize",
|
|
290
|
+
displayName: "NPU \u63A8\u7406\u4F18\u5316",
|
|
285
291
|
script: "init.sh",
|
|
286
292
|
aliases: [
|
|
293
|
+
"model-infer",
|
|
294
|
+
"infer",
|
|
295
|
+
"inference",
|
|
287
296
|
"sota",
|
|
288
297
|
"sota-approach",
|
|
289
298
|
"model-infer-sota"
|
|
290
299
|
],
|
|
291
300
|
skills: 14,
|
|
292
|
-
agents:
|
|
293
|
-
description: "NPU \u63A8\u7406 baseline \u4E4B\u4E0A profiling \u9A71\u52A8\u7684\u63A2\u7D22\u5F0F\u4F18\u5316\
|
|
294
|
-
version: "1.0.
|
|
301
|
+
agents: 9,
|
|
302
|
+
description: "NPU \u6A21\u578B\u63A8\u7406\u7AEF\u5230\u7AEF\u4F18\u5316\uFF0C\u6DB5\u76D6\u56FA\u5B9A\u9636\u6BB5\u4F18\u5316\uFF08\u5E76\u884C/KVCache/\u878D\u5408/\u91CF\u5316/\u56FE\u6A21\u5F0F\uFF09\u4E0E baseline \u4E4B\u4E0A profiling \u9A71\u52A8\u7684\u63A2\u7D22\u5F0F\u4F18\u5316\uFF08\u6309\u9700\u8C03\u7528\u591A\u6D41/\u9884\u53D6/SuperKernel \u7B49\u5355\u70B9\u4F18\u5316\uFF09",
|
|
303
|
+
version: "1.0.6",
|
|
295
304
|
configFile: "AGENTS.md",
|
|
296
305
|
configRootConfigLink: true,
|
|
297
306
|
installSkills: [
|
|
@@ -316,6 +325,9 @@ var init_embedded_plugins = __esm({
|
|
|
316
325
|
}
|
|
317
326
|
],
|
|
318
327
|
installAgents: [
|
|
328
|
+
"model-infer-analyzer",
|
|
329
|
+
"model-infer-implementer",
|
|
330
|
+
"model-infer-reviewer",
|
|
319
331
|
"model-infer-sota-scenario",
|
|
320
332
|
"model-infer-sota-profiling-instrumenter",
|
|
321
333
|
"model-infer-sota-profile-analyzer",
|
|
@@ -323,57 +335,6 @@ var init_embedded_plugins = __esm({
|
|
|
323
335
|
"model-infer-sota-implementer",
|
|
324
336
|
"model-infer-sota-reviewer"
|
|
325
337
|
],
|
|
326
|
-
externalRepos: [
|
|
327
|
-
{
|
|
328
|
-
url: "https://gitcode.com/cann/cann-recipes-infer.git",
|
|
329
|
-
dir: "plugins-official/model-infer-sota-approach/cann-recipes-infer",
|
|
330
|
-
depth: 1,
|
|
331
|
-
configRootLink: true
|
|
332
|
-
}
|
|
333
|
-
]
|
|
334
|
-
},
|
|
335
|
-
{
|
|
336
|
-
id: "model-infer-optimize",
|
|
337
|
-
dir: "plugins-official/model-infer-optimize",
|
|
338
|
-
displayName: "NPU \u63A8\u7406\u4F18\u5316",
|
|
339
|
-
script: "init.sh",
|
|
340
|
-
aliases: [
|
|
341
|
-
"model-infer",
|
|
342
|
-
"infer",
|
|
343
|
-
"inference"
|
|
344
|
-
],
|
|
345
|
-
skills: 14,
|
|
346
|
-
agents: 3,
|
|
347
|
-
description: "NPU \u6A21\u578B\u63A8\u7406\u7AEF\u5230\u7AEF\u4F18\u5316\uFF08\u5E76\u884C/KVCache/\u878D\u5408/\u91CF\u5316/\u56FE\u6A21\u5F0F/\u591A\u6D41/SuperKernel\uFF09",
|
|
348
|
-
version: "1.0.5",
|
|
349
|
-
configFile: "AGENTS.md",
|
|
350
|
-
configRootConfigLink: true,
|
|
351
|
-
installSkills: [
|
|
352
|
-
{
|
|
353
|
-
dir: "model",
|
|
354
|
-
skills: [
|
|
355
|
-
"model-infer-migrator",
|
|
356
|
-
"model-infer-parallel-analysis",
|
|
357
|
-
"model-infer-parallel-impl",
|
|
358
|
-
"model-infer-kvcache",
|
|
359
|
-
"model-infer-fusion",
|
|
360
|
-
"model-infer-quantization",
|
|
361
|
-
"model-infer-graph-mode",
|
|
362
|
-
"model-infer-precision-debug",
|
|
363
|
-
"model-infer-runtime-debug",
|
|
364
|
-
"model-infer-multi-stream",
|
|
365
|
-
"model-infer-prefetch",
|
|
366
|
-
"model-infer-superkernel",
|
|
367
|
-
"model-infer-profiling",
|
|
368
|
-
"model-infer-perf-breakdown"
|
|
369
|
-
]
|
|
370
|
-
}
|
|
371
|
-
],
|
|
372
|
-
installAgents: [
|
|
373
|
-
"model-infer-analyzer",
|
|
374
|
-
"model-infer-implementer",
|
|
375
|
-
"model-infer-reviewer"
|
|
376
|
-
],
|
|
377
338
|
externalRepos: [
|
|
378
339
|
{
|
|
379
340
|
url: "https://gitcode.com/cann/cann-recipes-infer.git",
|
|
@@ -392,10 +353,10 @@ var init_embedded_plugins = __esm({
|
|
|
392
353
|
"pypto",
|
|
393
354
|
"pytorch"
|
|
394
355
|
],
|
|
395
|
-
skills:
|
|
396
|
-
agents:
|
|
356
|
+
skills: 17,
|
|
357
|
+
agents: 8,
|
|
397
358
|
description: "PyPTO Python API \u7B97\u5B50\u5168\u6D41\u7A0B\u5F00\u53D1\uFF0C\u8986\u76D6\u9700\u6C42\u7406\u89E3\u3001API \u63A2\u7D22\u3001\u5B9E\u73B0\u4E0E\u8C03\u4F18",
|
|
398
|
-
version: "1.
|
|
359
|
+
version: "1.2.0",
|
|
399
360
|
configFile: "AGENTS.md",
|
|
400
361
|
configRootConfigLink: false,
|
|
401
362
|
installSkills: [
|
|
@@ -409,14 +370,28 @@ var init_embedded_plugins = __esm({
|
|
|
409
370
|
"pypto-precision-debug",
|
|
410
371
|
"pypto-precision-compare",
|
|
411
372
|
"pypto-op-perf-tune",
|
|
412
|
-
"pypto-golden-generate"
|
|
373
|
+
"pypto-golden-generate",
|
|
374
|
+
"pypto-orchestration-manual",
|
|
375
|
+
"pypto-op-plan",
|
|
376
|
+
"pypto-docs-search",
|
|
377
|
+
"pypto-op-construct",
|
|
378
|
+
"pypto-op-verify",
|
|
379
|
+
"pypto-op-review",
|
|
380
|
+
"pypto-general-debug",
|
|
381
|
+
"pypto-op-knowledge",
|
|
382
|
+
"pypto-memory-template"
|
|
413
383
|
]
|
|
414
384
|
}
|
|
415
385
|
],
|
|
416
386
|
installAgents: [
|
|
417
|
-
"pypto-op-
|
|
418
|
-
"pypto-op-
|
|
419
|
-
"pypto-op-
|
|
387
|
+
"pypto-op-planner",
|
|
388
|
+
"pypto-op-mathematician",
|
|
389
|
+
"pypto-op-architect",
|
|
390
|
+
"pypto-op-designer",
|
|
391
|
+
"pypto-op-coder",
|
|
392
|
+
"pypto-op-verifier",
|
|
393
|
+
"pypto-op-debugger",
|
|
394
|
+
"pypto-op-optimizer"
|
|
420
395
|
],
|
|
421
396
|
externalRepos: [
|
|
422
397
|
{
|
|
@@ -479,7 +454,7 @@ var init_embedded_plugins = __esm({
|
|
|
479
454
|
aliases: [
|
|
480
455
|
"triton"
|
|
481
456
|
],
|
|
482
|
-
skills:
|
|
457
|
+
skills: 8,
|
|
483
458
|
agents: 0,
|
|
484
459
|
description: "Triton-Ascend \u7B97\u5B50 6 \u9636\u6BB5\u81EA\u52A8\u751F\u6210\u4E0E\u4F18\u5316\uFF08\u63CF\u8FF0\u2192\u4EE3\u7801\u2192\u9A8C\u8BC1\u2192\u4F18\u5316\uFF09",
|
|
485
460
|
version: "1.0.2",
|
|
@@ -495,7 +470,8 @@ var init_embedded_plugins = __esm({
|
|
|
495
470
|
"triton-op-verifier",
|
|
496
471
|
"triton-latency-optimizer",
|
|
497
472
|
"npu-arch",
|
|
498
|
-
"triton-precision-debug"
|
|
473
|
+
"triton-precision-debug",
|
|
474
|
+
"triton-simulator-optimizer"
|
|
499
475
|
]
|
|
500
476
|
}
|
|
501
477
|
],
|
|
@@ -544,7 +520,7 @@ var init_embedded_plugins = __esm({
|
|
|
544
520
|
"reviewer",
|
|
545
521
|
"review"
|
|
546
522
|
],
|
|
547
|
-
skills:
|
|
523
|
+
skills: 4,
|
|
548
524
|
agents: 2,
|
|
549
525
|
description: "Ascend C \u7B97\u5B50\u4EE3\u7801 4 \u9636\u6BB5\u5168\u91CF\u68C0\u89C6\uFF08\u4E3B Agent \u7F16\u6392 + \u5B50 Agent \u5E76\u884C\u68C0\u89C6\uFF09",
|
|
550
526
|
version: "1.1.0",
|
|
@@ -556,15 +532,14 @@ var init_embedded_plugins = __esm({
|
|
|
556
532
|
skills: [
|
|
557
533
|
"ascendc-code-review",
|
|
558
534
|
"ascendc-docs-search",
|
|
559
|
-
"ascendc-task-focus",
|
|
560
535
|
"ascendc-api-best-practices",
|
|
561
536
|
"npu-arch"
|
|
562
537
|
]
|
|
563
538
|
}
|
|
564
539
|
],
|
|
565
540
|
installAgents: [
|
|
566
|
-
"ascendc-
|
|
567
|
-
"ascendc-
|
|
541
|
+
"ascendc-ops-reviewer",
|
|
542
|
+
"ascendc-code-summarizer"
|
|
568
543
|
]
|
|
569
544
|
}
|
|
570
545
|
];
|
|
@@ -2305,7 +2280,6 @@ var STATIC_SKILL_CATEGORIES = [
|
|
|
2305
2280
|
{ id: "ascendc-ut-develop", description: "UT \u5F00\u53D1\u4E0E\u8986\u76D6\u7387\u589E\u5F3A", source: "ops" },
|
|
2306
2281
|
{ id: "ascendc-st-design", description: "ST \u6D4B\u8BD5\u7528\u4F8B\u8BBE\u8BA1", source: "ops" },
|
|
2307
2282
|
{ id: "ascendc-whitebox-design", description: "\u767D\u76D2\u6D4B\u8BD5\u7528\u4F8B\u751F\u6210", source: "ops" },
|
|
2308
|
-
{ id: "ascendc-task-focus", description: "\u957F\u4EFB\u52A1\u805A\u7126\u9632\u8FF7\u5931", source: "ops" },
|
|
2309
2283
|
{ id: "tilelang-op-test-design", description: "TileLang \u6D4B\u8BD5\u8BBE\u8BA1", source: "ops" },
|
|
2310
2284
|
{ id: "tilelang-review", description: "TileLang \u4EE3\u7801\u683C\u5F0F\u68C0\u67E5", source: "ops" },
|
|
2311
2285
|
{ id: "triton-op-verifier", description: "Triton \u7B97\u5B50\u9A8C\u8BC1", source: "ops" }
|
|
@@ -2320,6 +2294,7 @@ var STATIC_SKILL_CATEGORIES = [
|
|
|
2320
2294
|
{ id: "ascendc-direct-invoke-to-registry-invoke", description: "\u76F4\u8C03\u8F6C\u6CE8\u518C\u8C03\u7528", source: "ops" },
|
|
2321
2295
|
{ id: "ascendc-registry-invoke-to-direct-invoke", description: "\u6CE8\u518C\u8C03\u7528\u8F6C\u76F4\u8C03", source: "ops" },
|
|
2322
2296
|
{ id: "ascendc-blaze-best-practice", description: "Matmul/GEMM Blaze \u76F4\u8C03\u751F\u6210", source: "ops" },
|
|
2297
|
+
{ id: "ascendc-blaze-migration", description: "AscendC Matmul \u5BB6\u65CF\u7B49\u4EF7\u8FC1\u79FB\u5230 Blaze", source: "ops" },
|
|
2323
2298
|
{ id: "ascendc-simt-best-practices", description: "SIMT \u6700\u4F73\u5B9E\u8DF5\u4E0E API \u5BFC\u822A", source: "ops" },
|
|
2324
2299
|
{ id: "ascendc-simt-tiling-design", description: "SIMT \u7B97\u5B50\u5207\u5206\u8BBE\u8BA1", source: "ops" },
|
|
2325
2300
|
{ id: "torch-ascendc-op-extension", description: "Ascend C \u5BF9\u63A5 PyTorch", source: "ops" },
|
|
@@ -2557,16 +2532,11 @@ function enrichPluginMetadata(repoPath) {
|
|
|
2557
2532
|
if (pj && pj.name && plugin.displayName === plugin.id) {
|
|
2558
2533
|
plugin.displayName = pj.name;
|
|
2559
2534
|
}
|
|
2560
|
-
|
|
2561
|
-
const agents = resolveAgentsFromPluginJson(pj);
|
|
2562
|
-
if (agents.length > 0) {
|
|
2563
|
-
plugin.installAgents = agents;
|
|
2564
|
-
}
|
|
2565
|
-
}
|
|
2535
|
+
plugin.installAgents = resolveAgentsFromPluginJson(pj);
|
|
2566
2536
|
const merged = mergeInitSkills(plugin.installSkills, pluginDir, repoPath, scanDirs);
|
|
2567
2537
|
plugin.installSkills = merged;
|
|
2568
2538
|
plugin.skills = countSkills(merged);
|
|
2569
|
-
plugin.agents = plugin.installAgents
|
|
2539
|
+
plugin.agents = plugin.installAgents.length;
|
|
2570
2540
|
}
|
|
2571
2541
|
}
|
|
2572
2542
|
|
|
@@ -2891,7 +2861,7 @@ function removeSkillsFromRecord(skillIds, tool, level, installPath) {
|
|
|
2891
2861
|
}
|
|
2892
2862
|
writeSkillRecord(record);
|
|
2893
2863
|
}
|
|
2894
|
-
function getInstalledSkills(tool, level, installPath) {
|
|
2864
|
+
function getInstalledSkills(tool, level, installPath, allowFsScan = true) {
|
|
2895
2865
|
const record = readSkillRecord();
|
|
2896
2866
|
const recordedSkills = record[tool]?.[level]?.[installPath]?.skills || [];
|
|
2897
2867
|
const configRoot = getConfigRoot(tool, level);
|
|
@@ -2900,6 +2870,9 @@ function getInstalledSkills(tool, level, installPath) {
|
|
|
2900
2870
|
const skillPath = join10(skillsDir, skillId);
|
|
2901
2871
|
return existsSync11(skillPath) || isSymlink(skillPath);
|
|
2902
2872
|
});
|
|
2873
|
+
if (!allowFsScan) {
|
|
2874
|
+
return fromRecord;
|
|
2875
|
+
}
|
|
2903
2876
|
const fromFs = [];
|
|
2904
2877
|
if (existsSync11(skillsDir)) {
|
|
2905
2878
|
try {
|
|
@@ -2923,7 +2896,7 @@ function getLastBatchSkills(tool, level, installPath) {
|
|
|
2923
2896
|
return null;
|
|
2924
2897
|
}
|
|
2925
2898
|
const lastBatch = entry.batches[entry.batches.length - 1];
|
|
2926
|
-
const configRoot = getConfigRoot(tool, level);
|
|
2899
|
+
const configRoot = level === "project" ? getConfigRoot(tool, level, installPath) : getConfigRoot(tool, level);
|
|
2927
2900
|
const skillsDir = join10(configRoot, "skills");
|
|
2928
2901
|
return lastBatch.skills.filter((skillId) => {
|
|
2929
2902
|
const skillPath = join10(skillsDir, skillId);
|
|
@@ -5044,7 +5017,7 @@ async function uninstallCommand(names, options) {
|
|
|
5044
5017
|
}
|
|
5045
5018
|
async function uninstallAll(tool, level, yes) {
|
|
5046
5019
|
const installPath = level === "project" ? process.cwd() : getConfigRoot(tool, level);
|
|
5047
|
-
const installedSkills = getInstalledSkills(tool, level, installPath);
|
|
5020
|
+
const installedSkills = getInstalledSkills(tool, level, installPath, !yes);
|
|
5048
5021
|
const installedPlugins = scanInstalled().filter((p) => p.tool === tool && p.level === level);
|
|
5049
5022
|
const totalItems = installedSkills.length + installedPlugins.length;
|
|
5050
5023
|
if (totalItems === 0) {
|