kyro-ai 3.2.3 → 3.3.0

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 (89) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +14 -1
  3. package/WORKFLOW.yaml +1 -1
  4. package/dist/cli/app.d.ts.map +1 -1
  5. package/dist/cli/app.js +9 -0
  6. package/dist/cli/app.js.map +1 -1
  7. package/dist/cli/artifacts/json.d.ts +8 -0
  8. package/dist/cli/artifacts/json.d.ts.map +1 -0
  9. package/dist/cli/artifacts/json.js +18 -0
  10. package/dist/cli/artifacts/json.js.map +1 -0
  11. package/dist/cli/artifacts/paths.d.ts +9 -0
  12. package/dist/cli/artifacts/paths.d.ts.map +1 -0
  13. package/dist/cli/artifacts/paths.js +36 -0
  14. package/dist/cli/artifacts/paths.js.map +1 -0
  15. package/dist/cli/artifacts/schema.d.ts +102 -0
  16. package/dist/cli/artifacts/schema.d.ts.map +1 -0
  17. package/dist/cli/artifacts/schema.js +157 -0
  18. package/dist/cli/artifacts/schema.js.map +1 -0
  19. package/dist/cli/commands/artifact-doctor.d.ts +8 -0
  20. package/dist/cli/commands/artifact-doctor.d.ts.map +1 -0
  21. package/dist/cli/commands/artifact-doctor.js +246 -0
  22. package/dist/cli/commands/artifact-doctor.js.map +1 -0
  23. package/dist/cli/commands/doctor.d.ts +1 -1
  24. package/dist/cli/commands/doctor.d.ts.map +1 -1
  25. package/dist/cli/commands/doctor.js +5 -2
  26. package/dist/cli/commands/doctor.js.map +1 -1
  27. package/dist/cli/commands/repair.d.ts +4 -0
  28. package/dist/cli/commands/repair.d.ts.map +1 -0
  29. package/dist/cli/commands/repair.js +271 -0
  30. package/dist/cli/commands/repair.js.map +1 -0
  31. package/dist/cli/commands/scope.d.ts +2 -0
  32. package/dist/cli/commands/scope.d.ts.map +1 -0
  33. package/dist/cli/commands/scope.js +113 -0
  34. package/dist/cli/commands/scope.js.map +1 -0
  35. package/dist/cli/commands/tui.js +3 -3
  36. package/dist/cli/commands/tui.js.map +1 -1
  37. package/dist/cli/help.d.ts.map +1 -1
  38. package/dist/cli/help.js +35 -2
  39. package/dist/cli/help.js.map +1 -1
  40. package/dist/cli/options.d.ts.map +1 -1
  41. package/dist/cli/options.js +17 -0
  42. package/dist/cli/options.js.map +1 -1
  43. package/dist/cli/types.d.ts +2 -0
  44. package/dist/cli/types.d.ts.map +1 -1
  45. package/docs/cli.md +28 -0
  46. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/kyro.json +11 -0
  47. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
  48. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
  49. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
  50. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
  51. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/index.json +15 -0
  52. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
  53. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
  54. package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/state.json +11 -0
  55. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/kyro.json +11 -0
  56. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
  57. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
  58. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
  59. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
  60. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/index.json +15 -0
  61. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
  62. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
  63. package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/state.json +10 -0
  64. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/kyro.json +11 -0
  65. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
  66. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
  67. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/index.json +15 -0
  68. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
  69. package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/state.json +11 -0
  70. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/kyro.json +11 -0
  71. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
  72. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
  73. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
  74. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
  75. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/index.json +15 -0
  76. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
  77. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
  78. package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/state.json +11 -0
  79. package/fixtures/artifact-integrity/valid/.agents/kyro/kyro.json +11 -0
  80. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
  81. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
  82. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
  83. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
  84. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/index.json +15 -0
  85. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
  86. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
  87. package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/state.json +11 -0
  88. package/package.json +6 -2
  89. package/scripts/check-artifact-fixtures.mjs +56 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kyro-ai",
3
- "version": "3.2.3",
3
+ "version": "3.3.0",
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
@@ -166,7 +166,7 @@ Common usage:
166
166
 
167
167
  ```bash
168
168
  kyro install --agent opencode,codex --scope workspace --yes
169
- kyro doctor
169
+ kyro doctor --tokens --artifacts
170
170
  kyro sync --agent codex --dry-run
171
171
  kyro uninstall --dry-run
172
172
  ```
@@ -184,6 +184,19 @@ There is intentionally no `generic` adapter. Cross-agent instructions belong in
184
184
 
185
185
  ---
186
186
 
187
+
188
+ ## Artifact Integrity
189
+
190
+ Kyro treats the repo as the system of record. Validate and repair the knowledge contract with:
191
+
192
+ ```bash
193
+ kyro doctor --artifacts
194
+ kyro repair --kyro-scope <scope> --yes
195
+ kyro scope inspect <scope>
196
+ ```
197
+
198
+ `repair` only rebuilds JSON routing/summaries from existing Markdown evidence; it does not rewrite user-authored Markdown.
199
+
187
200
  ## Core Workflow
188
201
 
189
202
  Kyro has three stable workflow intents:
package/WORKFLOW.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  name: kyro-ai
2
2
  type: workflow
3
- version: "3.2.3"
3
+ version: "3.3.0"
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.
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":"AAOA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC5C"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":"AASA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAiD5C"}
package/dist/cli/app.js CHANGED
@@ -4,6 +4,8 @@ exports.runCli = runCli;
4
4
  const doctor_1 = require("./commands/doctor");
5
5
  const install_1 = require("./commands/install");
6
6
  const tui_1 = require("./commands/tui");
7
+ const repair_1 = require("./commands/repair");
8
+ const scope_1 = require("./commands/scope");
7
9
  const uninstall_1 = require("./commands/uninstall");
8
10
  const help_1 = require("./help");
9
11
  const options_1 = require("./options");
@@ -21,6 +23,10 @@ async function runCli() {
21
23
  console.log((0, help_1.readPackageVersion)());
22
24
  return;
23
25
  }
26
+ if (command === 'scope') {
27
+ (0, scope_1.runScopeCommand)(args);
28
+ return;
29
+ }
24
30
  const options = (0, options_1.parseOptions)(args);
25
31
  if (options.help) {
26
32
  (0, help_1.printCommandHelp)(command);
@@ -33,6 +39,9 @@ async function runCli() {
33
39
  case 'doctor':
34
40
  (0, doctor_1.doctor)(options);
35
41
  break;
42
+ case 'repair':
43
+ await (0, repair_1.repair)(options);
44
+ break;
36
45
  case 'sync':
37
46
  (0, install_1.sync)(options);
38
47
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;AAOA,wBAyCC;AAhDD,8CAA2C;AAC3C,gDAAmD;AACnD,wCAAwC;AACxC,oDAAiD;AACjD,iCAAyE;AACzE,uCAAyC;AAElC,KAAK,UAAU,MAAM;IAC1B,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,IAAA,gBAAS,GAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAkB,GAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,uBAAgB,EAAC,OAAO,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,MAAM;YACT,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC;YACd,MAAM;QACR,KAAK,WAAW;YACd,IAAA,qBAAS,EAAC,OAAO,CAAC,CAAC;YACnB,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,oBAAoB,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.ts"],"names":[],"mappings":";;AASA,wBAiDC;AA1DD,8CAA2C;AAC3C,gDAAmD;AACnD,wCAAwC;AACxC,8CAA2C;AAC3C,4CAAmD;AACnD,oDAAiD;AACjD,iCAAyE;AACzE,uCAAyC;AAElC,KAAK,UAAU,MAAM;IAC1B,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,IAAA,gBAAS,GAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAkB,GAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,uBAAgB,EAAC,OAAO,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,MAAM;YACT,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC;YACd,MAAM;QACR,KAAK,WAAW;YACd,IAAA,qBAAS,EAAC,OAAO,CAAC,CAAC;YACnB,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,oBAAoB,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface JsonReadResult {
2
+ path: string;
3
+ exists: boolean;
4
+ value: unknown | null;
5
+ error: string | null;
6
+ }
7
+ export declare function readJsonSafely(path: string): JsonReadResult;
8
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/artifacts/json.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAU3D"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readJsonSafely = readJsonSafely;
4
+ const node_fs_1 = require("node:fs");
5
+ const fs_1 = require("../fs");
6
+ function readJsonSafely(path) {
7
+ const absolutePath = (0, fs_1.resolveManagedPath)(path);
8
+ if (!(0, node_fs_1.existsSync)(absolutePath)) {
9
+ return { path, exists: false, value: null, error: null };
10
+ }
11
+ try {
12
+ return { path, exists: true, value: JSON.parse((0, node_fs_1.readFileSync)(absolutePath, 'utf-8')), error: null };
13
+ }
14
+ catch (error) {
15
+ return { path, exists: true, value: null, error: error instanceof Error ? error.message : String(error) };
16
+ }
17
+ }
18
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/artifacts/json.ts"],"names":[],"mappings":";;AAUA,wCAUC;AApBD,qCAAmD;AACnD,8BAA2C;AAS3C,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,YAAY,GAAG,IAAA,uBAAkB,EAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5G,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function scopeRoot(scope: string): string;
2
+ export declare function scopeStatePath(scope: string): string;
3
+ export declare function scopeIndexPath(scope: string): string;
4
+ export declare function roadmapPath(scope: string): string;
5
+ export declare function roadmapSummaryPath(scope: string): string;
6
+ export declare function debtSummaryPath(scope: string): string;
7
+ export declare function phasesPath(scope: string): string;
8
+ export declare function projectStatePath(): string;
9
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/cli/artifacts/paths.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scopeRoot = scopeRoot;
4
+ exports.scopeStatePath = scopeStatePath;
5
+ exports.scopeIndexPath = scopeIndexPath;
6
+ exports.roadmapPath = roadmapPath;
7
+ exports.roadmapSummaryPath = roadmapSummaryPath;
8
+ exports.debtSummaryPath = debtSummaryPath;
9
+ exports.phasesPath = phasesPath;
10
+ exports.projectStatePath = projectStatePath;
11
+ const constants_1 = require("../constants");
12
+ function scopeRoot(scope) {
13
+ return `${constants_1.ARTIFACT_ROOT}/${scope}`;
14
+ }
15
+ function scopeStatePath(scope) {
16
+ return `${scopeRoot(scope)}/state.json`;
17
+ }
18
+ function scopeIndexPath(scope) {
19
+ return `${scopeRoot(scope)}/index.json`;
20
+ }
21
+ function roadmapPath(scope) {
22
+ return `${scopeRoot(scope)}/ROADMAP.md`;
23
+ }
24
+ function roadmapSummaryPath(scope) {
25
+ return `${scopeRoot(scope)}/ROADMAP.summary.json`;
26
+ }
27
+ function debtSummaryPath(scope) {
28
+ return `${scopeRoot(scope)}/DEBT.summary.json`;
29
+ }
30
+ function phasesPath(scope) {
31
+ return `${scopeRoot(scope)}/phases`;
32
+ }
33
+ function projectStatePath() {
34
+ return constants_1.KYRO_STATE_PATH;
35
+ }
36
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cli/artifacts/paths.ts"],"names":[],"mappings":";;AAEA,8BAEC;AAED,wCAEC;AAED,wCAEC;AAED,kCAEC;AAED,gDAEC;AAED,0CAEC;AAED,gCAEC;AAED,4CAEC;AAhCD,4CAA8D;AAE9D,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,GAAG,yBAAa,IAAI,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACpD,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACjD,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,2BAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,102 @@
1
+ import type { KyroProjectState } from '../types';
2
+ export declare const KYRO_SCOPE_STATUS: {
3
+ readonly PLANNING: "planning";
4
+ readonly ACTIVE: "active";
5
+ readonly COMPLETED: "completed";
6
+ readonly BLOCKED: "blocked";
7
+ };
8
+ export type KyroScopeStatus = (typeof KYRO_SCOPE_STATUS)[keyof typeof KYRO_SCOPE_STATUS];
9
+ export interface ValidationIssue {
10
+ path: string;
11
+ field: string;
12
+ message: string;
13
+ }
14
+ export interface KyroScopeState {
15
+ schemaVersion: 1;
16
+ scope: string;
17
+ status: string;
18
+ activeSprint: string | null;
19
+ currentPhase: string;
20
+ nextAction: string;
21
+ roadmapPath: string;
22
+ sprintsPath: string;
23
+ lastUpdated: string;
24
+ }
25
+ export interface SizingDecisionSummary {
26
+ recommendedSprintCount: number;
27
+ riskLevel: string;
28
+ rationale: string;
29
+ splitTriggers: string[];
30
+ whyNotFewer: string;
31
+ whyNotMore: string;
32
+ sprintProofs: string[];
33
+ }
34
+ export interface RelevantArtifactPaths {
35
+ roadmap: string;
36
+ roadmapSummary: string;
37
+ sprints: string;
38
+ reentry: string;
39
+ }
40
+ export interface KyroScopeIndex {
41
+ schemaVersion: 1;
42
+ scope: string;
43
+ roadmapSummary: string;
44
+ activeSprintSummary: string | null;
45
+ openDebtCount: number;
46
+ nextTask: string | null;
47
+ sizingDecision?: SizingDecisionSummary;
48
+ relevantArtifactPaths: RelevantArtifactPaths;
49
+ lastUpdated: string;
50
+ }
51
+ export interface RoadmapSummary {
52
+ schemaVersion: 1;
53
+ scope: string;
54
+ status: string;
55
+ summary: string;
56
+ plannedSprintCount: number;
57
+ completedSprintCount: number;
58
+ adaptationCount: number;
59
+ sizingDecision?: SizingDecisionSummary;
60
+ nextRecommendedAction: string;
61
+ openDecisions: string[];
62
+ relevantArtifactPaths: string[];
63
+ lastUpdated: string;
64
+ }
65
+ export interface SprintSummary {
66
+ schemaVersion: 1;
67
+ scope: string;
68
+ sprint: string;
69
+ status: string;
70
+ completedTasks: number;
71
+ blockedTasks: number;
72
+ carryOverTasks: number;
73
+ nextRecommendedAction: string;
74
+ nextTask: string | null;
75
+ openDecisions: string[];
76
+ filesTouched: string[];
77
+ debtDeltas: unknown[];
78
+ sourceMarkdown: string;
79
+ lastUpdated: string;
80
+ }
81
+ export interface DebtSummary {
82
+ schemaVersion: 1;
83
+ scope: string;
84
+ open: number;
85
+ inProgress: number;
86
+ resolved: number;
87
+ deferred: number;
88
+ critical: number;
89
+ oldestOpenItem: string | null;
90
+ sourceMarkdown: string | null;
91
+ lastUpdated: string;
92
+ }
93
+ export declare function validateProjectStateShape(value: unknown, path: string): ValidationIssue[];
94
+ export declare function validateScopeState(value: unknown, path: string): ValidationIssue[];
95
+ export declare function validateScopeIndex(value: unknown, path: string): ValidationIssue[];
96
+ export declare function validateRoadmapSummary(value: unknown, path: string): ValidationIssue[];
97
+ export declare function validateSprintSummary(value: unknown, path: string): ValidationIssue[];
98
+ export declare function validateDebtSummary(value: unknown, path: string): ValidationIssue[];
99
+ export declare function asProjectState(value: unknown): KyroProjectState | null;
100
+ export declare function asScopeState(value: unknown): KyroScopeState | null;
101
+ export declare function asScopeIndex(value: unknown): KyroScopeIndex | null;
102
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/cli/artifacts/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KYRO_SCOPE_STATUS = void 0;
4
+ exports.validateProjectStateShape = validateProjectStateShape;
5
+ exports.validateScopeState = validateScopeState;
6
+ exports.validateScopeIndex = validateScopeIndex;
7
+ exports.validateRoadmapSummary = validateRoadmapSummary;
8
+ exports.validateSprintSummary = validateSprintSummary;
9
+ exports.validateDebtSummary = validateDebtSummary;
10
+ exports.asProjectState = asProjectState;
11
+ exports.asScopeState = asScopeState;
12
+ exports.asScopeIndex = asScopeIndex;
13
+ exports.KYRO_SCOPE_STATUS = {
14
+ PLANNING: 'planning',
15
+ ACTIVE: 'active',
16
+ COMPLETED: 'completed',
17
+ BLOCKED: 'blocked',
18
+ };
19
+ function validateProjectStateShape(value, path) {
20
+ const issues = [];
21
+ if (!isRecord(value))
22
+ return [{ path, field: '<root>', message: 'must be an object' }];
23
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
24
+ requireString(value, 'artifactRoot', path, issues);
25
+ requireStringArray(value, 'scopes', path, issues);
26
+ requireNullableString(value, 'activeScope', path, issues);
27
+ requireString(value, 'runtimeVersion', path, issues);
28
+ requireString(value, 'runtimePath', path, issues);
29
+ if (!Array.isArray(value.installedAdapters))
30
+ issues.push({ path, field: 'installedAdapters', message: 'must be an array' });
31
+ return issues;
32
+ }
33
+ function validateScopeState(value, path) {
34
+ const issues = [];
35
+ if (!isRecord(value))
36
+ return [{ path, field: '<root>', message: 'must be an object' }];
37
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
38
+ requireString(value, 'scope', path, issues);
39
+ requireString(value, 'status', path, issues);
40
+ requireNullableString(value, 'activeSprint', path, issues);
41
+ requireString(value, 'currentPhase', path, issues);
42
+ requireString(value, 'nextAction', path, issues);
43
+ requireString(value, 'roadmapPath', path, issues);
44
+ requireString(value, 'sprintsPath', path, issues);
45
+ requireString(value, 'lastUpdated', path, issues);
46
+ return issues;
47
+ }
48
+ function validateScopeIndex(value, path) {
49
+ const issues = [];
50
+ if (!isRecord(value))
51
+ return [{ path, field: '<root>', message: 'must be an object' }];
52
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
53
+ requireString(value, 'scope', path, issues);
54
+ requireString(value, 'roadmapSummary', path, issues);
55
+ requireNullableString(value, 'activeSprintSummary', path, issues);
56
+ requireNumber(value, 'openDebtCount', path, issues);
57
+ requireNullableString(value, 'nextTask', path, issues);
58
+ if (!isRecord(value.relevantArtifactPaths)) {
59
+ issues.push({ path, field: 'relevantArtifactPaths', message: 'must be an object' });
60
+ }
61
+ else {
62
+ requireString(value.relevantArtifactPaths, 'roadmap', path, issues, 'relevantArtifactPaths.roadmap');
63
+ requireString(value.relevantArtifactPaths, 'roadmapSummary', path, issues, 'relevantArtifactPaths.roadmapSummary');
64
+ requireString(value.relevantArtifactPaths, 'sprints', path, issues, 'relevantArtifactPaths.sprints');
65
+ requireString(value.relevantArtifactPaths, 'reentry', path, issues, 'relevantArtifactPaths.reentry');
66
+ }
67
+ requireString(value, 'lastUpdated', path, issues);
68
+ return issues;
69
+ }
70
+ function validateRoadmapSummary(value, path) {
71
+ const issues = [];
72
+ if (!isRecord(value))
73
+ return [{ path, field: '<root>', message: 'must be an object' }];
74
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
75
+ requireString(value, 'scope', path, issues);
76
+ requireString(value, 'status', path, issues);
77
+ requireString(value, 'summary', path, issues);
78
+ requireNumber(value, 'plannedSprintCount', path, issues);
79
+ requireNumber(value, 'completedSprintCount', path, issues);
80
+ requireNumber(value, 'adaptationCount', path, issues);
81
+ requireString(value, 'nextRecommendedAction', path, issues);
82
+ requireStringArray(value, 'openDecisions', path, issues);
83
+ requireStringArray(value, 'relevantArtifactPaths', path, issues);
84
+ requireString(value, 'lastUpdated', path, issues);
85
+ return issues;
86
+ }
87
+ function validateSprintSummary(value, path) {
88
+ const issues = [];
89
+ if (!isRecord(value))
90
+ return [{ path, field: '<root>', message: 'must be an object' }];
91
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
92
+ requireString(value, 'scope', path, issues);
93
+ requireString(value, 'sprint', path, issues);
94
+ requireString(value, 'status', path, issues);
95
+ requireNumber(value, 'completedTasks', path, issues);
96
+ requireNumber(value, 'blockedTasks', path, issues);
97
+ requireNumber(value, 'carryOverTasks', path, issues);
98
+ requireString(value, 'nextRecommendedAction', path, issues);
99
+ requireNullableString(value, 'nextTask', path, issues);
100
+ requireStringArray(value, 'openDecisions', path, issues);
101
+ requireStringArray(value, 'filesTouched', path, issues);
102
+ if (!Array.isArray(value.debtDeltas))
103
+ issues.push({ path, field: 'debtDeltas', message: 'must be an array' });
104
+ requireString(value, 'sourceMarkdown', path, issues);
105
+ requireString(value, 'lastUpdated', path, issues);
106
+ return issues;
107
+ }
108
+ function validateDebtSummary(value, path) {
109
+ const issues = [];
110
+ if (!isRecord(value))
111
+ return [{ path, field: '<root>', message: 'must be an object' }];
112
+ requireLiteral(value, 'schemaVersion', 1, path, issues);
113
+ requireString(value, 'scope', path, issues);
114
+ requireNumber(value, 'open', path, issues);
115
+ requireNumber(value, 'inProgress', path, issues);
116
+ requireNumber(value, 'resolved', path, issues);
117
+ requireNumber(value, 'deferred', path, issues);
118
+ requireNumber(value, 'critical', path, issues);
119
+ requireNullableString(value, 'oldestOpenItem', path, issues);
120
+ requireNullableString(value, 'sourceMarkdown', path, issues);
121
+ requireString(value, 'lastUpdated', path, issues);
122
+ return issues;
123
+ }
124
+ function asProjectState(value) {
125
+ return validateProjectStateShape(value, '.agents/kyro/kyro.json').length === 0 ? value : null;
126
+ }
127
+ function asScopeState(value) {
128
+ return validateScopeState(value, 'state.json').length === 0 ? value : null;
129
+ }
130
+ function asScopeIndex(value) {
131
+ return validateScopeIndex(value, 'index.json').length === 0 ? value : null;
132
+ }
133
+ function requireLiteral(record, key, expected, path, issues) {
134
+ if (record[key] !== expected)
135
+ issues.push({ path, field: key, message: `must be ${String(expected)}` });
136
+ }
137
+ function requireString(record, key, path, issues, field = key) {
138
+ if (typeof record[key] !== 'string')
139
+ issues.push({ path, field, message: 'must be a string' });
140
+ }
141
+ function requireNullableString(record, key, path, issues) {
142
+ if (record[key] !== null && typeof record[key] !== 'string')
143
+ issues.push({ path, field: key, message: 'must be a string or null' });
144
+ }
145
+ function requireNumber(record, key, path, issues) {
146
+ if (typeof record[key] !== 'number' || Number.isNaN(record[key]))
147
+ issues.push({ path, field: key, message: 'must be a number' });
148
+ }
149
+ function requireStringArray(record, key, path, issues) {
150
+ if (!Array.isArray(record[key]) || !record[key].every((item) => typeof item === 'string')) {
151
+ issues.push({ path, field: key, message: 'must be an array of strings' });
152
+ }
153
+ }
154
+ function isRecord(value) {
155
+ return typeof value === 'object' && value !== null;
156
+ }
157
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/artifacts/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CheckResult } from '../types';
2
+ export interface ArtifactAuditOptions {
3
+ kyroScope: string | null;
4
+ }
5
+ export declare function runArtifactAuditChecks(options: ArtifactAuditOptions): CheckResult[];
6
+ export declare function inspectScope(scope: string): CheckResult[];
7
+ export declare function listScopeNames(): string[];
8
+ //# sourceMappingURL=artifact-doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/artifact-doctor.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAQD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,EAAE,CA6BnF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAEzD;AAED,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAUzC"}