@jevitate/cli 0.7.0 → 0.9.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 (263) hide show
  1. package/dist/ai-cli.d.ts +3 -1
  2. package/dist/ai-cli.js +60 -16
  3. package/dist/ai-cli.js.map +1 -1
  4. package/dist/approval-provenance.d.ts +136 -0
  5. package/dist/approval-provenance.js +317 -0
  6. package/dist/approval-provenance.js.map +1 -0
  7. package/dist/author-journey-cli.js +4 -2
  8. package/dist/author-journey-cli.js.map +1 -1
  9. package/dist/bin.js +30544 -20851
  10. package/dist/browser-cli.d.ts +10 -0
  11. package/dist/browser-cli.js +50 -0
  12. package/dist/browser-cli.js.map +1 -0
  13. package/dist/build-info.generated.js +2 -2
  14. package/dist/builtin-analyzers.d.ts +7 -0
  15. package/dist/builtin-analyzers.js +19 -0
  16. package/dist/builtin-analyzers.js.map +1 -0
  17. package/dist/campaign-cli.d.ts +6 -0
  18. package/dist/campaign-cli.js +9 -4
  19. package/dist/campaign-cli.js.map +1 -1
  20. package/dist/catalog-analysis.d.ts +70 -0
  21. package/dist/catalog-analysis.js +507 -0
  22. package/dist/catalog-analysis.js.map +1 -0
  23. package/dist/catalog-api.d.ts +73 -0
  24. package/dist/catalog-api.js +97 -0
  25. package/dist/catalog-api.js.map +1 -0
  26. package/dist/catalog-cli.d.ts +12 -0
  27. package/dist/catalog-cli.js +224 -0
  28. package/dist/catalog-cli.js.map +1 -0
  29. package/dist/catalog-review.d.ts +29 -0
  30. package/dist/catalog-review.js +290 -0
  31. package/dist/catalog-review.js.map +1 -0
  32. package/dist/catalog.d.ts +133 -0
  33. package/dist/catalog.js +352 -0
  34. package/dist/catalog.js.map +1 -0
  35. package/dist/change-context.d.ts +44 -0
  36. package/dist/change-context.js +203 -0
  37. package/dist/change-context.js.map +1 -0
  38. package/dist/check-api.d.ts +1 -1
  39. package/dist/check-api.js +68 -9
  40. package/dist/check-api.js.map +1 -1
  41. package/dist/check-cli.d.ts +5 -1
  42. package/dist/check-cli.js +64 -10
  43. package/dist/check-cli.js.map +1 -1
  44. package/dist/check-execute.d.ts +16 -1
  45. package/dist/check-execute.js +78 -31
  46. package/dist/check-execute.js.map +1 -1
  47. package/dist/check-plan.d.ts +14 -0
  48. package/dist/check-plan.js +28 -2
  49. package/dist/check-plan.js.map +1 -1
  50. package/dist/check-suite.js +6 -3
  51. package/dist/check-suite.js.map +1 -1
  52. package/dist/check-types.d.ts +51 -6
  53. package/dist/check-types.js +8 -0
  54. package/dist/check-types.js.map +1 -1
  55. package/dist/cli-output.js +85 -5
  56. package/dist/cli-output.js.map +1 -1
  57. package/dist/cli-shared.d.ts +22 -2
  58. package/dist/cli-shared.js +34 -5
  59. package/dist/cli-shared.js.map +1 -1
  60. package/dist/demo-aspect-api.d.ts +15 -0
  61. package/dist/demo-aspect-api.js +26 -1
  62. package/dist/demo-aspect-api.js.map +1 -1
  63. package/dist/demo-aspect-cli.js +64 -5
  64. package/dist/demo-aspect-cli.js.map +1 -1
  65. package/dist/exit-codes.d.ts +6 -3
  66. package/dist/exit-codes.js +13 -3
  67. package/dist/exit-codes.js.map +1 -1
  68. package/dist/explore-adversarial.d.ts +3 -1
  69. package/dist/explore-adversarial.js +4 -4
  70. package/dist/explore-adversarial.js.map +1 -1
  71. package/dist/explore-author.js +5 -2
  72. package/dist/explore-author.js.map +1 -1
  73. package/dist/explore-cli.js +145 -9
  74. package/dist/explore-cli.js.map +1 -1
  75. package/dist/explore-coverage.d.ts +6 -2
  76. package/dist/explore-coverage.js +7 -6
  77. package/dist/explore-coverage.js.map +1 -1
  78. package/dist/explore-feature.d.ts +3 -1
  79. package/dist/explore-feature.js +5 -5
  80. package/dist/explore-feature.js.map +1 -1
  81. package/dist/explore-goal.d.ts +37 -6
  82. package/dist/explore-goal.js +69 -50
  83. package/dist/explore-goal.js.map +1 -1
  84. package/dist/explore-shared.d.ts +12 -7
  85. package/dist/explore-shared.js +9 -1
  86. package/dist/explore-shared.js.map +1 -1
  87. package/dist/findings-filing.d.ts +6 -0
  88. package/dist/findings-filing.js +15 -1
  89. package/dist/findings-filing.js.map +1 -1
  90. package/dist/goal-run-flags.d.ts +2 -0
  91. package/dist/goal-run-flags.js +8 -1
  92. package/dist/goal-run-flags.js.map +1 -1
  93. package/dist/heal-probe-guard.d.ts +9 -0
  94. package/dist/heal-probe-guard.js +113 -0
  95. package/dist/heal-probe-guard.js.map +1 -0
  96. package/dist/host-health-run.d.ts +32 -1
  97. package/dist/host-health-run.js +38 -1
  98. package/dist/host-health-run.js.map +1 -1
  99. package/dist/http-5xx-outcome.d.ts +8 -3
  100. package/dist/http-5xx-outcome.js +5 -15
  101. package/dist/http-5xx-outcome.js.map +1 -1
  102. package/dist/init-cli.d.ts +7 -0
  103. package/dist/init-cli.js +79 -9
  104. package/dist/init-cli.js.map +1 -1
  105. package/dist/init-codeowners.d.ts +39 -0
  106. package/dist/init-codeowners.js +91 -0
  107. package/dist/init-codeowners.js.map +1 -0
  108. package/dist/init-keys.d.ts +3 -1
  109. package/dist/init-keys.js +20 -8
  110. package/dist/init-keys.js.map +1 -1
  111. package/dist/init-skills.d.ts +85 -7
  112. package/dist/init-skills.js +303 -36
  113. package/dist/init-skills.js.map +1 -1
  114. package/dist/jev-advisor.d.ts +72 -0
  115. package/dist/jev-advisor.js +172 -0
  116. package/dist/jev-advisor.js.map +1 -0
  117. package/dist/journey-api.d.ts +76 -5
  118. package/dist/journey-api.js +238 -29
  119. package/dist/journey-api.js.map +1 -1
  120. package/dist/journey-cli.js +257 -23
  121. package/dist/journey-cli.js.map +1 -1
  122. package/dist/journey-heal.d.ts +74 -0
  123. package/dist/journey-heal.js +180 -0
  124. package/dist/journey-heal.js.map +1 -0
  125. package/dist/journey-network-checks.d.ts +5 -1
  126. package/dist/journey-network-checks.js +15 -4
  127. package/dist/journey-network-checks.js.map +1 -1
  128. package/dist/journey-prefix.js +2 -2
  129. package/dist/journey-prefix.js.map +1 -1
  130. package/dist/journey-proposal-store.d.ts +100 -0
  131. package/dist/journey-proposal-store.js +342 -0
  132. package/dist/journey-proposal-store.js.map +1 -0
  133. package/dist/journey-result-record.d.ts +40 -0
  134. package/dist/journey-result-record.js +28 -0
  135. package/dist/journey-result-record.js.map +1 -0
  136. package/dist/journey-review-api.d.ts +19 -0
  137. package/dist/journey-review-api.js +53 -0
  138. package/dist/journey-review-api.js.map +1 -0
  139. package/dist/journey-review-store.d.ts +16 -0
  140. package/dist/journey-review-store.js +95 -0
  141. package/dist/journey-review-store.js.map +1 -0
  142. package/dist/journey-review.d.ts +54 -0
  143. package/dist/journey-review.js +538 -0
  144. package/dist/journey-review.js.map +1 -0
  145. package/dist/journey-verify.js +14 -1
  146. package/dist/journey-verify.js.map +1 -1
  147. package/dist/key-report.d.ts +20 -5
  148. package/dist/key-report.js +32 -9
  149. package/dist/key-report.js.map +1 -1
  150. package/dist/kill-signal.js +10 -2
  151. package/dist/kill-signal.js.map +1 -1
  152. package/dist/launch-armed.js +5 -1
  153. package/dist/launch-armed.js.map +1 -1
  154. package/dist/load-cli.js +4 -2
  155. package/dist/load-cli.js.map +1 -1
  156. package/dist/log-classes.d.ts +73 -0
  157. package/dist/log-classes.js +167 -0
  158. package/dist/log-classes.js.map +1 -0
  159. package/dist/log-correlation.d.ts +29 -10
  160. package/dist/log-correlation.js +44 -21
  161. package/dist/log-correlation.js.map +1 -1
  162. package/dist/login-cli.d.ts +17 -0
  163. package/dist/login-cli.js +161 -0
  164. package/dist/login-cli.js.map +1 -0
  165. package/dist/logs-cli.js +3 -1
  166. package/dist/logs-cli.js.map +1 -1
  167. package/dist/mcp-api.d.ts +6 -1
  168. package/dist/mcp-api.js +110 -16
  169. package/dist/mcp-api.js.map +1 -1
  170. package/dist/mcp-cli-runner.d.ts +2 -0
  171. package/dist/mcp-cli-runner.js +3 -1
  172. package/dist/mcp-cli-runner.js.map +1 -1
  173. package/dist/mcp-cli-tools.d.ts +5 -0
  174. package/dist/mcp-cli-tools.js +178 -23
  175. package/dist/mcp-cli-tools.js.map +1 -1
  176. package/dist/mission-cli.js +8 -4
  177. package/dist/mission-cli.js.map +1 -1
  178. package/dist/mission-journal.d.ts +4 -1
  179. package/dist/mission-journal.js +9 -3
  180. package/dist/mission-journal.js.map +1 -1
  181. package/dist/mission-queue-cli.js +21 -2
  182. package/dist/mission-queue-cli.js.map +1 -1
  183. package/dist/mission-queue-runner.d.ts +6 -0
  184. package/dist/mission-queue-runner.js +33 -3
  185. package/dist/mission-queue-runner.js.map +1 -1
  186. package/dist/multi-run-cli.d.ts +7 -1
  187. package/dist/multi-run-cli.js +10 -3
  188. package/dist/multi-run-cli.js.map +1 -1
  189. package/dist/multi-run.d.ts +44 -8
  190. package/dist/multi-run.js +118 -25
  191. package/dist/multi-run.js.map +1 -1
  192. package/dist/persona-login.d.ts +256 -0
  193. package/dist/persona-login.js +884 -0
  194. package/dist/persona-login.js.map +1 -0
  195. package/dist/pre-approval.d.ts +98 -0
  196. package/dist/pre-approval.js +175 -0
  197. package/dist/pre-approval.js.map +1 -0
  198. package/dist/program.js +12 -0
  199. package/dist/program.js.map +1 -1
  200. package/dist/project-dir.d.ts +2 -1
  201. package/dist/project-dir.js +3 -1
  202. package/dist/project-dir.js.map +1 -1
  203. package/dist/readiness.d.ts +29 -0
  204. package/dist/readiness.js +291 -0
  205. package/dist/readiness.js.map +1 -0
  206. package/dist/regression-cli.js +4 -2
  207. package/dist/regression-cli.js.map +1 -1
  208. package/dist/report-api.d.ts +25 -2
  209. package/dist/report-api.js +34 -5
  210. package/dist/report-api.js.map +1 -1
  211. package/dist/report-cli.js +8 -1
  212. package/dist/report-cli.js.map +1 -1
  213. package/dist/resource-preflight.js +5 -3
  214. package/dist/resource-preflight.js.map +1 -1
  215. package/dist/result-schema.d.ts +12 -0
  216. package/dist/result-schema.js +8 -0
  217. package/dist/result-schema.js.map +1 -1
  218. package/dist/run-index.d.ts +4 -2
  219. package/dist/run-index.js +3 -1
  220. package/dist/run-index.js.map +1 -1
  221. package/dist/run-key-preflight.d.ts +2 -1
  222. package/dist/run-key-preflight.js +3 -2
  223. package/dist/run-key-preflight.js.map +1 -1
  224. package/dist/run-metadata.d.ts +29 -0
  225. package/dist/run-metadata.js +48 -0
  226. package/dist/run-metadata.js.map +1 -0
  227. package/dist/run-tags-cli.d.ts +14 -0
  228. package/dist/run-tags-cli.js +41 -0
  229. package/dist/run-tags-cli.js.map +1 -0
  230. package/dist/self-heal-adapter.d.ts +43 -27
  231. package/dist/self-heal-adapter.js +196 -62
  232. package/dist/self-heal-adapter.js.map +1 -1
  233. package/dist/site-cli.d.ts +1 -1
  234. package/dist/site-cli.js +24 -1
  235. package/dist/site-cli.js.map +1 -1
  236. package/dist/source-cli.js +9 -5
  237. package/dist/source-cli.js.map +1 -1
  238. package/dist/suite-explore-options.d.ts +14 -0
  239. package/dist/suite-explore-options.js +8 -0
  240. package/dist/suite-explore-options.js.map +1 -1
  241. package/dist/sweep-api.d.ts +289 -0
  242. package/dist/sweep-api.js +859 -0
  243. package/dist/sweep-api.js.map +1 -0
  244. package/dist/sweep-cli.d.ts +9 -0
  245. package/dist/sweep-cli.js +117 -0
  246. package/dist/sweep-cli.js.map +1 -0
  247. package/dist/target-config.d.ts +5 -2
  248. package/dist/target-config.js +15 -0
  249. package/dist/target-config.js.map +1 -1
  250. package/dist/ux-cli.js +3 -1
  251. package/dist/ux-cli.js.map +1 -1
  252. package/dist/ux-usability.d.ts +9 -3
  253. package/dist/ux-usability.js +8 -5
  254. package/dist/ux-usability.js.map +1 -1
  255. package/dist/verify-fix-cli.js +4 -2
  256. package/dist/verify-fix-cli.js.map +1 -1
  257. package/package.json +9 -9
  258. package/skills/jevitate-ci-check/SKILL.md +9 -1
  259. package/skills/jevitate-demo/SKILL.md +5 -2
  260. package/skills/jevitate-getting-started/SKILL.md +14 -1
  261. package/skills/jevitate-mission-scope/SKILL.md +2 -2
  262. package/skills/jevitate-run-journey/SKILL.md +42 -9
  263. package/skills/jevitate-test-campaign/SKILL.md +26 -5
@@ -1 +1 @@
1
- {"version":3,"file":"init-cli.js","sourceRoot":"","sources":["../src/init-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-cli.js","sourceRoot":"","sources":["../src/init-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * #437 — `jevitate init --codeowners <owners>`: a marked CODEOWNERS block that makes the approval
3
+ * records (`.jevitate/journeys/`, `.jevitate/personas.json`, `.jevitate/jobs.json`) need a code
4
+ * owner's review. With branch protection requiring code-owner review on the forge, no approval
5
+ * change — a promoted Journey, an approved persona or job, a waiver — merges without a person.
6
+ * That is the enforcement layer; provenance and the TTY confirmation only detect and add friction.
7
+ *
8
+ * The block follows #431's marker rules (init-skills.ts `mergeMarkedBlock`): replaced in place on a
9
+ * re-run (idempotent), appended otherwise, refused when its markers are malformed.
10
+ */
11
+ export declare const CODEOWNERS_BLOCK_BEGIN = "# BEGIN JEVITATE CODEOWNERS v1";
12
+ export declare const CODEOWNERS_BLOCK_END = "# END JEVITATE CODEOWNERS v1";
13
+ /** Where GitHub and GitLab look for CODEOWNERS, in GitHub's order; a new file goes in the first. */
14
+ export declare const CODEOWNERS_LOCATIONS: readonly string[];
15
+ /** A bad `--codeowners` value, or no git repository to write it in. Exit 64. */
16
+ export declare class CodeownersArgsError extends Error {
17
+ readonly code = "E_INIT_CODEOWNERS_ARGS";
18
+ }
19
+ /** `--codeowners "@org/team @alice"` (spaces or commas) → the owners; refused when empty or malformed. */
20
+ export declare function parseOwners(value: string): string[];
21
+ /** The block's lines for a `.jevitate/` at `dataDir` (repo-relative, `/`-separated, anchored at the root). */
22
+ export declare function renderCodeownersBlock(owners: readonly string[], dataDir: string): string;
23
+ export interface CodeownersReport {
24
+ /** The CODEOWNERS file written (or that would be, with --dry-run). */
25
+ readonly path: string;
26
+ readonly action: "create" | "update" | "unchanged";
27
+ readonly owners: readonly string[];
28
+ /** Always set: CODEOWNERS only enforces with branch protection on the forge. */
29
+ readonly note: string;
30
+ }
31
+ export declare const BRANCH_PROTECTION_NOTE = "CODEOWNERS enforces nothing alone: enable branch protection on the default branch with \"Require a pull request\" and \"Require review from Code Owners\" (GitHub; GitLab: \"Code owner approval\" on protected branches), and run `jevitate check --require-approvals` in CI";
32
+ /**
33
+ * Writes or merges the block into the repository's CODEOWNERS (an existing one in `.github/`, the
34
+ * root, `docs/` or `.gitlab/`; else `.github/CODEOWNERS`). `cwd` must be inside a git repository;
35
+ * the `.jevitate/` it covers is the one `jevitate init` creates in `cwd`.
36
+ */
37
+ export declare function installCodeowners(cwd: string, ownersValue: string, opts?: {
38
+ readonly dryRun?: boolean;
39
+ }): Promise<CodeownersReport>;
@@ -0,0 +1,91 @@
1
+ import { existsSync } from "node:fs";
2
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
3
+ import { dirname, join, relative, sep } from "node:path";
4
+ import { findGitRoot } from "./project-dir.js";
5
+ import { SkillsBlockMarkerError, mergeMarkedBlock } from "./init-skills.js";
6
+ /**
7
+ * #437 — `jevitate init --codeowners <owners>`: a marked CODEOWNERS block that makes the approval
8
+ * records (`.jevitate/journeys/`, `.jevitate/personas.json`, `.jevitate/jobs.json`) need a code
9
+ * owner's review. With branch protection requiring code-owner review on the forge, no approval
10
+ * change — a promoted Journey, an approved persona or job, a waiver — merges without a person.
11
+ * That is the enforcement layer; provenance and the TTY confirmation only detect and add friction.
12
+ *
13
+ * The block follows #431's marker rules (init-skills.ts `mergeMarkedBlock`): replaced in place on a
14
+ * re-run (idempotent), appended otherwise, refused when its markers are malformed.
15
+ */
16
+ export const CODEOWNERS_BLOCK_BEGIN = "# BEGIN JEVITATE CODEOWNERS v1";
17
+ export const CODEOWNERS_BLOCK_END = "# END JEVITATE CODEOWNERS v1";
18
+ const MARKERS = { begin: /# BEGIN JEVITATE CODEOWNERS v\d+[^\n]*/, end: /# END JEVITATE CODEOWNERS v\d+/, label: "JEVITATE CODEOWNERS" };
19
+ /** Where GitHub and GitLab look for CODEOWNERS, in GitHub's order; a new file goes in the first. */
20
+ export const CODEOWNERS_LOCATIONS = [join(".github", "CODEOWNERS"), "CODEOWNERS", join("docs", "CODEOWNERS"), join(".gitlab", "CODEOWNERS")];
21
+ /** A bad `--codeowners` value, or no git repository to write it in. Exit 64. */
22
+ export class CodeownersArgsError extends Error {
23
+ code = "E_INIT_CODEOWNERS_ARGS";
24
+ }
25
+ /** `@user`, `@org/team`, or an email — what a CODEOWNERS line takes. */
26
+ const OWNER_RE = /^(@[A-Za-z0-9](?:[A-Za-z0-9_.-]*[A-Za-z0-9])?(?:\/[A-Za-z0-9](?:[A-Za-z0-9_.-]*[A-Za-z0-9])?)?|[^\s@]+@[^\s@]+\.[^\s@]+)$/;
27
+ /** `--codeowners "@org/team @alice"` (spaces or commas) → the owners; refused when empty or malformed. */
28
+ export function parseOwners(value) {
29
+ const owners = value
30
+ .split(/[\s,]+/)
31
+ .map((o) => o.trim())
32
+ .filter((o) => o !== "");
33
+ if (owners.length === 0)
34
+ throw new CodeownersArgsError('--codeowners needs at least one owner: "@user", "@org/team" or an email');
35
+ for (const o of owners) {
36
+ if (!OWNER_RE.test(o))
37
+ throw new CodeownersArgsError(`--codeowners: '${o}' is not a code owner ("@user", "@org/team" or an email)`);
38
+ }
39
+ return [...new Set(owners)];
40
+ }
41
+ /** The block's lines for a `.jevitate/` at `dataDir` (repo-relative, `/`-separated, anchored at the root). */
42
+ export function renderCodeownersBlock(owners, dataDir) {
43
+ const base = dataDir === "" ? "/.jevitate" : `/${dataDir}/.jevitate`;
44
+ const who = owners.join(" ");
45
+ return [
46
+ CODEOWNERS_BLOCK_BEGIN,
47
+ "# jevitate approvals (#437): promoted Journeys, catalog personas and jobs, and their approval",
48
+ "# records need a code owner's review. Enable branch protection with \"Require review from Code",
49
+ "# Owners\" on the forge, or this block is advisory. Later rules in this file override these.",
50
+ `${base}/journeys/ ${who}`,
51
+ `${base}/personas.json ${who}`,
52
+ `${base}/jobs.json ${who}`,
53
+ CODEOWNERS_BLOCK_END,
54
+ ].join("\n");
55
+ }
56
+ export const BRANCH_PROTECTION_NOTE = 'CODEOWNERS enforces nothing alone: enable branch protection on the default branch with "Require a pull request" and "Require review from Code Owners" (GitHub; GitLab: "Code owner approval" on protected branches), and run `jevitate check --require-approvals` in CI';
57
+ /**
58
+ * Writes or merges the block into the repository's CODEOWNERS (an existing one in `.github/`, the
59
+ * root, `docs/` or `.gitlab/`; else `.github/CODEOWNERS`). `cwd` must be inside a git repository;
60
+ * the `.jevitate/` it covers is the one `jevitate init` creates in `cwd`.
61
+ */
62
+ export async function installCodeowners(cwd, ownersValue, opts = {}) {
63
+ const owners = parseOwners(ownersValue);
64
+ const root = findGitRoot(cwd);
65
+ if (root === null)
66
+ throw new CodeownersArgsError("--codeowners needs a git repository: run `jevitate init --codeowners` inside the repository whose .jevitate/ it covers");
67
+ const rel = relative(root, cwd).split(sep).filter((p) => p !== "").join("/");
68
+ if (rel.startsWith(".."))
69
+ throw new CodeownersArgsError(`--codeowners: ${cwd} is not inside ${root}`);
70
+ const existing = CODEOWNERS_LOCATIONS.map((l) => join(root, l)).find((p) => existsSync(p));
71
+ const path = existing ?? join(root, CODEOWNERS_LOCATIONS[0]);
72
+ const before = existing === undefined ? "" : await readFile(existing, "utf8");
73
+ let after;
74
+ try {
75
+ after = mergeMarkedBlock(before, renderCodeownersBlock(owners, rel), MARKERS);
76
+ }
77
+ catch (err) {
78
+ if (err instanceof SkillsBlockMarkerError)
79
+ throw new CodeownersArgsError(`${path}: ${err.reason}`);
80
+ throw err;
81
+ }
82
+ if (!after.endsWith("\n"))
83
+ after += "\n";
84
+ const action = existing === undefined ? "create" : after === before ? "unchanged" : "update";
85
+ if (opts.dryRun !== true && action !== "unchanged") {
86
+ await mkdir(dirname(path), { recursive: true });
87
+ await writeFile(path, after, "utf8");
88
+ }
89
+ return { path, action, owners, note: BRANCH_PROTECTION_NOTE };
90
+ }
91
+ //# sourceMappingURL=init-codeowners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-codeowners.js","sourceRoot":"","sources":["../src/init-codeowners.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type CredentialStore, type SecureKeyIO, type Feature, type CredentialKey } from "@jevitate/ai-core";
1
+ import { type CredentialStore, type SecureKeyIO, type Feature, type CredentialKey, type JevProvider } from "@jevitate/ai-core";
2
2
  import type { KeySourceReport, KeyVerificationReport } from "./key-report.js";
3
3
  export interface FeatureKeyReport {
4
4
  required: CredentialKey[];
@@ -31,6 +31,8 @@ export interface CollectAllMissingKeysOptions {
31
31
  replace?: boolean;
32
32
  /** #291: checks each entered value before it is persisted (throws to refuse it). */
33
33
  check?: (key: CredentialKey, value: string) => Promise<void>;
34
+ /** #429: the Jev provider override (`JEVITATE_JEV_PROVIDER`) — which key judgment needs. */
35
+ jevProvider?: JevProvider;
34
36
  }
35
37
  /**
36
38
  * Thin orchestration over the existing, already-guardrailed `collectMissingKeys`
package/dist/init-keys.js CHANGED
@@ -1,4 +1,4 @@
1
- import { collectKeys, FEATURE_KEYS, } from "@jevitate/ai-core";
1
+ import { collectKeys, featureKeys, } from "@jevitate/ai-core";
2
2
  const FEATURES = ["generation", "judgment"];
3
3
  /**
4
4
  * Thin orchestration over the existing, already-guardrailed `collectMissingKeys`
@@ -10,20 +10,32 @@ const FEATURES = ["generation", "judgment"];
10
10
  export async function collectAllMissingKeys(store, io, opts = {}) {
11
11
  const report = {};
12
12
  const interactive = opts.interactive ?? true;
13
+ // #429: a key entered for an earlier feature counts as configured for a later one — the OpenRouter
14
+ // key just entered for generation also satisfies judgment (Jev through OpenRouter), so it is not
15
+ // asked for a TypeSafe key too.
16
+ const entered = new Set();
17
+ const view = { detect: (k) => entered.has(k) || store.detect(k), read: (k) => store.read(k) };
13
18
  for (const feature of FEATURES) {
14
- const required = [...FEATURE_KEYS[feature]];
19
+ const required = featureKeys(feature, view, opts.jevProvider);
15
20
  if (interactive) {
16
- const collected = await collectKeys(feature, store, io, {
17
- ...(opts.replace === true ? { replace: true } : {}),
18
- ...(opts.check === undefined ? {} : { check: opts.check }),
19
- });
20
- report[feature] = { required, collected };
21
+ // `--replace-keys`: a key already re-entered for an earlier feature is not asked for twice.
22
+ const alreadyEntered = opts.replace === true && required.every((k) => entered.has(k));
23
+ const collected = alreadyEntered
24
+ ? []
25
+ : await collectKeys(feature, view, io, {
26
+ ...(opts.replace === true ? { replace: true } : {}),
27
+ ...(opts.check === undefined ? {} : { check: opts.check }),
28
+ ...(opts.jevProvider === undefined ? {} : { jevProvider: opts.jevProvider }),
29
+ });
30
+ for (const k of collected)
31
+ entered.add(k);
32
+ report[feature] = { required: featureKeys(feature, view, opts.jevProvider), collected };
21
33
  }
22
34
  else {
23
35
  // Never prompt: report what's still missing instead of hanging on a closed stdin. `missing`
24
36
  // is omitted (not an empty array) when nothing is missing, so a fully-configured non-TTY
25
37
  // run reads identically to the interactive path's `{ required, collected: [] }`.
26
- const missing = required.filter((k) => !store.detect(k));
38
+ const missing = required.filter((k) => !view.detect(k));
27
39
  report[feature] = { required, collected: [], ...(missing.length > 0 ? { missing } : {}) };
28
40
  }
29
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init-keys.js","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,QAAQ,GAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAiBvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAsB,EACtB,EAAe,EACf,OAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,EAAyB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC3D,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,yFAAyF;YACzF,iFAAiF;YACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"init-keys.js","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,GAMZ,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,QAAQ,GAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAmBvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAsB,EACtB,EAAe,EACf,OAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,EAAyB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,mGAAmG;IACnG,iGAAiG;IACjG,gCAAgC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,MAAM,IAAI,GAAoB,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,4FAA4F;YAC5F,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,SAAS,GAAG,cAAc;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;oBACnC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC1D,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;iBAC7E,CAAC,CAAC;YACP,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,yFAAyF;YACzF,iFAAiF;YACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -20,9 +20,10 @@ export interface InstallTargetPaths {
20
20
  cursorRulesDir: string;
21
21
  genericAgentsFile: string;
22
22
  genericSkillsDir: string;
23
+ claudeMdFile: string;
23
24
  }
24
25
  export declare function resolveInstallTargetPaths(deps?: DetectionDeps): InstallTargetPaths;
25
- export type InstallAction = "create" | "update" | "unchanged" | "skip-user-modified" | "force-update";
26
+ export type InstallAction = "create" | "update" | "unchanged" | "skip-user-modified" | "force-update" | "refuse-malformed";
26
27
  /**
27
28
  * Decides what to do with one whole-file target. Never writes. A target whose
28
29
  * current on-disk hash does not match the hash `init` last recorded (or was
@@ -35,11 +36,46 @@ export declare function planFileInstall(targetPath: string, newContent: string,
35
36
  export declare function applyFileInstall(targetPath: string, content: string, action: InstallAction): Promise<void>;
36
37
  export declare const SKILLS_BLOCK_BEGIN = "<!-- BEGIN JEVITATE SKILLS v1 -->";
37
38
  export declare const SKILLS_BLOCK_END = "<!-- END JEVITATE SKILLS v1 -->";
39
+ /** Matches a BEGIN marker of ANY version, plus any trailing attributes (#431). */
40
+ export declare const SKILLS_BLOCK_BEGIN_RE: RegExp;
41
+ /** Matches an END marker of ANY version (#431). */
42
+ export declare const SKILLS_BLOCK_END_RE: RegExp;
43
+ /** Raised when a file's marker pair is malformed (missing, duplicated, or misordered). */
44
+ export declare class SkillsBlockMarkerError extends Error {
45
+ readonly reason: string;
46
+ constructor(reason: string);
47
+ }
48
+ export type SkillsBlockLocation = {
49
+ kind: "none";
50
+ } | {
51
+ kind: "block";
52
+ start: number;
53
+ end: number;
54
+ } | {
55
+ kind: "malformed";
56
+ reason: string;
57
+ };
58
+ /** #437: a marked block's BEGIN/END markers (any version) and its name in fix-it messages. */
59
+ export interface BlockMarkers {
60
+ readonly begin: RegExp;
61
+ readonly end: RegExp;
62
+ /** e.g. `JEVITATE SKILLS`. */
63
+ readonly label: string;
64
+ }
65
+ /**
66
+ * Locates the Jevitate skills block in `content`, version-agnostically (#431).
67
+ * `none` when no marker is present; `malformed` (with a fix-it reason) when the
68
+ * markers are missing, duplicated, or misordered; otherwise `block` with the
69
+ * BEGIN-line-start..END-marker-end span.
70
+ */
71
+ export declare function findSkillsBlock(content: string): SkillsBlockLocation;
38
72
  type BlockSkill = Pick<ResolvedSkill, "id" | "name" | "description" | "body">;
39
73
  export interface RenderBlockOptions {
40
74
  mode: "inline" | "reference";
41
75
  /** Required for reference mode: where the Claude-Code copies live. */
42
76
  claudeSkillsDir?: string;
77
+ /** When set, the BEGIN marker carries a `jevitate@<version>` stamp (#431). */
78
+ jevitateVersion?: string;
43
79
  }
44
80
  /**
45
81
  * Renders the marked block that Codex/generic `AGENTS.md` carry. In `inline`
@@ -49,21 +85,40 @@ export interface RenderBlockOptions {
49
85
  */
50
86
  export declare function renderSkillsBlock(skills: BlockSkill[], opts: RenderBlockOptions): string;
51
87
  /**
52
- * Splices `newBlock` (marker-wrapped) into `existing`. If markers are present,
53
- * only the marked region is replaced; everything before the opening marker and
88
+ * Splices `newBlock` (marker-wrapped) into `existing`. Any existing block (of
89
+ * ANY version) is replaced in place; everything before the opening marker and
54
90
  * after the closing marker is preserved byte-for-byte. Otherwise the block is
55
- * appended after a blank-line separator. Idempotent on repeat with the same block.
91
+ * appended after a blank-line separator. Idempotent on repeat with the same
92
+ * block. Throws `SkillsBlockMarkerError` when the target's markers are
93
+ * malformed (#431).
56
94
  */
57
95
  export declare function mergeBlock(existing: string, newBlock: string): string;
58
- /** sha256 of just the block's inner text (between the markers), or undefined
59
- * when no block is present — so user edits OUTSIDE the block never register as
60
- * a modification and edits INSIDE it do. */
96
+ /**
97
+ * #437: `mergeBlock` for any marked block (`BlockMarkers`) — e.g. the CODEOWNERS block of
98
+ * `jevitate init --codeowners`. Same rules: replaced in place, else appended; idempotent; throws
99
+ * `SkillsBlockMarkerError` on malformed markers.
100
+ */
101
+ export declare function mergeMarkedBlock(existing: string, newBlock: string, markers: BlockMarkers): string;
102
+ /** sha256 of just the block's inner text (between the marker lines) — so the
103
+ * `jevitate@<version>` stamp in the BEGIN line never counts as a user
104
+ * modification, while edits INSIDE the block do. `undefined` when no block is
105
+ * present; throws `SkillsBlockMarkerError` when the markers are malformed. */
61
106
  export declare function extractBlockHash(content: string): string | undefined;
107
+ /**
108
+ * Decides what to do with one marked-block target. Never writes and never
109
+ * throws: a malformed marker pair is reported as `refuse-malformed` so the
110
+ * skill installer leaves that file untouched and proceeds with the others (#431).
111
+ */
112
+ export declare function planBlockInstall(targetPath: string, newBlock: string, lastInstalledHash: string | undefined, opts?: {
113
+ force?: boolean;
114
+ }): Promise<InstallAction>;
62
115
  export interface InstallReport {
63
116
  target: RuntimeId;
64
117
  skillId: string;
65
118
  path: string;
66
119
  action: InstallAction;
120
+ /** Populated for `refuse-malformed`: the human fix-it reason (#431). */
121
+ reason?: string;
67
122
  }
68
123
  /**
69
124
  * Detect/plan/install the six skills into every runtime passed in (the caller
@@ -76,5 +131,28 @@ export interface InstallReport {
76
131
  export declare function installSkills(runtimes: RuntimeId[], skills: ResolvedSkill[], paths: InstallTargetPaths, statePath: string, opts?: {
77
132
  force?: boolean;
78
133
  dryRun?: boolean;
134
+ jevitateVersion?: string;
135
+ claudeMd?: boolean;
79
136
  }): Promise<InstallReport[]>;
137
+ export interface UninstallReport {
138
+ target: RuntimeId;
139
+ skillId: string;
140
+ path: string;
141
+ action: "remove" | "absent" | "skip-user-modified" | "force-remove" | "refuse-malformed";
142
+ /** Populated for `refuse-malformed`: the human fix-it reason (#431). */
143
+ reason?: string;
144
+ }
145
+ /**
146
+ * Removes everything `installSkills` wrote, with the same never-clobber safety:
147
+ * a whole file or block whose current hash differs from the recorded state is
148
+ * reported `skip-user-modified` (or `force-remove` with `force`) rather than
149
+ * deleted. Malformed markers are reported `refuse-malformed` and left alone.
150
+ * `dryRun` reports the plan and writes nothing. Corresponding state entries are
151
+ * dropped for removed/absent targets.
152
+ */
153
+ export declare function uninstallSkills(runtimes: RuntimeId[], skills: ResolvedSkill[], paths: InstallTargetPaths, statePath: string, opts?: {
154
+ force?: boolean;
155
+ dryRun?: boolean;
156
+ claudeMd?: boolean;
157
+ }): Promise<UninstallReport[]>;
80
158
  export {};