@inspecto-dev/cli 0.3.9 → 0.3.11
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 +4 -4
- package/.turbo/turbo-test.log +7332 -206
- package/CHANGELOG.md +16 -0
- package/dist/bin.js +1 -1
- package/dist/{chunk-T46P6RD7.js → chunk-IV7RZXZJ.js} +56 -16
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/src/commands/integration-install.ts +57 -16
- package/src/commands/mcp.ts +1 -1
- package/src/instructions.ts +1 -1
- package/src/onboarding/session.ts +6 -3
- package/src/onboarding/umi-guidance.ts +1 -1
- package/tests/integration-install.test.ts +10 -4
- package/tests/mcp.test.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @inspecto-dev/cli
|
|
2
2
|
|
|
3
|
+
## 0.3.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- release 0.3.11
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @inspecto-dev/types@0.3.11
|
|
10
|
+
|
|
11
|
+
## 0.3.10
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- release 0.3.10
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
- @inspecto-dev/types@0.3.10
|
|
18
|
+
|
|
3
19
|
## 0.3.9
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/bin.js
CHANGED
|
@@ -2497,7 +2497,7 @@ function buildUmiMountSnippet() {
|
|
|
2497
2497
|
" if (process.env.NODE_ENV !== 'production') {",
|
|
2498
2498
|
" import('@inspecto-dev/core').then(({ mountInspector }) => {",
|
|
2499
2499
|
" mountInspector({",
|
|
2500
|
-
" serverUrl: 'http://
|
|
2500
|
+
" serverUrl: 'http://127.0.0.1:' + ((window as { __AI_INSPECTOR_PORT__?: number }).__AI_INSPECTOR_PORT__ || 5678),",
|
|
2501
2501
|
" })",
|
|
2502
2502
|
" })",
|
|
2503
2503
|
" }",
|
|
@@ -3576,7 +3576,7 @@ function printNextJsManualInstructions() {
|
|
|
3576
3576
|
" useEffect(() => {",
|
|
3577
3577
|
" if (process.env.NODE_ENV !== 'production') {",
|
|
3578
3578
|
" import('@inspecto-dev/core').then(({ mountInspector }) => {",
|
|
3579
|
-
" mountInspector({ serverUrl: 'http://
|
|
3579
|
+
" mountInspector({ serverUrl: 'http://127.0.0.1:5678' })",
|
|
3580
3580
|
" })",
|
|
3581
3581
|
" }",
|
|
3582
3582
|
" }, [])",
|
|
@@ -4498,7 +4498,7 @@ function createInspectoMcpRuntime(baseUrl) {
|
|
|
4498
4498
|
function resolveInspectoServerBaseUrl(cwd) {
|
|
4499
4499
|
const ports = resolveServerPorts(cwd);
|
|
4500
4500
|
const port = ports[0];
|
|
4501
|
-
return port ? `http://
|
|
4501
|
+
return port ? `http://127.0.0.1:${port}` : null;
|
|
4502
4502
|
}
|
|
4503
4503
|
function resolveServerPorts(cwd) {
|
|
4504
4504
|
const prioritized = readProjectScopedPorts(cwd);
|
|
@@ -4786,8 +4786,12 @@ function buildConfirmation(plan2, summary, session, options) {
|
|
|
4786
4786
|
};
|
|
4787
4787
|
}
|
|
4788
4788
|
async function buildDailyUsageHandoff(projectRoot) {
|
|
4789
|
-
const localSettings = await readJSON(
|
|
4790
|
-
|
|
4789
|
+
const localSettings = await readJSON(
|
|
4790
|
+
path18.join(projectRoot, ".inspecto", "settings.local.json")
|
|
4791
|
+
) ?? {};
|
|
4792
|
+
const sharedSettings = await readJSON(
|
|
4793
|
+
path18.join(projectRoot, ".inspecto", "settings.json")
|
|
4794
|
+
) ?? {};
|
|
4791
4795
|
const annotateDeliveryMode = localSettings["annotate.deliveryMode"] ?? sharedSettings["annotate.deliveryMode"];
|
|
4792
4796
|
if (annotateDeliveryMode !== "agent") {
|
|
4793
4797
|
return void 0;
|
|
@@ -6044,7 +6048,7 @@ async function persistProjectOnboardingDefaults(assistant, options) {
|
|
|
6044
6048
|
}
|
|
6045
6049
|
function resolveAnnotateDefaultDeliveryForAssistant(assistant) {
|
|
6046
6050
|
void assistant;
|
|
6047
|
-
return "
|
|
6051
|
+
return "agent";
|
|
6048
6052
|
}
|
|
6049
6053
|
function shouldSkipAutomationForInstall(options) {
|
|
6050
6054
|
return options.scope === "user" && !options.preview;
|
|
@@ -6096,9 +6100,14 @@ function resolveInstallPlan(assistant, options) {
|
|
|
6096
6100
|
source: `${REPO_RAW_BASE}/skills/inspecto-onboarding-gemini/SKILL.md`,
|
|
6097
6101
|
target: ".gemini/skills/inspecto-onboarding/SKILL.md",
|
|
6098
6102
|
localSource: "skills/inspecto-onboarding-gemini/SKILL.md"
|
|
6103
|
+
},
|
|
6104
|
+
{
|
|
6105
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6106
|
+
target: ".gemini/skills/inspecto-agent/SKILL.md",
|
|
6107
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6099
6108
|
}
|
|
6100
6109
|
],
|
|
6101
|
-
successMessage: "Installed Gemini
|
|
6110
|
+
successMessage: "Installed Gemini skills to .gemini/skills/inspecto-onboarding and .gemini/skills/inspecto-agent",
|
|
6102
6111
|
nextStep: "Start a new Gemini CLI session and use /skills list to verify."
|
|
6103
6112
|
};
|
|
6104
6113
|
case "trae":
|
|
@@ -6114,10 +6123,15 @@ function resolveInstallPlan(assistant, options) {
|
|
|
6114
6123
|
target: ".trae/skills/inspecto-onboarding/scripts/run-inspecto.sh",
|
|
6115
6124
|
localSource: "skills/inspecto-onboarding-trae/scripts/run-inspecto.sh",
|
|
6116
6125
|
executable: true
|
|
6126
|
+
},
|
|
6127
|
+
{
|
|
6128
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6129
|
+
target: ".trae/skills/inspecto-agent/SKILL.md",
|
|
6130
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6117
6131
|
}
|
|
6118
6132
|
],
|
|
6119
|
-
successMessage: "Installed Trae
|
|
6120
|
-
nextStep: "Open a new Trae chat and verify the
|
|
6133
|
+
successMessage: "Installed Trae skills to .trae/skills/inspecto-onboarding and .trae/skills/inspecto-agent",
|
|
6134
|
+
nextStep: "Open a new Trae chat and verify the skills are available."
|
|
6121
6135
|
};
|
|
6122
6136
|
case "coco":
|
|
6123
6137
|
return {
|
|
@@ -6132,9 +6146,14 @@ function resolveInstallPlan(assistant, options) {
|
|
|
6132
6146
|
target: ".trae/skills/inspecto-onboarding/scripts/run-inspecto.sh",
|
|
6133
6147
|
localSource: "skills/inspecto-onboarding-trae/scripts/run-inspecto.sh",
|
|
6134
6148
|
executable: true
|
|
6149
|
+
},
|
|
6150
|
+
{
|
|
6151
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6152
|
+
target: ".trae/skills/inspecto-agent/SKILL.md",
|
|
6153
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6135
6154
|
}
|
|
6136
6155
|
],
|
|
6137
|
-
successMessage: "Installed Coco
|
|
6156
|
+
successMessage: "Installed Coco skills to .trae/skills/inspecto-onboarding and .trae/skills/inspecto-agent",
|
|
6138
6157
|
nextStep: "Start a new Coco session."
|
|
6139
6158
|
};
|
|
6140
6159
|
case "codebuddy":
|
|
@@ -6150,10 +6169,15 @@ function resolveInstallPlan(assistant, options) {
|
|
|
6150
6169
|
target: ".codebuddy/skills/inspecto-onboarding/scripts/run-inspecto.sh",
|
|
6151
6170
|
localSource: "skills/inspecto-onboarding-codebuddy/scripts/run-inspecto.sh",
|
|
6152
6171
|
executable: true
|
|
6172
|
+
},
|
|
6173
|
+
{
|
|
6174
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6175
|
+
target: ".codebuddy/skills/inspecto-agent/SKILL.md",
|
|
6176
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6153
6177
|
}
|
|
6154
6178
|
],
|
|
6155
|
-
successMessage: "Installed CodeBuddy
|
|
6156
|
-
nextStep: "Open a new CodeBuddy chat and verify the
|
|
6179
|
+
successMessage: "Installed CodeBuddy skills to .codebuddy/skills/inspecto-onboarding and .codebuddy/skills/inspecto-agent",
|
|
6180
|
+
nextStep: "Open a new CodeBuddy chat and verify the skills are available."
|
|
6157
6181
|
};
|
|
6158
6182
|
default:
|
|
6159
6183
|
throw new Error(`Unknown assistant: ${assistant}`);
|
|
@@ -6243,6 +6267,7 @@ function resolveClaudeCodePlan(options) {
|
|
|
6243
6267
|
throw new Error(`Unknown Claude Code scope: ${scope}`);
|
|
6244
6268
|
}
|
|
6245
6269
|
const baseDir = scope === "user" ? path22.join(homedir2(), ".claude/skills/inspecto-onboarding-claude-code") : ".claude/skills/inspecto-onboarding-claude-code";
|
|
6270
|
+
const agentDir = scope === "user" ? path22.join(homedir2(), ".claude/skills/inspecto-agent") : ".claude/skills/inspecto-agent";
|
|
6246
6271
|
return {
|
|
6247
6272
|
assets: [
|
|
6248
6273
|
{
|
|
@@ -6260,10 +6285,15 @@ function resolveClaudeCodePlan(options) {
|
|
|
6260
6285
|
target: path22.join(baseDir, "scripts/run-inspecto.sh"),
|
|
6261
6286
|
executable: true,
|
|
6262
6287
|
localSource: "skills/inspecto-onboarding-claude-code/scripts/run-inspecto.sh"
|
|
6288
|
+
},
|
|
6289
|
+
{
|
|
6290
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6291
|
+
target: path22.join(agentDir, "SKILL.md"),
|
|
6292
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6263
6293
|
}
|
|
6264
6294
|
],
|
|
6265
|
-
successMessage: `Installed Claude Code
|
|
6266
|
-
nextStep: "Restart Claude Code to load the new
|
|
6295
|
+
successMessage: `Installed Claude Code skills to ${baseDir} and ${agentDir}`,
|
|
6296
|
+
nextStep: "Restart Claude Code to load the new skills."
|
|
6267
6297
|
};
|
|
6268
6298
|
}
|
|
6269
6299
|
function resolveCopilotPlan(options) {
|
|
@@ -6284,9 +6314,14 @@ function resolveCopilotPlan(options) {
|
|
|
6284
6314
|
source: `${REPO_RAW_BASE}/skills/inspecto-onboarding-copilot/SKILL.md`,
|
|
6285
6315
|
target: ".github/skills/inspecto-onboarding/SKILL.md",
|
|
6286
6316
|
localSource: "skills/inspecto-onboarding-copilot/SKILL.md"
|
|
6317
|
+
},
|
|
6318
|
+
{
|
|
6319
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6320
|
+
target: ".github/skills/inspecto-agent/SKILL.md",
|
|
6321
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6287
6322
|
}
|
|
6288
6323
|
],
|
|
6289
|
-
successMessage: "Installed Copilot
|
|
6324
|
+
successMessage: "Installed Copilot skills to .github/skills/inspecto-onboarding and .github/skills/inspecto-agent",
|
|
6290
6325
|
nextStep: "Open a new Copilot chat or agent session."
|
|
6291
6326
|
};
|
|
6292
6327
|
default:
|
|
@@ -6309,9 +6344,14 @@ function resolveCursorPlan(options) {
|
|
|
6309
6344
|
source: `${REPO_RAW_BASE}/skills/inspecto-onboarding-cursor/SKILL.md`,
|
|
6310
6345
|
target: ".cursor/skills/inspecto-onboarding/SKILL.md",
|
|
6311
6346
|
localSource: "skills/inspecto-onboarding-cursor/SKILL.md"
|
|
6347
|
+
},
|
|
6348
|
+
{
|
|
6349
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
6350
|
+
target: ".cursor/skills/inspecto-agent/SKILL.md",
|
|
6351
|
+
localSource: "skills/inspecto-agent/SKILL.md"
|
|
6312
6352
|
}
|
|
6313
6353
|
],
|
|
6314
|
-
successMessage: "Installed Cursor
|
|
6354
|
+
successMessage: "Installed Cursor skills to .cursor/skills/inspecto-onboarding and .cursor/skills/inspecto-agent",
|
|
6315
6355
|
nextStep: "Open a new Cursor chat."
|
|
6316
6356
|
};
|
|
6317
6357
|
default:
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inspecto-dev/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.11",
|
|
4
4
|
"description": "CLI tools for Inspecto onboarding and lifecycle management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"inspecto",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"picocolors": "^1.0.0",
|
|
23
23
|
"prompts": "^2.4.2",
|
|
24
24
|
"zod": "^4.1.12",
|
|
25
|
-
"@inspecto-dev/types": "0.3.
|
|
25
|
+
"@inspecto-dev/types": "0.3.11"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^20.19.39",
|
|
@@ -75,7 +75,7 @@ interface InstallPlan {
|
|
|
75
75
|
interface InspectoSettingsShape {
|
|
76
76
|
ide?: string
|
|
77
77
|
'provider.default'?: string
|
|
78
|
-
'annotate.deliveryMode'?: 'ide' | 'agent'
|
|
78
|
+
'annotate.deliveryMode'?: 'ide' | 'agent'
|
|
79
79
|
[key: string]: unknown
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -395,11 +395,9 @@ async function persistProjectOnboardingDefaults(
|
|
|
395
395
|
await writeJSON(settingsPath, mergedSettings)
|
|
396
396
|
}
|
|
397
397
|
|
|
398
|
-
function resolveAnnotateDefaultDeliveryForAssistant(
|
|
399
|
-
assistant: AssistantId,
|
|
400
|
-
): 'ide' | 'agent' | 'both' {
|
|
398
|
+
function resolveAnnotateDefaultDeliveryForAssistant(assistant: AssistantId): 'ide' | 'agent' {
|
|
401
399
|
void assistant
|
|
402
|
-
return '
|
|
400
|
+
return 'agent'
|
|
403
401
|
}
|
|
404
402
|
|
|
405
403
|
function shouldSkipAutomationForInstall(options: InstallIntegrationOptions): boolean {
|
|
@@ -473,8 +471,14 @@ function resolveInstallPlan(assistant: string, options: InstallIntegrationOption
|
|
|
473
471
|
target: '.gemini/skills/inspecto-onboarding/SKILL.md',
|
|
474
472
|
localSource: 'skills/inspecto-onboarding-gemini/SKILL.md',
|
|
475
473
|
},
|
|
474
|
+
{
|
|
475
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
476
|
+
target: '.gemini/skills/inspecto-agent/SKILL.md',
|
|
477
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
478
|
+
},
|
|
476
479
|
],
|
|
477
|
-
successMessage:
|
|
480
|
+
successMessage:
|
|
481
|
+
'Installed Gemini skills to .gemini/skills/inspecto-onboarding and .gemini/skills/inspecto-agent',
|
|
478
482
|
nextStep: 'Start a new Gemini CLI session and use /skills list to verify.',
|
|
479
483
|
}
|
|
480
484
|
case 'trae':
|
|
@@ -491,9 +495,15 @@ function resolveInstallPlan(assistant: string, options: InstallIntegrationOption
|
|
|
491
495
|
localSource: 'skills/inspecto-onboarding-trae/scripts/run-inspecto.sh',
|
|
492
496
|
executable: true,
|
|
493
497
|
},
|
|
498
|
+
{
|
|
499
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
500
|
+
target: '.trae/skills/inspecto-agent/SKILL.md',
|
|
501
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
502
|
+
},
|
|
494
503
|
],
|
|
495
|
-
successMessage:
|
|
496
|
-
|
|
504
|
+
successMessage:
|
|
505
|
+
'Installed Trae skills to .trae/skills/inspecto-onboarding and .trae/skills/inspecto-agent',
|
|
506
|
+
nextStep: 'Open a new Trae chat and verify the skills are available.',
|
|
497
507
|
}
|
|
498
508
|
case 'coco':
|
|
499
509
|
return {
|
|
@@ -509,8 +519,14 @@ function resolveInstallPlan(assistant: string, options: InstallIntegrationOption
|
|
|
509
519
|
localSource: 'skills/inspecto-onboarding-trae/scripts/run-inspecto.sh',
|
|
510
520
|
executable: true,
|
|
511
521
|
},
|
|
522
|
+
{
|
|
523
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
524
|
+
target: '.trae/skills/inspecto-agent/SKILL.md',
|
|
525
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
526
|
+
},
|
|
512
527
|
],
|
|
513
|
-
successMessage:
|
|
528
|
+
successMessage:
|
|
529
|
+
'Installed Coco skills to .trae/skills/inspecto-onboarding and .trae/skills/inspecto-agent',
|
|
514
530
|
nextStep: 'Start a new Coco session.',
|
|
515
531
|
}
|
|
516
532
|
case 'codebuddy':
|
|
@@ -527,11 +543,15 @@ function resolveInstallPlan(assistant: string, options: InstallIntegrationOption
|
|
|
527
543
|
localSource: 'skills/inspecto-onboarding-codebuddy/scripts/run-inspecto.sh',
|
|
528
544
|
executable: true,
|
|
529
545
|
},
|
|
546
|
+
{
|
|
547
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
548
|
+
target: '.codebuddy/skills/inspecto-agent/SKILL.md',
|
|
549
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
550
|
+
},
|
|
530
551
|
],
|
|
531
552
|
successMessage:
|
|
532
|
-
'Installed CodeBuddy
|
|
533
|
-
nextStep:
|
|
534
|
-
'Open a new CodeBuddy chat and verify the inspecto-onboarding skill is available.',
|
|
553
|
+
'Installed CodeBuddy skills to .codebuddy/skills/inspecto-onboarding and .codebuddy/skills/inspecto-agent',
|
|
554
|
+
nextStep: 'Open a new CodeBuddy chat and verify the skills are available.',
|
|
535
555
|
}
|
|
536
556
|
default:
|
|
537
557
|
throw new Error(`Unknown assistant: ${assistant}`)
|
|
@@ -644,6 +664,10 @@ function resolveClaudeCodePlan(options: InstallIntegrationOptions): InstallPlan
|
|
|
644
664
|
scope === 'user'
|
|
645
665
|
? path.join(homedir(), '.claude/skills/inspecto-onboarding-claude-code')
|
|
646
666
|
: '.claude/skills/inspecto-onboarding-claude-code'
|
|
667
|
+
const agentDir =
|
|
668
|
+
scope === 'user'
|
|
669
|
+
? path.join(homedir(), '.claude/skills/inspecto-agent')
|
|
670
|
+
: '.claude/skills/inspecto-agent'
|
|
647
671
|
|
|
648
672
|
return {
|
|
649
673
|
assets: [
|
|
@@ -663,9 +687,14 @@ function resolveClaudeCodePlan(options: InstallIntegrationOptions): InstallPlan
|
|
|
663
687
|
executable: true,
|
|
664
688
|
localSource: 'skills/inspecto-onboarding-claude-code/scripts/run-inspecto.sh',
|
|
665
689
|
},
|
|
690
|
+
{
|
|
691
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
692
|
+
target: path.join(agentDir, 'SKILL.md'),
|
|
693
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
694
|
+
},
|
|
666
695
|
],
|
|
667
|
-
successMessage: `Installed Claude Code
|
|
668
|
-
nextStep: 'Restart Claude Code to load the new
|
|
696
|
+
successMessage: `Installed Claude Code skills to ${baseDir} and ${agentDir}`,
|
|
697
|
+
nextStep: 'Restart Claude Code to load the new skills.',
|
|
669
698
|
}
|
|
670
699
|
}
|
|
671
700
|
|
|
@@ -689,8 +718,14 @@ function resolveCopilotPlan(options: InstallIntegrationOptions): InstallPlan {
|
|
|
689
718
|
target: '.github/skills/inspecto-onboarding/SKILL.md',
|
|
690
719
|
localSource: 'skills/inspecto-onboarding-copilot/SKILL.md',
|
|
691
720
|
},
|
|
721
|
+
{
|
|
722
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
723
|
+
target: '.github/skills/inspecto-agent/SKILL.md',
|
|
724
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
725
|
+
},
|
|
692
726
|
],
|
|
693
|
-
successMessage:
|
|
727
|
+
successMessage:
|
|
728
|
+
'Installed Copilot skills to .github/skills/inspecto-onboarding and .github/skills/inspecto-agent',
|
|
694
729
|
nextStep: 'Open a new Copilot chat or agent session.',
|
|
695
730
|
}
|
|
696
731
|
default:
|
|
@@ -716,8 +751,14 @@ function resolveCursorPlan(options: InstallIntegrationOptions): InstallPlan {
|
|
|
716
751
|
target: '.cursor/skills/inspecto-onboarding/SKILL.md',
|
|
717
752
|
localSource: 'skills/inspecto-onboarding-cursor/SKILL.md',
|
|
718
753
|
},
|
|
754
|
+
{
|
|
755
|
+
source: `${REPO_RAW_BASE}/skills/inspecto-agent/SKILL.md`,
|
|
756
|
+
target: '.cursor/skills/inspecto-agent/SKILL.md',
|
|
757
|
+
localSource: 'skills/inspecto-agent/SKILL.md',
|
|
758
|
+
},
|
|
719
759
|
],
|
|
720
|
-
successMessage:
|
|
760
|
+
successMessage:
|
|
761
|
+
'Installed Cursor skills to .cursor/skills/inspecto-onboarding and .cursor/skills/inspecto-agent',
|
|
721
762
|
nextStep: 'Open a new Cursor chat.',
|
|
722
763
|
}
|
|
723
764
|
default:
|
package/src/commands/mcp.ts
CHANGED
|
@@ -241,7 +241,7 @@ export function createInspectoMcpRuntime(baseUrl: string): InspectoMcpRuntime {
|
|
|
241
241
|
export function resolveInspectoServerBaseUrl(cwd: string): string | null {
|
|
242
242
|
const ports = resolveServerPorts(cwd)
|
|
243
243
|
const port = ports[0]
|
|
244
|
-
return port ? `http://
|
|
244
|
+
return port ? `http://127.0.0.1:${port}` : null
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
export function resolveServerPorts(cwd: string): number[] {
|
package/src/instructions.ts
CHANGED
|
@@ -83,7 +83,7 @@ export function printNextJsManualInstructions() {
|
|
|
83
83
|
' useEffect(() => {',
|
|
84
84
|
" if (process.env.NODE_ENV !== 'production') {",
|
|
85
85
|
" import('@inspecto-dev/core').then(({ mountInspector }) => {",
|
|
86
|
-
" mountInspector({ serverUrl: 'http://
|
|
86
|
+
" mountInspector({ serverUrl: 'http://127.0.0.1:5678' })",
|
|
87
87
|
' })',
|
|
88
88
|
' }',
|
|
89
89
|
' }, [])',
|
|
@@ -261,10 +261,13 @@ async function buildDailyUsageHandoff(
|
|
|
261
261
|
projectRoot: string,
|
|
262
262
|
): Promise<OnboardingDailyUsageHandoff | undefined> {
|
|
263
263
|
const localSettings =
|
|
264
|
-
(await readJSON<Record<string, unknown>>(
|
|
265
|
-
|
|
264
|
+
(await readJSON<Record<string, unknown>>(
|
|
265
|
+
path.join(projectRoot, '.inspecto', 'settings.local.json'),
|
|
266
|
+
)) ?? {}
|
|
266
267
|
const sharedSettings =
|
|
267
|
-
(await readJSON<Record<string, unknown>>(
|
|
268
|
+
(await readJSON<Record<string, unknown>>(
|
|
269
|
+
path.join(projectRoot, '.inspecto', 'settings.json'),
|
|
270
|
+
)) ?? {}
|
|
268
271
|
const annotateDeliveryMode =
|
|
269
272
|
(localSettings['annotate.deliveryMode'] as string | undefined) ??
|
|
270
273
|
(sharedSettings['annotate.deliveryMode'] as string | undefined)
|
|
@@ -93,7 +93,7 @@ function buildUmiMountSnippet(): string {
|
|
|
93
93
|
" if (process.env.NODE_ENV !== 'production') {",
|
|
94
94
|
" import('@inspecto-dev/core').then(({ mountInspector }) => {",
|
|
95
95
|
' mountInspector({',
|
|
96
|
-
" serverUrl: 'http://
|
|
96
|
+
" serverUrl: 'http://127.0.0.1:' + ((window as { __AI_INSPECTOR_PORT__?: number }).__AI_INSPECTOR_PORT__ || 5678),",
|
|
97
97
|
' })',
|
|
98
98
|
' })',
|
|
99
99
|
' }',
|
|
@@ -176,11 +176,15 @@ describe('integration install', () => {
|
|
|
176
176
|
|
|
177
177
|
await installIntegration('cursor', { mode: 'agents' })
|
|
178
178
|
|
|
179
|
-
expect(writeFileMock).toHaveBeenCalledTimes(
|
|
179
|
+
expect(writeFileMock).toHaveBeenCalledTimes(2)
|
|
180
180
|
expect(writeFileMock).toHaveBeenCalledWith(
|
|
181
181
|
'.cursor/skills/inspecto-onboarding/SKILL.md',
|
|
182
182
|
'# mock asset',
|
|
183
183
|
)
|
|
184
|
+
expect(writeFileMock).toHaveBeenCalledWith(
|
|
185
|
+
'.cursor/skills/inspecto-agent/SKILL.md',
|
|
186
|
+
'# mock asset',
|
|
187
|
+
)
|
|
184
188
|
})
|
|
185
189
|
|
|
186
190
|
it('installs the Trae skill with a launcher script', async () => {
|
|
@@ -210,7 +214,7 @@ describe('integration install', () => {
|
|
|
210
214
|
expect(writeJSONMock).toHaveBeenCalledWith('/repo/.inspecto/settings.local.json', {
|
|
211
215
|
ide: 'trae-cn',
|
|
212
216
|
'provider.default': 'gemini.extension',
|
|
213
|
-
'annotate.deliveryMode': '
|
|
217
|
+
'annotate.deliveryMode': 'agent',
|
|
214
218
|
})
|
|
215
219
|
})
|
|
216
220
|
|
|
@@ -228,7 +232,7 @@ describe('integration install', () => {
|
|
|
228
232
|
expect(writeJSONMock).toHaveBeenCalledWith('/repo/.inspecto/settings.local.json', {
|
|
229
233
|
ide: 'trae-cn',
|
|
230
234
|
'provider.default': 'gemini.extension',
|
|
231
|
-
'annotate.deliveryMode': '
|
|
235
|
+
'annotate.deliveryMode': 'agent',
|
|
232
236
|
'prompt.autoSend': true,
|
|
233
237
|
})
|
|
234
238
|
})
|
|
@@ -241,7 +245,7 @@ describe('integration install', () => {
|
|
|
241
245
|
expect(writeJSONMock).toHaveBeenCalledWith('/repo/.inspecto/settings.local.json', {
|
|
242
246
|
ide: 'cursor',
|
|
243
247
|
'provider.default': 'codex.extension',
|
|
244
|
-
'annotate.deliveryMode': '
|
|
248
|
+
'annotate.deliveryMode': 'agent',
|
|
245
249
|
})
|
|
246
250
|
})
|
|
247
251
|
|
|
@@ -539,6 +543,7 @@ describe('integration install', () => {
|
|
|
539
543
|
'/Users/tester/.claude/skills/inspecto-onboarding-claude-code/SKILL.md',
|
|
540
544
|
'/Users/tester/.claude/skills/inspecto-onboarding-claude-code/agents/openai.yaml',
|
|
541
545
|
'/Users/tester/.claude/skills/inspecto-onboarding-claude-code/scripts/run-inspecto.sh',
|
|
546
|
+
'/Users/tester/.claude/skills/inspecto-agent/SKILL.md',
|
|
542
547
|
],
|
|
543
548
|
preferredInstall:
|
|
544
549
|
'npx @inspecto-dev/cli integrations install claude-code --scope project --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
|
@@ -570,6 +575,7 @@ describe('integration install', () => {
|
|
|
570
575
|
targets: [
|
|
571
576
|
'.trae/skills/inspecto-onboarding/SKILL.md',
|
|
572
577
|
'.trae/skills/inspecto-onboarding/scripts/run-inspecto.sh',
|
|
578
|
+
'.trae/skills/inspecto-agent/SKILL.md',
|
|
573
579
|
],
|
|
574
580
|
preferredInstall:
|
|
575
581
|
'npx @inspecto-dev/cli integrations install coco --host-ide <vscode|cursor|trae|trae-cn|codebuddy|codebuddy-cn>',
|
package/tests/mcp.test.ts
CHANGED
|
@@ -45,7 +45,7 @@ describe('inspecto mcp command', () => {
|
|
|
45
45
|
'utf-8',
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
-
expect(resolveInspectoServerBaseUrl(cwd)).toBe('http://
|
|
48
|
+
expect(resolveInspectoServerBaseUrl(cwd)).toBe('http://127.0.0.1:5680')
|
|
49
49
|
})
|
|
50
50
|
|
|
51
51
|
it('resolves the project server URL when Codex runs from a nested working directory', () => {
|
|
@@ -66,7 +66,7 @@ describe('inspecto mcp command', () => {
|
|
|
66
66
|
'utf-8',
|
|
67
67
|
)
|
|
68
68
|
|
|
69
|
-
expect(resolveInspectoServerBaseUrl(nestedCwd)).toBe('http://
|
|
69
|
+
expect(resolveInspectoServerBaseUrl(nestedCwd)).toBe('http://127.0.0.1:5681')
|
|
70
70
|
})
|
|
71
71
|
|
|
72
72
|
it('exposes the expected MCP tool definitions', () => {
|