@inspecto-dev/cli 0.3.6 → 0.3.8
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/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-test.log +6777 -205
- package/CHANGELOG.md +16 -0
- package/README.md +4 -2
- package/dist/bin.js +1 -1
- package/dist/{chunk-7ABJRH3F.js → chunk-B5JDHSP7.js} +166 -35
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/src/commands/integration-automation.ts +12 -4
- package/src/commands/integration-host-ide.ts +25 -6
- package/src/commands/integration-install.ts +48 -9
- package/src/detect/framework.ts +9 -6
- package/src/detect/ide.ts +42 -7
- package/src/detect/provider.ts +1 -1
- package/src/inject/extension.ts +30 -0
- package/src/inject/strategies/esbuild.ts +2 -2
- package/src/inject/strategies/rollup.ts +2 -2
- package/src/inject/strategies/rsbuild.ts +2 -2
- package/src/inject/strategies/rspack.ts +2 -2
- package/src/inject/strategies/vite.ts +2 -2
- package/src/inject/strategies/webpack.ts +2 -2
- package/src/integrations/capabilities.ts +38 -0
- package/tests/detect.test.ts +2 -2
- package/tests/extension-installer.test.ts +48 -0
- package/tests/framework.test.ts +27 -3
- package/tests/integration-automation.test.ts +1 -1
- package/tests/integration-host-ide.test.ts +54 -0
- package/tests/integration-install.test.ts +7 -7
- package/tests/plan.test.ts +16 -16
- package/tests/shared-capabilities.test.ts +4 -0
|
@@ -139,7 +139,7 @@ describe('integration install', () => {
|
|
|
139
139
|
'Installed Codex integration assets. User-level installs only write integration assets and do not launch onboarding automatically.',
|
|
140
140
|
)
|
|
141
141
|
expect(logMock.hint).toHaveBeenCalledWith(
|
|
142
|
-
'Run the install command again from your target project root with --host-ide <vscode|cursor|trae|trae-cn> when you want to launch onboarding automatically.',
|
|
142
|
+
'Run the install command again from your target project root with --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn> when you want to launch onboarding automatically.',
|
|
143
143
|
)
|
|
144
144
|
})
|
|
145
145
|
|
|
@@ -285,7 +285,7 @@ describe('integration install', () => {
|
|
|
285
285
|
message:
|
|
286
286
|
'Automatic setup stopped: Inspecto could not determine which IDE should receive onboarding.',
|
|
287
287
|
nextStep:
|
|
288
|
-
'Re-run with --host-ide <vscode|cursor|trae|trae-cn> or run the command from the target IDE terminal to continue automatic setup.',
|
|
288
|
+
'Re-run with --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn> or run the command from the target IDE terminal to continue automatic setup.',
|
|
289
289
|
})
|
|
290
290
|
resolveIntegrationHostIdeMock.mockResolvedValue({
|
|
291
291
|
ide: null,
|
|
@@ -309,7 +309,7 @@ describe('integration install', () => {
|
|
|
309
309
|
'Automatic setup stopped: Inspecto could not determine which IDE should receive onboarding.',
|
|
310
310
|
)
|
|
311
311
|
expect(logMock.hint).toHaveBeenCalledWith(
|
|
312
|
-
'Re-run with --host-ide <vscode|cursor|trae|trae-cn> or run the command from the target IDE terminal to continue automatic setup.',
|
|
312
|
+
'Re-run with --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn> or run the command from the target IDE terminal to continue automatic setup.',
|
|
313
313
|
)
|
|
314
314
|
})
|
|
315
315
|
|
|
@@ -527,7 +527,7 @@ describe('integration install', () => {
|
|
|
527
527
|
'/Users/tester/.claude/skills/inspecto-onboarding-claude-code/scripts/run-inspecto.sh',
|
|
528
528
|
],
|
|
529
529
|
preferredInstall:
|
|
530
|
-
'npx @inspecto-dev/cli integrations install claude-code --scope project --host-ide <vscode|cursor|trae|trae-cn>',
|
|
530
|
+
'npx @inspecto-dev/cli integrations install claude-code --scope project --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
|
531
531
|
})
|
|
532
532
|
})
|
|
533
533
|
|
|
@@ -542,7 +542,7 @@ describe('integration install', () => {
|
|
|
542
542
|
'/Users/tester/.agents/skills/inspecto-onboarding-codex/scripts/run-inspecto.sh',
|
|
543
543
|
],
|
|
544
544
|
preferredInstall:
|
|
545
|
-
'npx @inspecto-dev/cli integrations install codex --host-ide <vscode|cursor|trae|trae-cn>',
|
|
545
|
+
'npx @inspecto-dev/cli integrations install codex --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
|
546
546
|
})
|
|
547
547
|
})
|
|
548
548
|
|
|
@@ -556,7 +556,7 @@ describe('integration install', () => {
|
|
|
556
556
|
'.trae/skills/inspecto-onboarding/scripts/run-inspecto.sh',
|
|
557
557
|
],
|
|
558
558
|
preferredInstall:
|
|
559
|
-
'npx @inspecto-dev/cli integrations install coco --host-ide <vscode|cursor|trae|trae-cn>',
|
|
559
|
+
'npx @inspecto-dev/cli integrations install coco --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
|
560
560
|
})
|
|
561
561
|
})
|
|
562
562
|
|
|
@@ -569,7 +569,7 @@ describe('integration install', () => {
|
|
|
569
569
|
'/Users/tester/.claude/skills/inspecto-onboarding-claude-code/SKILL.md',
|
|
570
570
|
)
|
|
571
571
|
expect(logMock.hint).toHaveBeenCalledWith(
|
|
572
|
-
'Preferred install: npx @inspecto-dev/cli integrations install claude-code --scope project --host-ide <vscode|cursor|trae|trae-cn>',
|
|
572
|
+
'Preferred install: npx @inspecto-dev/cli integrations install claude-code --scope project --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
|
573
573
|
)
|
|
574
574
|
expect(logMock.hint).not.toHaveBeenCalledWith('Restart Claude Code to load the new skill.')
|
|
575
575
|
})
|
package/tests/plan.test.ts
CHANGED
|
@@ -236,7 +236,7 @@ describe('planner orchestration', () => {
|
|
|
236
236
|
},
|
|
237
237
|
frameworks: {
|
|
238
238
|
supported: [],
|
|
239
|
-
unsupported: ['
|
|
239
|
+
unsupported: ['Angular'],
|
|
240
240
|
},
|
|
241
241
|
ides: [{ ide: 'vscode', supported: true }],
|
|
242
242
|
providers: [{ id: 'codex', label: 'Codex CLI', supported: true, preferredMode: 'cli' }],
|
|
@@ -249,13 +249,13 @@ describe('planner orchestration', () => {
|
|
|
249
249
|
expect(result.blockers).toEqual([
|
|
250
250
|
{
|
|
251
251
|
code: 'unsupported-framework',
|
|
252
|
-
message: 'Detected unsupported framework(s):
|
|
252
|
+
message: 'Detected unsupported framework(s): Angular',
|
|
253
253
|
},
|
|
254
254
|
])
|
|
255
255
|
expect(result.actions).toEqual([
|
|
256
256
|
{
|
|
257
257
|
type: 'manual_step',
|
|
258
|
-
target: '
|
|
258
|
+
target: 'Angular',
|
|
259
259
|
description:
|
|
260
260
|
'Inspecto cannot auto-configure this framework yet. Follow the manual setup guide for the detected framework.',
|
|
261
261
|
},
|
|
@@ -278,7 +278,7 @@ describe('planner orchestration', () => {
|
|
|
278
278
|
},
|
|
279
279
|
frameworks: {
|
|
280
280
|
supported: ['react'],
|
|
281
|
-
unsupported: ['
|
|
281
|
+
unsupported: ['Angular'],
|
|
282
282
|
},
|
|
283
283
|
ides: [{ ide: 'vscode', supported: true }],
|
|
284
284
|
providers: [{ id: 'codex', label: 'Codex CLI', supported: true, preferredMode: 'cli' }],
|
|
@@ -297,7 +297,7 @@ describe('planner orchestration', () => {
|
|
|
297
297
|
expect(result.warnings).toEqual([
|
|
298
298
|
{
|
|
299
299
|
code: 'unsupported-framework-present',
|
|
300
|
-
message: 'Unsupported framework(s) also detected:
|
|
300
|
+
message: 'Unsupported framework(s) also detected: Angular',
|
|
301
301
|
},
|
|
302
302
|
])
|
|
303
303
|
expect(result.actions).toEqual([
|
|
@@ -597,7 +597,7 @@ describe('planner orchestration', () => {
|
|
|
597
597
|
},
|
|
598
598
|
frameworks: {
|
|
599
599
|
supported: ['react'],
|
|
600
|
-
unsupported: ['
|
|
600
|
+
unsupported: ['Angular'],
|
|
601
601
|
},
|
|
602
602
|
ides: [{ ide: 'vscode', supported: true }],
|
|
603
603
|
providers: [{ id: 'codex', label: 'Codex CLI', supported: true, preferredMode: 'cli' }],
|
|
@@ -612,7 +612,7 @@ describe('planner orchestration', () => {
|
|
|
612
612
|
})
|
|
613
613
|
expect(result.environment).toEqual({
|
|
614
614
|
frameworks: ['react'],
|
|
615
|
-
unsupportedFrameworks: ['
|
|
615
|
+
unsupportedFrameworks: ['Angular'],
|
|
616
616
|
buildTools: [
|
|
617
617
|
{
|
|
618
618
|
tool: 'vite',
|
|
@@ -633,7 +633,7 @@ describe('planner orchestration', () => {
|
|
|
633
633
|
expect(result.warnings).toEqual([
|
|
634
634
|
{
|
|
635
635
|
code: 'unsupported-framework-present',
|
|
636
|
-
message: 'Unsupported framework(s) also detected:
|
|
636
|
+
message: 'Unsupported framework(s) also detected: Angular',
|
|
637
637
|
},
|
|
638
638
|
])
|
|
639
639
|
})
|
|
@@ -646,7 +646,7 @@ describe('planner orchestration', () => {
|
|
|
646
646
|
project: { root: '/repo', packageManager: 'pnpm' },
|
|
647
647
|
environment: {
|
|
648
648
|
frameworks: ['react'],
|
|
649
|
-
unsupportedFrameworks: ['
|
|
649
|
+
unsupportedFrameworks: ['Angular'],
|
|
650
650
|
buildTools: [],
|
|
651
651
|
unsupportedBuildTools: ['Next.js'],
|
|
652
652
|
ides: [{ ide: 'vscode', supported: true }],
|
|
@@ -677,7 +677,7 @@ describe('planner orchestration', () => {
|
|
|
677
677
|
warnings: [
|
|
678
678
|
{
|
|
679
679
|
code: 'unsupported-framework-present',
|
|
680
|
-
message: 'Unsupported framework(s) also detected:
|
|
680
|
+
message: 'Unsupported framework(s) also detected: Angular',
|
|
681
681
|
},
|
|
682
682
|
],
|
|
683
683
|
blockers: [
|
|
@@ -687,13 +687,13 @@ describe('planner orchestration', () => {
|
|
|
687
687
|
},
|
|
688
688
|
{
|
|
689
689
|
code: 'unsupported-framework',
|
|
690
|
-
message: 'Detected unsupported framework(s):
|
|
690
|
+
message: 'Detected unsupported framework(s): Angular',
|
|
691
691
|
},
|
|
692
692
|
],
|
|
693
693
|
project: { root: '/repo', packageManager: 'pnpm' },
|
|
694
694
|
environment: {
|
|
695
695
|
frameworks: ['react'],
|
|
696
|
-
unsupportedFrameworks: ['
|
|
696
|
+
unsupportedFrameworks: ['Angular'],
|
|
697
697
|
buildTools: [],
|
|
698
698
|
unsupportedBuildTools: ['Next.js'],
|
|
699
699
|
ides: [{ ide: 'vscode', supported: true }],
|
|
@@ -712,13 +712,13 @@ describe('planner orchestration', () => {
|
|
|
712
712
|
const output = logSpy.mock.calls.map(call => call.join(' ')).join('\n')
|
|
713
713
|
|
|
714
714
|
expect(detectSpy).toHaveBeenCalledWith('/repo')
|
|
715
|
-
expect(output).toContain('Unsupported frameworks:
|
|
715
|
+
expect(output).toContain('Unsupported frameworks: Angular')
|
|
716
716
|
expect(output).toContain('Unsupported build tools: Next.js')
|
|
717
|
-
expect(output).not.toContain('Detected unsupported framework(s):
|
|
717
|
+
expect(output).not.toContain('Detected unsupported framework(s): Angular')
|
|
718
718
|
expect(output).not.toContain('Detected unsupported build tool(s): Next.js')
|
|
719
|
-
expect(output.match(/Unsupported frameworks:
|
|
719
|
+
expect(output.match(/Unsupported frameworks: Angular/g)).toHaveLength(1)
|
|
720
720
|
expect(output.match(/Unsupported build tools: Next.js/g)).toHaveLength(1)
|
|
721
|
-
expect(output.match(/
|
|
721
|
+
expect(output.match(/Angular/g)).toHaveLength(1)
|
|
722
722
|
|
|
723
723
|
cwdSpy.mockRestore()
|
|
724
724
|
logSpy.mockRestore()
|
|
@@ -11,6 +11,8 @@ describe('shared capabilities', () => {
|
|
|
11
11
|
expect(getHostIdeLabel('cursor')).toBe('Cursor')
|
|
12
12
|
expect(getHostIdeLabel('trae')).toBe('Trae')
|
|
13
13
|
expect(getHostIdeLabel('trae-cn')).toBe('Trae CN')
|
|
14
|
+
expect(getHostIdeLabel('codebuddy')).toBe('CodeBuddy')
|
|
15
|
+
expect(getHostIdeLabel('codebuddy-cn')).toBe('CodeBuddy CN')
|
|
14
16
|
})
|
|
15
17
|
|
|
16
18
|
it('exposes supported host IDE guards', () => {
|
|
@@ -18,6 +20,8 @@ describe('shared capabilities', () => {
|
|
|
18
20
|
expect(isSupportedHostIde('cursor')).toBe(true)
|
|
19
21
|
expect(isSupportedHostIde('trae')).toBe(true)
|
|
20
22
|
expect(isSupportedHostIde('trae-cn')).toBe(true)
|
|
23
|
+
expect(isSupportedHostIde('codebuddy')).toBe(true)
|
|
24
|
+
expect(isSupportedHostIde('codebuddy-cn')).toBe(true)
|
|
21
25
|
expect(isSupportedHostIde('unknown')).toBe(false)
|
|
22
26
|
})
|
|
23
27
|
|