kyro-ai 3.3.2 → 3.4.1
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/.claude-plugin/plugin.json +1 -1
- package/WORKFLOW.yaml +1 -1
- package/dist/cli/adapters/claude.d.ts +3 -0
- package/dist/cli/adapters/claude.d.ts.map +1 -0
- package/dist/cli/adapters/claude.js +98 -0
- package/dist/cli/adapters/claude.js.map +1 -0
- package/dist/cli/adapters/cursor.d.ts +3 -0
- package/dist/cli/adapters/cursor.d.ts.map +1 -0
- package/dist/cli/adapters/cursor.js +74 -0
- package/dist/cli/adapters/cursor.js.map +1 -0
- package/dist/cli/adapters/registry.d.ts.map +1 -1
- package/dist/cli/adapters/registry.js +4 -52
- package/dist/cli/adapters/registry.js.map +1 -1
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +11 -0
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/commands/adapter.d.ts +4 -0
- package/dist/cli/commands/adapter.d.ts.map +1 -0
- package/dist/cli/commands/adapter.js +41 -0
- package/dist/cli/commands/adapter.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +70 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +40 -4
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +2 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +93 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/preflight.d.ts +3 -1
- package/dist/cli/commands/preflight.d.ts.map +1 -1
- package/dist/cli/commands/preflight.js +3 -2
- package/dist/cli/commands/preflight.js.map +1 -1
- package/dist/cli/commands/tui.js +2 -0
- package/dist/cli/commands/tui.js.map +1 -1
- package/dist/cli/drift.js +3 -1
- package/dist/cli/drift.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +16 -4
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +10 -0
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/docs/adapter-matrix.md +15 -0
- package/docs/adr/0002-agent-platform-v2.md +41 -0
- package/docs/host-smoke-tests.md +15 -0
- package/docs/mcp.md +19 -0
- package/docs/migration.md +16 -0
- package/docs/release-3.4.0.md +42 -0
- package/docs/release-agent-platform-v2.md +21 -0
- package/package.json +3 -2
- package/scripts/check-adapter-fixtures.mjs +88 -18
- package/scripts/smoke-adapters.mjs +144 -0
package/WORKFLOW.yaml
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/claude.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,eAAO,MAAM,aAAa,EAAE,iBAkE3B,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.claudeAdapter = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const fs_1 = require("../fs");
|
|
6
|
+
const detection_1 = require("./detection");
|
|
7
|
+
const CLAUDE_SKILLS_ROOT = '.claude/skills';
|
|
8
|
+
exports.claudeAdapter = {
|
|
9
|
+
agent: constants_1.AGENT.CLAUDE,
|
|
10
|
+
displayName: 'Claude CLI-native',
|
|
11
|
+
status: 'implemented',
|
|
12
|
+
capabilities() {
|
|
13
|
+
return ['command-skills', 'filesystem-detect', 'slash-commands', 'mcp'];
|
|
14
|
+
},
|
|
15
|
+
paths(homeDir) {
|
|
16
|
+
return {
|
|
17
|
+
globalConfigDir: `${homeDir}/.claude`,
|
|
18
|
+
systemPromptPath: `${homeDir}/.claude/CLAUDE.md`,
|
|
19
|
+
skillsDir: `${homeDir}/.claude/skills`,
|
|
20
|
+
commandsDir: `${homeDir}/.claude/commands`,
|
|
21
|
+
settingsPath: `${homeDir}/.claude/settings.json`,
|
|
22
|
+
mcpConfigPath: `${homeDir}/.claude/mcp`,
|
|
23
|
+
subAgentsDir: `${homeDir}/.claude/agents`,
|
|
24
|
+
outputStylesDir: `${homeDir}/.claude/output-styles`,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
detect(context) {
|
|
28
|
+
return (0, detection_1.detectFromPaths)(constants_1.AGENT.CLAUDE, 'claude', this.paths(context.homeDir), context, 'Claude CLI-native adapter');
|
|
29
|
+
},
|
|
30
|
+
systemPromptStrategy() {
|
|
31
|
+
return 'instructions-file';
|
|
32
|
+
},
|
|
33
|
+
mcpStrategy() {
|
|
34
|
+
return 'separate-files';
|
|
35
|
+
},
|
|
36
|
+
buildProjection(plan) {
|
|
37
|
+
for (const command of constants_1.COMMAND_NAMES) {
|
|
38
|
+
plan.push({
|
|
39
|
+
action: 'write',
|
|
40
|
+
path: `${CLAUDE_SKILLS_ROOT}/kyro-${command}/SKILL.md`,
|
|
41
|
+
content: buildClaudeSkill(command),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
buildRemoval(plan) {
|
|
46
|
+
for (const command of constants_1.COMMAND_NAMES) {
|
|
47
|
+
plan.push({ action: 'remove', path: `${CLAUDE_SKILLS_ROOT}/kyro-${command}/SKILL.md` });
|
|
48
|
+
plan.push({ action: 'rmdir-if-empty', path: `${CLAUDE_SKILLS_ROOT}/kyro-${command}` });
|
|
49
|
+
}
|
|
50
|
+
plan.push({ action: 'rmdir-if-empty', path: CLAUDE_SKILLS_ROOT });
|
|
51
|
+
},
|
|
52
|
+
buildManagedFiles() {
|
|
53
|
+
return constants_1.COMMAND_NAMES.map((command) => `${CLAUDE_SKILLS_ROOT}/kyro-${command}/SKILL.md`);
|
|
54
|
+
},
|
|
55
|
+
buildManagedBlocks() {
|
|
56
|
+
return [];
|
|
57
|
+
},
|
|
58
|
+
buildInstalledAdapter(scope, installedAt) {
|
|
59
|
+
return {
|
|
60
|
+
agent: constants_1.AGENT.CLAUDE,
|
|
61
|
+
scope,
|
|
62
|
+
installedAt,
|
|
63
|
+
corePath: constants_1.KYRO_ROOT,
|
|
64
|
+
commandsPath: `${CLAUDE_SKILLS_ROOT}/kyro-*`,
|
|
65
|
+
skillsPath: CLAUDE_SKILLS_ROOT,
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
doctor(manifest) {
|
|
69
|
+
if (!manifest?.adapters.some((adapter) => adapter.agent === constants_1.AGENT.CLAUDE)) {
|
|
70
|
+
return { status: 'warn', name: 'Claude CLI-native adapter', detail: 'not installed in this workspace' };
|
|
71
|
+
}
|
|
72
|
+
return checkClaudeProjection();
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
function buildClaudeSkill(command) {
|
|
76
|
+
const title = command === 'wrap-up' ? 'Kyro Wrap-Up' : `Kyro ${capitalize(command)}`;
|
|
77
|
+
return `---\nname: kyro-${command}\ndescription: ${descriptionFor(command)}\nlicense: Apache-2.0\nmetadata:\n author: synapsync\n version: "1.0"\n scope: [root]\n---\n\n# ${title}\n\nRead \`${constants_1.KYRO_COMMANDS_ROOT}/${command}.md\`, then load only the routed Kyro mode/helper files.\n\nRuntime: \`${constants_1.KYRO_ROOT}/\`\nArtifacts: \`${constants_1.ARTIFACT_ROOT}/{scope}/\`\n\nThis is the lightweight Claude CLI-native workspace projection. The packaged Claude plugin in \`.claude-plugin/\` remains the official full distribution path.\n`;
|
|
78
|
+
}
|
|
79
|
+
function descriptionFor(command) {
|
|
80
|
+
if (command === 'forge')
|
|
81
|
+
return 'Run the Kyro forge workflow in Claude CLI-native workspaces';
|
|
82
|
+
if (command === 'status')
|
|
83
|
+
return 'Show Kyro project status in Claude CLI-native workspaces';
|
|
84
|
+
return 'Close the Kyro session in Claude CLI-native workspaces';
|
|
85
|
+
}
|
|
86
|
+
function checkClaudeProjection() {
|
|
87
|
+
const missing = constants_1.COMMAND_NAMES
|
|
88
|
+
.map((command) => `${CLAUDE_SKILLS_ROOT}/kyro-${command}/SKILL.md`)
|
|
89
|
+
.filter((file) => !(0, fs_1.workspaceFileExists)(file));
|
|
90
|
+
if (missing.length > 0) {
|
|
91
|
+
return { status: 'fail', name: 'Claude CLI-native adapter', detail: `missing ${missing.join(', ')}`, remedy: 'Run kyro sync --agent claude.' };
|
|
92
|
+
}
|
|
93
|
+
return { status: 'pass', name: 'Claude CLI-native adapter', detail: 'workspace Claude skills present; .claude-plugin preserved' };
|
|
94
|
+
}
|
|
95
|
+
function capitalize(value) {
|
|
96
|
+
return `${value.slice(0, 1).toUpperCase()}${value.slice(1)}`;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/cli/adapters/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/cursor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,eAAO,MAAM,aAAa,EAAE,iBAwD3B,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cursorAdapter = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const fs_1 = require("../fs");
|
|
6
|
+
const detection_1 = require("./detection");
|
|
7
|
+
const CURSOR_RULE_PATH = '.cursor/rules/kyro-ai.mdc';
|
|
8
|
+
exports.cursorAdapter = {
|
|
9
|
+
agent: constants_1.AGENT.CURSOR,
|
|
10
|
+
displayName: 'Cursor',
|
|
11
|
+
status: 'implemented',
|
|
12
|
+
capabilities() {
|
|
13
|
+
return ['filesystem-detect', 'system-prompt', 'mcp'];
|
|
14
|
+
},
|
|
15
|
+
paths(homeDir) {
|
|
16
|
+
return {
|
|
17
|
+
globalConfigDir: `${homeDir}/.cursor`,
|
|
18
|
+
systemPromptPath: `${homeDir}/.cursor/rules/kyro-ai.mdc`,
|
|
19
|
+
mcpConfigPath: `${homeDir}/.cursor/mcp.json`,
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
detect(context) {
|
|
23
|
+
return (0, detection_1.detectFromPaths)(constants_1.AGENT.CURSOR, null, this.paths(context.homeDir), context, 'Cursor adapter');
|
|
24
|
+
},
|
|
25
|
+
systemPromptStrategy() {
|
|
26
|
+
return 'instructions-file';
|
|
27
|
+
},
|
|
28
|
+
mcpStrategy() {
|
|
29
|
+
return 'mcp-json-file';
|
|
30
|
+
},
|
|
31
|
+
buildProjection(plan) {
|
|
32
|
+
plan.push({
|
|
33
|
+
action: 'write',
|
|
34
|
+
path: CURSOR_RULE_PATH,
|
|
35
|
+
content: buildCursorRule(),
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
buildRemoval(plan) {
|
|
39
|
+
plan.push({ action: 'remove', path: CURSOR_RULE_PATH });
|
|
40
|
+
plan.push({ action: 'rmdir-if-empty', path: '.cursor/rules' });
|
|
41
|
+
},
|
|
42
|
+
buildManagedFiles() {
|
|
43
|
+
return [CURSOR_RULE_PATH];
|
|
44
|
+
},
|
|
45
|
+
buildManagedBlocks() {
|
|
46
|
+
return [];
|
|
47
|
+
},
|
|
48
|
+
buildInstalledAdapter(scope, installedAt) {
|
|
49
|
+
return {
|
|
50
|
+
agent: constants_1.AGENT.CURSOR,
|
|
51
|
+
scope,
|
|
52
|
+
installedAt,
|
|
53
|
+
corePath: constants_1.KYRO_ROOT,
|
|
54
|
+
commandsPath: constants_1.AGENT_SKILLS_ROOT,
|
|
55
|
+
skillsPath: constants_1.AGENT_SKILLS_ROOT,
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
doctor(manifest) {
|
|
59
|
+
if (!manifest?.adapters.some((adapter) => adapter.agent === constants_1.AGENT.CURSOR)) {
|
|
60
|
+
return { status: 'warn', name: 'Cursor adapter', detail: 'not installed in this workspace' };
|
|
61
|
+
}
|
|
62
|
+
return checkCursorProjection();
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
function buildCursorRule() {
|
|
66
|
+
return `---\ndescription: Kyro workflow entrypoints for this workspace\nalwaysApply: false\n---\n\n# Kyro AI\n\nUse the installed Kyro runtime when the user invokes Kyro workflows or asks for sprint/status/wrap-up execution.\n\n- Runtime: \`${constants_1.KYRO_ROOT}/\`\n- Command skills: \`${constants_1.AGENT_SKILLS_ROOT}/kyro-*\`\n- Project state: \`.agents/kyro/kyro.json\`\n- Artifacts: \`${constants_1.ARTIFACT_ROOT}/{scope}/\`\n\nLoad only the relevant command router first: \`${constants_1.KYRO_ROOT}/commands/{forge,status,wrap-up}.md\`. Do not inline the full workflow unless the router asks for it.\n\nKyro owns this file. Preserve all other Cursor rules.\n`;
|
|
67
|
+
}
|
|
68
|
+
function checkCursorProjection() {
|
|
69
|
+
if (!(0, fs_1.workspaceFileExists)(CURSOR_RULE_PATH)) {
|
|
70
|
+
return { status: 'fail', name: 'Cursor adapter', detail: `missing ${CURSOR_RULE_PATH}`, remedy: 'Run kyro sync --agent cursor.' };
|
|
71
|
+
}
|
|
72
|
+
return { status: 'pass', name: 'Cursor adapter', detail: 'workspace Cursor rule file present' };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/cli/adapters/cursor.ts"],"names":[],"mappings":";;;AAAA,4CAAkF;AAClF,8BAA4C;AAE5C,2CAA8C;AAG9C,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAExC,QAAA,aAAa,GAAsB;IAC9C,KAAK,EAAE,iBAAK,CAAC,MAAM;IACnB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,aAAa;IACrB,YAAY;QACV,OAAO,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,KAAK,CAAC,OAAO;QACX,OAAO;YACL,eAAe,EAAE,GAAG,OAAO,UAAU;YACrC,gBAAgB,EAAE,GAAG,OAAO,4BAA4B;YACxD,aAAa,EAAE,GAAG,OAAO,mBAAmB;SAC7C,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,OAAO;QACZ,OAAO,IAAA,2BAAe,EAAC,iBAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACrG,CAAC;IACD,oBAAoB;QAClB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,WAAW;QACT,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,eAAe,CAAC,IAAI;QAClB,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,eAAe,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,IAAqB;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,iBAAiB;QACf,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IACD,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,WAAW;QACtC,OAAO;YACL,KAAK,EAAE,iBAAK,CAAC,MAAM;YACnB,KAAK;YACL,WAAW;YACX,QAAQ,EAAE,qBAAS;YACnB,YAAY,EAAE,6BAAiB;YAC/B,UAAU,EAAE,6BAAiB;SAC9B,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,QAAQ;QACb,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,iBAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QAC/F,CAAC;QACD,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;CACF,CAAC;AAEF,SAAS,eAAe;IACtB,OAAO,4OAA4O,qBAAS,4BAA4B,6BAAiB,0EAA0E,yBAAa,iEAAiE,qBAAS,kKAAkK,CAAC;AAC/mB,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC,IAAA,wBAAmB,EAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,gBAAgB,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IACpI,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;AAClG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EAMvC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAIpE;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,EAAE,CAE5D;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,EAAE,CAEnF"}
|
|
@@ -4,65 +4,17 @@ exports.ADAPTERS = void 0;
|
|
|
4
4
|
exports.getAdapterDefinition = getAdapterDefinition;
|
|
5
5
|
exports.getInstallableAdapters = getInstallableAdapters;
|
|
6
6
|
exports.getInstalledAdapterDefinitions = getInstalledAdapterDefinitions;
|
|
7
|
-
const
|
|
7
|
+
const claude_1 = require("./claude");
|
|
8
8
|
const codex_1 = require("./codex");
|
|
9
|
-
const
|
|
9
|
+
const cursor_1 = require("./cursor");
|
|
10
10
|
const opencode_1 = require("./opencode");
|
|
11
11
|
const standard_1 = require("./standard");
|
|
12
|
-
const plannedAdapter = (agent, displayName, buildPaths, systemPromptStrategy, mcpStrategy, binaryName) => ({
|
|
13
|
-
agent,
|
|
14
|
-
displayName,
|
|
15
|
-
status: 'planned',
|
|
16
|
-
capabilities() {
|
|
17
|
-
return [];
|
|
18
|
-
},
|
|
19
|
-
paths(homeDir) {
|
|
20
|
-
return buildPaths(homeDir);
|
|
21
|
-
},
|
|
22
|
-
detect(context) {
|
|
23
|
-
return (0, detection_1.detectFromPaths)(agent, binaryName, buildPaths(context.homeDir), context, `${displayName} adapter is planned`);
|
|
24
|
-
},
|
|
25
|
-
systemPromptStrategy() {
|
|
26
|
-
return systemPromptStrategy;
|
|
27
|
-
},
|
|
28
|
-
mcpStrategy() {
|
|
29
|
-
return mcpStrategy;
|
|
30
|
-
},
|
|
31
|
-
buildProjection() { },
|
|
32
|
-
buildRemoval() { },
|
|
33
|
-
buildManagedFiles() {
|
|
34
|
-
return [];
|
|
35
|
-
},
|
|
36
|
-
buildManagedBlocks() {
|
|
37
|
-
return [];
|
|
38
|
-
},
|
|
39
|
-
buildInstalledAdapter(scope, installedAt) {
|
|
40
|
-
return { agent, scope, installedAt, corePath: '~/.agents/kyro/current' };
|
|
41
|
-
},
|
|
42
|
-
doctor() {
|
|
43
|
-
return { status: 'warn', name: `${displayName} adapter`, detail: 'planned but not implemented yet' };
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
12
|
exports.ADAPTERS = [
|
|
47
13
|
standard_1.standardAgentsAdapter,
|
|
48
14
|
opencode_1.openCodeAdapter,
|
|
49
15
|
codex_1.codexAdapter,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
systemPromptPath: `${homeDir}/.claude/CLAUDE.md`,
|
|
53
|
-
skillsDir: `${homeDir}/.claude/skills`,
|
|
54
|
-
commandsDir: `${homeDir}/.claude/commands`,
|
|
55
|
-
settingsPath: `${homeDir}/.claude/settings.json`,
|
|
56
|
-
mcpConfigPath: `${homeDir}/.claude/mcp`,
|
|
57
|
-
subAgentsDir: `${homeDir}/.claude/agents`,
|
|
58
|
-
outputStylesDir: `${homeDir}/.claude/output-styles`,
|
|
59
|
-
}), 'managed-block', 'separate-files', 'claude'),
|
|
60
|
-
plannedAdapter(constants_1.AGENT.CURSOR, 'Cursor', (homeDir) => ({
|
|
61
|
-
globalConfigDir: `${homeDir}/.cursor`,
|
|
62
|
-
systemPromptPath: `${homeDir}/.cursor/rules/kyro-ai.mdc`,
|
|
63
|
-
skillsDir: `${homeDir}/.cursor/skills`,
|
|
64
|
-
mcpConfigPath: `${homeDir}/.cursor/mcp.json`,
|
|
65
|
-
}), 'instructions-file', 'mcp-json-file', null),
|
|
16
|
+
cursor_1.cursorAdapter,
|
|
17
|
+
claude_1.claudeAdapter,
|
|
66
18
|
];
|
|
67
19
|
function getAdapterDefinition(agent) {
|
|
68
20
|
const definition = exports.ADAPTERS.find((adapter) => adapter.agent === agent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":";;;AAgBA,oDAIC;AAED,wDAEC;AAED,wEAEC;AA3BD,qCAAyC;AACzC,mCAAuC;AACvC,qCAAyC;AACzC,yCAA6C;AAC7C,yCAAmD;AAGtC,QAAA,QAAQ,GAAwB;IAC3C,gCAAqB;IACrB,0BAAe;IACf,oBAAY;IACZ,sBAAa;IACb,sBAAa;CACd,CAAC;AAEF,SAAgB,oBAAoB,CAAC,KAAY;IAC/C,MAAM,UAAU,GAAG,gBAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,gBAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;AACxE,CAAC;AAED,SAAgB,8BAA8B,CAAC,MAAe;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/cli/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":"AAYA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA+D5C"}
|
package/dist/cli/app.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runCli = runCli;
|
|
4
|
+
const adapter_1 = require("./commands/adapter");
|
|
4
5
|
const doctor_1 = require("./commands/doctor");
|
|
5
6
|
const detect_1 = require("./commands/detect");
|
|
6
7
|
const install_1 = require("./commands/install");
|
|
8
|
+
const mcp_1 = require("./commands/mcp");
|
|
7
9
|
const tui_1 = require("./commands/tui");
|
|
8
10
|
const repair_1 = require("./commands/repair");
|
|
9
11
|
const scope_1 = require("./commands/scope");
|
|
@@ -28,6 +30,15 @@ async function runCli() {
|
|
|
28
30
|
(0, scope_1.runScopeCommand)(args);
|
|
29
31
|
return;
|
|
30
32
|
}
|
|
33
|
+
if (command === 'adapter') {
|
|
34
|
+
const [subcommand = 'matrix', ...optionArgs] = args;
|
|
35
|
+
(0, adapter_1.adapterCommand)([subcommand], (0, options_1.parseOptions)(optionArgs));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (command === 'mcp') {
|
|
39
|
+
(0, mcp_1.mcpCommand)(args);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
31
42
|
const options = (0, options_1.parseOptions)(args);
|
|
32
43
|
if (options.help) {
|
|
33
44
|
(0, help_1.printCommandHelp)(command);
|
package/dist/cli/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;AAYA,wBA+DC;AA3ED,gDAAoD;AACpD,8CAA2C;AAC3C,8CAA2C;AAC3C,gDAAmD;AACnD,wCAA4C;AAC5C,wCAAwC;AACxC,8CAA2C;AAC3C,4CAAmD;AACnD,oDAAiD;AACjD,iCAAyE;AACzE,uCAAyC;AAElC,KAAK,UAAU,MAAM;IAC1B,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,IAAA,gBAAS,GAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAkB,GAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,UAAU,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QACpD,IAAA,wBAAc,EAAC,CAAC,UAAU,CAAC,EAAE,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,IAAA,gBAAU,EAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,uBAAgB,EAAC,OAAO,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,MAAM;YACT,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC;YACd,MAAM;QACR,KAAK,WAAW;YACd,IAAA,qBAAS,EAAC,OAAO,CAAC,CAAC;YACnB,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,oBAAoB,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAc3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAMxE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,IAAI,CAarE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adapterCommand = adapterCommand;
|
|
4
|
+
exports.adapterMatrix = adapterMatrix;
|
|
5
|
+
const registry_1 = require("../adapters/registry");
|
|
6
|
+
function adapterCommand(args, options) {
|
|
7
|
+
const [subcommand = 'matrix'] = args;
|
|
8
|
+
if (subcommand !== 'matrix') {
|
|
9
|
+
throw new Error(`Unknown adapter subcommand: ${subcommand}. Run kyro adapter matrix.`);
|
|
10
|
+
}
|
|
11
|
+
adapterMatrix(options);
|
|
12
|
+
}
|
|
13
|
+
function adapterMatrix(options) {
|
|
14
|
+
const rows = buildAdapterMatrix();
|
|
15
|
+
if (options.json) {
|
|
16
|
+
console.log(JSON.stringify({ schemaVersion: 1, adapters: rows }, null, 2));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
console.log('Kyro adapter matrix');
|
|
20
|
+
for (const row of rows) {
|
|
21
|
+
console.log(`- ${row.agent}: status=${row.status}; installable=${row.installable ? 'yes' : 'no'}; capabilities=${row.capabilities.length > 0 ? row.capabilities.join(',') : 'none'}; mcp=${row.mcpStrategy}; prompt=${row.systemPromptStrategy}; smoke=${row.smokeCoverage}`);
|
|
22
|
+
console.log(` paths=${Object.entries(row.paths).map(([key, value]) => `${key}:${value}`).join(', ') || 'none'}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function buildAdapterMatrix() {
|
|
26
|
+
return registry_1.ADAPTERS.map((adapter) => {
|
|
27
|
+
const paths = adapter.paths('~');
|
|
28
|
+
return {
|
|
29
|
+
agent: adapter.agent,
|
|
30
|
+
displayName: adapter.displayName,
|
|
31
|
+
status: adapter.status,
|
|
32
|
+
capabilities: adapter.capabilities(),
|
|
33
|
+
paths: Object.fromEntries(Object.entries(paths).filter(([, value]) => Boolean(value))),
|
|
34
|
+
installable: adapter.status === 'implemented',
|
|
35
|
+
mcpStrategy: adapter.mcpStrategy(),
|
|
36
|
+
systemPromptStrategy: adapter.systemPromptStrategy(),
|
|
37
|
+
smokeCoverage: adapter.status === 'implemented' ? 'fixture+host-smoke' : 'planned',
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/cli/commands/adapter.ts"],"names":[],"mappings":";;AAeA,wCAMC;AAED,sCAaC;AApCD,mDAAgD;AAehD,SAAgB,cAAc,CAAC,IAAc,EAAE,OAAmB;IAChE,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,4BAA4B,CAAC,CAAC;IACzF,CAAC;IACD,aAAa,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa,CAAC,OAAiC;IAC7D,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAElC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,kBAAkB,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,GAAG,CAAC,WAAW,YAAY,GAAG,CAAC,oBAAoB,WAAW,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9Q,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,mBAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;YACpC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAA2B;YAChH,WAAW,EAAE,OAAO,CAAC,MAAM,KAAK,aAAa;YAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;YAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE;YACpD,aAAa,EAAE,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;SACnF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CliOptions } from '../types';
|
|
2
|
-
export declare function doctor(options?: Pick<CliOptions, 'tokens' | 'artifacts' | 'adapters' | 'kyroScope'>): void;
|
|
2
|
+
export declare function doctor(options?: Pick<CliOptions, 'tokens' | 'artifacts' | 'adapters' | 'kyroScope' | 'json' | 'migration'>): void;
|
|
3
3
|
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/D,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/D,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG,IAAI,CAsBjI"}
|
|
@@ -12,6 +12,13 @@ const token_audit_1 = require("./token-audit");
|
|
|
12
12
|
const artifact_doctor_1 = require("./artifact-doctor");
|
|
13
13
|
function doctor(options) {
|
|
14
14
|
const checks = runDoctorChecks(options?.tokens ?? false, options?.artifacts ?? false, options?.adapters ?? false, options?.kyroScope ?? null);
|
|
15
|
+
const migration = options?.migration ? buildMigrationReport(checks) : null;
|
|
16
|
+
if (options?.json) {
|
|
17
|
+
console.log(JSON.stringify({ schemaVersion: 1, checks, migration }, null, 2));
|
|
18
|
+
if (checks.some((check) => check.status === 'fail'))
|
|
19
|
+
process.exit(1);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
15
22
|
let failed = false;
|
|
16
23
|
for (const check of checks) {
|
|
17
24
|
const icon = check.status === 'pass' ? 'PASS' : check.status === 'warn' ? 'WARN' : 'FAIL';
|
|
@@ -21,6 +28,8 @@ function doctor(options) {
|
|
|
21
28
|
if (check.status === 'fail')
|
|
22
29
|
failed = true;
|
|
23
30
|
}
|
|
31
|
+
if (migration)
|
|
32
|
+
printMigrationReport(migration);
|
|
24
33
|
if (failed)
|
|
25
34
|
process.exit(1);
|
|
26
35
|
}
|
|
@@ -104,7 +113,8 @@ function checkGlobalRuntime() {
|
|
|
104
113
|
remedy: 'Run kyro install.',
|
|
105
114
|
};
|
|
106
115
|
}
|
|
107
|
-
const
|
|
116
|
+
const runtimeFiles = manifest.managedFiles.filter((file) => file.startsWith(`${constants_1.KYRO_GLOBAL_ROOT}/`));
|
|
117
|
+
const missing = runtimeFiles.filter((file) => !(0, fs_1.managedPathExists)(file));
|
|
108
118
|
if (missing.length > 0) {
|
|
109
119
|
return {
|
|
110
120
|
status: 'fail',
|
|
@@ -113,7 +123,7 @@ function checkGlobalRuntime() {
|
|
|
113
123
|
remedy: 'Run kyro sync.',
|
|
114
124
|
};
|
|
115
125
|
}
|
|
116
|
-
return { status: 'pass', name: 'global runtime', detail: `${
|
|
126
|
+
return { status: 'pass', name: 'global runtime', detail: `${runtimeFiles.length} runtime files present` };
|
|
117
127
|
}
|
|
118
128
|
function checkAdapterProjections() {
|
|
119
129
|
const state = (0, state_1.readProjectState)();
|
|
@@ -156,6 +166,64 @@ function checkAdapterInventory() {
|
|
|
156
166
|
return { status: 'pass', name: `adapter inventory: ${adapter.agent}`, detail };
|
|
157
167
|
});
|
|
158
168
|
}
|
|
169
|
+
function buildMigrationReport(checks) {
|
|
170
|
+
const state = (0, state_1.readProjectState)();
|
|
171
|
+
const manifest = (0, state_1.readManifest)();
|
|
172
|
+
const installedAdapters = state?.installedAdapters.map((adapter) => adapter.agent).sort() ?? [];
|
|
173
|
+
const failed = checks.filter((check) => check.status === 'fail');
|
|
174
|
+
const warnings = checks.filter((check) => check.status === 'warn');
|
|
175
|
+
const preservedSharedConfig = manifest?.managedFiles.filter((file) => isSharedConfig(file)) ?? [];
|
|
176
|
+
const recommendedActions = [];
|
|
177
|
+
const risks = [];
|
|
178
|
+
if (!state)
|
|
179
|
+
recommendedActions.push('Run kyro install --scope workspace.');
|
|
180
|
+
if (!manifest)
|
|
181
|
+
recommendedActions.push('Run kyro install or kyro sync to create the global runtime manifest.');
|
|
182
|
+
if (failed.length > 0)
|
|
183
|
+
recommendedActions.push('Resolve failing doctor checks before migrating adapters.');
|
|
184
|
+
if (warnings.length > 0)
|
|
185
|
+
recommendedActions.push('Review warnings and run kyro sync --dry-run --json for planned changes.');
|
|
186
|
+
if (installedAdapters.length > 0)
|
|
187
|
+
recommendedActions.push('Run kyro sync --prune --dry-run --json to preview stale runtime and adapter cleanup.');
|
|
188
|
+
if (preservedSharedConfig.length > 0)
|
|
189
|
+
risks.push('Shared host config is preserved by default and may require manual audit.');
|
|
190
|
+
if (installedAdapters.length === 0)
|
|
191
|
+
risks.push('No workspace adapters are installed yet.');
|
|
192
|
+
return {
|
|
193
|
+
installedAdapters,
|
|
194
|
+
availableAdapters: registry_1.ADAPTERS.map((adapter) => adapter.agent),
|
|
195
|
+
drift: {
|
|
196
|
+
failedChecks: failed.length,
|
|
197
|
+
warnings: warnings.length,
|
|
198
|
+
},
|
|
199
|
+
preservedSharedConfig,
|
|
200
|
+
recommendedActions,
|
|
201
|
+
risks,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function printMigrationReport(report) {
|
|
205
|
+
console.log('Migration report:');
|
|
206
|
+
console.log(` Installed adapters: ${report.installedAdapters.length > 0 ? report.installedAdapters.join(', ') : 'none'}`);
|
|
207
|
+
console.log(` Available adapters: ${report.availableAdapters.join(', ')}`);
|
|
208
|
+
console.log(` Drift: failures=${report.drift.failedChecks}; warnings=${report.drift.warnings}`);
|
|
209
|
+
console.log(` Preserved shared config: ${report.preservedSharedConfig.length > 0 ? report.preservedSharedConfig.join(', ') : 'none'}`);
|
|
210
|
+
if (report.recommendedActions.length > 0) {
|
|
211
|
+
console.log(' Recommended actions:');
|
|
212
|
+
for (const action of report.recommendedActions)
|
|
213
|
+
console.log(` - ${action}`);
|
|
214
|
+
}
|
|
215
|
+
if (report.risks.length > 0) {
|
|
216
|
+
console.log(' Risks:');
|
|
217
|
+
for (const risk of report.risks)
|
|
218
|
+
console.log(` - ${risk}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function isSharedConfig(file) {
|
|
222
|
+
return file === '~/.config/opencode/opencode.json'
|
|
223
|
+
|| file === '~/.codex/config.toml'
|
|
224
|
+
|| file === '~/.claude/settings.json'
|
|
225
|
+
|| file === '.cursor/mcp.json';
|
|
226
|
+
}
|
|
159
227
|
function readYamlVersion(file) {
|
|
160
228
|
const text = (0, fs_1.readPackageText)(file);
|
|
161
229
|
const match = text.match(/^version:\s*["']?([^"'\n]+)["']?$/m);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAgCjD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CA4D9C"}
|