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.
Files changed (50) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +40 -30
  3. package/WORKFLOW.yaml +1 -1
  4. package/dist/cli/adapters/codex.js +2 -2
  5. package/dist/cli/adapters/opencode.d.ts +0 -2
  6. package/dist/cli/adapters/opencode.d.ts.map +1 -1
  7. package/dist/cli/adapters/opencode.js +2 -10
  8. package/dist/cli/adapters/opencode.js.map +1 -1
  9. package/dist/cli/adapters/registry.d.ts.map +1 -1
  10. package/dist/cli/adapters/registry.js +3 -1
  11. package/dist/cli/adapters/registry.js.map +1 -1
  12. package/dist/cli/adapters/standard.d.ts +5 -0
  13. package/dist/cli/adapters/standard.d.ts.map +1 -0
  14. package/dist/cli/adapters/standard.js +41 -0
  15. package/dist/cli/adapters/standard.js.map +1 -0
  16. package/dist/cli/commands/doctor.d.ts.map +1 -1
  17. package/dist/cli/commands/doctor.js +19 -14
  18. package/dist/cli/commands/doctor.js.map +1 -1
  19. package/dist/cli/commands/install.d.ts.map +1 -1
  20. package/dist/cli/commands/install.js +8 -7
  21. package/dist/cli/commands/install.js.map +1 -1
  22. package/dist/cli/commands/tui.d.ts.map +1 -1
  23. package/dist/cli/commands/tui.js +10 -6
  24. package/dist/cli/commands/tui.js.map +1 -1
  25. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  26. package/dist/cli/commands/uninstall.js +9 -9
  27. package/dist/cli/commands/uninstall.js.map +1 -1
  28. package/dist/cli/constants.d.ts +12 -7
  29. package/dist/cli/constants.d.ts.map +1 -1
  30. package/dist/cli/constants.js +13 -5
  31. package/dist/cli/constants.js.map +1 -1
  32. package/dist/cli/fs.d.ts +3 -0
  33. package/dist/cli/fs.d.ts.map +1 -1
  34. package/dist/cli/fs.js +30 -5
  35. package/dist/cli/fs.js.map +1 -1
  36. package/dist/cli/help.d.ts.map +1 -1
  37. package/dist/cli/help.js +3 -4
  38. package/dist/cli/help.js.map +1 -1
  39. package/dist/cli/install-plan.d.ts.map +1 -1
  40. package/dist/cli/install-plan.js +27 -20
  41. package/dist/cli/install-plan.js.map +1 -1
  42. package/dist/cli/options.d.ts.map +1 -1
  43. package/dist/cli/options.js +3 -1
  44. package/dist/cli/options.js.map +1 -1
  45. package/dist/cli/state.js +1 -1
  46. package/dist/cli/state.js.map +1 -1
  47. package/dist/cli/types.d.ts +3 -1
  48. package/dist/cli/types.d.ts.map +1 -1
  49. package/docs/cli.md +74 -28
  50. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kyro-ai",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "Claude Code adapter for Kyro, a portable sprint workflow kit for AI coding agents",
5
5
  "author": {
6
6
  "name": "SynapSync",
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 Workspace Layout
74
+ ## Installed Layout
75
75
 
76
- A workspace install writes Kyro into `.agents/`:
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
- .agents/
81
+ ~/.agents/
80
82
  ├── kyro/
81
- │ ├── internal/
82
- │ │ ├── core/
83
- │ │├── agents/
84
- │ │ │ ├── config.json
85
- │ │ └── WORKFLOW.yaml
86
- │ │ ├── commands/
87
- │ │ ├── skills/
88
- │ │├── sprint-forge/
89
- │ │ └── qa-review/
90
- │ │ ├── KYRO.md
91
- │ │ ├── kyro.json
92
- │ │ └── manifest.json
93
- │ └── scopes/
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
- Important invariant: `kyro install` creates the root project state at `.agents/kyro/internal/kyro.json`. It does **not** create `.agents/kyro/scopes/{scope}/state.json`; scoped state belongs to future scope/forge creation.
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 .agents/skills
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 .agents/kyro/internal/commands/*.md
133
+ projected skill reads ~/.agents/kyro/current/commands/*.md
124
134
 
125
- orchestrator reads .agents/kyro/internal/core/agents/orchestrator.md
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 .agents/kyro/scopes/{scope}/
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 | `.agents/skills/kyro-*` command skill projections |
169
- | `codex` | Implemented | `.agents/skills/kyro-*` plus a managed Kyro block in root `AGENTS.md` |
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.0
287
- git push origin v3.2.0
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
@@ -1,6 +1,6 @@
1
1
  name: kyro-ai
2
2
  type: workflow
3
- version: "3.2.0"
3
+ version: "3.2.1"
4
4
  description: >
5
5
  Portable sprint workflow kit for AI coding agents, with markdown artifacts,
6
6
  adapter guides, adaptive per-project learning, and formal validation gates.
@@ -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 opencode_1 = require("./opencode");
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, opencode_1.checkCommandProjection)('Codex adapter');
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":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,eAAe,EAAE,iBAyB7B,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAMhE"}
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":";;;AAiCA,wDAMC;AAvCD,4CAAmE;AACnE,8BAA4C;AAG5C,qDAA4F;AAE/E,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,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IACpD,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
+ {"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;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqB1D,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EAKvC,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"}
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: '.agents/kyro/internal' };
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":";;;AAgCA,oDAIC;AAED,wDAEC;AAED,wEAEC;AA5CD,4CAAqC;AAErC,mCAAuC;AACvC,yCAA6C;AAG7C,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,uBAAuB,EAAE,CAAC;IAC1E,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,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"}
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":"AAUA,wBAAgB,MAAM,IAAI,IAAI,CAY7B"}
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
- checkWorkspaceCore(),
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: 'workspace state',
74
+ name: 'project state',
75
75
  detail: `${constants_1.KYRO_STATE_PATH} not found`,
76
- remedy: 'Run kyro install --agent opencode --scope workspace.',
76
+ remedy: 'Run kyro install --scope workspace.',
77
77
  };
78
78
  }
79
- if (state.schemaVersion !== 1 || state.artifactRoot !== constants_1.ARTIFACT_ROOT || !Array.isArray(state.scopes)) {
80
- return { status: 'fail', name: 'workspace state', detail: `${constants_1.KYRO_STATE_PATH} has invalid shape` };
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: 'workspace state', detail: `${constants_1.KYRO_STATE_PATH} is valid` };
86
+ return { status: 'pass', name: 'project state', detail: `${constants_1.KYRO_STATE_PATH} is valid` };
83
87
  }
84
- function checkWorkspaceCore() {
88
+ function checkGlobalRuntime() {
85
89
  const manifest = (0, state_1.readManifest)();
86
90
  if (!manifest) {
87
91
  return {
88
92
  status: 'warn',
89
- name: 'workspace core',
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.workspaceFileExists)(file));
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: 'workspace core',
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: 'workspace core', detail: `${manifest.managedFiles.length} managed files present` };
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 (!manifest)
112
+ if (!state)
108
113
  return [];
109
- return manifest.adapters.map((installedAdapter) => {
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":"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"}
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,CAgBjD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAiB9C"}
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
- (0, options_1.assertInstallableAgents)(options.agents);
13
- const plan = (0, install_plan_1.buildInstallPlan)(options.agents, options.scope);
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(`Kyro installed for: ${options.agents.join(', ')}`);
21
+ console.log('Kyro has been installed.');
21
22
  console.log(`State: ${constants_1.KYRO_STATE_PATH}`);
22
- console.log(`Core: ${constants_1.KYRO_ROOT}/`);
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 manifest = (0, state_1.readManifest)();
27
- if (!manifest) {
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 : manifest.adapters.map((adapter) => adapter.agent);
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,0BAgBC;AAED,oBAiBC;AA1CD,kDAAmD;AACnD,8BAA6C;AAC7C,wCAAyF;AACzF,oCAAwC;AACxC,4CAAiE;AAGjE,SAAgB,OAAO,CAAC,OAAmB;IACzC,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,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,uBAAuB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,UAAU,2BAAe,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,SAAS,qBAAS,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,IAAI,CAAC,OAAmB;IACtC,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,oBAAY,GAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,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,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9G,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
+ {"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,CAqB5C"}
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"}
@@ -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 OpenCode adapter in this workspace');
14
- console.log('2) Install Codex adapter in this workspace');
15
- console.log('3) Run doctor');
16
- console.log('4) Exit');
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.OPENCODE], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false });
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.CODEX], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false });
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,wBAqBC;AA3BD,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,+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,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
+ {"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":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAE1D,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CA6BnD"}
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 manifest = (0, state_1.readManifest)();
11
- if (!manifest) {
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 plan = (manifest.managedBlocks ?? [])
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(...[...manifest.managedFiles]
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 managed workspace files removed.');
31
- console.log(`Note: ${constants_1.KYRO_STATE_PATH} is preserved so scope history is not lost.`);
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":";;AAMA,8BA6BC;AAnCD,4CAA0D;AAC1D,8BAA6C;AAC7C,wCAAkD;AAClD,oCAAwC;AAGxC,SAAgB,SAAS,CAAC,OAAmB;IAC3C,IAAA,8BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,oBAAY,GAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;SACzD,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,GAAG,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;SACnC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAS,EAAE,CAAC,CAAC;IACjD,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,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,SAAS,2BAAe,6CAA6C,CAAC,CAAC;AACrF,CAAC"}
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"}
@@ -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 KYRO_ROOT = ".agents/kyro/internal";
17
- export declare const KYRO_CORE_ROOT = ".agents/kyro/internal/core";
18
- export declare const KYRO_COMMANDS_ROOT = ".agents/kyro/internal/commands";
19
- export declare const KYRO_SKILLS_ROOT = ".agents/kyro/internal/skills";
20
- export declare const AGENT_SKILLS_ROOT = ".agents/skills";
21
- export declare const KYRO_STATE_PATH = ".agents/kyro/internal/kyro.json";
22
- export declare const KYRO_MANIFEST_PATH = ".agents/kyro/internal/manifest.json";
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;;;;;CAKR,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,aAAa,wBAAwB,CAAC;AACnD,eAAO,MAAM,SAAS,0BAA0B,CAAC;AACjD,eAAO,MAAM,cAAc,+BAAsB,CAAC;AAClD,eAAO,MAAM,kBAAkB,mCAA0B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,iCAAwB,CAAC;AACtD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,eAAe,oCAA2B,CAAC;AACxD,eAAO,MAAM,kBAAkB,wCAA+B,CAAC"}
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"}