@aperant/framework 0.6.6 → 0.7.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 (150) hide show
  1. package/CHANGELOG.md +215 -0
  2. package/dist/cli/commands/check-version.d.mts.map +1 -1
  3. package/dist/cli/commands/check-version.mjs +76 -1
  4. package/dist/cli/commands/check-version.mjs.map +1 -1
  5. package/dist/cli/commands/ci-watch.d.mts.map +1 -1
  6. package/dist/cli/commands/ci-watch.mjs +73 -5
  7. package/dist/cli/commands/ci-watch.mjs.map +1 -1
  8. package/dist/cli/commands/health-check.mjs +1 -1
  9. package/dist/cli/commands/health-check.mjs.map +1 -1
  10. package/dist/cli/commands/init.d.mts +17 -1
  11. package/dist/cli/commands/init.d.mts.map +1 -1
  12. package/dist/cli/commands/init.mjs +183 -11
  13. package/dist/cli/commands/init.mjs.map +1 -1
  14. package/dist/cli/commands/release-notes.d.mts +11 -0
  15. package/dist/cli/commands/release-notes.d.mts.map +1 -0
  16. package/dist/cli/commands/release-notes.mjs +173 -0
  17. package/dist/cli/commands/release-notes.mjs.map +1 -0
  18. package/dist/cli/commands/route.d.mts.map +1 -1
  19. package/dist/cli/commands/route.mjs +37 -2
  20. package/dist/cli/commands/route.mjs.map +1 -1
  21. package/dist/cli/commands/task.d.mts.map +1 -1
  22. package/dist/cli/commands/task.mjs +48 -0
  23. package/dist/cli/commands/task.mjs.map +1 -1
  24. package/dist/cli/config/load.d.mts +14 -0
  25. package/dist/cli/config/load.d.mts.map +1 -1
  26. package/dist/cli/config/load.mjs +40 -0
  27. package/dist/cli/config/load.mjs.map +1 -1
  28. package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -1
  29. package/dist/cli/config/upgrade-gitignore.mjs +6 -0
  30. package/dist/cli/config/upgrade-gitignore.mjs.map +1 -1
  31. package/dist/cli/consistency/parse-review.d.mts.map +1 -1
  32. package/dist/cli/consistency/parse-review.mjs +4 -1
  33. package/dist/cli/consistency/parse-review.mjs.map +1 -1
  34. package/dist/cli/dispatch.d.mts.map +1 -1
  35. package/dist/cli/dispatch.mjs +2 -0
  36. package/dist/cli/dispatch.mjs.map +1 -1
  37. package/dist/cli/gate/gates/review-clean.d.mts.map +1 -1
  38. package/dist/cli/gate/gates/review-clean.mjs +4 -2
  39. package/dist/cli/gate/gates/review-clean.mjs.map +1 -1
  40. package/dist/cli/help.d.mts.map +1 -1
  41. package/dist/cli/help.mjs +1 -0
  42. package/dist/cli/help.mjs.map +1 -1
  43. package/dist/cli/host/detect.d.mts +122 -9
  44. package/dist/cli/host/detect.d.mts.map +1 -1
  45. package/dist/cli/host/detect.mjs +132 -0
  46. package/dist/cli/host/detect.mjs.map +1 -1
  47. package/dist/cli/install/legacy-paths.d.mts +38 -0
  48. package/dist/cli/install/legacy-paths.d.mts.map +1 -0
  49. package/dist/cli/install/legacy-paths.mjs +69 -0
  50. package/dist/cli/install/legacy-paths.mjs.map +1 -0
  51. package/dist/cli/install/runtime-migrate.d.mts +84 -0
  52. package/dist/cli/install/runtime-migrate.d.mts.map +1 -0
  53. package/dist/cli/install/runtime-migrate.mjs +244 -0
  54. package/dist/cli/install/runtime-migrate.mjs.map +1 -0
  55. package/dist/cli/install/update-chips.d.mts +23 -0
  56. package/dist/cli/install/update-chips.d.mts.map +1 -1
  57. package/dist/cli/install/update-chips.mjs +60 -0
  58. package/dist/cli/install/update-chips.mjs.map +1 -1
  59. package/dist/cli/release-notes/compile.d.mts +38 -0
  60. package/dist/cli/release-notes/compile.d.mts.map +1 -0
  61. package/dist/cli/release-notes/compile.mjs +244 -0
  62. package/dist/cli/release-notes/compile.mjs.map +1 -0
  63. package/dist/cli/release-notes/draft.d.mts +73 -0
  64. package/dist/cli/release-notes/draft.d.mts.map +1 -0
  65. package/dist/cli/release-notes/draft.mjs +120 -0
  66. package/dist/cli/release-notes/draft.mjs.map +1 -0
  67. package/dist/cli/release-notes/output-dir.d.mts +20 -0
  68. package/dist/cli/release-notes/output-dir.d.mts.map +1 -0
  69. package/dist/cli/release-notes/output-dir.mjs +42 -0
  70. package/dist/cli/release-notes/output-dir.mjs.map +1 -0
  71. package/dist/cli/release-notes/persona-filter.d.mts +51 -0
  72. package/dist/cli/release-notes/persona-filter.d.mts.map +1 -0
  73. package/dist/cli/release-notes/persona-filter.mjs +127 -0
  74. package/dist/cli/release-notes/persona-filter.mjs.map +1 -0
  75. package/dist/cli/release-notes/publish.d.mts +23 -0
  76. package/dist/cli/release-notes/publish.d.mts.map +1 -0
  77. package/dist/cli/release-notes/publish.mjs +125 -0
  78. package/dist/cli/release-notes/publish.mjs.map +1 -0
  79. package/dist/cli/release-notes/ship-autodraft.d.mts +37 -0
  80. package/dist/cli/release-notes/ship-autodraft.d.mts.map +1 -0
  81. package/dist/cli/release-notes/ship-autodraft.mjs +97 -0
  82. package/dist/cli/release-notes/ship-autodraft.mjs.map +1 -0
  83. package/dist/cli/route/drift-detect.d.mts +20 -0
  84. package/dist/cli/route/drift-detect.d.mts.map +1 -0
  85. package/dist/cli/route/drift-detect.mjs +107 -0
  86. package/dist/cli/route/drift-detect.mjs.map +1 -0
  87. package/dist/cli/util/aperant-section.d.mts +34 -0
  88. package/dist/cli/util/aperant-section.d.mts.map +1 -0
  89. package/dist/cli/util/aperant-section.mjs +127 -0
  90. package/dist/cli/util/aperant-section.mjs.map +1 -0
  91. package/dist/cli/util/copy.d.mts +28 -1
  92. package/dist/cli/util/copy.d.mts.map +1 -1
  93. package/dist/cli/util/copy.mjs +43 -55
  94. package/dist/cli/util/copy.mjs.map +1 -1
  95. package/dist/cli/util/semver.d.mts +17 -0
  96. package/dist/cli/util/semver.d.mts.map +1 -0
  97. package/dist/cli/util/semver.mjs +29 -0
  98. package/dist/cli/util/semver.mjs.map +1 -0
  99. package/dist/cli/util/skill-installs.d.mts +65 -9
  100. package/dist/cli/util/skill-installs.d.mts.map +1 -1
  101. package/dist/cli/util/skill-installs.mjs +130 -21
  102. package/dist/cli/util/skill-installs.mjs.map +1 -1
  103. package/dist/cli/util/version-preflight.d.mts +44 -0
  104. package/dist/cli/util/version-preflight.d.mts.map +1 -0
  105. package/dist/cli/util/version-preflight.mjs +66 -0
  106. package/dist/cli/util/version-preflight.mjs.map +1 -0
  107. package/dist/types/config.d.ts +11 -7
  108. package/dist/types/config.d.ts.map +1 -1
  109. package/package.json +133 -133
  110. package/skills/apt-close-task/SKILL.md +30 -0
  111. package/skills/apt-diagram/SKILL.md +45 -9
  112. package/skills/apt-release-notes/SKILL.md +193 -0
  113. package/skills/apt-release-notes/appendices/persona-voice.md +59 -0
  114. package/skills/apt-setup/SKILL.md +146 -3
  115. package/skills/apt-ship/SKILL.md +63 -4
  116. package/skills/apt-spar/SKILL.md +36 -11
  117. package/skills/apt-update/SKILL.md +77 -10
  118. package/skills/apt-watch-ci/SKILL.md +6 -3
  119. package/src/cli/commands/check-version.mjs +73 -1
  120. package/src/cli/commands/ci-watch.mjs +74 -5
  121. package/src/cli/commands/health-check.mjs +1 -1
  122. package/src/cli/commands/init.mjs +202 -10
  123. package/src/cli/commands/release-notes.mjs +187 -0
  124. package/src/cli/commands/route.mjs +38 -2
  125. package/src/cli/commands/task.mjs +49 -0
  126. package/src/cli/config/load.mjs +37 -0
  127. package/src/cli/config/upgrade-gitignore.mjs +6 -0
  128. package/src/cli/consistency/parse-review.mjs +3 -1
  129. package/src/cli/dispatch.mjs +2 -0
  130. package/src/cli/gate/gates/review-clean.mjs +4 -2
  131. package/src/cli/help.mjs +1 -0
  132. package/src/cli/host/detect.mjs +135 -0
  133. package/src/cli/install/legacy-paths.mjs +69 -0
  134. package/src/cli/install/runtime-migrate.mjs +252 -0
  135. package/src/cli/install/update-chips.mjs +57 -0
  136. package/src/cli/release-notes/compile.mjs +261 -0
  137. package/src/cli/release-notes/draft.mjs +133 -0
  138. package/src/cli/release-notes/output-dir.mjs +52 -0
  139. package/src/cli/release-notes/persona-filter.mjs +126 -0
  140. package/src/cli/release-notes/publish.mjs +128 -0
  141. package/src/cli/release-notes/ship-autodraft.mjs +106 -0
  142. package/src/cli/route/drift-detect.mjs +107 -0
  143. package/src/cli/util/aperant-section.mjs +136 -0
  144. package/src/cli/util/copy.mjs +43 -56
  145. package/src/cli/util/semver.mjs +28 -0
  146. package/src/cli/util/skill-installs.mjs +134 -21
  147. package/src/cli/util/version-preflight.mjs +65 -0
  148. package/templates/aperant-claude-md-appendix.md +37 -0
  149. package/templates/config.json +28 -3
  150. package/workflows/docs.md +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.d.mts","sourceRoot":"","sources":["../../../src/cli/util/semver.mjs"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,mCAJW,MAAM,KACN,MAAM,GACJ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAYtB;AA3BD;;;GAGG;AAEH,kEAAkE;AAClE,+BAAmF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * util/semver.mjs — shared semver helpers used by route/drift-detect.mjs
3
+ * and util/version-preflight.mjs. Extracted to avoid duplication (QUA-002).
4
+ */
5
+ /** Semver-shape pattern — mirrors install/update-chips.mjs:64. */
6
+ export const SEMVER_RE = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
7
+ /**
8
+ * Compare two semver-shape strings. Returns -1 / 0 / 1. Ignores
9
+ * pre-release + build metadata (sufficient for "min version" checks
10
+ * where we only care about the MAJOR.MINOR.PATCH triple).
11
+ *
12
+ * @param {string} a
13
+ * @param {string} b
14
+ * @returns {-1 | 0 | 1}
15
+ */
16
+ export function compareVersions(a, b) {
17
+ const pa = a.split(/[-+]/, 1)[0].split('.').map(Number);
18
+ const pb = b.split(/[-+]/, 1)[0].split('.').map(Number);
19
+ for (let i = 0; i < 3; i++) {
20
+ const av = pa[i] ?? 0;
21
+ const bv = pb[i] ?? 0;
22
+ if (av < bv)
23
+ return -1;
24
+ if (av > bv)
25
+ return 1;
26
+ }
27
+ return 0;
28
+ }
29
+ //# sourceMappingURL=semver.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.mjs","sourceRoot":"","sources":["../../../src/cli/util/semver.mjs"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,0DAA0D,CAAA;AAEnF;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAA;QACtB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,CAAC,CAAA;AACT,CAAC"}
@@ -1,14 +1,70 @@
1
- export function getSkillInstallSurfaces(projectDir: any): {
2
- version_file: string;
1
+ /**
2
+ * @typedef {Object} SkillInstallSurface
3
+ * @property {string} host Backward-compat host id.
4
+ * @property {string} runtime Canonical runtime id (from RUNTIMES).
5
+ * @property {string} install_root Absolute path of the runtime install root.
6
+ * @property {string} manifest_path Absolute path of apt-file-manifest.json.
7
+ * @property {string|null} legacy_version_file Absolute path of the legacy .apt-version stamp, or null.
8
+ */
9
+ /**
10
+ * Return one install-surface descriptor per runtime in `RUNTIMES`.
11
+ *
12
+ * @param {string} projectDir
13
+ * @returns {SkillInstallSurface[]}
14
+ */
15
+ export function getSkillInstallSurfaces(projectDir: string): SkillInstallSurface[];
16
+ /**
17
+ * @typedef {Object} SkillInstallState
18
+ * @property {string} host
19
+ * @property {string} runtime
20
+ * @property {string} install_root
21
+ * @property {string} manifest_path
22
+ * @property {string|null} legacy_version_file
23
+ * @property {boolean} installed
24
+ * @property {string|null} installed_version
25
+ * @property {boolean} stale
26
+ * @property {'manifest' | 'manifest-malformed' | 'legacy_version_file' | null} source
27
+ */
28
+ /**
29
+ * Read each surface's install state. See the file header for the
30
+ * precedence rules.
31
+ *
32
+ * @param {string} projectDir
33
+ * @param {string} frameworkVersion
34
+ * @returns {SkillInstallState[]}
35
+ */
36
+ export function readSkillInstallState(projectDir: string, frameworkVersion: string): SkillInstallState[];
37
+ export type SkillInstallSurface = {
38
+ /**
39
+ * Backward-compat host id.
40
+ */
3
41
  host: string;
4
- skills_dir: string;
5
- }[];
6
- export function readSkillInstallState(projectDir: any, frameworkVersion: any): {
42
+ /**
43
+ * Canonical runtime id (from RUNTIMES).
44
+ */
45
+ runtime: string;
46
+ /**
47
+ * Absolute path of the runtime install root.
48
+ */
49
+ install_root: string;
50
+ /**
51
+ * Absolute path of apt-file-manifest.json.
52
+ */
53
+ manifest_path: string;
54
+ /**
55
+ * Absolute path of the legacy .apt-version stamp, or null.
56
+ */
57
+ legacy_version_file: string | null;
58
+ };
59
+ export type SkillInstallState = {
60
+ host: string;
61
+ runtime: string;
62
+ install_root: string;
63
+ manifest_path: string;
64
+ legacy_version_file: string | null;
7
65
  installed: boolean;
8
66
  installed_version: string | null;
9
67
  stale: boolean;
10
- version_file: string;
11
- host: string;
12
- skills_dir: string;
13
- }[];
68
+ source: "manifest" | "manifest-malformed" | "legacy_version_file" | null;
69
+ };
14
70
  //# sourceMappingURL=skill-installs.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installs.d.mts","sourceRoot":"","sources":["../../../src/cli/util/skill-installs.mjs"],"names":[],"mappings":"AAOA;;;;IAeC;AAED;;;;;;;IAYC"}
1
+ {"version":3,"file":"skill-installs.d.mts","sourceRoot":"","sources":["../../../src/cli/util/skill-installs.mjs"],"names":[],"mappings":"AA+CA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,oDAHW,MAAM,GACJ,mBAAmB,EAAE,CAgBjC;AAED;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,kDAJW,MAAM,oBACN,MAAM,GACJ,iBAAiB,EAAE,CAoD/B;;;;;UApGa,MAAM;;;;aACN,MAAM;;;;kBACN,MAAM;;;;mBACN,MAAM;;;;yBACN,MAAM,GAAC,IAAI;;;UA2BX,MAAM;aACN,MAAM;kBACN,MAAM;mBACN,MAAM;yBACN,MAAM,GAAC,IAAI;eACX,OAAO;uBACP,MAAM,GAAC,IAAI;WACX,OAAO;YACP,UAAU,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,IAAI"}
@@ -1,34 +1,143 @@
1
1
  /**
2
- * skill-installs.mjs — shared skill install surfaces per host.
2
+ * skill-installs.mjs — shared skill install surfaces per runtime (BUG-022).
3
+ *
4
+ * Source of truth for "what does the framework have installed on this
5
+ * project, per runtime, and is it current?" — the post-022 implementation
6
+ * is manifest-aware:
7
+ *
8
+ * 1. Per surface, prefer `apt-file-manifest.json` (the v0.6.7+ runtime
9
+ * manifest). When present and valid, `framework_version` is the
10
+ * authoritative answer.
11
+ * 2. Manifest present but malformed → reported as `installed: true`,
12
+ * `stale: true`, `source: 'manifest-malformed'`. Don't silently
13
+ * report healthy.
14
+ * 3. Else fall back to `legacy_version_file` (the pre-manifest
15
+ * `.apt-version` stamp; only defined for codex via
16
+ * `LEGACY_INSTALL_PATHS` today). `source: 'legacy_version_file'`.
17
+ * 4. Else → not installed for this surface.
18
+ *
19
+ * The surface array is derived from `RUNTIMES` (single source of truth in
20
+ * `runtime-detect.mjs`) so adding a new runtime there auto-extends every
21
+ * downstream diagnostic. The legacy fallback path is only populated for
22
+ * runtimes that declare a legacy topology in `LEGACY_INSTALL_PATHS`.
23
+ *
24
+ * Backward-compat: `host` field stays `'claude-code'` for the claude
25
+ * runtime (the statusline chip + several other consumers key on this
26
+ * exact string). The new `runtime` field exposes the descriptor id
27
+ * (`'claude'`, `'codex'`, …) for callers that want the canonical name.
3
28
  */
4
- import { existsSync, readFileSync } from 'node:fs';
29
+ import { existsSync, readFileSync, statSync } from 'node:fs';
5
30
  import { join, resolve } from 'node:path';
31
+ import { LEGACY_INSTALL_PATHS } from '../install/legacy-paths.mjs';
32
+ import { MANIFEST_FILENAME, readManifest } from '../install/manifest.mjs';
33
+ import { RUNTIMES } from '../install/runtime-detect.mjs';
34
+ /**
35
+ * Map a runtime descriptor id to the `host` value historical consumers
36
+ * expect. The Claude runtime is the only one with a non-identity mapping
37
+ * (`'claude' → 'claude-code'`) — every other id is its own host string.
38
+ *
39
+ * @param {string} runtimeId
40
+ * @returns {string}
41
+ */
42
+ function hostFor(runtimeId) {
43
+ return runtimeId === 'claude' ? 'claude-code' : runtimeId;
44
+ }
45
+ /**
46
+ * @typedef {Object} SkillInstallSurface
47
+ * @property {string} host Backward-compat host id.
48
+ * @property {string} runtime Canonical runtime id (from RUNTIMES).
49
+ * @property {string} install_root Absolute path of the runtime install root.
50
+ * @property {string} manifest_path Absolute path of apt-file-manifest.json.
51
+ * @property {string|null} legacy_version_file Absolute path of the legacy .apt-version stamp, or null.
52
+ */
53
+ /**
54
+ * Return one install-surface descriptor per runtime in `RUNTIMES`.
55
+ *
56
+ * @param {string} projectDir
57
+ * @returns {SkillInstallSurface[]}
58
+ */
6
59
  export function getSkillInstallSurfaces(projectDir) {
7
60
  const root = resolve(projectDir);
8
- return [
9
- {
10
- host: 'claude-code',
11
- skills_dir: join(root, '.claude', 'skills'),
12
- },
13
- {
14
- host: 'codex',
15
- skills_dir: join(root, '.agents', 'skills'),
16
- },
17
- ].map((surface) => ({
18
- ...surface,
19
- version_file: join(surface.skills_dir, '.apt-version'),
20
- }));
61
+ return RUNTIMES.map((descriptor) => {
62
+ const install_root = join(root, descriptor.installRoot);
63
+ const legacyTopology = LEGACY_INSTALL_PATHS[descriptor.id];
64
+ const legacy_version_file = legacyTopology ? join(root, legacyTopology.version_file) : null;
65
+ return {
66
+ host: hostFor(descriptor.id),
67
+ runtime: descriptor.id,
68
+ install_root,
69
+ manifest_path: join(install_root, MANIFEST_FILENAME),
70
+ legacy_version_file,
71
+ };
72
+ });
21
73
  }
74
+ /**
75
+ * @typedef {Object} SkillInstallState
76
+ * @property {string} host
77
+ * @property {string} runtime
78
+ * @property {string} install_root
79
+ * @property {string} manifest_path
80
+ * @property {string|null} legacy_version_file
81
+ * @property {boolean} installed
82
+ * @property {string|null} installed_version
83
+ * @property {boolean} stale
84
+ * @property {'manifest' | 'manifest-malformed' | 'legacy_version_file' | null} source
85
+ */
86
+ /**
87
+ * Read each surface's install state. See the file header for the
88
+ * precedence rules.
89
+ *
90
+ * @param {string} projectDir
91
+ * @param {string} frameworkVersion
92
+ * @returns {SkillInstallState[]}
93
+ */
22
94
  export function readSkillInstallState(projectDir, frameworkVersion) {
23
95
  return getSkillInstallSurfaces(projectDir).map((surface) => {
24
- const installed_version = existsSync(surface.version_file)
25
- ? readFileSync(surface.version_file, 'utf-8').trim()
26
- : null;
96
+ const manifestExists = existsSync(surface.manifest_path);
97
+ if (manifestExists) {
98
+ const manifest = readManifest(surface.install_root);
99
+ if (manifest && typeof manifest.framework_version === 'string') {
100
+ return {
101
+ ...surface,
102
+ installed: true,
103
+ installed_version: manifest.framework_version,
104
+ stale: manifest.framework_version !== frameworkVersion,
105
+ source: /** @type {const} */ ('manifest'),
106
+ };
107
+ }
108
+ // Manifest file present but parser rejected it (malformed JSON,
109
+ // missing required fields, …). Don't silently report healthy.
110
+ return {
111
+ ...surface,
112
+ installed: true,
113
+ installed_version: null,
114
+ stale: true,
115
+ source: /** @type {const} */ ('manifest-malformed'),
116
+ };
117
+ }
118
+ if (surface.legacy_version_file && existsSync(surface.legacy_version_file)) {
119
+ try {
120
+ if (statSync(surface.legacy_version_file).isFile()) {
121
+ const version = readFileSync(surface.legacy_version_file, 'utf-8').trim();
122
+ return {
123
+ ...surface,
124
+ installed: true,
125
+ installed_version: version,
126
+ stale: version !== frameworkVersion,
127
+ source: /** @type {const} */ ('legacy_version_file'),
128
+ };
129
+ }
130
+ }
131
+ catch {
132
+ /* fall through to "not installed" */
133
+ }
134
+ }
27
135
  return {
28
136
  ...surface,
29
- installed: installed_version !== null,
30
- installed_version,
31
- stale: installed_version !== null && installed_version !== frameworkVersion,
137
+ installed: false,
138
+ installed_version: null,
139
+ stale: false,
140
+ source: null,
32
141
  };
33
142
  });
34
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installs.mjs","sourceRoot":"","sources":["../../../src/cli/util/skill-installs.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,UAAU,uBAAuB,CAAC,UAAU;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,OAAO;QACN;YACC,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;SAC3C;QACD;YACC,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;SAC3C;KACD,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,OAAO;QACV,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC;KACtD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAU,EAAE,gBAAgB;IACjE,OAAO,uBAAuB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1D,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YACzD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;YACpD,CAAC,CAAC,IAAI,CAAA;QACP,OAAO;YACN,GAAG,OAAO;YACV,SAAS,EAAE,iBAAiB,KAAK,IAAI;YACrC,iBAAiB;YACjB,KAAK,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,gBAAgB;SAC3E,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"skill-installs.mjs","sourceRoot":"","sources":["../../../src/cli/util/skill-installs.mjs"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Preflight check: is the installed kernel new enough to support the
3
+ * named feature?
4
+ *
5
+ * - Returns `null` when the install is at-or-above `introducedIn` (pass).
6
+ * - Returns `null` when `installedVersion` is malformed (fail-open — a
7
+ * corrupted `package.json` shouldn't lock users out of every cmd; the
8
+ * route-level drift check still catches the same install via the
9
+ * version mismatch path).
10
+ * - Returns a `version_drift` error envelope when the install predates
11
+ * `introducedIn`. Callers `exitWith(envelope, 1)`.
12
+ *
13
+ * @param {Object} args
14
+ * @param {string} args.feature Short name of the feature being gated.
15
+ * @param {string} args.introducedIn Minimum framework version that ships the feature.
16
+ * @param {string} args.installedVersion The installed kernel's version.
17
+ * @param {string} args.missingFlag The CLI flag that requires this version (e.g. '--payload-file').
18
+ * @returns {null | {
19
+ * status: 'error',
20
+ * command: 'version-preflight',
21
+ * error_code: 'version_drift',
22
+ * feature: string,
23
+ * introduced_in: string,
24
+ * installed_version: string,
25
+ * missing_flag: string,
26
+ * reason: string,
27
+ * }}
28
+ */
29
+ export function requireMinVersion({ feature, introducedIn, installedVersion, missingFlag }: {
30
+ feature: string;
31
+ introducedIn: string;
32
+ installedVersion: string;
33
+ missingFlag: string;
34
+ }): null | {
35
+ status: "error";
36
+ command: "version-preflight";
37
+ error_code: "version_drift";
38
+ feature: string;
39
+ introduced_in: string;
40
+ installed_version: string;
41
+ missing_flag: string;
42
+ reason: string;
43
+ };
44
+ //# sourceMappingURL=version-preflight.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-preflight.d.mts","sourceRoot":"","sources":["../../../src/cli/util/version-preflight.mjs"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,4FAfG;IAAqB,OAAO,EAApB,MAAM;IACO,YAAY,EAAzB,MAAM;IACO,gBAAgB,EAA7B,MAAM;IACO,WAAW,EAAxB,MAAM;CACd,GAAU,IAAI,GAAG;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAmBH"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * util/version-preflight.mjs — FRAMEWORK-BUG-017 (rung 2 of 3).
3
+ *
4
+ * Pure helper for cmds that depend on a flag / behavior introduced in a
5
+ * specific framework version. When the installed kernel predates that
6
+ * version, returning a structured `version_drift` envelope is strictly
7
+ * better than the silent infra-backoff loop that bit us in
8
+ * FRAMEWORK-BUG-010.
9
+ *
10
+ * Scope (Codex review edit 1): this is a **future-guard** for the next
11
+ * framework fix that introduces a new flag. A stale 0.6.6 install
12
+ * obviously cannot execute 0.6.8 preflight code (the helper doesn't
13
+ * exist there). The actual catch-point for already-stale installs is
14
+ * the route-side `detectSourceWorkspaceDrift`. This helper makes the
15
+ * NEXT bug bundle cheaper to ship safely.
16
+ */
17
+ import { compareVersions, SEMVER_RE } from './semver.mjs';
18
+ /**
19
+ * Preflight check: is the installed kernel new enough to support the
20
+ * named feature?
21
+ *
22
+ * - Returns `null` when the install is at-or-above `introducedIn` (pass).
23
+ * - Returns `null` when `installedVersion` is malformed (fail-open — a
24
+ * corrupted `package.json` shouldn't lock users out of every cmd; the
25
+ * route-level drift check still catches the same install via the
26
+ * version mismatch path).
27
+ * - Returns a `version_drift` error envelope when the install predates
28
+ * `introducedIn`. Callers `exitWith(envelope, 1)`.
29
+ *
30
+ * @param {Object} args
31
+ * @param {string} args.feature Short name of the feature being gated.
32
+ * @param {string} args.introducedIn Minimum framework version that ships the feature.
33
+ * @param {string} args.installedVersion The installed kernel's version.
34
+ * @param {string} args.missingFlag The CLI flag that requires this version (e.g. '--payload-file').
35
+ * @returns {null | {
36
+ * status: 'error',
37
+ * command: 'version-preflight',
38
+ * error_code: 'version_drift',
39
+ * feature: string,
40
+ * introduced_in: string,
41
+ * installed_version: string,
42
+ * missing_flag: string,
43
+ * reason: string,
44
+ * }}
45
+ */
46
+ export function requireMinVersion({ feature, introducedIn, installedVersion, missingFlag }) {
47
+ if (!installedVersion || typeof installedVersion !== 'string')
48
+ return null;
49
+ if (!SEMVER_RE.test(installedVersion))
50
+ return null;
51
+ if (!SEMVER_RE.test(introducedIn))
52
+ return null;
53
+ if (compareVersions(installedVersion, introducedIn) >= 0)
54
+ return null;
55
+ return {
56
+ status: 'error',
57
+ command: 'version-preflight',
58
+ error_code: 'version_drift',
59
+ feature,
60
+ introduced_in: introducedIn,
61
+ installed_version: installedVersion,
62
+ missing_flag: missingFlag,
63
+ reason: `cmd needs feature ${feature} introduced in version ${introducedIn}; installed version is ${installedVersion} — run /apt:update`,
64
+ };
65
+ }
66
+ //# sourceMappingURL=version-preflight.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-preflight.mjs","sourceRoot":"","sources":["../../../src/cli/util/version-preflight.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE;IACzF,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IAE9C,IAAI,eAAe,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAErE,OAAO;QACN,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,eAAe;QAC3B,OAAO;QACP,aAAa,EAAE,YAAY;QAC3B,iBAAiB,EAAE,gBAAgB;QACnC,YAAY,EAAE,WAAW;QACzB,MAAM,EAAE,qBAAqB,OAAO,0BAA0B,YAAY,0BAA0B,gBAAgB,oBAAoB;KACxI,CAAA;AACF,CAAC"}
@@ -194,18 +194,22 @@ export interface TddConfig {
194
194
  * `mode` is the persisted default render mode — `file` writes a local
195
195
  * `.excalidraw` JSON, `mcp` dispatches to a live Excalidraw MCP canvas.
196
196
  * The skill's `--mode=...` invocation flag overrides this at call time.
197
+ * Lives in the shared `.aperant/config.json` (team-shared policy).
197
198
  *
198
- * `mcpConsent` is the per-host consent record for MCP mode. Default
199
- * `null` means no host has been granted consent yet — the skill must
200
- * prompt and persist on the first MCP-mode invocation. The same host
201
- * does not re-prompt; a different host invalidates the existing record
202
- * and re-prompts.
199
+ * `mcpConsent` is the per-host consent record for MCP mode. Per
200
+ * FRAMEWORK-AUDIT-001, this field is per-user state and is persisted to
201
+ * the gitignored `.aperant/config.local.json` NOT the shared
202
+ * `config.json`. It surfaces on `DiagramConfig` because callers read the
203
+ * MERGED config (via `loadMergedProjectConfig`); the optional `?` marks
204
+ * that the field is absent until the user records a consent decision.
205
+ * The same host does not re-prompt; a different host invalidates the
206
+ * existing record and re-prompts.
203
207
  */
204
208
  export interface DiagramConfig {
205
209
  /** Resolved default render mode (overridable per-call by --mode=...) */
206
210
  mode: 'file' | 'mcp';
207
- /** Per-host MCP consent record; null means not yet asked */
208
- mcpConsent: {
211
+ /** Per-host MCP consent record from config.local.json; absent until first decision */
212
+ mcpConsent?: {
209
213
  host: string;
210
214
  decision: 'granted' | 'denied';
211
215
  grantedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}