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.
Files changed (86) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +46 -39
  3. package/WORKFLOW.yaml +1 -1
  4. package/commands/forge.md +22 -44
  5. package/commands/status.md +21 -79
  6. package/commands/wrap-up.md +18 -74
  7. package/dist/cli/adapters/codex.js +3 -3
  8. package/dist/cli/adapters/codex.js.map +1 -1
  9. package/dist/cli/adapters/command-skills.js +1 -1
  10. package/dist/cli/adapters/command-skills.js.map +1 -1
  11. package/dist/cli/adapters/opencode.d.ts +0 -2
  12. package/dist/cli/adapters/opencode.d.ts.map +1 -1
  13. package/dist/cli/adapters/opencode.js +2 -10
  14. package/dist/cli/adapters/opencode.js.map +1 -1
  15. package/dist/cli/adapters/registry.d.ts.map +1 -1
  16. package/dist/cli/adapters/registry.js +3 -1
  17. package/dist/cli/adapters/registry.js.map +1 -1
  18. package/dist/cli/adapters/standard.d.ts +5 -0
  19. package/dist/cli/adapters/standard.d.ts.map +1 -0
  20. package/dist/cli/adapters/standard.js +41 -0
  21. package/dist/cli/adapters/standard.js.map +1 -0
  22. package/dist/cli/app.js +1 -1
  23. package/dist/cli/app.js.map +1 -1
  24. package/dist/cli/commands/doctor.d.ts +2 -1
  25. package/dist/cli/commands/doctor.d.ts.map +1 -1
  26. package/dist/cli/commands/doctor.js +27 -18
  27. package/dist/cli/commands/doctor.js.map +1 -1
  28. package/dist/cli/commands/install.d.ts.map +1 -1
  29. package/dist/cli/commands/install.js +8 -7
  30. package/dist/cli/commands/install.js.map +1 -1
  31. package/dist/cli/commands/token-audit.d.ts +3 -0
  32. package/dist/cli/commands/token-audit.d.ts.map +1 -0
  33. package/dist/cli/commands/token-audit.js +141 -0
  34. package/dist/cli/commands/token-audit.js.map +1 -0
  35. package/dist/cli/commands/tui.d.ts.map +1 -1
  36. package/dist/cli/commands/tui.js +10 -6
  37. package/dist/cli/commands/tui.js.map +1 -1
  38. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  39. package/dist/cli/commands/uninstall.js +9 -9
  40. package/dist/cli/commands/uninstall.js.map +1 -1
  41. package/dist/cli/constants.d.ts +12 -7
  42. package/dist/cli/constants.d.ts.map +1 -1
  43. package/dist/cli/constants.js +13 -5
  44. package/dist/cli/constants.js.map +1 -1
  45. package/dist/cli/fs.d.ts +3 -0
  46. package/dist/cli/fs.d.ts.map +1 -1
  47. package/dist/cli/fs.js +30 -5
  48. package/dist/cli/fs.js.map +1 -1
  49. package/dist/cli/help.d.ts.map +1 -1
  50. package/dist/cli/help.js +6 -4
  51. package/dist/cli/help.js.map +1 -1
  52. package/dist/cli/install-plan.d.ts.map +1 -1
  53. package/dist/cli/install-plan.js +27 -20
  54. package/dist/cli/install-plan.js.map +1 -1
  55. package/dist/cli/options.d.ts.map +1 -1
  56. package/dist/cli/options.js +8 -1
  57. package/dist/cli/options.js.map +1 -1
  58. package/dist/cli/state.js +1 -1
  59. package/dist/cli/state.js.map +1 -1
  60. package/dist/cli/types.d.ts +4 -1
  61. package/dist/cli/types.d.ts.map +1 -1
  62. package/docs/HOW-TO-USE-CODEX.md +28 -60
  63. package/docs/HOW-TO-USE-OPENCODE.md +26 -72
  64. package/docs/agent-adapters.md +40 -118
  65. package/docs/architecture.md +7 -2
  66. package/docs/cli.md +93 -29
  67. package/docs/commands-reference.md +22 -32
  68. package/docs/getting-started.md +65 -115
  69. package/package.json +1 -1
  70. package/skills/sprint-forge/SKILL.md +9 -8
  71. package/skills/sprint-forge/assets/README.md +27 -17
  72. package/skills/sprint-forge/assets/helpers/metrics.md +4 -4
  73. package/skills/sprint-forge/assets/helpers/reentry-generator.md +4 -4
  74. package/skills/sprint-forge/assets/modes/INIT.md +68 -169
  75. package/skills/sprint-forge/assets/modes/SPRINT.md +20 -246
  76. package/skills/sprint-forge/assets/modes/STATUS.md +46 -128
  77. package/skills/sprint-forge/assets/modes/close-sprint.md +29 -0
  78. package/skills/sprint-forge/assets/modes/execute-task.md +26 -0
  79. package/skills/sprint-forge/assets/modes/plan-sprint.md +29 -0
  80. package/skills/sprint-forge/assets/modes/recover.md +23 -0
  81. package/skills/sprint-forge/assets/modes/review-task.md +25 -0
  82. package/skills/sprint-forge/assets/templates/DEBT.summary.json +12 -0
  83. package/skills/sprint-forge/assets/templates/ROADMAP.summary.json +15 -0
  84. package/skills/sprint-forge/assets/templates/SPRINT.summary.json +16 -0
  85. package/skills/sprint-forge/assets/templates/index.json +15 -0
  86. package/skills/sprint-forge/assets/templates/state.json +11 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kyro-ai",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
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
 
@@ -184,19 +194,16 @@ Kyro has three stable workflow intents:
184
194
  | Status | `kyro-status` / `/kyro:status` | Report project progress, roadmap health, and technical debt |
185
195
  | Wrap-up | `kyro-wrap-up` / `/kyro:wrap-up` | Close a session, update handoff context, and preserve learnings |
186
196
 
187
- Forge follows this lifecycle:
197
+ Forge is routed progressively:
188
198
 
189
199
  ```text
190
- Detect project state
191
- analyze codebase or scope
192
- build/update roadmap
193
- generate the next sprint
194
- → implement task by task
195
- → review quality and debt
196
- → write retro, handoff, and re-entry context
200
+ read kyro.json/state.json/index.json
201
+ choose INIT, plan, execute, review, close, or recover
202
+ load only the selected mode/helper/template
203
+ update Markdown evidence plus JSON summaries
197
204
  ```
198
205
 
199
- Kyro is intentionally sprint-by-sprint. It should not pre-generate a huge static plan and pretend reality will follow it.
206
+ Kyro is intentionally sprint-by-sprint and summary-first. It should not pre-load every roadmap, sprint, helper, and template just to decide the next action.
200
207
 
201
208
  ---
202
209
 
@@ -283,8 +290,8 @@ npm pack --dry-run
283
290
  Release tags publish to npm through GitHub Actions when the tag matches `package.json.version`:
284
291
 
285
292
  ```bash
286
- git tag v3.2.0
287
- git push origin v3.2.0
293
+ git tag v3.2.2
294
+ git push origin v3.2.2
288
295
  ```
289
296
 
290
297
  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.2"
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.
package/commands/forge.md CHANGED
@@ -1,55 +1,33 @@
1
1
  ---
2
- description: Full sprint cycle Analyze Plan → Implement → Review → Commit
3
- argument-hint: <project path or description>
2
+ description: Route the Kyro forge workflow with progressive disclosure
3
+ argument-hint: <scope or request>
4
4
  ---
5
5
 
6
- # /kyro:forge — Complete Kyro Cycle
6
+ # /kyro:forge — Router
7
7
 
8
- Execute the full sprint lifecycle with validation gates between each phase.
8
+ Use this command to continue Kyro work without loading the whole workflow upfront.
9
9
 
10
- ## Execution
10
+ ## Startup
11
11
 
12
- > **IMPORTANT**: This command delegates to the `orchestrator` agent.
13
- > Do not execute phases directly the orchestrator handles all delegation,
14
- > skill loading, and validation gates.
15
- >
16
- > **The orchestrator is the single source of truth for the lifecycle.**
17
- > See `agents/orchestrator.md` for the full detailed protocol.
12
+ 1. Read `.agents/kyro/kyro.json` if it exists.
13
+ 2. Resolve the active scope from `$ARGUMENTS`, `activeScope`, or the only directory under `.agents/kyro/scopes/`.
14
+ 3. For a resolved scope, read `.agents/kyro/scopes/{scope}/state.json` first, then `.agents/kyro/scopes/{scope}/index.json` if present.
15
+ 4. Do not read ROADMAP, sprint Markdown, templates, or helper files until the selected route requires them.
18
16
 
19
- ## Target: $ARGUMENTS
17
+ ## Route
20
18
 
21
- ## Lifecycle Summary (Gates Contract)
22
-
23
- The orchestrator follows this sequence. Approval gates are enforced at the orchestrator-defined checkpoints.
24
-
25
- ### Phase 0: Detect Project State
26
-
27
- Check if a ROADMAP exists to choose between INIT and SPRINT flow.
28
-
29
- ### INIT Flow (no ROADMAP)
30
-
31
- - **Phase 1**: Analyze (INIT mode) — codebase exploration, findings, roadmap creation
32
- - GATE 1: Approve INIT summary
33
- - **Phase 2**: First Sprint — generate Sprint 1 from roadmap
34
- - GATE 2: Approve sprint plan
35
-
36
- ### SPRINT Flow (ROADMAP exists)
37
-
38
- - **Phase 3**: Generate Next Sprint — read roadmap, retro, and debt; build sprint
39
- - GATE 3: Approve sprint plan
40
-
41
- ### Both Flows Converge
42
-
43
- - **Phase 4**: Implement — task by task execution with review and debug protocols
44
- - GATE 4: Approve implementation
45
- - **Phase 5**: Review & Close — quality gates, retro, debt update, rule proposals
46
-
47
- ### Learning Capture
48
-
49
- Review corrections and propose new rules for `.agents/kyro/scopes/rules.md`.
19
+ | Condition | Load next |
20
+ |-----------|-----------|
21
+ | No project state | Create or validate `.agents/kyro/kyro.json`, then continue routing. |
22
+ | No scope or no roadmap | `skills/sprint-forge/assets/modes/INIT.md` |
23
+ | Roadmap exists and no active sprint | `skills/sprint-forge/assets/modes/plan-sprint.md` |
24
+ | Active sprint has pending tasks | `skills/sprint-forge/assets/modes/execute-task.md` |
25
+ | Active sprint needs quality validation | `skills/sprint-forge/assets/modes/review-task.md` |
26
+ | Sprint/session is ready to close | `skills/sprint-forge/assets/modes/close-sprint.md` |
27
+ | State is inconsistent or interrupted | `skills/sprint-forge/assets/modes/recover.md` |
50
28
 
51
29
  ## Rules
52
30
 
53
- - Never skip phases or gates. The sequence is non-negotiable.
54
- - Never proceed past a gate without explicit user approval.
55
- - See `agents/orchestrator.md` for full gate protocol, checkpoints, validation, and failure recovery.
31
+ - Load only the routed mode plus the helpers named by that mode.
32
+ - Enforce orchestrator gates from `agents/orchestrator.md` only at gate moments.
33
+ - Update `state.json`, `index.json`, and relevant `*.summary.json` after each phase checkpoint.
@@ -1,92 +1,34 @@
1
1
  ---
2
- description: Show project status, sprint progress, and technical debt summary
2
+ description: Route Kyro status and debt reports from structured summaries first
3
3
  argument-hint: [brief|full|debt|debt-add|debt-resolve|debt-escalate]
4
4
  ---
5
5
 
6
- # /kyro:status — Project Status
6
+ # /kyro:status — Router
7
7
 
8
- Report project progress, technical debt status, and next sprint preview from markdown artifacts.
8
+ Report Kyro progress without loading all sprint Markdown by default.
9
9
 
10
- ## Execution
10
+ ## Startup
11
11
 
12
- > **IMPORTANT**: Before generating the report, read the sprint-forge skill's STATUS mode:
13
- > 1. Read `skills/sprint-forge/SKILL.md` capabilities matrix, configuration resolution
14
- > 2. Read `skills/sprint-forge/assets/modes/STATUS.md` report workflow and format
15
- > 3. Read `skills/sprint-forge/assets/helpers/debt-tracker.md` debt table rules
12
+ 1. Read `.agents/kyro/kyro.json`.
13
+ 2. Resolve scope from `$ARGUMENTS`, `activeScope`, or `.agents/kyro/scopes/`.
14
+ 3. Read `.agents/kyro/scopes/{scope}/state.json` and `index.json` first.
15
+ 4. Prefer `ROADMAP.summary.json`, `SPRINT-*.summary.json`, and `DEBT.summary.json` when present.
16
16
 
17
- ## View: $ARGUMENTS
17
+ ## Route
18
18
 
19
- ### Standard Report
19
+ | Request | Load next |
20
+ |---------|-----------|
21
+ | `brief` or empty | Summaries only; open Markdown only for missing critical fields. |
22
+ | `full` | `skills/sprint-forge/assets/modes/STATUS.md`, then summaries, then Markdown fallbacks. |
23
+ | `debt` | `skills/sprint-forge/assets/helpers/debt-tracker.md` plus debt summary/table. |
24
+ | `debt-add`, `debt-resolve`, `debt-escalate` | `debt-tracker.md`, then update Markdown and summaries. |
20
25
 
21
- 1. **Locate output directory** — resolve `{output_kyro_dir}`
22
- 2. **Read project state** — README, ROADMAP, all sprint files
23
- 3. **Summarize state** and generate report:
26
+ ## Missing summaries
24
27
 
25
- ```text
26
- ══════════════════════════════════════
27
- KYRO — Project Status
28
- ══════════════════════════════════════
28
+ If a summary file is missing, fall back to the Markdown source, produce the requested report, and mention that `kyro doctor --tokens` will report the missing optimization.
29
29
 
30
- ## Sprint Progress
31
- Sprint 1: ██████████ 10/10 (100%) ✓ Complete
32
- Sprint 2: ████████░░ 8/10 ( 80%) ✓ Complete
33
- Sprint 3: ███████░░░ 7/10 ( 70%) ~ In Progress
34
- Sprint 4: ░░░░░░░░░░ 0/10 ( 0%) Planned
30
+ ## Rules
35
31
 
36
- ## Technical Debt
37
- - Open: 4
38
- - In progress: 1
39
- - Aged: 2
40
- - Critical: 1
41
-
42
- ## Roadmap Health
43
- - Sprints completed: 2/5
44
- - Roadmap adaptations: 1 (Sprint 3 scope reduced)
45
- - Carry-over tasks: 3
46
-
47
- ## Next Sprint Preview
48
- Sprint 4: [title from roadmap]
49
- - Suggested phases: [count]
50
- - Carry-over tasks: [count]
51
- - Critical debt items due: [count]
52
- ```
53
-
54
- ### Variants
55
-
56
- - **brief** — Sprint progress + next sprint preview only
57
- - **full** — Complete report with all sections
58
- - **debt** — Focus on technical debt table and aged items
59
-
60
- ## Debt Management
61
-
62
- The `debt-*` variants provide direct debt lifecycle actions. Read `skills/sprint-forge/assets/helpers/debt-tracker.md` before executing any of these.
63
-
64
- ### debt-add
65
-
66
- Add a new debt item:
67
-
68
- ```
69
- /kyro:status debt-add "Missing error boundary in dashboard" --origin "Sprint 3 retro" --target "Sprint 4"
70
- ```
71
-
72
- ### debt-resolve
73
-
74
- Mark a debt item as resolved:
75
-
76
- ```
77
- /kyro:status debt-resolve 3 --sprint "Sprint 3"
78
- ```
79
-
80
- ### debt-escalate
81
-
82
- Flag aged debt items (open >3 sprints) and prompt for triage:
83
- - Should this become a dedicated sprint?
84
- - Should the priority be increased?
85
- - Is this still relevant or can it be closed as N/A?
86
-
87
- ### Debt Rules
88
-
89
- - Debt items are never deleted — only their status changes
90
- - Every sprint inherits the full debt table from the previous sprint
91
- - Items open for >3 sprints should be escalated during status review
92
- - New debt discovered during execution gets added with origin "Sprint N phase"
32
+ - Do not read every sprint file for `brief` when summaries exist.
33
+ - Never delete debt items; only update status fields.
34
+ - Keep `index.json` aligned with any status or debt mutation.
@@ -1,85 +1,29 @@
1
1
  ---
2
- description: End-of-session closure ritual with quality check and context handoff
2
+ description: Route Kyro session closure with minimal context loading
3
3
  argument-hint: [session notes]
4
4
  ---
5
5
 
6
- # /kyro:wrap-up — Session Closure Ritual
6
+ # /kyro:wrap-up — Router
7
7
 
8
- Structured 5-step checklist to close the current session cleanly. Ensures no work is lost, quality is maintained, learnings are captured, and the next session has full context.
8
+ Close the current Kyro session without loading the full lifecycle.
9
9
 
10
- ## Execution
10
+ ## Startup
11
11
 
12
- > **IMPORTANT**: Before running the closure ritual:
13
- > 1. Read `skills/sprint-forge/assets/helpers/handoff.md` context transfer format and checklist
14
- > 2. Run the orchestrator's session-end checkpoint — check uncommitted changes, sprint progress, and pending learnings
12
+ 1. Read `.agents/kyro/kyro.json`.
13
+ 2. Resolve scope and read `.agents/kyro/scopes/{scope}/state.json` plus `index.json`.
14
+ 3. Read `skills/sprint-forge/assets/helpers/handoff.md`.
15
+ 4. Load `skills/sprint-forge/assets/modes/close-sprint.md` only when a sprint milestone or retro update is required.
15
16
 
16
- ## Session Notes: $ARGUMENTS
17
+ ## Checklist
17
18
 
18
- ### Step 1: Changes Audit
19
+ 1. Audit workspace changes with `git status`.
20
+ 2. Run configured quality checks if available.
21
+ 3. Capture session learnings and proposed rules.
22
+ 4. Update handoff/re-entry context.
23
+ 5. Refresh `state.json`, `index.json`, and changed `*.summary.json`.
19
24
 
20
- Check for uncommitted or unsaved work:
25
+ ## Rules
21
26
 
22
- 1. Run `git status` list modified, staged, and untracked files
23
- 2. Run `git stash list` check for stashed work
24
- 3. If there are uncommitted changes:
25
- - Ask: "Should I commit these changes before closing?"
26
- - If yes, create a descriptive commit
27
- - If no, document the uncommitted state in step 4
28
-
29
- ### Step 2: Quality Check
30
-
31
- Run quality gates from `config.json`:
32
-
33
- 1. **Lint**: Run the project's lint command (if configured)
34
- 2. **Typecheck**: Run the project's typecheck command (if configured)
35
- 3. **Tests**: Run related tests (if configured)
36
- 4. Report results — if failures exist, ask whether to fix now or defer
37
-
38
- ### Step 3: Learning Capture
39
-
40
- Prompt for learnings from this session:
41
-
42
- 1. Review corrections made during the session — any patterns?
43
- 2. Review unexpected discoveries — worth capturing?
44
- 3. For each learning, format as:
45
- ```
46
- [LEARN] Category: One-line rule
47
- ```
48
- 4. Learnings are proposed for `.agents/kyro/scopes/rules.md` and recorded in the sprint retro after approval
49
-
50
- ### Step 4: Next Session Context
51
-
52
- Generate a context note for the next session:
53
-
54
- 1. **What was being worked on**: Current task/sprint, files modified
55
- 2. **What's done**: Tasks completed this session
56
- 3. **What's next**: Remaining tasks, next priorities
57
- 4. **Blockers**: Any unresolved issues or decisions needed
58
- 5. If a sprint is active, update re-entry prompts with current state
59
-
60
- ### Step 5: Session Summary
61
-
62
- Display session summary:
63
-
64
- 1. Inspect sprint artifacts and git history for current progress:
65
- - Tasks completed this session
66
- - Learnings proposed or captured
67
- - Commits created this session
68
- 2. Display summary table:
69
- ```
70
- Session Summary
71
- ───────────────────────
72
- Duration: {time}
73
- Tasks: {completed}/{total}
74
- Learnings: {count} captured
75
- Commits: {count} this session
76
- Status: {clean/uncommitted changes}
77
- ```
78
- 3. Confirm the handoff and re-entry prompts reflect the current state
79
-
80
- ### Output
81
-
82
- After completing all 5 steps:
83
- 1. Display the summary
84
- 2. Confirm session is ready to close
85
- 3. Suggest running `/kyro:forge` if a sprint milestone was reached and a retrospective is needed
27
+ - Do not load roadmap or sprint Markdown unless summaries are missing or a closure update requires the source artifact.
28
+ - Preserve global runtime and project state paths.
29
+ - Ask before committing, deleting, or rewriting user-owned content.
@@ -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)) {
@@ -50,6 +50,6 @@ exports.codexAdapter = {
50
50
  },
51
51
  };
52
52
  function buildAgentsBlock() {
53
- return `## Kyro AI\n\nKyro is installed in this workspace.\n\n### Rules\n\n- Prefer installed Kyro command skills from \`${constants_1.AGENT_SKILLS_ROOT}/\` when invoking Kyro workflows.\n- Read command definitions from \`${constants_1.KYRO_COMMANDS_ROOT}/\` only when a Kyro command skill asks for them.\n- Persist workflow artifacts under \`${constants_1.ARTIFACT_ROOT}/{scope}/\`.\n- Do not ask users to describe Kyro workflows in natural language when an installed command or skill exists.\n- Preserve all non-Kyro content in this AGENTS.md file. Kyro owns only this marked block.\n\n### Core\n\nThe managed Kyro core lives in \`${constants_1.KYRO_ROOT}/\`.\n`;
53
+ return `## Kyro AI\n\nUse installed Kyro command skills: \`kyro-forge\`, \`kyro-status\`, \`kyro-wrap-up\`.\n\nRuntime: \`${constants_1.KYRO_ROOT}/\`\nProject state: \`.agents/kyro/kyro.json\`\nArtifacts: \`${constants_1.ARTIFACT_ROOT}/{scope}/\`\nSkills: \`${constants_1.AGENT_SKILLS_ROOT}/kyro-*\`\n\nLoad command routers only when a Kyro skill is invoked. Do not load full Kyro docs unless the router asks for them. Preserve non-Kyro content; Kyro owns only this marked block.\n`;
54
54
  }
55
55
  //# sourceMappingURL=codex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/adapters/codex.ts"],"names":[],"mappings":";;;AAAA,4CAAsG;AACtG,8BAAwC;AACxC,qDAA4F;AAC5F,yCAAoD;AAGpD,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEzB,QAAA,YAAY,GAAsB;IAC7C,KAAK,EAAE,iBAAK,CAAC,KAAK;IAClB,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,aAAa;IACrB,eAAe,CAAC,IAAI;QAClB,IAAA,0CAAyB,EAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,gBAAgB,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,OAAO,IAAA,8CAA6B,GAAE,CAAC;IACzC,CAAC;IACD,kBAAkB;QAChB,OAAO,CAAC,GAAG,WAAW,IAAI,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,WAAW;QACtC,OAAO;YACL,KAAK,EAAE,iBAAK,CAAC,KAAK;YAClB,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,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QAC9F,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,iCAAsB,EAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC;QACxD,IAAI,CAAC,IAAA,oBAAe,EAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,yBAAyB,WAAW,EAAE,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAC3I,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gEAAgE,EAAE,CAAC;IAC7H,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,OAAO,oHAAoH,6BAAiB,wEAAwE,8BAAkB,2FAA2F,yBAAa,yQAAyQ,qBAAS,QAAQ,CAAC;AAC3mB,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/adapters/codex.ts"],"names":[],"mappings":";;;AAAA,4CAAkF;AAClF,8BAAwC;AACxC,qDAA4F;AAC5F,yCAAoD;AAGpD,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEzB,QAAA,YAAY,GAAsB;IAC7C,KAAK,EAAE,iBAAK,CAAC,KAAK;IAClB,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,aAAa;IACrB,eAAe,CAAC,IAAI;QAClB,IAAA,0CAAyB,EAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,gBAAgB,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,OAAO,IAAA,8CAA6B,GAAE,CAAC;IACzC,CAAC;IACD,kBAAkB;QAChB,OAAO,CAAC,GAAG,WAAW,IAAI,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,WAAW;QACtC,OAAO;YACL,KAAK,EAAE,iBAAK,CAAC,KAAK;YAClB,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,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QAC9F,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,iCAAsB,EAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC;QACxD,IAAI,CAAC,IAAA,oBAAe,EAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,yBAAyB,WAAW,EAAE,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAC3I,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gEAAgE,EAAE,CAAC;IAC7H,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,OAAO,qHAAqH,qBAAS,gEAAgE,yBAAa,0BAA0B,6BAAiB,iMAAiM,CAAC;AACjc,CAAC"}
@@ -26,7 +26,7 @@ function getCommandSkillPath(command) {
26
26
  function buildCommandSkill(command) {
27
27
  const title = command === 'wrap-up' ? 'Kyro Wrap-Up' : `Kyro ${capitalize(command)}`;
28
28
  const description = getCommandDescription(command);
29
- return `---\nname: kyro-${command}\ndescription: ${description}\nlicense: Apache-2.0\nmetadata:\n author: synapsync\n version: "1.0"\n scope: [root]\n---\n\n# ${title}\n\nUse this skill when the user invokes the Kyro ${command} workflow.\n\n## Execution\n\n1. Read \`${constants_1.KYRO_COMMANDS_ROOT}/${command}.md\`.\n2. Read required core assets from \`${constants_1.KYRO_ROOT}/\` only when the command asks for them.\n3. Persist Kyro workflow artifacts under \`${constants_1.ARTIFACT_ROOT}/{scope}/\`.\n4. Do not ask the user to describe this command in natural language; this skill is the command projection for agents that discover \`.agents/skills/\`.\n\n## Source of Truth\n\nThe managed Kyro core lives in \`${constants_1.KYRO_ROOT}/\`. Do not duplicate lifecycle logic in this projected skill.\n`;
29
+ return `---\nname: kyro-${command}\ndescription: ${description}\nlicense: Apache-2.0\nmetadata:\n author: synapsync\n version: "1.0"\n scope: [root]\n---\n\n# ${title}\n\nCommand stub. Read \`${constants_1.KYRO_COMMANDS_ROOT}/${command}.md\`, then load only the files that router requests.\n\nRuntime: \`${constants_1.KYRO_ROOT}/\`\nArtifacts: \`${constants_1.ARTIFACT_ROOT}/{scope}/\`\n\nDo not ask the user to restate this workflow in natural language.\n`;
30
30
  }
31
31
  function getCommandDescription(command) {
32
32
  if (command === 'forge')
@@ -1 +1 @@
1
- {"version":3,"file":"command-skills.js","sourceRoot":"","sources":["../../../src/cli/adapters/command-skills.ts"],"names":[],"mappings":";;AAGA,8DAYC;AAED,sEAEC;AAED,kDAEC;AAvBD,4CAA8G;AAG9G,SAAgB,yBAAyB,CAAC,IAAqB;IAC7D,KAAK,MAAM,OAAO,IAAI,yBAAa,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,OAAO;YACf,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B;IAC3C,OAAO,yBAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAwB;IAC1D,OAAO,GAAG,6BAAiB,SAAS,OAAO,WAAW,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwB;IACjD,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,mBAAmB,OAAO,kBAAkB,WAAW,sGAAsG,KAAK,qDAAqD,OAAO,2CAA2C,8BAAkB,IAAI,OAAO,+CAA+C,qBAAS,wFAAwF,yBAAa,mOAAmO,qBAAS,kEAAkE,CAAC;AAC3vB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAwB;IACrD,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,qEAAqE,CAAC;IACtG,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,kEAAkE,CAAC;IACpG,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"command-skills.js","sourceRoot":"","sources":["../../../src/cli/adapters/command-skills.ts"],"names":[],"mappings":";;AAGA,8DAYC;AAED,sEAEC;AAED,kDAEC;AAvBD,4CAA8G;AAG9G,SAAgB,yBAAyB,CAAC,IAAqB;IAC7D,KAAK,MAAM,OAAO,IAAI,yBAAa,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,OAAO;YACf,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B;IAC3C,OAAO,yBAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAwB;IAC1D,OAAO,GAAG,6BAAiB,SAAS,OAAO,WAAW,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwB;IACjD,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,mBAAmB,OAAO,kBAAkB,WAAW,sGAAsG,KAAK,4BAA4B,8BAAkB,IAAI,OAAO,uEAAuE,qBAAS,qBAAqB,yBAAa,oFAAoF,CAAC;AAC3a,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAwB;IACrD,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,qEAAqE,CAAC;IACtG,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,kEAAkE,CAAC;IACpG,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC"}
@@ -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"}