kyro-ai 3.2.0 → 3.2.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/README.md +40 -30
- package/WORKFLOW.yaml +1 -1
- package/dist/cli/adapters/codex.js +2 -2
- 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/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +19 -14
- 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/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 +3 -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 +3 -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 +3 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/docs/cli.md +74 -28
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -71,39 +71,49 @@ If the host exposes slash commands, the equivalent public command namespace is:
|
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
74
|
-
## Installed
|
|
74
|
+
## Installed Layout
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Kyro separates global runtime from project state. Runtime files live in your user-level agents directory; project files keep only state and artifacts.
|
|
77
|
+
|
|
78
|
+
Global runtime:
|
|
77
79
|
|
|
78
80
|
```text
|
|
79
|
-
|
|
81
|
+
~/.agents/
|
|
80
82
|
├── kyro/
|
|
81
|
-
│ ├──
|
|
82
|
-
│ │
|
|
83
|
-
│ │
|
|
84
|
-
│ │
|
|
85
|
-
│ │
|
|
86
|
-
│ │
|
|
87
|
-
│ │
|
|
88
|
-
│ │
|
|
89
|
-
│ │
|
|
90
|
-
│ │
|
|
91
|
-
│ │
|
|
92
|
-
│ │
|
|
93
|
-
│ └──
|
|
94
|
-
│ └── {scope}/
|
|
95
|
-
│ ├── state.json
|
|
96
|
-
│ ├── ROADMAP.md
|
|
97
|
-
│ └── phases/
|
|
83
|
+
│ ├── versions/
|
|
84
|
+
│ │ └── {version}/
|
|
85
|
+
│ │ ├── core/
|
|
86
|
+
│ │ │ ├── agents/
|
|
87
|
+
│ │ │ ├── config.json
|
|
88
|
+
│ │ │ └── WORKFLOW.yaml
|
|
89
|
+
│ │ ├── commands/
|
|
90
|
+
│ │ ├── skills/
|
|
91
|
+
│ │ │ ├── sprint-forge/
|
|
92
|
+
│ │ │ └── qa-review/
|
|
93
|
+
│ │ ├── KYRO.md
|
|
94
|
+
│ │ └── manifest.json
|
|
95
|
+
│ └── current -> versions/{version}
|
|
98
96
|
└── skills/
|
|
99
97
|
├── kyro-forge/SKILL.md
|
|
100
98
|
├── kyro-status/SKILL.md
|
|
101
99
|
└── kyro-wrap-up/SKILL.md
|
|
102
100
|
```
|
|
103
101
|
|
|
104
|
-
|
|
102
|
+
Project state and artifacts:
|
|
105
103
|
|
|
106
|
-
|
|
104
|
+
```text
|
|
105
|
+
<project>/
|
|
106
|
+
└── .agents/
|
|
107
|
+
└── kyro/
|
|
108
|
+
├── kyro.json
|
|
109
|
+
└── scopes/
|
|
110
|
+
└── {scope}/
|
|
111
|
+
├── state.json
|
|
112
|
+
├── ROADMAP.md
|
|
113
|
+
└── phases/
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Important invariant: `kyro install` creates the root project state at `.agents/kyro/kyro.json`. It does **not** create `.agents/kyro/scopes/{scope}/state.json`; scoped state belongs to future scope/forge creation.
|
|
107
117
|
|
|
108
118
|
## Who Invokes Whom
|
|
109
119
|
|
|
@@ -116,17 +126,17 @@ installs managed core + adapter projections
|
|
|
116
126
|
↓
|
|
117
127
|
agent opens the project
|
|
118
128
|
↓
|
|
119
|
-
agent discovers AGENTS.md and/or
|
|
129
|
+
agent discovers AGENTS.md and/or ~/.agents/skills
|
|
120
130
|
↓
|
|
121
131
|
user invokes kyro-forge / kyro-status / kyro-wrap-up
|
|
122
132
|
↓
|
|
123
|
-
projected skill reads
|
|
133
|
+
projected skill reads ~/.agents/kyro/current/commands/*.md
|
|
124
134
|
↓
|
|
125
|
-
orchestrator reads
|
|
135
|
+
orchestrator reads ~/.agents/kyro/current/core/agents/orchestrator.md
|
|
126
136
|
↓
|
|
127
137
|
sprint-forge skill assets guide the workflow
|
|
128
138
|
↓
|
|
129
|
-
artifacts are written under
|
|
139
|
+
artifacts are written under <project>/.agents/kyro/scopes/{scope}/
|
|
130
140
|
```
|
|
131
141
|
|
|
132
142
|
The user should not have to explain the workflow in natural language. If an agent cannot discover the installed command skills, that agent needs a better adapter.
|
|
@@ -165,8 +175,8 @@ Supported install adapters today:
|
|
|
165
175
|
|
|
166
176
|
| Adapter | Status | What it installs |
|
|
167
177
|
| ---------- | --------------------------------- | --------------------------------------------------------------------- |
|
|
168
|
-
| `opencode` | Implemented |
|
|
169
|
-
| `codex` | Implemented |
|
|
178
|
+
| `opencode` | Implemented | `~/.agents/skills/kyro-*` command skill projections |
|
|
179
|
+
| `codex` | Implemented | `~/.agents/skills/kyro-*` plus a managed Kyro block in root `AGENTS.md` |
|
|
170
180
|
| `claude` | Planned for CLI workspace install | Claude plugin remains first-class through `.claude-plugin/` |
|
|
171
181
|
| `cursor` | Planned | Not installed by the CLI yet |
|
|
172
182
|
|
|
@@ -283,8 +293,8 @@ npm pack --dry-run
|
|
|
283
293
|
Release tags publish to npm through GitHub Actions when the tag matches `package.json.version`:
|
|
284
294
|
|
|
285
295
|
```bash
|
|
286
|
-
git tag v3.2.
|
|
287
|
-
git push origin v3.2.
|
|
296
|
+
git tag v3.2.1
|
|
297
|
+
git push origin v3.2.1
|
|
288
298
|
```
|
|
289
299
|
|
|
290
300
|
The release workflow expects the repository secret `NPM_TOKEN`.
|
package/WORKFLOW.yaml
CHANGED
|
@@ -4,7 +4,7 @@ exports.codexAdapter = void 0;
|
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const fs_1 = require("../fs");
|
|
6
6
|
const command_skills_1 = require("./command-skills");
|
|
7
|
-
const
|
|
7
|
+
const standard_1 = require("./standard");
|
|
8
8
|
const AGENTS_PATH = 'AGENTS.md';
|
|
9
9
|
const KYRO_AGENTS_BLOCK = 'agents-md';
|
|
10
10
|
exports.codexAdapter = {
|
|
@@ -40,7 +40,7 @@ exports.codexAdapter = {
|
|
|
40
40
|
if (!manifest?.adapters.some((adapter) => adapter.agent === constants_1.AGENT.CODEX)) {
|
|
41
41
|
return { status: 'warn', name: 'Codex adapter', detail: 'not installed in this workspace' };
|
|
42
42
|
}
|
|
43
|
-
const commandCheck = (0,
|
|
43
|
+
const commandCheck = (0, standard_1.checkCommandProjection)('Codex adapter');
|
|
44
44
|
if (commandCheck.status !== 'pass')
|
|
45
45
|
return commandCheck;
|
|
46
46
|
if (!(0, fs_1.hasManagedBlock)(AGENTS_PATH, KYRO_AGENTS_BLOCK)) {
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
import type { AdapterDefinition } from './registry-types';
|
|
2
|
-
import type { CheckResult } from '../types';
|
|
3
2
|
export declare const openCodeAdapter: AdapterDefinition;
|
|
4
|
-
export declare function checkCommandProjection(name: string): CheckResult;
|
|
5
3
|
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/opencode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/opencode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,eAAO,MAAM,eAAe,EAAE,iBAyB7B,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.openCodeAdapter = void 0;
|
|
4
|
-
exports.checkCommandProjection = checkCommandProjection;
|
|
5
4
|
const constants_1 = require("../constants");
|
|
6
|
-
const fs_1 = require("../fs");
|
|
7
5
|
const command_skills_1 = require("./command-skills");
|
|
6
|
+
const standard_1 = require("./standard");
|
|
8
7
|
exports.openCodeAdapter = {
|
|
9
8
|
agent: constants_1.AGENT.OPENCODE,
|
|
10
9
|
displayName: 'OpenCode',
|
|
@@ -28,14 +27,7 @@ exports.openCodeAdapter = {
|
|
|
28
27
|
if (!manifest?.adapters.some((adapter) => adapter.agent === constants_1.AGENT.OPENCODE)) {
|
|
29
28
|
return { status: 'warn', name: 'OpenCode adapter', detail: 'not installed in this workspace' };
|
|
30
29
|
}
|
|
31
|
-
return checkCommandProjection('OpenCode adapter');
|
|
30
|
+
return (0, standard_1.checkCommandProjection)('OpenCode adapter');
|
|
32
31
|
},
|
|
33
32
|
};
|
|
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
33
|
//# sourceMappingURL=opencode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/cli/adapters/opencode.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/cli/adapters/opencode.ts"],"names":[],"mappings":";;;AAAA,4CAAmE;AAEnE,qDAA4F;AAC5F,yCAAoD;AAEvC,QAAA,eAAe,GAAsB;IAChD,KAAK,EAAE,iBAAK,CAAC,QAAQ;IACrB,WAAW,EAAE,UAAU;IACvB,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,kBAAkB,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QACjG,CAAC;QACD,OAAO,IAAA,iCAAsB,EAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAItC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqB1D,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"}
|
|
@@ -7,6 +7,7 @@ exports.getInstalledAdapterDefinitions = getInstalledAdapterDefinitions;
|
|
|
7
7
|
const constants_1 = require("../constants");
|
|
8
8
|
const codex_1 = require("./codex");
|
|
9
9
|
const opencode_1 = require("./opencode");
|
|
10
|
+
const standard_1 = require("./standard");
|
|
10
11
|
const plannedAdapter = (agent, displayName) => ({
|
|
11
12
|
agent,
|
|
12
13
|
displayName,
|
|
@@ -19,13 +20,14 @@ const plannedAdapter = (agent, displayName) => ({
|
|
|
19
20
|
return [];
|
|
20
21
|
},
|
|
21
22
|
buildInstalledAdapter(scope, installedAt) {
|
|
22
|
-
return { agent, scope, installedAt, corePath: '
|
|
23
|
+
return { agent, scope, installedAt, corePath: '~/.agents/kyro/current' };
|
|
23
24
|
},
|
|
24
25
|
doctor() {
|
|
25
26
|
return { status: 'warn', name: `${displayName} adapter`, detail: 'planned but not implemented yet' };
|
|
26
27
|
},
|
|
27
28
|
});
|
|
28
29
|
exports.ADAPTERS = [
|
|
30
|
+
standard_1.standardAgentsAdapter,
|
|
29
31
|
opencode_1.openCodeAdapter,
|
|
30
32
|
codex_1.codexAdapter,
|
|
31
33
|
plannedAdapter(constants_1.AGENT.CLAUDE, 'Claude plugin'),
|
|
@@ -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":";;;AAkCA,oDAIC;AAED,wDAEC;AAED,wEAEC;AA9CD,4CAAqC;AAErC,mCAAuC;AACvC,yCAA6C;AAC7C,yCAAmD;AAGnD,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,WAAmB,EAAqB,EAAE,CAAC,CAAC;IAChF,KAAK;IACL,WAAW;IACX,MAAM,EAAE,SAAS;IACjB,eAAe,KAAI,CAAC;IACpB,iBAAiB;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,WAAW;QACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IAC3E,CAAC;IACD,MAAM;QACJ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,UAAU,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IACvG,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,QAAQ,GAAwB;IAC3C,gCAAqB;IACrB,0BAAe;IACf,oBAAY;IACZ,cAAc,CAAC,iBAAK,CAAC,MAAM,EAAE,eAAe,CAAC;IAC7C,cAAc,CAAC,iBAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;CACvC,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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AdapterDefinition } from './registry-types';
|
|
2
|
+
import type { CheckResult } from '../types';
|
|
3
|
+
export declare const standardAgentsAdapter: AdapterDefinition;
|
|
4
|
+
export declare function checkCommandProjection(name: string): CheckResult;
|
|
5
|
+
//# sourceMappingURL=standard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/standard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,qBAAqB,EAAE,iBAyBnC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAMhE"}
|
|
@@ -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"}
|
|
@@ -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":"AASA,wBAAgB,MAAM,IAAI,IAAI,CAY7B"}
|
|
@@ -28,7 +28,7 @@ function runDoctorChecks() {
|
|
|
28
28
|
checkPackageAssets(),
|
|
29
29
|
checkClaudePlugin(),
|
|
30
30
|
checkProjectState(),
|
|
31
|
-
|
|
31
|
+
checkGlobalRuntime(),
|
|
32
32
|
...checkAdapterProjections(),
|
|
33
33
|
];
|
|
34
34
|
}
|
|
@@ -71,44 +71,49 @@ function checkProjectState() {
|
|
|
71
71
|
if (!state) {
|
|
72
72
|
return {
|
|
73
73
|
status: 'warn',
|
|
74
|
-
name: '
|
|
74
|
+
name: 'project state',
|
|
75
75
|
detail: `${constants_1.KYRO_STATE_PATH} not found`,
|
|
76
|
-
remedy: 'Run kyro install --
|
|
76
|
+
remedy: 'Run kyro install --scope workspace.',
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
if (state.schemaVersion !== 1
|
|
80
|
-
|
|
79
|
+
if (state.schemaVersion !== 1
|
|
80
|
+
|| state.artifactRoot !== constants_1.ARTIFACT_ROOT
|
|
81
|
+
|| !Array.isArray(state.scopes)
|
|
82
|
+
|| typeof state.runtimeVersion !== 'string'
|
|
83
|
+
|| typeof state.runtimePath !== 'string') {
|
|
84
|
+
return { status: 'fail', name: 'project state', detail: `${constants_1.KYRO_STATE_PATH} has invalid shape` };
|
|
81
85
|
}
|
|
82
|
-
return { status: 'pass', name: '
|
|
86
|
+
return { status: 'pass', name: 'project state', detail: `${constants_1.KYRO_STATE_PATH} is valid` };
|
|
83
87
|
}
|
|
84
|
-
function
|
|
88
|
+
function checkGlobalRuntime() {
|
|
85
89
|
const manifest = (0, state_1.readManifest)();
|
|
86
90
|
if (!manifest) {
|
|
87
91
|
return {
|
|
88
92
|
status: 'warn',
|
|
89
|
-
name: '
|
|
93
|
+
name: 'global runtime',
|
|
90
94
|
detail: `${constants_1.KYRO_MANIFEST_PATH} not found`,
|
|
91
95
|
remedy: 'Run kyro install.',
|
|
92
96
|
};
|
|
93
97
|
}
|
|
94
|
-
const missing = manifest.managedFiles.filter((file) => !(0, fs_1.
|
|
98
|
+
const missing = manifest.managedFiles.filter((file) => !(0, fs_1.managedPathExists)(file));
|
|
95
99
|
if (missing.length > 0) {
|
|
96
100
|
return {
|
|
97
101
|
status: 'fail',
|
|
98
|
-
name: '
|
|
102
|
+
name: 'global runtime',
|
|
99
103
|
detail: `missing managed files: ${missing.slice(0, 5).join(', ')}${missing.length > 5 ? '...' : ''}`,
|
|
100
104
|
remedy: 'Run kyro sync.',
|
|
101
105
|
};
|
|
102
106
|
}
|
|
103
|
-
return { status: 'pass', name: '
|
|
107
|
+
return { status: 'pass', name: 'global runtime', detail: `${manifest.managedFiles.length} managed files present` };
|
|
104
108
|
}
|
|
105
109
|
function checkAdapterProjections() {
|
|
110
|
+
const state = (0, state_1.readProjectState)();
|
|
106
111
|
const manifest = (0, state_1.readManifest)();
|
|
107
|
-
if (!
|
|
112
|
+
if (!state)
|
|
108
113
|
return [];
|
|
109
|
-
return
|
|
114
|
+
return state.installedAdapters.map((installedAdapter) => {
|
|
110
115
|
try {
|
|
111
|
-
return (0, registry_1.getAdapterDefinition)(installedAdapter.agent).doctor(manifest);
|
|
116
|
+
return (0, registry_1.getAdapterDefinition)(installedAdapter.agent).doctor(manifest ? { ...manifest, adapters: state.installedAdapters } : null);
|
|
112
117
|
}
|
|
113
118
|
catch (error) {
|
|
114
119
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":";;
|
|
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;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"}
|
|
@@ -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 });
|
|
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 });
|
|
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 });
|
|
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,CAAC,CAAC;QACvG,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,CAAC,CAAC;QACvG,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,CAAC,CAAC;QACpG,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"}
|