kyro-ai 3.2.0 → 3.2.2
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/README.md +46 -39
- package/WORKFLOW.yaml +1 -1
- package/commands/forge.md +22 -44
- package/commands/status.md +21 -79
- package/commands/wrap-up.md +18 -74
- package/dist/cli/adapters/codex.js +3 -3
- package/dist/cli/adapters/codex.js.map +1 -1
- package/dist/cli/adapters/command-skills.js +1 -1
- package/dist/cli/adapters/command-skills.js.map +1 -1
- package/dist/cli/adapters/opencode.d.ts +0 -2
- package/dist/cli/adapters/opencode.d.ts.map +1 -1
- package/dist/cli/adapters/opencode.js +2 -10
- package/dist/cli/adapters/opencode.js.map +1 -1
- package/dist/cli/adapters/registry.d.ts.map +1 -1
- package/dist/cli/adapters/registry.js +3 -1
- package/dist/cli/adapters/registry.js.map +1 -1
- package/dist/cli/adapters/standard.d.ts +5 -0
- package/dist/cli/adapters/standard.d.ts.map +1 -0
- package/dist/cli/adapters/standard.js +41 -0
- package/dist/cli/adapters/standard.js.map +1 -0
- package/dist/cli/app.js +1 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +27 -18
- 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 +8 -7
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/token-audit.d.ts +3 -0
- package/dist/cli/commands/token-audit.d.ts.map +1 -0
- package/dist/cli/commands/token-audit.js +141 -0
- package/dist/cli/commands/token-audit.js.map +1 -0
- package/dist/cli/commands/tui.d.ts.map +1 -1
- package/dist/cli/commands/tui.js +10 -6
- package/dist/cli/commands/tui.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +9 -9
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/constants.d.ts +12 -7
- package/dist/cli/constants.d.ts.map +1 -1
- package/dist/cli/constants.js +13 -5
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/fs.d.ts +3 -0
- package/dist/cli/fs.d.ts.map +1 -1
- package/dist/cli/fs.js +30 -5
- package/dist/cli/fs.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +6 -4
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/install-plan.d.ts.map +1 -1
- package/dist/cli/install-plan.js +27 -20
- package/dist/cli/install-plan.js.map +1 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +8 -1
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/state.js +1 -1
- package/dist/cli/state.js.map +1 -1
- package/dist/cli/types.d.ts +4 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/docs/HOW-TO-USE-CODEX.md +28 -60
- package/docs/HOW-TO-USE-OPENCODE.md +26 -72
- package/docs/agent-adapters.md +40 -118
- package/docs/architecture.md +7 -2
- package/docs/cli.md +93 -29
- package/docs/commands-reference.md +22 -32
- package/docs/getting-started.md +65 -115
- package/package.json +1 -1
- package/skills/sprint-forge/SKILL.md +9 -8
- package/skills/sprint-forge/assets/README.md +27 -17
- package/skills/sprint-forge/assets/helpers/metrics.md +4 -4
- package/skills/sprint-forge/assets/helpers/reentry-generator.md +4 -4
- package/skills/sprint-forge/assets/modes/INIT.md +68 -169
- package/skills/sprint-forge/assets/modes/SPRINT.md +20 -246
- package/skills/sprint-forge/assets/modes/STATUS.md +46 -128
- package/skills/sprint-forge/assets/modes/close-sprint.md +29 -0
- package/skills/sprint-forge/assets/modes/execute-task.md +26 -0
- package/skills/sprint-forge/assets/modes/plan-sprint.md +29 -0
- package/skills/sprint-forge/assets/modes/recover.md +23 -0
- package/skills/sprint-forge/assets/modes/review-task.md +25 -0
- package/skills/sprint-forge/assets/templates/DEBT.summary.json +12 -0
- package/skills/sprint-forge/assets/templates/ROADMAP.summary.json +15 -0
- package/skills/sprint-forge/assets/templates/SPRINT.summary.json +16 -0
- package/skills/sprint-forge/assets/templates/index.json +15 -0
- package/skills/sprint-forge/assets/templates/state.json +11 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.standardAgentsAdapter = void 0;
|
|
4
|
+
exports.checkCommandProjection = checkCommandProjection;
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const fs_1 = require("../fs");
|
|
7
|
+
const command_skills_1 = require("./command-skills");
|
|
8
|
+
exports.standardAgentsAdapter = {
|
|
9
|
+
agent: constants_1.AGENT.STANDARD,
|
|
10
|
+
displayName: 'Standard .agents',
|
|
11
|
+
status: 'implemented',
|
|
12
|
+
buildProjection: command_skills_1.addCommandSkillProjection,
|
|
13
|
+
buildManagedFiles: command_skills_1.buildCommandSkillManagedFiles,
|
|
14
|
+
buildManagedBlocks() {
|
|
15
|
+
return [];
|
|
16
|
+
},
|
|
17
|
+
buildInstalledAdapter(scope, installedAt) {
|
|
18
|
+
return {
|
|
19
|
+
agent: constants_1.AGENT.STANDARD,
|
|
20
|
+
scope,
|
|
21
|
+
installedAt,
|
|
22
|
+
corePath: constants_1.KYRO_ROOT,
|
|
23
|
+
commandsPath: constants_1.AGENT_SKILLS_ROOT,
|
|
24
|
+
skillsPath: constants_1.AGENT_SKILLS_ROOT,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
doctor(manifest) {
|
|
28
|
+
if (!manifest?.adapters.some((adapter) => adapter.agent === constants_1.AGENT.STANDARD)) {
|
|
29
|
+
return { status: 'warn', name: 'Standard .agents adapter', detail: 'not installed in this workspace' };
|
|
30
|
+
}
|
|
31
|
+
return checkCommandProjection('Standard .agents adapter');
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
function checkCommandProjection(name) {
|
|
35
|
+
const missing = (0, command_skills_1.buildCommandSkillManagedFiles)().filter((file) => !(0, fs_1.workspaceFileExists)(file));
|
|
36
|
+
if (missing.length > 0) {
|
|
37
|
+
return { status: 'fail', name, detail: `missing ${missing.join(', ')}`, remedy: 'Run kyro sync.' };
|
|
38
|
+
}
|
|
39
|
+
return { status: 'pass', name, detail: 'projected Kyro command skills present' };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=standard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../src/cli/adapters/standard.ts"],"names":[],"mappings":";;;AAiCA,wDAMC;AAvCD,4CAAmE;AACnE,8BAA4C;AAG5C,qDAA4F;AAE/E,QAAA,qBAAqB,GAAsB;IACtD,KAAK,EAAE,iBAAK,CAAC,QAAQ;IACrB,WAAW,EAAE,kBAAkB;IAC/B,MAAM,EAAE,aAAa;IACrB,eAAe,EAAE,0CAAyB;IAC1C,iBAAiB,EAAE,8CAA6B;IAChD,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,WAAW;QACtC,OAAO;YACL,KAAK,EAAE,iBAAK,CAAC,QAAQ;YACrB,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,QAAQ,CAAC,EAAE,CAAC;YAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QACzG,CAAC;QACD,OAAO,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC;CACF,CAAC;AAEF,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,OAAO,GAAG,IAAA,8CAA6B,GAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,wBAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACrG,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;AACnF,CAAC"}
|
package/dist/cli/app.js
CHANGED
package/dist/cli/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;AAOA,wBAyCC;AAhDD,8CAA2C;AAC3C,gDAAmD;AACnD,wCAAwC;AACxC,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,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,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;AAOA,wBAyCC;AAhDD,8CAA2C;AAC3C,gDAAmD;AACnD,wCAAwC;AACxC,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,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,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/D,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,CAYjE"}
|
|
@@ -8,8 +8,9 @@ const fs_1 = require("../fs");
|
|
|
8
8
|
const help_1 = require("../help");
|
|
9
9
|
const state_1 = require("../state");
|
|
10
10
|
const registry_1 = require("../adapters/registry");
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const token_audit_1 = require("./token-audit");
|
|
12
|
+
function doctor(options) {
|
|
13
|
+
const checks = runDoctorChecks(options?.tokens ?? false);
|
|
13
14
|
let failed = false;
|
|
14
15
|
for (const check of checks) {
|
|
15
16
|
const icon = check.status === 'pass' ? 'PASS' : check.status === 'warn' ? 'WARN' : 'FAIL';
|
|
@@ -22,15 +23,18 @@ function doctor() {
|
|
|
22
23
|
if (failed)
|
|
23
24
|
process.exit(1);
|
|
24
25
|
}
|
|
25
|
-
function runDoctorChecks() {
|
|
26
|
-
|
|
26
|
+
function runDoctorChecks(includeTokenAudit) {
|
|
27
|
+
const checks = [
|
|
27
28
|
checkPackageVersionSync(),
|
|
28
29
|
checkPackageAssets(),
|
|
29
30
|
checkClaudePlugin(),
|
|
30
31
|
checkProjectState(),
|
|
31
|
-
|
|
32
|
+
checkGlobalRuntime(),
|
|
32
33
|
...checkAdapterProjections(),
|
|
33
34
|
];
|
|
35
|
+
if (includeTokenAudit)
|
|
36
|
+
checks.push(...(0, token_audit_1.runTokenAuditChecks)());
|
|
37
|
+
return checks;
|
|
34
38
|
}
|
|
35
39
|
function checkPackageVersionSync() {
|
|
36
40
|
try {
|
|
@@ -71,44 +75,49 @@ function checkProjectState() {
|
|
|
71
75
|
if (!state) {
|
|
72
76
|
return {
|
|
73
77
|
status: 'warn',
|
|
74
|
-
name: '
|
|
78
|
+
name: 'project state',
|
|
75
79
|
detail: `${constants_1.KYRO_STATE_PATH} not found`,
|
|
76
|
-
remedy: 'Run kyro install --
|
|
80
|
+
remedy: 'Run kyro install --scope workspace.',
|
|
77
81
|
};
|
|
78
82
|
}
|
|
79
|
-
if (state.schemaVersion !== 1
|
|
80
|
-
|
|
83
|
+
if (state.schemaVersion !== 1
|
|
84
|
+
|| state.artifactRoot !== constants_1.ARTIFACT_ROOT
|
|
85
|
+
|| !Array.isArray(state.scopes)
|
|
86
|
+
|| typeof state.runtimeVersion !== 'string'
|
|
87
|
+
|| typeof state.runtimePath !== 'string') {
|
|
88
|
+
return { status: 'fail', name: 'project state', detail: `${constants_1.KYRO_STATE_PATH} has invalid shape` };
|
|
81
89
|
}
|
|
82
|
-
return { status: 'pass', name: '
|
|
90
|
+
return { status: 'pass', name: 'project state', detail: `${constants_1.KYRO_STATE_PATH} is valid` };
|
|
83
91
|
}
|
|
84
|
-
function
|
|
92
|
+
function checkGlobalRuntime() {
|
|
85
93
|
const manifest = (0, state_1.readManifest)();
|
|
86
94
|
if (!manifest) {
|
|
87
95
|
return {
|
|
88
96
|
status: 'warn',
|
|
89
|
-
name: '
|
|
97
|
+
name: 'global runtime',
|
|
90
98
|
detail: `${constants_1.KYRO_MANIFEST_PATH} not found`,
|
|
91
99
|
remedy: 'Run kyro install.',
|
|
92
100
|
};
|
|
93
101
|
}
|
|
94
|
-
const missing = manifest.managedFiles.filter((file) => !(0, fs_1.
|
|
102
|
+
const missing = manifest.managedFiles.filter((file) => !(0, fs_1.managedPathExists)(file));
|
|
95
103
|
if (missing.length > 0) {
|
|
96
104
|
return {
|
|
97
105
|
status: 'fail',
|
|
98
|
-
name: '
|
|
106
|
+
name: 'global runtime',
|
|
99
107
|
detail: `missing managed files: ${missing.slice(0, 5).join(', ')}${missing.length > 5 ? '...' : ''}`,
|
|
100
108
|
remedy: 'Run kyro sync.',
|
|
101
109
|
};
|
|
102
110
|
}
|
|
103
|
-
return { status: 'pass', name: '
|
|
111
|
+
return { status: 'pass', name: 'global runtime', detail: `${manifest.managedFiles.length} managed files present` };
|
|
104
112
|
}
|
|
105
113
|
function checkAdapterProjections() {
|
|
114
|
+
const state = (0, state_1.readProjectState)();
|
|
106
115
|
const manifest = (0, state_1.readManifest)();
|
|
107
|
-
if (!
|
|
116
|
+
if (!state)
|
|
108
117
|
return [];
|
|
109
|
-
return
|
|
118
|
+
return state.installedAdapters.map((installedAdapter) => {
|
|
110
119
|
try {
|
|
111
|
-
return (0, registry_1.getAdapterDefinition)(installedAdapter.agent).doctor(manifest);
|
|
120
|
+
return (0, registry_1.getAdapterDefinition)(installedAdapter.agent).doctor(manifest ? { ...manifest, adapters: state.installedAdapters } : null);
|
|
112
121
|
}
|
|
113
122
|
catch (error) {
|
|
114
123
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":";;AAUA,wBAYC;AAtBD,qCAAqC;AACrC,yCAAoC;AACpC,4CAAgG;AAChG,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":";;AAUA,wBAYC;AAtBD,qCAAqC;AACrC,yCAAoC;AACpC,4CAAgG;AAChG,8BAAqG;AACrG,kCAA6C;AAC7C,oCAA0D;AAC1D,mDAA4D;AAC5D,+CAAoD;AAGpD,SAAgB,MAAM,CAAC,OAAoC;IACzD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC;IACzD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,iBAA0B;IACjD,MAAM,MAAM,GAAG;QACb,uBAAuB,EAAE;QACzB,kBAAkB,EAAE;QACpB,iBAAiB,EAAE;QACnB,iBAAiB,EAAE;QACnB,kBAAkB,EAAE;QACpB,GAAG,uBAAuB,EAAE;KAC7B,CAAC;IAEF,IAAI,iBAAiB;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iCAAmB,GAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,yBAAkB,GAAE,CAAC;QACxC,MAAM,aAAa,GAAG,IAAA,wBAAmB,EAAsB,4BAA4B,CAAC,CAAC,OAAO,CAAC;QACrG,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;YACnE,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,WAAW,UAAU,YAAY,aAAa,cAAc,eAAe,EAAE;gBACrF,MAAM,EAAE,sDAAsD;aAC/D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,UAAU,EAAE,EAAE,CAAC;IAClG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,QAAQ,GAAG,CAAC,wBAAwB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,2BAA2B,CAAC,CAAC;IAC3K,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,oBAAU,EAAC,IAAA,mBAAO,EAAC,wBAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,UAAU,GAAG,IAAA,mBAAO,EAAC,wBAAY,EAAE,4BAA4B,CAAC,CAAC;IACvE,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IACzG,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;AACzG,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,GAAG,2BAAe,YAAY;YACtC,MAAM,EAAE,qCAAqC;SAC9C,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,aAAa,KAAK,CAAC;WACtB,KAAK,CAAC,YAAY,KAAK,yBAAa;WACpC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;WAC5B,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;WACxC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,2BAAe,oBAAoB,EAAE,CAAC;IACnG,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,2BAAe,WAAW,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,QAAQ,GAAG,IAAA,oBAAY,GAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,GAAG,8BAAkB,YAAY;YACzC,MAAM,EAAE,mBAAmB;SAC5B,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,sBAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,0BAA0B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACpG,MAAM,EAAE,gBAAgB;SACzB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,wBAAwB,EAAE,CAAC;AACrH,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAA,oBAAY,GAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,OAAO,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,OAAO,IAAA,+BAAoB,EAAC,gBAAgB,CAAC,KAAc,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5I,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,UAAU;gBACzC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;gBAC3B,MAAM,EAAE,yCAAyC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,IAAI,GAAG,IAAA,oBAAe,EAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -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;AAE3C,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;AAE3C,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAiBjD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAiB9C"}
|
|
@@ -9,25 +9,26 @@ const state_1 = require("../state");
|
|
|
9
9
|
const constants_1 = require("../constants");
|
|
10
10
|
function install(options) {
|
|
11
11
|
(0, options_1.assertWorkspaceScope)(options.scope);
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const agents = options.agents.length > 0 ? options.agents : [constants_1.AGENT.STANDARD];
|
|
13
|
+
(0, options_1.assertInstallableAgents)(agents);
|
|
14
|
+
const plan = (0, install_plan_1.buildInstallPlan)(agents, options.scope);
|
|
14
15
|
(0, fs_1.printPlan)('Install plan', plan);
|
|
15
16
|
if (options.dryRun) {
|
|
16
17
|
console.log('Dry run complete. No files changed.');
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
(0, fs_1.applyPlan)(plan);
|
|
20
|
-
console.log(
|
|
21
|
+
console.log('Kyro has been installed.');
|
|
21
22
|
console.log(`State: ${constants_1.KYRO_STATE_PATH}`);
|
|
22
|
-
console.log(`
|
|
23
|
+
console.log(`Runtime: ${constants_1.KYRO_ROOT}/`);
|
|
23
24
|
}
|
|
24
25
|
function sync(options) {
|
|
25
26
|
(0, options_1.assertWorkspaceScope)(options.scope);
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
27
|
+
const state = (0, state_1.readProjectState)();
|
|
28
|
+
if (!state) {
|
|
28
29
|
throw new Error('Kyro is not installed in this workspace. Run kyro install first.');
|
|
29
30
|
}
|
|
30
|
-
const agents = options.agents.length > 0 ? options.agents :
|
|
31
|
+
const agents = options.agents.length > 0 ? options.agents : state.installedAdapters.map((adapter) => adapter.agent);
|
|
31
32
|
(0, options_1.assertInstallableAgents)(agents);
|
|
32
33
|
const unique = (0, options_1.uniqueAgents)(agents);
|
|
33
34
|
const plan = (0, install_plan_1.buildInstallPlan)(unique, constants_1.SCOPE.WORKSPACE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":";;AAOA,0BAiBC;AAED,oBAiBC;AA3CD,kDAAmD;AACnD,8BAA6C;AAC7C,wCAAyF;AACzF,oCAA4C;AAC5C,4CAAwE;AAGxE,SAAgB,OAAO,CAAC,OAAmB;IACzC,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAK,CAAC,QAAQ,CAAC,CAAC;IAC7E,IAAA,iCAAuB,EAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,IAAA,cAAS,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,UAAU,2BAAe,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,YAAY,qBAAS,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,IAAI,CAAC,OAAmB;IACtC,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpH,IAAA,iCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,MAAM,EAAE,iBAAK,CAAC,SAAS,CAAC,CAAC;IACvD,IAAA,cAAS,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/token-audit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAiB5C,wBAAgB,mBAAmB,IAAI,WAAW,EAAE,CAUnD"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runTokenAuditChecks = runTokenAuditChecks;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const fs_1 = require("../fs");
|
|
8
|
+
const TOKEN_BUDGET = {
|
|
9
|
+
agentsBlockWords: 150,
|
|
10
|
+
projectedSkillWords: 200,
|
|
11
|
+
commandRouterWords: 500,
|
|
12
|
+
modeFileWords: 900,
|
|
13
|
+
startupTokens: 1500,
|
|
14
|
+
statusBriefTokens: 2000,
|
|
15
|
+
};
|
|
16
|
+
function runTokenAuditChecks() {
|
|
17
|
+
const checks = [];
|
|
18
|
+
checks.push(...checkCommandRouters());
|
|
19
|
+
checks.push(...checkModeFiles());
|
|
20
|
+
checks.push(checkProjectedSkills());
|
|
21
|
+
checks.push(checkAgentsBlockBudget());
|
|
22
|
+
checks.push(checkStartupBudget());
|
|
23
|
+
checks.push(checkStatusBriefBudget());
|
|
24
|
+
checks.push(reportHeaviestFiles());
|
|
25
|
+
return checks;
|
|
26
|
+
}
|
|
27
|
+
function checkCommandRouters() {
|
|
28
|
+
return ['commands/forge.md', 'commands/status.md', 'commands/wrap-up.md'].map((file) => {
|
|
29
|
+
const weighted = weightPackageFile(file);
|
|
30
|
+
if (weighted.words > TOKEN_BUDGET.commandRouterWords) {
|
|
31
|
+
return warn('token budget: command router', `${file} has ${weighted.words} words`, 'Keep command files as routers; move details into mode/helper files.');
|
|
32
|
+
}
|
|
33
|
+
return pass('token budget: command router', `${file} ${weighted.words}/${TOKEN_BUDGET.commandRouterWords} words`);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function checkModeFiles() {
|
|
37
|
+
return listPackageFiles('skills/sprint-forge/assets/modes', '.md').map((file) => {
|
|
38
|
+
const weighted = weightPackageFile(file);
|
|
39
|
+
if (weighted.words > TOKEN_BUDGET.modeFileWords) {
|
|
40
|
+
return warn('token budget: mode file', `${file} has ${weighted.words} words`, 'Split this mode or move detail into a lazy-loaded helper.');
|
|
41
|
+
}
|
|
42
|
+
return pass('token budget: mode file', `${file} ${weighted.words}/${TOKEN_BUDGET.modeFileWords} words`);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function checkProjectedSkills() {
|
|
46
|
+
const skillFiles = ['kyro-forge/SKILL.md', 'kyro-status/SKILL.md', 'kyro-wrap-up/SKILL.md'].map((file) => `${constants_1.AGENT_SKILLS_ROOT}/${file}`);
|
|
47
|
+
const existing = skillFiles.filter((file) => (0, node_fs_1.existsSync)((0, fs_1.resolveManagedPath)(file)));
|
|
48
|
+
if (existing.length === 0) {
|
|
49
|
+
return warn('token budget: projected skills', 'global Kyro skills are not installed', 'Run kyro install, then kyro doctor --tokens again.');
|
|
50
|
+
}
|
|
51
|
+
const oversized = existing.map(weightManagedFile).filter((file) => file.words > TOKEN_BUDGET.projectedSkillWords);
|
|
52
|
+
if (oversized.length > 0) {
|
|
53
|
+
return warn('token budget: projected skills', formatWeightedList(oversized), 'Projected skills must stay as tiny stubs.');
|
|
54
|
+
}
|
|
55
|
+
return pass('token budget: projected skills', `${existing.length} skills within ${TOKEN_BUDGET.projectedSkillWords} words`);
|
|
56
|
+
}
|
|
57
|
+
function checkAgentsBlockBudget() {
|
|
58
|
+
const agentsPath = (0, fs_1.resolveManagedPath)('AGENTS.md');
|
|
59
|
+
if (!(0, node_fs_1.existsSync)(agentsPath)) {
|
|
60
|
+
return warn('token budget: AGENTS block', 'AGENTS.md not found in this workspace', 'Install the codex adapter if this workspace should expose AGENTS.md instructions.');
|
|
61
|
+
}
|
|
62
|
+
const text = (0, node_fs_1.readFileSync)(agentsPath, 'utf-8');
|
|
63
|
+
const match = text.match(/<!-- kyro-ai:agents-md:start -->([\s\S]*?)<!-- kyro-ai:agents-md:end -->/m);
|
|
64
|
+
if (!match) {
|
|
65
|
+
return warn('token budget: AGENTS block', 'Kyro managed block not found', 'Run kyro install --agent codex or kyro sync --agent codex.');
|
|
66
|
+
}
|
|
67
|
+
const words = countWords(match[1]);
|
|
68
|
+
if (words > TOKEN_BUDGET.agentsBlockWords) {
|
|
69
|
+
return warn('token budget: AGENTS block', `${words}/${TOKEN_BUDGET.agentsBlockWords} words`, 'Keep AGENTS.md as bootstrap only.');
|
|
70
|
+
}
|
|
71
|
+
return pass('token budget: AGENTS block', `${words}/${TOKEN_BUDGET.agentsBlockWords} words`);
|
|
72
|
+
}
|
|
73
|
+
function checkStartupBudget() {
|
|
74
|
+
const files = ['commands/forge.md', 'skills/sprint-forge/assets/modes/SPRINT.md'];
|
|
75
|
+
const total = files.map(weightPackageFile).reduce((sum, file) => sum + file.estimatedTokens, 0);
|
|
76
|
+
if (total > TOKEN_BUDGET.startupTokens) {
|
|
77
|
+
return warn('token budget: startup path', `${total}/${TOKEN_BUDGET.startupTokens} estimated tokens`, 'Reduce forge router or sprint router startup instructions.');
|
|
78
|
+
}
|
|
79
|
+
return pass('token budget: startup path', `${total}/${TOKEN_BUDGET.startupTokens} estimated tokens`);
|
|
80
|
+
}
|
|
81
|
+
function checkStatusBriefBudget() {
|
|
82
|
+
const files = ['commands/status.md'];
|
|
83
|
+
const total = files.map(weightPackageFile).reduce((sum, file) => sum + file.estimatedTokens, 0);
|
|
84
|
+
if (total > TOKEN_BUDGET.statusBriefTokens) {
|
|
85
|
+
return warn('token budget: status brief path', `${total}/${TOKEN_BUDGET.statusBriefTokens} estimated tokens`, 'Keep status brief summary-first.');
|
|
86
|
+
}
|
|
87
|
+
return pass('token budget: status brief path', `${total}/${TOKEN_BUDGET.statusBriefTokens} estimated tokens`);
|
|
88
|
+
}
|
|
89
|
+
function reportHeaviestFiles() {
|
|
90
|
+
const files = [
|
|
91
|
+
...listPackageFiles('commands', '.md'),
|
|
92
|
+
...listPackageFiles('agents', '.md'),
|
|
93
|
+
...listPackageFiles('skills/sprint-forge', '.md'),
|
|
94
|
+
].map(weightPackageFile).sort((a, b) => b.words - a.words).slice(0, 8);
|
|
95
|
+
return pass('token audit: heaviest files', formatWeightedList(files));
|
|
96
|
+
}
|
|
97
|
+
function listPackageFiles(directory, extension) {
|
|
98
|
+
const root = (0, node_path_1.resolve)(constants_1.PACKAGE_ROOT, directory);
|
|
99
|
+
if (!(0, node_fs_1.existsSync)(root))
|
|
100
|
+
return [];
|
|
101
|
+
const files = [];
|
|
102
|
+
walk(root, files, extension);
|
|
103
|
+
return files.map((file) => (0, node_path_1.relative)(constants_1.PACKAGE_ROOT, file)).sort();
|
|
104
|
+
}
|
|
105
|
+
function walk(current, files, extension) {
|
|
106
|
+
for (const entry of (0, node_fs_1.readdirSync)(current, { withFileTypes: true })) {
|
|
107
|
+
const full = (0, node_path_1.join)(current, entry.name);
|
|
108
|
+
if (entry.isDirectory())
|
|
109
|
+
walk(full, files, extension);
|
|
110
|
+
if (entry.isFile() && entry.name.endsWith(extension))
|
|
111
|
+
files.push(full);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function weightPackageFile(file) {
|
|
115
|
+
const text = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(constants_1.PACKAGE_ROOT, file), 'utf-8');
|
|
116
|
+
return buildWeightedFile(file, text);
|
|
117
|
+
}
|
|
118
|
+
function weightManagedFile(file) {
|
|
119
|
+
const text = (0, node_fs_1.readFileSync)((0, fs_1.resolveManagedPath)(file), 'utf-8');
|
|
120
|
+
return buildWeightedFile(file, text);
|
|
121
|
+
}
|
|
122
|
+
function buildWeightedFile(path, text) {
|
|
123
|
+
const words = countWords(text);
|
|
124
|
+
return { path, words, estimatedTokens: estimateTokens(words) };
|
|
125
|
+
}
|
|
126
|
+
function countWords(text) {
|
|
127
|
+
return text.trim().length === 0 ? 0 : text.trim().split(/\s+/).length;
|
|
128
|
+
}
|
|
129
|
+
function estimateTokens(words) {
|
|
130
|
+
return Math.ceil(words * 1.33);
|
|
131
|
+
}
|
|
132
|
+
function formatWeightedList(files) {
|
|
133
|
+
return files.map((file) => `${file.path}=${file.words}w/~${file.estimatedTokens}t`).join(', ');
|
|
134
|
+
}
|
|
135
|
+
function pass(name, detail) {
|
|
136
|
+
return { status: 'pass', name, detail };
|
|
137
|
+
}
|
|
138
|
+
function warn(name, detail, remedy) {
|
|
139
|
+
return { status: 'warn', name, detail, remedy };
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=token-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-audit.js","sourceRoot":"","sources":["../../../src/cli/commands/token-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":"AAMA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":"AAMA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB5C"}
|
package/dist/cli/commands/tui.js
CHANGED
|
@@ -10,18 +10,22 @@ async function runTui() {
|
|
|
10
10
|
const rl = (0, promises_1.createInterface)({ input: node_process_1.stdin, output: node_process_1.stdout });
|
|
11
11
|
try {
|
|
12
12
|
console.log('Kyro — Multi-Agent Harness');
|
|
13
|
-
console.log('1) Install
|
|
14
|
-
console.log('2) Install
|
|
15
|
-
console.log('3)
|
|
16
|
-
console.log('4)
|
|
13
|
+
console.log('1) Install standard .agents adapter in this workspace');
|
|
14
|
+
console.log('2) Install OpenCode adapter in this workspace');
|
|
15
|
+
console.log('3) Install Codex adapter in this workspace');
|
|
16
|
+
console.log('4) Run doctor');
|
|
17
|
+
console.log('5) Exit');
|
|
17
18
|
const answer = await rl.question('Select an option: ');
|
|
18
19
|
if (answer.trim() === '1') {
|
|
19
|
-
(0, install_1.install)({ agents: [constants_1.AGENT.
|
|
20
|
+
(0, install_1.install)({ agents: [constants_1.AGENT.STANDARD], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
|
|
20
21
|
}
|
|
21
22
|
else if (answer.trim() === '2') {
|
|
22
|
-
(0, install_1.install)({ agents: [constants_1.AGENT.
|
|
23
|
+
(0, install_1.install)({ agents: [constants_1.AGENT.OPENCODE], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
|
|
23
24
|
}
|
|
24
25
|
else if (answer.trim() === '3') {
|
|
26
|
+
(0, install_1.install)({ agents: [constants_1.AGENT.CODEX], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
|
|
27
|
+
}
|
|
28
|
+
else if (answer.trim() === '4') {
|
|
25
29
|
(0, doctor_1.doctor)();
|
|
26
30
|
}
|
|
27
31
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":";;AAMA,wBAwBC;AA9BD,qDAAyD;AACzD,+CAAgE;AAChE,4CAA4C;AAC5C,qCAAkC;AAClC,uCAAoC;AAE7B,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,eAAM,GAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAE1D,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CA4BnD"}
|
|
@@ -2,32 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uninstall = uninstall;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
|
+
const registry_1 = require("../adapters/registry");
|
|
5
6
|
const fs_1 = require("../fs");
|
|
6
7
|
const options_1 = require("../options");
|
|
7
8
|
const state_1 = require("../state");
|
|
8
9
|
function uninstall(options) {
|
|
9
10
|
(0, options_1.assertWorkspaceScope)(options.scope);
|
|
10
|
-
const
|
|
11
|
-
if (!
|
|
11
|
+
const state = (0, state_1.readProjectState)();
|
|
12
|
+
if (!state) {
|
|
12
13
|
console.log('Kyro is not installed in this workspace. No changes made.');
|
|
13
14
|
return;
|
|
14
15
|
}
|
|
15
|
-
const
|
|
16
|
+
const nextState = { ...state, installedAdapters: [] };
|
|
17
|
+
const plan = (0, registry_1.getInstalledAdapterDefinitions)(state.installedAdapters.map((adapter) => adapter.agent))
|
|
18
|
+
.flatMap((adapter) => adapter.buildManagedBlocks())
|
|
16
19
|
.map((blockRef) => {
|
|
17
20
|
const [path, blockName] = blockRef.split('#');
|
|
18
21
|
return { action: 'remove-block', path, blockName };
|
|
19
22
|
});
|
|
20
|
-
plan.push(
|
|
21
|
-
.sort((a, b) => b.length - a.length)
|
|
22
|
-
.map((filePath) => ({ action: 'remove', path: filePath })));
|
|
23
|
-
plan.push({ action: 'remove', path: constants_1.KYRO_ROOT });
|
|
23
|
+
plan.push({ action: 'write', path: constants_1.KYRO_STATE_PATH, content: `${JSON.stringify(nextState, null, 2)}\n` });
|
|
24
24
|
(0, fs_1.printPlan)('Uninstall plan', plan);
|
|
25
25
|
if (options.dryRun) {
|
|
26
26
|
console.log('Dry run complete. No files changed.');
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
(0, fs_1.applyPlan)(plan);
|
|
30
|
-
console.log('Kyro
|
|
31
|
-
console.log(`Note: ${constants_1.KYRO_STATE_PATH}
|
|
30
|
+
console.log('Kyro project bootstrap removed.');
|
|
31
|
+
console.log(`Note: ${constants_1.KYRO_STATE_PATH}, scope artifacts, global runtime, and global command skills were preserved.`);
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=uninstall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":";;AAOA,8BA4BC;AAnCD,4CAA+C;AAC/C,mDAAsE;AACtE,8BAA6C;AAC7C,wCAAkD;AAClD,oCAA4C;AAG5C,SAAgB,SAAS,CAAC,OAAmB;IAC3C,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACtD,MAAM,IAAI,GAAoB,IAAA,yCAA8B,EAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAClH,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;SAClD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,cAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,2BAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1G,IAAA,cAAS,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAElC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,2BAAe,8EAA8E,CAAC,CAAC;AACtH,CAAC"}
|
package/dist/cli/constants.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const AGENT: {
|
|
2
|
+
readonly STANDARD: "standard";
|
|
2
3
|
readonly OPENCODE: "opencode";
|
|
3
4
|
readonly CLAUDE: "claude";
|
|
4
5
|
readonly CODEX: "codex";
|
|
@@ -12,12 +13,16 @@ export declare const COMMAND_NAMES: readonly ["forge", "status", "wrap-up"];
|
|
|
12
13
|
export declare const PACKAGE_ROOT: string;
|
|
13
14
|
export declare const WORKSPACE_ROOT: string;
|
|
14
15
|
export declare const WORKFLOW_NAME = "kyro-ai";
|
|
16
|
+
export declare const KYRO_PROJECT_ROOT = ".agents/kyro";
|
|
15
17
|
export declare const ARTIFACT_ROOT = ".agents/kyro/scopes";
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
18
|
+
export declare const KYRO_STATE_PATH = ".agents/kyro/kyro.json";
|
|
19
|
+
export declare const GLOBAL_AGENTS_ROOT = "~/.agents";
|
|
20
|
+
export declare const KYRO_GLOBAL_ROOT = "~/.agents/kyro";
|
|
21
|
+
export declare const KYRO_ROOT = "~/.agents/kyro/current";
|
|
22
|
+
export declare const KYRO_CORE_ROOT = "~/.agents/kyro/current/core";
|
|
23
|
+
export declare const KYRO_COMMANDS_ROOT = "~/.agents/kyro/current/commands";
|
|
24
|
+
export declare const KYRO_SKILLS_ROOT = "~/.agents/kyro/current/skills";
|
|
25
|
+
export declare const AGENT_SKILLS_ROOT = "~/.agents/skills";
|
|
26
|
+
export declare const KYRO_MANIFEST_PATH = "~/.agents/kyro/current/manifest.json";
|
|
27
|
+
export declare function getKyroRuntimeRoot(version: string): string;
|
|
23
28
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX,eAAO,MAAM,KAAK;;;CAGR,CAAC;AAEX,eAAO,MAAM,aAAa,yCAA0C,CAAC;AAErE,eAAO,MAAM,YAAY,QAA8B,CAAC;AACxD,eAAO,MAAM,cAAc,QAAgB,CAAC;AAC5C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,aAAa,wBAAgC,CAAC;AAC3D,eAAO,MAAM,eAAe,2BAAmC,CAAC;AAChE,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,gBAAgB,mBAA+B,CAAC;AAC7D,eAAO,MAAM,SAAS,2BAAgC,CAAC;AACvD,eAAO,MAAM,cAAc,gCAAsB,CAAC;AAClD,eAAO,MAAM,kBAAkB,oCAA0B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,kCAAwB,CAAC;AACtD,eAAO,MAAM,iBAAiB,qBAAiC,CAAC;AAChE,eAAO,MAAM,kBAAkB,yCAA+B,CAAC;AAE/D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
package/dist/cli/constants.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KYRO_MANIFEST_PATH = exports.
|
|
3
|
+
exports.KYRO_MANIFEST_PATH = exports.AGENT_SKILLS_ROOT = exports.KYRO_SKILLS_ROOT = exports.KYRO_COMMANDS_ROOT = exports.KYRO_CORE_ROOT = exports.KYRO_ROOT = exports.KYRO_GLOBAL_ROOT = exports.GLOBAL_AGENTS_ROOT = exports.KYRO_STATE_PATH = exports.ARTIFACT_ROOT = exports.KYRO_PROJECT_ROOT = exports.WORKFLOW_NAME = exports.WORKSPACE_ROOT = exports.PACKAGE_ROOT = exports.COMMAND_NAMES = exports.SCOPE = exports.AGENT = void 0;
|
|
4
|
+
exports.getKyroRuntimeRoot = getKyroRuntimeRoot;
|
|
4
5
|
const node_path_1 = require("node:path");
|
|
5
6
|
exports.AGENT = {
|
|
7
|
+
STANDARD: 'standard',
|
|
6
8
|
OPENCODE: 'opencode',
|
|
7
9
|
CLAUDE: 'claude',
|
|
8
10
|
CODEX: 'codex',
|
|
@@ -16,12 +18,18 @@ exports.COMMAND_NAMES = ['forge', 'status', 'wrap-up'];
|
|
|
16
18
|
exports.PACKAGE_ROOT = (0, node_path_1.resolve)(__dirname, '../..');
|
|
17
19
|
exports.WORKSPACE_ROOT = process.cwd();
|
|
18
20
|
exports.WORKFLOW_NAME = 'kyro-ai';
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
+
exports.KYRO_PROJECT_ROOT = '.agents/kyro';
|
|
22
|
+
exports.ARTIFACT_ROOT = `${exports.KYRO_PROJECT_ROOT}/scopes`;
|
|
23
|
+
exports.KYRO_STATE_PATH = `${exports.KYRO_PROJECT_ROOT}/kyro.json`;
|
|
24
|
+
exports.GLOBAL_AGENTS_ROOT = '~/.agents';
|
|
25
|
+
exports.KYRO_GLOBAL_ROOT = `${exports.GLOBAL_AGENTS_ROOT}/kyro`;
|
|
26
|
+
exports.KYRO_ROOT = `${exports.KYRO_GLOBAL_ROOT}/current`;
|
|
21
27
|
exports.KYRO_CORE_ROOT = `${exports.KYRO_ROOT}/core`;
|
|
22
28
|
exports.KYRO_COMMANDS_ROOT = `${exports.KYRO_ROOT}/commands`;
|
|
23
29
|
exports.KYRO_SKILLS_ROOT = `${exports.KYRO_ROOT}/skills`;
|
|
24
|
-
exports.AGENT_SKILLS_ROOT =
|
|
25
|
-
exports.KYRO_STATE_PATH = `${exports.KYRO_ROOT}/kyro.json`;
|
|
30
|
+
exports.AGENT_SKILLS_ROOT = `${exports.GLOBAL_AGENTS_ROOT}/skills`;
|
|
26
31
|
exports.KYRO_MANIFEST_PATH = `${exports.KYRO_ROOT}/manifest.json`;
|
|
32
|
+
function getKyroRuntimeRoot(version) {
|
|
33
|
+
return `${exports.KYRO_GLOBAL_ROOT}/versions/${version}`;
|
|
34
|
+
}
|
|
27
35
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":";;;AAgCA,gDAEC;AAlCD,yCAAoC;AAEvB,QAAA,KAAK,GAAG;IACnB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,KAAK,GAAG;IACnB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAExD,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC3C,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,aAAa,GAAG,SAAS,CAAC;AAC1B,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,aAAa,GAAG,GAAG,yBAAiB,SAAS,CAAC;AAC9C,QAAA,eAAe,GAAG,GAAG,yBAAiB,YAAY,CAAC;AACnD,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,gBAAgB,GAAG,GAAG,0BAAkB,OAAO,CAAC;AAChD,QAAA,SAAS,GAAG,GAAG,wBAAgB,UAAU,CAAC;AAC1C,QAAA,cAAc,GAAG,GAAG,iBAAS,OAAO,CAAC;AACrC,QAAA,kBAAkB,GAAG,GAAG,iBAAS,WAAW,CAAC;AAC7C,QAAA,gBAAgB,GAAG,GAAG,iBAAS,SAAS,CAAC;AACzC,QAAA,iBAAiB,GAAG,GAAG,0BAAkB,SAAS,CAAC;AACnD,QAAA,kBAAkB,GAAG,GAAG,iBAAS,gBAAgB,CAAC;AAE/D,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,GAAG,wBAAgB,aAAa,OAAO,EAAE,CAAC;AACnD,CAAC"}
|